diff options
| -rw-r--r-- | engines/lure/disassembly/LURE.ASM | 39804 | ||||
| -rw-r--r-- | engines/lure/disassembly/Lure_notes.txt | 1422 | 
2 files changed, 41226 insertions, 0 deletions
diff --git a/engines/lure/disassembly/LURE.ASM b/engines/lure/disassembly/LURE.ASM new file mode 100644 index 0000000000..f96e85b2c1 --- /dev/null +++ b/engines/lure/disassembly/LURE.ASM @@ -0,0 +1,39804 @@ +lure.asm                                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 1 + + +                                PAGE  59,132 + +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ +                                ;ÛÛ                                                                      ÛÛ +                                ;ÛÛ                             LURE                                     ÛÛ +                                ;ÛÛ                                                                      ÛÛ +                                ;ÛÛ      Created:   23-Jun-95                                            ÛÛ +                                ;ÛÛ      Passes:    9          Analysis Options on: QRSX                 ÛÛ +                                ;ÛÛ      Copyright Revolution Software 1990-1992                         ÛÛ +                                ;ÛÛ                                                                      ÛÛ +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ + +                                .err     Target Assembler set to NONE, re-assembly not recommended + + +VGA_SEGMENT        equ  0a000h +SCREEN_WIDTH       equ  320 +SCREEN_HEIGHT      equ  200 + +RECT_SIZE          equ  32 +RECTANGLE_SIZE     equ  32*32 +NUM_HORIZ_RECTS    equ  10 +NUM_VERT_RECTS     equ   6 +FULL_HORIZ_RECTS   equ  18 +FULL_VERT_RECTS    equ  14 + +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_TICK_SCRIPT_OFFSET     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_BLOCKED_SUPPORT_OFFSET equ  5Eh +HS_EXIT_CTR               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_V17                  equ  17h +ROOM_BOUNDS_INDEX         equ  18h +ROOM_X_START              equ  19h +ROOM_X_END                equ  1Bh +ROOM_EXITS_START          equ  1Dh + +; Room exit constants for room exit list within room records +ROOMREC_EXIT_X_START          equ  0 +ROOMREC_EXIT_X_END            equ  2 +ROOMREC_EXIT_Y_START          equ  4 +ROOMREC_EXIT_Y_END            equ  6 +ROOMREC_EXIT_SEQUENCE         equ  8 +ROOMREC_EXIT_ROOM_NUM         equ  10 +ROOMREC_EXIT_NEW_X            equ  12 +ROOMREC_EXIT_NEW_Y            equ  14 + +; Room number constants +ROOMNUM_TOWN_HALL         equ  1fh +ROOMNUM_MIDDLE_STREET     equ  0Eh +ROOMNUM_VILLAGE_SHOP      equ  23h +ROOMNUM_WINE_CELLAR       equ  2Ah +ROOMNUM_DINING_HALL       equ  2Dh + +NUM_DELAY_ENTRIES         equ  28h +DELAY_ENTRY_SIZE          equ  7 + +DIR_UP       equ  80h +DIR_DOWN     equ  40h +DIR_LEFT     equ  20h +DIR_RIGHT    equ  10h + +FACING_UP     equ   0 +FACING_DOWN   equ   1 +FACING_LEFT   equ   2 +FACING_RIGHT  equ   3 + +FACING2_LEFT  equ   1 +FACING2_RIGHT equ   2 +FACING2_UP    equ   4 +FACING2_DOWN  equ   8 + +; Movement record constants +MOVEMENT_FRAME_NUM  equ  0 +MOVEMENT_X_CHANGE   equ  2 +MOVEMENT_Y_CHANGE   equ  4 +MOVEMENT_REC_SIZE   equ  6 + +; Talk constants +TALK_PRE_SEQUENCE   equ  0 +TALK_DESC_ID        equ  2 +TALK_POST_SEQUENCE  equ  4 + +; Talk state constants +TALK_START        equ  0ffh +TALK_SELECT       equ  2 +TALK_UNKNOWN      equ  3 +TALK_MAGIC_ID     equ  424h + +TALK_DIALOG_WIDTH   equ  128 + +; Player actions used in player_tick_proc +CURRENT_ACTION_RECORD_SIZE   equ  5 +CURRENT_ACTION_SUPPORT_TABLE equ  1 +CURRENT_ACTION_ROOM_NUM      equ  3 + +CHAR_ACTION_NONE             equ  0 +CHAR_ACTION_START_WALK       equ  1 +CHAR_ACTION_DISPATCH_ACTION  equ  2 +CHAR_ACTION_EXEC_SCRIPT      equ  3 +CHAR_ACTION_PROCESSING_PATH  equ  4 +CHAR_ACTION_CONTINUE_WALK    equ  5 + +PATHFIND_CHARACTER_ID   equ   2 +PATHFIND_HS4C           equ   4 +PATHFIND_DEST_STATE     equ   5 +PATHFIND_DEST_X         equ   6 +PATHFIND_DEST_Y         equ   8 +PATHFIND_X              equ  0Ch +PATHFIND_Y              equ  0Ah +PATHFIND_0E             equ  0Eh +PATHFIND_DEST_X2        equ  10h +PATHFIND_DEST_OCCUPIED  equ  12h +PATHFIND_CELL_POPULATED equ  13h +PATHFIND_X_CHANGE1      equ  14h +PATHFIND_Y_CHANGE1      equ  16h +PATHFIND_X_CHANGE2      equ  18h +PATHFIND_Y_CHANGE2      equ  1Ah + +WALKTO_RECORD_SIZE      equ  6 +WALKTO_HOTSPOT_ID       equ  0 +WALKTO_X                equ  2 +WALKTO_Y                equ  4 + +; State values for the cursor_state variable +CURSORSTATE_NONE        equ  0 +CURSORSTATE_ACTION      equ  1 +CURSORSTATE_SEQUENCE    equ  2 +CURSORSTATE_TALK        equ  3 +CURSORSTATE_4           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) + +     = 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) + + +     = 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 + + +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ +                                ; +                                ;                       Program Entry Point +                                ; +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ + + +                                lure            proc    far + +273F:0000                       start: + +273F:0000  B8 31E4                              mov     ax, data_seg +273F:0003  8E D8                                mov     ds, ax +273F:0005  E8 04AE                              call    initialise              ; (04B6) +273F:0008                       loc_5:                                          ;  xref 273F:0171 +273F:0008 úB8 23FC                              mov     ax, offset startup_sequence +273F:000B  E8 3E26                              call    sequence_execute +273F:000E  80 26 11D0 FE                        and     menubar_state, 0FEh ; (273F:11D0=56h) +273F:0013  E8 1F49                              call    show_disk_cursor +273F:0016  EB 59                                jmp     short loc_10            ; (0071) + +; The following code is jumped to if the game is to be restarted or the room changes + +273F:0018                       loc_6:                                          ;  xref 273F:0135, 0149 +273F:0018 úC6 06 38B0 01                        mov     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 ú83 06 B0AA 01                        add     game_time_ctr, 1 +273F:00FA  83 16 B0AC 00                        adc     game_time_ctr_2, 0 +273F:00FF  C6 06 00B0 00                        mov     data_525, 0 +273F:0104  E8 92C1                              call    room_check_keypresses +273F:0107  E8 4306                              call    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 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:024F, 030A +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0174                       open_file       proc    near +273F:0174  F6 06 00B5 80                        test    byte ptr ds:[file_handle+1],80h  ; (273F:00B5=11h) +273F:0179  75 0D                                jnz     loc_20                           ; Jump if not zero +273F:017B  8B 1E 00B4                           mov     bx,word ptr ds:[file_handle]     ; (273F:00B4=11D0h) +273F:017F  B4 3E                                mov     ah,3Eh +273F:0181  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle +273F:0183  C6 06 00B5 80                        mov     byte ptr ds:[file_handle+1],80h  ; (273F:00B5=11h) +273F:0188                       loc_20:                                                  ;  xref 273F:0179 +273F:0188  8A 1E 00B1                           mov     bl,byte ptr ds:[file_number]     ; (273F:00B1=40h) +273F:018C  32 FF                                xor     bh,bh                   ; Zero register +273F:018E  D0 E3                                shl     bl,1                    ; Shift w/zeros fill +273F:0190  8B 97 00B6                           mov     dx,word ptr ds:[file_offset_table][bx]  +273F:0194  B8 3D00                              mov     ax,3D00h +273F:0197  CD 21                                int     21h                     ; DOS Services  ah=function 3Dh +                                                                                ;  open file, al=mode,name@ds:dx +273F:0199  72 58                                jc      loc_22                  ; Jump if carry Set +273F:019B  2E: F6 06 0943 FF                    test    byte ptr cs:critical_error,0FFh      ; (273F:0943=0) +273F:01A1  75 50                                jnz     loc_22                         ; Jump if not zero +273F:01A3  A3 00B4                              mov     word ptr ds:[file_handle],ax   ; (273F:00B4=11D0h) +273F:01A6  8B D8                                mov     bx,ax +273F:01A8  B9 0008                              mov     cx,8 +273F:01AB úBA 0119                              mov     dx, offset file_buffer  ; 273F:0119 +273F:01AE  B4 3F                                mov     ah,3Fh +273F:01B0  CD 21                                int     21h                     ; DOS Services  ah=function 3Fh +                                                                                ;  read file, bx=file handle +                                                                                ;   cx=bytes to ds:dx buffer +273F:01B2  2E: F6 06 0943 FF                    test    byte ptr cs:critical_error,0FFh   ; (273F:0943=0) +273F:01B8  75 35                                jnz     loc_21                            ; Validate file ident string +273F:01BA  81 3E 0119 6568                      cmp     word ptr ds:[file_buffer],6568h   ; 'he' +273F:01C0  75 2D                                jne     loc_21                            ; Jump if not equal +273F:01C2  81 3E 011B 7779                      cmp     word ptr ds:[file_buffer+2],7779h ; 'yw' +273F:01C8  75 25                                jne     loc_21                            ; Jump if not equal +273F:01CA  81 3E 011D 776F                      cmp     word ptr ds:[file_buffer+4],776Fh ; 'ow' +273F:01D0  75 1D                                jne     loc_21                            ; Jump if not equal +273F:01D2  A1 011F                              mov     ax,word ptr ds:[file_filenum]     ; Get in the file number +273F:01D5  3A 26 00B1                           cmp     ah,byte ptr ds:[file_number]   ; (273F:00B1=40h) +273F:01D9  75 14                                jne     loc_21                         ; Jump if not equal + +273F:01DB  B9 05F8                              mov     cx, sizeof file_entries +273F:01DE úBA 0121                              mov     dx, offset file_entries +273F:01E1  B4 3F                                mov     ah,3Fh +273F:01E3  CD 21                                int     21h                     ; DOS Services  ah=function 3Fh +                                                                                ;  read file, bx=file handle +                                                                                ;   cx=bytes to ds:dx buffer +273F:01E5  2E: F6 06 0943 FF                    test    byte ptr cs:critical_error,0FFh ; (273F:0943=0) +273F:01EB  75 02                                jnz     loc_21                  ; Jump if not zero +273F:01ED  F8                                   clc                             ; Clear carry flag +273F:01EE  C3                                   retn +273F:01EF                       loc_21:                                         ;  xref 273F:01B8, 01C0, 01C8, 01D0 +                                                                                ;            01D9, 01EB +273F:01EF  B4 3E                                mov     ah,3Eh +273F:01F1  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle +273F:01F3                       loc_22:                                         ;  xref 273F:0199, 01A1 +273F:01F3  2E: C6 06 0943 00                    mov     byte ptr cs:critical_error,0  ; (273F:0943=0) +273F:01F9  F9                                   stc                             ; Set carry flag +273F:01FA  C3                                   retn +                                open_file       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0974, 768C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:01FB            read_and_validate_header   proc    near +273F:01FB                       loc_23:                                         ;  xref 273F:02B1, 02DC +273F:01FB úC6 06 00B0 01                        mov     data_525, 1 +273F:0200  F6 06 00B5 80                        test    byte ptr ds:[file_handle+1],80h  ; (273F:00B5=11h) +273F:0205  75 42                                jnz     loc_24                           ; Jump if not zero +273F:0207  C7 06 0119 0000                      mov     word ptr ds:[file_buffer],0      ; (273F:0119=16FFh) + +; Read in the file header, that includes the ident string, file number, and entries table + +273F:020D  1E                                   push    ds +273F:020E  07                                   pop     es +273F:020F  BA 0119                              mov     dx, offset file_buffer +273F:0212  BB 0000                              mov     bx,0 +273F:0215  B9 0600                              mov     cx, FILE_BUFFER_SIZE +273F:0218  33 ED                                xor     bp,bp                           ; Zero register +273F:021A  E8 022D                              call    read_file_entry                 ; (044A) +273F:021D  72 2A                                jc      loc_24                          ; Jump if carry Set +273F:021F  2E: F6 06 0943 FF                    test    byte ptr cs:critical_error,0FFh ; Check if any error occurred +273F:0225  75 22                                jnz     loc_24                          ; Jump if not zero + +; Validate that the file starts with the correct identifier string + +273F:0227  A1 0119                              mov     ax,word ptr ds:[file_buffer]    ; Validate file ident string +273F:022A  3D 6568                              cmp     ax,6568h                        ; 'he' +273F:022D  75 1A                                jne     loc_24 +273F:022F  A1 011B                              mov     ax,word ptr ds:[file_buffer+2] +273F:0232  3D 7779                              cmp     ax,7779h                        ; 'yw' +273F:0235  75 12                                jne     loc_24 +273F:0237  A1 011D                              mov     ax,word ptr ds:[file_buffer+4] +273F:023A  3D 776F                              cmp     ax,776Fh                        ; 'ow' +273F:023D  75 0A                                jne     loc_24                  ; Jump if not equal +273F:023F  A1 011F                              mov     ax,word ptr ds:[11Fh]   ; (273F:011F=0FF13h) + +273F:0242  3A 26 00B1                           cmp     ah,byte ptr ds:[file_number]   ; (273F:00B1=40h) +273F:0246  75 01                                jne     loc_24                  ; Jump if not equal +273F:0248  C3                                   retn + +; If execution reaches this point, then some sort of error occurred + +273F:0249                       loc_24:                                         ;  xref 273F:0205, 021D, 0225, 022D +                                                                                ;            0235, 023D, 0246, 0301 +273F:0249 ú2E: C6 06 0943 00                    mov     byte ptr cs:critical_error,0 +273F:024F  E8 FF22                              call    open_file                      ; Try to reopen file +273F:0252  73 68                                jnc     loc_ret_30                     ; Jump if no error occurred + +273F:0254  80 3E 0786 02                        cmp     byte ptr ds:[drive_number],2   ; Is current drive C? +273F:0259  72 19                                jb      loc_25                         ; Jump if it's a floppy drive + +273F:025B  A1 00B2                              mov     ax,word ptr ds:[drive_num]     ; (273F:00B2=2680h) +273F:025E  E8 00A3                              call    open_file2 +273F:0261  73 51                                jnc     loc_29 +273F:0263  F6 06 073D 80                        test    status_flags2, FLAG_HAS_FLOPPY_DRIVE +273F:0268  75 1B                                jnz     loc_27 +273F:026A  83 36 00B2 01                        xor     word ptr ds:[drive_num], 1 +273F:026F  A1 00B2                              mov     ax,word ptr ds:[drive_num] +273F:0272  EB 0C                                jmp     short loc_26               + +; At this point, we know that the current drive is either A or B (ie. a floppy drive) +273F:0274                       loc_25: +273F:0274  F6 06 073D 80                        test    status_flags2, FLAG_HAS_FLOPPY_DRIVE +273F:0279  75 0A                                jnz     loc_27                   +273F:027B  A0 0786                              mov     al,byte ptr ds:[drive_number] +273F:027E  34 01                                xor     al,1 +273F:0280                       loc_26:                                         ;  xref 273F:0272 +273F:0280  E8 0081                              call    open_file2              ; (0304) +273F:0283  73 2F                                jnc     loc_29                  ; Jump if carry=0 +273F:0285                       loc_27:                                         ;  xref 273F:0268, 0279 +273F:0285  8A 16 0786                           mov     dl,byte ptr ds:[drive_number]   ; (273F:0786=0E8h) +273F:0289  B4 0E                                mov     ah,0Eh +273F:028B  CD 21                                int     21h                     ; DOS Services  ah=function 0Eh +                                                                                ;  set default drive dl  (0=a:) +; Display a message to insert the correct disk in the floppy drive +273F:028D  A0 00B1                              mov     al,byte ptr ds:[file_number]   ; (273F:00B1=40h) +273F:0290  2C 01                                sub     al,1 +273F:0292  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:0294  04 04                                add     al,4 +273F:0296  32 E4                                xor     ah,ah                   ; Zero register +273F:0298  B6 00                                mov     dh,0 +273F:029A  E8 3D07                              call    display_message         ; (3FA4) +273F:029D  3C 1B                                cmp     al,1Bh +273F:029F  75 08                                jne     loc_28                  ; Jump if not equal +273F:02A1  B8 0000                              mov     ax,0 +273F:02A4  B6 01                                mov     dh,1 +273F:02A6  E8 3CFB                              call    display_message         ; (3FA4) +273F:02A9                       loc_28:                                         ;  xref 273F:029F +273F:02A9  8A 16 0786                           mov     dl,byte ptr ds:[drive_number]  ; (273F:0786=0E8h) +273F:02AD  B4 0E                                mov     ah,0Eh +273F:02AF  CD 21                                int     21h                     ; DOS Services  ah=function 0Eh +                                                                                ;  set default drive dl  (0=a:) +273F:02B1  E9 FF47                              jmp     loc_23                  ; (01FB) +273F:02B4                       loc_29:                                         ;  xref 273F:0261, 0283 +273F:02B4  8A 16 0786                           mov     dl,byte ptr ds:[drive_number]   ; (273F:0786=0E8h) +273F:02B8  B4 0E                                mov     ah,0Eh +273F:02BA  CD 21                                int     21h                     ; DOS Services  ah=function 0Eh +                                                                                ;  set default drive dl  (0=a:) + +273F:02BC                       loc_ret_30:                                     ;  xref 273F:0252 +273F:02BC  C3                                   retn +                     read_and_validate_header   endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:034C, 040E, 757C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:02BD                   validate_header     proc    near +273F:02BD  B1 06                                mov     cl,6 +273F:02BF  D2 EC                                shr     ah,cl                   ; Shift w/zeros fill +273F:02C1  80 E4 03                             and     ah,3 +273F:02C4  80 C4 01                             add     ah,1 +273F:02C7  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:02CC  75 03                                jne     loc_31                  ; Jump if it's VGA +273F:02CE  80 C4 04                             add     ah,4 +273F:02D1                       loc_31:                                          +273F:02D1  88 26 00B1                           mov     byte ptr ds:[file_number],ah   ; (273F:00B1=40h) +273F:02D5  F6 06 00B0 FF                        test    data_525, 0FFh +273F:02DA  75 03                                jnz     loc_32                  ; Jump if not zero +273F:02DC  E9 FF1C                              jmp     loc_23                  ; (01FB) +273F:02DF                       loc_32:                                         ;  xref 273F:02DA +273F:02DF  A1 0119                              mov     ax,word ptr ds:[file_buffer]   ; Validate file ident string +273F:02E2  3D 6568                              cmp     ax,6568h                       ; 'he' +273F:02E5  75 1A                                jne     loc_33                         ; Jump if not equal +273F:02E7  A1 011B                              mov     ax,word ptr ds:[file_buffer+2] +273F:02EA  3D 7779                              cmp     ax,7779h                       ; 'yw' +273F:02ED  75 12                                jne     loc_33                         ; Jump if not equal +273F:02EF  A1 011D                              mov     ax,word ptr ds:[file_buffer+4] +273F:02F2  3D 776F                              cmp     ax,776Fh                       ; 'ow' +273F:02F5  75 0A                                jne     loc_33                         ; Jump if not equal +273F:02F7  A1 011F                              mov     ax,word ptr ds:[file_filenum]  ; (273F:011F=0FF13h) +273F:02FA  3A 26 00B1                           cmp     ah,byte ptr ds:[file_number]   ; (273F:00B1=40h) +273F:02FE  75 01                                jne     loc_33                         ; Jump if not equal +273F:0300  C3                                   retn +273F:0301                       loc_33:                                         ;  xref 273F:02E5, 02ED, 02F5, 02FE + +; Jumps to the error recovery code, which can open up the appropriate file and load it from scratch +273F:0301  E9 FF45                              jmp     loc_24                  ; (0249) +                            validate_header     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:025E, 0280 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0304                       open_file2      proc    near +273F:0304  8A D0                                mov     dl,al +273F:0306  B4 0E                                mov     ah,0Eh +273F:0308  CD 21                                int     21h                     ; DOS Services  ah=function 0Eh +                                                                                ;  set default drive dl  (0=a:) +273F:030A  E8 FE67                              call    open_file               ; (0174) +273F:030D  C3                                   retn +                                open_file2      endp + +273F:030E  0000                 data_121        dw      0                       ;  xref 273F:0314, 03D5 +273F:0310  0000                 data_122        dw      0                       ;  xref 273F:0318, 03D9 +273F:0312  0000                 data_123        dw      0                       ;  xref 273F:031D, 03DE + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0BDA, 3ACD, 3CA3, 7640, 7813, 7AC5, 7B63 +                                ;                             7B80, 93A9, 9F6E, 9F8C, 9FB1, A302, A34F +                                ;                             A7C0, A7E2, A900, A9B3 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0314                       read_entry      proc    near +273F:0314                       loc_34:                                         ;  xref 273F:03E3 +273F:0314  2E: A3 030E                          mov     cs:data_121,ax          ; (273F:030E=0) +273F:0318  2E: 89 0E 0310                       mov     cs:data_122,cx          ; (273F:0310=0) +273F:031D  2E: 89 16 0312                       mov     cs:data_123,dx          ; (273F:0312=0) +273F:0322  8B D8                                mov     bx,ax +273F:0324  81 E3 3FFF                           and     bx,3FFFh +273F:0328  81 FB 0120                           cmp     bx,120h +273F:032C  74 11                                je      loc_35                  ; Jump if equal +273F:032E  81 FB 0311                           cmp     bx,311h +273F:0332  74 0B                                je      loc_35                  ; Jump if equal +273F:0334  83 FB 08                             cmp     bx,8 +273F:0337  74 06                                je      loc_35                  ; Jump if equal +273F:0339  81 FB 0410                           cmp     bx,410h +273F:033D  75 0A                                jne     loc_36                  ; Jump if not equal +273F:033F                       loc_35:                                         ;  xref 273F:032C, 0332, 0337 +                                                assume  ds:data_seg +273F:033F  F6 06 BAB9 FF                        test    byte ptr script_val_88, 0FFh +273F:0344  74 03                                jz      loc_36                  ; Jump if zero +273F:0346  80 F4 80                             xor     ah,80h +273F:0349                       loc_36:                                         ;  xref 273F:033D, 0344 +273F:0349  51                                   push    cx +273F:034A  52                                   push    dx +273F:034B  50                                   push    ax +273F:034C  E8 FF6E                              call    validate_header         ; (02BD) +273F:034F  58                                   pop     ax +273F:0350  5A                                   pop     dx +273F:0351 úBB 0119                              mov     bx,offset file_buffer    +273F:0354  B9 00C0                              mov     cx,0C0h                 ; Number of header entries + 1 + +273F:0357                       locloop_37:                                     ;  xref 273F:035E +273F:0357  3B 07                                cmp     ax,[bx] +273F:0359  74 0D                                je      loc_38                  ; Jump if equal +273F:035B  83 C3 08                             add     bx,8 +273F:035E  E2 F7                                loop    locloop_37              ; Loop if cx > 0 + +273F:0360  B8 0009                              mov     ax,9                    ; 'Data file is corrupt.$' +273F:0363  B6 01                                mov     dh,1 +273F:0365  E8 3C3C                              call    display_message         ; (3FA4) +273F:0368                       loc_38:                                         ;  xref 273F:0359 +273F:0368  07                                   pop     es +273F:0369  8B 4F 04                             mov     cx,[bx+4] +273F:036C  8A 47 03                             mov     al,[bx+3] +273F:036F  32 E4                                xor     ah,ah                   ; Zero register +273F:0371  8B E8                                mov     bp,ax +273F:0373  FF 77 01                             push    word ptr [bx+1] + +273F:0376  8B 5F 06                             mov     bx,[bx+6] +273F:0379  51                                   push    cx +273F:037A  55                                   push    bp +273F:037B  E8 00CC                              call    read_file_entry         ; (044A) +273F:037E  5D                                   pop     bp +273F:037F  B1 0C                                mov     cl,0Ch +273F:0381  D3 E5                                shl     bp,cl                   ; Shift w/zeros fill +273F:0383  59                                   pop     cx +273F:0384  8B D1                                mov     dx,cx +273F:0386  83 EA 01                             sub     dx,1 +273F:0389  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:038B  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:038D  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:038F  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0391  83 C2 01                             add     dx,1 +273F:0394  03 D5                                add     dx,bp +273F:0396  5B                                   pop     bx +273F:0397  2E: F6 06 0943 FF                    test    byte ptr cs:critical_error,0FFh ; (273F:0943=0) +273F:039D  75 06                                jnz     loc_39                  ; Jump if not zero +273F:039F  C6 06 0118 00                        mov     byte ptr retry_count,0     ; (31E4:0118=0) +273F:03A4  C3                                   retn +273F:03A5                       loc_39:                                         ;  xref 273F:039D +273F:03A5  80 06 0118 01                        add     byte ptr retry_count,1     ; (31E4:0118=0) +273F:03AA  80 3E 0118 05                        cmp     byte ptr retry_count,5     ; (31E4:0118=0) +273F:03AF  72 19                                jb      loc_40                  ; Jump if below +273F:03B1  C6 06 0118 00                        mov     byte ptr retry_count,0     ; (31E4:0118=0) +273F:03B6  B8 0001                              mov     ax,1 +273F:03B9  B6 00                                mov     dh,0 +273F:03BB  E8 3BE6                              call    display_message         ; (3FA4) +273F:03BE  3C 1B                                cmp     al,1Bh +273F:03C0  75 08                                jne     loc_40                  ; Jump if not equal +273F:03C2  B8 0000                              mov     ax,0 +273F:03C5  B6 01                                mov     dh,1 +273F:03C7  E8 3BDA                              call    display_message         ; (3FA4) +273F:03CA                       loc_40:                                         ;  xref 273F:03AF, 03C0 +273F:03CA  2E: C6 06 0943 00                    mov     byte ptr cs:critical_error,0  ; (273F:0943=0) +273F:03D0  C6 06 00B0 00                        mov     data_525, 0      +273F:03D5  2E: A1 030E                          mov     ax,cs:data_121          ; (273F:030E=0) +273F:03D9  2E: 8B 0E 0310                       mov     cx,cs:data_122          ; (273F:0310=0) +273F:03DE  2E: 8B 16 0312                       mov     dx,cs:data_123          ; (273F:0312=0) +273F:03E3  E9 FF2E                              jmp     loc_34                  ; (0314) +                                read_entry      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:77F1, A7B4 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:03E6                    get_entry_size     proc    near +273F:03E6  8B D8                                mov     bx,ax +273F:03E8  81 E3 3FFF                           and     bx,3FFFh +273F:03EC  81 FB 0120                           cmp     bx,120h +273F:03F0  74 11                                je      loc_41                  ; Jump if equal +273F:03F2  81 FB 0311                           cmp     bx,311h +273F:03F6  74 0B                                je      loc_41                  ; Jump if equal +273F:03F8  83 FB 08                             cmp     bx,8 +273F:03FB  74 06                                je      loc_41                  ; Jump if equal +273F:03FD  81 FB 0410                           cmp     bx,410h +273F:0401  75 0A                                jne     loc_42                  ; Jump if not equal +273F:0403                       loc_41:                                         ;  xref 273F:03F0, 03F6, 03FB +273F:0403  F6 06 BAB9 FF                        test    byte ptr script_val_88, 0FFh  +273F:0408  74 03                                jz      loc_42                  ; Jump if zero +273F:040A  80 F4 80                             xor     ah,80h +273F:040D                       loc_42:                                         ;  xref 273F:0401, 0408 +273F:040D  50                                   push    ax +273F:040E  E8 FEAC                              call    validate_header         ; (02BD) +273F:0411  58                                   pop     ax +273F:0412 úBB 0119                              mov     bx, offset file_buffer  ; (273F:0119=0FFh) +273F:0415  B9 00C0                              mov     cx,0C0h + +273F:0418                       locloop_43:                                     ;  xref 273F:041F +273F:0418  3B 07                                cmp     ax,[bx] +273F:041A  74 0D                                je      loc_44                  ; Jump if equal +273F:041C  83 C3 08                             add     bx,8 +273F:041F  E2 F7                                loop    locloop_43              ; Loop if cx > 0 + +273F:0421  B8 0009                              mov     ax,9                    ; 'Data file is corrupt.$' +273F:0424  B6 01                                mov     dh,1 +273F:0426  E8 3B7B                              call    display_message         ; (3FA4) +273F:0429                       loc_44:                                         ;  xref 273F:041A +273F:0429  8A 4F 03                             mov     cl,[bx+3] +273F:042C  32 ED                                xor     ch,ch                   ; Zero register +273F:042E  8B E9                                mov     bp,cx +273F:0430  B1 0C                                mov     cl,0Ch +273F:0432  D3 E5                                shl     bp,cl                   ; Shift w/zeros fill +273F:0434  8B 4F 04                             mov     cx,[bx+4] +273F:0437  8B D1                                mov     dx,cx +273F:0439  83 EA 01                             sub     dx,1 +273F:043C  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:043E  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0440  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0442  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0444  83 C2 01                             add     dx,1 +273F:0447  03 D5                                add     dx,bp +273F:0449  C3                                   retn +                             get_entry_size     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:021A, 037B +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + + +273F:044A                     read_file_entry   proc    near +273F:044A  1E                                   push    ds +273F:044B  51                                   push    cx +273F:044C  52                                   push    dx +273F:044D  B8 0020                              mov     ax,20h +273F:0450  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:0452  8B CA                                mov     cx,dx +273F:0454  8B D0                                mov     dx,ax +273F:0456  51                                   push    cx +273F:0457  52                                   push    dx +273F:0458  B8 4200                              mov     ax,4200h +273F:045B  8B 1E 00B4                           mov     bx,word ptr ds:[file_handle]   ; (273F:00B4=11D0h) +273F:045F  CD 21                                int     21h                     ; DOS Services  ah=function 42h +                                                                                ;  move file ptr, bx=file handle +                                                                                ;   al=method, cx,dx=offset +273F:0461  72 3F                                jc      loc_47                  ; Jump if carry Set +273F:0463  5B                                   pop     bx +273F:0464  59                                   pop     cx +273F:0465  3B CA                                cmp     cx,dx +273F:0467  75 3B                                jne     loc_48                  ; Jump if not equal +273F:0469  3B C3                                cmp     ax,bx +273F:046B  75 37                                jne     loc_48                  ; Jump if not equal +273F:046D  8B 1E 00B4                           mov     bx,word ptr ds:[file_handle]   ; (273F:00B4=11D0h) +273F:0471  5A                                   pop     dx +273F:0472  D1 E5                                shl     bp,1                    ; Shift w/zeros fill +273F:0474                       loc_45:                                         ;  xref 273F:0490 +273F:0474 ú83 ED 01                             sub     bp,1 +273F:0477  72 19                                jc      loc_46                  ; Jump if carry Set +273F:0479  8C C0                                mov     ax,es +273F:047B  8E D8                                mov     ds,ax +273F:047D  05 0800                              add     ax,800h +273F:0480  8E C0                                mov     es,ax +273F:0482  B4 3F                                mov     ah,3Fh                  ; '?' +273F:0484  B9 8000                              mov     cx,8000h +273F:0487  CD 21                                int     21h                     ; DOS Services  ah=function 3Fh +                                                                                ;  read file, bx=file handle +                                                                                ;   cx=bytes to ds:dx buffer +273F:0489  72 1A                                jc      loc_49                  ; Jump if carry Set +273F:048B  3D 8000                              cmp     ax,8000h +273F:048E  75 15                                jne     loc_49                  ; Jump if not equal +273F:0490  EB E2                                jmp     short loc_45            ; (0474) +273F:0492                       loc_46:                                         ;  xref 273F:0477 +273F:0492  59                                   pop     cx +273F:0493  06                                   push    es +273F:0494  1F                                   pop     ds +273F:0495  B4 3F                                mov     ah,3Fh +273F:0497  CD 21                                int     21h                     ; DOS Services  ah=function 3Fh +                                                                                ;  read file, bx=file handle +                                                                                ;   cx=bytes to ds:dx buffer +273F:0499  72 0B                                jc      loc_50                  ; Jump if carry Set +273F:049B  3B C1                                cmp     ax,cx +273F:049D  75 07                                jne     loc_50                  ; Jump if not equal +273F:049F  1F                                   pop     ds +273F:04A0  F8                                   clc                             ; Clear carry flag +273F:04A1  C3                                   retn +273F:04A2                       loc_47:                                         ;  xref 273F:0461 +273F:04A2  58                                   pop     ax +273F:04A3  58                                   pop     ax +273F:04A4                       loc_48:                                         ;  xref 273F:0467, 046B +273F:04A4  58                                   pop     ax +273F:04A5                       loc_49:                                         ;  xref 273F:0489, 048E +273F:04A5  58                                   pop     ax +273F:04A6                       loc_50:                                         ;  xref 273F:0499, 049D +273F:04A6  1F                                   pop     ds +273F:04A7  F9                                   stc                             ; Set carry flag +273F:04A8  C3                                   retn +                              read_file_entry   endp + +273F:04A9  00                                   db      0 +273F:04AA  0000 0000       old_timer_int_proc   dw      0, 0                    ;  xref 273F:0699, 3FD2, 49A6 +273F:04AE  0000 0000         old_kbd_int_proc   dw      0, 0                    ;  xref 273F:06F2, 4004, 94DC +273F:04B2  0000          old_critical_int_proc  dw      0, 0                       ;  xref 273F:06D1, 3FEB + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0005 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:04B6                       initialise      proc    near +273F:04B6  E8 0314                              call    sub_10                  ; (07CD) +273F:04B9  E8 0447                              call    sub_12                  ; (0903) +273F:04BC  C7 06 5662 094D                      mov     play_music_proc, offset retf_proc +273F:04C2  8C 0E 5664                           mov     word ptr play_music_proc+2,cs +273F:04C6  F6 06 0742 FF                        test    video_style, 0FFh       ; Is any video mode defined +273F:04CB  74 07                                jz      loc_51                  ; Jump if zero +273F:04CD  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA  +273F:04D2  74 20                                je      loc_53                  ; Jump if equal +273F:04D4                       loc_51:                                         ;  xref 273F:04CB +273F:04D4  B8 1A00                              mov     ax,1A00h +273F:04D7  CD 10                                int     10h                     ; Video display   ah=functn 1Ah +                                                                                ;  get display type in bx +273F:04D9  3C 1A                                cmp     al,1Ah +273F:04DB  75 0C                                jne     loc_52                  ; Function not supported +273F:04DD  80 FB 04                             cmp     bl,4                    ; EGA monitor +273F:04E0  74 12                                je      loc_53                  ; Jump if equal +273F:04E2  80 FB 08                             cmp     bl,8                    ; VGA with analog colour model +273F:04E5  75 10                                jne     loc_54                  ; Jump if not equal +273F:04E7  EB 16                                jmp     short loc_55            ; (04FF) + +273F:04E9                       loc_52:                                         ;  xref 273F:04DB +273F:04E9  B4 12                                mov     ah,12h +273F:04EB  B3 10                                mov     bl,10h                  ; bl=Return Config Info +273F:04ED  CD 10                                int     10h                     ; Video display EGA/VGA special + +273F:04EF  80 FB 10                             cmp     bl,10h                  ; Not supported +273F:04F2  74 03                                je      loc_54 +273F:04F4                       loc_53:                                         ;  xref 273F:04D2, 04E0 +273F:04F4  E9 00C9                              jmp     loc_56 + +; Computer doesn't support EGA or VGA  +273F:04F7                       loc_54: +273F:04F7  B8 0002                              mov     ax,2 +273F:04FA  B6 01                                mov     dh,1 +273F:04FC  E8 3AA5                              call    display_message + +; Game will run in VGA mode +273F:04FF                       loc_55: +273F:04FF  C6 06 0743 13                        mov     video_mode, 13h                ; 3200x200x256 mode +273F:0504  C6 06 0742 01                        mov     video_style, VIDEO_STYLE_VGA   ; Flag for VGA mode +273F:0509  C7 06 0744 304E                      mov     show_screen_proc, offset vga_show_screen +273F:050F  C7 06 074A 0008                      mov     char_width, 8 +273F:0515  C7 06 0746 FA00                      mov     screen_size, SCREEN_HEIGHT*SCREEN_WIDTH +273F:051B  C7 06 0748 0140                      mov     screen_width, SCREEN_WIDTH +273F:0521  C7 06 074C 0A00                      mov     menubar_block_size, MENUBAR_Y_SIZE*SCREEN_WIDTH +273F:0527  C7 06 074E 346D                      mov     data_555,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 úBA 48C6                              mov     dx,offset timer_handler +273F:06AD  CD 21                                int     21h                     ; DOS Services  ah=function 25h +                                                                                ;  set intrpt vector al to ds:dx +273F:06AF  1F                                   pop     ds +273F:06B0  80 0E 073C 04                        or      status_flags, STATUS_TIMER_SET +273F:06B5  B9 5D38                              mov     cx,5D38h +273F:06B8  B0 36                                mov     al,36h                  ; '6' +273F:06BA  E6 43                                out     43h,al                  ; port 43h, 8253 timer control +273F:06BC  EB 00                                jmp     short $+2               ; delay for I/O +273F:06BE  EB 00                                jmp     short $+2               ; delay for I/O +273F:06C0  8A C1                                mov     al,cl +273F:06C2  E6 40                                out     40h,al                  ; port 40h, 8253 timer 0 clock +273F:06C4  EB 00                                jmp     short $+2               ; delay for I/O +273F:06C6  EB 00                                jmp     short $+2               ; delay for I/O +273F:06C8  8A C5                                mov     al,ch +273F:06CA  E6 40                                out     40h,al                  ; port 40h, 8253 timer 0 clock +273F:06CC  B8 3524                              mov     ax,3524h +273F:06CF  CD 21                                int     21h                     ; DOS Services  ah=function 35h +                                                                                ;  get intrpt vector al in es:bx +273F:06D1  2E: 89 1E 04B2                       mov     cs:old_critical_int_proc, bx +273F:06D6  8C C0                                mov     ax,es +273F:06D8  2E: A3 04B4                          mov     cs:old_critical_int_proc+2,ax +273F:06DC  B8 2524                              mov     ax,2524h +273F:06DF  1E                                   push    ds +273F:06E0  0E                                   push    cs +273F:06E1  1F                                   pop     ds +273F:06E2 úBA 0944                              mov     dx,offset critical_handler ; Set new critical error handler +273F:06E5  CD 21                                int     21h                     ; DOS Services  ah=function 25h +                                                                                ;  set intrpt vector al to ds:dx +273F:06E7  1F                                   pop     ds +273F:06E8  80 0E 073C 10                        or      status_flags, STATUS_CRITICAL_SET +273F:06ED  B8 3509                              mov     ax,3509h +273F:06F0  CD 21                                int     21h                     ; DOS Services  ah=function 35h +                                                                                ;  get intrpt vector al in es:bx +273F:06F2  2E: 89 1E 04AE                       mov     cs:old_kbd_int_proc, bx +273F:06F7  8C C0                                mov     ax,es +273F:06F9  2E: A3 04B0                          mov     word ptr cs:old_kbd_int_proc+2, ax +273F:06FD  B8 2509                              mov     ax,2509h +273F:0700  1E                                   push    ds +273F:0701  0E                                   push    cs +273F:0702  1F                                   pop     ds +273F:0703 úBA 94DB                              mov     dx,offset keyboard_handler ; Set new keyboard handler +273F:0706  CD 21                                int     21h                     ; DOS Services  ah=function 25h +                                                                                ;  set intrpt vector al to ds:dx +273F:0708  1F                                   pop     ds +273F:0709  80 0E 073C 40                        or      status_flags, STATUS_KEYBOARD_SET +273F:070E  B4 19                                mov     ah,19h +273F:0710  CD 21                                int     21h                     ; DOS Services  ah=function 19h +                                                                                ;  get default drive al  (0=a:) +273F:0712  A2 0786                              mov     default_drive, al  +273F:0715  CD 11                                int     11h                     ; Put equipment bits in ax +273F:0717  A8 C0                                test    al,0C0h                 ; How many floppy drives attached? +273F:0719  75 05                                jnz     loc_59                  ; Jump if not zero +273F:071B  80 0E 073D 80                        or      status_flags2, FLAG_HAS_FLOPPY_DRIVE +273F:0720                       loc_59:                                         ;  xref 273F:0719 +273F:0720  B8 3300                              mov     ax,3300h +273F:0723  CD 21                                int     21h                     ; DOS Services  ah=function 33h +                                                                                ;  get ctrl-break flag in dl +273F:0725  88 16 073E                           mov     old_ctrl_break_flag, dl +273F:0729  B8 3301                              mov     ax,3301h +273F:072C  B2 00                                mov     dl,0 +273F:072E  CD 21                                int     21h                     ; DOS Services  ah=function 33h +                                                                                ;  set ctrl-break flag dl=off/on +273F:0730  80 0E 073C 08                        or      status_flags, STATUS_CTRL_BREAK_SET +273F:0735  B8 0040                              mov     ax,40h +273F:0738  8E C0                                mov     es,ax +273F:073A  26: A0 0017                          mov     al,es:keybd_flags_1     ; (0040:0017=0) +273F:073E  A2 073F                              mov     data_546,al             ; (31E4:073F=1) +273F:0741  B4 0F                                mov     ah,0Fh +273F:0743  CD 10                                int     10h                     ; Video display   ah=functn 0Fh +                                                                                ;  get state, al=mode, bh=page +                                                                                ;   ah=columns on screen +273F:0745  A2 073B                              mov     data_542,al             ; (31E4:073B=0) +273F:0748  B4 00                                mov     ah,0 +273F:074A  A0 0743                              mov     al,video_mode           ; (31E4:0743=0) +273F:074D  CD 10                                int     10h                     ; Video display   ah=functn 00h +                                                                                ;  set display mode in al +273F:074F  80 0E 073C 01                        or      status_flags, STATUS_VIDEO_MODE_SET +273F:0754  80 3E 0742 01                        cmp     video_style, VIDEO_STYLE_VGA +273F:0759  75 03                                jne     loc_60                  ; Jump if not equal +273F:075B  E8 3A27                              call    set_upper_vga_palette +273F:075E                       loc_60:                                         ;  xref 273F:0759 +273F:075E  E8 6E1B                              call    show_startup            ; (757C) + +273F:0761  C7 06 11D6 00A0                      mov     mouse_x2, 160           ; Default mouse pos to center +273F:0767  C7 06 11D1 00A0                      mov     mouse_x,  160 +273F:076D  C7 06 11D8 0064                      mov     mouse_y2, 100 +273F:0773  C7 06 11D3 0064                      mov     mouse_y,  100 + +273F:0779  B8 0000                              mov     ax,0 +273F:077C  CD 33                                int     33h                     ; Mouse driver    ax=func 0000h +                                                                                ;  installed?, ax=0 no, =-1 yes +                                                                                ;   bx=number of mouse buttons +273F:077E  0B C0                                or      ax,ax                   ; Zero ? +273F:0780  74 45                                jz      loc_61                  ; Mouse not installed +273F:0782  1E                                   push    ds +273F:0783  0E                                   push    cs +273F:0784  07                                   pop     es +273F:0785 úBA 1EE8                              mov     dx,offset mouse_handler +273F:0788  B9 007F                              mov     cx,7Fh +273F:078B  B8 000C                              mov     ax,0Ch +273F:078E  CD 33                                int     33h                     ; Mouse driver    ax=func 000Ch +                                                                                ;  set user handler at es:dx +                                                                                ;   cx=event mask +273F:0790  1F                                   pop     ds +273F:0791  80 0E 073C 80                        or      status_flags, STATUS_MOUSE_HANDLER_SET +273F:0796  B9 0000                              mov     cx,0 +273F:0799  BA 027F                              mov     dx, 639 +273F:079C  B8 0007                              mov     ax,7 +273F:079F  CD 33                                int     33h                     ; Mouse driver    ax=func 0007h +                                                                                ;  set horz range 0 - 639 +273F:07A1  B9 0000                              mov     cx,0 +273F:07A4  BA 00C6                              mov     dx,0C6h +273F:07A7  B8 0008                              mov     ax,8 +273F:07AA  CD 33                                int     33h                     ; Mouse driver    ax=func 0008h +                                                                                ;  set vert range 0 - 198 +273F:07AC  B8 0003                              mov     ax,3 +273F:07AF  CD 33                                int     33h                     ; Mouse driver    ax=func 0003h +                                                                                ;  get position, cx=horz,dx=vert +                                                                                ;   bx=mouse button status bits +273F:07B1  88 1E 11D5                           mov     mouse_buttons, bl       ; (31E4:11D5=0) +273F:07B5  D1 E9                                shr     cx,1                    ; Change 0-640 horiz to 0-320 +273F:07B7  89 0E 11D6                           mov     mouse_x2,cx             ; +273F:07BB  89 0E 11D1                           mov     mouse_x, cx +273F:07BF  89 16 11D8                           mov     mouse_y2,dx +273F:07C3  89 16 11D3                           mov     mouse_y, dx +273F:07C7                       loc_61:                                         ;  xref 273F:0780 +273F:07C7  80 26 11D0 FD                        and     menubar_state, 0FDh  ; (31E4:11D0=3) +273F:07CC  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:04B6, AA1E + +273F:07CD                       sub_10: +273F:07CD  8C D3                                mov     bx,ss +273F:07CF  8C C0                                mov     ax,es +273F:07D1  2B D8                                sub     bx,ax +273F:07D3  8B C4                                mov     ax,sp +273F:07D5  B1 04                                mov     cl,4 +273F:07D7  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:07D9  03 D8                                add     bx,ax +273F:07DB  83 C3 03                             add     bx,3 +273F:07DE  89 1E 0740                           mov     data_547,bx             ; (31E4:0740=0) +273F:07E2  B4 4A                                mov     ah,4Ah +273F:07E4  CD 21                                int     21h                     ; DOS Services  ah=function 4Ah +                                                                                ;  change memory allocation +                                                                                ;   bx=bytes/16, es=mem segment +273F:07E6  BB FFFF                              mov     bx,0FFFFh +273F:07E9  B4 48                                mov     ah,48h +273F:07EB  CD 21                                int     21h                     ; DOS Services  ah=function 48h +                                                                                ;  allocate memory, bx=bytes/16 +273F:07ED              vga_no_implementation    retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6614 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                     sub_11     proc    near +273F:07EE  C6 06 38B0 01                        mov     data_781, 1 +273F:07F3  80 0E 11D0 01                        or      menubar_state, 1   ; (273F:11D0=56h) +273F:07F8  FF 16 075E                           call    [show_cursor_proc] +273F:07FC  8C DD                                mov     bp,ds +273F:07FE  A1 4CE6                              mov     ax, talk_dialog_buffer +273F:0801  8E C0                                mov     es, ax +273F:0803  B1 03                                mov     cl,3 +273F:0805  A1 11D8                              mov     ax, mouse_y2 +273F:0808  A3 0784                              mov     saved_mouse_y, ax +273F:080B  A1 11D6                              mov     ax, mouse_x2 +273F:080E  A3 0782                              mov     saved_mouse_x, ax +273F:0811  A1 076C                              mov     ax, menu_items_proc +273F:0814  26: A3 3368                          mov     es:data_78e,ax          ; (0874:3368=4758h) +273F:0818  A0 9835                              mov     al, num_inventory_items +273F:081B  26: A2 3360                          mov     es:data_76e,al          ; (0874:3360=0FFh) +273F:081F  A1 BC49                              mov     ax, num_groats +273F:0822  26: A3 337E                          mov     es:data_88e,ax          ; (0874:337E=0) +273F:0826  A1 4CE4                              mov     ax,word ptr ds:[data_segment2] +273F:0829  26: A3 3376                          mov     es:data_84e,ax          ; (0874:3376=0A321h) +273F:082D  A1 4CF2                              mov     ax, font_segment +273F:0830  26: A3 337B                          mov     es:data_86e,ax          ; (0874:337B=5806h) +273F:0834  A1 4CF0                              mov     ax, font2_segment +273F:0837  26: A3 3370                          mov     es:data_82e,ax          ; (0874:3370=0F5Eh) +273F:083B  26: C7 06 3362 0000                  mov     word ptr es:data_77e,0  ; (0874:3362=0AF06h) +273F:0842  A1 1924                              mov     ax, hotspot_id +273F:0845  26: A3 3358                          mov     es:data_73e,ax          ; (0874:3358=5E69h) +273F:0849  A1 9832                              mov     ax, room_number +273F:084C  26: A3 3356                          mov     es:data_72e,ax          ; (0874:3356=289Ah) +273F:0850  A1 074C                              mov     ax, menubar_block_size +273F:0853  26: A3 336A                          mov     es:data_79e,ax          ; (0874:336A=7500h) +273F:0857  A1 0748                              mov     ax, screen_width +273F:085A  26: A3 3374                          mov     es:data_83e,ax          ; (0874:3374=1EA1h) +273F:085E  A1 076A                              mov     ax, display_character_proc +273F:0861  26: A3 336C                          mov     es:data_80e,ax          ; (0874:336C=9A07h) +273F:0865  A1 074A                              mov     ax, char_width +273F:0868  26: A3 336E                          mov     es:data_81e,ax          ; (0874:336E=8090h) +273F:086C  8B 36 076E                           mov     si, data_571 +273F:0870  8B 04                                mov     ax,[si] +273F:0872  26: A3 33DE                          mov     es:data_92e,ax          ; (0874:33DE=0A21Dh) +273F:0876  8B 44 02                             mov     ax,[si+2] +273F:0879  26: A3 33DC                          mov     es:data_91e,ax          ; (0874:33DC=11A2h) +273F:087D úBF 33E0                              mov     di,data_93e             ; (0874:33E0=0F2h) +273F:0880  B9 001B                              mov     cx,1Bh +273F:0883 úBE 0720                              mov     si,720h                 ; (273F:0720=0B8h) +273F:0886  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:0888  06                                   push    es +273F:0889  1F                                   pop     ds +273F:088A  C3                                   retn +                                     sub_11     endp +                                      +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              JUMP POINT +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +273F:088B ú8E C5         action_handle_2:       mov     es,bp +273F:088D úBF 65F3                              mov     di, offset player_action_support_record +273F:0890 úBE 3382                              mov     si, offset data_3382 +273F:0893  F7 04 FFFF                           test    word ptr [si],0FFFFh +273F:0897  78 37                                js      loc_65                  ; Jump if sign=1 +273F:0899                       loc_63:                                         ;  xref 273F:089F +273F:0899 úAD                                   lodsw                           ; String [si] to ax +273F:089A  0B C0                                or      ax,ax                   ; Zero ? +273F:089C  78 03                                js      loc_64                  ; Jump if sign=1 +273F:089E  A5                                   movsw                           ; Mov [si] to es:[di] +273F:089F  EB F8                                jmp     short loc_63            ; (0899) +273F:08A1                       loc_64:                                         ;  xref 273F:089C +273F:08A1  33 C0                                xor     ax,ax                   ; Zero register +273F:08A3  AB                                   stosw                           ; Store ax to es:[di] +273F:08A4  8E DD                                mov     ds,bp +273F:08A6  C6 06 9834 01                        mov     cursor_state, CURSORSTATE_ACTION +273F:08AB  A3 1924                              mov     hotspot_id, ax +273F:08AE úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:08B1  89 44 52                             mov     [si+HS_DEST_HOTSPOT],ax +273F:08B4  88 44 2A                             mov     [si+HS_ACTION_CTR],al +273F:08B7  88 44 FF                             mov     [si-1],al +273F:08BA  8B DE                                mov     bx,si +273F:08BC  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:08BF  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:08C2  89 44 42                             mov     [si+HS_V42], ax +273F:08C5  88 44 44                             mov     [si+HS_V44], al +273F:08C8  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:08CB  C7 47 01 65F3                        mov     word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], offset player_action_support_record +273F:08D0                       loc_65:                                     +273F:08D0  8E DD                                mov     ds,bp +273F:08D2  8B 0E 0782                           mov     cx, saved_mouse_x +273F:08D6  89 0E 11D6                           mov     mouse_x2, cx +273F:08DA  89 0E 11D1                           mov     mouse_x, cx +273F:08DE  8B 16 0784                           mov     dx, saved_mouse_y +273F:08E2  89 16 11D8                           mov     mouse_y2, dx +273F:08E6  89 16 11D3                           mov     mouse_y, dx +273F:08EA  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:08EC  B8 0004                              mov     ax,4 +273F:08EF  CD 33                                int     33h                     ; Mouse driver    ax=func 0004h +                                                                                ;  set position, cx=horz,dx=vert +273F:08F1  33 C0                                xor     ax,ax                   ; Zero register +273F:08F3  A2 11DA                              mov     mouse_buttons2, al +273F:08F6  A2 38B0                              mov     byte ptr ds:[38B0h],al  ; (273F:38B0=0EAh) +273F:08F9  80 26 11D0 FE                        and     menubar_state, 0FEh ; (273F:11D0=56h) +273F:08FE  FF 16 075E                           call    [show_cursor_proc] +273F:0902  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:04B9 + +273F:0903                       sub_12: +273F:0903  B4 62                                mov     ah,62h +273F:0905  CD 21                                int     21h                     ; DOS Services  ah=function 62h +                                                                                ;  get Program Segment Prefix bx +273F:0907  8E C3                                mov     es,bx +273F:0909  26: F6 06 0080 FF                    test    byte ptr es:data_8e,0FFh ; (0000:0080=0A0h) +273F:090F  74 31                                jz      loc_ret_70              ; Jump if zero +273F:0911  26: 8A 0E 0080                       mov     cl,es:data_8e           ; (0000:0080=0A0h) +273F:0916  32 ED                                xor     ch,ch                   ; Zero register +273F:0918 úBF 0081                              mov     di,data_8e+1            ; (0000:0081=1) + +273F:091B                       locloop_66:                                     ;  xref 273F:0940 +273F:091B  26: 8A 05                            mov     al,es:[di] +273F:091E  3C 65                                cmp     al,65h                  ; 'e' +273F:0920  75 07                                jne     loc_67                  ; Jump if not equal +                                                assume  ds:data_seg +273F:0922  80 36 0742 02                        xor     video_style, 2 +273F:0927  EB 14                                jmp     short loc_69            ; (093D) +273F:0929                       loc_67:                                         ;  xref 273F:0920 +273F:0929  3C 6D                                cmp     al,6Dh                  ; 'm' +273F:092B  75 07                                jne     loc_68                  ; Jump if not equal +273F:092D  80 36 5660 08                        xor     music_status,8 +273F:0932  EB 09                                jmp     short loc_69            ; (093D) +273F:0934                       loc_68:                                         ;  xref 273F:092B +273F:0934  3C 69                                cmp     al,69h                  ; 'i' +273F:0936  75 05                                jne     loc_69                  ; Jump if not equal +273F:0938  80 36 11D0 40                        xor     menubar_state, 40h   ; (31E4:11D0=3) '@' +273F:093D                       loc_69:                                         ;  xref 273F:0927, 0932, 0936 +273F:093D  83 C7 01                             add     di,1 +273F:0940  E2 D9                                loop    locloop_66              ; Loop if cx > 0 + + +273F:0942                       loc_ret_70:                                     ;  xref 273F:090F +273F:0942  C3                                   retn +273F:0943  00                   critical_error  db      0                       ;  xref 273F:019B, 01B2, 01E5, 01F3 +                                                                                ;            021F, 0249, 0397, 03CA +                                                                                ;            0944 +                                initialise      endp + + +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ +                                ; +                                ;                       External Entry Point +                                ; +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ + +273F:0944                    critical_handler   proc    far                     ;  xref 273F:06E2 +                                                assume  ds:seg_code +273F:0944  2E: C6 06 0943 01                    mov     cs:critical_error,1           ; (273F:0943=0) +273F:094A  32 C0                                xor     al,al                   ; Zero register +273F:094C  CF                                   iret                            ; Interrupt return +                             critical_handler   endp + +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ +                                ; +                                ;                       External Entry Point +                                ; +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ + +273F:094D  CB                   retf_proc       retf + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0074, 7097, 70BA, 8FB5 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:094E                clear_layer_rects      proc    near +273F:094E  1E                                   push    ds +273F:094F  07                                   pop     es +273F:0950 úBF 0992                              mov     di,offset rects_layer_0 +273F:0953  B8 FFFF                              mov     ax,0FFFFh +273F:0956  B9 0200                              mov     cx,200h +273F:0959  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +                                                assume  ds:data_seg +273F:095B  A1 4CE0                              mov     ax, current_room_id +273F:095E  A3 4CE2                              mov     data_segment, ax + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:00AC, 3CBD, 411B, 7BB4, 8FC5, A825 + +273F:0961                  clear_hotspot_rects: +273F:0961  1E                                   push    ds +273F:0962  07                                   pop     es +273F:0963 úBF 0790                              mov     di,offset hotspot_rects_list +273F:0966  B8 8181                              mov     ax,8181h +273F:0969  B9 0100                              mov     cx,100h +273F:096C  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:096E  C3                                   retn +                         clear_layer_rects      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0077, 709A, 70BD, 8FB8 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          room_load_layers      proc    near + +273F:096F                       loc_71:                                         ;  xref 273F:0977 +273F:096F  80 26 11D0 DF                        and     menubar_state, 0DFh +273F:0974  E8 F884                              call    read_and_validate_header +273F:0977  72 F6                                jc      loc_71                  ; Jump back if error occurred + +273F:0979  A1 4CE0                              mov     ax, current_room_id +273F:097C  50                                   push    ax +                                                assume  ds:seg_code +273F:097D  8B 1E 9832                           mov     bx, room_number +273F:0981  E8 0364                              call    get_room_resource_pointer + +; At this point SI points to the data list for the room. For cell room, it's room=8181h to si=>c108h + +273F:0984  BF 0D92                              mov     di, offset room_layers +273F:0987  83 C6 08                             add     si, ROOM_NUM_LAYERS +273F:098A  8A 2C                                mov     ch, [si]                ; Get # screens +273F:098C  83 C6 01                             add     si,1                    ; Move to first layer id +273F:098F  F7 06 BA25 FFFF                      test    viewing_room, 0FFFFh    ; Viewing room without being there? +273F:0995  74 03                                jz      loc_72 +273F:0997  80 C5 01                             add     ch,1                    ; If yes, inc # screens to load +273F:099A                       loc_72: +273F:099A  BB 0992                              mov     bx, offset rects_layer_0 +273F:099D  83 C3 4C                             add     bx, offset rects_layer_0 - offset rects_layer_0 ; 4Ch +273F:09A0  32 C9                                xor     cl, cl                  ; Starting at layer 0 + +273F:09A2                       loc_73:                                          +273F:09A2  51                                   push    cx +273F:09A3  56                                   push    si +273F:09A4  53                                   push    bx +273F:09A5  8B 04                                mov     ax,[si]                 ; Load the screen with palette +273F:09A7  E8 0226                              call    read_screen +273F:09AA  A1 4CE0                              mov     ax, current_room_segment +273F:09AD  89 05                                mov     [di], ax                ; Store seg for layer start +273F:09AF  57                                   push    di +273F:09B0  8E C0                                mov     es, ax +273F:09B2  33 FF                                xor     di,di                   ; Zero register +273F:09B4  FF 16 0750                           call    [segment_screen_proc] +273F:09B8  B1 04                                mov     cl,4 +273F:09BA  D3 EF                                shr     di,cl                   ; Convert to # paragraphs  +273F:09BC  01 3E 4CE0                           add     current_room_segment, di ; Increase by decoded size +273F:09C0  01 3E 4CE2                           add     data_segment, di +273F:09C4  5F                                   pop     di +273F:09C5  83 C7 02                             add     di,2 +273F:09C8  A1 0DA2                              mov     ax, rectangle_size      ; ax = 400h +273F:09CB  89 05                                mov     [di],ax                  +273F:09CD  83 C7 02                             add     di,2 +273F:09D0  5B                                   pop     bx +273F:09D1  81 C3 0100                           add     bx,100h +273F:09D5  5E                                   pop     si +273F:09D6  83 C6 02                             add     si,2 +273F:09D9  59                                   pop     cx +273F:09DA  80 C1 01                             add     cl,1 +273F:09DD  80 ED 01                             sub     ch,1                    ; Decrement number of layers +273F:09E0  75 C0                                jnz     loc_73                  ; Jump if not zero + +273F:09E2  58                                   pop     ax +273F:09E3  A3 4CE0                              mov     current_room_segment, ax +273F:09E6  C3                                   retn + +                          room_load_layers      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0081, 70C4, 8FBF +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:09E7                       sub_16          proc    near +273F:09E7 úBB 0ADE                              mov     bx,offset data_593      ; (31E4:0ADE=0) +273F:09EA  E8 000D                              call    sub_17                  ; (09FA) +273F:09ED úBB 0BDE                              mov     bx,offset data_599      ; (31E4:0BDE=0) +273F:09F0  E8 0007                              call    sub_17                  ; (09FA) +273F:09F3 úBB 0CDE                              mov     bx,offset data_601      ; (31E4:0CDE=0) +273F:09F6  E8 0001                              call    sub_17                  ; (09FA) +273F:09F9  C3                                   retn +                                sub_16          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:09EA, 09F0, 09F6 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:09FA                       sub_17          proc    near +273F:09FA  B9 0006                              mov     cx,6 + +273F:09FD                       locloop_74:                                     ;  xref 273F:0A52 +273F:09FD  51                                   push    cx +273F:09FE  53                                   push    bx +273F:09FF  B5 0A                                mov     ch,0Ah +273F:0A01                       loc_75:                                         ;  xref 273F:0A4E +273F:0A01  53                                   push    bx +273F:0A02  B1 06                                mov     cl,6 +273F:0A04  32 D2                                xor     dl,dl                   ; Zero register +273F:0A06                       loc_76:                                         ;  xref 273F:0A45 +273F:0A06  80 3F FF                             cmp     byte ptr [bx],0FFh +273F:0A09  75 04                                jne     loc_77                  ; Jump if not equal +273F:0A0B  32 D2                                xor     dl,dl                   ; Zero register +273F:0A0D  EB 30                                jmp     short loc_81            ; (0A3F) +273F:0A0F                       loc_77:                                         ;  xref 273F:0A09 +273F:0A0F  F6 C2 02                             test    dl,2 +273F:0A12  74 0A                                jz      loc_78                  ; Jump if zero +273F:0A14  80 7F FF FF                          cmp     byte ptr [bx-1],0FFh +273F:0A18  75 04                                jne     loc_78                  ; Jump if not equal +273F:0A1A  C6 47 FF FE                          mov     byte ptr [bx-1],0FEh +273F:0A1E                       loc_78:                                         ;  xref 273F:0A12, 0A18 +273F:0A1E  F6 C2 04                             test    dl,4 +273F:0A21  74 0A                                jz      loc_79                  ; Jump if zero +273F:0A23  80 7F 01 FF                          cmp     byte ptr [bx+1],0FFh +273F:0A27  75 04                                jne     loc_79                  ; Jump if not equal +273F:0A29  C6 47 01 FE                          mov     byte ptr [bx+1],0FEh +273F:0A2D                       loc_79:                                         ;  xref 273F:0A21, 0A27 +273F:0A2D  80 7F FF FF                          cmp     byte ptr [bx-1],0FFh +273F:0A31  74 03                                je      loc_80                  ; Jump if equal +273F:0A33  80 CA 02                             or      dl,2 +273F:0A36                       loc_80:                                         ;  xref 273F:0A31 +273F:0A36  80 7F 01 FF                          cmp     byte ptr [bx+1],0FFh +273F:0A3A  74 03                                je      loc_81                  ; Jump if equal +273F:0A3C  80 CA 04                             or      dl,4 +273F:0A3F                       loc_81:                                         ;  xref 273F:0A0D, 0A3A +273F:0A3F  83 C3 12                             add     bx,12h +273F:0A42  80 E9 01                             sub     cl,1 +273F:0A45  75 BF                                jnz     loc_76                  ; Jump if not zero +273F:0A47  5B                                   pop     bx +273F:0A48  83 C3 01                             add     bx,1 +273F:0A4B  80 ED 01                             sub     ch,1 +273F:0A4E  75 B1                                jnz     loc_75                  ; Jump if not zero +273F:0A50  5B                                   pop     bx +273F:0A51  59                                   pop     cx +273F:0A52  E2 A9                                loop    locloop_74              ; Loop if cx > 0 + +273F:0A54  C3                                   retn +                                sub_17          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1549, 15EF +                                ; di = anim slot entry +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0A55                    room_add_layer     proc    near +273F:0A55  8B 05                                mov     ax, [di]                ; Get X start +273F:0A57  8B 5D 04                             mov     bx, [di+ANIM_WIDTH]     ; Get width +273F:0A5A  03 D8                                add     bx, ax +273F:0A5C  B1 05                                mov     cl,5 +273F:0A5E  D3 E8                                shr     ax,cl                   ; ax=X rect start +273F:0A60  D3 EB                                shr     bx,cl                   ; bx=X rect end +273F:0A62  2B D8                                sub     bx, ax +273F:0A64  83 C3 01                             add     bx, 1                   ; bx = num horiz rects +273F:0A67  89 1E 0DAA                           mov     num_horiz_rects, bx +273F:0A6B  8B D8                                mov     bx, ax + +273F:0A6D  8B 45 02                             mov     ax, [di+ANIM_Y]           ; Get Y position +273F:0A70  8B 55 15                             mov     dx, [di+ANIM_HEIGHT_COPY] ; Get height copy +273F:0A73  2D 0008                              sub     ax, 8 +273F:0A76  03 D0                                add     dx, ax +273F:0A78  83 EA 01                             sub     dx, 1 +273F:0A7B  B1 05                                mov     cl, 5 +273F:0A7D  D3 E8                                shr     ax, cl                  ; ax=Y rect start +273F:0A7F  D3 EA                                shr     dx, cl                  ; dx=Y rect end +273F:0A81  2B D0                                sub     dx, ax                  ; dx=num vert rects-1 +273F:0A83  89 1E 0DA6                           mov     rect_x_start, bx +273F:0A87  89 16 0DAC                           mov     num_vert_rects, dx +273F:0A8B  83 06 0DAC 01                        add     num_vert_rects, 1 +273F:0A90  03 C2                                add     ax, dx +273F:0A92  A3 0DA8                              mov     rect_y_end, ax + +273F:0A95  D1 E0                                shl     ax,1                    ; ax=y*2 +273F:0A97  8B F8                                mov     di,ax                   ; di=y*2 +273F:0A99  B1 03                                mov     cl,3 +273F:0A9B  D3 E0                                shl     ax,cl                   ; ax=y*16 +273F:0A9D  03 C7                                add     ax,di                   ; ax=y*18 +273F:0A9F  03 C3                                add     ax,bx                   ; ax = yend*18 + x +273F:0AA1  8B D8                                mov     bx,ax                   ; ax/bx = list start + +273F:0AA3  8B 0E 0DAA                           mov     cx, num_horiz_rects  + +; cx = num horiz rects, +273F:0AA7                       locloop_82: +273F:0AA7  51                                   push    cx +273F:0AA8  53                                   push    bx +273F:0AA9  8B 16 0DA6                           mov     dx, rect_x_start         +273F:0AAD  83 EA 04                             sub     dx, 4 +273F:0AB0  72 3F                                jc      loc_86                  ; Jump if carry Set +273F:0AB2 úBF 0A92                              mov     di, offset rects_layer_1 +273F:0AB5  BE 0D96                              mov     si, offset room_layers + 4 ; layer 1 +273F:0AB8  B9 0003                              mov     cx, 3                   ; 3 layers + +273F:0ABB                       locloop_83:                                     ;  xref 273F:0AC7 +273F:0ABB  80 39 FF                             cmp     byte ptr [bx+di], 0FFh  ; Rect was empty? +273F:0ABE  75 0B                                jne     loc_84                  ; If yes, then handle +273F:0AC0  81 C7 0100                           add     di, 100h                ; Check remaining layers +273F:0AC4  83 C6 04                             add     si, 4                   ; Next room_layers entry +273F:0AC7  E2 F2                                loop    locloop_83              ; Loop layers + +273F:0AC9  EB 26                                jmp     short loc_86             +273F:0ACB                       loc_84: +273F:0ACB  8B E9                                mov     bp,cx                   ; Save layer # +273F:0ACD  8B 0E 0DAC                           mov     cx,num_vert_rects +273F:0AD1  A1 0DA8                              mov     ax,rect_y_end +273F:0AD4  2D 0004                              sub     ax,4 + +273F:0AD7                       locloop_85:                                     ;  xref 273F:0AEF +273F:0AD7  50                                   push    ax +273F:0AD8  51                                   push    cx +273F:0AD9  57                                   push    di +273F:0ADA  52                                   push    dx +273F:0ADB  53                                   push    bx +273F:0ADC  56                                   push    si +273F:0ADD  FF 16 075C                           call    [add_rect_proc]         ; Add rect area (32x32) +273F:0AE1  5E                                   pop     si +273F:0AE2  5B                                   pop     bx +273F:0AE3  5A                                   pop     dx +273F:0AE4  5F                                   pop     di +273F:0AE5  59                                   pop     cx +273F:0AE6  58                                   pop     ax +273F:0AE7  83 EB 12                             sub     bx, FULL_HORIZ_RECTS +273F:0AEA  2D 0001                              sub     ax, 1 +273F:0AED  72 02                                jc      loc_86                  ; Loop for remaining rows +273F:0AEF  E2 E6                                loop    locloop_85 + +273F:0AF1                       loc_86:                                         +273F:0AF1  5B                                   pop     bx +273F:0AF2  83 C3 01                             add     bx, 1 +273F:0AF5  59                                   pop     cx +273F:0AF6  83 06 0DA6 01                        add     rect_x_start, 1     +273F:0AFB  E2 AA                                loop    locloop_82              ; Loop for remaining cols + +273F:0AFD  C3                                   retn +                             room_add_layer     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0084, 70C7, 8FC2 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0AFE                       sub_19          proc    near +273F:0AFE úBE 0B38                              mov     si,offset data_598      ; (31E4:0B38=0) +273F:0B01  B9 0003                              mov     cx,3 + +273F:0B04                       locloop_87:                                     ;  xref 273F:0B25 +273F:0B04 úBB 0009                              mov     bx,offset copyright+9   ; (31E4:0009=' ') +273F:0B07                       loc_88:                                         ;  xref 273F:0B1F +273F:0B07  80 38 FF                             cmp     byte ptr [bx+si],0FFh +273F:0B0A  74 10                                je      loc_89                  ; Jump if equal +273F:0B0C  C6 40 12 FE                          mov     byte ptr [bx+si+12h],0FEh +273F:0B10  C6 40 24 FE                          mov     byte ptr [bx+si+24h],0FEh +273F:0B14  C6 40 36 FE                          mov     byte ptr [bx+si+36h],0FEh +273F:0B18  C6 40 48 FE                          mov     byte ptr [bx+si+48h],0FEh +273F:0B1C                       loc_89:                                         ;  xref 273F:0B0A +273F:0B1C  83 EB 01                             sub     bx,1 +273F:0B1F  73 E6                                jnc     loc_88                  ; Jump if carry=0 +273F:0B21  81 C6 0100                           add     si,100h +273F:0B25  E2 DD                                loop    locloop_87              ; Loop if cx > 0 + +273F:0B27  C3                                   retn +                                sub_19          endp + +                                 +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1546, 15EC, 1631, 3CF9 +                                ; di = anim slot +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         flag_covered_cells     proc    near +273F:0B28  50                                   push    ax +273F:0B29  8B 5D 02                             mov     bx, [di+ANIM_Y] +273F:0B2C  83 EB 08                             sub     bx, MENUBAR_Y_SIZE +273F:0B2F  8B C3                                mov     ax, bx                  ; bx = Y start +273F:0B31  03 45 06                             add     ax, [di+ANIM_HEIGHT] +273F:0B34  2D 0001                              sub     ax, 1                   ; ax = Y end +273F:0B37  B1 05                                mov     cl, 5 +273F:0B39  D3 E8                                shr     ax, cl                  ; ax=Y end/32 +273F:0B3B  D3 EB                                shr     bx, cl                  ; bx=Y start/32 +273F:0B3D  2B C3                                sub     ax, bx +273F:0B3F  05 0001                              add     ax, 1                   ; ax=# vert rects + +273F:0B42  50                                   push    ax +273F:0B43  D1 E3                                shl     bx, 1 +273F:0B45  8B D3                                mov     dx, bx +273F:0B47  B1 03                                mov     cl, 3 +273F:0B49  D3 E3                                shl     bx, cl +273F:0B4B  03 DA                                add     bx, dx                   + +; The screen is broken down into a set of 10x6 32x32 cells. +; bx = vertical cell rect block * 10 + +273F:0B4D  8B 15                                mov     dx, [di]                ; dx = X start +273F:0B4F  8B 45 04                             mov     ax, [di+ANIM_WIDTH] +273F:0B52  03 C2                                add     ax, dx +273F:0B54  2D 0001                              sub     ax, 1                   ; ax = X end +273F:0B57  B1 05                                mov     cl, 5 +273F:0B59  D3 EA                                shr     dx, cl                  ; dx = X start/32 +273F:0B5B  D3 E8                                shr     ax, cl                  ; ax = X end/32 +273F:0B5D  2B C2                                sub     ax, dx +273F:0B5F  03 DA                                add     bx, dx                  ; bx = start rect index +273F:0B61 ú81 C3 0790                           add     bx, offset hotspot_rects_list +273F:0B65  05 0001                              add     ax, 1                   ; ax = # horiz rects +273F:0B68  5D                                   pop     bp +273F:0B69  5A                                   pop     dx + +; Loop, bp = number of cell rows, ax = number of cell cols + +273F:0B6A                       loc_90: +273F:0B6A  8B C8                                mov     cx, ax +273F:0B6C  53                                   push    bx + +273F:0B6D                       locloop_91:                    +273F:0B6D  08 17                                or      [bx], dl                ; Enable cell rect +273F:0B6F  80 8F 0100 01                        or      byte ptr [bx+100h], 1 +273F:0B74  83 C3 01                             add     bx, 1 +273F:0B77  E2 F4                                loop    locloop_91              ; Loop through horiz # cells + +273F:0B79  5B                                   pop     bx +273F:0B7A  83 C3 12                             add     bx, FULL_HORIZ_RECTS +273F:0B7D  83 ED 01                             sub     bp, 1                   ; Loop through vert # cells +273F:0B80  75 E8                                jnz     loc_90 +273F:0B82  C3                                   retn +                         flag_covered_cells     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1447, 3307, 6D22, 6FDD, 8B52 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0B83                       sub_21          proc    near +273F:0B83                       loc_92:                                         ;  xref 273F:23E7, 2450, 8CD8, 9333 +273F:0B83 ú51                                   push    cx +273F:0B84  B1 03                                mov     cl,3 +273F:0B86  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:0B88  D3 E3                                shl     bx,cl                   ; Shift w/zeros fill +273F:0B8A  D3 E5                                shl     bp,cl                   ; Shift w/zeros fill +273F:0B8C  D3 E2                                shl     dx,cl                   ; Shift w/zeros fill +273F:0B8E  59                                   pop     cx + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:3291, 62D6, 8BE5, 8BFA + +273F:0B8F                       sub_22: +273F:0B8F                       loc_93:                                         ;  xref 273F:2272, 33B0 +273F:0B8F ú51                                   push    cx +273F:0B90  03 E8                                add     bp,ax +273F:0B92  03 D3                                add     dx,bx +273F:0B94  83 C5 1F                             add     bp,1Fh +273F:0B97  83 C2 1F                             add     dx,1Fh +273F:0B9A  B1 05                                mov     cl,5 +273F:0B9C  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:0B9E  D3 EB                                shr     bx,cl                   ; Shift w/zeros fill +273F:0BA0  D3 ED                                shr     bp,cl                   ; Shift w/zeros fill +273F:0BA2  D3 EA                                shr     dx,cl                   ; Shift w/zeros fill +273F:0BA4  2B E8                                sub     bp,ax +273F:0BA6  2B D3                                sub     dx,bx +273F:0BA8  93                                   xchg    bx,ax +273F:0BA9  05 0004                              add     ax,4 +273F:0BAC  B1 12                                mov     cl,12h +273F:0BAE  F6 E1                                mul     cl                      ; ax = reg * al +273F:0BB0  03 C3                                add     ax,bx +273F:0BB2  05 0794                              add     ax, offset hotspot_rects_list + 4 ; 794h +273F:0BB5  8B D8                                mov     bx,ax +273F:0BB7  58                                   pop     ax +273F:0BB8                       loc_94:                                         ;  xref 273F:0BCD +273F:0BB8  53                                   push    bx +273F:0BB9  8B CD                                mov     cx,bp + +273F:0BBB                       locloop_95:                                     ;  xref 273F:0BC4 +273F:0BBB  08 07                                or      [bx],al +273F:0BBD  08 87 0100                           or      byte ptr ds:[100h][bx],al ; (273F:0100=6) +273F:0BC1  83 C3 01                             add     bx,1 +273F:0BC4  E2 F5                                loop    locloop_95              ; Loop if cx > 0 + +273F:0BC6  5B                                   pop     bx +273F:0BC7  83 C3 12                             add     bx,12h +273F:0BCA  83 EA 01                             sub     dx,1 +273F:0BCD  75 E9                                jnz     loc_94                  ; Jump if not zero +273F:0BCF  C3                                   retn +                                sub_21          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:09A7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0BD0                    read_screen        proc    near +273F:0BD0  53                                   push    bx +273F:0BD1  51                                   push    cx +273F:0BD2  57                                   push    di +273F:0BD3  8B 0E 4CE2                           mov     cx, data_segment +273F:0BD7  BA 0080                              mov     dx, ENTRY_READ_BUFFER +273F:0BDA  E8 F737                              call    read_entry              ; (0314) +273F:0BDD  A1 4CE2                              mov     ax, data_segment +273F:0BE0  8E C0                                mov     es,ax +273F:0BE2  26: A1 0080                          mov     ax,es:[ENTRY_READ_BUFFER] +273F:0BE6  86 E0                                xchg    ah,al +273F:0BE8  25 FFFE                              and     ax,0FFFEh +273F:0BEB  3D 0140                              cmp     ax,140h +273F:0BEE  74 2F                                je      loc_97                  ; Jump if equal + +273F:0BF0  A1 4CE4                              mov     ax, data_segment2 +273F:0BF3  8E C0                                mov     es,ax +273F:0BF5  8B 16 4CE2                           mov     dx,data_segment +273F:0BF9  E8 2D8E                              call    decode_file_entry +273F:0BFC  8B 1E 9832                           mov     bx, room_number         ; Check if already processing +273F:0C00  3A 1E 1456                           cmp     bl, current_room_num    ; this room (if so, no need +273F:0C04  74 15                                je      loc_96                  ; to reload palette) +273F:0C06  53                                   push    bx +273F:0C07  E8 00DE                              call    get_room_resource_pointer +273F:0C0A  8B 44 09                             mov     ax, [si+ROOM_FIRST_LAYER] +273F:0C0D  25 FFE0                              and     ax, 0FFE0h +273F:0C10  2D 0001                              sub     ax,1 +273F:0C13  E8 2EB1                              call    read_palette            ; Get the palette +273F:0C16  5B                                   pop     bx +273F:0C17  88 1E 1456                           mov     current_room_num, bl +273F:0C1B                       loc_96: +273F:0C1B  5F                                   pop     di +273F:0C1C  59                                   pop     cx +273F:0C1D  5B                                   pop     bx +273F:0C1E  C3                                   retn +273F:0C1F                       loc_97:                                         ;  xref 273F:0BEE +273F:0C1F  83 3E 9832 31                        cmp     room_number, 31h +273F:0C24  75 05                                jne     loc_98                  ; Jump if not equal +273F:0C26  B8 F1FF                              mov     ax,0F1FFh +273F:0C29  EB 0A                                jmp     short loc_99            ; (0C35) +273F:0C2B                       loc_98:                                         ;  xref 273F:0C24 +273F:0C2B  83 3E 9832 06                        cmp     room_number, 6 +273F:0C30  75 0D                                jne     loc_100                 ; Jump if not equal +273F:0C32  B8 45FF                              mov     ax,45FFh +273F:0C35                       loc_99:                                         ;  xref 273F:0C29 +273F:0C35  E8 2E8F                              call    read_palette            ; (3AC7) +273F:0C38  C6 06 1456 FF                        mov     current_room_num, 0FFh +273F:0C3D  EB 23                                jmp     short loc_101           ; (0C62) +273F:0C3F                       loc_100:                                        ;  xref 273F:0C30 +273F:0C3F  80 3E 1456 FF                        cmp     current_room_num, 0FFh +273F:0C44  75 1C                                jne     loc_101                 ; Jump if not equal +273F:0C46  A0 00B1                              mov     al,data_526             ; (31E4:00B1=1) +273F:0C49  2C 05                                sub     al,5 +273F:0C4B  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0C4D  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0C4F  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0C51  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0C53  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0C55  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0C57  0D 00FF                              or      ax,0FFh +273F:0C5A  E8 2E6A                              call    read_palette            ; (3AC7) +273F:0C5D  C6 06 1456 00                        mov     current_room_num, 0 +273F:0C62                       loc_101:                                        ;  xref 273F:0C3D, 0C44 +273F:0C62  A1 4CE4                              mov     ax, data_segment2 +273F:0C65  8E C0                                mov     es,ax +273F:0C67  8B 16 4CE2                           mov     dx,data_segment +273F:0C6B  E8 17FC                              call    ega_decode_entry +273F:0C6E  8B D1                                mov     dx,cx +273F:0C70  83 EA 01                             sub     dx,1 +273F:0C73  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0C75  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0C77  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0C79  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:0C7B  83 C2 01                             add     dx,1 +273F:0C7E  5F                                   pop     di +273F:0C7F  59                                   pop     cx +273F:0C80  5B                                   pop     bx +273F:0C81  C3                                   retn +                             read_screen        endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00A0 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0C82                   hotspots_load       proc    near +273F:0C82  BF 5EB8                              mov     di, offset hotspot_table_5 +273F:0C85  BB 0407                              mov     bx,407h +273F:0C88  E8 0006                              call    hotspots_load_2 +273F:0C8B úBF 623E                              mov     di, offset hotspot_table_3 +273F:0C8E  BB 270F                              mov     bx,270Fh + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:0C88 + +273F:0C91                   hotspots_load_2: +273F:0C91                       loc_102:                                        ;  xref 273F:0CA5, 0CBB, 0CC3 +273F:0C91 ú83 C3 01                             add     bx,1 +273F:0C94  8B 35                                mov     si,[di]                 ; Get hotspot offset +273F:0C96  83 FE FF                             cmp     si,0FFFFh +273F:0C99  74 2A                                je      loc_ret_106 +273F:0C9B  83 C7 09                             add     di,9                    ; Move to next hotspot header +273F:0C9E  8B 54 06                             mov     dx,[si+6]               ; Get room number +273F:0CA1  3B 16 9832                           cmp     dx, room_number         ; Is it the current room? +273F:0CA5  75 EA                                jne     loc_102                 ; No, so move to next hotspot +273F:0CA7  57                                   push    di +273F:0CA8 úBF B14E                              mov     di, offset animation_table +273F:0CAB  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:0CAE                       locloop_103: +273F:0CAE  3B 5D 1B                             cmp     bx,[di+ANIM_HOTSPOT_ID] ; Already present? +273F:0CB1  74 07                                je      loc_104                 ; If yes, don't add +273F:0CB3  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:0CB6  E2 F6                                loop    locloop_103             ; Check remaining entries + +273F:0CB8  EB 03                                jmp     short loc_105           ; Jump to add entry +273F:0CBA                       loc_104: +273F:0CBA  5F                                   pop     di +273F:0CBB  EB D4                                jmp     short loc_102           ; (0C91) +273F:0CBD                       loc_105:                                        ;  xref 273F:0CB8 +273F:0CBD  53                                   push    bx                      ; Add hotspot entry +273F:0CBE  E8 0008                              call    animation_load_entry_2 +273F:0CC1  5B                                   pop     bx +273F:0CC2  5F                                   pop     di +273F:0CC3  EB CC                                jmp     short loc_102           ; Check remaining hotspots + +273F:0CC5                       loc_ret_106: +273F:0CC5  C3                                   retn +                            hotspots_load       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:965C, 9690 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0CC6             animation_load_entry:     proc    near +273F:0CC6 úE8 001F                              call    get_room_resource_pointer + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:0CBE + +273F:0CC9             animation_load_entry_2: +273F:0CC9  F7 44 0B FFFF                        test    word ptr [si+HS_ANIM_OFFSET], 0FFFFh ; Already acive? +273F:0CCE  75 F5                                jnz     loc_ret_106             ; Jump if yes +273F:0CD0  80 7C 15 FF                          cmp     byte ptr [si+HS_LAYER], 0FFh ; Does hotspot have a layer? +273F:0CD4  74 EF                                je      loc_ret_106             ; Jump if no +273F:0CD6  80 64 07 7F                          and     byte ptr [si+7],7Fh     ; Deactivate any suppression bit on room # +273F:0CDA  8B 44 09                             mov     ax, [si+HS_LOAD_OFFSET] +273F:0CDD  F6 44 08 FF                          test    byte ptr [si+HS_LOAD_FLAG],0FFh     +273F:0CE1  75 02                                jnz     loc_108                 ; Jump if not zero +273F:0CE3  FF E0                                jmp     ax +273F:0CE5                       loc_108:                                        ;  xref 273F:0CE1 +273F:0CE5  E9 314C                              jmp     sequence_execute +                      animation_load_entry      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0092, 0981, 0C07, 0CC6, 10AE, 1205, 46A4 +                                ;                             46FE, 4703, 508F, 612B, 613D, 614D, 6267 +                                ;                             6397, 64EA, 65AA, 65C1, 715D, 7164, 716F +                                ;                             76C4, 79C8, 7BF4, 7C03, 7C0B, 8277, 827F +                                ;                             8E6C, 9E8E, 9EB5, 9EBD, 9EC9, 9EE4, 9EF3 +                                ;                             9F16, 9F59 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0CE8          get_room_resource_pointer    proc    near +273F:0CE8  8B C3                                mov     ax, bx + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:004F, 11D1, 1481, 1490, 1A98, 428C, 4531 +                                ;                             45C2, 45D1, 47E1, 547B, 5672, 58A2, 5AA7 +                                ;                             5B08, 5B82, 5BE6, 5C0E, 5CF1, 5D23, 5DC0 +                                ;                             5E90, 63BD, 6574, 664D, 82DB, 8422, 89D1 +                                ;                             8DAF, 8DC4, 99C2, 99FC, A158 + +273F:0CEA            get_room_resource_pointer2: +273F:0CEA  BE BF40                              mov     si, offset room_info_table +273F:0CED  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:0CF0  78 20                                js      loc_111                 ; Jump if sign=1 +273F:0CF2  3D 2710                              cmp     ax,2710h +273F:0CF5  73 08                                jae     loc_109                 ; Jump if above or = +273F:0CF7  BE 5D98                              mov     si, offset hotspot_table_2 +273F:0CFA  2D 03E8                              sub     ax, PLAYER_HOTSPOT_ID +273F:0CFD  EB 13                                jmp     short loc_111           ; (0D12) +273F:0CFF                       loc_109:                                        ;  xref 273F:0CF5 +273F:0CFF  3D 4E20                              cmp     ax,4E20h +273F:0D02  73 08                                jae     loc_110                 ; Jump if above or = +273F:0D04  BE 623E                              mov     si, offset hotspot_table_3 +273F:0D07  2D 2710                              sub     ax,2710h +273F:0D0A  EB 06                                jmp     short loc_111           ; (0D12) +273F:0D0C                       loc_110:                                        ;  xref 273F:0D02 +273F:0D0C úBE 63B1                              mov     si, offset hotspot_table_4 +273F:0D0F  2D 7530                              sub     ax,7530h +273F:0D12                       loc_111:                                        ;  xref 273F:0CF0, 0CFD, 0D0A +273F:0D12  03 F0                                add     si,ax +273F:0D14  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0D16  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0D18  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0D1A  03 F0                                add     si,ax +273F:0D1C  8B 34                                mov     si,[si]                 ; Get reference from table +273F:0D1E  C3                                   retn +                    get_room_resource_pointer   endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:62FC, 6943, 87DB, 87E4, 8E8A +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0D1F         get_room_resource_pointer3    proc    near +273F:0D1F  8B C3                                mov     ax,bx + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:1378, 5452, 596E, 59B8, 5B5D, 7EB4, 8A6D + +273F:0D21         get_room_resource_pointer4: +273F:0D21  BE BF40                              mov     si, offset room_info_table +273F:0D24  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:0D27  72 20                                jb      loc_114                 ; Jump if below +273F:0D29  3D 2710                              cmp     ax,2710h +273F:0D2C  73 08                                jae     loc_112                 ; Jump if above or = +273F:0D2E  BE 5D98                              mov     si, offset hotspot_table_2 +273F:0D31  2D 03E8                              sub     ax, PLAYER_HOTSPOT_ID +273F:0D34  EB 13                                jmp     short loc_114           ; (0D49) +273F:0D36                       loc_112:                                        ;  xref 273F:0D2C +273F:0D36  3D 4E20                              cmp     ax,4E20h +273F:0D39  73 08                                jae     loc_113                 ; Jump if above or = +273F:0D3B  BE 623E                              mov     si, offset hotspot_table_3 +273F:0D3E  2D 2710                              sub     ax,2710h +273F:0D41  EB 06                                jmp     short loc_114           ; (0D49) +273F:0D43                       loc_113:                                        ;  xref 273F:0D39 +273F:0D43  BE 63B1                              mov     si, offset hotspot_table_4 +273F:0D46  2D 7530                              sub     ax,7530h +273F:0D49                       loc_114:                                        ;  xref 273F:0D27, 0D34, 0D41 +273F:0D49  03 F0                                add     si,ax +273F:0D4B  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0D4D  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0D4F  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:0D51  03 F0                                add     si,ax +273F:0D53  C3                                   retn +                  get_room_resource_pointer3    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:669E, 66B3 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0D54                       sub_32          proc    near +273F:0D54  1E                                   push    ds +273F:0D55  1E                                   push    ds +273F:0D56  07                                   pop     es +273F:0D57  8E DD                                mov     ds,bp +273F:0D59  55                                   push    bp +273F:0D5A úBF 31E6                              mov     di,31E6h                ; (273F:31E6=0CDh) +273F:0D5D  26: C7 45 FE 0000                    mov     word ptr es:[di-2],0 +273F:0D63 úBE 623E                              mov     si, offset hotspot_table_3 +273F:0D66  BD 2710                              mov     bp,2710h +273F:0D69  E8 0003                              call    sub_33                  ; (0D6F) +273F:0D6C  5D                                   pop     bp +273F:0D6D  1F                                   pop     ds + +273F:0D6E                       loc_ret_115:                                    ;  xref 273F:0D74 +273F:0D6E  C3                                   retn +                                sub_32          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0D69 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0D6F                       sub_33          proc    near +273F:0D6F                       loc_116:                                        ;  xref 273F:0DAD +273F:0D6F ú8B 1C                                mov     bx,[si] +273F:0D71  83 FB FF                             cmp     bx,0FFFFh +273F:0D74  74 F8                                je      loc_ret_115             ; Jump if equal +273F:0D76  81 7F 06 03E8                        cmp     word ptr [bx+6], PLAYER_HOTSPOT_ID +273F:0D7B  75 2A                                jne     loc_118                 ; Jump if not equal +273F:0D7D  8A 44 08                             mov     al,[si+8] +273F:0D80  3C 0F                                cmp     al,0Fh +273F:0D82  74 06                                je      loc_117                 ; Jump if equal +273F:0D84  84 06 9836                           test    al,ds:data_55e          ; (0000:9836=46h) +273F:0D88  74 1D                                jz      loc_118                 ; Jump if zero +273F:0D8A                       loc_117:                                        ;  xref 273F:0D82 +273F:0D8A  8B C5                                mov     ax,bp +273F:0D8C  AB                                   stosw                           ; Store ax to es:[di] +273F:0D8D  B0 01                                mov     al,1 +273F:0D8F  AA                                   stosb                           ; Store al to es:[di] +273F:0D90  8B 44 02                             mov     ax,[si+2] +273F:0D93  80 E4 1F                             and     ah,1Fh +273F:0D96  1E                                   push    ds +273F:0D97  56                                   push    si +273F:0D98  06                                   push    es +273F:0D99  06                                   push    es +273F:0D9A  1F                                   pop     ds +273F:0D9B  E8 6F9C                              call    decode_string +273F:0D9E  07                                   pop     es +273F:0D9F  5E                                   pop     si +273F:0DA0  1F                                   pop     ds +273F:0DA1  26: 83 06 31E4 01                    add     word ptr es:[31E4h],1   ; (273F:31E4=0E4h) +273F:0DA7                       loc_118:                                        ;  xref 273F:0D7B, 0D88 +273F:0DA7  83 C5 01                             add     bp,1 +273F:0DAA  83 C6 09                             add     si,9 +273F:0DAD  EB C0                                jmp     short loc_116           ; (0D6F) +                                sub_33          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:66EC, 6787, 680A, 6827, 684A +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0DAF                       sub_34          proc    near +273F:0DAF  C7 06 31E4 0000                      mov     word ptr ds:[31E4h],0   ; (273F:31E4=0E4h) +273F:0DB5  C7 06 30D4 0000                      mov     hotspot_display_buffer, 0 +273F:0DBB  2D 0001                              sub     ax,1 +273F:0DBE  33 DB                                xor     bx,bx                   ; Zero register +273F:0DC0  3C 10                                cmp     al,10h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 36 + +273F:0DC2  72 05                                jb      loc_119                 ; Jump if below +273F:0DC4 úBB 0002                              mov     bx,data_1e+2            ; (0000:0002=0) +273F:0DC7  2C 10                                sub     al,10h +273F:0DC9                       loc_119:                                        ;  xref 273F:0DC2 +273F:0DC9  BA 0001                              mov     dx,1 +273F:0DCC  8A C8                                mov     cl,al +273F:0DCE  D3 E2                                shl     dx,cl                   ; Shift w/zeros fill +273F:0DD0  1E                                   push    ds +273F:0DD1  07                                   pop     es +273F:0DD2  8E DD                                mov     ds,bp +273F:0DD4 úBF 31E6                              mov     di,31E6h                ; (273F:31E6=0CDh) +273F:0DD7  26: 8B 0E 3379                       mov     cx,es:data_266          ; (273F:3379=62C0h) +273F:0DDC úBE BF49                              mov     si,data_58e             ; (0000:BF49=5) +273F:0DDF  BD 0001                              mov     bp,1 +273F:0DE2  E8 0029                              call    sub_35                  ; (0E0E) +273F:0DE5 úBE 5D98                              mov     si, offset hotspot_table_2 +273F:0DE8  BD 03E8                              mov     bp, PLAYER_HOTSPOT_ID +273F:0DEB  E8 0020                              call    sub_35                  ; (0E0E) +273F:0DEE úBE 5EB8                              mov     si, offset hotspot_table_5 +273F:0DF1  BD 0408                              mov     bp,408h +273F:0DF4  E8 0017                              call    sub_35                  ; (0E0E) +273F:0DF7 úBE 623E                              mov     si, offset hotspot_table_3 +273F:0DFA  BD 2710                              mov     bp,2710h +273F:0DFD  E8 000E                              call    sub_35                  ; (0E0E) +273F:0E00 úBE 63B1                              mov     si, offset hotspot_table_4 +273F:0E03  BD 7530                              mov     bp,7530h +273F:0E06  E8 0005                              call    sub_35                  ; (0E0E) +273F:0E09  8C DD                                mov     bp,ds +273F:0E0B  06                                   push    es +273F:0E0C  1F                                   pop     ds +273F:0E0D  C3                                   retn +                                sub_34          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0DE2, 0DEB, 0DF4, 0DFD, 0E06 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0E0E                       sub_35          proc    near +273F:0E0E                       loc_120:                                        ;  xref 273F:0EAD +273F:0E0E ú56                                   push    si +273F:0E0F  83 3C FF                             cmp     word ptr [si],0FFFFh +273F:0E12  75 02                                jne     loc_121                 ; Jump if not equal +273F:0E14  5E                                   pop     si +273F:0E15  C3                                   retn +273F:0E16                       loc_121:                                        ;  xref 273F:0E12 +273F:0E16  8A 44 08                             mov     al,[si+8] +273F:0E19  3C 0F                                cmp     al,0Fh +273F:0E1B  74 09                                je      loc_122                 ; Jump if equal +273F:0E1D  84 06 9836                           test    al,ds:data_96e          ; (2711:9836=3Ch) +273F:0E21  75 03                                jnz     loc_122                 ; Jump if not zero +273F:0E23  E9 0080                              jmp     loc_128                 ; (0EA6) +273F:0E26                       loc_122:                                        ;  xref 273F:0E1B, 0E21 +273F:0E26  8B 44 02                             mov     ax,[si+2] +273F:0E29  8B 34                                mov     si,[si] +273F:0E2B  F6 44 03 20                          test    byte ptr [si+3],20h     ; ' ' +273F:0E2F  75 75                                jnz     loc_128                 ; Jump if not zero +273F:0E31  F6 44 03 80                          test    byte ptr [si+3],80h +273F:0E35  74 6F                                jz      loc_128                 ; Jump if zero +273F:0E37  81 FD 03E8                           cmp     bp, PLAYER_HOTSPOT_ID +273F:0E3B  72 18                                jb      loc_124                 ; Jump if below +273F:0E3D  F6 44 03 10                          test    byte ptr [si+3],10h +273F:0E41  74 05                                jz      loc_123                 ; Jump if zero +273F:0E43  39 4C 06                             cmp     [si+6],cx +273F:0E46  75 5E                                jne     loc_128                 ; Jump if not equal +273F:0E48                       loc_123:                                        ;  xref 273F:0E41 +273F:0E48  26: 3B 2E 3350                       cmp     bp,es:data_43e          ; (0000:3350=0C033h) +273F:0E4D  74 57                                je      loc_128                 ; Jump if equal +273F:0E4F  3B 2E 1924                           cmp     bp, hotspot_id +273F:0E53  74 51                                je      loc_128                 ; Jump if equal +273F:0E55                       loc_124:                                        ;  xref 273F:0E3B +273F:0E55  85 10                                test    dx,[bx+si] +273F:0E57  74 4D                                jz      loc_128                 ; Jump if zero +273F:0E59  3D 017A                              cmp     ax,17Ah +273F:0E5C  74 43                                je      loc_127                 ; Jump if equal +273F:0E5E  3D 0147                              cmp     ax,147h +273F:0E61  74 3E                                je      loc_127                 ; Jump if equal +273F:0E63 úBE 30D6                              mov     si,data_41e             ; (0000:30D6=81h) +273F:0E66  26: 8B 0E 30D4                       mov     cx,es:data_40e          ; (0000:30D4=6AEh) +273F:0E6B  0B C9                                or      cx,cx                   ; Zero ? +273F:0E6D  74 0A                                jz      loc_126                 ; Jump if zero + +273F:0E6F                       locloop_125:                                    ;  xref 273F:0E77 +273F:0E6F  26: 3B 04                            cmp     ax,es:[si] +273F:0E72  74 2D                                je      loc_127                 ; Jump if equal +273F:0E74  83 C6 02                             add     si,2 +273F:0E77  E2 F6                                loop    locloop_125             ; Loop if cx > 0 + +273F:0E79                       loc_126:                                        ;  xref 273F:0E6D +273F:0E79  26: 89 2D                            mov     es:[di],bp +273F:0E7C  26: C6 45 02 01                      mov     byte ptr es:[di+2],1 +273F:0E81  83 C7 03                             add     di,3 +273F:0E84  26: 83 06 31E4 01                    add     word ptr es:data31e4, 1 +273F:0E8A  26: 89 04                            mov     es:[si],ax +273F:0E8D  26: 83 06 30D4 01                    add     word ptr es:data_40e,1  ; (0000:30D4=6AEh) +273F:0E93  1E                                   push    ds +273F:0E94  06                                   push    es +273F:0E95  1F                                   pop     ds +273F:0E96  53                                   push    bx +273F:0E97  52                                   push    dx +273F:0E98  80 E4 1F                             and     ah,1Fh +273F:0E9B  E8 6E9C                              call    decode_string +273F:0E9E  5A                                   pop     dx +273F:0E9F  5B                                   pop     bx +273F:0EA0  1F                                   pop     ds +273F:0EA1                       loc_127:                                        ;  xref 273F:0E5C, 0E61, 0E72 +273F:0EA1  26: 8B 0E 3379                       mov     cx,es:data_44e          ; (0000:3379=20CEh) +273F:0EA6                       loc_128:                                        ;  xref 273F:0E23, 0E2F, 0E35, 0E46 +                                                                                ;            0E4D, 0E53, 0E57 +273F:0EA6  5E                                   pop     si +273F:0EA7  83 C6 09                             add     si,9 +273F:0EAA  83 C5 01                             add     bp,1 +273F:0EAD  E9 FF5E                              jmp     loc_120                 ; (0E0E) +                                sub_35          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:522F, 6010 +                                ; Part of this procedure changes a player's frame +                                ; si=hotspot, di=slot +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                     character_update_frame     proc    near +273F:0EB0  56                                   push    si +273F:0EB1  57                                   push    di +273F:0EB2  53                                   push    bx +273F:0EB3  8B 5C 24                             mov     bx, [si+HS_MOVEMENT_OFFSET] +273F:0EB6  8B 44 26                             mov     ax, [si+HS_STEP_CTR] +273F:0EB9  3B 47 02                             cmp     ax, [bx+2]              ; Any steps remaining? +273F:0EBC  75 23                                jne     loc_130                 ; Yes, so carry on +273F:0EBE  83 C3 04                             add     bx, 4                   ; Move to next movement rec +273F:0EC1  C7 44 26 0000                        mov     word ptr [si+HS_STEP_CTR], 0     ; Reset counter +273F:0EC6  C7 44 28 0000                        mov     word ptr [si+HS_FRAME_OFFSET], 0 ; Reset offset +273F:0ECB  89 5C 24                             mov     [si+HS_MOVEMENT_OFFSET], bx  ; Update movement ptr +273F:0ECE  83 3F FF                             cmp     word ptr [bx], 0FFFFh   ; At end of list? +273F:0ED1  75 07                                jne     loc_129 +273F:0ED3  B8 0001                              mov     ax,1                    ; Yes - so return +273F:0ED6  5B                                   pop     bx +273F:0ED7  5F                                   pop     di +273F:0ED8  5E                                   pop     si +273F:0ED9  C3                                   retn +273F:0EDA                       loc_129: +273F:0EDA  57                                   push    di +273F:0EDB  8B 3F                                mov     di, [bx]                ; Get ptr to direction frames +273F:0EDD  33 DB                                xor     bx, bx +273F:0EDF  EB 14                                jmp     short loc_131 +273F:0EE1                       loc_130: +273F:0EE1  57                                   push    di +273F:0EE2  8B 3F                                mov     di, [bx]                ; Get ptr to direction frames +273F:0EE4  8B 5C 28                             mov     bx, [si+HS_FRAME_OFFSET]; Get offset for movement frame +273F:0EE7  03 FB                                add     di, bx                  ; Add on offset +273F:0EE9  83 3D FF                             cmp     word ptr [di], 0FFFFh   ; End of movement set for direciton? +273F:0EEC  75 07                                jne     loc_131                 ; Jump if not +273F:0EEE  2B FB                                sub     di, bx +273F:0EF0  33 DB                                xor     bx, bx +273F:0EF2  89 5C 28                             mov     [si+HS_FRAME_OFFSET], bx ; Reset to start of movement data +; di=movement record 5bb8h, si=6cefh +273F:0EF5                       loc_131: +273F:0EF5  8B 05                                mov     ax, [di+MOVEMENT_FRAME_NUM] ; Get new frame number +273F:0EF7  57                                   push    di +273F:0EF8  8B 7C 21                             mov     di, [si+HS_PIXEL_OFFSET] +273F:0EFB  8B 4D 07                             mov     cx, [di+PIXEL_FRAME_SIZE] +273F:0EFE  F7 E1                                mul     cx                      ; Calculate frame offset +273F:0F00  8B 4D 03                             mov     cx, [di+PIXEL_DATA_SEGMENT] ; Get loaded data segment +273F:0F03  5B                                   pop     bx                      ; bx = movement rec +273F:0F04  5F                                   pop     di                      ; di = anim slot +273F:0F05  89 45 08                             mov     [di+ANIM_FRAME_OFFSET], ax ; Store new offset +273F:0F08  89 4D 0A                             mov     [di+ANIM_SEGMENT], cx      ; Store segment +273F:0F0B  8B 47 02                             mov     ax, [bx+MOVEMENT_X_CHANGE] +273F:0F0E  0B C0                                or      ax, ax                  ; Any x change? +273F:0F10  74 13                                jz      loc_134                 ; Jump if zero +273F:0F12  78 06                                js      loc_132                 ; Jump if -x direction +273F:0F14  C6 45 26 03                          mov     byte ptr [di+ANIM_DIRECTION], FACING_RIGHT +273F:0F18  EB 04                                jmp     short loc_133 +273F:0F1A                       loc_132: +273F:0F1A  C6 45 26 02                          mov     byte ptr [di+ANIM_DIRECTION], FACING_LEFT +273F:0F1E                       loc_133: +273F:0F1E  03 05                                add     ax, [di+ANIM_X]         ; Update char X pos +273F:0F20  89 05                                mov     [di+ANIM_X], ax +273F:0F22  89 44 0D                             mov     [si+HS_X], ax +273F:0F25                       loc_134: +273F:0F25  8B 47 04                             mov     ax, [bx+MOVEMENT_Y_CHANGE] +273F:0F28  C7 45 22 0000                        mov     word ptr [di+22h], 0 +273F:0F2D  0B C0                                or      ax, ax                  ; Any y change? +273F:0F2F  74 1C                                jz      loc_137                 ; Jump if none +273F:0F31  78 06                                js      loc_135                 ; Jump if -y direction +273F:0F33  C6 45 26 01                          mov     byte ptr [di+ANIM_DIRECTION], FACING_DOWN +273F:0F37  EB 04                                jmp     short loc_136           ; (0F3D) +273F:0F39                       loc_135:                                        ;  xref 273F:0F31 +273F:0F39  C6 45 26 00                          mov     byte ptr [di+ANIM_DIRECTION], FACING_UP +273F:0F3D                       loc_136: +273F:0F3D  C7 45 22 0002                        mov     word ptr [di+22h], 2 +273F:0F42  03 45 02                             add     ax, [di+ANIM_Y]         ; Update char Y pos +273F:0F45  89 44 0F                             mov     [si+HS_Y], ax +273F:0F48  89 45 02                             mov     [di+ANIM_Y], ax +273F:0F4B  8B 05                                mov     ax, [di+ANIM_X] +273F:0F4D                       loc_137: +273F:0F4D  83 44 28 06                          add     word ptr [si+HS_FRAME_OFFSET], MOVEMENT_REC_SIZE +273F:0F51  83 44 26 01                          add     word ptr [si+HS_STEP_CTR], 1 +273F:0F55  33 C0                                xor     ax, ax +273F:0F57  5B                                   pop     bx +273F:0F58  5F                                   pop     di +273F:0F59  5E                                   pop     si +273F:0F5A  C3                                   retn +                     character_update_frame     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              hotspot_script_execute +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +273F:0F5B                       loc_138: +273F:0F5B  26: 8B 04                            mov     ax,es:[si]              ; Set pointer to disk +273F:0F5E  83 C6 02                             add     si,2                    ;  animation record +273F:0F61  89 47 21                             mov     [bx+21h],ax +273F:0F64  53                                   push    bx +273F:0F65  8B D8                                mov     bx,ax +273F:0F67  8B 47 03                             mov     ax,[bx+3]               ; Copy over pixel segment? +273F:0F6A  5B                                   pop     bx +273F:0F6B  89 45 0A                             mov     [di+0Ah],ax +273F:0F6E  C7 45 08 0000                        mov     word ptr [di+8],0       ; Reset frame pointer +273F:0F73  EB 3F                                jmp     short loc_143            + +273F:0F75                       loc_139:                                        ;  xref 273F:0FC7 +273F:0F75  26: 8B 04                            mov     ax,es:[si]              ; Get X start pos +273F:0F78  83 C6 02                             add     si,2 +273F:0F7B  89 47 0D                             mov     [bx+0Dh],ax             ; Store X start in hotspot +273F:0F7E  89 05                                mov     [di],ax                 ;  resource and anim slot +273F:0F80  26: 8B 04                            mov     ax,es:[si]              ; Get Y start pos +273F:0F83  83 C6 02                             add     si,2 +273F:0F86  89 47 0F                             mov     [bx+0Fh],ax             ; Store Y start in hotspot +273F:0F89  89 45 02                             mov     [di+2],ax               ;  resource and anim slot +273F:0F8C  EB 26                                jmp     short loc_143 + +273F:0F8E                       loc_140:                                        ;  xref 273F:0FC2 +273F:0F8E  26: 8B 04                            mov     ax,es:[si] +273F:0F91  83 C6 02                             add     si,2 +273F:0F94  89 47 1F                             mov     [bx+1Fh],ax +273F:0F97  89 77 24                             mov     [bx+24h],si +273F:0F9A  8B F3                                mov     si,bx +273F:0F9C  5B                                   pop     bx +273F:0F9D  0D 0001                              or      ax,1 +273F:0FA0  C3                                   retn +273F:0FA1                       loc_141:                                        ;  xref 273F:0FD1 +273F:0FA1  26: 8B 34                            mov     si,es:[si] +273F:0FA4  EB 0E                                jmp     short loc_143           ; (0FB4) +273F:0FA6                       loc_142:                                        ;  xref 273F:0FE5 +273F:0FA6  E9 00E8                              jmp     loc_153                 ; (1091) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:0FA9            hotspot_script_execute     proc    near +273F:0FA9  53                                   push    bx +273F:0FAA  8B DE                                mov     bx, si +273F:0FAC  8B 74 24                             mov     si, [si+HS_SCRIPT_OFFSET] +273F:0FAF  B8 40E6                              mov     ax, scripts2_seg +273F:0FB2  8E C0                                mov     es, ax + +273F:0FB4                       loc_143: +273F:0FB4 ú26: 8B 04                            mov     ax,es:[si] +273F:0FB7  83 C6 02                             add     si,2 +273F:0FBA  3D FFFC                              cmp     ax,0FFFCh +273F:0FBD  74 46                                je      loc_144                 ; Ends the execution +273F:0FBF  3D FFFF                              cmp     ax,0FFFFh +273F:0FC2  74 CA                                je      loc_140                 ; ??? Store word at 1fh of offset +273F:0FC4  3D FFFE                              cmp     ax,0FFFEh +273F:0FC7  74 AC                                je      loc_139                 ; Set start position +273F:0FC9  3D FFFB                              cmp     ax,0FFFBh +273F:0FCC  74 3D                                je      loc_145                 ; Set animation dimensions +273F:0FCE  3D FFFA                              cmp     ax,0FFFAh +273F:0FD1  74 CE                                je      loc_141                 ; Jump to location +273F:0FD3  3D FFF9                              cmp     ax,0FFF9h +273F:0FD6  74 83                                je      loc_138                 ; Set pixel data record +273F:0FD8  3D FFF8                              cmp     ax,0FFF8h +273F:0FDB  74 55                                je      loc_146                 ; Something to do with room +273F:0FDD  3D FFF7                              cmp     ax,0FFF7h +273F:0FE0  74 74                                je      loc_149                 ; word=>bx=>sub_258 +273F:0FE2  3D FFF6                              cmp     ax,0FFF6h +273F:0FE5  74 BF                                je      loc_142                 ; Set action bitsets +273F:0FE7  3D FFFD                              cmp     ax,0FFFDh +273F:0FEA  75 7E                                jne     loc_150 + +273F:0FEC  26: 8B 04                            mov     ax,es:[si]              ; Change position by amount +273F:0FEF  83 C6 02                             add     si,2 + +273F:0FF2  01 05                                add     [di],ax                 ; Add to X start +273F:0FF4  01 47 0D                             add     [bx+0Dh],ax +273F:0FF7  26: 8B 04                            mov     ax,es:[si] +273F:0FFA  83 C6 02                             add     si,2 +273F:0FFD  01 45 02                             add     [di+2],ax               ; Add to Y start +273F:1000  01 47 0F                             add     [bx+0Fh],ax +273F:1003  EB AF                                jmp     short loc_143 + +273F:1005                       loc_144:                                        ;  xref 273F:0FBD +273F:1005  33 C0                                xor     ax,ax                   ; Zero register +273F:1007  8B F3                                mov     si,bx +273F:1009  5B                                   pop     bx +273F:100A  C3                                   retn +273F:100B                       loc_145:                                        ;  xref 273F:0FCC +273F:100B  26: 8B 04                            mov     ax,es:[si] +273F:100E  83 C6 02                             add     si,2 +273F:1011  D1 E0                                shl     ax,1 +273F:1013  D1 E0                                shl     ax,1 +273F:1015  D1 E0                                shl     ax,1 +273F:1017  D1 E0                                shl     ax,1 +273F:1019  89 45 04                             mov     [di+4],ax               ; Store width +273F:101C  89 45 13                             mov     [di+13h],ax +273F:101F  26: 8B 04                            mov     ax,es:[si] +273F:1022  83 C6 02                             add     si,2 +273F:1025  89 45 06                             mov     [di+6],ax               ; Store height +273F:1028  EB 8A                                jmp     short loc_143 + +                                                                                ;* No entry point to code +273F:102A  26: 8B 04                            mov     ax,es:[si] +273F:102D  83 C6 02                             add     si,2 +273F:1030  EB 82                                jmp     short loc_143           ; (0FB4) +273F:1032                       loc_146:                                        ;  xref 273F:0FDB +273F:1032  26: 8B 04                            mov     ax,es:[si] +273F:1035  83 C6 02                             add     si,2 +273F:1038  26: 8B 0C                            mov     cx,es:[si] +273F:103B  83 C6 02                             add     si,2 +273F:103E  0B C9                                or      cx,cx                   ; Zero ? +273F:1040  74 06                                jz      loc_147                 ; Jump if zero +273F:1042  3B 0E 9832                           cmp     cx, room_number +273F:1046  75 0B                                jne     loc_148                 ; Jump if not equal +273F:1048                       loc_147:                                        ;  xref 273F:1040 +273F:1048  56                                   push    si +273F:1049  53                                   push    bx +273F:104A  57                                   push    di +273F:104B  8B D8                                mov     bx,ax +273F:104D  E8 8F8F                              call    sub_247                 ; (9FDF) +273F:1050  5F                                   pop     di +273F:1051  5B                                   pop     bx +273F:1052  5E                                   pop     si +273F:1053                       loc_148:                                        ;  xref 273F:1046 +273F:1053  E9 FF5E                              jmp     loc_143                 ; (0FB4) + +273F:1056                       loc_149:                                        ;  xref 273F:0FE0 +273F:1056  26: 8B 04                            mov     ax,es:[si] +273F:1059  83 C6 02                             add     si,2 +273F:105C  56                                   push    si +273F:105D  53                                   push    bx +273F:105E  57                                   push    di +273F:105F  8B D8                                mov     bx,ax +273F:1061  E8 91A8                              call    sub_258                 ; (A20C) +273F:1064  5F                                   pop     di +273F:1065  5B                                   pop     bx +273F:1066  5E                                   pop     si +273F:1067  E9 FF4A                              jmp     loc_143                 ; (0FB4) + +273F:106A                       loc_150: +273F:106A  89 77 24                             mov     [bx+24h],si             ; Set execution offset +273F:106D  8B F3                                mov     si,bx +273F:106F  8B 5C 21                             mov     bx,[si+21h]             ; Get pixel data record +273F:1072  F6 47 02 04                          test    byte ptr [bx+2], 4      ; Test flags +273F:1076  74 0E                                jz      loc_151                 ; Jump if zero +273F:1078  8B 5F 03                             mov     bx, [bx+3] +273F:107B  8E C3                                mov     es,bx +273F:107D  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:107F  8B D8                                mov     bx,ax +273F:1081  26: 8B 07                            mov     ax,es:[bx] +273F:1084  EB 03                                jmp     short loc_152           ; (1089) +273F:1086                       loc_151:                                        ;  xref 273F:1076 +273F:1086  F7 67 07                             mul     word ptr [bx+7]         ; dx:ax = data * ax +273F:1089                       loc_152: +273F:1089  89 45 08                             mov     [di+8],ax               ; Store current frame +273F:108C  0D 0001                              or      ax,1 +273F:108F  5B                                   pop     bx +273F:1090  C3                                   retn + +273F:1091                       loc_153: +273F:1091  26: 8B 04                            mov     ax,es:[si]              ; Set bitset actions +273F:1094  89 07                                mov     [bx],ax +273F:1096  26: 8B 44 02                         mov     ax,es:[si+2] +273F:109A  89 47 02                             mov     [bx+2],ax +273F:109D  83 C6 04                             add     si,4 +273F:10A0  E9 FF11                              jmp     loc_143 + +                     hotspot_script_execute     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx=character Id, cx=index in master script table +                                ; Usage of action block for hotspot likely to be making the alternate +                                ; hotspot script non-interruptable until done +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +             seq_set_blocking_hotspot_script    proc    near +273F:10A3  81 FB 03E8                           cmp     bx, PLAYER_HOTSPOT_ID +273F:10A7  75 05                                jne     loc_154                 ; Jump if not equal +273F:10A9  C6 06 9834 02                        mov     cursor_state, CURSORSTATE_SEQUENCE +273F:10AE                       loc_154:                                        ;  xref 273F:10A7 +273F:10AE  E8 FC37                              call    get_room_resource_pointer +273F:10B1  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:10B3  81 C1 57E0                           add     cx, offset hotspot_script_master_list +273F:10B7  8B D9                                mov     bx,cx +273F:10B9  8B 07                                mov     ax,[bx] +273F:10BB  89 44 24                             mov     [si+HS_SCRIPT_OFFSET], ax +273F:10BE  8B DE                                mov     bx, si +273F:10C0  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:10C3  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:10C6  C6 07 03                             mov     byte ptr [bx], CHAR_ACTION_EXEC_SCRIPT +273F:10C9  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:10CC  C6 44 49 01                          mov     byte ptr [si+49h], 1 +273F:10D0  E9 605B                              jmp     pathfind_flag_covered_cells +             seq_set_blocking_hotspot_script    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7172 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:10D3              animation_find_slot      proc    near +273F:10D3 úBF B14E                              mov     di, offset animation_table +273F:10D6  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:10D9                       locloop_155:                                    ;  xref 273F:10E2 +273F:10D9  F6 45 0C FF                          test    byte ptr [di+0Ch],0FFh +273F:10DD  74 08                                jz      loc_ret_156             ; Jump if zero +273F:10DF  83 C7 29                             add     di,29h +273F:10E2  E2 F5                                loop    locloop_155             ; Loop if cx > 0 + +273F:10E4  83 EF 29                             sub     di,29h + +273F:10E7                       loc_ret_156:                                    ;  xref 273F:10DD +273F:10E7  C3                                   retn +                       animation_find_slot      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0027 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:10E8                 hotspots_unload       proc    near +273F:10E8 úBF B14E                              mov     di,offset animation_table +273F:10EB  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:10EE                       locloop_157:                                    ; Check if hotspot can be unloaded +273F:10EE  F6 45 10 FF                          test    byte ptr [di+ANIM_CAN_UNLOAD],0FFh +273F:10F2  74 11                                jz      loc_159                 ; If no, then skip + +273F:10F4  33 C0                                xor     ax,ax +273F:10F6  83 7D 1B FE                          cmp     word ptr [di+ANIM_HOTSPOT_ID], 0FFFEh ; Check if hotspot Id +273F:10FA  73 06                                jae     loc_158                 ; is the special 0ffffh. Jump if yes +273F:10FC  8B 75 19                             mov     si, [di+ANIM_HOTSPOT_OFFSET]  ; Get hotspot resource +273F:10FF  89 44 0B                             mov     [si+HS_ANIM_OFFSET], ax ; Mark hotspot as inactive +273F:1102                       loc_158: +273F:1102  E8 0172                              call    animation_unload_2 +273F:1105                       loc_159: +273F:1105  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:1108  E2 E4                                loop    locloop_157 +273F:110A  C3                                   retn +                          hotspots_unload       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4FBF, 5E61, 60E7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +             character_find_impinging_chars     proc    near +273F:110B  56                                   push    si +273F:110C  53                                   push    bx +273F:110D  8B 55 0E                             mov     dx, [di+ANIM_ROOM_NUM] +273F:1110 úBE B14E                              mov     si, offset animation_table +273F:1113  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS +273F:1116 úBB 10C0                              mov     bx, offset impinging_char_list +273F:1119  C7 06 10BE 0000                      mov     num_impinging_chars, 0 +273F:111F  8B 05                                mov     ax, [di+ANIM_X] +273F:1121  A3 10E6                              mov     char_rect_left, ax +273F:1124  03 45 13                             add     ax, [di+ANIM_WIDTH_COPY] +273F:1127  A3 10E8                              mov     char_rect_right, ax +273F:112A  8B 45 02                             mov     ax, [di+ANIM_Y] +273F:112D  03 45 15                             add     ax, [di+ANIM_HEIGHT_COPY] +273F:1130  50                                   push    ax +273F:1131  2B 45 17                             sub     ax, [di+ANIM_Y_CORRECTION] +273F:1134  2B 45 22                             sub     ax, [di+ANIM_CHAR_RECT_Y] +273F:1137  A3 10EA                              mov     char_rect_top, ax +273F:113A  58                                   pop     ax +273F:113B  03 45 22                             add     ax, [di+ANIM_CHAR_RECT_Y] +273F:113E  A3 10EC                              mov     char_rect_bottom, ax + +273F:1141                       locloop_160:                                    ; Loop through animations +273F:1141  3B FE                                cmp     di, si                  ; Is it the char's animation? +273F:1143  74 55                                je      loc_161                 ; Skip if yes +273F:1145  F6 44 0C FF                          test    byte ptr [si+ANIM_LAYER], 0FFh +273F:1149  74 4F                                jz      loc_161                 ; If no layer, then skip +273F:114B  3B 54 0E                             cmp     dx, [si+ANIM_ROOM_NUM] +273F:114E  75 4A                                jne     loc_161                 ; Skip if not in same room +273F:1150  8B 44 1B                             mov     ax, [si+ANIM_HOTSPOT_ID] +273F:1153  3D 0408                              cmp     ax, 408h +273F:1156  73 42                                jae     loc_161                 ; Skip if anim not a character +273F:1158  F6 44 1D FF                          test    byte ptr [si+ANIM_LAYER1_SKIP], 0FFh +273F:115C  75 3C                                jnz     loc_161                 ; Skip if skip flag set +273F:115E  8B 44 19                             mov     ax, [si+ANIM_HOTSPOT_OFFSET] +273F:1161  3B 45 24                             cmp     ax, [di+ANIM_VOICE_CTR] +273F:1164  74 34                                je      loc_161                 ; Jump if equal +273F:1166  8B 04                                mov     ax, [si+ANIM_X] +273F:1168  3B 06 10E8                           cmp     ax, char_rect_right +273F:116C  73 2C                                jae     loc_161                 ; Jump if above or = +273F:116E  03 44 13                             add     ax, [si+ANIM_WIDTH_COPY] +273F:1171  3B 06 10E6                           cmp     ax, char_rect_left +273F:1175  72 23                                jb      loc_161                 ; Jump if below +273F:1177  74 21                                jz      loc_161                 ; Jump if zero +273F:1179  8B 44 02                             mov     ax, [si+ANIM_Y] +273F:117C  03 44 15                             add     ax, [si+ANIM_HEIGHT_COPY] +273F:117F  8B E8                                mov     bp, ax +273F:1181  03 44 22                             add     ax, [si+ANIM_CHAR_RECT_Y] +273F:1184  3B 06 10EA                           cmp     ax, char_rect_top +273F:1188  72 10                                jb      loc_161                 ; Jump if below +273F:118A  8B C5                                mov     ax, bp +273F:118C  2B 44 17                             sub     ax, [si+ANIM_Y_CORRECTION] +273F:118F  2B 44 22                             sub     ax, [si+ANIM_CHAR_RECT_Y] +273F:1192  3B 06 10EC                           cmp     ax, char_rect_bottom +273F:1196  74 0E                                je      loc_162                 ; Jump if equal +273F:1198  72 0C                                jc      loc_162                 ; Jump if carry Set +273F:119A                       loc_161: +273F:119A ú83 C6 29                             add     si, ANIMATION_SLOT_SIZE +273F:119D  E2 A2                                loop    locloop_160 + +273F:119F  C7 07 0000                           mov     word ptr [bx], 0        ; Flag end of list +273F:11A3  5B                                   pop     bx +273F:11A4  5E                                   pop     si +273F:11A5  C3                                   retn +273F:11A6                       loc_162:                                        ; Animation is impinging char +273F:11A6  8B 44 1B                             mov     ax, [si+ANIM_HOTSPOT_ID] +273F:11A9  89 07                                mov     [bx], ax                ; Store character Id +273F:11AB  83 C3 02                             add     bx, 2 +273F:11AE  83 06 10BE 01                        add     num_impinging_chars, 1 +273F:11B3  EB E5                                jmp     short loc_161           ; (119A) +             character_find_impinging_chars     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5217, 6009 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:11B5                       sub_41          proc    near +273F:11B5  53                                   push    bx +273F:11B6 úBB 10C0                              mov     bx, offset impinging_char_list +273F:11B9  C7 06 10EE 0000                      mov     data_617, 0 +273F:11BF                       loc_163: + +273F:11BF ú8B 07                                mov     ax, [bx]                ; Get character Id +273F:11C1  83 C3 02                             add     bx, 2                   ; Move to next entry +273F:11C4  0B C0                                or      ax, ax                  ; Is it the end of the list? +273F:11C6  75 05                                jnz     loc_164                 ; Jump if not +273F:11C8  A1 10EE                              mov     ax, data_617            ; Set return result +273F:11CB  5B                                   pop     bx +273F:11CC  C3                                   retn +273F:11CD                       loc_164: + +273F:11CD  8B EB                                mov     bp,bx                   ; Store current table offset +273F:11CF  50                                   push    ax +273F:11D0  56                                   push    si +273F:11D1  E8 FB16                              call    get_room_resource_pointer2 ;Get hotspot resource +273F:11D4  8B DE                                mov     bx, si +273F:11D6  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:11D9  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:11DC  8A 1F                                mov     bl, [bx]                ; bl = char's current action +273F:11DE  5E                                   pop     si +273F:11DF  58                                   pop     ax +273F:11E0  80 FB 03                             cmp     bl, CHAR_ACTION_EXEC_SCRIPT ; Char in animation sequence? +273F:11E3  74 12                                je      loc_166                 ; Jump if yes + +273F:11E5  BB B0AE                              mov     bx, offset hotspot_action_list +273F:11E8  B9 0014                              mov     cx, NUM_HOTSPOT_ACTION_SLOTS +273F:11EB  8B 55 1B                             mov     dx, [di+ANIM_HOTSPOT_ID] + +273F:11EE                       locloop_165: +273F:11EE  3B 17                                cmp     dx, [bx]                ; Source char in list? +273F:11F0  75 09                                jne     loc_167                 ; Jump if not +273F:11F2  3B 47 02                             cmp     ax, [bx+2]              ; List char Id in list? +273F:11F5  75 04                                jne     loc_167                 ; Jump if not equal +273F:11F7                       loc_166: +273F:11F7  8B DD                                mov     bx,bp                   ; Restore cached table offset +273F:11F9  EB C4                                jmp     short loc_163           ; Check next entry +273F:11FB                       loc_167: +273F:11FB  83 C3 08                             add     bx, HOTSPOT_ACTION_SLOT_SIZE +273F:11FE  E2 EE                                loop    locloop_165             ; Loop remaining action list + +; At this point we've found a character in the impinging_char_list list that isn't +; currently blocked to execute a hotspot animation, and doesn't have a cross reference +; against the calling character (such as the player) in the hotspot action list + +273F:1200  8B D8                                mov     bx, ax +273F:1202  57                                   push    di +273F:1203  8B FE                                mov     di, si +273F:1205  E8 FAE0                              call    get_room_resource_pointer +273F:1208  87 F7                                xchg    si, di                  ;di=list hotspot rec, si=caller rec +273F:120A  8B C3                                mov     ax, bx +273F:120C  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID   ; Is caller Id the player? +273F:120F  75 0F                                jne     loc_168                 ; Jump if not +273F:1211  F6 45 49 FF                          test    byte ptr [di+49h], 0FFh ; ??? +273F:1215  75 09                                jnz     loc_168                 ; Jump if not zero +273F:1217  5F                                   pop     di +273F:1218  E8 314B                              call    character_update_movement +273F:121B  5B                                   pop     bx +273F:121C  B8 0001                              mov     ax, 1 +273F:121F  C3                                   retn + +273F:1220                       loc_168: +273F:1220  BB B0AE                              mov     bx, offset hotspot_action_list +273F:1223                       loc_169:                                        ; Scan for end of list +273F:1223 úF7 07 FFFF                           test    word ptr [bx], 0FFFFh +273F:1227  74 05                                jz      loc_170 +273F:1229  83 C3 08                             add     bx, HOTSPOT_ACTION_SLOT_SIZE +273F:122C  EB F5                                jmp     short loc_169 +273F:122E                       loc_170:                                        ; Inject entry into hotspot action list +273F:122E  89 17                                mov     [bx], dx +273F:1230  89 47 02                             mov     [bx+2], ax +273F:1233  C7 47 04 000F                        mov     word ptr [bx+4],0Fh +273F:1238  89 7F 06                             mov     [bx+6],di +273F:123B  C6 44 4C 01                          mov     byte ptr [si+4Ch],1 +273F:123F  3D 2710                              cmp     ax,2710h +273F:1242  73 1D                                jae     loc_173                 ; Jump if above or = +273F:1244  8A 5D 44                             mov     bl,[di+44h] +273F:1247  80 FB 03                             cmp     bl,3 +273F:124A  74 0D                                je      loc_171                 ; Jump if equal +273F:124C  F7 45 4A FFFF                        test    word ptr [di+4Ah],0FFFFh +273F:1251  75 09                                jnz     loc_172                 ; Jump if not zero +273F:1253  F6 45 44 FF                          test    byte ptr [di+44h],0FFh +273F:1257  75 03                                jnz     loc_172                 ; Jump if not zero +273F:1259                       loc_171: +273F:1259  89 55 47                             mov     [di+47h], dx +273F:125C                       loc_172: +273F:125C  C7 45 4A 000F                        mov     word ptr [di+4Ah], 0Fh +273F:1261                       loc_173: +273F:1261  C7 06 10EE 0002                      mov     data_617, 2 +273F:1267  5F                                   pop     di +273F:1268  5B                                   pop     bx +273F:1269  C6 07 01                             mov     byte ptr [bx], 1 +273F:126C  53                                   push    bx +273F:126D  8B DD                                mov     bx,bp +273F:126F  E9 FF4D                              jmp     loc_163 + +                                sub_41          endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:544C, 7F46, 7F75, 7FAD, 7FFD, 811C, 8800 +                                ;                             887E, 967C, 9E9E +                                ; si = hotspot resource, di = animation slot hotspot is being removed from +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1272                 animation_unload      proc    near +273F:1272  C7 44 0B 0000                        mov     word ptr [si+HS_ANIM_OFFSET], 0 ; Mark hotspot as unloaded + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:1102 + +273F:1277                 animation_unload_2: +273F:1277 ú33 C0                                xor     ax,ax                   ; Clear some of the +273F:1279  88 45 0C                             mov     [di+ANIM_LAYER], al     ;   slot fields +273F:127C  89 45 1B                             mov     [di+ANIM_HOTSPOT_ID], ax +273F:127F  88 45 10                             mov     [di+ANIM_LOADED], al +273F:1282  C3                                   retn +                          animation_unload      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                                                                                ;* No entry point to code +273F:1283 úBF B14E                              mov     di, offset animation_table +273F:1286  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:1289                       locloop_175:                                    ;  xref 273F:1291 +273F:1289  39 5D 1E                             cmp     [di+1Eh],bx +273F:128C  74 06                                je      loc_176                 ; Jump if equal +273F:128E  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:1291  E2 F6                                loop    locloop_175             ; Loop if cx > 0 +273F:1293  C3                                   retn + +273F:1294  C6 45 0C 00          loc_176:        mov     byte ptr [di+ANIM_LAYER], 0 +273F:1298                       loc_ret_177:    retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:010D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1299               room_handle_click       proc    near +                                                assume  ds:data_seg +273F:1299  F6 06 11DA 07                        test    mouse_buttons2, 7       ; Any mouse button pressed? +273F:129E  74 F8                                jz      loc_ret_177             ; Exit if not +273F:12A0  F6 06 0DB4 FF                        test    talk_dialog_close_flag, 0FFh ; Floating dialog active? +273F:12A5  75 2F                                jnz     loc_178                 ; If yes then jump +273F:12A7  F7 06 BA25 FFFF                      test    viewing_room, 0FFFFh    ; Viewing remote room? +273F:12AD  75 2A                                jnz     loc_179                 ; If yes then jump +273F:12AF  80 3E 9834 03                        cmp     cursor_state, CURSORSTATE_TALK +273F:12B4  74 49                                je      loc_ret_182             ; Jump if equal +273F:12B6  81 3E 11DD 0088                      cmp     char_dest_y, 80h + MENUBAR_Y_SIZE  ; In menubar area? +273F:12BC  72 42                                jb      loc_183                 ; If yes then jump +273F:12BE  80 3E 9834 02                        cmp     cursor_state, CURSORSTATE_SEQUENCE +273F:12C3  74 35                                je      loc_181                 ; Jump if equal +273F:12C5  80 3E 9834 04                        cmp     cursor_state, CURSORSTATE_4 +273F:12CA  74 2E                                je      loc_181                 ; Jump if equal + +273F:12CC  F6 06 11DA 01                        test    mouse_buttons2, 1 +273F:12D1  75 30                                jnz     loc_184                 ; Jump if not zero +273F:12D3  E9 0154                              jmp     loc_193                 ; (142A) +273F:12D6                       loc_178:                                        ;  xref 273F:12A5 +273F:12D6  E9 01A0                              jmp     loc_195                 ; (1479) + +; Handle returning to a prior room from viewing another room remotely +273F:12D9                       loc_179:                                        ;  xref 273F:12AD +273F:12D9  83 3E 9832 23                        cmp     room_number, 23h +273F:12DE  75 08                                jne     loc_180                 ; Jump if not equal +273F:12E0  F7 06 BAB7 FFFF                      test    script_val_87, 0FFFFh +273F:12E6  75 12                                jnz     loc_181                 ; Jump if not zero +273F:12E8                       loc_180: +273F:12E8  C7 06 B15F 5E44                      mov     slot0_tick_proc, offset player_tick_proc +273F:12EE  A1 BA25                              mov     ax, old_room_number +273F:12F1  A3 BA23                              mov     new_room_number, ax +273F:12F4  C7 06 BA25 0000                      mov     old_room_number, 0 +273F:12FA                       loc_181:                                        ;  xref 273F:12C3, 12CA, 12E6 +273F:12FA  C6 06 11DA 00                        mov     mouse_buttons2, 0 + +273F:12FF                       loc_ret_182:                                    ;  xref 273F:12B4 +273F:12FF  C3                                   retn + +273F:1300                       loc_183:                                        ;  xref 273F:12BC +273F:1300  E9 5A4D                              jmp     menubar_handle_menu + +; Left mouse clicked - can only be either for walking or looking at a hotspot +273F:1303                       loc_184:                                   `    ;  xref 273F:12D1 +273F:1303  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:1308  F7 06 1922 FFFF                      test    dest_room_num, 0FFFFh +273F:130E  74 03                                jz      loc_185                 ; Jump if zero +273F:1310  E9 0094                              jmp     loc_190                 ; (13A7) +273F:1313                       loc_185:                                        ;  xref 273F:130E +273F:1313  A1 1924                              mov     ax, hotspot_id +273F:1316  0B C0                                or      ax,ax                   ; Clicked on hotspot? +273F:1318  74 13                                jz      loc_186                 ; If not, then jump +273F:131A úBE 4CB0                              mov     si, offset exit_hotspots_list +273F:131D  8B D8                                mov     bx,ax +273F:131F  E8 3271                              call    is_roomexit_hotspot     ; Was the hotspot a room exit? +273F:1322  75 0B                                jnz     loc_187                 ; If not, then jump +273F:1324  8B C3                                mov     ax,bx +273F:1326  E8 5EC5                              call    room_exit_hs_get_pointer +273F:1329  F6 44 0C FF                          test    byte ptr [si+REHS_EXIT_BLOCKED], 0FFh ; Is exit blocked? +273F:132D                       loc_186: +273F:132D  74 78                                jz      loc_190                 ; If not blocked, standard walking + +; Handler code for looking at a hotspot + +273F:132F                       loc_187: +273F:132F  C6 06 9834 01                        mov     cursor_state, CURSORSTATE_ACTION +273F:1334 úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:1337  33 C0                                xor     ax,ax                   ; Zero register +273F:1339  89 44 52                             mov     [si+HS_DEST_HOTSPOT], ax +273F:133C  88 44 2A                             mov     [si+HS_ACTION_CTR],  al +273F:133F  89 44 42                             mov     [si+HS_V42], ax +273F:1342  88 44 44                             mov     [si+HS_V44], al +273F:1345  8B DE                                mov     bx,si +273F:1347  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:134A  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:134D úBF 65F3                              mov     di, offset player_action_support_record +273F:1350  89 7F 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], di +273F:1353  C7 05 0010                           mov     word ptr [di], ACTION_LOOK_AT +273F:1357  A1 1924                              mov     ax, hotspot_id +273F:135A  89 45 02                             mov     [di+2], ax +273F:135D  C7 45 04 0000                        mov     word ptr [di+4], 0 +273F:1362  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:1365  E8 5C9D                              call    menubar_clear_image +273F:1368 úBF 4B93                              mov     di, offset action_name  ; Set up the "look at HOTSPOT" +273F:136B úBE 10B5                              mov     si, offset look_at_str  ;  string +273F:136E  B9 0008                              mov     cx,8 +273F:1371  1E                                   push    ds +273F:1372  07                                   pop     es +273F:1373  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:1375  A1 1924                              mov     ax, hotspot_id +273F:1378  E8 F9A6                              call    get_room_resource_pointer3 ; Get hotspot name +273F:137B  8B 44 02                             mov     ax, [si+HSH_NAME] +273F:137E  80 E4 1F                             and     ah, 1Fh +273F:1381  E8 69B6                              call    decode_string +273F:1384  A1 4CE4                              mov     ax, data_segment2 +273F:1387  8E C0                                mov     es,ax +273F:1389  33 FF                                xor     di,di                   ; Zero register +273F:138B  33 C9                                xor     cx,cx                   ; Zero register +273F:138D  8B 1E 076E                           mov     bx, data_571 +273F:1391  8A 7F 04                             mov     bh,[bx+4] +273F:1394  8B 2E 0748                           mov     bp, screen_width +273F:1398 úBE 4B93                              mov     si, offset action_name +273F:139B                       loc_188:                                        ; Loop to display action +273F:139B úAC                                   lodsb                           ; String [si] to al +273F:139C  2C 20                                sub     al,20h                  ; ' ' +273F:139E  72 06                                jc      loc_ret_189             ; Jump if carry Set +273F:13A0  FF 16 075A                           call    [display2_character_proc] +273F:13A4  EB F5                                jmp     short loc_188           ; (139B) + +273F:13A6                       loc_ret_189:                                    ;  xref 273F:139E +273F:13A6  C3                                   retn + +; Handler code for starting the player walking to the clicked location +273F:13A7                       loc_190:                                        ;  xref 273F:1310, 132D +273F:13A7  C7 06 11E1 0002                      mov     cursor_index, CURSOR_TIME_UP ; Start time animation +273F:13AD  8B 1E 1922                           mov     bx, dest_room_num +273F:13B1  0B DB                                or      bx,bx                   ; Going to change room? +273F:13B3  74 2C                                jz      loc_191                 ; No, so start in-room move + +; Walking to another room +273F:13B5  A1 6CF5                              mov     ax, player_room_number +273F:13B8  E8 401F                              call    room_exit_get_coordinates +273F:13BB  81 E2 0FFF                           and     dx,0FFFh +273F:13BF úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:13C2  8B DE                                mov     bx, si +273F:13C4  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:13C7  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:13CA  89 4C 54                             mov     [si+HS_DEST_X], cx +273F:13CD  89 54 56                             mov     [si+HS_DEST_Y], dx +273F:13D0  C7 44 52 FFFF                        mov     [si+HS_DEST_HOTSPOT], 0FFFFh +273F:13D5  A1 1920                              mov     ax, room_exit_hotspot_id +273F:13D8  0B C0                                or      ax, ax +273F:13DA  74 2A                                jz      loc_192 +273F:13DC  89 44 52                             mov     [si+HS_DEST_HOTSPOT], ax +273F:13DF  EB 25                                jmp     short loc_192           ; (1406) + +; In room walking +273F:13E1                       loc_191:                                        ;  xref 273F:13B3 +273F:13E1 úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:13E4  8B DE                                mov     bx,si +273F:13E6  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:13E9  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:13EC  C7 44 52 0000                        mov     [si+HS_DEST_HOTSPOT], 0 +273F:13F1  C7 06 B172 0000                      mov     data_1116,0             ; (31E4:B172=0) +273F:13F7  A1 11DB                              mov     ax, char_dest_x +273F:13FA  2D 0010                              sub     ax,10h +273F:13FD  89 44 54                             mov     [si+HS_DEST_X], ax +273F:1400  A1 11DD                              mov     ax, char_dest_y +273F:1403  89 44 56                             mov     [si+HS_DEST_Y], ax +273F:1406                       loc_192:                                        ;  xref 273F:13DA, 13DF +273F:1406  C6 07 01                             mov     byte ptr [bx], CHAR_ACTION_START_WALK +273F:1409  33 C0                                xor     ax,ax                   ; Zero register +273F:140B  A2 9834                              mov     data_1084, al +273F:140E úBF 65F3                              mov     di, offset player_action_support_record +273F:1411  89 7F 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], di +273F:1414  89 05                                mov     [di],ax +273F:1416  88 44 FF                             mov     [si-1],al +273F:1419  88 44 2A                             mov     [si+HS_ACTION_CTR],al +273F:141C  89 44 42                             mov     [si+HS_V42], ax +273F:141F  88 44 44                             mov     [si+HS_V44], al +273F:1422  88 44 FF                             mov     [si-1],al +273F:1425  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:1429  C3                                   retn + +273F:142A                       loc_193:                                        ;  xref 273F:12D3 +273F:142A  F6 06 11DA 04                        test    mouse_buttons2, 4 +273F:142F  75 1A                                jnz     loc_194                 ; Jump if not zero + +; At this point the right mouse button has been clicked for the right-click menu. +; This is either the context menu for a hotspot, or the general "Look/Status" menu + +273F:1431  E8 51E0                              call    room_show_rightclick_menu +273F:1434  C7 06 11E4 FFFF                      mov     hotspot_name_id2, 0FFFFh +273F:143A  33 C0                                xor     ax,ax                   ; Zero register +273F:143C  33 DB                                xor     bx,bx                   ; Zero register +273F:143E  BD 0027                              mov     bp,27h +273F:1441  BA 0001                              mov     dx,1 +273F:1444  B9 0081                              mov     cx,81h +273F:1447  E8 F739                              call    sub_21                  ; (0B83) +273F:144A  C3                                   retn +273F:144B                       loc_194:                                        ;  xref 273F:142F +273F:144B  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:1450  C3                                   retn +                        room_handle_click       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                 sequence_set_hotspot_script    proc    near + +273F:1451  E8 94 F8                             call    get_room_resource_pointer +273F:1454  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:1459  75 08                                jnz     loc_194_2 +273F:145B  83 F9 0C                             cmp     cx, 0Ch +273F:145E  75 03                                jnz     loc_194_2 +273F:1460  83 C1 03                             add     cx, 3 +273F:1463  D1 E1              loc_194_2:        shl     cx, 1 +273F:1465  81 C1 57E0                           add     cx, offset hotspot_script_master_list +273F:1469  8B D9                                mov     bx, cx +273F:146B  8B 07                                mov     ax, [bx]                ; Get script offset from list +273F:146D  89 44 24                             mov     [si+HS_SCRIPT_OFFSET], ax +273F:1470  33 C0                                xor     ax, ax +273F:1472  89 44 26                             mov     word ptr [si+26h], ax +273F:1475  89 44 28                             mov     word ptr [si+28h], ax +273F:1478  C3                                   ret + +                 sequence_set_hotspot_script    endp + +; This code fragment is part of room_handle_click, and is called when either mouse +; button is pressed when a talk dialog is active + +273F:1479                       loc_195:                                        ;  xref 273F:12D6 +273F:1479  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:147E  A1 983B                              mov     ax, talk_character_id +273F:1481  E8 F866                              call    get_room_resource_pointer2 +273F:1484  C7 44 37 0000                        mov     word ptr [si+37h],0 +273F:1489  A1 9841                              mov     ax,data_1091            ; (31E4:9841=0) +273F:148C  0B C0                                or      ax,ax                   ; Zero ? +273F:148E  74 0F                                jz      loc_196                 ; Jump if zero +273F:1490  E8 F857                              call    get_room_resource_pointer2 +273F:1493  F7 44 37 FFFF                        test    word ptr [si+37h],0FFFFh +273F:1498  74 05                                jz      loc_196                 ; Jump if zero +273F:149A  C7 44 37 0028                        mov     word ptr [si+37h],28h +273F:149F                       loc_196:                                        ;  xref 273F:148E, 1498 +273F:149F  E9 4E23                              jmp     loc_1248                ; (62C5) +                                sub_44          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7B07, 8FC8, 93BE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:14A2                       sub_45          proc    near +273F:14A2 úBE B883                              mov     si, offset animation_block_list +273F:14A5                       loc_197:                                        ;  xref 273F:14B5 +273F:14A5 úAD                                   lodsw                           ; String [si] to ax +273F:14A6  0B C0                                or      ax,ax +273F:14A8  74 0D                                jz      loc_ret_198             ; End of list found +273F:14AA  8B F8                                mov     di,ax +273F:14AC  C7 45 03 0000                        mov     word ptr [di+3],0 +273F:14B1  80 65 02 DF                          and     byte ptr [di+2],0DFh +273F:14B5  EB EE                                jmp     short loc_197           ; (14A5) + +273F:14B7                       loc_ret_198:                                    ;  xref 273F:14A8 +273F:14B7  C3                                   retn +                                sub_45          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:012A, 1F8B, 1F9E, 93EF +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:14B8                  set_vga_palette      proc    near +273F:14B8  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:14BD  74 40                                je      loc_ret_201             ; Jump if equal +273F:14BF  81 3E F010 2EE0                      cmp     timer_ticks, TIMER_TICKS_MAX +273F:14C5  72 38                                jb      loc_ret_201             ; Jump if below +273F:14C7  1E                                   push    ds +273F:14C8  07                                   pop     es +273F:14C9 úBE 1457                              mov     si,offset unprocessed_vga_palette +273F:14CC úBF 0DB5                              mov     di,offset processed_vga_palette +273F:14CF  B9 0300                              mov     cx,300h + +273F:14D2                       locloop_199:                                    ;  xref 273F:14D6 +273F:14D2  AC                                   lodsb                           ; String [si] to al +273F:14D3  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:14D5  AA                                   stosb                           ; Store al to es:[di] +273F:14D6  E2 FA                                loop    locloop_199             ; Loop if cx > 0 + +273F:14D8 úBA 0DB5                              mov     dx,offset processed_vga_palette +273F:14DB  B8 1012                              mov     ax,1012h +273F:14DE  BB 0000                              mov     bx,0 +273F:14E1  B9 0100                              mov     cx,100h +273F:14E4  CD 10                                int     10h                     ; Video display   ah=functn 10h +                                                                                ;  set cx color registers from +                                                                                ;   ptr es:dx, bx=first reg +273F:14E6                       loc_200:                                        ;  xref 273F:14EF +273F:14E6  E8 7EDF                              call    room_check_keypresses +273F:14E9  81 3E F010 2EE0                      cmp     timer_ticks, TIMER_TICKS_MAX +273F:14EF  73 F5                                jae     loc_200                 ; Jump if above or = +273F:14F1 úBA 1457                              mov     dx,offset unprocessed_vga_palette +273F:14F4  B8 1012                              mov     ax,1012h +273F:14F7  BB 0000                              mov     bx,0 +273F:14FA  B9 0100                              mov     cx,100h +273F:14FD  CD 10                                int     10h                     ; Video display   ah=functn 10h +                                                                                ;  set cx color registers from +                                                                                ;   ptr es:dx, bx=first reg + +273F:14FF                       loc_ret_201:                                    ;  xref 273F:14BD, 14C5 +273F:14FF  C3                                   retn +                           set_vga_palette      endp + +273F:1500  00 00                data_215        db      0, 0                    ;  xref 273F:2C88, 2D34, 2E9A, 2EA3 +                                                                                ;            37F2, 385B, 38FB +273F:1502  0000                 data_216        dw      0                       ;  xref 273F:2C8C, 2D3C, 2EA8 +273F:1504  00                   data_217        db      0                       ;  xref 273F:2C90, 2D6E, 2F47 +273F:1505  0000                 data_218        dw      0                       ;  xref 273F:2D0B, 2F86, 3869, 388E +                                                                                ;            3939 +273F:1507  0000                 data_219        dw      0                       ;  xref 273F:2D03, 2F8C +273F:1509  00                   data_220        db      0                       ;  xref 273F:2CFF, 2D42, 2D69, 2DBA +                                                                                ;            2E95 +273F:150A  00 00 00 00                          db      0, 0, 0, 0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00A9, 00BB, 011D, 4171, 6A0D, 6E4B, 70D1 +                                ;                             8922, 8FF3, 9769 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:150E               room_add_animations     proc    near +273F:150E  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS +273F:1511 úBB B14E                              mov     bx, offset animation_table + +; This first part adds in any active hotspots for layer 3 + +273F:1514                       locloop_202:                                    ;  xref 273F:1551 +273F:1514  80 7F 0C 03                          cmp     byte ptr [bx+ANIM_LAYER], 3 ; Is hotspot in layer 3? +273F:1518  75 34                                jne     loc_206                 ; If found, then skip entry +273F:151A  8B 16 9832                           mov     dx, room_number +273F:151E  39 57 0E                             cmp     [bx+ANIM_ROOM_NUM], dx  ; Is animation for room? +273F:1521  75 2B                                jne     loc_206                 ; If no, then skip +273F:1523  51                                   push    cx +273F:1524  53                                   push    bx +273F:1525  8B 47 0A                             mov     ax, [bx+ANIM_SEGMENT] +273F:1528  0B C0                                or      ax,ax                   ; Zero ? +273F:152A  75 05                                jnz     loc_203                 ; Jump if not zero +273F:152C  E8 61CE                              call    animation_resolve_segment +273F:152F  72 1B                                jc      loc_205                 ; Jump if carry Set +273F:1531                       loc_203:                                        ;  xref 273F:152A +273F:1531  8E C0                                mov     es,ax +273F:1533  8B 77 08                             mov     si, [bx+ANIM_FRAME_OFFSET] +273F:1536  FF 16 0754                           call    [add_animation_proc] +273F:153A  5F                                   pop     di +273F:153B  57                                   push    di +273F:153C  B0 01                                mov     al,1 +273F:153E  F6 45 0D FF                          test    byte ptr [di+ANIM_FLAGS], 0FFh +273F:1542  74 02                                jz      loc_204                 ; Jump if zero +273F:1544  B0 81                                mov     al, 81h +273F:1546                       loc_204:                                        ;  xref 273F:1542 +273F:1546  E8 F5DF                              call    flag_covered_cells +273F:1549  E8 F509                              call    room_add_layer +273F:154C                       loc_205:                                        ;  xref 273F:152F +273F:154C  5B                                   pop     bx +273F:154D  59                                   pop     cx +273F:154E                       loc_206:                                        ;  xref 273F:1518, 1521 +273F:154E  83 C3 29                             add     bx, ANIMATION_SLOT_SIZE +273F:1551  E2 C1                                loop    locloop_202             ; Loop if cx > 0 + +; Next Get a set of animations where the layer = 1, forming a list of +; the animation slot entries and the bottom row of the animation + +273F:1553 úBF B14E                              mov     di, offset animation_table +273F:1556 úBE 10F0                              mov     si, offset animation_table2 +273F:1559  8B 16 9832                           mov     dx, room_number +273F:155D  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS +273F:1560  33 DB                                xor     bx,bx                   ; Number of anims found +273F:1562                       locloop_207: +273F:1562  80 7D 0C 01                          cmp     byte ptr [di+ANIM_LAYER], 1 ; Animation is layer 1? +273F:1566  75 1E                                jne     loc_208                 ; If not, then skip +273F:1568  39 55 0E                             cmp     [di+ANIM_ROOM_NUM], dx  ; Animation in the room? +273F:156B  75 19                                jne     loc_208                 ; If not, skip animation +273F:156D  F6 45 1D FF                          test    byte ptr [di+ANIM_LAYER1_SKIP], 0FFh +273F:1571  75 13                                jnz     loc_208                 ; Jump if not zero +273F:1573  8B 45 02                             mov     ax,[di+ANIM_Y]          ; Get Y start +273F:1576  03 45 15                             add     ax,[di+ANIM_HEIGHT_COPY] ; Copy height +273F:1579  89 3C                                mov     [si],di                 ; Store anim offset +273F:157B  83 C6 02                             add     si, 2 +273F:157E  89 04                                mov     [si], ax                ; Store bottom row +273F:1580  83 C6 02                             add     si,2 +273F:1583  83 C3 01                             add     bx,1                    ; Increment number found +273F:1586                       loc_208: +273F:1586  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:1589  E2 D7                                loop    locloop_207             ; Loop if cx > 0 + +; This next part sorts the newly formed list by the bottom row of each + +273F:158B  83 FB 01                             cmp     bx,1 +273F:158E  8B CB                                mov     cx,bx +273F:1590  72 67                                jc      loc_217                 ; No entries +273F:1592  74 2F                                jz      loc_212                 ; Only one entry +273F:1594  51                                   push    cx +273F:1595  83 E9 01                             sub     cx,1 +273F:1598                       locloop_209:                                    ;  xref 273F:15C0 +273F:1598 úBE 10F0                              mov     si,offset animation_table2 +273F:159B  51                                   push    cx +273F:159C                       locloop_210:                                    ;  xref 273F:15BD +273F:159C  8B 44 06                             mov     ax, [si+6]          +273F:159F  3B 44 02                             cmp     ax, [si+2] +273F:15A2  73 16                                jae     loc_211 +273F:15A4  8B 04                                mov     ax,[si] +273F:15A6  8B 5C 04                             mov     bx,[si+4] +273F:15A9  89 1C                                mov     [si],bx +273F:15AB  89 44 04                             mov     [si+4],ax +273F:15AE  8B 44 02                             mov     ax,[si+2] +273F:15B1  8B 5C 06                             mov     bx,[si+6] +273F:15B4  89 5C 02                             mov     [si+2],bx +273F:15B7  89 44 06                             mov     [si+6],ax +273F:15BA                       loc_211: +273F:15BA  83 C6 04                             add     si, 4 +273F:15BD  E2 DD                                loop    locloop_210             ; Loop if cx > 0 + +273F:15BF  59                                   pop     cx +273F:15C0  E2 D6                                loop    locloop_209             ; Loop if cx > 0 + +273F:15C2  59                                   pop     cx +273F:15C3                       loc_212:                                        ;  xref 273F:1592 + +; Add in the animations in order of the sorted list + +273F:15C3  BE 10F0                              mov     si, offset animation_table2 +273F:15C6                       locloop_213:                                    ;  xref 273F:15F7 +273F:15C6  8B 1C                                mov     bx, [si] +273F:15C8  56                                   push    si +273F:15C9  51                                   push    cx +273F:15CA  53                                   push    bx +273F:15CB  8B 47 0A                             mov     ax,[bx+ANIM_SEGMENT] +273F:15CE  0B C0                                or      ax,ax                   ; Zero ? +273F:15D0  75 08                                jnz     loc_214                 ; Jump if not zero +273F:15D2  E8 6128                              call    animation_resolve_segment +273F:15D5  73 03                                jnc     loc_214                 ; Jump if carry=0 +273F:15D7  5F                                   pop     di +273F:15D8  EB 18                                jmp     short loc_216           ; (15F2) +273F:15DA                       loc_214:                                        ;  xref 273F:15D0, 15D5 +273F:15DA  8E C0                                mov     es,ax +273F:15DC  8B 77 08                             mov     si,[bx+ANIM_FRAME_OFFSET] +273F:15DF  FF 16 0754                           call    [add_animation_proc] +273F:15E3  5F                                   pop     di +273F:15E4  F6 45 0D FF                          test    byte ptr [di+ANIM_FLAGS], 0FFh +273F:15E8  74 05                                jz      loc_215                 ; Jump if zero +273F:15EA  B0 81                                mov     al, 81h +273F:15EC  E8 F539                              call    flag_covered_cells +273F:15EF                       loc_215:                                        ;  xref 273F:15E8 +273F:15EF  E8 F463                              call    room_add_layer +273F:15F2                       loc_216:                                        ;  xref 273F:15D8 +273F:15F2  59                                   pop     cx +273F:15F3  5E                                   pop     si +273F:15F4  83 C6 04                             add     si,4 +273F:15F7  E2 CD                                loop    locloop_213             ; Loop if cx > 0 + +; Add in animations for layer 2 + +273F:15F9                       loc_217:                                        ;  xref 273F:1590 +273F:15F9  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS +273F:15FC úBB B14E                              mov     bx, offset animation_table + +273F:15FF                       locloop_218: +273F:15FF  80 7F 0C 02                          cmp     byte ptr [bx+ANIM_LAYER],2 +273F:1603  75 31                                jne     loc_222                 ; Jump if not equal +273F:1605  8B 16 9832                           mov     dx, room_number +273F:1609  39 57 0E                             cmp     [bx+ANIM_ROOM_NUM], dx +273F:160C  75 28                                jne     loc_222                 ; Jump if not equal +273F:160E  51                                   push    cx +273F:160F  53                                   push    bx +273F:1610  8B 47 0A                             mov     ax,[bx+ANIM_SEGMENT] +273F:1613  0B C0                                or      ax,ax                   ; Zero ? +273F:1615  75 05                                jnz     loc_219                 ; Jump if not zero +273F:1617  E8 60E3                              call    animation_resolve_segment +273F:161A  72 18                                jc      loc_221                 ; Jump if carry Set +273F:161C                       loc_219:                                        ;  xref 273F:1615 +273F:161C  8E C0                                mov     es,ax +273F:161E  8B 77 08                             mov     si, [bx+ANIM_FRAME_OFFSET] +273F:1621  FF 16 0754                           call    [add_animation_proc] +273F:1625  5F                                   pop     di +273F:1626  57                                   push    di +273F:1627  B0 01                                mov     al,1 +273F:1629  F6 45 0D FF                          test    byte ptr [di+ANIM_FLAGS],0FFh +273F:162D  74 02                                jz      loc_220                 ; Jump if zero +273F:162F  B0 81                                mov     al, 81h +273F:1631                       loc_220:                                        ;  xref 273F:162D +273F:1631  E8 F4F4                              call    flag_covered_cells +273F:1634                       loc_221:                                        ;  xref 273F:161A +273F:1634  5B                                   pop     bx +273F:1635  59                                   pop     cx +273F:1636                       loc_222:                                        ;  xref 273F:1603, 160C +273F:1636  83 C3 29                             add     bx, ANIMATION_SLOT_SIZE +273F:1639  E2 C4                                loop    locloop_218             ; Loop if cx > 0 + +273F:163B  F6 06 9837 FF                        test    talk_dialog_active, 0FFh +273F:1640  74 04                                jz      loc_ret_223             ; Jump if zero +273F:1642  FF 16 0758                           call    [talk_dialog_proc] + +273F:1646                       loc_ret_223:                                    ;  xref 273F:1640 +273F:1646  C3                                   retn +                        room_add_animations     endp + +273F:1647  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7D4E, 7D60 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1648               decode_character        proc    near +273F:1648  E8 675A                              call    read_bit +273F:164B  74 03                                jz      loc_224                 ; Jump if zero +273F:164D  EB 3B                                jmp     short loc_235           ; (168A) +273F:164F  90                                   db      90h +273F:1650                       loc_224:                                        ; 0 +273F:1650  E8 6752                              call    read_bit +273F:1653  74 03                                jz      loc_225                 ; Jump if zero +273F:1655  EB 04                                jmp     short loc_226           ; (165B) +273F:1657  90                                   db      90h +273F:1658                       loc_225:                                        ; 00 +273F:1658  B0 20                                mov     al,20h                  ; ' ' +273F:165A  C3                                   retn +273F:165B                       loc_226:                                        ; 01 +273F:165B  E8 6747                              call    read_bit +273F:165E  74 03                                jz      loc_227                 ; Jump if zero +273F:1660  EB 0F                                jmp     short loc_230           ; (1671) +273F:1662  90                                   db      90h +273F:1663                       loc_227:                                        ; 010 +273F:1663  E8 673F                              call    read_bit +273F:1666  74 03                                jz      loc_228                 ; Jump if zero +273F:1668  EB 04                                jmp     short loc_229           ; (166E) +273F:166A  90                                   db      90h +273F:166B                       loc_228:                                        ; 0100 +273F:166B  B0 65                                mov     al,65h                  ; 'e' +273F:166D  C3                                   retn +273F:166E                       loc_229:                                        ; 0101 +273F:166E  B0 6F                                mov     al,6Fh                  ; 'o' +273F:1670  C3                                   retn +273F:1671                       loc_230:                                        ; 011 +273F:1671  E8 6731                              call    read_bit +273F:1674  74 03                                jz      loc_231 +273F:1676  EB 04                                jmp     short loc_232 +273F:1678  90                                   db      90h +273F:1679                       loc_231:                                        ; 0110 +273F:1679  B0 74                                mov     al,74h                  ; 't' +273F:167B  C3                                   retn +273F:167C                       loc_232:                                        ; 0111 +273F:167C  E8 6726                              call    read_bit +273F:167F  74 03                                jz      loc_233                 ; Jump if zero +273F:1681  EB 04                                jmp     short loc_234           ; (1687) +273F:1683  90                                   db      90h +273F:1684                       loc_233:                                        ; 01110 +273F:1684  B0 61                                mov     al,61h                  ; 'a' +273F:1686  C3                                   retn +273F:1687                       loc_234:                                        ; 01111 +273F:1687  B0 6E                                mov     al,6Eh                  ; 'n' +273F:1689  C3                                   retn +273F:168A                       loc_235:                                        ; 1 +273F:168A  E8 6718                              call    read_bit +273F:168D  74 03                                jz      loc_236                 ; Jump if zero +273F:168F  EB 46                                jmp     short loc_249           ; (16D7) +273F:1691  90                                   db      90h +273F:1692                       loc_236:                                        ; 10 +273F:1692  E8 6710                              call    read_bit +273F:1695  74 03                                jz      loc_237                 ; Jump if zero +273F:1697  EB 0F                                jmp     short loc_240           ; (16A8) +273F:1699  90                                   db      90h +273F:169A                       loc_237:                                        ; 100 +273F:169A  E8 6708                              call    read_bit +273F:169D  74 03                                jz      loc_238                 ; Jump if zero +273F:169F  EB 04                                jmp     short loc_239           ; (16A5) +273F:16A1  90                                   db      90h +273F:16A2                       loc_238:                                        ; 1000 +273F:16A2  B0 73                                mov     al,73h                  ; 's' +273F:16A4  C3                                   retn +273F:16A5                       loc_239:                                        ; 1001 +273F:16A5  B0 69                                mov     al,69h                  ; 'i' +273F:16A7  C3                                   retn +273F:16A8                       loc_240:                                        ; 101 +273F:16A8  E8 66FA                              call    read_bit +273F:16AB  74 03                                jz      loc_241                 ; Jump if zero +273F:16AD  EB 04                                jmp     short loc_242           ; (16B3) +273F:16AF  90                                   db      90h +273F:16B0                       loc_241:                                        ; 1010 +273F:16B0  B0 72                                mov     al,72h                  ; 'r' +273F:16B2  C3                                   retn +273F:16B3                       loc_242:                                        ; 1011 +273F:16B3  E8 66EF                              call    read_bit +273F:16B6  74 03                                jz      loc_243                 ; Jump if zero +273F:16B8  EB 04                                jmp     short loc_244           ; (16BE) +273F:16BA  90                                   db      90h +273F:16BB                       loc_243:                                        ; 10110 +273F:16BB  B0 68                                mov     al,68h                  ; 'h' +273F:16BD  C3                                   retn +273F:16BE                       loc_244:                                        ; 10111 +273F:16BE  E8 66E4                              call    read_bit +273F:16C1  74 03                                jz      loc_245                 ; Jump if zero +273F:16C3  EB 04                                jmp     short loc_246           ; (16C9) +273F:16C5  90                                   db      90h +273F:16C6                       loc_245:                                        ; 101110 +273F:16C6  B0 75                                mov     al,75h                  ; 'u' +273F:16C8  C3                                   retn +273F:16C9                       loc_246:                                        ; 101111 +273F:16C9  E8 66D9                              call    read_bit +273F:16CC  74 03                                jz      loc_247                 ; Jump if zero +273F:16CE  EB 04                                jmp     short loc_248           ; (16D4) +273F:16D0  90                                   db      90h +273F:16D1                       loc_247:                                        ; 1011110 +273F:16D1  B0 6C                                mov     al,6Ch                  ; 'l' +273F:16D3  C3                                   retn +273F:16D4                       loc_248:                                        ; 1011111 +273F:16D4  B0 64                                mov     al,64h                  ; 'd' +273F:16D6  C3                                   retn +273F:16D7                       loc_249:                                        ; 11 +273F:16D7  E8 66CB                              call    read_bit +273F:16DA  74 03                                jz      loc_250                 ; Jump if zero +273F:16DC  EB 51                                jmp     short loc_265           ; (172F) +273F:16DE  90                                   db      90h +273F:16DF                       loc_250:                                        ; 110 +273F:16DF  E8 66C3                              call    read_bit +273F:16E2  74 03                                jz      loc_251                 ; Jump if zero +273F:16E4  EB 1A                                jmp     short loc_256           ; (1700) +273F:16E6  90                                   db      90h +273F:16E7                       loc_251:                                        ; 1100 +273F:16E7  E8 66BB                              call    read_bit +273F:16EA  74 03                                jz      loc_252                 ; Jump if zero +273F:16EC  EB 04                                jmp     short loc_253           ; (16F2) +273F:16EE  90                                   db      90h +273F:16EF                       loc_252:                                        ; 11000 +273F:16EF  B0 79                                mov     al,79h                  ; 'y' +273F:16F1  C3                                   retn +273F:16F2                       loc_253:                                        ; 11001 +273F:16F2  E8 66B0                              call    read_bit +273F:16F5  74 03                                jz      loc_254                 ; Jump if zero +273F:16F7  EB 04                                jmp     short loc_255           ; (16FD) +273F:16F9  90                                   db      90h +273F:16FA                       loc_254:                                        ; 110010 +273F:16FA  B0 67                                mov     al,67h                  ; 'g' +273F:16FC  C3                                   retn +273F:16FD                       loc_255:                                        ; 110011 +273F:16FD  B0 00                                mov     al,0 +273F:16FF  C3                                   retn +273F:1700                       loc_256:                                        ; 1101 +273F:1700  E8 66A2                              call    read_bit +273F:1703  74 03                                jz      loc_257                 ; Jump if zero +273F:1705  EB 0F                                jmp     short loc_260           ; (1716) +273F:1707  90                                   db      90h +273F:1708                       loc_257:                                        ; 11010 +273F:1708  E8 669A                              call    read_bit +273F:170B  74 03                                jz      loc_258                 ; Jump if zero +273F:170D  EB 04                                jmp     short loc_259           ; (1713) +273F:170F  90                                   db      90h +273F:1710                       loc_258:                                        ; 110100 +273F:1710  B0 77                                mov     al,77h                  ; 'w' +273F:1712  C3                                   retn +273F:1713                       loc_259:                                        ; 110101 +273F:1713  B0 63                                mov     al,63h                  ; 'c' +273F:1715  C3                                   retn +273F:1716                       loc_260:                                        ; 11011 +273F:1716  E8 668C                              call    read_bit +273F:1719  74 03                                jz      loc_261                 ; Jump if zero +273F:171B  EB 04                                jmp     short loc_262           ; (1721) +273F:171D  90                                   db      90h +273F:171E                       loc_261:                                        ; 110110 +273F:171E  B0 66                                mov     al,66h                  ; 'f' +273F:1720  C3                                   retn +273F:1721                       loc_262:                                        ; 110111 +273F:1721  E8 6681                              call    read_bit +273F:1724  74 03                                jz      loc_263                 ; Jump if zero +273F:1726  EB 04                                jmp     short loc_264           ; (172C) +273F:1728  90                                   db      90h +273F:1729                       loc_263:                                        ; 1101110 +273F:1729  B0 2E                                mov     al,2Eh                  ; '.' +273F:172B  C3                                   retn +273F:172C                       loc_264:                                        ; 1101111 +273F:172C  B0 6D                                mov     al,6Dh                  ; 'm' +273F:172E  C3                                   retn +273F:172F                       loc_265:                                        ; 111 +273F:172F  E8 6673                              call    read_bit +273F:1732  74 03                                jz      loc_266                 ; Jump if zero +273F:1734  EB 46                                jmp     short loc_279           ; (177C) +273F:1736  90                                   db      90h +273F:1737                       loc_266:                                        ; 1110 +273F:1737  E8 666B                              call    read_bit +273F:173A  74 03                                jz      loc_267                 ; Jump if zero +273F:173C  EB 0F                                jmp     short loc_270           ; (174D) +273F:173E  90                                   db      90h +273F:173F                       loc_267:                                        ; 11100 +273F:173F  E8 6663                              call    read_bit +273F:1742  74 03                                jz      loc_268                 ; Jump if zero +273F:1744  EB 04                                jmp     short loc_269           ; (174A) +273F:1746  90                                   db      90h +273F:1747                       loc_268:                                        ; 111000 +273F:1747  B0 70                                mov     al,70h                  ; 'p' +273F:1749  C3                                   retn +273F:174A                       loc_269:                                        ; 111001 +273F:174A  B0 62                                mov     al,62h                  ; 'b' +273F:174C  C3                                   retn +273F:174D                       loc_270:                                        ; 11101 +273F:174D  E8 6655                              call    read_bit +273F:1750  74 03                                jz      loc_271                 ; Jump if zero +273F:1752  EB 0F                                jmp     short loc_274           ; (1763) +273F:1754  90                                   db      90h +273F:1755                       loc_271:                                        ; 111010 +273F:1755  E8 664D                              call    read_bit +273F:1758  74 03                                jz      loc_272                 ; Jump if zero +273F:175A  EB 04                                jmp     short loc_273           ; (1760) +273F:175C  90                                   db      90h +273F:175D                       loc_272:                                        ; 1110100 +273F:175D  B0 2C                                mov     al,2Ch                  ; ',' +273F:175F  C3                                   retn +273F:1760                       loc_273:                                        ; 1110101 +273F:1760  B0 6B                                mov     al,6Bh                  ; 'k' +273F:1762  C3                                   retn +273F:1763                       loc_274:                                        ; 111011 +273F:1763  E8 663F                              call    read_bit +273F:1766  74 03                                jz      loc_275                 ; Jump if zero +273F:1768  EB 04                                jmp     short loc_276           ; (176E) +273F:176A  90                                   db      90h +273F:176B                       loc_275:                                        ; 1110110 +273F:176B  B0 27                                mov     al,27h                  ; ''' +273F:176D  C3                                   retn +273F:176E                       loc_276:                                        ; 1110111 +273F:176E  E8 6634                              call    read_bit +273F:1771  74 03                                jz      loc_277                 ; Jump if zero +273F:1773  EB 04                                jmp     short loc_278           ; (1779) +273F:1775  90                                   db      90h +273F:1776                       loc_277:                                        ; 11101110 +273F:1776  B0 49                                mov     al,49h                  ; 'I' +273F:1778  C3                                   retn +273F:1779                       loc_278:                                        ; 11101111 +273F:1779  B0 76                                mov     al,76h                  ; 'v' +273F:177B  C3                                   retn +273F:177C                       loc_279:                                        ; 1111 +273F:177C  E8 6626                              call    read_bit +273F:177F  74 03                                jz      loc_280                 ; Jump if zero +273F:1781  EB 46                                jmp     short loc_293           ; (17C9) +273F:1783  90                                   db      90h +273F:1784                       loc_280:                                        ; 11110 +273F:1784  E8 661E                              call    read_bit +273F:1787  74 03                                jz      loc_281                 ; Jump if zero +273F:1789  EB 0F                                jmp     short loc_284           ; (179A) +273F:178B  90                                   db      90h +273F:178C                       loc_281:                                        ; 111100 +273F:178C  E8 6616                              call    read_bit +273F:178F  74 03                                jz      loc_282                 ; Jump if zero +273F:1791  EB 04                                jmp     short loc_283           ; (1797) +273F:1793  90                                   db      90h +273F:1794                       loc_282:                                        ; 1111000 +273F:1794  B0 21                                mov     al,21h                  ; '!' +273F:1796  C3                                   retn +273F:1797                       loc_283:                                        ; 1111001 +273F:1797  B0 B4                                mov     al,0B4h +273F:1799  C3                                   retn +273F:179A                       loc_284:                                        ; 111101 +273F:179A  E8 6608                              call    read_bit +273F:179D  74 03                                jz      loc_285                 ; Jump if zero +273F:179F  EB 0F                                jmp     short loc_288           ; (17B0) +273F:17A1  90                                   db      90h +273F:17A2                       loc_285:                                        ; 1111010 +273F:17A2  E8 6600                              call    read_bit +273F:17A5  74 03                                jz      loc_286                 ; Jump if zero +273F:17A7  EB 04                                jmp     short loc_287           ; (17AD) +273F:17A9  90                                   db      90h +273F:17AA                       loc_286:                                        ; 11110100 +273F:17AA  B0 54                                mov     al,54h                  ; 'T' +273F:17AC  C3                                   retn +273F:17AD                       loc_287:                                        ; 11110101 +273F:17AD  B0 B5                                mov     al,0B5h +273F:17AF  C3                                   retn +273F:17B0                       loc_288:                                        ; 1111011 +273F:17B0  E8 65F2                              call    read_bit +273F:17B3  74 03                                jz      loc_289                 ; Jump if zero +273F:17B5  EB 04                                jmp     short loc_290           ; (17BB) +273F:17B7  90                                   db      90h +273F:17B8                       loc_289:                                        ; 11110110 +273F:17B8  B0 3F                                mov     al,3Fh                  ; '?' +273F:17BA  C3                                   retn +273F:17BB                       loc_290:                                        ; 11110111 +273F:17BB  E8 65E7                              call    read_bit +273F:17BE  74 03                                jz      loc_291                 ; Jump if zero +273F:17C0  EB 04                                jmp     short loc_292           ; (17C6) +273F:17C2  90                                   db      90h +273F:17C3                       loc_291:                                        ; 111101110 +273F:17C3  B0 B2                                mov     al,0B2h +273F:17C5  C3                                   retn +273F:17C6                       loc_292:                                        ; 111101111 +273F:17C6  B0 B3                                mov     al,0B3h +273F:17C8  C3                                   retn +273F:17C9                       loc_293:                                        ; 11111 +273F:17C9  E8 65D9                              call    read_bit +273F:17CC  74 03                                jz      loc_294                 ; Jump if zero +273F:17CE  EB 5C                                jmp     short loc_311           ; (182C) +273F:17D0  90                                   db      90h +273F:17D1                       loc_294:                                        ; 111110 +273F:17D1  E8 65D1                              call    read_bit +273F:17D4  74 03                                jz      loc_295                 ; Jump if zero +273F:17D6  EB 1A                                jmp     short loc_300           ; (17F2) +273F:17D8  90                                   db      90h +273F:17D9                       loc_295:                                        ; 1111100 +273F:17D9  E8 65C9                              call    read_bit +273F:17DC  74 03                                jz      loc_296                 ; Jump if zero +273F:17DE  EB 04                                jmp     short loc_297           ; (17E4) +273F:17E0  90                                   db      90h +273F:17E1                       loc_296:                                        ; 11111000 +273F:17E1  B0 57                                mov     al,57h                  ; 'W' +273F:17E3  C3                                   retn +273F:17E4                       loc_297:                                        ; 11111001 +273F:17E4  E8 65BE                              call    read_bit +273F:17E7  74 03                                jz      loc_298                 ; Jump if zero +273F:17E9  EB 04                                jmp     short loc_299           ; (17EF) +273F:17EB  90                                   db      90h +273F:17EC                       loc_298:                                        ; 111110010 +273F:17EC  B0 48                                mov     al,48h                  ; 'H' +273F:17EE  C3                                   retn +273F:17EF                       loc_299:                                        ; 111110011 +273F:17EF  B0 41                                mov     al,41h                  ; 'A' +273F:17F1  C3                                   retn +273F:17F2                       loc_300:                                        ; 1111101 +273F:17F2  E8 65B0                              call    read_bit +273F:17F5  74 03                                jz      loc_301                 ; Jump if zero +273F:17F7  EB 0F                                jmp     short loc_304           ; (1808) +273F:17F9  90                                   db      90h +273F:17FA                       loc_301:                                        ; 11111010 +273F:17FA  E8 65A8                              call    read_bit +273F:17FD  74 03                                jz      loc_302                 ; Jump if zero +273F:17FF  EB 04                                jmp     short loc_303           ; (1805) +273F:1801  90                                   db      90h +273F:1802                       loc_302:                                        ; 111110100 +273F:1802  B0 B1                                mov     al,0B1h +273F:1804  C3                                   retn +273F:1805                       loc_303:                                        ; 111110101 +273F:1805  B0 53                                mov     al,53h                  ; 'S' +273F:1807  C3                                   retn +273F:1808                       loc_304:                                        ; 11111011 +273F:1808  E8 659A                              call    read_bit +273F:180B  74 03                                jz      loc_305                 ; Jump if zero +273F:180D  EB 04                                jmp     short loc_306           ; (1813) +273F:180F  90                                   db      90h +273F:1810                       loc_305:                                        ; 111110110 +273F:1810  B0 59                                mov     al,59h                  ; 'Y' +273F:1812  C3                                   retn +273F:1813                       loc_306:                                        ; 111110111 +273F:1813  E8 658F                              call    read_bit +273F:1816  74 03                                jz      loc_307                 ; Jump if zero +273F:1818  EB 04                                jmp     short loc_308           ; (181E) +273F:181A  90                                   db      90h +273F:181B                       loc_307:                                        ; 1111101110 +273F:181B  B0 47                                mov     al,47h                  ; 'G' +273F:181D  C3                                   retn +273F:181E                       loc_308:                                        ; 1111101111 +273F:181E  E8 6584                              call    read_bit +273F:1821  74 03                                jz      loc_309                 ; Jump if zero +273F:1823  EB 04                                jmp     short loc_310           ; (1829) +273F:1825  90                                   db      90h +273F:1826                       loc_309:                                        ; 11111011110 +273F:1826  B0 4D                                mov     al,4Dh                  ; 'M' +273F:1828  C3                                   retn +273F:1829                       loc_310:                                        ; 11111011111 +273F:1829  B0 4E                                mov     al,4Eh                  ; 'N' +273F:182B  C3                                   retn +273F:182C                       loc_311:                                        ; 111111 +273F:182C  E8 6576                              call    read_bit +273F:182F  74 03                                jz      loc_312                 ; Jump if zero +273F:1831  EB 51                                jmp     short loc_327           ; (1884) +273F:1833  90                                   db      90h +273F:1834                       loc_312:                                        ; 1111110 +273F:1834  E8 656E                              call    read_bit +273F:1837  74 03                                jz      loc_313                 ; Jump if zero +273F:1839  EB 1A                                jmp     short loc_318           ; (1855) +273F:183B  90                                   db      90h +273F:183C                       loc_313:                                        ; 11111100 +273F:183C  E8 6566                              call    read_bit +273F:183F  74 03                                jz      loc_314                 ; Jump if zero +273F:1841  EB 04                                jmp     short loc_315           ; (1847) +273F:1843  90                                   db      90h +273F:1844                       loc_314:                                        ; 111111000 +273F:1844  B0 4F                                mov     al,4Fh                  ; 'O' +273F:1846  C3                                   retn +273F:1847                       loc_315:                                        ; 111111001 +273F:1847  E8 655B                              call    read_bit +273F:184A  74 03                                jz      loc_316                 ; Jump if zero +273F:184C  EB 04                                jmp     short loc_317           ; (1852) +273F:184E  90                                   db      90h +273F:184F                       loc_316:                                        ; 1111110010 +273F:184F  B0 45                                mov     al,45h                  ; 'E' +273F:1851  C3                                   retn +273F:1852                       loc_317:                                        ; 1111110011 +273F:1852  B0 4C                                mov     al,4Ch                  ; 'L' +273F:1854  C3                                   retn +273F:1855                       loc_318:                                        ; 11111101 +273F:1855  E8 654D                              call    read_bit +273F:1858  74 03                                jz      loc_319                 ; Jump if zero +273F:185A  EB 0F                                jmp     short loc_322           ; (186B) +273F:185C  90                                   db      90h +273F:185D                       loc_319:                                        ; 111111010 +273F:185D  E8 6545                              call    read_bit +273F:1860  74 03                                jz      loc_320                 ; Jump if zero +273F:1862  EB 04                                jmp     short loc_321           ; (1868) +273F:1864  90                                   db      90h +273F:1865                       loc_320:                                        ; 1111110100 +273F:1865  B0 2D                                mov     al,2Dh                  ; '-' +273F:1867  C3                                   retn +273F:1868                       loc_321:                                        ; 1111110101 +273F:1868  B0 52                                mov     al,52h                  ; 'R' +273F:186A  C3                                   retn +273F:186B                       loc_322:                                        ; 111111011 +273F:186B  E8 6537                              call    read_bit +273F:186E  74 03                                jz      loc_323                 ; Jump if zero +273F:1870  EB 04                                jmp     short loc_324           ; (1876) +273F:1872  90                                   db      90h +273F:1873                       loc_323:                                        ; 1111110110 +273F:1873  B0 42                                mov     al,42h                  ; 'B' +273F:1875  C3                                   retn +273F:1876                       loc_324:                                        ; 1111110111 +273F:1876  E8 652C                              call    read_bit +273F:1879  74 03                                jz      loc_325                 ; Jump if zero +273F:187B  EB 04                                jmp     short loc_326           ; (1881) +273F:187D  90                                   db      90h +273F:187E                       loc_325:                                        ; 11111101110 +273F:187E  B0 44                                mov     al,44h                  ; 'D' +273F:1880  C3                                   retn +273F:1881                       loc_326:                                        ; 11111101111 +273F:1881  B0 A6                                mov     al,0A6h +273F:1883  C3                                   retn +273F:1884                       loc_327:                                        ; 1111111 +273F:1884  E8 651E                              call    read_bit +273F:1887  74 03                                jz      loc_328                 ; Jump if zero +273F:1889  EB 46                                jmp     short loc_341           ; (18D1) +273F:188B  90                                   db      90h +273F:188C                       loc_328:                                        ; 11111110 +273F:188C  E8 6516                              call    read_bit +273F:188F  74 03                                jz      loc_329                 ; Jump if zero +273F:1891  EB 1A                                jmp     short loc_334           ; (18AD) +273F:1893  90                                   db      90h +273F:1894                       loc_329:                                        ; 111111100 +273F:1894  E8 650E                              call    read_bit +273F:1897  74 03                                jz      loc_330                 ; Jump if zero +273F:1899  EB 04                                jmp     short loc_331           ; (189F) +273F:189B  90                                   db      90h +273F:189C                       loc_330:                                        ; 1111111000 +273F:189C  B0 43                                mov     al,43h                  ; 'C' +273F:189E  C3                                   retn +273F:189F                       loc_331:                                        ; 1111111001 +273F:189F  E8 6503                              call    read_bit +273F:18A2  74 03                                jz      loc_332                 ; Jump if zero +273F:18A4  EB 04                                jmp     short loc_333           ; (18AA) +273F:18A6  90                                   db      90h +273F:18A7                       loc_332:                                        ; 11111110010 +273F:18A7  B0 78                                mov     al,78h                  ; 'x' +273F:18A9  C3                                   retn +273F:18AA                       loc_333:                                        ; 11111110011 +273F:18AA  B0 6A                                mov     al,6Ah                  ; 'j' +273F:18AC  C3                                   retn +273F:18AD                       loc_334:                                        ; 111111101 +273F:18AD  E8 64F5                              call    read_bit +273F:18B0  74 03                                jz      loc_335                 ; Jump if zero +273F:18B2  EB 04                                jmp     short loc_336           ; (18B8) +273F:18B4  90                                   db      90h +273F:18B5                       loc_335:                                        ; 1111111010 +273F:18B5  B0 AC                                mov     al,0ACh +273F:18B7  C3                                   retn +273F:18B8                       loc_336:                                        ; 1111111011 +273F:18B8  E8 64EA                              call    read_bit +273F:18BB  74 03                                jz      loc_337                 ; Jump if zero +273F:18BD  EB 04                                jmp     short loc_338           ; (18C3) +273F:18BF  90                                   db      90h +273F:18C0                       loc_337:                                        ; 11111110110 +273F:18C0  B0 A3                                mov     al,0A3h +273F:18C2  C3                                   retn +273F:18C3                       loc_338:                                        ; 11111110111 +273F:18C3  E8 64DF                              call    read_bit +273F:18C6  74 03                                jz      loc_339                 ; Jump if zero +273F:18C8  EB 04                                jmp     short loc_340           ; (18CE) +273F:18CA  90                                   db      90h +273F:18CB                       loc_339:                                        ; 111111101110 +273F:18CB  B0 50                                mov     al,50h                  ; 'P' +273F:18CD  C3                                   retn +273F:18CE                       loc_340:                                        ; 111111101111 +273F:18CE  B0 55                                mov     al,55h                  ; 'U' +273F:18D0  C3                                   retn +273F:18D1                       loc_341:                                        ; 11111111 +273F:18D1  E8 64D1                              call    read_bit +273F:18D4  74 03                                jz      loc_342                 ; Jump if zero +273F:18D6  EB 46                                jmp     short loc_355           ; (191E) +273F:18D8  90                                   db      90h +273F:18D9                       loc_342:                                        ; 111111110 +273F:18D9  E8 64C9                              call    read_bit +273F:18DC  74 03                                jz      loc_343                 ; Jump if zero +273F:18DE  EB 0F                                jmp     short loc_346           ; (18EF) +273F:18E0  90                                   db      90h +273F:18E1                       loc_343:                                        ; 1111111100 +273F:18E1  E8 64C1                              call    read_bit +273F:18E4  74 03                                jz      loc_344                 ; Jump if zero +273F:18E6  EB 04                                jmp     short loc_345           ; (18EC) +273F:18E8  90                                   db      90h +273F:18E9                       loc_344:                                        ; 11111111000 +273F:18E9  B0 71                                mov     al,71h                  ; 'q' +273F:18EB  C3                                   retn +273F:18EC                       loc_345:                                        ; 11111111001 +273F:18EC  B0 AD                                mov     al,0ADh +273F:18EE  C3                                   retn +273F:18EF                       loc_346:                                        ; 1111111101 +273F:18EF  E8 64B3                              call    read_bit +273F:18F2  74 03                                jz      loc_347                 ; Jump if zero +273F:18F4  EB 0F                                jmp     short loc_350           ; (1905) +273F:18F6  90                                   db      90h +273F:18F7                       loc_347:                                        ; 11111111010 +273F:18F7  E8 64AB                              call    read_bit +273F:18FA  74 03                                jz      loc_348                 ; Jump if zero +273F:18FC  EB 04                                jmp     short loc_349           ; (1902) +273F:18FE  90                                   db      90h +273F:18FF                       loc_348:                                        ; 111111110100 +273F:18FF  B0 46                                mov     al,46h                  ; 'F' +273F:1901  C3                                   retn +273F:1902                       loc_349:                                        ; 111111110101 +273F:1902  B0 31                                mov     al,31h                  ; '1' +273F:1904  C3                                   retn +273F:1905                       loc_350:                                        ; 11111111011 +273F:1905  E8 649D                              call    read_bit +273F:1908  74 03                                jz      loc_351                 ; Jump if zero +273F:190A  EB 04                                jmp     short loc_352           ; (1910) +273F:190C  90                                   db      90h +273F:190D                       loc_351:                                        ; 111111110110 +273F:190D  B0 AF                                mov     al,0AFh +273F:190F  C3                                   retn +273F:1910                       loc_352:                                        ; 111111110111 +273F:1910  E8 6492                              call    read_bit +273F:1913  74 03                                jz      loc_353                 ; Jump if zero +273F:1915  EB 04                                jmp     short loc_354           ; (191B) +273F:1917  90                                   db      90h +273F:1918                       loc_353:                                        ; 1111111101110 +273F:1918  B0 3B                                mov     al,3Bh                  ; ';' +273F:191A  C3                                   retn +273F:191B                       loc_354:                                        ; 1111111101111 +273F:191B  B0 7A                                mov     al,7Ah                  ; 'z' +273F:191D  C3                                   retn +273F:191E                       loc_355:                                        ; 111111111 +273F:191E  E8 6484                              call    read_bit +273F:1921  74 03                                jz      loc_356                 ; Jump if zero +273F:1923  EB 46                                jmp     short loc_369           ; (196B) +273F:1925  90                                   nop +273F:1926                       loc_356:                                        ; 1111111110 +273F:1926  E8 647C                              call    read_bit +273F:1929  74 03                                jz      loc_357                 ; Jump if zero +273F:192B  EB 1A                                jmp     short loc_362           ; (1947) +273F:192D  90                                   db      90h +273F:192E                       loc_357:                                        ; 11111111100 +273F:192E  E8 6474                              call    read_bit +273F:1931  74 03                                jz      loc_358                 ; Jump if zero +273F:1933  EB 04                                jmp     short loc_359           ; (1939) +273F:1935  90                                   db      90h +273F:1936                       loc_358:                                        ; 111111111000 +273F:1936  B0 A5                                mov     al,0A5h +273F:1938  C3                                   retn +273F:1939                       loc_359:                                        ; 111111111001 +273F:1939  E8 6469                              call    read_bit +273F:193C  74 03                                jz      loc_360                 ; Jump if zero +273F:193E  EB 04                                jmp     short loc_361           ; (1944) +273F:1940  90                                   db      90h +273F:1941                       loc_360:                                        ; 1111111110010 +273F:1941  B0 32                                mov     al,32h                  ; '2' +273F:1943  C3                                   retn +273F:1944                       loc_361:                                        ; 1111111110011 +273F:1944  B0 B0                                mov     al,0B0h +273F:1946  C3                                   retn +273F:1947                       loc_362:                                        ; 11111111101 +273F:1947  E8 645B                              call    read_bit +273F:194A  74 03                                jz      loc_363                 ; Jump if zero +273F:194C  EB 04                                jmp     short loc_364           ; (1952) +273F:194E  90                                   db      90h +273F:194F                       loc_363:                                        ; 111111111010 +273F:194F  B0 4B                                mov     al,4Bh                  ; 'K' +273F:1951  C3                                   retn +273F:1952                       loc_364:                                        ; 111111111011 +273F:1952  E8 6450                              call    read_bit +273F:1955  74 03                                jz      loc_365                 ; Jump if zero +273F:1957  EB 04                                jmp     short loc_366           ; (195D) +273F:1959  90                                   db      90h +273F:195A                       loc_365:                                        ; 1111111110110 +273F:195A  B0 25                                mov     al,25h                  ; '%' +273F:195C  C3                                   retn +273F:195D                       loc_366:                                        ; 1111111110111 +273F:195D  E8 6445                              call    read_bit +273F:1960  74 03                                jz      loc_367                 ; Jump if zero +273F:1962  EB 04                                jmp     short loc_368           ; (1968) +273F:1964  90                                   db      90h +273F:1965                       loc_367:                                        ; 11111111101110 +273F:1965  B0 A2                                mov     al,0A2h +273F:1967  C3                                   retn +273F:1968                       loc_368:                                        ; 11111111101111 +273F:1968  B0 35                                mov     al,35h                  ; '5' +273F:196A  C3                                   retn +273F:196B                       loc_369:                                        ; 1111111111 +273F:196B  E8 6437                              call    read_bit +273F:196E  74 03                                jz      loc_370                 ; Jump if zero +273F:1970  EB 30                                jmp     short loc_379           ; (19A2) +273F:1972  90                                   db      90h +273F:1973                       loc_370:                                        ; 11111111110 +273F:1973  E8 642F                              call    read_bit +273F:1976  74 03                                jz      loc_371                 ; Jump if zero +273F:1978  EB 0F                                jmp     short loc_374           ; (1989) +273F:197A  90                                   db      90h +273F:197B                       loc_371:                                        ; 111111111100 +273F:197B  E8 6427                              call    read_bit +273F:197E  74 03                                jz      loc_372                 ; Jump if zero +273F:1980  EB 04                                jmp     short loc_373           ; (1986) +273F:1982  90                                   db      90h +273F:1983                       loc_372:                                        ;  1111111111000 +273F:1983  B0 3A                                mov     al,3Ah                  ; ':' +273F:1985  C3                                   retn +273F:1986                       loc_373:                                        ;  1111111111001 +273F:1986  B0 4A                                mov     al,4Ah                  ; 'J' +273F:1988  C3                                   retn +273F:1989                       loc_374:                                        ; 111111111101 +273F:1989  E8 6419                              call    read_bit +273F:198C  74 03                                jz      loc_375                 ; Jump if zero +273F:198E  EB 04                                jmp     short loc_376           ; (1994) +273F:1990  90                                   db      90h +273F:1991                       loc_375:                                        ; 1111111111010 +273F:1991  B0 56                                mov     al,56h                  ; 'V' +273F:1993  C3                                   retn +273F:1994                       loc_376:                                        ; 1111111111011 +273F:1994  E8 640E                              call    read_bit +273F:1997  74 03                                jz      loc_377                 ; Jump if zero +273F:1999  EB 04                                jmp     short loc_378           ; (199F) +273F:199B  90                                   db      90h +273F:199C                       loc_377:                                        ; 11111111110110 +273F:199C  B0 36                                mov     al,36h                  ; '6' +273F:199E  C3                                   retn +273F:199F                       loc_378:                                        ; 11111111110111 +273F:199F  B0 33                                mov     al,33h                  ; '3' +273F:19A1  C3                                   retn +273F:19A2                       loc_379:                                        ; 11111111111 +273F:19A2  E8 6400                              call    read_bit +273F:19A5  74 03                                jz      loc_380                 ; Jump if zero +273F:19A7  EB 25                                jmp     short loc_387           ; (19CE) +273F:19A9  90                                   db      90h +273F:19AA                       loc_380:                                        ; 111111111110 +273F:19AA  E8 63F8                              call    read_bit +273F:19AD  74 03                                jz      loc_381                 ; Jump if zero +273F:19AF  EB 04                                jmp     short loc_382           ; (19B5) +273F:19B1  90                                   db      90h +273F:19B2                       loc_381:                                        ; 1111111111100 +273F:19B2  B0 AB                                mov     al,0ABh +273F:19B4  C3                                   retn +273F:19B5                       loc_382:                                        ; 1111111111101 +273F:19B5  E8 63ED                              call    read_bit +273F:19B8  74 03                                jz      loc_383                 ; Jump if zero +273F:19BA  EB 04                                jmp     short loc_384           ; (19C0) +273F:19BC  90                                   db      90h +273F:19BD                       loc_383:                                        ; 11111111111010 +273F:19BD  B0 AE                                mov     al,0AEh +273F:19BF  C3                                   retn +273F:19C0                       loc_384:                                        ; 11111111111011 +273F:19C0  E8 63E2                              call    read_bit +273F:19C3  74 03                                jz      loc_385                 ; Jump if zero +273F:19C5  EB 04                                jmp     short loc_386           ; (19CB) +273F:19C7  90                                   db      90h +273F:19C8                       loc_385:                                        ; 111111111110110 +273F:19C8  B0 30                                mov     al,30h                  ; '0' +273F:19CA  C3                                   retn +273F:19CB                       loc_386:                                        ; 111111111110111 +273F:19CB  B0 34                                mov     al,34h                  ; '4' +273F:19CD  C3                                   retn +273F:19CE                       loc_387:                                        ; 111111111111 +273F:19CE  E8 63D4                              call    read_bit +273F:19D1  74 03                                jz      loc_388                 ; Jump if zero +273F:19D3  EB 1A                                jmp     short loc_393           ; (19EF) +273F:19D5  90                                   db      90h +273F:19D6                       loc_388:                                        ; 1111111111110 +273F:19D6  E8 63CC                              call    read_bit +273F:19D9  74 03                                jz      loc_389                 ; Jump if zero +273F:19DB  EB 04                                jmp     short loc_390           ; (19E1) +273F:19DD  90                                   db      90h +273F:19DE                       loc_389:                                        ; 11111111111100 +273F:19DE  B0 37                                mov     al,37h                  ; '7' +273F:19E0  C3                                   retn +273F:19E1                       loc_390:                                        ; 11111111111101 +273F:19E1  E8 63C1                              call    read_bit +273F:19E4  74 03                                jz      loc_391                 ; Jump if zero +273F:19E6  EB 04                                jmp     short loc_392           ; (19EC) +273F:19E8  90                                   db      90h +273F:19E9                       loc_391:                                        ; 111111111111010 +273F:19E9  B0 39                                mov     al,39h                  ; '9' +273F:19EB  C3                                   retn +273F:19EC                       loc_392:                                        ; 111111111111011 +273F:19EC  B0 22                                mov     al,22h                  ; '"' +273F:19EE  C3                                   retn +273F:19EF                       loc_393:                                        ; 1111111111111 +273F:19EF  E8 63B3                              call    read_bit +273F:19F2  74 03                                jz      loc_394                 ; Jump if zero +273F:19F4  EB 0F                                jmp     short loc_397           ; (1A05) +273F:19F6  90                                   db      90h +273F:19F7                       loc_394:                                        ; 11111111111110 +273F:19F7  E8 63AB                              call    read_bit +273F:19FA  74 03                                jz      loc_395                 ; Jump if zero +273F:19FC  EB 04                                jmp     short loc_396           ; (1A02) +273F:19FE  90                                   db      90h +273F:19FF                       loc_395:                                        ; 111111111111100 +273F:19FF  B0 38                                mov     al,38h                  ; '8' +273F:1A01  C3                                   retn +273F:1A02                       loc_396:                                        ; 111111111111101 +273F:1A02  B0 A7                                mov     al,0A7h +273F:1A04  C3                                   retn +273F:1A05                       loc_397:                                        ; 11111111111111 +273F:1A05  E8 639D                              call    read_bit +273F:1A08  74 03                                jz      loc_398                 ; Jump if zero +273F:1A0A  EB 0F                                jmp     short loc_401           ; (1A1B) +273F:1A0C  90                                   db      90h +273F:1A0D                       loc_398:                                        ; 111111111111110 +273F:1A0D  E8 6395                              call    read_bit +273F:1A10  74 03                                jz      loc_399                 ; Jump if zero +273F:1A12  EB 04                                jmp     short loc_400           ; (1A18) +273F:1A14  90                                   db      90h +273F:1A15                       loc_399:                                        ; 1111111111111100 +273F:1A15  B0 2F                                mov     al,2Fh                  ; '/' +273F:1A17  C3                                   retn +273F:1A18                       loc_400:                                        ; 1111111111111101 +273F:1A18  B0 51                                mov     al,51h                  ; 'Q' +273F:1A1A  C3                                   retn +273F:1A1B                       loc_401:                                        ; 111111111111111 +273F:1A1B  E8 6387                              call    read_bit +273F:1A1E  74 03                                jz      loc_402                 ; Jump if zero +273F:1A20  EB 0F                                jmp     short loc_405           ; (1A31) +273F:1A22  90                                   db      90h +273F:1A23                       loc_402:                                        ; 1111111111111110 +273F:1A23  E8 637F                              call    read_bit +273F:1A26  74 03                                jz      loc_403                 ; Jump if zero +273F:1A28  EB 04                                jmp     short loc_404           ; (1A2E) +273F:1A2A  90                                   db      90h +273F:1A2B                       loc_403:                                        ; 11111111111111100 +273F:1A2B  B0 A8                                mov     al,0A8h +273F:1A2D  C3                                   retn +273F:1A2E                       loc_404:                                        ; 11111111111111101 +273F:1A2E  B0 28                                mov     al,28h                  ; '(' +273F:1A30  C3                                   retn +273F:1A31                       loc_405:                                        ; 1111111111111111 +273F:1A31  E8 6371                              call    read_bit +273F:1A34  74 03                                jz      loc_406                 ; Jump if zero +273F:1A36  EB 0F                                jmp     short loc_409           ; (1A47) +273F:1A38  90                                   db      90h +273F:1A39                       loc_406:                                        ; 11111111111111110 +273F:1A39  E8 6369                              call    read_bit +273F:1A3C  74 03                                jz      loc_407                 ; Jump if zero +273F:1A3E  EB 04                                jmp     short loc_408           ; (1A44) +273F:1A40  90                                   db      90h +273F:1A41                       loc_407:                                        ; 111111111111111100 +273F:1A41  B0 29                                mov     al,29h                  ; ')' +273F:1A43  C3                                   retn +273F:1A44                       loc_408:                                        ; 111111111111111101 +273F:1A44  B0 99                                mov     al,99h +273F:1A46  C3                                   retn +273F:1A47                       loc_409:                                        ; 11111111111111111 +273F:1A47  B0 A9                                mov     al,0A9h +273F:1A49  C3                                   retn +                        decode_character        endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:631D +                                ; si=Character name, di = speech text, talk_character_id = character hotspot Id +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          talk_dialog_init      proc    near +273F:1A4A  89 3E B9F9                           mov     talk_speech_ptr, di +273F:1A4E  BD 0080                              mov     bp, 80h +273F:1A51  A1 4CF0                              mov     ax, font2_segment +273F:1A54  8E C0                                mov     es, ax +273F:1A56  56                                   push    si +273F:1A57  33 D2                                xor     dx, dx                  ; Zero register +273F:1A59  B1 03                                mov     cl, 3 +273F:1A5B                       loc_410:                                        ;  xref 273F:1A68, 1A6D +273F:1A5B úAC                                   lodsb                           ; String [si] to al +273F:1A5C  2C 20                                sub     al,20h                  ; ' ' +273F:1A5E  72 0F                                jc      loc_411                 ; Jump if carry Set +273F:1A60  98                                   cbw                             ; Convrt byte to word +273F:1A61  D3 E0                                shl     ax,cl                   ; Convert to font data offset +273F:1A63  8B D8                                mov     bx,ax +273F:1A65  26: 02 17                            add     dl,es:[bx]              ; Increase width +273F:1A68  73 F1                                jnc     loc_410                 ; Jump if carry=0 +273F:1A6A  80 C6 01                             add     dh,1 +273F:1A6D  EB EC                                jmp     short loc_410           ; (1A5B) +; dx = size of the character name? +273F:1A6F                       loc_411:                                        ;  xref 273F:1A5E +273F:1A6F  B8 0080                              mov     ax,80h +273F:1A72  2B C2                                sub     ax,dx +273F:1A74  D1 E8                                shr     ax,1                    ; Calculate centering name? +273F:1A76  50                                   push    ax +273F:1A77 úBB B9F9                              mov     bx, offset talk_speech_ptr +273F:1A7A  E8 00B3                              call    word_wrap_string +273F:1A7D  A1 4CE6                              mov     ax, talk_dialog_buffer +273F:1A80  A3 B9FF                              mov     talk_buffer_segment, ax +273F:1A83  8E C0                                mov     es, ax +273F:1A85  BF 0000                              mov     di,0 +273F:1A88  89 3E BA01                           mov     talk_buffer_offset, di +273F:1A8C  8B 2E B9FD                           mov     bp, data_1122 +273F:1A90  57                                   push    di +273F:1A91  FF 16 0756                           call    [draw_talk_dialog_proc] + +273F:1A95  A1 983B                              mov     ax, talk_character_id +273F:1A98  E8 F24F                              call    get_room_resource_pointer2 +273F:1A9B  8B 44 19                             mov     ax, [si+HS_WIDTH_COPY]  ; Figure out hotspot X center +273F:1A9E  D1 E8                                shr     ax,1 +273F:1AA0  03 44 0D                             add     ax, [si+HS_X] +273F:1AA3  2D 0080                              sub     ax, 80h                 ; Remove 80h offset +273F:1AA6  72 19                                jc      loc_412                 ; Character off-screen +273F:1AA8  8B 1E 11C4                           mov     bx, talk_dialog_width +273F:1AAC  D1 EB                                shr     bx,1                    ; ax=X start for centering +273F:1AAE  2B C3                                sub     ax,bx                   ;   dialog on character +273F:1AB0  72 0F                                jc      loc_412 +273F:1AB2  BB 0136                              mov     bx, 310 +273F:1AB5  2B 1E 11C4                           sub     bx, talk_dialog_width +273F:1AB9  3B C3                                cmp     ax, bx                  ; Too far along horizontally? +273F:1ABB  72 06                                jb      loc_413 +273F:1ABD  8B C3                                mov     ax,bx                   ; Yes, so limit x start +273F:1ABF  EB 02                                jmp     short loc_413 +273F:1AC1                       loc_412: +273F:1AC1  33 C0                                xor     ax,ax +273F:1AC3                       loc_413: +273F:1AC3  A3 11C2                              mov     talk_dialog_left, ax    ; Set the x start +273F:1AC6  5F                                   pop     di +273F:1AC7  8B 36 076E                           mov     si, data_571 +273F:1ACB  8A 7C 04                             mov     bh, [si+4] +273F:1ACE  8A 44 05                             mov     al, [si+5] +273F:1AD1  A2 BA06                              mov     data_ba06, al +273F:1AD4  58                                   pop     ax +273F:1AD5  5E                                   pop     si +273F:1AD6  80 3E 0742 01                        cmp     video_style, VIDEO_STYLE_VGA +273F:1ADB  74 2A                                je      loc_414                 ; Jump if equal +273F:1ADD  81 C7 0140                           add     di,140h +273F:1AE1  8B 0E BA01                           mov     cx, talk_buffer_offset +273F:1AE5  81 C1 03C0                           add     cx, SCREEN_WIDTH*3      ; 3C0h ? +273F:1AE9  89 0E BA01                           mov     talk_buffer_offset, cx +273F:1AED  89 0E BA03                           mov     talk_buffer_offset_2, cx +273F:1AF1  8A C8                                mov     cl,al +273F:1AF3  80 E1 07                             and     cl,7 +273F:1AF6  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:1AF8  25 FFFC                              and     ax,0FFFCh +273F:1AFB  03 F8                                add     di,ax +273F:1AFD  BD 0040                              mov     bp,40h +273F:1B00  C6 06 BA05 05                        mov     byte ptr ds:data_465e,5 ; (273F:BA05=0) +273F:1B05  EB 19                                jmp     short loc_415           ; (1B20) +273F:1B07                       loc_414:                                        ;  xref 273F:1ADB +273F:1B07  03 F8                                add     di,ax +273F:1B09  81 C7 0280                           add     di,280h +273F:1B0D  8B 0E BA01                           mov     cx, talk_buffer_offset +273F:1B11  81 C1 0785                           add     cx,785h +273F:1B15  89 0E BA01                           mov     talk_buffer_offset, cx +273F:1B19  89 0E BA03                           mov     talk_buffer_offset_2, cx +273F:1B1D  BD 0080                              mov     bp,80h +273F:1B20                       loc_415:                                        ;  xref 273F:1B05 +273F:1B20  89 2E B9FB                           mov     data_b9fb, bp + +; Loop for adding the character name into the dialog +273F:1B24 úAC                   loc_416:        lodsb                           ; String [si] to al +273F:1B25  2C 20                                sub     al,20h                  ; ' ' +273F:1B27  72 06                                jc      loc_ret_417             ; Jump if carry Set +273F:1B29  FF 16 075A                           call    [display2_character_proc] +273F:1B2D  EB F5                                jmp     short loc_416           ; (1B24) +273F:1B2F                       loc_ret_417:                                    ;  xref 273F:1B27 +273F:1B2F  C3                                   retn +                          talk_dialog_init      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1A7A, 8980 +                                ; bx = talk data details record offset +                                ; di = text to handle +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1B30              word_wrap_string         proc    near +273F:1B30  8B F7                                mov     si,di +273F:1B32  C7 47 04 0000                        mov     word ptr [bx+4],0 +273F:1B37                       loc_418:                                        ;  xref 273F:1B5C, 1B92 +273F:1B37 ú8B FE                                mov     di,si +273F:1B39  83 47 04 01                          add     word ptr [bx+4],1 +273F:1B3D  BA 0009                              mov     dx,9 +273F:1B40                       loc_419:                                        ;  xref 273F:1B8C +273F:1B40  32 ED                                xor     ch,ch                   ; Zero register +273F:1B42                       loc_420:                                        ;  xref 273F:1B51, 1B58 +273F:1B42 úAC                                   lodsb                           ; String [si] to al +273F:1B43  2C 20                                sub     al,20h                  ; ' ' +273F:1B45  74 17                                jz      loc_423                 ; Jump if zero +273F:1B47  72 0A                                jc      loc_421                 ; Jump if carry Set +273F:1B49  98                                   cbw                             ; Convrt byte to word +273F:1B4A  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:1B4C  93                                   xchg    bx,ax +273F:1B4D  26: 02 2F                            add     ch,es:[bx] +273F:1B50  93                                   xchg    bx,ax +273F:1B51  EB EF                                jmp     short loc_420           ; (1B42) +273F:1B53                       loc_421:                                        ;  xref 273F:1B47 +273F:1B53  3C E1                                cmp     al,0E1h +273F:1B55  75 03                                jne     loc_422                 ; Jump if not equal +273F:1B57  AC                                   lodsb                           ; String [si] to al +273F:1B58  EB E8                                jmp     short loc_420           ; (1B42) +273F:1B5A                       loc_422:                                        ;  xref 273F:1B55 +273F:1B5A  3C ED                                cmp     al,0EDh +273F:1B5C  74 D9                                je      loc_418                 ; Jump if equal +273F:1B5E                       loc_423:                                        ;  xref 273F:1B45 +273F:1B5E  02 D5                                add     dl,ch +273F:1B60  73 03                                jnc     loc_424                 ; Jump if carry=0 +273F:1B62  80 C6 01                             add     dh,1 +273F:1B65                       loc_424:                                        ;  xref 273F:1B60 +273F:1B65  3B EA                                cmp     bp,dx +273F:1B67  74 1D                                je      loc_426                 ; Jump if equal +273F:1B69  73 0F                                jnc     loc_425                 ; Jump if carry=0 +273F:1B6B  C6 45 FF 0D                          mov     byte ptr [di-1],0Dh +273F:1B6F  8A D5                                mov     dl,ch +273F:1B71  80 C2 09                             add     dl,9 +273F:1B74  32 F6                                xor     dh,dh                   ; Zero register +273F:1B76  83 47 04 01                          add     word ptr [bx+4],1 +273F:1B7A                       loc_425:                                        ;  xref 273F:1B69 +273F:1B7A  8B FE                                mov     di,si +273F:1B7C  26: 02 16 0000                       add     dl,es:data_1443e        ; (8B57:0000=0) +273F:1B81  73 03                                jnc     loc_426                 ; Jump if carry=0 +273F:1B83  80 C6 01                             add     dh,1 +273F:1B86                       loc_426:                                        ;  xref 273F:1B67, 1B81 +273F:1B86  0A C0                                or      al,al                   ; Zero ? +273F:1B88  75 0A                                jnz     loc_427                 ; Jump if not zero +273F:1B8A  3B D5                                cmp     dx,bp +273F:1B8C  72 B2                                jb      loc_419                 ; Jump if below +273F:1B8E  C6 44 FF 0D                          mov     byte ptr [si-1],0Dh     ; Add a carriage return +273F:1B92  EB A3                                jmp     short loc_418 +273F:1B94                       loc_427:                                         +273F:1B94  8B 47 04                             mov     ax,[bx+4] +273F:1B97  C3                                   retn +                       word_wrap_string         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:634C, 899B, 8E28 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1B98                       sub_51          proc    near +273F:1B98  8B 37                                mov     si,[bx] +273F:1B9A  8B 7F 08                             mov     di,[bx+8] +273F:1B9D  8A 4F 0C                             mov     cl,[bx+0Ch] +273F:1BA0  8B 47 06                             mov     ax,[bx+6] +273F:1BA3  8E C0                                mov     es,ax +273F:1BA5  53                                   push    bx +273F:1BA6  8B 6F 02                             mov     bp, [bx+2] +273F:1BA9  8A 7F 0D                             mov     bh, [bx+0Dh] +273F:1BAC                       loc_428:                                        ;  xref 273F:1BCE +273F:1BAC úAC                                   lodsb                           ; String [si] to al +273F:1BAD  2C 20                                sub     al,20h                  ; ' ' +273F:1BAF  74 1F                                jz      loc_430                 ; Jump if zero +273F:1BB1  73 17                                jnc     loc_429                 ; Jump if carry=0 +273F:1BB3  3C E1                                cmp     al,0E1h +273F:1BB5  72 29                                jb      loc_432                 ; Jump if below +273F:1BB7  5B                                   pop     bx +273F:1BB8  8B 7F 0A                             mov     di,[bx+0Ah] +273F:1BBB  B8 0007                              mov     ax,7 +273F:1BBE  F7 67 02                             mul     word ptr [bx+2]         ; dx:ax = data * ax +273F:1BC1  03 F8                                add     di,ax +273F:1BC3  89 7F 0A                             mov     [bx+0Ah], di +273F:1BC6  B1 05                                mov     cl, 5 +273F:1BC8  EB 0B                                jmp     short loc_431           ; (1BD5) +273F:1BCA                       loc_429:                                        ;  xref 273F:1BB1 +273F:1BCA  FF 16 075A                           call    [display2_character_proc] +273F:1BCE  EB DC                                jmp     short loc_428           ; (1BAC) +273F:1BD0                       loc_430:                                        ;  xref 273F:1BAF +273F:1BD0  FF 16 075A                           call    [display2_character_proc] +273F:1BD4  5B                                   pop     bx +273F:1BD5                       loc_431:                                        ;  xref 273F:1BC8 +273F:1BD5  89 7F 08                             mov     [bx+8],di +273F:1BD8  88 4F 0C                             mov     [bx+0Ch],cl +273F:1BDB  89 37                                mov     [bx],si +273F:1BDD  33 C0                                xor     ax,ax                   ; Zero register +273F:1BDF  C3                                   retn +273F:1BE0                       loc_432:                                        ;  xref 273F:1BB5 +273F:1BE0  5B                                   pop     bx +273F:1BE1  0D FFFF                              or      ax,0FFFFh +273F:1BE4  C3                                   retn +                                sub_51          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:59D2, 59F6, 5A2E, 5A68 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1BE5                       sub_52          proc    near +273F:1BE5  8B 0E 074C                           mov     cx, menubar_block_size +273F:1BE9  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:1BEB  8B F8                                mov     di,ax +273F:1BED  A1 074A                              mov     ax, char_width +273F:1BF0  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:1BF2  03 F8                                add     di,ax +273F:1BF4  A1 4CE4                              mov     ax, data_segment2 +273F:1BF7  8E C0                                mov     es,ax +273F:1BF9  8B 2E 0748                           mov     bp, screen_width +273F:1BFD  32 C9                                xor     cl,cl                   ; Zero register +273F:1BFF  8B 1E 076E                           mov     bx, data_571 +273F:1C03  8A 7F 05                             mov     bh,[bx+5] +273F:1C06                       loc_433:                                        ;  xref 273F:1C0F +273F:1C06 úAC                                   lodsb                           ; String [si] to al +273F:1C07  2C 20                                sub     al,20h                  ; ' ' +273F:1C09  72 06                                jc      loc_ret_434             ; Jump if carry Set +273F:1C0B  FF 16 075A                           call    [display2_character_proc] +273F:1C0F  EB F5                                jmp     short loc_433           ; (1C06) + +273F:1C11                       loc_ret_434:                                    ;  xref 273F:1C09 +273F:1C11  C3                                   retn +                                sub_52          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:010A, 93EC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         room_check_cursors     proc    near + +                                                assume  ds:data_seg +273F:1C12  A1 11E1                              mov     ax, cursor_index +273F:1C15  3D 0002                              cmp     ax, CURSOR_TIME_UP      ; Check if it's in the clock animation +273F:1C18  72 24                                jb      loc_437                 ; No +273F:1C1A  3D 0009                              cmp     ax, CURSOR_TIME_UP_LEFT +273F:1C1D  73 1F                                jae     loc_437                 ; Too high +273F:1C1F  80 3E 6D52 01                        cmp     player_action_state, CHAR_ACTION_START_WALK +273F:1C24  74 07                                je      loc_435                 ; Jump if equal +273F:1C26  80 3E 6D52 04                        cmp     player_action_state, CHAR_ACTION_PROCESSING_PATH +273F:1C2B  75 11                                jne     loc_437                 ; Jump if not equal +273F:1C2D                       loc_435:                                        ;  xref 273F:1C24 +273F:1C2D  05 0001                              add     ax,1 +273F:1C30  3D 000A                              cmp     ax, CURSOR_CROSS        ; Passed end of clock sequence? +273F:1C33  72 03                                jb      loc_436                 ; Jump if below +273F:1C35  A1 0002                              mov     ax,  CURSOR_TIME_UP     ; Set clock back to start +273F:1C38                       loc_436: +273F:1C38  A2 11E3                              mov     cursor_index_new, al +273F:1C3B  E9 0180                              jmp     loc_451 + +273F:1C3E                       loc_437: +273F:1C3E  E8 0374                              call    talk_dialog_mouse_check +273F:1C41  75 08                                jnz     loc_438                 ; Not in dialog +273F:1C43  C6 06 11E3 10                        mov     cursor_index_new, CURSOR_TALK ; Show talk cursor +273F:1C48  E9 0173                              jmp     loc_451 + +273F:1C4B                       loc_438:                                        ;  xref 273F:1C41 +273F:1C4B  80 3E 9834 04                        cmp     cursor_state, CURSORSTATE_4 +273F:1C50  74 5B                                je      loc_440                 ; Jump if equal +273F:1C52  80 3E 9834 03                        cmp     cursor_state, CURSORSTATE_TALK +273F:1C57  74 5C                                je      loc_441                 ; Jump if equal + +; Check for cursor in menubar area + +273F:1C59  83 3E 11D8 08                        cmp     mouse_y2, MENUBAR_Y_SIZE +273F:1C5E  73 10                                jae     loc_439                 ; Jump if above or = +273F:1C60  F7 06 BA25 FFFF                      test    old_room_number, 0FFFFh +273F:1C66  75 55                                jnz     loc_ret_442             ; Jump if not zero +273F:1C68  C6 06 11E3 11                        mov     cursor_index_new, CURSOR_MENUBAR_AREA +273F:1C6D  E9 014E                              jmp     loc_451                 ; (1DBE) +273F:1C70                       loc_439:                                        ;  xref 273F:1C5E +273F:1C70  F6 06 9834 FF                        test    cursor_state, 0FFh +273F:1C75  74 47                                jz      loc_443                 ; Jump if zero +273F:1C77  C7 06 1924 0000                      mov     hotspot_id, 0 +273F:1C7D  C6 06 11E3 0F                        mov     cursor_index_new, CURSOR_CAMERA +273F:1C82  8B 16 9832                           mov     dx, room_number +273F:1C86 úBF 623E                              mov     di, offset hotspot_table_3 +273F:1C89  BD 2710                              mov     bp,2710h +273F:1C8C  E8 01BC                              call    room_check_hotspots +273F:1C8F úBF 63B1                              mov     di, offset hotspot_table_4 +273F:1C92  BD 7530                              mov     bp,7530h +273F:1C95  E8 01B3                              call    room_check_hotspots +273F:1C98 úBF 5D98                              mov     di, offset hotspot_table_2 +273F:1C9B  BD 03E8                              mov     bp, PLAYER_HOTSPOT_ID +273F:1C9E  E8 01AA                              call    room_check_hotspots +273F:1CA1 úBF 5EB8                              mov     di, offset hotspot_table_5 +273F:1CA4  BD 0408                              mov     bp,408h +273F:1CA7  E8 01A1                              call    room_check_hotspots +273F:1CAA  E9 0111                              jmp     loc_451                 ; (1DBE) +273F:1CAD                       loc_440:                                        ;  xref 273F:1C50 +273F:1CAD  C6 06 11E3 0F                        mov     cursor_index_new, CURSOR_CAMERA +273F:1CB2  E9 0109                              jmp     loc_451                 ; (1DBE) +273F:1CB5                       loc_441:                                        ;  xref 273F:1C57 +273F:1CB5  C6 06 11E3 00                        mov     cursor_index_new, CURSOR_ARROW +273F:1CBA  E9 0101                              jmp     loc_451                 ; (1DBE) + +273F:1CBD                       loc_ret_442:                                    ;  xref 273F:1C66 +273F:1CBD  C3                                   retn +273F:1CBE                       loc_443:                                        ;  xref 273F:1C75 +273F:1CBE  C6 06 11E3 00                        mov     cursor_index_new, CURSOR_ARROW +273F:1CC3  C7 06 1924 0000                      mov     hotspot_id, 0 +273F:1CC9  C7 06 11E6 0000                      mov     hotspot_name_id, 0 +273F:1CCF  8B 16 9832                           mov     dx, room_number +273F:1CD3 úBF 623E                              mov     di, offset hotspot_table_3 +273F:1CD6  BD 2710                              mov     bp,2710h +273F:1CD9  E8 016F                              call    room_check_hotspots +273F:1CDC úBF 5D98                              mov     di, offset hotspot_table_2 +273F:1CDF  BD 03E8                              mov     bp, PLAYER_HOTSPOT_ID +273F:1CE2  E8 0166                              call    room_check_hotspots +273F:1CE5 úBF 63B1                              mov     di, offset hotspot_table_4 +273F:1CE8  BD 7530                              mov     bp,7530h +273F:1CEB  E8 015D                              call    room_check_hotspots +273F:1CEE úBF 5EB8                              mov     di, offset hotspot_table_5 +273F:1CF1  BD 0408                              mov     bp,408h +273F:1CF4  E8 0154                              call    room_check_hotspots +273F:1CF7  F7 06 1924 FFFF                      test    hotspot_id, 0FFFFh +273F:1CFD  74 05                                jz      loc_444                 ; Not on hotspot +273F:1CFF  C6 06 11E3 0A                        mov     cursor_index_new, CURSOR_CROSS +273F:1D04                       loc_444:                                        ;  xref 273F:1CFD +273F:1D04  A1 11E6                              mov     ax, hotspot_name_id +273F:1D07  3B 06 11E4                           cmp     ax, hotspot_name_id2 +273F:1D0B  74 36                                je      loc_446                 ; Jump if equal +273F:1D0D  A3 11E4                              mov     hotspot_name_id2, ax +273F:1D10  E8 52F2                              call    menubar_clear_image +273F:1D13  A1 11E4                              mov     ax, hotspot_name_id2 +273F:1D16  0B C0                                or      ax,ax                   ; Zero ? +273F:1D18  74 29                                jz      loc_446                 ; Jump if zero +273F:1D1A  BF 4B43                              mov     di, offset hotspot_name +273F:1D1D  E8 601A                              call    decode_string +273F:1D20  8B 36 076E                           mov     si, data_571  +273F:1D24  8A 7C 05                             mov     bh,[si+5] +273F:1D27 úBE 4B43                              mov     si,offset hotspot_name +273F:1D2A  BF 0000                              mov     di,0 +273F:1D2D  B1 04                                mov     cl,4 +273F:1D2F  8B 2E 0748                           mov     bp, screen_width +273F:1D33  A1 4CE4                              mov     ax, data_segment2 +273F:1D36  8E C0                                mov     es,ax +273F:1D38                       loc_445:                                        ;  xref 273F:1D41 +273F:1D38 úAC                                   lodsb                           ; String [si] to al +273F:1D39  2C 20                                sub     al,20h                  ; ' ' +273F:1D3B  72 06                                jc      loc_446                 ; Jump if carry Set +273F:1D3D  FF 16 075A                           call    [display2_character_proc] +273F:1D41  EB F5                                jmp     short loc_445           ; (1D38) +273F:1D43                       loc_446:                                        ;  xref 273F:1D0B, 1D18, 1D3B +273F:1D43  C7 06 1920 0000                      mov     room_exit_hotspot_id, 0 +273F:1D49  C7 06 1922 0000                      mov     dest_room_num, 0 +273F:1D4F  8B 1E 9832                           mov     bx, room_number +273F:1D53  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:1D55  8B B7 2F61                           mov     si, room_exits_table[bx] +273F:1D59  0B F6                                or      si,si                   ; Zero ? +273F:1D5B  74 61                                jz      loc_451                 ; Jump if zero +273F:1D5D  8B 1E 11D6                           mov     bx, mouse_x2 +273F:1D61  81 C3 0080                           add     bx, 80h +273F:1D65  8B 16 11D8                           mov     dx, mouse_y2           +273F:1D69  81 C2 0080                           add     dx,80h +273F:1D6D                       loc_447:                                        ;  xref 273F:1D89 +273F:1D6D ú8B 04                                mov     ax,[si] +273F:1D6F  0B C0                                or      ax,ax                   ; Record present? +273F:1D71  74 4B                                jz      loc_451                 ; If no, exit loop +273F:1D73  3B C3                                cmp     ax,bx +273F:1D75  73 0F                                jae     loc_448                 ; Jump if above or = +273F:1D77  3B 5C 02                             cmp     bx,[si+ROOMEXIT_X_END] +273F:1D7A  73 0A                                jae     loc_448                 ; Jump if above or = +273F:1D7C  3B 54 04                             cmp     dx,[si+ROOMEXIT_Y_START] +273F:1D7F  72 05                                jb      loc_448                 ; Jump if below +273F:1D81  3B 54 06                             cmp     dx,[si+ROOMEXIT_Y_END] +273F:1D84  72 05                                jb      loc_449                 ; Jump if below +273F:1D86                       loc_448: +273F:1D86  83 C6 0E                             add     si, ROOMEXIT_RECORD_SIZE ; Move to next record +273F:1D89  EB E2                                jmp     short loc_447 +273F:1D8B                       loc_449:                                        ;  xref 273F:1D84 +273F:1D8B  8B 44 0A                             mov     ax,[si+ROOMEXIT_HOTSPOT_ID] ; Get asssociated hotspot Id +273F:1D8E  0B C0                                or      ax,ax                   ; Is there one? +273F:1D90  74 0D                                jz      loc_450                 ; No, so allow exit +273F:1D92  56                                   push    si +273F:1D93  E8 5458                              call    room_exit_hs_get_pointer +273F:1D96  5F                                   pop     di +273F:1D97  87 F7                                xchg    si,di +273F:1D99  F6 45 0C FF                          test    byte ptr [di+REHS_EXIT_BLOCKED],0FFh  ; Is exit blocked? +273F:1D9D  75 1F                                jnz     loc_451                 ; Jump if yes +273F:1D9F                       loc_450: +273F:1D9F  8B 44 0A                             mov     ax,[si+ROOMEXIT_HOTSPOT_ID] +273F:1DA2  A3 1920                              mov     room_exit_hotspot_id, ax +273F:1DA5  8B 44 0C                             mov     ax,[si+ROOMEXIT_DEST_ROOM] +273F:1DA8  A3 1922                              mov     dest_room_num, ax +273F:1DAB  8B 44 08                             mov     ax,[si+ROOMEXIT_CURSOR_NUM] +273F:1DAE  A2 11E3                              mov     cursor_index_new, al +273F:1DB1  F7 06 1924 FFFF                      test    hotspot_id, 0FFFFh +273F:1DB7  74 05                                jz      loc_451                 ; Jump if zero +273F:1DB9  80 06 11E3 07                        add     cursor_index_new, CURSOR_ARROW_UP2-CURSOR_ARROW_UP +                                                                    ; Change standard arrow to cross arrow +273F:1DBE                       loc_451:                                        ;  xref 273F:1C3B, 1C48, 1C6D, 1CAA +                                                                                ;            1CB2, 1CBA, 1D5B, 1D71 +                                                                                ;            1D9D, 1DB7 +273F:1DBE  A0 11E3                              mov     al, cursor_index_new +273F:1DC1  3A 06 11E1                           cmp     al, cursor_index +273F:1DC5  74 15                                je      loc_ret_453             ; Jump if equal +273F:1DC7  A2 11E1                              mov     cursor_index, al +273F:1DCA  C6 06 11DF 00                        mov     cursor_centroid, 0      +273F:1DCF  3C 0A                                cmp     al, CURSOR_CROSS +273F:1DD1  75 05                                jne     loc_452                 ; Jump if not equal +273F:1DD3  C6 06 11DF 07                        mov     cursor_centroid, 7 +273F:1DD8                       loc_452:                                        ;  xref 273F:1DD1 +273F:1DD8  FF 16 075E                           call    word ptr [show_cursor_proc] + +273F:1DDC                       loc_ret_453:                                    ;  xref 273F:1DC5, 1E50 +273F:1DDC  C3                                   retn + +                         room_check_cursors     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                                                                ;* No entry point to code +273F:1DDD  C3                                   retn +                                                                                ;* No entry point to code +273F:1DDE  A1 11D8                              mov     ax, mouse_y2 +273F:1DE1  3D 0008                              cmp     ax,8 +273F:1DE4  72 18                                jb      loc_454                 ; Jump if below +273F:1DE6  8A 1E CF09                           mov     bl, talk_line_num +273F:1DEA  80 FB 02                             cmp     bl,2 +273F:1DED  72 15                                jb      loc_455                 ; Jump if below +273F:1DEF  80 C3 01                             add     bl,1 +273F:1DF2  32 FF                                xor     bh,bh                   ; Zero register +273F:1DF4  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:1DF6  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:1DF8  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:1DFA  3B C3                                cmp     ax,bx +273F:1DFC  73 06                                jae     loc_455                 ; Jump if above or = +273F:1DFE                       loc_454:                                        ;  xref 273F:1DE4 +273F:1DFE  C6 06 11E3 00                        mov     byte ptr ds:[11E3h],0   ; (273F:11E3=74h) +273F:1E03  C3                                   retn +273F:1E04                       loc_455:                                         +273F:1E04  F6 06 9837 FF                        test    talk_dialog_active, 0FFh +273F:1E09  74 3A                                jz      loc_457                 ; Jump if zero +273F:1E0B  A1 11D6                              mov     ax, mouse_x2 +273F:1E0E  3B 06 11C2                           cmp     ax, talk_dialog_left +273F:1E12  72 31                                jb      loc_457                 ; Jump if below +273F:1E14  2B 06 11C2                           sub     ax, talk_dialog_left +273F:1E18  3B 06 11C4                           cmp     ax, talk_dialog_width +273F:1E1C  73 27                                jae     loc_457                 ; Jump if above or = +273F:1E1E  80 3E CF08 03                        cmp     talk_state, 3 +273F:1E23  74 07                                je      loc_456                 ; Jump if equal +273F:1E25  80 3E CF08 04                        cmp     talk_state, 4 +273F:1E2A  75 19                                jne     loc_457                 ; Jump if not equal +273F:1E2C                       loc_456:                                        ;  xref 273F:1E23 +273F:1E2C  A1 11D8                              mov     ax, mouse_y2 +273F:1E2F  3B 06 11C0                           cmp     ax, talk_dialog_top +273F:1E33  72 10                                jb      loc_457                 ; Jump if below +273F:1E35  2B 06 11C0                           sub     ax, talk_dialog_top +273F:1E39  3B 06 11C6                           cmp     ax, talk_dialog_height +273F:1E3D  73 06                                jae     loc_457                 ; Jump if above or = +273F:1E3F  C6 06 11E3 10                        mov     byte ptr ds:[11E3h],10h ; (273F:11E3=74h) +273F:1E44  C3                                   retn +273F:1E45                       loc_457:                                        ;  xref 273F:1E09, 1E12, 1E1C, 1E2A +                                                                                ;            1E33, 1E3D +273F:1E45  C6 06 11E3 16                        mov     byte ptr ds:[11E3h],16h ; (273F:11E3=74h) +273F:1E4A  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1C8C, 1C95, 1C9E, 1CA7, 1CD9, 1CE2, 1CEB +                                ;                             1CF4 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1E4B               room_check_hotspots     proc    near +273F:1E4B ú8B 35                                mov     si,[di]                 ; Get data ptr +273F:1E4D  83 FE FF                             cmp     si,0FFFFh               ; Reached end of list? +273F:1E50  74 8A                                je      loc_ret_453             ; If yes, then exit +273F:1E52  39 54 06                             cmp     [si+HS_ROOM_NUM], dx    ; Entry in same room? +273F:1E55  75 4F                                jne     loc_463                 ; No, so go move to next  + +273F:1E57  F6 44 03 80                          test    byte ptr [si+HS_FLAGS],80h +273F:1E5B  75 06                                jnz     loc_459                 ; Jump if not zero +273F:1E5D  F6 44 03 40                          test    byte ptr [si+HS_FLAGS],40h +273F:1E61  75 43                                jnz     loc_463 +273F:1E63                       loc_459: +273F:1E63  F6 44 03 20                          test    byte ptr [si+HS_FLAGS],20h +273F:1E67  75 3D                                jnz     loc_463                 ; Jump if not zero +273F:1E69  81 FD 0409                           cmp     bp,409h +273F:1E6D  73 05                                jae     loc_460                 ; Jump if above or = +273F:1E6F  E8 293C                              call    room_check_x_extents +273F:1E72  75 32                                jnz     loc_463                 ; Jump if not zero +273F:1E74                       loc_460:                                        ;  xref 273F:1E6D +273F:1E74 úBB 2A01                              mov     bx,offset hotspot_table +273F:1E77                       loc_461:                                        ;  xref 273F:1E84 +273F:1E77 ú8B 07                                mov     ax,[bx] +273F:1E79  0B C0                                or      ax,ax                   ; Zero ? +273F:1E7B  74 31                                jz      loc_464                 ; Jump if zero +273F:1E7D  3B C5                                cmp     ax,bp +273F:1E7F  74 05                                je      loc_462                 ; Jump if equal +273F:1E81  83 C3 0A                             add     bx, HOTSPOT_TABLE_ENTRY_SIZE +273F:1E84  EB F1                                jmp     short loc_461           ; Check next entry +273F:1E86                       loc_462: + +273F:1E86  A1 11D6                              mov     ax, mouse_x2   +273F:1E89  05 0080                              add     ax,80h +273F:1E8C  3B 47 02                             cmp     ax,[bx+2] +273F:1E8F  72 15                                jb      loc_463                 ; Jump if below +273F:1E91  3B 47 04                             cmp     ax,[bx+4] +273F:1E94  73 10                                jae     loc_463                 ; Jump if above or = +273F:1E96  A1 11D8                              mov     ax, mouse_y2  +273F:1E99  05 0080                              add     ax,80h +273F:1E9C  3B 47 06                             cmp     ax,[bx+6] +273F:1E9F  72 05                                jb      loc_463                 ; Jump if below +273F:1EA1  3B 47 08                             cmp     ax,[bx+8] +273F:1EA4  72 30                                jb      loc_465                 ; Jump if below + +273F:1EA6                       loc_463: +273F:1EA6  83 C7 09                             add     di,9                    ; Move to next entry +273F:1EA9  83 C5 01                             add     bp,1                    ; Increment result Id +273F:1EAC  EB 9D                                jmp     room_check_hotspots + +273F:1EAE                       loc_464: +273F:1EAE  A1 11D6                              mov     ax, mouse_x2 +273F:1EB1  05 0080                              add     ax,80h +273F:1EB4  8B 4C 0D                             mov     cx,[si+0Dh] +273F:1EB7  3B C1                                cmp     ax,cx +273F:1EB9  72 EB                                jb      loc_463                 ; Jump if below +273F:1EBB  03 4C 19                             add     cx,[si+19h] +273F:1EBE  3B C8                                cmp     cx,ax +273F:1EC0  72 E4                                jb      loc_463                 ; Jump if below +273F:1EC2  A1 11D8                              mov     ax, mouse_y2              +273F:1EC5  05 0080                              add     ax,80h +273F:1EC8  8B 4C 0F                             mov     cx,[si+0Fh] +273F:1ECB  3B C1                                cmp     ax,cx +273F:1ECD  72 D7                                jb      loc_463                 ; Jump if below +273F:1ECF  03 4C 13                             add     cx,[si+13h] +273F:1ED2  3B C8                                cmp     cx,ax +273F:1ED4  72 D0                                jb      loc_463                 ; Jump if below +273F:1ED6                       loc_465:                                        ;  xref 273F:1EA4 +273F:1ED6  80 4C 03 80                          or      byte ptr [si+3],80h +273F:1EDA  89 2E 1924                           mov     hotspot_id, bp +273F:1EDE  8B 45 02                             mov     ax,[di+2] +273F:1EE1  80 E4 1F                             and     ah,1Fh +273F:1EE4  A3 11E6                              mov     hotspot_name_id, ax     ; Save actions for this hotspot +273F:1EE7  C3                                   retn +                        room_check_hotspots     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0785, 94C8, 9DCC, 9DE5, 9DFE, 9E19, 9E33 +                                ;                             9E4D, 9E63, 9E79 +                                ; cx=horiz, dx=vert, bx=buttons, ax=trigger, si/di=horiz/vert mickeys +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1EE8                    mouse_handler      proc    near +273F:1EE8  50                                   push    ax +273F:1EE9  53                                   push    bx +273F:1EEA  51                                   push    cx +273F:1EEB  52                                   push    dx +273F:1EEC  56                                   push    si +273F:1EED  57                                   push    di +273F:1EEE  55                                   push    bp +273F:1EEF  1E                                   push    ds +273F:1EF0  06                                   push    es +273F:1EF1  9C                                   pushf                           ; Push flags +273F:1EF2  81 F9 027E                           cmp     cx, 638 +273F:1EF6  72 03                                jb      loc_466                 ; Jump if below +273F:1EF8  B9 027D                              mov     cx, 637 +273F:1EFB                       loc_466: +273F:1EFB  D1 E9                                shr     cx,1                    ; Translate horiz 0-637 to 0-318 +273F:1EFD  81 FA 00C8                           cmp     dx, 200 +273F:1F01  72 03                                jb      loc_467                 ; Jump if below +273F:1F03  BA 00C7                              mov     dx, 199 +273F:1F06                       loc_467: +273F:1F06  FC                                   cld +273F:1F07  B8 31E4                              mov     ax,data_seg +273F:1F0A  8E D8                                mov     ds,ax +273F:1F0C  3A 1E 11D5                           cmp     bl, mouse_buttons       ; Check mouse buttons +273F:1F10  74 27                                je      loc_468                 ; Jump if no button change +273F:1F12  88 1E 11D5                           mov     mouse_buttons, bl       ; Save new button status +273F:1F16  0A DB                                or      bl,bl                   ; Zero ? +273F:1F18  74 1F                                jz      loc_468                 ; Jump if no buttons pressed + +273F:1F1A  F6 06 11DA FF                        test    mouse_buttons2, 0FFh +273F:1F1F  75 18                                jnz     loc_468                 ; Jump if not zero +273F:1F21  88 1E 11DA                           mov     mouse_buttons2, bl +273F:1F25  89 0E 11DB                           mov     char_dest_x, cx +273F:1F29  81 06 11DB 0080                      add     char_dest_x, 80h +273F:1F2F  89 16 11DD                           mov     char_dest_y, dx +273F:1F33  81 06 11DD 0080                      add     char_dest_y, 80h + +273F:1F39                       loc_468:                                        ;  xref 273F:1F10, 1F18, 1F1F +273F:1F39  89 0E 11D1                           mov     mouse_x, cx +273F:1F3D  89 16 11D3                           mov     mouse_y, dx +273F:1F41  F6 06 11D0 06                        test    menubar_state, 6     ; (31E4:11D0=3) +273F:1F46  75 0C                                jnz     loc_469                 ; Jump if not zero +273F:1F48  89 0E 11D6                           mov     mouse_x2, cx +273F:1F4C  89 16 11D8                           mov     mouse_y2, dx +273F:1F50  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:1F54                       loc_469:                                        ;  xref 273F:1F46 +273F:1F54  9D                                   popf                            ; Pop flags +273F:1F55  07                                   pop     es +273F:1F56  1F                                   pop     ds +273F:1F57  5D                                   pop     bp +273F:1F58  5F                                   pop     di +273F:1F59  5E                                   pop     si +273F:1F5A  5A                                   pop     dx +273F:1F5B  59                                   pop     cx +273F:1F5C  5B                                   pop     bx +273F:1F5D  58                                   pop     ax +273F:1F5E  CB                                   retf                            ; Return far +                             mouse_handler      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0013, 001D, 70B3, 77EA, 8F5A, 938B, A5B5 +                                ;                             A661, A8E3 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1F5F                   show_disk_cursor    proc    near +273F:1F5F  80 3E 11E1 01                        cmp     cursor_index, CURSOR_DISK +273F:1F64  74 0E                                je      loc_ret_470             ; Jump if equal +273F:1F66  C6 06 11E1 01                        mov     cursor_index, CURSOR_DISK +273F:1F6B  C6 06 11DF 00                        mov     cursor_centroid, 0 +273F:1F70  FF 16 075E                           call    word ptr [show_cursor_proc] + +273F:1F74                       loc_ret_470:                                    ;  xref 273F:1F64, 1F7A +273F:1F74  C3                                   retn +                            show_disk_cursor    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00D0, 3D2B, 6D5A, 6E7E, 9342 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1F75                   show_arrow_cursor   proc    near +273F:1F75  80 3E 11E1 00                        cmp     cursor_index, CURSOR_ARROW +273F:1F7A  74 F8                                je      loc_ret_470             ; Jump if equal +273F:1F7C  C6 06 11E1 00                        mov     cursor_index, CURSOR_ARROW +273F:1F81  C6 06 11DF 00                        mov     cursor_centroid, 0      +273F:1F86  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:1F8A  C3                                   retn +                            show_arrow_cursor   endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:40CB, 413F, 5A6F, 5A75, 705E, 88EA, 88F0 +                                ;                             912C, 93E9, 9401 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1F8B                       mouse_wait      proc    near +273F:1F8B                       loc_471:                                        ;  xref 273F:1F93 +273F:1F8B  E8 F52A                              call    set_vga_palette         ; (14B8) +273F:1F8E  F6 06 11D5 07                        test    byte ptr mouse_buttons, 7 +273F:1F93  75 F6                                jnz     loc_471                 ; Mouse button being held down +273F:1F95  C3                                   retn +                                mouse_wait      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:40C7, 4142, 5A72, 7061, 70B0, 88ED +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:1F96                 pause_for_input       proc    near +273F:1F96                       loc_472:                                        ;  xref 273F:1F9C +273F:1F96  B4 06                                mov     ah,6 +273F:1F98  B2 FF                                mov     dl,0FFh +273F:1F9A  CD 21                                int     21h                     ; Read character from STDIN +273F:1F9C  75 F8                                jnz     loc_472                 ; key pressed + +273F:1F9E                       loc_473:                                        ;  xref 273F:1FAB +273F:1F9E  E8 F517                              call    set_vga_palette         ; (14B8) +273F:1FA1  E8 757C                              call    check_keypress                 ; (9520) +273F:1FA4  75 0E                                jnz     loc_ret_474             ; Jump if not zero +273F:1FA6  F6 06 11D5 07                        test    mouse_buttons, 7 +273F:1FAB  74 F1                                jz      loc_473                 ; No buttons pressed +273F:1FAD  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:1FB2  33 C0                                xor     ax,ax                   ; Zero register + +273F:1FB4                       loc_ret_474:                                    ;  xref 273F:1FA4 +273F:1FB4  C3                                   retn +                          pause_for_input       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1C3E +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                   talk_dialog_mouse_check      proc    near +273F:1FB5  C6 06 0DB4 00                        mov     talk_dialog_close_flag, 0 +273F:1FBA  F6 06 9837 FF                        test    talk_dialog_active, 0FFh ; Is the dialog active? +273F:1FBF  74 3D                                jz      loc_475                 ; Jump if zero +273F:1FC1  F6 06 4B40 FF                        test    data_791, 0FFh +273F:1FC6  75 36                                jnz     loc_475                 ; Jump if not zero +273F:1FC8  81 3E 983F 03E8                      cmp     data_1090, PLAYER_HOTSPOT_ID +273F:1FCE  75 2E                                jne     loc_475                 ; Jump if not equal +273F:1FD0  A1 11D6                              mov     ax, mouse_x2 +273F:1FD3  3B 06 11C2                           cmp     ax, talk_dialog_left +273F:1FD7  72 25                                jb      loc_475                 ; Jump if below +273F:1FD9  2B 06 11C2                           sub     ax, talk_dialog_left +273F:1FDD  3B 06 11C4                           cmp     ax, talk_dialog_width +273F:1FE1  73 1B                                jae     loc_475                 ; Jump if above or = +273F:1FE3  A1 11D8                              mov     ax, mouse_y2 +273F:1FE6  3B 06 11C0                           cmp     ax, talk_dialog_top +273F:1FEA  72 12                                jb      loc_475                 ; Jump if below +273F:1FEC  2B 06 11C0                           sub     ax, talk_dialog_top +273F:1FF0  3B 06 11C6                           cmp     ax, talk_dialog_height +273F:1FF4  73 08                                jae     loc_475                 ; Jump if above or = +273F:1FF6  C6 06 0DB4 01                        mov     talk_dialog_close_flag, 1 +273F:1FFB  33 C0                                xor     ax,ax                   ; Zero register +273F:1FFD  C3                                   retn + +273F:1FFE                       loc_475:                                        ;  xref 273F:1FBF, 1FC6, 1FCE, 1FD7 +                                                                                ;            1FE1, 1FEA, 1FF4 +273F:1FFE  B0 01                                mov     al,1 +273F:2000  0B C0                                or      ax,ax                   ; Zero ? +273F:2002  C3                                   retn +                   talk_dialog_mouse_check      endp + +273F:2003  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00E7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:2004                       sub_61          proc    near +273F:2004  83 3E 9832 1F                        cmp     room_number, ROOMNUM_TOWN_HALL +273F:2009  74 29                                je      loc_ret_476             ; Jump if equal +273F:200B  83 3E 9832 0E                        cmp     room_number, ROOMNUM_MIDDLE_STREET +273F:2010  74 22                                je      loc_ret_476             ; Jump if equal +273F:2012  F7 06 BAA9 FFFF                      test    script_val_80, 0FFFFh  +273F:2018  74 1A                                jz      loc_ret_476             ; Jump if zero +273F:201A  F7 06 BA4F FFFF                      test    script_val_29, 0FFFFh +273F:2020  74 12                                jz      loc_ret_476             ; Jump if zero +273F:2022  83 2E BA4F 01                        sub     script_val_29, 1 +273F:2027  75 0B                                jnz     loc_ret_476             ; Jump if not zero +273F:2029  BB 0CB7                              mov     bx, 0CB7h +273F:202C  B9 0002                              mov     cx,2 +273F:202F  33 D2                                xor     dx,dx                   ; Zero register +273F:2031  E8 27FC                              call    add_sequence_delay + +273F:2034                       loc_ret_476:                                    ;  xref 273F:2009, 2010, 2018, 2020 +                                                                                ;            2027 +273F:2034  C3                                   retn +                                sub_61          endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +273F:2035  83 3E BA3B 03                        cmp     talk_record_index, 3 +273F:203A  73 1A                                jae     loc_ret_477             ; Jump if above or = +273F:203C  83 3E 9832 2D                        cmp     room_number, ROOMNUM_DINING_HALL +273F:2041  75 13                                jne     loc_ret_477             ; Jump if not equal +273F:2043  F6 06 BA9B FF                        test    byte ptr script_val_73, 0FFh  +273F:2048  75 0C                                jnz     loc_ret_477             ; Jump if not zero +273F:204A  C7 06 BA17 03E8                      mov     current_hotspot, PLAYER_HOTSPOT_ID +273F:2050  B8 1E15                              mov     ax,1E15h +273F:2053  E8 1DDE                              call    sequence_execute + +273F:2056                       loc_ret_477:                                    ;  xref 273F:203A, 2041, 2048 +273F:2056  C3                                   retn + +273F:2057  00                                   db      0 +273F:2058  00                   data_233        db      0                       ;  xref 273F:2DA2, 2DD0, 2DD5, 2E2F +                                                                                ;            2E7B, 2EB9, 2EE8, 2EED +                                                                                ;            2F4F +273F:2059  00                   data_234        db      0                       ;  xref 273F:2DA7, 2DE7, 2DEC, 2E3C +                                                                                ;            2E80, 2EC0, 2EFF, 2F04 +                                                                                ;            2F5C +273F:205A  00                   data_235        db      0                       ;  xref 273F:2DAC, 2DFE, 2E03, 2E49 +                                                                                ;            2E85, 2EC7, 2F16, 2F1B +                                                                                ;            2F69 +273F:205B  00                   data_236        db      0                       ;  xref 273F:2DB1, 2E15, 2E1A, 2E56 +                                                                                ;            2E8A, 2ECE, 2F2D, 2F32 +                                                                                ;            2F76 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7BBA, A7AD, A82B +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:205C                   ega_show_srceen     proc    near +273F:205C  80 0E 11D0 02                        or      menubar_state, 2     ; (31E4:11D0=3) +273F:2061  BA 03CE                              mov     dx,3CEh +273F:2064  B8 0805                              mov     ax,805h +273F:2067  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:2068  B8 0007                              mov     ax,7 +273F:206B  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:206C  B0 03                                mov     al,3 +273F:206E  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 3, data rotate +273F:206F  B8 FF08                              mov     ax,0FF08h +273F:2072  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2073  B2 C4                                mov     dl,0C4h +273F:2075  A1 0DB2                              mov     ax, screen_start_seg2 +273F:2078  8E C0                                mov     es,ax +273F:207A  F6 06 4BF0 FF                        test    byte ptr data_794,0FFh  ; (31E4:4BF0=0) +273F:207F  74 03                                jz      loc_478                 ; Jump if zero +273F:2081  E8 0F41                              call    sub_68                  ; (2FC5) +273F:2084                       loc_478:                                        ;  xref 273F:207F +273F:2084 úBB 07DC                              mov     bx, offset display_mask +273F:2087  03 1E 0990                           add     bx,data_587             ; (31E4:0990=0) +273F:208B  B9 060A                              mov     cx,60Ah +273F:208E úBE 0500                              mov     si,data_12e             ; (0000:0500=0) +273F:2091 úBF 0140                              mov     di,data_1449e           ; (A200:0140=0) +273F:2094                       loc_479:                                        ;  xref 273F:20E2, 20F4 +273F:2094  F6 07 01                             test    byte ptr [bx],1 +273F:2097  74 3D                                jz      loc_482                 ; Jump if zero +273F:2099  56                                   push    si +273F:209A  57                                   push    di +273F:209B  51                                   push    cx +273F:209C  80 27 FE                             and     byte ptr [bx],0FEh +273F:209F  1E                                   push    ds +273F:20A0  A1 4CE4                              mov     ax, data_segment2 +273F:20A3  8E D8                                mov     ds,ax +273F:20A5  B8 0802                              mov     ax,802h +273F:20A8  B9 0004                              mov     cx,4 + +273F:20AB                       locloop_480:                                    ;  xref 273F:20D0 +273F:20AB  51                                   push    cx +273F:20AC  56                                   push    si +273F:20AD  57                                   push    di +273F:20AE  EF                                   out     dx,ax                   ; port 3C4h, EGA sequencr index +                                                                                ;  al = 2, map mask register +273F:20AF  B9 0020                              mov     cx,20h + +273F:20B2                       locloop_481:                                    ;  xref 273F:20C6 +273F:20B2  A4                                   movsb                           ; Mov [si] to es:[di] +273F:20B3  83 C6 03                             add     si,3 +273F:20B6  A4                                   movsb                           ; Mov [si] to es:[di] +273F:20B7  83 C6 03                             add     si,3 +273F:20BA  A4                                   movsb                           ; Mov [si] to es:[di] +273F:20BB  83 C6 03                             add     si,3 +273F:20BE  A4                                   movsb                           ; Mov [si] to es:[di] +273F:20BF  81 C6 0093                           add     si,93h +273F:20C3  83 C7 24                             add     di,24h +273F:20C6  E2 EA                                loop    locloop_481             ; Loop if cx > 0 + +273F:20C8  5F                                   pop     di +273F:20C9  5E                                   pop     si +273F:20CA  83 C6 01                             add     si,1 +273F:20CD  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:20CF  59                                   pop     cx +273F:20D0  E2 D9                                loop    locloop_480             ; Loop if cx > 0 + +273F:20D2  1F                                   pop     ds +273F:20D3  59                                   pop     cx +273F:20D4  5F                                   pop     di +273F:20D5  5E                                   pop     si +273F:20D6                       loc_482:                                        ;  xref 273F:2097 +273F:20D6  83 C6 10                             add     si,10h +273F:20D9  83 C7 04                             add     di,4 +273F:20DC  83 C3 01                             add     bx,1 +273F:20DF  80 E9 01                             sub     cl,1 +273F:20E2  75 B0                                jnz     loc_479                 ; Jump if not zero +273F:20E4  83 C3 08                             add     bx,8 +273F:20E7  81 C6 1360                           add     si,1360h +273F:20EB  81 C7 04D8                           add     di,4D8h +273F:20EF  B1 0A                                mov     cl,0Ah +273F:20F1  80 ED 01                             sub     ch,1 +273F:20F4  75 9E                                jnz     loc_479                 ; Jump if not zero +273F:20F6  B8 0F02                              mov     ax,0F02h +273F:20F9  EF                                   out     dx,ax                   ; port 3C4h, EGA sequencr index +                                                                                ;  al = 2, map mask register +273F:20FA  B2 CE                                mov     dl,0CEh +273F:20FC  B8 0005                              mov     ax,5 +273F:20FF  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:2100  B8 0F07                              mov     ax,0F07h +273F:2103  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:2104  B8 FF08                              mov     ax,0FF08h +273F:2107  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2108  A1 0DB0                              mov     ax, screen_start_seg    ; Swap screen segment +273F:210B  8B 1E 0DB2                           mov     bx, screen_start_seg2 +273F:210F  89 1E 0DB0                           mov     screen_start_seg, bx +273F:2113  A3 0DB2                              mov     screen_start_seg2, ax +273F:2116  1E                                   push    ds +273F:2117  07                                   pop     es +273F:2118 úBE 11E8                              mov     si,offset data_638      ; (31E4:11E8=0) +273F:211B úBF 12AE                              mov     di,offset data_642      ; (31E4:12AE=0) +273F:211E  B9 0063                              mov     cx,63h +273F:2121  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:2123  C7 06 11EC 0000                      mov     data_640,0              ; (31E4:11EC=0) +273F:2129  E8 0987                              call    ega_cursor +273F:212C  A0 0DB1                              mov     al, [screen_start_seg+1] +273F:212F  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2131  24 01                                and     al,1 +273F:2133  B4 05                                mov     ah,5 +273F:2135  CD 10                                int     10h                     ; Video display   ah=functn 05h +                                                                                ;  set display page al +273F:2137  B8 0040                              mov     ax,40h +273F:213A  8E C0                                mov     es,ax +273F:213C  26: 8B 16 0063                       mov     dx,es:video_port        ; (0040:0063=3D4h) +273F:2141  80 C2 06                             add     dl,6 +273F:2144                       loc_483:                                        ;  xref 273F:2147 +273F:2144  EC                                   in      al,dx                   ; port 3DAh, CGA/EGA vid status +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 85 + +273F:2145  A8 08                                test    al,8 +273F:2147  74 FB                                jz      loc_483                 ; Jump if zero +273F:2149 úBE 12AE                              mov     si,offset data_642      ; (31E4:12AE=0) +273F:214C  A1 0DB2                              mov     ax, screen_start_seg2 +273F:214F  8E C0                                mov     es,ax +273F:2151  E8 0AD1                              call    sub_67                  ; (2C25) +273F:2154  80 36 0991 01                        xor     byte ptr data_587+1,1   ; (31E4:0991=0) +273F:2159  80 26 11D0 FD                        and     menubar_state, 0FDh  ; (31E4:11D0=3) +273F:215E  C3                                   retn +                             ega_show_screen    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [fade_out_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          ega_empty_palette     proc    near + +273F:215F  80 0E 073C 20                        or      byte ptr ds:[73Ch],20h  ; (273F:073C=17h) ' ' +273F:2164  80 26 11D0 CF                        and     menubar_state, 0CFh ; (273F:11D0=56h) +273F:2169  B8 1002                              mov     ax,1002h +273F:216C  1E                                   push    ds +273F:216D  07                                   pop     es +273F:216E úBA 0DB5                              mov     dx,0DB5h                ; (273F:0DB5=0C7h) +273F:2171  CD 10                                int     10h                     ; Video display   ah=functn 10h +                                                                                ;  set palette regs from es:dx +273F:2173  C3                                   retn + +                          ega_empty_palette     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [fade_in_proc] +                                ; For EGA cards, don't do a fade-in.. just set the whole palette +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                ega_fade_in     proc    near +273F:2174  80 26 073C DF                        and     byte ptr ds:[73Ch],0DFh ; (273F:073C=17h) +273F:2179  B8 1002                              mov     ax,1002h +273F:217C  1E                                   push    ds +273F:217D  07                                   pop     es +273F:217E úBA 1457                              mov     dx,offset unprocessed_vga_palette +273F:2181  CD 10                                int     10h                     ; Video display   ah=functn 10h +                                                                                ;  set palette regs from es:dx +273F:2183  C3                                   retn +                                ega_fade_in     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + + +273F:2184  1E                                   push    ds +273F:2185  57                                   push    di +273F:2186  56                                   push    si +273F:2187  98                                   cbw                             ; Convrt byte to word +273F:2188  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:218A  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:218C  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:218E  8B F0                                mov     si,ax +273F:2190  8B 16 4CF0                           mov     dx, font2_segment +273F:2194  8E DA                                mov     ds,dx +273F:2196  AC                                   lodsb                           ; String [si] to al +273F:2197  50                                   push    ax +273F:2198  B5 07                                mov     ch,7 +273F:219A                       loc_484:                                        ;  xref 273F:2202 +273F:219A  AC                                   lodsb                           ; String [si] to al +273F:219B  8A E0                                mov     ah,al +273F:219D  32 C0                                xor     al,al                   ; Zero register +273F:219F  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:21A1  8B D0                                mov     dx,ax +273F:21A3  F7 D2                                not     dx +273F:21A5  8A DF                                mov     bl,bh +273F:21A7  D0 EB                                shr     bl,1                    ; Shift w/zeros fill +273F:21A9  73 09                                jnc     loc_485                 ; Jump if carry=0 +273F:21AB  26: 08 25                            or      es:[di],ah +273F:21AE  26: 08 45 04                         or      es:[di+4],al +273F:21B2  EB 07                                jmp     short loc_486           ; (21BB) + +273F:21B4                       loc_485:                                        ;  xref 273F:21A9 +273F:21B4  26: 20 35                            and     es:[di],dh +273F:21B7  26: 20 55 04                         and     es:[di+4],dl +273F:21BB                       loc_486:                                        ;  xref 273F:21B2 +273F:21BB  D0 EB                                shr     bl,1                    ; Shift w/zeros fill +273F:21BD  73 0A                                jnc     loc_487                 ; Jump if carry=0 +273F:21BF  26: 08 65 01                         or      es:[di+1],ah +273F:21C3  26: 08 45 05                         or      es:[di+5],al +273F:21C7  EB 08                                jmp     short loc_488           ; (21D1) +273F:21C9                       loc_487:                                        ;  xref 273F:21BD +273F:21C9  26: 20 75 01                         and     es:[di+1],dh +273F:21CD  26: 20 55 05                         and     es:[di+5],dl +273F:21D1                       loc_488:                                        ;  xref 273F:21C7 +273F:21D1  D0 EB                                shr     bl,1                    ; Shift w/zeros fill +273F:21D3  73 0A                                jnc     loc_489                 ; Jump if carry=0 +273F:21D5  26: 08 65 02                         or      es:[di+2],ah +273F:21D9  26: 08 45 06                         or      es:[di+6],al +273F:21DD  EB 08                                jmp     short loc_490           ; (21E7) +273F:21DF                       loc_489:                                        ;  xref 273F:21D3 +273F:21DF  26: 20 75 02                         and     es:[di+2],dh +273F:21E3  26: 20 55 06                         and     es:[di+6],dl +273F:21E7                       loc_490:                                        ;  xref 273F:21DD +273F:21E7  D0 EB                                shr     bl,1                    ; Shift w/zeros fill +273F:21E9  73 0A                                jnc     loc_491                 ; Jump if carry=0 +273F:21EB  26: 08 65 03                         or      es:[di+3],ah +273F:21EF  26: 08 45 07                         or      es:[di+7],al +273F:21F3  EB 08                                jmp     short loc_492           ; (21FD) +273F:21F5                       loc_491:                                        ;  xref 273F:21E9 +273F:21F5  26: 20 75 03                         and     es:[di+3],dh +273F:21F9  26: 20 55 07                         and     es:[di+7],dl +273F:21FD                       loc_492:                                        ;  xref 273F:21F3 +273F:21FD  03 FD                                add     di,bp +273F:21FF  80 ED 01                             sub     ch,1 +273F:2202  75 96                                jnz     loc_484                 ; Jump if not zero +273F:2204  58                                   pop     ax +273F:2205  5E                                   pop     si +273F:2206  5F                                   pop     di +273F:2207  1F                                   pop     ds +273F:2208  02 C8                                add     cl,al +273F:220A  8A C1                                mov     al,cl +273F:220C  80 E1 07                             and     cl,7 +273F:220F  25 00F8                              and     ax,0F8h +273F:2212  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:2214  03 F8                                add     di,ax +273F:2216  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                           ega_talk_dialog      proc    near +273F:2217  1E                                   push    ds +273F:2218  A1 11C0                              mov     ax, talk_dialog_top +273F:221B  50                                   push    ax +273F:221C  05 0008                              add     ax,8 +273F:221F  8B D0                                mov     dx,ax +273F:2221  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2223  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2225  03 C2                                add     ax,dx +273F:2227  B1 05                                mov     cl,5 +273F:2229  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:222B  8B F8                                mov     di,ax +273F:222D  A1 11C2                              mov     ax, talk_dialog_left +273F:2230  24 F8                                and     al,0F8h +273F:2232  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:2234  03 F8                                add     di,ax +273F:2236  B8 0007                              mov     ax,7 +273F:2239  F7 26 B9FD                           mul     data_1122               ; dx:ax = data * ax +273F:223D  05 0014                              add     ax,14h +273F:2240  8B D0                                mov     dx,ax +273F:2242  A3 11C6                              mov     talk_dialog_height, ax +273F:2245  A1 4CE4                              mov     ax, data_segment2 +273F:2248  8E C0                                mov     es,ax +273F:224A  A1 4CE6                              mov     ax, talk_dialog_buffer +273F:224D  8E D8                                mov     ds,ax +273F:224F úBE 0000                              mov     si,data_69e             ; (0874:0000=0C5h) +273F:2252                       loc_493:                                        ;  xref 273F:225D +273F:2252  B9 0020                              mov     cx,20h +273F:2255  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:2257  83 C7 60                             add     di,60h +273F:225A  80 EA 01                             sub     dl,1 +273F:225D  75 F3                                jnz     loc_493                 ; Jump if not zero +273F:225F  5B                                   pop     bx +273F:2260  1F                                   pop     ds +273F:2261  8B 16 11C6                           mov     dx, talk_dialog_height +273F:2265  A1 11C2                              mov     ax, talk_dialog_left +273F:2268  BD 0080                              mov     bp,80h +273F:226B  89 2E 11C4                           mov     talk_dialog_width, bp +273F:226F  B9 0001                              mov     cx,1 +273F:2272  E9 E91A                              jmp     loc_93                  ; (0B8F) +                           ega_talk_dialog      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       ega_draw_talk_dialog     proc    near +273F:2275  B8 0007                              mov     ax,7 +273F:2278  F7 E5                                mul     bp                      ; dx:ax = reg * ax +273F:227A  05 000E                              add     ax,0Eh +273F:227D  A3 11C6                              mov     talk_dialog_height, ax +273F:2280  8B E8                                mov     bp,ax +273F:2282  C7 06 11C4 0080                      mov     talk_dialog_width, 80h +273F:2288  1E                                   push    ds +273F:2289  55                                   push    bp +273F:228A  B8 44E4                              mov     ax, ega_talk_frame_seg +273F:228D  8E D8                                mov     ds,ax +273F:228F  33 F6                                xor     si,si                   ; Zero register +273F:2291  BB 000E                              mov     bx,0Eh +273F:2294  BA 0003                              mov     dx,3 +273F:2297                       loc_494:                                        ;  xref 273F:22A0 +273F:2297  E8 01B9                              call    sub_63                  ; (2453) +273F:229A  83 EF 60                             sub     di,60h +273F:229D  83 EA 01                             sub     dx,1 +273F:22A0  75 F5                                jnz     loc_494                 ; Jump if not zero +273F:22A2  5A                                   pop     dx +273F:22A3                       loc_495:                                        ;  xref 273F:22AF +273F:22A3  E8 01AD                              call    sub_63                  ; (2453) +273F:22A6  83 EF 60                             sub     di,60h +273F:22A9  83 EE 0C                             sub     si,0Ch +273F:22AC  83 EA 01                             sub     dx,1 +273F:22AF  75 F2                                jnz     loc_495                 ; Jump if not zero +273F:22B1  BA 0003                              mov     dx,3 +273F:22B4  83 C6 0C                             add     si,0Ch +273F:22B7                       loc_496:                                        ;  xref 273F:22C0 +273F:22B7  E8 0199                              call    sub_63                  ; (2453) +273F:22BA  83 EF 60                             sub     di,60h +273F:22BD  83 EA 01                             sub     dx,1 +273F:22C0  75 F5                                jnz     loc_496                 ; Jump if not zero +273F:22C2  1F                                   pop     ds +273F:22C3  C3                                   retn +                       ega_draw_talk_dialog     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             ega_menu_items     proc    near + +273F:22C4  BA 03CE                              mov     dx,3CEh +273F:22C7  B8 0805                              mov     ax,805h +273F:22CA  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:22CB  B8 0007                              mov     ax,7 +273F:22CE  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:22CF  B0 03                                mov     al,3 +273F:22D1  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 3, data rotate +273F:22D2  B8 FF08                              mov     ax,0FF08h +273F:22D5  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:22D6  B2 C4                                mov     dl,0C4h +273F:22D8  55                                   push    bp +273F:22D9  1E                                   push    ds +273F:22DA  8E DD                                mov     ds,bp +273F:22DC  A1 0DB2                              mov     ax,ds:data_25e          ; (0000:0DB2=8340h) +273F:22DF  1F                                   pop     ds +273F:22E0  8E C0                                mov     es,ax +273F:22E2 úBF 08C1                              mov     di,data_1442e           ; (8340:08C1=0) +273F:22E5  8B 36 335A                           mov     si,word ptr ds:[335Ah]  ; (273F:335A=0ACA4h) +273F:22E9  8A 1E 334E                           mov     bl,byte ptr ds:[334Eh]  ; (273F:334E=0E4h) +273F:22ED  32 FF                                xor     bh,bh                   ; Zero register +273F:22EF  8B EB                                mov     bp,bx +273F:22F1  1E                                   push    ds +                                                assume  ds:seg_code +273F:22F2  A1 3376                              mov     ax,data_265             ; (273F:3376=0F632h) +273F:22F5  8E D8                                mov     ds,ax +273F:22F7  B8 0802                              mov     ax,802h +273F:22FA  B9 0004                              mov     cx,4 + +273F:22FD                       locloop_497:                                    ;  xref 273F:2323 +273F:22FD  51                                   push    cx +273F:22FE  56                                   push    si +273F:22FF  57                                   push    di +273F:2300  EF                                   out     dx,ax                   ; port 3C4h, EGA sequencr index +                                                                                ;  al = 2, map mask register +273F:2301  B9 0048                              mov     cx,48h + +273F:2304                       locloop_498:                                    ;  xref 273F:2319 +273F:2304  51                                   push    cx +273F:2305  56                                   push    si +273F:2306  57                                   push    di +273F:2307  8B CD                                mov     cx,bp + +273F:2309                       locloop_499:                                    ;  xref 273F:230D +273F:2309  A4                                   movsb                           ; Mov [si] to es:[di] +273F:230A  83 C6 03                             add     si,3 +273F:230D  E2 FA                                loop    locloop_499             ; Loop if cx > 0 + +273F:230F  5F                                   pop     di +273F:2310  5E                                   pop     si +273F:2311  59                                   pop     cx +273F:2312  83 C7 28                             add     di,28h +273F:2315  81 C6 00A0                           add     si,0A0h +273F:2319  E2 E9                                loop    locloop_498             ; Loop if cx > 0 + +273F:231B  5F                                   pop     di +273F:231C  5E                                   pop     si +273F:231D  83 C6 01                             add     si,1 +273F:2320  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:2322  59                                   pop     cx +273F:2323  E2 D8                                loop    locloop_497             ; Loop if cx > 0 + +273F:2325  1F                                   pop     ds +273F:2326  5D                                   pop     bp +273F:2327  B8 0F02                              mov     ax,0F02h +273F:232A  EF                                   out     dx,ax                   ; port 3C4h, EGA sequencr index +                                                                                ;  al = 2, map mask register +273F:232B  B2 CE                                mov     dl,0CEh +273F:232D  B8 0005                              mov     ax,5 +273F:2330  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:2331  B8 0F07                              mov     ax,0F07h +273F:2334  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:2335  B8 FF08                              mov     ax,0FF08h +273F:2338  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2339  1E                                   push    ds +273F:233A  55                                   push    bp +273F:233B  8E DD                                mov     ds,bp +273F:233D  A1 0DB0                              mov     ax, screen_start_seg +273F:2340  8B 1E 0DB2                           mov     bx, screen_start_seg2 +273F:2344  89 1E 0DB0                           mov     screen_start_seg, bx +273F:2348  A3 0DB2                              mov     screen_start_seg2, ax +273F:234B  A0 0DB1                              mov     al, [screen_start_seg+1] +273F:234E  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2350  24 01                                and     al,1 +273F:2352  B4 05                                mov     ah,5 +273F:2354  CD 10                                int     10h                     ; Video display   ah=functn 05h +                                                                                ;  set display page al +273F:2356  B8 0040                              mov     ax,40h +273F:2359  8E C0                                mov     es,ax +273F:235B  26: 8B 16 0063                       mov     dx,es:video_port        ; (0040:0063=3D4h) +273F:2360  80 C2 06                             add     dl,6 +273F:2363                       loc_500:                                        ;  xref 273F:2366 +273F:2363  EC                                   in      al,dx                   ; port 3DAh, CGA/EGA vid status +273F:2364  A8 08                                test    al,8 +273F:2366  74 FB                                jz      loc_500                 ; Jump if zero +273F:2368  80 36 0991 01                        xor     byte ptr ds:data_22e,1  ; (0000:0991=8Eh) +273F:236D  5D                                   pop     bp +273F:236E  1F                                   pop     ds +273F:236F  C3                                   retn + +                             ega_menu_items     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [fade_out_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                           ega_draw_dialog      proc    near + +273F:2370  32 E4                                xor     ah,ah                   ; Zero register +273F:2372  32 FF                                xor     bh,bh                   ; Zero register +273F:2374  32 ED                                xor     ch,ch                   ; Zero register +273F:2376  32 F6                                xor     dh,dh                   ; Zero register +273F:2378  52                                   push    dx +273F:2379  51                                   push    cx +273F:237A  53                                   push    bx +273F:237B  50                                   push    ax +273F:237C  52                                   push    dx +273F:237D  93                                   xchg    bx,ax +273F:237E  BA 0500                              mov     dx,500h +273F:2381  F7 E2                                mul     dx                      ; dx:ax = reg * ax +273F:2383  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:2385  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:2387  03 C3                                add     ax,bx +273F:2389  8B F8                                mov     di,ax +273F:238B  5A                                   pop     dx +273F:238C  83 C2 01                             add     dx,1 +273F:238F  8B C2                                mov     ax,dx +273F:2391  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2393  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2395  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2397  F7 C5 FFFF                           test    bp,0FFFFh +273F:239B  75 02                                jnz     loc_501                 ; Jump if not zero +273F:239D  2B D0                                sub     dx,ax +273F:239F                       loc_501:                                        ;  xref 273F:239B +273F:239F  83 C2 01                             add     dx,1 +273F:23A2  8B D9                                mov     bx,cx +273F:23A4  A1 4CE4                              mov     ax, data_segment2 +273F:23A7  8E C0                                mov     es,ax +273F:23A9  1E                                   push    ds +273F:23AA  B8 44E4                              mov     ax, ega_talk_frame_seg +273F:23AD  8E D8                                mov     ds,ax +273F:23AF  33 F6                                xor     si,si                   ; Zero register +273F:23B1  52                                   push    dx +273F:23B2  BA 0003                              mov     dx,3 +273F:23B5                       loc_502:                                        ;  xref 273F:23BB +273F:23B5  E8 009B                              call    sub_63                  ; (2453) +273F:23B8  83 EA 01                             sub     dx,1 +273F:23BB  75 F8                                jnz     loc_502                 ; Jump if not zero +273F:23BD  5A                                   pop     dx +273F:23BE                       loc_503:                                        ;  xref 273F:23C7 +273F:23BE  E8 0092                              call    sub_63                  ; (2453) +273F:23C1  83 EE 0C                             sub     si,0Ch +273F:23C4  83 EA 01                             sub     dx,1 +273F:23C7  75 F5                                jnz     loc_503                 ; Jump if not zero +273F:23C9  83 C6 0C                             add     si,0Ch +273F:23CC  BA 0003                              mov     dx,3 +273F:23CF                       loc_504:                                        ;  xref 273F:23D5 +273F:23CF  E8 0081                              call    sub_63                  ; (2453) +273F:23D2  83 EA 01                             sub     dx,1 +273F:23D5  75 F8                                jnz     loc_504                 ; Jump if not zero +273F:23D7  1F                                   pop     ds +273F:23D8  58                                   pop     ax +273F:23D9  5B                                   pop     bx +273F:23DA  5D                                   pop     bp +273F:23DB  5A                                   pop     dx +273F:23DC  83 EB 01                             sub     bx,1 +273F:23DF  83 C2 02                             add     dx,2 +273F:23E2  83 C5 02                             add     bp,2 +273F:23E5  B1 81                                mov     cl,81h +273F:23E7  E9 E799                              jmp     loc_92 + +                           ega_draw_dialog      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:23EA  32 FF                                xor     bh,bh                   ; Zero register +273F:23EC  32 F6                                xor     dh,dh                   ; Zero register +273F:23EE  53                                   push    bx +273F:23EF  B0 0B                                mov     al,0Bh +273F:23F1  2A C2                                sub     al,dl +273F:23F3  52                                   push    dx +273F:23F4  B9 0500                              mov     cx,500h +273F:23F7  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:23F9  05 00A0                              add     ax,0A0h +273F:23FC  5A                                   pop     dx +273F:23FD  8B F8                                mov     di,ax +273F:23FF  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2401  83 C2 01                             add     dx,1 +273F:2404  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2406  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:2408  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:240A  83 EA 08                             sub     dx,8 +273F:240D  A1 4CE4                              mov     ax, data_segment2 +273F:2410  8E C0                                mov     es,ax +273F:2412  1E                                   push    ds +273F:2413  B8 44E4                              mov     ax, ega_talk_frame_seg +273F:2416  8E D8                                mov     ds,ax +273F:2418  33 F6                                xor     si,si                   ; Zero register +273F:241A  52                                   push    dx +273F:241B  BA 0003                              mov     dx,3 +273F:241E                       loc_505:                                        ;  xref 273F:2424 +273F:241E  E8 0032                              call    sub_63                  ; (2453) +273F:2421  83 EA 01                             sub     dx,1 +273F:2424  75 F8                                jnz     loc_505                 ; Jump if not zero +273F:2426  5A                                   pop     dx +273F:2427                       loc_506:                                        ;  xref 273F:2430 +273F:2427  E8 0029                              call    sub_63                  ; (2453) +273F:242A  83 EE 0C                             sub     si,0Ch +273F:242D  83 EA 01                             sub     dx,1 +273F:2430  75 F5                                jnz     loc_506                 ; Jump if not zero +273F:2432  83 C6 0C                             add     si,0Ch +273F:2435  BA 0003                              mov     dx,3 +273F:2438                       loc_507:                                        ;  xref 273F:243E +273F:2438  E8 0018                              call    sub_63                  ; (2453) +273F:243B  83 EA 01                             sub     dx,1 +273F:243E  75 F8                                jnz     loc_507                 ; Jump if not zero +273F:2440  1F                                   pop     ds +273F:2441  B8 0001                              mov     ax,1 +273F:2444  BB 0007                              mov     bx,7 +273F:2447  5D                                   pop     bp +273F:2448  83 C5 02                             add     bp,2 +273F:244B  BA 0009                              mov     dx,9 +273F:244E  B1 81                                mov     cl,81h +273F:2450  E9 E730                              jmp     loc_92                  ; (0B83) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:2297, 22A3, 22B7, 23B5, 23BE, 23CF, 241E +                                ;                             2427, 2438, 3039, 303C, 303F, 3045, 3048 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:2453                       sub_63          proc    near +273F:2453  57                                   push    di +273F:2454  A5                                   movsw                           ; Mov [si] to es:[di] +273F:2455  A5                                   movsw                           ; Mov [si] to es:[di] +273F:2456  AD                                   lodsw                           ; String [si] to ax +273F:2457  8B E8                                mov     bp,ax +273F:2459  AD                                   lodsw                           ; String [si] to ax +273F:245A  8B CB                                mov     cx,bx + +273F:245C                       locloop_508:                                    ;  xref 273F:2460 +273F:245C  95                                   xchg    bp,ax +273F:245D  AB                                   stosw                           ; Store ax to es:[di] +273F:245E  95                                   xchg    bp,ax +273F:245F  AB                                   stosw                           ; Store ax to es:[di] +273F:2460  E2 FA                                loop    locloop_508             ; Loop if cx > 0 + +273F:2462  A5                                   movsw                           ; Mov [si] to es:[di] +273F:2463  A5                                   movsw                           ; Mov [si] to es:[di] +273F:2464  5F                                   pop     di +273F:2465  81 C7 00A0                           add     di,0A0h +273F:2469  C3                                   retn +                                sub_63          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0C6B, 7BB1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:246A                   ega_decode_entry    proc    near +273F:246A  1E                                   push    ds +273F:246B  8E DA                                mov     ds,dx +273F:246D úBE 0086                              mov     si,data_1435e           ; (45F6:0086=15h) +273F:2470  33 FF                                xor     di,di                   ; Zero register +273F:2472  BD 0020                              mov     bp,20h +273F:2475  8B 14                                mov     dx,[si] +273F:2477  86 F2                                xchg    dh,dl +273F:2479  83 C6 02                             add     si,2 +273F:247C  B9 0008                              mov     cx,8 +273F:247F  33 DB                                xor     bx,bx                   ; Zero register +273F:2481                       loc_509:                                        ;  xref 273F:24C9, 24D3 +273F:2481  8A C6                                mov     al,dh +273F:2483  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2485  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2487  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2489  88 01                                mov     [bx+di],al +273F:248B  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:248D  E2 07                                loop    locloop_510             ; Loop if cx > 0 + +273F:248F  86 D0                                xchg    dl,al +273F:2491  AC                                   lodsb                           ; String [si] to al +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 93 + +273F:2492  86 D0                                xchg    dl,al +273F:2494  B1 08                                mov     cl,8 + +273F:2496                       locloop_510:                                    ;  xref 273F:248D +273F:2496  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2498  E2 07                                loop    locloop_511             ; Loop if cx > 0 + +273F:249A  86 D0                                xchg    dl,al +273F:249C  AC                                   lodsb                           ; String [si] to al +273F:249D  86 D0                                xchg    dl,al +273F:249F  B1 08                                mov     cl,8 + +273F:24A1                       locloop_511:                                    ;  xref 273F:2498 +273F:24A1  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:24A3  E2 07                                loop    locloop_512             ; Loop if cx > 0 + +273F:24A5  86 D0                                xchg    dl,al +273F:24A7  AC                                   lodsb                           ; String [si] to al +273F:24A8  86 D0                                xchg    dl,al +273F:24AA  B1 08                                mov     cl,8 + +273F:24AC                       locloop_512:                                    ;  xref 273F:24A3 +273F:24AC  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:24AE  E2 07                                loop    locloop_513             ; Loop if cx > 0 + +273F:24B0  86 D0                                xchg    dl,al +273F:24B2  AC                                   lodsb                           ; String [si] to al +273F:24B3  86 D0                                xchg    dl,al +273F:24B5  B1 08                                mov     cl,8 + +273F:24B7                       locloop_513:                                    ;  xref 273F:24AE +273F:24B7  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:24B9  E2 07                                loop    locloop_514             ; Loop if cx > 0 + +273F:24BB  86 D0                                xchg    dl,al +273F:24BD  AC                                   lodsb                           ; String [si] to al +273F:24BE  86 D0                                xchg    dl,al +273F:24C0  B1 08                                mov     cl,8 + +273F:24C2                       locloop_514:                                    ;  xref 273F:24B9 +273F:24C2  83 C3 20                             add     bx,20h +273F:24C5 ú81 FB 0080                           cmp     bx,data_1434e           ; (45F6:0080=0) +273F:24C9  75 B6                                jne     loc_509                 ; Jump if not equal +273F:24CB  33 DB                                xor     bx,bx                   ; Zero register +273F:24CD  83 C7 01                             add     di,1 +273F:24D0  83 ED 01                             sub     bp,1 +273F:24D3  75 AC                                jnz     loc_509                 ; Jump if not zero +273F:24D5  90                                   nop +273F:24D6  33 FF                                xor     di,di                   ; Zero register +273F:24D8  8A C6                                mov     al,dh +273F:24DA  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:24DC  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:24DE  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:24E0  AA                                   stosb                           ; Store al to es:[di] +273F:24E1  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:24E3  E2 07                                loop    locloop_515             ; Loop if cx > 0 + +273F:24E5  86 D0                                xchg    dl,al +273F:24E7  AC                                   lodsb                           ; String [si] to al +273F:24E8  86 D0                                xchg    dl,al +273F:24EA  B1 08                                mov     cl,8 + +273F:24EC                       locloop_515:                                    ;  xref 273F:24E3 +273F:24EC  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:24EE  E2 07                                loop    locloop_516             ; Loop if cx > 0 + +273F:24F0  86 D0                                xchg    dl,al +273F:24F2  AC                                   lodsb                           ; String [si] to al +273F:24F3  86 D0                                xchg    dl,al +273F:24F5  B1 08                                mov     cl,8 + +273F:24F7                       locloop_516:                                    ;  xref 273F:24EE +273F:24F7  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:24F9  E2 07                                loop    locloop_517             ; Loop if cx > 0 + +273F:24FB  86 D0                                xchg    dl,al +273F:24FD  AC                                   lodsb                           ; String [si] to al +273F:24FE  86 D0                                xchg    dl,al +273F:2500  B1 08                                mov     cl,8 + +273F:2502                       locloop_517:                                    ;  xref 273F:24F9 +273F:2502  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2504  E2 07                                loop    locloop_518             ; Loop if cx > 0 + +273F:2506  86 D0                                xchg    dl,al +273F:2508  AC                                   lodsb                           ; String [si] to al +273F:2509  86 D0                                xchg    dl,al +273F:250B  B1 08                                mov     cl,8 + +273F:250D                       locloop_518:                                    ;  xref 273F:2504 +273F:250D  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:250F  E2 07                                loop    locloop_519             ; Loop if cx > 0 + +273F:2511  86 D0                                xchg    dl,al +273F:2513  AC                                   lodsb                           ; String [si] to al +273F:2514  86 D0                                xchg    dl,al +273F:2516  B1 08                                mov     cl,8 + +273F:2518                       locloop_519:                                    ;  xref 273F:250F +273F:2518  8A D8                                mov     bl,al +273F:251A  32 FF                                xor     bh,bh                   ; Zero register +273F:251C                       loc_520:                                        ;  xref 273F:252E, 2550, 2558, 256D +                                                                                ;            25C4, 2681 +273F:251C úD1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:251E  E2 07                                loop    locloop_521             ; Loop if cx > 0 + +273F:2520  86 D0                                xchg    dl,al +273F:2522  AC                                   lodsb                           ; String [si] to al +273F:2523  86 D0                                xchg    dl,al +273F:2525  B1 08                                mov     cl,8 + +273F:2527                       locloop_521:                                    ;  xref 273F:251E +273F:2527  72 07                                jc      loc_522                 ; Jump if carry Set +273F:2529  8A 1F                                mov     bl,[bx] +273F:252B  8A C3                                mov     al,bl +273F:252D  AA                                   stosb                           ; Store al to es:[di] +273F:252E  EB EC                                jmp     short loc_520           ; (251C) +273F:2530                       loc_522:                                        ;  xref 273F:2527 +273F:2530  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2532  E2 07                                loop    locloop_523             ; Loop if cx > 0 + +273F:2534  86 D0                                xchg    dl,al +273F:2536  AC                                   lodsb                           ; String [si] to al +273F:2537  86 D0                                xchg    dl,al +273F:2539  B1 08                                mov     cl,8 + +273F:253B                       locloop_523:                                    ;  xref 273F:2532 +273F:253B  72 1D                                jc      loc_526                 ; Jump if carry Set +273F:253D  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:253F  E2 07                                loop    locloop_524             ; Loop if cx > 0 + +273F:2541  86 D0                                xchg    dl,al +273F:2543  AC                                   lodsb                           ; String [si] to al +273F:2544  86 D0                                xchg    dl,al +273F:2546  B1 08                                mov     cl,8 + +273F:2548                       locloop_524:                                    ;  xref 273F:253F +273F:2548  72 08                                jc      loc_525                 ; Jump if carry Set +273F:254A  8A 5F 20                             mov     bl,[bx+20h] +273F:254D  8A C3                                mov     al,bl +273F:254F  AA                                   stosb                           ; Store al to es:[di] +273F:2550  EB CA                                jmp     short loc_520           ; (251C) +273F:2552                       loc_525:                                        ;  xref 273F:2548 +273F:2552  8A 5F 40                             mov     bl,[bx+40h] +273F:2555  8A C3                                mov     al,bl +273F:2557  AA                                   stosb                           ; Store al to es:[di] +273F:2558  EB C2                                jmp     short loc_520           ; (251C) +273F:255A                       loc_526:                                        ;  xref 273F:253B +273F:255A  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:255C  E2 07                                loop    locloop_527             ; Loop if cx > 0 + +273F:255E  86 D0                                xchg    dl,al +273F:2560  AC                                   lodsb                           ; String [si] to al +273F:2561  86 D0                                xchg    dl,al +273F:2563  B1 08                                mov     cl,8 + +273F:2565                       locloop_527:                                    ;  xref 273F:255C +273F:2565  72 08                                jc      loc_528                 ; Jump if carry Set +273F:2567  8A 5F 60                             mov     bl,[bx+60h] +273F:256A  8A C3                                mov     al,bl +273F:256C  AA                                   stosb                           ; Store al to es:[di] +273F:256D  EB AD                                jmp     short loc_520           ; (251C) +273F:256F                       loc_528:                                        ;  xref 273F:2565 +273F:256F  8A C6                                mov     al,dh +273F:2571  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2573  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2575  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2577  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2579  E2 07                                loop    locloop_529             ; Loop if cx > 0 + +273F:257B  86 D0                                xchg    dl,al +273F:257D  AC                                   lodsb                           ; String [si] to al +273F:257E  86 D0                                xchg    dl,al +273F:2580  B1 08                                mov     cl,8 + +273F:2582                       locloop_529:                                    ;  xref 273F:2579 +273F:2582  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2584  E2 07                                loop    locloop_530             ; Loop if cx > 0 + +273F:2586  86 D0                                xchg    dl,al +273F:2588  AC                                   lodsb                           ; String [si] to al +273F:2589  86 D0                                xchg    dl,al +273F:258B  B1 08                                mov     cl,8 + +273F:258D                       locloop_530:                                    ;  xref 273F:2584 +273F:258D  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:258F  E2 07                                loop    locloop_531             ; Loop if cx > 0 + +273F:2591  86 D0                                xchg    dl,al +273F:2593  AC                                   lodsb                           ; String [si] to al +273F:2594  86 D0                                xchg    dl,al +273F:2596  B1 08                                mov     cl,8 + +273F:2598                       locloop_531:                                    ;  xref 273F:258F +273F:2598  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:259A  E2 07                                loop    locloop_532             ; Loop if cx > 0 + +273F:259C  86 D0                                xchg    dl,al +273F:259E  AC                                   lodsb                           ; String [si] to al +273F:259F  86 D0                                xchg    dl,al +273F:25A1  B1 08                                mov     cl,8 + +273F:25A3                       locloop_532:                                    ;  xref 273F:259A +273F:25A3  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:25A5  E2 07                                loop    locloop_533             ; Loop if cx > 0 + +273F:25A7  86 D0                                xchg    dl,al +273F:25A9  AC                                   lodsb                           ; String [si] to al +273F:25AA  86 D0                                xchg    dl,al +273F:25AC  B1 08                                mov     cl,8 + +273F:25AE                       locloop_533:                                    ;  xref 273F:25A5 +273F:25AE  3A 07                                cmp     al,[bx] +273F:25B0  74 15                                je      loc_534                 ; Jump if equal +273F:25B2  3A 47 20                             cmp     al,[bx+20h] +273F:25B5  74 27                                je      loc_536                 ; Jump if equal +273F:25B7  3A 47 40                             cmp     al,[bx+40h] +273F:25BA  74 2D                                je      loc_537                 ; Jump if equal +273F:25BC  3A 47 60                             cmp     al,[bx+60h] +273F:25BF  74 77                                je      loc_544                 ; Jump if equal +273F:25C1  8A D8                                mov     bl,al +273F:25C3  AA                                   stosb                           ; Store al to es:[di] +273F:25C4  E9 FF55                              jmp     loc_520                 ; (251C) +273F:25C7                       loc_534:                                        ;  xref 273F:25B0 +273F:25C7  51                                   push    cx +273F:25C8  E8 4F56                              call    sub_187                 ; (7521) +273F:25CB  8A E0                                mov     ah,al +273F:25CD  E8 4F51                              call    sub_187                 ; (7521) +273F:25D0  8A EC                                mov     ch,ah +273F:25D2  8A C8                                mov     cl,al +273F:25D4  0B C9                                or      cx,cx                   ; Zero ? +273F:25D6  74 03                                jz      loc_535                 ; Jump if zero +273F:25D8  E9 00A1                              jmp     loc_550                 ; (267C) +273F:25DB                       loc_535:                                        ;  xref 273F:25D6 +273F:25DB  E9 00A6                              jmp     loc_551                 ; (2684) +273F:25DE                       loc_536:                                        ;  xref 273F:25B5 +273F:25DE  51                                   push    cx +273F:25DF  E8 4F3F                              call    sub_187                 ; (7521) +273F:25E2  8A C8                                mov     cl,al +273F:25E4  32 ED                                xor     ch,ch                   ; Zero register +273F:25E6  E9 0093                              jmp     loc_550                 ; (267C) +273F:25E9                       loc_537:                                        ;  xref 273F:25BA +273F:25E9  8A C6                                mov     al,dh +273F:25EB  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:25ED  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:25EF  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:25F1  E2 07                                loop    locloop_538             ; Loop if cx > 0 + +273F:25F3  86 D0                                xchg    dl,al +273F:25F5  AC                                   lodsb                           ; String [si] to al +273F:25F6  86 D0                                xchg    dl,al +273F:25F8  B1 08                                mov     cl,8 + +273F:25FA                       locloop_538:                                    ;  xref 273F:25F1 +273F:25FA  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:25FC  E2 07                                loop    locloop_539             ; Loop if cx > 0 + +273F:25FE  86 D0                                xchg    dl,al +273F:2600  AC                                   lodsb                           ; String [si] to al +273F:2601  86 D0                                xchg    dl,al +273F:2603  B1 08                                mov     cl,8 + +273F:2605                       locloop_539:                                    ;  xref 273F:25FC +273F:2605  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2607  E2 07                                loop    locloop_540             ; Loop if cx > 0 + +273F:2609  86 D0                                xchg    dl,al +273F:260B  AC                                   lodsb                           ; String [si] to al +273F:260C  86 D0                                xchg    dl,al +273F:260E  B1 08                                mov     cl,8 + +273F:2610                       locloop_540:                                    ;  xref 273F:2607 +273F:2610  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2612  E2 07                                loop    locloop_541             ; Loop if cx > 0 + +273F:2614  86 D0                                xchg    dl,al +273F:2616  AC                                   lodsb                           ; String [si] to al +273F:2617  86 D0                                xchg    dl,al +273F:2619  B1 08                                mov     cl,8 + +273F:261B                       locloop_541:                                    ;  xref 273F:2612 +273F:261B  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:261D  E2 07                                loop    locloop_542             ; Loop if cx > 0 + +273F:261F  86 D0                                xchg    dl,al +273F:2621  AC                                   lodsb                           ; String [si] to al +273F:2622  86 D0                                xchg    dl,al +273F:2624  B1 08                                mov     cl,8 + +273F:2626                       locloop_542:                                    ;  xref 273F:261D +273F:2626  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2628  E2 07                                loop    locloop_543             ; Loop if cx > 0 + +273F:262A  86 D0                                xchg    dl,al +273F:262C  AC                                   lodsb                           ; String [si] to al +273F:262D  86 D0                                xchg    dl,al +273F:262F  B1 08                                mov     cl,8 + +273F:2631                       locloop_543:                                    ;  xref 273F:2628 +273F:2631  51                                   push    cx +273F:2632  8A C8                                mov     cl,al +273F:2634  32 ED                                xor     ch,ch                   ; Zero register +273F:2636  EB 44                                jmp     short loc_550           ; (267C) +273F:2638                       loc_544:                                        ;  xref 273F:25BF +273F:2638  8A C6                                mov     al,dh +273F:263A  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:263C  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:263E  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:2640  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2642  E2 07                                loop    locloop_545             ; Loop if cx > 0 + +273F:2644  86 D0                                xchg    dl,al +273F:2646  AC                                   lodsb                           ; String [si] to al +273F:2647  86 D0                                xchg    dl,al +273F:2649  B1 08                                mov     cl,8 + +273F:264B                       locloop_545:                                    ;  xref 273F:2642 +273F:264B  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:264D  E2 07                                loop    locloop_546             ; Loop if cx > 0 + +273F:264F  86 D0                                xchg    dl,al +273F:2651  AC                                   lodsb                           ; String [si] to al +273F:2652  86 D0                                xchg    dl,al +273F:2654  B1 08                                mov     cl,8 + +273F:2656                       locloop_546:                                    ;  xref 273F:264D +273F:2656  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2658  E2 07                                loop    locloop_547             ; Loop if cx > 0 + +273F:265A  86 D0                                xchg    dl,al +273F:265C  AC                                   lodsb                           ; String [si] to al +273F:265D  86 D0                                xchg    dl,al +273F:265F  B1 08                                mov     cl,8 + +273F:2661                       locloop_547:                                    ;  xref 273F:2658 +273F:2661  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:2663  E2 07                                loop    locloop_548             ; Loop if cx > 0 + +273F:2665  86 D0                                xchg    dl,al +273F:2667  AC                                   lodsb                           ; String [si] to al +273F:2668  86 D0                                xchg    dl,al +273F:266A  B1 08                                mov     cl,8 + +273F:266C                       locloop_548:                                    ;  xref 273F:2663 +273F:266C  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:266E  E2 07                                loop    locloop_549             ; Loop if cx > 0 + +273F:2670  86 D0                                xchg    dl,al +273F:2672  AC                                   lodsb                           ; String [si] to al +273F:2673  86 D0                                xchg    dl,al +273F:2675  B1 08                                mov     cl,8 + +273F:2677                       locloop_549:                                    ;  xref 273F:266E +273F:2677  51                                   push    cx +273F:2678  8A C8                                mov     cl,al +273F:267A  32 ED                                xor     ch,ch                   ; Zero register +273F:267C                       loc_550:                                        ;  xref 273F:25D8, 25E6, 2636 +273F:267C  8A C3                                mov     al,bl +273F:267E  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:2680  59                                   pop     cx +273F:2681  E9 FE98                              jmp     loc_520                 ; (251C) +273F:2684                       loc_551:                                        ;  xref 273F:25DB +273F:2684  58                                   pop     ax +273F:2685  1F                                   pop     ds +273F:2686  EB 00                                jmp     short $+2               ; delay for I/O +273F:2688  57                                   push    di +273F:2689  8B EF                                mov     bp,di +273F:268B  1E                                   push    ds +273F:268C  06                                   push    es +273F:268D  1F                                   pop     ds +273F:268E  8B F7                                mov     si,di +273F:2690  83 EE 02                             sub     si,2 +273F:2693  83 C7 06                             add     di,6 +273F:2696  8B CD                                mov     cx,bp +273F:2698  FD                                   std                             ; Set direction flag +273F:2699  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:269B  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:269D  FC                                   cld                             ; Clear direction +273F:269E  33 FF                                xor     di,di                   ; Zero register +273F:26A0 úBE 0008                              mov     si,data_1459e           ; (FF12:0008=0) +273F:26A3                       loc_552:                                        ;  xref 273F:26C2 +273F:26A3  B9 0008                              mov     cx,8 + +273F:26A6                       locloop_553:                                    ;  xref 273F:26BA +273F:26A6  AC                                   lodsb                           ; String [si] to al +273F:26A7  D0 D8                                rcr     al,1                    ; Rotate thru carry +273F:26A9  D0 55 03                             rcl     byte ptr [di+3],1       ; Rotate thru carry +273F:26AC  D0 D8                                rcr     al,1                    ; Rotate thru carry +273F:26AE  D0 55 02                             rcl     byte ptr [di+2],1       ; Rotate thru carry +273F:26B1  D0 D8                                rcr     al,1                    ; Rotate thru carry +273F:26B3  D0 55 01                             rcl     byte ptr [di+1],1       ; Rotate thru carry +273F:26B6  D0 D8                                rcr     al,1                    ; Rotate thru carry +273F:26B8  D0 15                                rcl     byte ptr [di],1         ; Rotate thru carry +273F:26BA  E2 EA                                loop    locloop_553             ; Loop if cx > 0 + +273F:26BC  83 C7 04                             add     di,4 +273F:26BF  83 ED 08                             sub     bp,8 +273F:26C2  77 DF                                ja      loc_552                 ; Jump if above +273F:26C4  1F                                   pop     ds +273F:26C5  59                                   pop     cx +273F:26C6  C3                                   retn +                           ega_decode_entry     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:26C7  1E                                   push    ds +273F:26C8  06                                   push    es +273F:26C9  1F                                   pop     ds +273F:26CA úBE 0040                              mov     si,40h                  ; (273F:0040=0) +273F:26CD  57                                   push    di +273F:26CE  2B FE                                sub     di,si +273F:26D0  8B EF                                mov     bp,di +273F:26D2  32 D2                                xor     dl,dl                   ; Zero register +273F:26D4                       loc_554:                                        ;  xref 273F:2708 +273F:26D4  8A 04                                mov     al,[si] +273F:26D6  8A 64 01                             mov     ah,[si+1] +273F:26D9  8A 5C 02                             mov     bl,[si+2] +273F:26DC  8A 7C 03                             mov     bh,[si+3] +273F:26DF  B9 0004                              mov     cx,4 + +273F:26E2                       locloop_555:                                    ;  xref 273F:26F8, 2700 +273F:26E2  D0 D0                                rcl     al,1                    ; Rotate thru carry +273F:26E4  D0 14                                rcl     byte ptr [si],1         ; Rotate thru carry +273F:26E6  D0 D0                                rcl     al,1                    ; Rotate thru carry +273F:26E8  D0 54 01                             rcl     byte ptr [si+1],1       ; Rotate thru carry +273F:26EB  D0 D0                                rcl     al,1                    ; Rotate thru carry +273F:26ED  D0 54 02                             rcl     byte ptr [si+2],1       ; Rotate thru carry +273F:26F0  D0 D0                                rcl     al,1                    ; Rotate thru carry +273F:26F2  D0 54 03                             rcl     byte ptr [si+3],1       ; Rotate thru carry +273F:26F5  80 F2 01                             xor     dl,1 +273F:26F8  75 E8                                jnz     locloop_555             ; Jump if not zero +273F:26FA  8A C4                                mov     al,ah +273F:26FC  8A E3                                mov     ah,bl +273F:26FE  8A DF                                mov     bl,bh +273F:2700  E2 E0                                loop    locloop_555             ; Loop if cx > 0 + +273F:2702  83 C6 04                             add     si,4 +273F:2705  83 ED 04                             sub     bp,4 +273F:2708  77 CA                                ja      loc_554                 ; Jump if above +273F:270A  5F                                   pop     di +273F:270B  1F                                   pop     ds +273F:270C  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          ega_segment_screen    proc    near +273F:270D  C6 06 0DA4 00                        mov     datavar1, 0 +273F:2712  88 0E 0DA5                           mov     current_layer, cl +273F:2716  C7 06 0DA2 0200                      mov     rectangle_size, 200h +273F:271C  0A C9                                or      cl,cl                   ; Zero ? +273F:271E  74 06                                jz      loc_556                 ; Jump if zero +273F:2720  81 06 0DA2 0080                      add     rectangle_size, 80h +273F:2726                       loc_556:                                        ;  xref 273F:271E +273F:2726  33 F6                                xor     si,si                   ; Zero register +273F:2728  B5 06                                mov     ch,6 +273F:272A                       loc_557:                                        ;  xref 273F:2771 +273F:272A  B1 0A                                mov     cl,0Ah +273F:272C                       loc_558:                                        ;  xref 273F:2765 +273F:272C  1E                                   push    ds +273F:272D  53                                   push    bx +273F:272E  51                                   push    cx +273F:272F  56                                   push    si +273F:2730  57                                   push    di +273F:2731  A1 4CE4                              mov     ax, data_segment2 +273F:2734  8E D8                                mov     ds,ax +273F:2736  E8 003B                              call    sub_65                  ; (2774) +273F:2739  5F                                   pop     di +273F:273A  5E                                   pop     si +273F:273B  59                                   pop     cx +273F:273C  5B                                   pop     bx +273F:273D  1F                                   pop     ds +273F:273E  F6 06 0DA5 FF                        test    byte ptr ds:[0DA5h],0FFh ; (273F:0DA5=31h) +273F:2743  74 09                                jz      loc_559                 ; Jump if zero +273F:2745  0A F6                                or      dh,dh                   ; Zero ? +273F:2747  75 05                                jnz     loc_559                 ; Jump if not zero +273F:2749  C6 07 FF                             mov     byte ptr [bx],0FFh +273F:274C  EB 0E                                jmp     short loc_560           ; (275C) +273F:274E                       loc_559:                                        ;  xref 273F:2743, 2747 +273F:274E  03 3E 0DA2                           add     di, [rectangle_size] +273F:2752  A0 0DA4                              mov     al, datavar1 +273F:2755  88 07                                mov     [bx], al +273F:2757  80 06 0DA4 01                        add     datavar1, 1 +273F:275C                       loc_560:                                        ;  xref 273F:274C +273F:275C  83 C6 10                             add     si,10h +273F:275F  83 C3 01                             add     bx,1 +273F:2762  80 E9 01                             sub     cl,1 +273F:2765  75 C5                                jnz     loc_558                 ; Jump if not zero +273F:2767 ú81 C6 1360                           add     si,data_1464e           ; (FF12:1360=1Eh) +273F:276B  83 C3 08                             add     bx,8 +273F:276E  80 ED 01                             sub     ch,1 +273F:2771  75 B7                                jnz     loc_557                 ; Jump if not zero +273F:2773  C3                                   retn +                          ega_segment_screen    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:2736 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:2774                       sub_65          proc    near +273F:2774  8B DF                                mov     bx,di +273F:2776 ú81 C3 0200                           add     bx,200h                 ; (273F:0200=0F6h) +273F:277A  32 F6                                xor     dh,dh                   ; Zero register +273F:277C  B5 20                                mov     ch,20h                  ; ' ' +273F:277E                       loc_561:                                        ;  xref 273F:27AE +273F:277E  B1 04                                mov     cl,4 +273F:2780                       loc_562:                                        ;  xref 273F:27A5 +273F:2780  32 D2                                xor     dl,dl                   ; Zero register +273F:2782  AC                                   lodsb                           ; String [si] to al +273F:2783  0A D0                                or      dl,al +273F:2785  0A F0                                or      dh,al +273F:2787  AA                                   stosb                           ; Store al to es:[di] +273F:2788  AC                                   lodsb                           ; String [si] to al +273F:2789  0A D0                                or      dl,al +273F:278B  0A F0                                or      dh,al +273F:278D  AA                                   stosb                           ; Store al to es:[di] +273F:278E  AC                                   lodsb                           ; String [si] to al +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 102 + +273F:278F  0A D0                                or      dl,al +273F:2791  0A F0                                or      dh,al +273F:2793  AA                                   stosb                           ; Store al to es:[di] +273F:2794  AC                                   lodsb                           ; String [si] to al +273F:2795  0A D0                                or      dl,al +273F:2797  0A F0                                or      dh,al +273F:2799  AA                                   stosb                           ; Store al to es:[di] +273F:279A  F6 D2                                not     dl +273F:279C  26: 88 17                            mov     es:[bx],dl +273F:279F  83 C3 01                             add     bx,1 +273F:27A2  80 E9 01                             sub     cl,1 +273F:27A5  75 D9                                jnz     loc_562                 ; Jump if not zero +273F:27A7  81 C6 0090                           add     si,90h +273F:27AB  80 ED 01                             sub     ch,1 +273F:27AE  75 CE                                jnz     loc_561                 ; Jump if not zero +273F:27B0  C3                                   retn +                                sub_65          endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                 ega_show_compressed_screen     proc    near + +273F:27B1 úBB 07DC                              mov     bx, offset display_mask +273F:27B4  A1 4CE4                              mov     ax, data_segment2 +273F:27B7  8E C0                                mov     es,ax +273F:27B9 úBF 0500                              mov     di,data_1462e           ; (FF12:0500=0) +273F:27BC  8B 16 4CE0                           mov     dx, current_room_segment +273F:27C0  33 F6                                xor     si,si                   ; Zero register +273F:27C2  B5 06                                mov     ch,6 +273F:27C4                       loc_563:                                        ;  xref 273F:280C +273F:27C4  B1 0A                                mov     cl,0Ah +273F:27C6                       loc_564:                                        ;  xref 273F:2800 +273F:27C6  F6 07 80                             test    byte ptr [bx],80h +273F:27C9  74 28                                jz      loc_567                 ; Jump if zero +273F:27CB  80 27 7F                             and     byte ptr [bx],7Fh +273F:27CE  80 0F 01                             or      byte ptr [bx],1 +273F:27D1  80 8F 0100 01                        or      byte ptr ds:[100h][bx],1 ; (273F:0100=6) +273F:27D6  57                                   push    di +273F:27D7  1E                                   push    ds +273F:27D8  56                                   push    si +273F:27D9  8E DA                                mov     ds,dx +273F:27DB  B6 20                                mov     dh,20h                  ; ' ' +273F:27DD                       loc_565:                                        ;  xref 273F:27EC +273F:27DD  B2 08                                mov     dl,8 +273F:27DF                       loc_566:                                        ;  xref 273F:27E3 +273F:27DF  A5                                   movsw                           ; Mov [si] to es:[di] +273F:27E0  80 EA 01                             sub     dl,1 +273F:27E3  75 FA                                jnz     loc_566                 ; Jump if not zero +273F:27E5  81 C7 0090                           add     di,90h +273F:27E9  80 EE 01                             sub     dh,1 +273F:27EC  75 EF                                jnz     loc_565                 ; Jump if not zero +273F:27EE  5E                                   pop     si +273F:27EF  8C DA                                mov     dx,ds +273F:27F1  1F                                   pop     ds +273F:27F2  5F                                   pop     di +273F:27F3                       loc_567:                                        ;  xref 273F:27C9 +273F:27F3  83 C3 01                             add     bx,1 +273F:27F6  83 C7 10                             add     di,10h +273F:27F9  81 C6 0200                           add     si,200h +273F:27FD  80 E9 01                             sub     cl,1 +273F:2800  75 C4                                jnz     loc_564                 ; Jump if not zero +273F:2802  83 C3 08                             add     bx,8 +273F:2805 ú81 C7 1360                           add     di,1360h                ; (273F:1360=0) +273F:2809  80 ED 01                             sub     ch,1 +273F:280C  75 B6                                jnz     loc_563                 ; Jump if not zero +273F:280E  80 0E 11D0 30                        or      menubar_state, 30h ; (273F:11D0=56h) '0' +273F:2813  C3                                   retn + +                 ega_show_compressed_screen     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                                                                ;* No entry point to code +273F:2814 úBE 0992                              mov     si, offset rects_layer_0 +273F:2817  83 C6 4C                             add     si,4Ch +273F:281A  C7 06 0DA6 0D92                      mov     rect_x_start, offset room_layers +273F:2820  C7 06 0DAA 0D96                      mov     num_horiz_rects, 0D96h +273F:2826  B9 0003                              mov     cx,3 +273F:2829                       loc_568:                                        ;  xref 273F:28E9 +273F:2829 ú51                                   push    cx +273F:282A úBB 0100                              mov     bx,100h                 ; (273F:0100=6) +273F:282D                       loc_569:                                        ;  xref 273F:28CF +273F:282D ú51                                   push    cx +273F:282E  56                                   push    si +273F:282F  8B 3E 0DA6                           mov     di, rect_x_start +273F:2833  8B 05                                mov     ax,[di] +273F:2835  8E C0                                mov     es,ax +273F:2837  8B 45 02                             mov     ax,[di+2] +273F:283A  A3 0DA8                              mov     rect_y_end, ax +273F:283D  8B 3E 0DAA                           mov     di, num_horiz_rects +273F:2841  8B 05                                mov     ax,[di] +273F:2843  8B D0                                mov     dx,ax +273F:2845  8B 45 02                             mov     ax,[di+2] +273F:2848  A3 0DAC                              mov     word ptr ds:[0DACh],ax  ; (273F:0DAC=0EB09h) +273F:284B  B5 06                                mov     ch,6 +273F:284D                       loc_570:                                        ;  xref 273F:28BE +273F:284D  B1 0A                                mov     cl,0Ah +273F:284F                       loc_571:                                        ;  xref 273F:28B6 +273F:284F  F6 04 80                             test    byte ptr [si],80h +273F:2852  75 5C                                jnz     loc_573                 ; Jump if not zero +273F:2854  F6 00 80                             test    byte ptr [bx+si],80h +273F:2857  75 57                                jnz     loc_573                 ; Jump if not zero +273F:2859  56                                   push    si +273F:285A  52                                   push    dx +273F:285B  8A 04                                mov     al,[si] +273F:285D  32 E4                                xor     ah,ah                   ; Zero register +273F:285F  F7 26 0DA8                           mul     rect_y_end +273F:2863  8B F8                                mov     di,ax +273F:2865  8A 00                                mov     al,[bx+si] +273F:2867  32 E4                                xor     ah,ah                   ; Zero register +273F:2869  F7 26 0DAC                           mul     word ptr ds:[0DACh]     ; (273F:0DAC=0EB09h) dx:ax = data * ax +273F:286D  8B F0                                mov     si,ax +273F:286F  5A                                   pop     dx +273F:2870  1E                                   push    ds +273F:2871  51                                   push    cx +273F:2872  53                                   push    bx +273F:2873  8E DA                                mov     ds,dx +273F:2875  B9 0080                              mov     cx,80h +273F:2878  8B DE                                mov     bx,si +273F:287A ú81 C3 0200                           add     bx,data_11e             ; (0000:0200=0) + +273F:287E                       locloop_572:                                    ;  xref 273F:28A8 +273F:287E  8A 17                                mov     dl,[bx] +273F:2880  AC                                   lodsb                           ; String [si] to al +273F:2881  26: 20 15                            and     es:[di],dl +273F:2884  26: 08 05                            or      es:[di],al +273F:2887  AC                                   lodsb                           ; String [si] to al +273F:2888  26: 20 55 01                         and     es:[di+1],dl +273F:288C  26: 08 45 01                         or      es:[di+1],al +273F:2890  AC                                   lodsb                           ; String [si] to al +273F:2891  26: 20 55 02                         and     es:[di+2],dl +273F:2895  26: 08 45 02                         or      es:[di+2],al +273F:2899  AC                                   lodsb                           ; String [si] to al +273F:289A  26: 20 55 03                         and     es:[di+3],dl +273F:289E  26: 08 45 03                         or      es:[di+3],al +273F:28A2  83 C7 04                             add     di,4 +273F:28A5  83 C3 01                             add     bx,1 +273F:28A8  E2 D4                                loop    locloop_572             ; Loop if cx > 0 + +273F:28AA  5B                                   pop     bx +273F:28AB  59                                   pop     cx +273F:28AC  8C DA                                mov     dx,ds +273F:28AE  1F                                   pop     ds +273F:28AF  5E                                   pop     si +273F:28B0                       loc_573:                                        ;  xref 273F:2852, 2857 +273F:28B0  83 C6 01                             add     si,1 +273F:28B3  80 E9 01                             sub     cl,1 +273F:28B6  75 97                                jnz     loc_571                 ; Jump if not zero +273F:28B8  83 C6 08                             add     si,8 +273F:28BB  80 ED 01                             sub     ch,1 +273F:28BE  75 8D                                jnz     loc_570                 ; Jump if not zero +273F:28C0  83 06 0DAA 04                        add     num_horiz_rects, 4 +273F:28C5  81 C3 0100                           add     bx,100h +273F:28C9  5E                                   pop     si +273F:28CA  59                                   pop     cx +273F:28CB  E2 02                                loop    locloop_574             ; Loop if cx > 0 + +273F:28CD  EB 03                                jmp     short loc_575           ; (28D2) + +273F:28CF                       locloop_574:                                    ;  xref 273F:28CB +273F:28CF  E9 FF5B                              jmp     loc_569                 ; (282D) +273F:28D2                       loc_575:                                        ;  xref 273F:28CD +273F:28D2  59                                   pop     cx +273F:28D3  E2 02                                loop    locloop_576             ; Loop if cx > 0 + +273F:28D5  EB 15                                jmp     short loc_577           ; (28EC) + +273F:28D7                       locloop_576:                                    ;  xref 273F:28D3 +273F:28D7  81 C6 0100                           add     si,100h +273F:28DB  83 06 0DA6 04                        add     rect_x_start, 4 +273F:28E0  A1 0DA6                              mov     ax, rect_x_start +273F:28E3  05 0004                              add     ax,4 +273F:28E6  A3 0DAA                              mov     num_horiz_rects, ax +273F:28E9  E9 FF3D                              jmp     loc_568                 ; (2829) +273F:28EC                       loc_577:                                        ;  xref 273F:28D5 +273F:28EC úBE 0A92                              mov     si, offset rects_layer_1 +273F:28EF  83 C6 4C                             add     si, FULL_HORIZ_RECTS * 4 + 4 ; 4Ch +273F:28F2  C7 06 0DA6 0D96                      mov     rect_x_start, 0D96h  +273F:28F8  C7 06 0DAA 0D9A                      mov     num_horiz_rects, 0D9Ah +273F:28FE  B9 0002                              mov     cx,2 +273F:2901                       loc_578:                                        ;  xref 273F:29A0 +273F:2901 ú51                                   push    cx +273F:2902 úBB 0100                              mov     bx,100h                 ; (273F:0100=6) +273F:2905                       loc_579:                                        ;  xref 273F:2986 +273F:2905 ú51                                   push    cx +273F:2906  56                                   push    si +273F:2907  8B 3E 0DA6                           mov     di, rect_x_start +273F:290B  8B 05                                mov     ax,[di] +273F:290D  8E C0                                mov     es,ax +273F:290F  8B 45 02                             mov     ax,[di+2] +273F:2912  A3 0DA8                              mov     rect_y_end, ax +273F:2915  8B 3E 0DAA                           mov     di, num_horiz_rects +273F:2919  8B 05                                mov     ax,[di] +273F:291B  8B D0                                mov     dx,ax +273F:291D  8B 45 02                             mov     ax,[di+2] +273F:2920  A3 0DAC                              mov     word ptr ds:[0DACh],ax  ; (273F:0DAC=0EB09h) +273F:2923  B5 06                                mov     ch,6 +273F:2925                       loc_580:                                        ;  xref 273F:2975 +273F:2925  B1 0A                                mov     cl,0Ah +273F:2927                       loc_581:                                        ;  xref 273F:296D +273F:2927  F6 04 80                             test    byte ptr [si],80h +273F:292A  75 3B                                jnz     loc_583                 ; Jump if not zero +273F:292C  F6 00 80                             test    byte ptr [bx+si],80h +273F:292F  75 36                                jnz     loc_583                 ; Jump if not zero +273F:2931  56                                   push    si +273F:2932  52                                   push    dx +273F:2933  8A 04                                mov     al,[si] +273F:2935  32 E4                                xor     ah,ah                   ; Zero register +273F:2937  F7 26 0DA8                           mul     rect_y_end +273F:293B  8B F8                                mov     di,ax +273F:293D  8A 00                                mov     al,[bx+si] +273F:293F  32 E4                                xor     ah,ah                   ; Zero register +273F:2941  F7 26 0DAC                           mul     word ptr ds:[0DACh]     ; (273F:0DAC=0EB09h) dx:ax = data * ax +273F:2945  8B F0                                mov     si,ax +273F:2947  5A                                   pop     dx +273F:2948  1E                                   push    ds +273F:2949  51                                   push    cx +273F:294A  53                                   push    bx +273F:294B  8E DA                                mov     ds,dx +273F:294D  B9 0080                              mov     cx,80h +273F:2950 ú81 C6 0200                           add     si,data_11e             ; (0000:0200=0) +273F:2954 ú81 C7 0200                           add     di,data_1436e           ; (4789:0200=27h) + +273F:2958                       locloop_582:                                    ;  xref 273F:295F +273F:2958  AC                                   lodsb                           ; String [si] to al +273F:2959  26: 20 05                            and     es:[di],al +273F:295C  83 C7 01                             add     di,1 +273F:295F  E2 F7                                loop    locloop_582             ; Loop if cx > 0 + +273F:2961  5B                                   pop     bx +273F:2962  59                                   pop     cx +273F:2963  8C DA                                mov     dx,ds +273F:2965  1F                                   pop     ds +273F:2966  5E                                   pop     si +273F:2967                       loc_583:                                        ;  xref 273F:292A, 292F +273F:2967  83 C6 01                             add     si,1 +273F:296A  80 E9 01                             sub     cl,1 +273F:296D  75 B8                                jnz     loc_581                 ; Jump if not zero +273F:296F  83 C6 08                             add     si,8 +273F:2972  80 ED 01                             sub     ch,1 +273F:2975  75 AE                                jnz     loc_580                 ; Jump if not zero +273F:2977  83 06 0DAA 04                        add     num_horiz_rects, 4 +273F:297C ú81 C3 0100                           add     bx,100h                 ; (273F:0100=6) +273F:2980  5E                                   pop     si +273F:2981  59                                   pop     cx +273F:2982  E2 02                                loop    locloop_584             ; Loop if cx > 0 + +273F:2984  EB 03                                jmp     short loc_585           ; (2989) + +273F:2986                       locloop_584:                                    ;  xref 273F:2982 +273F:2986  E9 FF7C                              jmp     loc_579                 ; (2905) +273F:2989                       loc_585:                                        ;  xref 273F:2984 +273F:2989  59                                   pop     cx +273F:298A  E2 02                                loop    locloop_586             ; Loop if cx > 0 + +273F:298C  EB 15                                jmp     short loc_ret_587       ; (29A3) + +273F:298E                       locloop_586:                                    ;  xref 273F:298A +273F:298E ú81 C6 0100                           add     si,100h                 ; (273F:0100=6) +273F:2992  83 06 0DA6 04                        add     rect_x_start, 4 +273F:2997  A1 0DA6                              mov     ax, rect_x_start +273F:299A  05 0004                              add     ax,4 +273F:299D  A3 0DAA                              mov     num_horiz_rects, ax +273F:29A0  E9 FF5E                              jmp     loc_578                 ; (2901) + +273F:29A3                       loc_ret_587:                                    ;  xref 273F:298C +273F:29A3  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              ega_add_layer     proc     near +273F:29A4  8B CD                                mov      cx, bp +273F:29A6                       locloop_588: +273F:29A6  80 39 FE                             cmp     byte ptr [bx+di],0FEh +273F:29A9  72 0A                                jb      loc_589                 ; Jump if below +273F:29AB ú81 C7 0100                           add     di,100h                 ; (273F:0100=6) +273F:29AF  83 C6 04                             add     si,4 +273F:29B2  E2 F2                                loop    locloop_588             ; Loop if cx > 0 + +273F:29B4  C3                                   retn +273F:29B5                       loc_589:                                        ;  xref 273F:29A9 +273F:29B5  1E                                   push    ds +273F:29B6  52                                   push    dx +273F:29B7  8B D0                                mov     dx,ax +273F:29B9  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:29BB  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:29BD  03 D0                                add     dx,ax +273F:29BF  B1 0A                                mov     cl,0Ah +273F:29C1  D3 E2                                shl     dx,cl                   ; Shift w/zeros fill +273F:29C3  81 C2 0500                           add     dx,500h +273F:29C7  58                                   pop     ax +273F:29C8  B1 04                                mov     cl,4 +273F:29CA  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:29CC  03 D0                                add     dx,ax +273F:29CE  8A 01                                mov     al,[bx+di] +273F:29D0  8B 1E 4CE4                           mov     bx, data_segment2 +273F:29D4  8E C3                                mov     es,bx +273F:29D6  8B 1C                                mov     bx,[si] +273F:29D8  8E DB                                mov     ds,bx +273F:29DA  8B FA                                mov     di,dx +273F:29DC  32 E4                                xor     ah,ah                   ; Zero register +273F:29DE  8B D0                                mov     dx,ax +273F:29E0  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:29E2  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:29E4  03 C2                                add     ax,dx +273F:29E6  B1 07                                mov     cl,7 +273F:29E8  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:29EA  8B F0                                mov     si,ax +273F:29EC  8B DE                                mov     bx,si +273F:29EE ú81 C3 0200                           add     bx,data_1455e           ; (E4B8:0200=0) +273F:29F2  B9 0020                              mov     cx,20h + +273F:29F5                       locloop_590:                                    ;  xref 273F:2A2D +273F:29F5  51                                   push    cx +273F:29F6  B9 0004                              mov     cx,4 + +273F:29F9                       locloop_591:                                    ;  xref 273F:2A26 +273F:29F9  8A 17                                mov     dl,[bx] +273F:29FB  AC                                   lodsb                           ; String [si] to al +273F:29FC  26: 20 15                            and     es:[di],dl +273F:29FF  26: 08 05                            or      es:[di],al +273F:2A02  83 C7 01                             add     di,1 +273F:2A05  AC                                   lodsb                           ; String [si] to al +273F:2A06  26: 20 15                            and     es:[di],dl +273F:2A09  26: 08 05                            or      es:[di],al +273F:2A0C  83 C7 01                             add     di,1 +273F:2A0F  AC                                   lodsb                           ; String [si] to al +273F:2A10  26: 20 15                            and     es:[di],dl +273F:2A13  26: 08 05                            or      es:[di],al +273F:2A16  83 C7 01                             add     di,1 +273F:2A19  AC                                   lodsb                           ; String [si] to al +273F:2A1A  26: 20 15                            and     es:[di],dl +273F:2A1D  26: 08 05                            or      es:[di],al +273F:2A20  83 C7 01                             add     di,1 +273F:2A23  83 C3 01                             add     bx,1 +273F:2A26  E2 D1                                loop    locloop_591             ; Loop if cx > 0 + +273F:2A28 ú81 C7 0090                           add     di,90h                  ; (273F:0090=15h) +273F:2A2C  59                                   pop     cx +273F:2A2D  E2 C6                                loop    locloop_590             ; Loop if cx > 0 + +273F:2A2F  1F                                   pop     ds +273F:2A30  C3                                   retn +                              ega_add_layer     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      ega_display_character     proc    near + +273F:2A31  57                                   push    di +273F:2A32  1E                                   push    ds +273F:2A33  51                                   push    cx +273F:2A34  56                                   push    si +273F:2A35  8E DD                                mov     ds,bp +273F:2A37  8A F2                                mov     dh,dl +273F:2A39  2C 20                                sub     al,20h                  ; ' ' +273F:2A3B  B1 03                                mov     cl,3 +273F:2A3D  32 E4                                xor     ah,ah                   ; Zero register +273F:2A3F  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2A41  8B F0                                mov     si,ax +273F:2A43  B9 0008                              mov     cx,8 + +273F:2A46                       locloop_592:                                    ;  xref 273F:2AA2 +273F:2A46  AC                                   lodsb                           ; String [si] to al +273F:2A47  8A E0                                mov     ah,al +273F:2A49  F6 D4                                not     ah +273F:2A4B  26: C6 05 00                         mov     byte ptr es:[di],0 +273F:2A4F  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A51  73 03                                jnc     loc_593                 ; Jump if carry=0 +273F:2A53  26: 88 05                            mov     es:[di],al +273F:2A56                       loc_593:                                        ;  xref 273F:2A51 +273F:2A56  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A58  73 03                                jnc     loc_594                 ; Jump if carry=0 +273F:2A5A  26: 08 25                            or      es:[di],ah +273F:2A5D                       loc_594:                                        ;  xref 273F:2A58 +273F:2A5D  83 C7 01                             add     di,1 +273F:2A60  26: C6 05 00                         mov     byte ptr es:[di],0 +273F:2A64  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A66  73 03                                jnc     loc_595                 ; Jump if carry=0 +273F:2A68  26: 88 05                            mov     es:[di],al +273F:2A6B                       loc_595:                                        ;  xref 273F:2A66 +273F:2A6B  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A6D  73 03                                jnc     loc_596                 ; Jump if carry=0 +273F:2A6F  26: 08 25                            or      es:[di],ah +273F:2A72                       loc_596:                                        ;  xref 273F:2A6D +273F:2A72  83 C7 01                             add     di,1 +273F:2A75  26: C6 05 00                         mov     byte ptr es:[di],0 +273F:2A79  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A7B  73 03                                jnc     loc_597                 ; Jump if carry=0 +273F:2A7D  26: 88 05                            mov     es:[di],al +273F:2A80                       loc_597:                                        ;  xref 273F:2A7B +273F:2A80  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A82  73 03                                jnc     loc_598                 ; Jump if carry=0 +273F:2A84  26: 08 25                            or      es:[di],ah +273F:2A87                       loc_598:                                        ;  xref 273F:2A82 +273F:2A87  83 C7 01                             add     di,1 +273F:2A8A  26: C6 05 00                         mov     byte ptr es:[di],0 +273F:2A8E  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A90  73 03                                jnc     loc_599                 ; Jump if carry=0 +273F:2A92  26: 88 05                            mov     es:[di],al +273F:2A95                       loc_599:                                        ;  xref 273F:2A90 +273F:2A95  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:2A97  73 03                                jnc     loc_600                 ; Jump if carry=0 +273F:2A99  26: 08 25                            or      es:[di],ah +273F:2A9C                       loc_600:                                        ;  xref 273F:2A97 +273F:2A9C  81 C7 009D                           add     di,9Dh +273F:2AA0  8A D6                                mov     dl,dh +273F:2AA2  E2 A2                                loop    locloop_592             ; Loop if cx > 0 + +273F:2AA4  5E                                   pop     si +273F:2AA5  59                                   pop     cx +273F:2AA6  1F                                   pop     ds +273F:2AA7  5F                                   pop     di + +273F:2AA8                       loc_ret_601:                                    ;  xref 273F:2ABE +273F:2AA8  C3                                   retn + +                      ega_display_character     endp + +273F:2AA9  00                   data_238        db      0                       ;  xref 273F:2B37, 2BA1 +273F:2AAA  00                   data_239        db      0                       ;  xref 273F:2B0C, 2B9A +273F:2AAB  0000                 data_240        dw      0                       ;  xref 273F:2B3C, 2C04 +273F:2AAD                       loc_602:                                        ;  xref 273F:2ADD +273F:2AAD  80 26 11D0 FB                        and     menubar_state, 0FBh ; (273F:11D0=56h) +273F:2AB2  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:2129 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:2AB3                       ega_cursor      proc    near +273F:2AB3  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:2AB9  F6 06 11D0 04                        test    menubar_state, 4   ; (273F:11D0=56h) +273F:2ABE  75 E8                                jnz     loc_ret_601             ; Jump if not zero +273F:2AC0  80 0E 11D0 04                        or      menubar_state, 4   ; (273F:11D0=56h) +273F:2AC5  F7 06 11EC FFFF                      test    word ptr ds:[11ECh],0FFFFh ; (273F:11EC=1B55h) +273F:2ACB  74 0B                                jz      loc_603                 ; Jump if zero +273F:2ACD  A1 0DB0                              mov     ax, screen_start_seg +273F:2AD0  8E C0                                mov     es,ax +273F:2AD2 úBE 11E8                              mov     si,offset data_638      ; (31E4:11E8=0) +273F:2AD5  E8 014D                              call    sub_67                  ; (2C25) +273F:2AD8                       loc_603:                                        ;  xref 273F:2ACB +                                                assume  ds:data_seg +273F:2AD8  F6 06 11D0 01                        test    menubar_state, 1     ; (31E4:11D0=3) +273F:2ADD  75 CE                                jnz     loc_602                 ; Jump if not zero +273F:2ADF  A1 11D8                              mov     ax, mouse_y2   +273F:2AE2  2B 06 11DF                           sub     ax, cursor_centroid  +273F:2AE6  73 02                                jnc     loc_604                 ; Jump if carry=0 +273F:2AE8  33 C0                                xor     ax,ax                   ; Zero register +273F:2AEA                       loc_604:                                        ;  xref 273F:2AE6 +273F:2AEA  BD 00C8                              mov     bp,0C8h +273F:2AED  2B E8                                sub     bp,ax +273F:2AEF  83 FD 11                             cmp     bp,11h +273F:2AF2  72 03                                jb      loc_605                 ; Jump if below +273F:2AF4  BD 0010                              mov     bp,10h +273F:2AF7                       loc_605:                                        ;  xref 273F:2AF2 +273F:2AF7  89 2E 11EC                           mov     data_640,bp             ; (31E4:11EC=0) +273F:2AFB  8B 36 11D6                           mov     si, mouse_x2 +273F:2AFF  2B 36 11DF                           sub     si, cursor_centroid +273F:2B03  73 02                                jnc     loc_606                 ; Jump if carry=0 +273F:2B05  33 F6                                xor     si,si                   ; Zero register +273F:2B07                       loc_606:                                        ;  xref 273F:2B03 +273F:2B07  8B CE                                mov     cx,si +273F:2B09  80 E1 07                             and     cl,7 +273F:2B0C  2E: 88 0E 2AAA                       mov     cs:data_239,cl          ; (273F:2AAA=0) +273F:2B11  B1 03                                mov     cl,3 +273F:2B13  D3 EE                                shr     si,cl                   ; Shift w/zeros fill +273F:2B15  BB 0028                              mov     bx,28h +273F:2B18  2B DE                                sub     bx,si +273F:2B1A  80 FB 04                             cmp     bl,4 +273F:2B1D  72 02                                jb      loc_607                 ; Jump if below +273F:2B1F  B3 03                                mov     bl,3 +273F:2B21                       loc_607:                                        ;  xref 273F:2B1D +273F:2B21  88 1E 11EA                           mov     data_639,bl             ; (31E4:11EA=0) +273F:2B25  8B D0                                mov     dx,ax +273F:2B27  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2B29  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2B2B  03 C2                                add     ax,dx +273F:2B2D  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2B2F  03 F0                                add     si,ax +273F:2B31  89 36 11E8                           mov     data_638,si             ; (31E4:11E8=0) +273F:2B35  32 FF                                xor     bh,bh                   ; Zero register +273F:2B37  2E: 88 1E 2AA9                       mov     cs:data_238,bl          ; (273F:2AA9=0) +273F:2B3C  2E: 89 2E 2AAB                       mov     cs:data_240,bp          ; (273F:2AAB=0) +273F:2B41  BA 03CE                              mov     dx,3CEh +273F:2B44  B8 0005                              mov     ax,5 +273F:2B47  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:2B48  B8 0007                              mov     ax,7 +273F:2B4B  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:2B4C  B0 03                                mov     al,3 +273F:2B4E  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 3, data rotate +273F:2B4F  FF 36 4CF4                           push    cursors_segment +273F:2B53  FF 36 11E1                           push    cursor_index +273F:2B57  1E                                   push    ds +273F:2B58  07                                   pop     es +273F:2B59  A1 0DB0                              mov     ax, screen_start_seg +273F:2B5C  8E D8                                mov     ds,ax +273F:2B5E  B8 0304                              mov     ax,304h +273F:2B61 úBF 11EE                              mov     di,offset data_641      ; (31E4:11EE=0) +273F:2B64                       loc_608:                                        ;  xref 273F:2B7A +273F:2B64  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 4, read map select +273F:2B65  56                                   push    si +273F:2B66  55                                   push    bp +273F:2B67                       loc_609:                                        ;  xref 273F:2B73 +273F:2B67  56                                   push    si +273F:2B68  8B CB                                mov     cx,bx +273F:2B6A  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:2B6C  5E                                   pop     si +273F:2B6D  83 C6 28                             add     si,28h +273F:2B70  83 ED 01                             sub     bp,1 +273F:2B73  75 F2                                jnz     loc_609                 ; Jump if not zero +273F:2B75  5D                                   pop     bp +273F:2B76  5E                                   pop     si +273F:2B77  80 EC 01                             sub     ah,1 +273F:2B7A  73 E8                                jnc     loc_608                 ; Jump if carry=0 +273F:2B7C  8B FE                                mov     di,si +273F:2B7E  BA 03CE                              mov     dx,3CEh +273F:2B81  B8 0805                              mov     ax,805h +273F:2B84  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:2B85  B8 0007                              mov     ax,7 +273F:2B88  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:2B89  B0 03                                mov     al,3 +273F:2B8B  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 3, data rotate +273F:2B8C  B8 FF08                              mov     ax,0FF08h +273F:2B8F  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2B90  1E                                   push    ds +273F:2B91  07                                   pop     es +273F:2B92  5E                                   pop     si +273F:2B93  B1 06                                mov     cl,6 +273F:2B95  D3 E6                                shl     si,cl                   ; Shift w/zeros fill +273F:2B97  1F                                   pop     ds +273F:2B98  87 D5                                xchg    dx,bp +273F:2B9A  2E: 8A 0E 2AAA                       mov     cl,cs:data_239          ; (273F:2AAA=0) +273F:2B9F                       loc_610:                                        ;  xref 273F:2C0A +273F:2B9F  56                                   push    si +273F:2BA0  57                                   push    di +273F:2BA1  2E: 8A 2E 2AA9                       mov     ch,cs:data_238          ; (273F:2AA9=0) +273F:2BA6  33 DB                                xor     bx,bx                   ; Zero register +273F:2BA8  33 D2                                xor     dx,dx                   ; Zero register +273F:2BAA  8A 34                                mov     dh,[si] +273F:2BAC  D3 EA                                shr     dx,cl                   ; Shift w/zeros fill +273F:2BAE  8A E6                                mov     ah,dh +273F:2BB0  B0 08                                mov     al,8 +273F:2BB2  87 D5                                xchg    dx,bp +273F:2BB4  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2BB5  87 D5                                xchg    dx,bp +273F:2BB7  8A 7C 01                             mov     bh,[si+1] +273F:2BBA  D3 EB                                shr     bx,cl                   ; Shift w/zeros fill +273F:2BBC  8A C7                                mov     al,bh +273F:2BBE  26: 8A 25                            mov     ah,es:[di] +273F:2BC1  AA                                   stosb                           ; Store al to es:[di] +273F:2BC2  80 ED 01                             sub     ch,1 +273F:2BC5  74 35                                jz      loc_612                 ; Jump if zero +273F:2BC7  8A 64 02                             mov     ah,[si+2] +273F:2BCA  32 C0                                xor     al,al                   ; Zero register +273F:2BCC  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:2BCE  0A E2                                or      ah,dl +273F:2BD0  8A D0                                mov     dl,al +273F:2BD2  87 D5                                xchg    dx,bp +273F:2BD4  B0 08                                mov     al,8 +273F:2BD6  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2BD7  8A 64 03                             mov     ah,[si+3] +273F:2BDA  32 C0                                xor     al,al                   ; Zero register +273F:2BDC  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:2BDE  0A E3                                or      ah,bl +273F:2BE0  8A D8                                mov     bl,al +273F:2BE2  8A C4                                mov     al,ah +273F:2BE4  26: 8A 25                            mov     ah,es:[di] +273F:2BE7  AA                                   stosb                           ; Store al to es:[di] +273F:2BE8  80 ED 01                             sub     ch,1 +273F:2BEB  74 0D                                jz      loc_611                 ; Jump if zero +273F:2BED  8B C5                                mov     ax,bp +273F:2BEF  8A E0                                mov     ah,al +273F:2BF1  B0 08                                mov     al,8 +273F:2BF3  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2BF4  8A C3                                mov     al,bl +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 112 + +273F:2BF6  26: 8A 25                            mov     ah,es:[di] +273F:2BF9  AA                                   stosb                           ; Store al to es:[di] +273F:2BFA                       loc_611:                                        ;  xref 273F:2BEB +273F:2BFA  87 D5                                xchg    dx,bp +273F:2BFC                       loc_612:                                        ;  xref 273F:2BC5 +273F:2BFC  5F                                   pop     di +273F:2BFD  5E                                   pop     si +273F:2BFE  83 C6 04                             add     si,4 +273F:2C01  83 C7 28                             add     di,28h +273F:2C04  2E: 83 2E 2AAB 01                    sub     cs:data_240,1           ; (273F:2AAB=0) +273F:2C0A  75 93                                jnz     loc_610                 ; Jump if not zero +273F:2C0C  87 D5                                xchg    dx,bp +273F:2C0E  B8 0005                              mov     ax,5 +273F:2C11  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:2C12  B8 0F07                              mov     ax,0F07h +273F:2C15  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:2C16  B8 FF08                              mov     ax,0FF08h +273F:2C19  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 8, data bit mask +273F:2C1A  B8 31E4                              mov     ax,data_seg +273F:2C1D  8E D8                                mov     ds,ax +273F:2C1F  80 26 11D0 FB                        and     menubar_state, 0FBh  ; (31E4:11D0=3) + +273F:2C24                       loc_ret_613:                                    ;  xref 273F:2C31 +273F:2C24  C3                                   retn + +                                ega_cursor      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:2151, 2AD5 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:2C25                       sub_67          proc    near +273F:2C25  8B 3C                                mov     di,[si] +273F:2C27  8A 5C 02                             mov     bl,[si+2] +273F:2C2A  32 FF                                xor     bh,bh                   ; Zero register +273F:2C2C  8B 6C 04                             mov     bp,[si+4] +273F:2C2F  0B ED                                or      bp,bp                   ; Zero ? +273F:2C31  74 F1                                jz      loc_ret_613             ; Jump if zero +273F:2C33  C7 44 04 0000                        mov     word ptr [si+4],0 +273F:2C38  83 C6 06                             add     si,6 +273F:2C3B  BA 03CE                              mov     dx,3CEh +273F:2C3E  B8 0805                              mov     ax,805h +273F:2C41  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 5, mode +273F:2C42  B8 0007                              mov     ax,7 +273F:2C45  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 7, ignore color bits +273F:2C46  B0 03                                mov     al,3 +273F:2C48  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +                                                                                ;  al = 3, data rotate +273F:2C49  B8 FF08                              mov     ax,0FF08h +273F:2C4C  EF                                   out     dx,ax                   ; port 3CEh, EGA graphic index +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 113 + +                                                                                ;  al = 8, data bit mask +273F:2C4D  B8 31E4                              mov     ax,data_seg +273F:2C50  8E D8                                mov     ds,ax +273F:2C52  B2 C4                                mov     dl,0C4h +273F:2C54  B8 0802                              mov     ax,802h +273F:2C57  B9 0004                              mov     cx,4 + +273F:2C5A                       locloop_614:                                    ;  xref 273F:2C70 +273F:2C5A  EF                                   out     dx,ax                   ; port 3C4h, EGA sequencr index +                                                                                ;  al = 2, map mask register +273F:2C5B  51                                   push    cx +273F:2C5C  57                                   push    di +273F:2C5D  8B CD                                mov     cx,bp + +273F:2C5F                       locloop_615:                                    ;  xref 273F:2C6A +273F:2C5F  51                                   push    cx +273F:2C60  57                                   push    di +273F:2C61  8B CB                                mov     cx,bx +273F:2C63  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:2C65  5F                                   pop     di +273F:2C66  83 C7 28                             add     di,28h +273F:2C69  59                                   pop     cx +273F:2C6A  E2 F3                                loop    locloop_615             ; Loop if cx > 0 + +273F:2C6C  5F                                   pop     di +273F:2C6D  59                                   pop     cx +273F:2C6E  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:2C70  E2 E8                                loop    locloop_614             ; Loop if cx > 0 + +273F:2C72  B4 0F                                mov     ah,0Fh +273F:2C74  EF                                   out     dx,ax                   ; port 3C4h, EGA sequencr index +                                                                                ;  al = 2, map mask register +273F:2C75  C3                                   retn +                                sub_67          endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          ega_add_animation     proc    near + +273F:2C76  8A 47 04                             mov     al,[bx+4] +273F:2C79  8A 6F 06                             mov     ch,[bx+6] +273F:2C7C  F6 E5                                mul     ch                      ; ax = reg * al +273F:2C7E  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:2C80  03 C6                                add     ax,si +273F:2C82  A3 1440                              mov     word ptr ds:[1440h],ax  ; (273F:1440=0BA00h) +273F:2C85  B8 FFFF                              mov     ax,0FFFFh +                                                assume  ds:seg_code +273F:2C88  2E: A3 1500                          mov     word ptr cs:data_215,ax ; (273F:1500=0) +273F:2C8C  2E: A3 1502                          mov     cs:data_216,ax          ; (273F:1502=0) +273F:2C90  2E: A2 1504                          mov     cs:data_217,al          ; (273F:1504=0) +273F:2C94  C6 06 11B0 00                        mov     byte ptr ds:[11B0h],0   ; (273F:11B0=0BEh) +273F:2C99  8B 47 02                             mov     ax,[bx+2] +273F:2C9C  2D 0088                              sub     ax,88h +273F:2C9F  73 2A                                jnc     loc_618                 ; Jump if carry=0 +273F:2CA1  50                                   push    ax +273F:2CA2  03 47 06                             add     ax,[bx+6] +273F:2CA5  58                                   pop     ax +273F:2CA6  74 02                                jz      loc_616                 ; Jump if zero +273F:2CA8  72 03                                jc      loc_617                 ; Jump if carry Set +273F:2CAA                       loc_616:                                        ;  xref 273F:2CA6, 2D26 +273F:2CAA  E9 02EE                              jmp     loc_ret_636             ; (2F9B) +273F:2CAD                       loc_617:                                        ;  xref 273F:2CA8 +273F:2CAD  F7 D8                                neg     ax +273F:2CAF  2A E8                                sub     ch,al +273F:2CB1  F6 67 04                             mul     byte ptr [bx+4]         ; ax = data * al +273F:2CB4  B1 03                                mov     cl,3 +273F:2CB6  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:2CB8  01 06 1440                           add     word ptr ds:[1440h],ax  ; (273F:1440=0BA00h) +273F:2CBC  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2CBE  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2CC0  03 F0                                add     si,ax +273F:2CC2  33 C0                                xor     ax,ax                   ; Zero register +273F:2CC4  C6 06 11B0 01                        mov     byte ptr ds:[11B0h],1   ; (273F:11B0=0BEh) +273F:2CC9  EB 1C                                jmp     short loc_621           ; (2CE7) +273F:2CCB                       loc_618:                                        ;  xref 273F:2C9F +273F:2CCB  3D 00C0                              cmp     ax,0C0h +273F:2CCE  72 03                                jb      loc_619                 ; Jump if below +273F:2CD0  E9 02C8                              jmp     loc_ret_636             ; (2F9B) +273F:2CD3                       loc_619:                                        ;  xref 273F:2CCE +273F:2CD3  50                                   push    ax +273F:2CD4  03 47 06                             add     ax,[bx+6] +273F:2CD7  3D 00C1                              cmp     ax,0C1h +273F:2CDA  72 0A                                jb      loc_620                 ; Jump if below +273F:2CDC  2D 00C0                              sub     ax,0C0h +273F:2CDF  2A E8                                sub     ch,al +273F:2CE1  C6 06 11B0 01                        mov     byte ptr ds:[11B0h],1   ; (273F:11B0=0BEh) +273F:2CE6                       loc_620:                                        ;  xref 273F:2CDA +273F:2CE6  58                                   pop     ax +273F:2CE7                       loc_621:                                        ;  xref 273F:2CC9 +273F:2CE7  8B D0                                mov     dx,ax +273F:2CE9  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2CEB  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2CED  03 C2                                add     ax,dx +273F:2CEF  B1 05                                mov     cl,5 +273F:2CF1  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2CF3  05 0500                              add     ax,500h +273F:2CF6  8B F8                                mov     di,ax +273F:2CF8  8B 47 04                             mov     ax,[bx+4] +273F:2CFB  B1 03                                mov     cl,3 +273F:2CFD  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:2CFF  2E: A2 1509                          mov     cs:data_220,al          ; (273F:1509=0) +273F:2D03  2E: A3 1507                          mov     cs:data_219,ax          ; (273F:1507=0) +273F:2D07  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2D09  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:2D0B  2E: A3 1505                          mov     cs:data_218,ax          ; (273F:1505=0) +273F:2D0F  8B 07                                mov     ax,[bx] +273F:2D11  8A C8                                mov     cl,al +273F:2D13  80 E1 07                             and     cl,7 +273F:2D16  89 0E 1442                           mov     word ptr ds:[1442h],cx  ; (273F:1442=1) +273F:2D1A  2D 0080                              sub     ax,80h +273F:2D1D  73 31                                jnc     loc_623                 ; Jump if carry=0 +273F:2D1F  50                                   push    ax +273F:2D20  8B 57 04                             mov     dx,[bx+4] +273F:2D23  03 C2                                add     ax,dx +273F:2D25  58                                   pop     ax +273F:2D26  74 82                                jz      loc_616                 ; Jump if zero +273F:2D28  72 03                                jc      loc_622                 ; Jump if carry Set +273F:2D2A  E9 026E                              jmp     loc_ret_636             ; (2F9B) +273F:2D2D                       loc_622:                                        ;  xref 273F:2D28 +273F:2D2D  F7 D0                                not     ax +273F:2D2F  25 FFF8                              and     ax,0FFF8h +273F:2D32  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:2D34  2E: A3 1500                          mov     word ptr cs:data_215,ax ; (273F:1500=0) +273F:2D38  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:2D3A  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:2D3C  2E: A3 1502                          mov     cs:data_216,ax          ; (273F:1502=0) +273F:2D40  04 01                                add     al,1 +273F:2D42  2E: 28 06 1509                       sub     cs:data_220,al          ; (273F:1509=0) +273F:2D47  C6 06 11B0 01                        mov     byte ptr ds:[11B0h],1   ; (273F:11B0=0BEh) +273F:2D4C  33 C0                                xor     ax,ax                   ; Zero register +273F:2D4E  EB 29                                jmp     short loc_625           ; (2D79) +273F:2D50                       loc_623:                                        ;  xref 273F:2D1D +273F:2D50  3D 0140                              cmp     ax,140h +273F:2D53  72 03                                jb      loc_624                 ; Jump if below +273F:2D55  E9 0243                              jmp     loc_ret_636             ; (2F9B) +273F:2D58                       loc_624:                                        ;  xref 273F:2D53 +273F:2D58  8B 57 04                             mov     dx,[bx+4] +273F:2D5B  03 D0                                add     dx,ax +273F:2D5D  81 EA 0140                           sub     dx,140h +273F:2D61  72 16                                jc      loc_625                 ; Jump if carry Set +273F:2D63  74 14                                jz      loc_625                 ; Jump if zero +273F:2D65  B1 03                                mov     cl,3 +273F:2D67  D3 EA                                shr     dx,cl                   ; Shift w/zeros fill +273F:2D69  2E: 28 16 1509                       sub     cs:data_220,dl          ; (273F:1509=0) +273F:2D6E  2E: C6 06 1504 00                    mov     cs:data_217,0           ; (273F:1504=0) +273F:2D74  C6 06 11B0 01                        mov     byte ptr ds:[11B0h],1   ; (273F:11B0=0BEh) +273F:2D79                       loc_625:                                        ;  xref 273F:2D4E, 2D61, 2D63 +273F:2D79  25 FFF8                              and     ax,0FFF8h +273F:2D7C  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:2D7E  03 F8                                add     di,ax +273F:2D80  8B 0E 1442                           mov     cx,word ptr ds:[1442h]  ; (273F:1442=1) +273F:2D84  80 F1 07                             xor     cl,7 +273F:2D87  80 C1 01                             add     cl,1 +273F:2D8A  8B 1E 1440                           mov     bx,word ptr ds:[1440h]  ; (273F:1440=0BA00h) +273F:2D8E  80 3E 11B0 01                        cmp     byte ptr ds:[11B0h],1   ; (273F:11B0=0BEh) +273F:2D93  75 03                                jne     loc_626                 ; Jump if not equal +273F:2D95  E9 00D9                              jmp     loc_630                 ; (2E71) +273F:2D98                       loc_626:                                        ;  xref 273F:2D93 +273F:2D98  1E                                   push    ds +273F:2D99  06                                   push    es +273F:2D9A  A1 4CE4                              mov     ax, data_segment2 +273F:2D9D  8E C0                                mov     es,ax +273F:2D9F  1F                                   pop     ds +273F:2DA0                       loc_627:                                        ;  xref 273F:2E6B +273F:2DA0 ú32 D2                                xor     dl,dl                   ; Zero register +273F:2DA2  2E: 88 16 2058                       mov     cs:data_233,dl          ; (273F:2058=0) +273F:2DA7  2E: 88 16 2059                       mov     cs:data_234,dl          ; (273F:2059=0) +273F:2DAC  2E: 88 16 205A                       mov     cs:data_235,dl          ; (273F:205A=0) +273F:2DB1  2E: 88 16 205B                       mov     cs:data_236,dl          ; (273F:205B=0) +273F:2DB6  F6 D2                                not     dl +273F:2DB8  51                                   push    cx +273F:2DB9  57                                   push    di +273F:2DBA  2E: 8A 2E 1509                       mov     ch,cs:data_220          ; (273F:1509=0) +273F:2DBF                       loc_628:                                        ;  xref 273F:2E2D +273F:2DBF  33 C0                                xor     ax,ax                   ; Zero register +273F:2DC1  8A 07                                mov     al,[bx] +273F:2DC3  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2DC5  F7 D0                                not     ax +273F:2DC7  22 E2                                and     ah,dl +273F:2DC9  8B D0                                mov     dx,ax +273F:2DCB  AC                                   lodsb                           ; String [si] to al +273F:2DCC  32 E4                                xor     ah,ah                   ; Zero register +273F:2DCE  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2DD0  2E: 0A 26 2058                       or      ah,cs:data_233          ; (273F:2058=0) +273F:2DD5  2E: A2 2058                          mov     cs:data_233,al          ; (273F:2058=0) +273F:2DD9  26: 20 35                            and     es:[di],dh +273F:2DDC  26: 08 25                            or      es:[di],ah +273F:2DDF  83 C7 01                             add     di,1 +273F:2DE2  AC                                   lodsb                           ; String [si] to al +273F:2DE3  32 E4                                xor     ah,ah                   ; Zero register +273F:2DE5  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2DE7  2E: 0A 26 2059                       or      ah,cs:data_234          ; (273F:2059=0) +273F:2DEC  2E: A2 2059                          mov     cs:data_234,al          ; (273F:2059=0) +273F:2DF0  26: 20 35                            and     es:[di],dh +273F:2DF3  26: 08 25                            or      es:[di],ah +273F:2DF6  83 C7 01                             add     di,1 +273F:2DF9  AC                                   lodsb                           ; String [si] to al +273F:2DFA  32 E4                                xor     ah,ah                   ; Zero register +273F:2DFC  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2DFE  2E: 0A 26 205A                       or      ah,cs:data_235          ; (273F:205A=0) +273F:2E03  2E: A2 205A                          mov     cs:data_235,al          ; (273F:205A=0) +273F:2E07  26: 20 35                            and     es:[di],dh +273F:2E0A  26: 08 25                            or      es:[di],ah +273F:2E0D  83 C7 01                             add     di,1 +273F:2E10  AC                                   lodsb                           ; String [si] to al +273F:2E11  32 E4                                xor     ah,ah                   ; Zero register +273F:2E13  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2E15  2E: 0A 26 205B                       or      ah,cs:data_236          ; (273F:205B=0) +273F:2E1A  2E: A2 205B                          mov     cs:data_236,al          ; (273F:205B=0) +273F:2E1E  26: 20 35                            and     es:[di],dh +273F:2E21  26: 08 25                            or      es:[di],ah +273F:2E24  83 C7 01                             add     di,1 +273F:2E27  83 C3 01                             add     bx,1 +273F:2E2A  80 ED 01                             sub     ch,1 +273F:2E2D  75 90                                jnz     loc_628                 ; Jump if not zero +273F:2E2F  2E: A0 2058                          mov     al,cs:data_233          ; (273F:2058=0) +273F:2E33  26: 20 15                            and     es:[di],dl +273F:2E36  26: 08 05                            or      es:[di],al +273F:2E39  83 C7 01                             add     di,1 +273F:2E3C  2E: A0 2059                          mov     al,cs:data_234          ; (273F:2059=0) +273F:2E40  26: 20 15                            and     es:[di],dl +273F:2E43  26: 08 05                            or      es:[di],al +273F:2E46  83 C7 01                             add     di,1 +273F:2E49  2E: A0 205A                          mov     al,cs:data_235          ; (273F:205A=0) +273F:2E4D  26: 20 15                            and     es:[di],dl +273F:2E50  26: 08 05                            or      es:[di],al +273F:2E53  83 C7 01                             add     di,1 +273F:2E56  2E: A0 205B                          mov     al,cs:data_236          ; (273F:205B=0) +273F:2E5A  26: 20 15                            and     es:[di],dl +273F:2E5D  26: 08 05                            or      es:[di],al +273F:2E60  5F                                   pop     di +273F:2E61 ú81 C7 00A0                           add     di,data_1460e           ; (FF12:00A0=0) +273F:2E65  59                                   pop     cx +273F:2E66  80 ED 01                             sub     ch,1 +273F:2E69  74 03                                jz      loc_629                 ; Jump if zero +273F:2E6B  E9 FF32                              jmp     loc_627                 ; (2DA0) +273F:2E6E                       loc_629:                                        ;  xref 273F:2E69 +273F:2E6E  E9 0129                              jmp     loc_635                 ; (2F9A) +273F:2E71                       loc_630:                                        ;  xref 273F:2D95 +273F:2E71  1E                                   push    ds +273F:2E72  06                                   push    es +273F:2E73  A1 4CE4                              mov     ax, data_segment2 +273F:2E76  8E C0                                mov     es,ax +273F:2E78  1F                                   pop     ds +273F:2E79                       loc_631:                                        ;  xref 273F:2F97 +273F:2E79 ú32 D2                                xor     dl,dl                   ; Zero register +273F:2E7B  2E: 88 16 2058                       mov     cs:data_233,dl          ; (273F:2058=0) +273F:2E80  2E: 88 16 2059                       mov     cs:data_234,dl          ; (273F:2059=0) +273F:2E85  2E: 88 16 205A                       mov     cs:data_235,dl          ; (273F:205A=0) +273F:2E8A  2E: 88 16 205B                       mov     cs:data_236,dl          ; (273F:205B=0) +273F:2E8F  F6 D2                                not     dl +273F:2E91  51                                   push    cx +273F:2E92  53                                   push    bx +273F:2E93  56                                   push    si +273F:2E94  57                                   push    di +273F:2E95  2E: 8A 2E 1509                       mov     ch,cs:data_220          ; (273F:1509=0) +273F:2E9A  2E: F7 06 1500 0080                  test    word ptr cs:data_215,80h ; (273F:1500=0) +273F:2EA1  75 34                                jnz     loc_632                 ; Jump if not zero +273F:2EA3  2E: 03 36 1500                       add     si,word ptr cs:data_215 ; (273F:1500=0) +273F:2EA8  2E: 03 1E 1502                       add     bx,cs:data_216          ; (273F:1502=0) +273F:2EAD  8A 17                                mov     dl,[bx] +273F:2EAF  D3 E2                                shl     dx,cl                   ; Shift w/zeros fill +273F:2EB1  F6 D2                                not     dl +273F:2EB3  83 C3 01                             add     bx,1 +273F:2EB6  AC                                   lodsb                           ; String [si] to al +273F:2EB7  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2EB9  2E: A2 2058                          mov     cs:data_233,al          ; (273F:2058=0) +273F:2EBD  AC                                   lodsb                           ; String [si] to al +273F:2EBE  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2EC0  2E: A2 2059                          mov     cs:data_234,al          ; (273F:2059=0) +273F:2EC4  AC                                   lodsb                           ; String [si] to al +273F:2EC5  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2EC7  2E: A2 205A                          mov     cs:data_235,al          ; (273F:205A=0) +273F:2ECB  AC                                   lodsb                           ; String [si] to al +273F:2ECC  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2ECE  2E: A2 205B                          mov     cs:data_236,al          ; (273F:205B=0) +273F:2ED2  F6 C5 FF                             test    ch,0FFh +273F:2ED5  74 78                                jz      loc_633                 ; Jump if zero +273F:2ED7                       loc_632:                                        ;  xref 273F:2EA1, 2F45 +273F:2ED7  33 C0                                xor     ax,ax                   ; Zero register +273F:2ED9  8A 07                                mov     al,[bx] +273F:2EDB  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2EDD  F7 D0                                not     ax +273F:2EDF  22 E2                                and     ah,dl +273F:2EE1  8B D0                                mov     dx,ax +273F:2EE3  AC                                   lodsb                           ; String [si] to al +273F:2EE4  32 E4                                xor     ah,ah                   ; Zero register +273F:2EE6  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2EE8  2E: 0A 26 2058                       or      ah,cs:data_233          ; (273F:2058=0) +273F:2EED  2E: A2 2058                          mov     cs:data_233,al          ; (273F:2058=0) +273F:2EF1  26: 20 35                            and     es:[di],dh +273F:2EF4  26: 08 25                            or      es:[di],ah +273F:2EF7  83 C7 01                             add     di,1 +273F:2EFA  AC                                   lodsb                           ; String [si] to al +273F:2EFB  32 E4                                xor     ah,ah                   ; Zero register +273F:2EFD  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2EFF  2E: 0A 26 2059                       or      ah,cs:data_234          ; (273F:2059=0) +273F:2F04  2E: A2 2059                          mov     cs:data_234,al          ; (273F:2059=0) +273F:2F08  26: 20 35                            and     es:[di],dh +273F:2F0B  26: 08 25                            or      es:[di],ah +273F:2F0E  83 C7 01                             add     di,1 +273F:2F11  AC                                   lodsb                           ; String [si] to al +273F:2F12  32 E4                                xor     ah,ah                   ; Zero register +273F:2F14  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2F16  2E: 0A 26 205A                       or      ah,cs:data_235          ; (273F:205A=0) +273F:2F1B  2E: A2 205A                          mov     cs:data_235,al          ; (273F:205A=0) +273F:2F1F  26: 20 35                            and     es:[di],dh +273F:2F22  26: 08 25                            or      es:[di],ah +273F:2F25  83 C7 01                             add     di,1 +273F:2F28  AC                                   lodsb                           ; String [si] to al +273F:2F29  32 E4                                xor     ah,ah                   ; Zero register +273F:2F2B  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:2F2D  2E: 0A 26 205B                       or      ah,cs:data_236          ; (273F:205B=0) +273F:2F32  2E: A2 205B                          mov     cs:data_236,al          ; (273F:205B=0) +273F:2F36  26: 20 35                            and     es:[di],dh +273F:2F39  26: 08 25                            or      es:[di],ah +273F:2F3C  83 C7 01                             add     di,1 +273F:2F3F  83 C3 01                             add     bx,1 +273F:2F42  80 ED 01                             sub     ch,1 +273F:2F45  75 90                                jnz     loc_632                 ; Jump if not zero +273F:2F47  2E: F6 06 1504 FF                    test    cs:data_217,0FFh        ; (273F:1504=0) +273F:2F4D  74 31                                jz      loc_634                 ; Jump if zero +273F:2F4F                       loc_633:                                        ;  xref 273F:2ED5 +273F:2F4F  2E: A0 2058                          mov     al,cs:data_233          ; (273F:2058=0) +273F:2F53  26: 20 15                            and     es:[di],dl +273F:2F56  26: 08 05                            or      es:[di],al +273F:2F59  83 C7 01                             add     di,1 +273F:2F5C  2E: A0 2059                          mov     al,cs:data_234          ; (273F:2059=0) +273F:2F60  26: 20 15                            and     es:[di],dl +273F:2F63  26: 08 05                            or      es:[di],al +273F:2F66  83 C7 01                             add     di,1 +273F:2F69  2E: A0 205A                          mov     al,cs:data_235          ; (273F:205A=0) +273F:2F6D  26: 20 15                            and     es:[di],dl +273F:2F70  26: 08 05                            or      es:[di],al +273F:2F73  83 C7 01                             add     di,1 +273F:2F76  2E: A0 205B                          mov     al,cs:data_236          ; (273F:205B=0) +273F:2F7A  26: 20 15                            and     es:[di],dl +273F:2F7D  26: 08 05                            or      es:[di],al +273F:2F80                       loc_634:                                        ;  xref 273F:2F4D +273F:2F80  5F                                   pop     di +273F:2F81 ú81 C7 00A0                           add     di,data_1460e           ; (FF12:00A0=0) +273F:2F85  5E                                   pop     si +273F:2F86  2E: 03 36 1505                       add     si,cs:data_218          ; (273F:1505=0) +273F:2F8B  5B                                   pop     bx +273F:2F8C  2E: 03 1E 1507                       add     bx,cs:data_219          ; (273F:1507=0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 119 + +273F:2F91  59                                   pop     cx +273F:2F92  80 ED 01                             sub     ch,1 +273F:2F95  74 03                                jz      loc_635                 ; Jump if zero +273F:2F97  E9 FEDF                              jmp     loc_631                 ; (2E79) +273F:2F9A                       loc_635:                                        ;  xref 273F:2E6E, 2F95 +273F:2F9A  1F                                   pop     ds + +273F:2F9B                       loc_ret_636:                                    ;  xref 273F:2CAA, 2CD0, 2D2A, 2D55 +273F:2F9B  C3                                   retn +273F:2F9C                       loc_637:                                        ;  xref 273F:8E45 +273F:2F9C úD1 EF                                shr     di,1                    ; Shift w/zeros fill +273F:2F9E  D1 EB                                shr     bx,1                    ; Shift w/zeros fill +273F:2FA0  D1 EB                                shr     bx,1                    ; Shift w/zeros fill +273F:2FA2  D1 EB                                shr     bx,1                    ; Shift w/zeros fill +273F:2FA4  A1 4CE4                              mov     ax, data_segment2 +273F:2FA7  8E C0                                mov     es,ax +273F:2FA9  BA 0008                              mov     dx,8 +273F:2FAC                       loc_638:                                        ;  xref 273F:2FC2 +273F:2FAC  57                                   push    di +273F:2FAD  8B CB                                mov     cx,bx + +273F:2FAF                       locloop_639:                                    ;  xref 273F:2FBA +273F:2FAF  26: 8A 45 02                         mov     al,es:[di+2] +273F:2FB3  26: 30 45 01                         xor     es:[di+1],al +273F:2FB7  83 C7 04                             add     di,4 +273F:2FBA  E2 F3                                loop    locloop_639             ; Loop if cx > 0 + +273F:2FBC  5F                                   pop     di +273F:2FBD ú81 C7 00A0                           add     di,data_68e             ; (0031:00A0=0) +273F:2FC1  4A                                   dec     dx +273F:2FC2  75 E8                                jnz     loc_638                 ; Jump if not zero +273F:2FC4  C3                                   retn + +                          ega_add_animation     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:2081 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:2FC5                       sub_68          proc    near +273F:2FC5  1E                                   push    ds +273F:2FC6  A1 4CE4                              mov     ax, data_segment2 +273F:2FC9  8E D8                                mov     ds,ax +273F:2FCB  33 F6                                xor     si,si                   ; Zero register +273F:2FCD  33 FF                                xor     di,di                   ; Zero register +273F:2FCF  B8 0802                              mov     ax,802h +273F:2FD2  B9 0004                              mov     cx,4 + +273F:2FD5                       locloop_640:                                    ;  xref 273F:2FEA +273F:2FD5  51                                   push    cx +273F:2FD6  56                                   push    si +273F:2FD7  57                                   push    di +273F:2FD8  EF                                   out     dx,ax                   ; port 3C4h, EGA sequencr index +                                                                                ;  al = 2, map mask register +273F:2FD9  B9 0140                              mov     cx,140h + +273F:2FDC                       locloop_641:                                    ;  xref 273F:2FE0 +273F:2FDC  A4                                   movsb                           ; Mov [si] to es:[di] +273F:2FDD  83 C6 03                             add     si,3 +273F:2FE0  E2 FA                                loop    locloop_641             ; Loop if cx > 0 + +273F:2FE2  5F                                   pop     di +273F:2FE3  5E                                   pop     si +273F:2FE4  83 C6 01                             add     si,1 +273F:2FE7  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:2FE9  59                                   pop     cx +273F:2FEA  E2 E9                                loop    locloop_640             ; Loop if cx > 0 + +273F:2FEC  1F                                   pop     ds +273F:2FED  80 2E 4BF0 01                        sub     byte ptr ds:[4BF0h],1   ; (273F:4BF0=3) +273F:2FF2  C3                                   retn +                                sub_68          endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                  ega_toggle_menu_highlight     proc    near + +273F:2FF3  D1 EF                                shr     di,1                    ; Shift w/zeros fill +273F:2FF5  83 E7 FC                             and     di,0FFFCh +273F:2FF8  B1 03                                mov     cl,3 +273F:2FFA  83 C3 07                             add     bx,7 +273F:2FFD  D3 EB                                shr     bx,cl                   ; Shift w/zeros fill +273F:2FFF  A1 4CE4                              mov     ax, data_segment2 +273F:3002  8E C0                                mov     es,ax +273F:3004  BA 0008                              mov     dx,8 +273F:3007                       loc_642:                                        ;  xref 273F:3022 +273F:3007  57                                   push    di +273F:3008  8B CB                                mov     cx,bx + +273F:300A                       locloop_643:                                    ;  xref 273F:301A +273F:300A  26: 8A 05                            mov     al,es:[di] +273F:300D  F6 D0                                not     al +273F:300F  26: 30 45 01                         xor     es:[di+1],al +273F:3013  26: 30 45 02                         xor     es:[di+2],al +273F:3017  83 C7 04                             add     di,4 +273F:301A  E2 EE                                loop    locloop_643             ; Loop if cx > 0 + +273F:301C  5F                                   pop     di +273F:301D  81 C7 00A0                           add     di,0A0h +273F:3021  4A                                   dec     dx +273F:3022  75 E3                                jnz     loc_642                 ; Jump if not zero +273F:3024  C3                                   retn + +                  ega_toggle_menu_highlight     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:90CB +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3025                       sub_69          proc    near +273F:3025  1E                                   push    ds +273F:3026  A1 4CE4                              mov     ax, data_segment2 +273F:3029  8E C0                                mov     es,ax +273F:302B úBF 1F48                              mov     di,data_1407e           ; (44E4:1F48=0) +273F:302E  B8 44E4                              mov     ax, ega_talk_frame_seg +273F:3031  8E D8                                mov     ds,ax +273F:3033 úBE 0030                              mov     si,offset data_1405     ; (44E4:0030=3Fh) +273F:3036  BB 0020                              mov     bx,20h +273F:3039  E8 F417                              call    sub_63                  ; (2453) +273F:303C  E8 F414                              call    sub_63                  ; (2453) +273F:303F  E8 F411                              call    sub_63                  ; (2453) +273F:3042 úBE 000C                              mov     si,offset data_1404     ; (44E4:000C=0) +273F:3045  E8 F40B                              call    sub_63                  ; (2453) +273F:3048  E8 F408                              call    sub_63                  ; (2453) +273F:304B  1F                                   pop     ds +273F:304C  C3                                   retn +                                sub_69          endp + +273F:304D  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:304E                    vga_show_screen    proc    near + +273F:304E 80 0E 11D0 02                         or      menubar_state, 2 +273F:3053 E8FD06                                call    sub_unknown_1 + +273F:3056 F6 06 4BF0 FF                         test    byte ptr [4BF0h], 0ffh +273F:305B 74 03                                 jz      vga_loc_1 +273F:305D E8 0F 09                              call    menubar_copy_to_screen +273F:3060 BE 0A00             vga_loc_1:        mov     si, MENUBAR_BLOCK_SIZE  ; Set SI and DI to after menubar area +273F:3063 8B FE                                 mov     di, si +273F:3065 B9 060A                               mov     cx, 060Ah               ; 10x6 sets of 32x32 rectangles +273F:3068 8C DA                                 mov     dx, ds                  ; Make a backup of DS +273F:306A A1 0DB0                               mov     ax, screen_start_seg +273F:306D 8E C0                                 mov     es, ax +273F:306F BB DC 07                              mov     bx, offset display_mask + +273F:3072                       loc_644: +273F:3072  F6 07 01                             test    byte ptr [bx],1         ; Is bit 0 turned on? +273F:3075  74 23                                jz      loc_646                 ; No, so jump +273F:3077  80 27 FE                             and     byte ptr [bx],0FEh      ; Clear bit 0 + +; The following code copies a rectangle from (x+0,y+0) - (x+31,y+31) from data_segment2 to screen_start_seg + +273F:307A  57                                   push    di +273F:307B  51                                   push    cx +273F:307C  A1 4CE4                              mov     ax, data_segment2       ; Get screen source from data_segment2 +273F:307F  8E D8                                mov     ds, ax +273F:3081  B8 0020                              mov     ax,20h                  ; Number of lines +273F:3084                       loc_645: +273F:3084  B9 0010                              mov     cx,10h                  ; Rep when cx >0 Mov [si] to es:[di] +273F:3087  F3/ A5                               rep     movsw                   ;  (moves first 32 pixels of line) +273F:3089  81 C6 0120                           add     si,120h                 ; Move to start of next line +273F:308D  81 C7 0120                           add     di,120h +273F:3091  2D 0001                              sub     ax,1                    ; Decrement number of lines to do +273F:3094  75 EE                                jnz     loc_645                 ; Jump if not zero +273F:3096  8E DA                                mov     ds,dx                   ; Restore data segment +273F:3098  59                                   pop     cx +273F:3099  5F                                   pop     di + +273F:309A                       loc_646: +273F:309A  83 C7 20                             add     di,20h                  ; Move to next rectangle position +273F:309D  8B F7                                mov     si,di                   ; Match source to destination +273F:309F  83 C3 01                             add     bx,1                    ; Move to next mask position +273F:30A2  80 E9 01                             sub     cl,1                    ; Subtract remaining horiz blocks +273F:30A5  75 CB                                jnz     loc_644                 ; Jump if not yet end of line +273F:30A7  81 C7 26C0                           add     di,26C0h                ; Reset soruce/dest to start of next +273F:30AB  8B F7                                mov     si,di                   ;   rect vertically at start of line +273F:30AD  83 C3 08                             add     bx,8 +273F:30B0  B1 0A                                mov     cl,0Ah                  ; Number of horizontal rectangles +273F:30B2  80 ED 01                             sub     ch,1                    ; Decrement remaining vertical rectangles +273F:30B5  75 BB                                jnz     loc_644                 ; Jump if not done + +273F:30B7  E8 0704                              call    sub_73                  ; (37BE) +273F:30BA  A1 11D6                              mov     ax, mouse_x2 +273F:30BD  39 06 11D1                           cmp     mouse_x, ax +273F:30C1  75 09                                jne     loc_647                 ; Jump if not equal +273F:30C3  A1 11D8                              mov     ax, mouse_y2 +273F:30C6  39 06 11D3                           cmp     mouse_y, ax +273F:30CA  74 10                                je      loc_648                 ; Jump if equal +273F:30CC                       loc_647:                                        ;  xref 273F:30C1 +273F:30CC  A1 11D1                              mov     ax, mouse_x +273F:30CF  A3 11D6                              mov     mouse_x2, ax +273F:30D2  A1 11D3                              mov     ax, mouse_y +273F:30D5  A3 11D8                              mov     mouse_y2, ax +273F:30D8  FF 16 075E                           call    word ptr ds:data_18e    ; (0000:075E=0) +273F:30DC                       loc_648:                                        ;  xref 273F:30CA +273F:30DC  80 26 11D0 FD                        and     byte ptr ds:data_26e,0FDh ; (0000:11D0=80h) + +273F:30E1                       loc_ret_649:                                    ;  xref 273F:30EC +273F:30E1  C3                                   retn + +                             vga_show_screen    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [fade_out_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +273F:30E2                    vga_fade_out       proc    near +273F:30E2  80 26 11D0 CF                        and     menubar_state, 0CFh ; (273F:11D0=56h) +273F:30E7  F6 06 073C 20                        test    byte ptr ds:[73Ch],20h  ; (273F:073C=17h) ' ' +273F:30EC  75 F3                                jnz     loc_ret_649             ; Jump if not zero +273F:30EE  80 0E 073C 20                        or      byte ptr ds:[73Ch],20h  ; (273F:073C=17h) ' ' + +273F:30F3 úBE 1457                              mov     si, offset unprocessed_vga_palette +273F:30F6 úBF 0DB5                              mov     di, offset processed_vga_palette +273F:30F9  1E                                   push    ds +273F:30FA  07                                   pop     es +273F:30FB  B9 0156                              mov     cx,156h +273F:30FE  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3100  B9 0040                              mov     cx,40h + +273F:3103                       locloop_650:                                    ;  xref 273F:3156 +273F:3103  51                                   push    cx +273F:3104 úBB 0DB5                              mov     bx, offset processed_vga_palette +273F:3107  B9 00E4                              mov     cx,0E4h + +273F:310A                       locloop_651:                                    ;  xref 273F:3129 +273F:310A  F6 07 3F                             test    byte ptr [bx],3Fh       ; '?' +273F:310D  74 03                                jz      loc_652                 ; Jump if zero +273F:310F  80 2F 01                             sub     byte ptr [bx],1 +273F:3112                       loc_652:                                        ;  xref 273F:310D +273F:3112  F6 47 01 3F                          test    byte ptr [bx+1],3Fh     ; '?' +273F:3116  74 04                                jz      loc_653                 ; Jump if zero +273F:3118  80 6F 01 01                          sub     byte ptr [bx+1],1 +273F:311C                       loc_653:                                        ;  xref 273F:3116 +273F:311C  F6 47 02 3F                          test    byte ptr [bx+2],3Fh     ; '?' +273F:3120  74 04                                jz      loc_654                 ; Jump if zero +273F:3122  80 6F 02 01                          sub     byte ptr [bx+2],1 +273F:3126                       loc_654:                                        ;  xref 273F:3120 +273F:3126  83 C3 03                             add     bx,3 +273F:3129  E2 DF                                loop    locloop_651             ; Loop if cx > 0 + +273F:312B  E8 002B                              call    wait_for_video_port     ; (3159) +273F:312E  56                                   push    si +273F:312F  32 C0                                xor     al,al                   ; Zero register +273F:3131  BA 03C8                              mov     dx,3C8h +273F:3134  EE                                   out     dx,al                   ; port 3C8h, VGA pel address +273F:3135  42                                   inc     dx +273F:3136 úBE 0DB5                              mov     si, offset processed_vga_palette +273F:3139  B9 0156                              mov     cx,156h + +273F:313C                       locloop_655:                                    ;  xref 273F:313E +273F:313C  AC                                   lodsb                           ; String [si] to al +273F:313D  EE                                   out     dx,al                   ; port 3C9h, VGA pel data reg +273F:313E  E2 FC                                loop    locloop_655             ; Loop if cx > 0 + +273F:3140  E8 0016                              call    wait_for_video_port     ; (3159) +273F:3143  B0 72                                mov     al,72h                  ; 'r' +273F:3145  BA 03C8                              mov     dx,3C8h +273F:3148  EE                                   out     dx,al                   ; port 3C8h, VGA pel address +273F:3149  42                                   inc     dx +273F:314A úBE 0F0B                              mov     si, offset processed_vga_palette + 156h +273F:314D  B9 0156                              mov     cx,156h + +273F:3150                       locloop_656:                                    ;  xref 273F:3152 +273F:3150  AC                                   lodsb                           ; String [si] to al +273F:3151  EE                                   out     dx,al                   ; port 3C9h, VGA pel data reg +273F:3152  E2 FC                                loop    locloop_656             ; Loop if cx > 0 + +273F:3154  5E                                   pop     si +273F:3155  59                                   pop     cx +273F:3156  E2 AB                                loop    locloop_650             ; Loop if cx > 0 + +273F:3158  C3                                   retn +                             vga_fade_out       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:312B, 3140, 31A5, 31BA, 3C86 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3159              wait_for_video_port      proc    near +273F:3159  50                                   push    ax +273F:315A  06                                   push    es +273F:315B  52                                   push    dx +273F:315C  B8 0040                              mov     ax,40h +273F:315F  8E C0                                mov     es,ax +273F:3161  26: 8B 16 0063                       mov     dx,es:video_port        ; (0040:0063=3D4h) +273F:3166  80 C2 06                             add     dl,6 +273F:3169                       loc_657:                                        ;  xref 273F:316C +273F:3169  EC                                   in      al,dx                   ; port 3DAh, CGA/EGA vid status +273F:316A  A8 08                                test    al,8 +273F:316C  74 FB                                jz      loc_657                 ; Jump if zero +273F:316E                       loc_658:                                        ;  xref 273F:3171 +273F:316E  EC                                   in      al,dx                   ; port 3DAh, CGA/EGA vid status +273F:316F  A8 08                                test    al,8 +273F:3171  75 FB                                jnz     loc_658                 ; Jump if not zero +273F:3173  5A                                   pop     dx +273F:3174  07                                   pop     es +273F:3175  58                                   pop     ax +273F:3176  C3                                   retn +                       wait_for_video_port      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [fade_in_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                vga_fade_in     proc    near +273F:3177  80 26 073C DF                        and     byte ptr ds:[73Ch],0DFh ; (273F:073C=17h) +273F:317C  1E                                   push    ds +273F:317D  07                                   pop     es +273F:317E úBF 0DB5                              mov     di, offset processed_vga_palette +273F:3181  B9 0156                              mov     cx, 156h                ; Only first 228 palette entries used +273F:3184  33 C0                                xor     ax,ax                   ; Zero register +273F:3186  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] + +273F:3188 úBE 0DB5                              mov     si, offset processed_vga_palette +273F:318B úBF 1457                              mov     di, offset unprocessed_vga_palette +273F:318E  B9 0040                              mov     cx,40h                  ; Number of fade-in increments + +273F:3191                       locloop_659: +273F:3191  51                                   push    cx +273F:3192  B9 02AC                              mov     cx,2ACh                 ; 228*3 (each paleete entry is 3 bytes) +273F:3195  33 DB                                xor     bx,bx +; Update the RGB components of each palette entry by 1 unless a colour has already reached it's final value +273F:3197                       locloop_660: +273F:3197  8A 00                                mov     al,[bx+si]              ; Get in current palette intensity +273F:3199  3A 01                                cmp     al,[bx+di]              ; Has it reached final intensity? +273F:319B  74 03                                je      loc_661                 ; Jump if equal +273F:319D  80 00 01                             add     byte ptr [bx+si],1      ; Increment the intensity +273F:31A0                       loc_661: +273F:31A0  83 C3 01                             add     bx,1 +273F:31A3  E2 F2                                loop    locloop_660             ; Loop if cx > 0 + +273F:31A5  E8 FFB1                              call    wait_for_video_port     ; (3159) +273F:31A8  56                                   push    si +273F:31A9  32 C0                                xor     al,al                   ; Zero register +273F:31AB  BA 03C8                              mov     dx,3C8h +273F:31AE  EE                                   out     dx,al                   ; port 3C8h, VGA pel address +273F:31AF  42                                   inc     dx +; Output the first half ot the new set of palette entries +273F:31B0 úBE 0DB5                              mov     si,0DB5h                ; (273F:0DB5=0C7h) +273F:31B3  B9 0156                              mov     cx,156h +273F:31B6                       locloop_662:                                    ;  xref 273F:31B8 +273F:31B6  AC                                   lodsb                           ; String [si] to al +273F:31B7  EE                                   out     dx,al                   ; port 3C9h, VGA pel data reg +273F:31B8  E2 FC                                loop    locloop_662             ; Loop if cx > 0 + +273F:31BA  E8 FF9C                              call    wait_for_video_port     ; (3159) +273F:31BD  B0 72                                mov     al,72h                  ; 'r' +273F:31BF  BA 03C8                              mov     dx,3C8h +273F:31C2  EE                                   out     dx,al                   ; port 3C8h, VGA pel address +273F:31C3  42                                   inc     dx + +; Output the second half ot the new set of palette entries +273F:31C4 úBE 0F0B                              mov     si, offset processed_vga_palette + 156h +273F:31C7  B9 0156                              mov     cx,156h +273F:31CA                       locloop_663:                                    ;  xref 273F:31CC +273F:31CA  AC                                   lodsb                           ; String [si] to al +273F:31CB  EE                                   out     dx,al                   ; port 3C9h, VGA pel data reg +273F:31CC  E2 FC                                loop    locloop_663             ; Loop if cx > 0 + +; Loop for remaining increments of fade-in sequence +273F:31CE  5E                                   pop     si +273F:31CF  59                                   pop     cx +273F:31D0  E2 BF                                loop    locloop_659             ; Loop if cx > 0 + +273F:31D2  C3                                   retn +                                vga_fade_in     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:312B, 3140, 31A5, 31BA, 3C86 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                        vga_set_lower_palette   proc    near + +273F:31D3  80 26 073C DF                        and     byte ptr ds:[73Ch],0DFh ; (273F:073C=17h) +273F:31D8  1E                                   push    ds +273F:31D9  07                                   pop     es +273F:31DA úBA 1457                              mov     dx,offset unprocessed_vga_palette +273F:31DD  B8 1012                              mov     ax,1012h +273F:31E0  BB 0000                              mov     bx,0 +273F:31E3  B9 00E4                              mov     cx,0E4h +273F:31E6  CD 10                                int     10h                     ; Video display   ah=functn 10h +                                                                                ;  set cx color registers from +                                                                                ;   ptr es:dx, bx=first reg +273F:31E8  C3                                   retn + +                        vga_set_lower_palette   endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:312B, 3140, 31A5, 31BA, 3C86 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          vga_empty_palette     proc    near + +273F:31E9  80 0E 073C 20                        or      byte ptr ds:[73Ch],20h +273F:31EE  1E                                   push    ds +273F:31EF  07                                   pop     es +273F:31F0 úBF 0DB5                              mov     di, offset processed_vga_palette +273F:31F3  B9 0156                              mov     cx,156h +273F:31F6  33 C0                                xor     ax,ax                   ; Zero register +273F:31F8  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:31FA úBA 0DB5                              mov     dx, offset processed_vga_palette +273F:31FD  B8 1012                              mov     ax,1012h +273F:3200  BB 0000                              mov     bx,0 +273F:3203  B9 00E4                              mov     cx,0E4h +273F:3206  CD 10                                int     10h                     ; Video display   ah=functn 10h +                                                                                ;  set cx color registers from +                                                                                ;   ptr es:dx, bx=first reg +273F:3208  C3                                   retn + +                          vga_empty_palette     endp + +                     vga_display2_character     proc    near +273F:3209  1E                                   push    ds +273F:320A  57                                   push    di +273F:320B  56                                   push    si +273F:320C  98                                   cbw                             ; Convrt byte to word +273F:320D  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:320F  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:3211  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:3213  8B F0                                mov     si,ax +273F:3215  8B 16 4CF0                           mov     dx, font2_segment +273F:3219  8E DA                                mov     ds,dx +273F:321B  AC                                   lodsb                           ; String [si] to al +273F:321C  32 E4                                xor     ah,ah                   ; Zero register +273F:321E  50                                   push    ax +273F:321F  B2 07                                mov     dl,7 +273F:3221                       loc_664:                                        ;  xref 273F:3239 +273F:3221  AC                                   lodsb                           ; String [si] to al +273F:3222  B9 0008                              mov     cx,8 + +273F:3225                       locloop_665:                                    ;  xref 273F:322F +273F:3225  D0 E0                                shl     al,1                    ; Shift w/zeros fill +273F:3227  73 03                                jnc     loc_666                 ; Jump if carry=0 +273F:3229  26: 88 3D                            mov     es:[di],bh +273F:322C                       loc_666:                                        ;  xref 273F:3227 +273F:322C  83 C7 01                             add     di,1 +273F:322F  E2 F4                                loop    locloop_665             ; Loop if cx > 0 + +273F:3231  03 FD                                add     di,bp +273F:3233  83 EF 08                             sub     di,8 +273F:3236  80 EA 01                             sub     dl,1 +273F:3239  75 E6                                jnz     loc_664                 ; Jump if not zero +273F:323B  58                                   pop     ax +273F:323C  5E                                   pop     si +273F:323D  5F                                   pop     di +273F:323E  1F                                   pop     ds +273F:323F  03 F8                                add     di,ax +273F:3241  C3                                   retn +                     vga_display2_character     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                            vga_talk_dialog     proc    near +273F:3242  1E                                   push    ds +273F:3243  A1 11C0                              mov     ax, talk_dialog_top +273F:3246  50                                   push    ax +273F:3247  05 0008                              add     ax, 8 +273F:324A  8B D0                                mov     dx, ax +273F:324C  D1 E2                                shl     dx, 1                   ; Shift w/zeros fill +273F:324E  D1 E2                                shl     dx, 1                   ; Shift w/zeros fill +273F:3250  03 C2                                add     ax, dx +273F:3252  B1 06                                mov     cl, 6 +273F:3254  D3 E0                                shl     ax, cl                  ; Shift w/zeros fill +273F:3256  8B F8                                mov     di, ax +273F:3258  03 3E 11C2                           add     di, talk_dialog_left +273F:325C  B8 0007                              mov     ax, 7 +273F:325F  F7 26 B9FD                           mul     data_1122               ; dx:ax = data * ax +273F:3263  05 0013                              add     ax, 19                  ; Number of lines? +273F:3266  8B D0                                mov     dx, ax +273F:3268  A1 4CE4                              mov     ax, data_segment2 +273F:326B  8E C0                                mov     es, ax +273F:326D  A1 4CE6                              mov     ax, talk_dialog_buffer +273F:3270  8E D8                                mov     ds, ax +273F:3272 úBE 0000                              mov     si, 0 +273F:3275                       loc_667:                                        ;  xref 273F:3281 +273F:3275  B9 0040                              mov     cx, TALK_DIALOG_WIDTH/2 +273F:3278  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:327A  81 C7 00C0                           add     di, FULL_SCREEN_WIDTH-TALK_DIALOG_WIDTH  +273F:327E  80 EA 01                             sub     dl, 1 +273F:3281  75 F2                                jnz     loc_667                 ; Jump if not zero +273F:3283  5B                                   pop     bx +273F:3284  1F                                   pop     ds +273F:3285  8B 16 11C6                           mov     dx, talk_dialog_height +273F:3289  A1 11C2                              mov     ax, talk_dialog_left +273F:328C  BD 0080                              mov     bp, 80h +273F:328F  B1 01                                mov     cl, 1 +273F:3291  E8 D8FB                              call    sub_22                  ; Specify non-redraw area +273F:3294  C3                                   retn +                            vga_talk_dialog     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; Called by the table entry [draw_dialog_proc] +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +; DL = number of lines? +;???? Not sure about this method. + +                               vga_draw_dialog  proc    near + +273F:3295  32 E4                                xor     ah,ah                   ; Zero register +273F:3297  32 FF                                xor     bh,bh                   ; Zero register +273F:3299  32 ED                                xor     ch,ch                   ; Zero register +273F:329B  32 F6                                xor     dh,dh                   ; Zero register +273F:329D  52                                   push    dx +273F:329E  51                                   push    cx +273F:329F  53                                   push    bx +273F:32A0  50                                   push    ax +273F:32A1  8A EA                                mov     ch,dl +273F:32A3  93                                   xchg    bx,ax +273F:32A4  32 E4                                xor     ah,ah                   ; Zero register +273F:32A6  BA 0A00                              mov     dx,0A00h +273F:32A9  F7 E2                                mul     dx                      ; dx:ax = reg * ax +273F:32AB  2D 03C0                              sub     ax,3C0h +273F:32AE  3D 0640                              cmp     ax,640h +273F:32B1  75 03                                jne     loc_668                 ; Jump if not equal +273F:32B3  05 03C0                              add     ax,3C0h +273F:32B6                       loc_668:                                        ;  xref 273F:32B1 +273F:32B6  32 FF                                xor     bh,bh                   ; Zero register +273F:32B8  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:32BA  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:32BC  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:32BE  03 C3                                add     ax,bx +273F:32C0  2D 0003                              sub     ax,3 +273F:32C3  8B F8                                mov     di,ax +273F:32C5  A1 4CE4                              mov     ax, data_segment2 +273F:32C8  8E C0                                mov     es,ax +273F:32CA  8A D9                                mov     bl,cl +273F:32CC  32 FF                                xor     bh,bh                   ; Zero register +273F:32CE  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:32D0  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:32D2  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:32D4  83 C3 04                             add     bx,4 +273F:32D7  8A D5                                mov     dl,ch +273F:32D9  32 F6                                xor     dh,dh                   ; Zero register +273F:32DB  8B C2                                mov     ax,dx +273F:32DD  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:32DF  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:32E1  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:32E3  F7 C5 FFFF                           test    bp,0FFFFh +273F:32E7  75 02                                jnz     loc_669                 ; Jump if not zero +273F:32E9  2B D0                                sub     dx,ax +273F:32EB                       loc_669:                                        ;  xref 273F:32E7 +273F:32EB  83 C2 05                             add     dx,5 +273F:32EE  E8 001A                              call    draw_dialog_frame +273F:32F1  58                                   pop     ax +273F:32F2  2D 0001                              sub     ax,1 +273F:32F5  5B                                   pop     bx +273F:32F6  83 EB 02                             sub     bx,2 +273F:32F9  73 02                                jnc     loc_670                 ; Jump if carry=0 +273F:32FB  33 DB                                xor     bx,bx                   ; Zero register +273F:32FD                       loc_670:                                        ;  xref 273F:32F9 +273F:32FD  5D                                   pop     bp +273F:32FE  83 C5 04                             add     bp,4 +273F:3301  5A                                   pop     dx +273F:3302  83 C2 04                             add     dx,4 +273F:3305  B1 81                                mov     cl,81h +273F:3307  E8 D879                              call    sub_21                  ; (0B83) +273F:330A  C3                                   retn + +                               vga_draw_menu    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:32EE, 339D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:330B                draw_dialog_frame      proc    near +273F:330B  1E                                   push    ds +273F:330C  B8 44EA                              mov     ax, dialog_segment +273F:330F  8E D8                                mov     ds,ax +273F:3311  33 F6                                xor     si,si                   ; Zero register +273F:3313  BD 0009                              mov     bp,9 +273F:3316                       loc_671:                                        ;  xref 273F:3331 +273F:3316  57                                   push    di +273F:3317  B9 0007                              mov     cx,7 +273F:331A  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:331C  AC                                   lodsb                           ; String [si] to al +273F:331D  8B CB                                mov     cx,bx +273F:331F  83 C1 02                             add     cx,2 +273F:3322  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:3324  B9 0009                              mov     cx,9 +273F:3327  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3329  5F                                   pop     di +273F:332A ú81 C7 0140                           add     di, SCREEN_WIDTH +273F:332E  83 ED 01                             sub     bp,1 +273F:3331  75 E3                                jnz     loc_671                 ; Jump if not zero +273F:3333                       loc_672:                                        ;  xref 273F:334D +273F:3333  56                                   push    si +273F:3334  57                                   push    di +273F:3335  B9 0009                              mov     cx,9 +273F:3338  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:333A  AC                                   lodsb                           ; String [si] to al +273F:333B  8B CB                                mov     cx,bx +273F:333D  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:333F  B9 0009                              mov     cx,9 +273F:3342  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3344  5F                                   pop     di +273F:3345  5E                                   pop     si +273F:3346 ú81 C7 0140                           add     di, SCREEN_WIDTH +273F:334A  83 EA 01                             sub     dx,1 +273F:334D  75 E4                                jnz     loc_672                 ; Jump if not zero +273F:334F  83 C6 13                             add     si,13h +273F:3352  BD 0009                              mov     bp,9 +273F:3355                       loc_673:                                        ;  xref 273F:3370 +273F:3355  57                                   push    di +273F:3356  B9 0009                              mov     cx,9 +273F:3359  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:335B  AC                                   lodsb                           ; String [si] to al +273F:335C  8B CB                                mov     cx,bx +273F:335E  83 C1 01                             add     cx,1 +273F:3361  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:3363  B9 0008                              mov     cx,8 +273F:3366  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3368  5F                                   pop     di +273F:3369  81 C7 0140                           add     di, SCREEN_WIDTH +273F:336D  83 ED 01                             sub     bp,1 +273F:3370  75 E3                                jnz     loc_673                 ; Jump if not zero +273F:3372  1F                                   pop     ds +273F:3373  C3                                   retn + +                         draw_dialog_frame      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3374  32 FF                                xor     bh, bh +273F:3376  32 F6                                xor     dh, dh +273F:3378  BF 62C0                              mov     di, 62C0h +273F:337B  B9 004E                              mov     cx, 4Eh +273F:337E  8B C2                                mov     ax, dx +273F:3380  2D 0001                              sub     ax, 1 +273F:3383  74 0C                                jz      loc_675                 ; Jump if zero +273F:3385  81 EF 0A00                           sub     di,0A00h +273F:3389  83 E9 08                             sub     cx,8 +273F:338C  80 C2 01                             add     dl,1 +273F:338F  EB EF                                jmp     short loc_674           ; (3380) +273F:3391                       loc_675:                                        ;  xref 273F:3383 +273F:3391  51                                   push    cx +273F:3392  B1 03                                mov     cl,3 +273F:3394  D3 E3                                shl     bx,cl                   ; Shift w/zeros fill +273F:3396  D3 E2                                shl     dx,cl                   ; Shift w/zeros fill +273F:3398  83 EB 01                             sub     bx,1 +273F:339B  53                                   push    bx +273F:339C  52                                   push    dx +273F:339D  E8 FF6B                              call    draw_dialog_frame +273F:33A0  33 C0                                xor     ax,ax                   ; Zero register +273F:33A2  5A                                   pop     dx +273F:33A3  5D                                   pop     bp +273F:33A4  5B                                   pop     bx +273F:33A5  83 EB 08                             sub     bx,8 +273F:33A8  83 C5 12                             add     bp,12h +273F:33AB  83 C2 14                             add     dx,14h +273F:33AE  B1 81                                mov     cl,81h +273F:33B0  E9 D7DC                              jmp     loc_93                  ; (0B8F) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       vga_draw_talk_dialog     proc    near +273F:33B3  8B C5                                mov     ax,bp +273F:33B5  D1 E5                                shl     bp,1                    ; Shift w/zeros fill +273F:33B7  D1 E5                                shl     bp,1                    ; Shift w/zeros fill +273F:33B9  D1 E5                                shl     bp,1                    ; Shift w/zeros fill +273F:33BB  2B E8                                sub     bp,ax +273F:33BD  83 C5 0D                             add     bp,0Dh +273F:33C0  89 2E 11C6                           mov     talk_dialog_height, bp +273F:33C4  83 06 11C6 12                        add     talk_dialog_height, 12h +273F:33C9  C7 06 11C4 0080                      mov     talk_dialog_width, TALK_DIALOG_WIDTH +273F:33CF  1E                                   push    ds +273F:33D0  B8 44FF                              mov     ax, vga_talk_frame_seg +273F:33D3  8E D8                                mov     ds,ax +273F:33D5  33 F6                                xor     si,si                   ; Zero register + +273F:33D7  BA 0003                              mov     dx,3                    ; First three lines + +273F:33DA                       loc_676: +273F:33DA  A5                                   movsw                           ; Mov [si] to es:[di] +273F:33DB  AC                                   lodsb                           ; String [si] to al +273F:33DC  B9 007B                              mov     cx,7Bh +273F:33DF  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:33E1  A5                                   movsw                           ; Mov [si] to es:[di] +273F:33E2  A4                                   movsb                           ; Mov [si] to es:[di] +273F:33E3  83 EA 01                             sub     dx,1 +273F:33E6  75 F2                                jnz     loc_676                 ; Jump if not zero +273F:33E8                       loc_677:                                        ;  xref 273F:33F7 +273F:33E8  56                                   push    si +273F:33E9  A5                                   movsw                           ; Mov [si] to es:[di] +273F:33EA  A4                                   movsb                           ; Mov [si] to es:[di] +273F:33EB  AC                                   lodsb                           ; String [si] to al +273F:33EC  B9 007A                              mov     cx,7Ah +273F:33EF  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:33F1  A5                                   movsw                           ; Mov [si] to es:[di] +273F:33F2  A4                                   movsb                           ; Mov [si] to es:[di] +273F:33F3  5E                                   pop     si +273F:33F4  83 ED 01                             sub     bp,1 +273F:33F7  75 EF                                jnz     loc_677                 ; Jump if not zero +273F:33F9  83 C6 07                             add     si,7 +273F:33FC  BA 0003                              mov     dx,3 +273F:33FF                       loc_678:                                        ;  xref 273F:340B +273F:33FF  A5                                   movsw                           ; Mov [si] to es:[di] +273F:3400  A4                                   movsb                           ; Mov [si] to es:[di] +273F:3401  AC                                   lodsb                           ; String [si] to al +273F:3402  B9 007B                              mov     cx,7Bh +273F:3405  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:3407  A5                                   movsw                           ; Mov [si] to es:[di] +273F:3408  83 EA 01                             sub     dx,1 +273F:340B  75 F2                                jnz     loc_678                 ; Jump if not zero +273F:340D  1F                                   pop     ds +273F:340E  C3                                   retn +                       vga_draw_talk_dialog     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                  vga_show_compressed_screen    proc    near + +273F:340F úBB 07DC                              mov     bx, offset display_mask +273F:3412  A1 4CE4                              mov     ax, data_segment2 +273F:3415  8E C0                                mov     es,ax +273F:3417 úBF 0A00                              mov     di,data_1463e           ; (FF12:0A00=0) +273F:341A  8B 16 4CE0                           mov     dx, current_room_segment +273F:341E  33 F6                                xor     si,si                   ; Zero register +273F:3420  B5 06                                mov     ch,6 +273F:3422                       loc_679:                                        ;  xref 273F:3465 +273F:3422  B1 0A                                mov     cl, NUM_HORIZ_RECTS +273F:3424                       loc_680:                                        ; Screen horizontal loop +273F:3424  F6 07 80                             test    byte ptr [bx],80h       ; Does rect need displaying? +273F:3427  74 23                                jz      loc_683                 ; If not then skip +273F:3429  80 27 7F                             and     byte ptr [bx],7Fh       ; Clear displayed bit +273F:342C  80 0F 01                             or      byte ptr [bx],1 +273F:342F  57                                   push    di +273F:3430  56                                   push    si +273F:3431  1E                                   push    ds +273F:3432  8E DA                                mov     ds,dx + +273F:3434  B6 20                                mov     dh, RECT_SIZE +273F:3436                       loc_681:                                        ; Vertical loop +273F:3436  B2 10                                mov     dl, RECT_SIZE/2 +273F:3438                       loc_682:                                        ; Horizontal loop +273F:3438  A5                                   movsw                           ; Mov [si] to es:[di] +273F:3439  80 EA 01                             sub     dl,1 +273F:343C  75 FA                                jnz     loc_682                 ; End of horizontal loop + +273F:343E  81 C7 0120                           add     di, SCREEN_WIDTH-RECT_SIZE +273F:3442  80 EE 01                             sub     dh,1 +273F:3445  75 EF                                jnz     loc_681                 ; End of vertical loop + +273F:3447  8C DA                                mov     dx,ds +273F:3449  1F                                   pop     ds +273F:344A  5E                                   pop     si +273F:344B  5F                                   pop     di +273F:344C                       loc_683:                                        ;  xref 273F:3427 +273F:344C  83 C3 01                             add     bx,1 +273F:344F  83 C7 20                             add     di, RECT_SIZE           ; Next horizontal rect +273F:3452  81 C6 0400                           add     si, RECT_SIZE*RECT_SIZE ; Move to data for next src rect +273F:3456  80 E9 01                             sub     cl,1 +273F:3459  75 C9                                jnz     loc_680                 ; Jump if not zero + +273F:345B  83 C3 08                             add     bx,8 +273F:345E ú81 C7 26C0                           add     di,26C0h                ; (273F:26C0=0EDh) +273F:3462  80 ED 01                             sub     ch,1 +273F:3465  75 BB                                jnz     loc_679                 ; Jump if not zero +273F:3467  80 0E 11D0 30                        or      menubar_state, 30h ; (273F:11D0=56h) '0' +273F:346C  C3                                   retn + +                  vga_show_compressed_screen    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ +                   +273F:346D úBE 0992                              mov     si, offset rects_layer_0 +273F:3470  83 C6 4C                             add     si,4Ch +273F:3473  C7 06 0DA6 0D92                      mov     rect_x_start, room_layers +273F:3479  C7 06 0DAA 0D96                      mov     num_horiz_rects, 0D96h +273F:347F  B9 0003                              mov     cx,3 +273F:3482                       loc_684:                                        ;  xref 273F:3523 +273F:3482 ú51                                   push    cx +273F:3483 úBB 0100                              mov     bx,100h                 ; (273F:0100=6) +273F:3486                       loc_685:                                        ;  xref 273F:3509 +273F:3486 ú51                                   push    cx +273F:3487  56                                   push    si +273F:3488  8B 3E 0DA6                           mov     di, rect_x_start +273F:348C  8B 05                                mov     ax,[di] +273F:348E  8E C0                                mov     es,ax +273F:3490  8B 45 02                             mov     ax,[di+2] +273F:3493  A3 0DA8                              mov     rect_y_end, ax +273F:3496  8B 3E 0DAA                           mov     di, num_horiz_rects +273F:349A  8B 05                                mov     ax,[di] +273F:349C  8B D0                                mov     dx,ax +273F:349E  8B 45 02                             mov     ax,[di+2] +273F:34A1  A3 0DAC                              mov     word ptr ds:[0DACh],ax  ; (273F:0DAC=0EB09h) +273F:34A4  B5 06                                mov     ch,6 +273F:34A6                       loc_686:                                        ;  xref 273F:34F8 +273F:34A6  B1 0A                                mov     cl,0Ah +273F:34A8                       loc_687:                                        ;  xref 273F:34F0 +273F:34A8  F6 04 80                             test    byte ptr [si],80h +273F:34AB  75 3D                                jnz     loc_690                 ; Jump if not zero +273F:34AD  F6 00 80                             test    byte ptr [bx+si],80h +273F:34B0  75 38                                jnz     loc_690                 ; Jump if not zero +273F:34B2  56                                   push    si +273F:34B3  52                                   push    dx +273F:34B4  8A 04                                mov     al,[si] +273F:34B6  32 E4                                xor     ah,ah                   ; Zero register +273F:34B8  F7 26 0DA8                           mul     rect_y_end +273F:34BC  8B F8                                mov     di,ax +273F:34BE  8A 00                                mov     al,[bx+si] +273F:34C0  32 E4                                xor     ah,ah                   ; Zero register +273F:34C2  F7 26 0DAC                           mul     word ptr ds:[0DACh]     ; (273F:0DAC=0EB09h) dx:ax = data * ax +273F:34C6  8B F0                                mov     si,ax +273F:34C8  5A                                   pop     dx +273F:34C9  1E                                   push    ds +273F:34CA  51                                   push    cx +273F:34CB  53                                   push    bx +273F:34CC  8E DA                                mov     ds,dx +273F:34CE  B9 0400                              mov     cx,400h +273F:34D1  8B DE                                mov     bx,si +273F:34D3  81 C3 0200                           add     bx,200h + +273F:34D7                       locloop_688:                                    ;  xref 273F:34E2 +273F:34D7  AC                                   lodsb                           ; String [si] to al +273F:34D8  0A C0                                or      al,al                   ; Zero ? +273F:34DA  74 03                                jz      loc_689                 ; Jump if zero +273F:34DC  26: 88 05                            mov     es:[di],al +273F:34DF                       loc_689:                                        ;  xref 273F:34DA +273F:34DF  83 C7 01                             add     di,1 +273F:34E2  E2 F3                                loop    locloop_688             ; Loop if cx > 0 + +273F:34E4  5B                                   pop     bx +273F:34E5  59                                   pop     cx +273F:34E6  8C DA                                mov     dx,ds +273F:34E8  1F                                   pop     ds +273F:34E9  5E                                   pop     si +273F:34EA                       loc_690:                                        ;  xref 273F:34AB, 34B0 +273F:34EA  83 C6 01                             add     si,1 +273F:34ED  80 E9 01                             sub     cl,1 +273F:34F0  75 B6                                jnz     loc_687                 ; Jump if not zero +273F:34F2  83 C6 08                             add     si,8 +273F:34F5  80 ED 01                             sub     ch,1 +273F:34F8  75 AC                                jnz     loc_686                 ; Jump if not zero +273F:34FA  83 06 0DAA 04                        add     num_horiz_rects, 4 +273F:34FF  81 C3 0100                           add     bx,100h +273F:3503  5E                                   pop     si +273F:3504  59                                   pop     cx +273F:3505  E2 02                                loop    locloop_691             ; Loop if cx > 0 + +273F:3507  EB 03                                jmp     short loc_692           ; (350C) + +273F:3509                       locloop_691:                                    ;  xref 273F:3505 +273F:3509  E9 FF7A                              jmp     loc_685                 ; (3486) +273F:350C                       loc_692:                                        ;  xref 273F:3507 +273F:350C  59                                   pop     cx +273F:350D  E2 02                                loop    locloop_693             ; Loop if cx > 0 + +273F:350F  EB 15                                jmp     short loc_ret_694       ; (3526) + +273F:3511                       locloop_693:                                    ;  xref 273F:350D +273F:3511  81 C6 0100                           add     si,100h +273F:3515  83 06 0DA6 04                        add     rect_x_start, 4 +273F:351A  A1 0DA6                              mov     ax, rect_x_start +273F:351D  05 0004                              add     ax,4 +273F:3520  A3 0DAA                              mov     num_horiz_rects, ax +273F:3523  E9 FF5C                              jmp     loc_684                 ; (3482) + +273F:3526                       loc_ret_694:                                    ;  xref 273F:350F +273F:3526  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;  es:di = pointer to decoded screen +                                ;     bx = buffer to store status of each screen rectangle +                                ;     cl = layer number (0 to 3) +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         vga_segment_screen     proc    near +273F:3527  88 0E 0DA5                           mov     current_layer, cl +273F:352B  C6 06 0DA4 00                        mov     num_occupied_rects, 0 +273F:3530  C7 06 0DA2 0400                      mov     rectangle_size, RECTANGLE_SIZE +273F:3536  33 F6                                xor     si, si                  ; Zero register +273F:3538  B5 06                                mov     ch, NUM_VERT_RECTS +273F:353A                       loc_695: +273F:353A  B1 0A                                mov     cl, NUM_HORIZ_RECTS +273F:353C                       loc_696: +273F:353C  1E                                   push    ds +273F:353D  51                                   push    cx +273F:353E  56                                   push    si +273F:353F  57                                   push    di +273F:3540  A1 4CE4                              mov     ax, data_segment2 +273F:3543  8E D8                                mov     ds,ax +273F:3545  E8 003A                              call    copy_rectangle +273F:3548  5F                                   pop     di +273F:3549  5E                                   pop     si +273F:354A  59                                   pop     cx +273F:354B  1F                                   pop     ds +273F:354C  F6 06 0DA5 FF                        test    current_layer, 0FFh     ; Background layer? +273F:3551  74 09                                jz      loc_697                 ; If yes, ignore empty check +273F:3553  0B D2                                or      dx,dx                   ; Was rectangle non-empty? +273F:3555  75 05                                jnz     loc_697                 ; If yes, then jump +273F:3557  C6 07 FF                             mov     byte ptr [bx], 0FFh     ; Flag rect as empty +273F:355A  EB 0E                                jmp     short loc_698 +273F:355C                       loc_697: +273F:355C  03 3E 0DA2                           add     di, rectangle_size +273F:3560  A0 0DA4                              mov     al, num_occupied_rects +273F:3563  88 07                                mov     [bx], al +273F:3565  80 06 0DA4 01                        add     num_occupied_rects, 1 +273F:356A                       loc_698:                                        ;  xref 273F:355A +273F:356A  83 C6 20                             add     si, RECT_SIZE           ; Move to next src rect +273F:356D  83 C3 01                             add     bx, 1 +273F:3570  80 E9 01                             sub     cl, 1 +273F:3573  75 C7                                jnz     loc_696                 ; Loop for horiz rects +273F:3575 ú81 C6 26C0                           add     si, (RECT_SIZE-1) * SCREEN_WIDTH +273F:3579  83 C3 08                             add     bx, 8 +273F:357C  80 ED 01                             sub     ch, 1 +273F:357F  75 B9                                jnz     loc_695                 ; Loop for vert rects +273F:3581  C3                                   retn +                         vga_segment_screen     endp +                              +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3545 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3582               copy_rectangle          proc    near +273F:3582  33 D2                                xor     dx,dx                   ; Zero register +273F:3584  B9 0020                              mov     cx, 32 + +273F:3587                       locloop_699:                                    ;  xref 273F:3596 +273F:3587  51                                   push    cx +273F:3588  B9 0010                              mov     cx, 32/2 + +273F:358B                       locloop_700:                                    ; Horizontal loop +273F:358B  AD                                   lodsw +273F:358C  0B D0                                or      dx, ax +273F:358E  AB                                   stosw                           ; Store ax to es:[di] +273F:358F  E2 FA                                loop    locloop_700             ; Loop if cx > 0 + +273F:3591  81 C6 0120                           add     si, 320 - 32            ; Move to next line +273F:3595  59                                   pop     cx +273F:3596  E2 EF                                loop    locloop_699             ; Vertical loop + +273F:3598  C3                                   retn +                        copy_rectangle          endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; ax = Y rect, dx = x rect, bp = current layer num +                                ; bx = rect mapping index +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                               vga_add_rect     proc    near +273F:3599  8B CD                                mov     cx, bp +273F:359B                       locloop_701:                                    ;  xref 273F:35A7 +273F:359B  80 39 FE                             cmp     byte ptr [bx+di],0FEh +273F:359E  72 0A                                jb      loc_702                 ; Jump if below +273F:35A0 ú81 C7 0100                           add     di, 100h +273F:35A4  83 C6 04                             add     si, 4 +273F:35A7  E2 F2                                loop    locloop_701             ; Loop if cx > 0 + +273F:35A9  C3                                   retn +273F:35AA                       loc_702:                                        ;  xref 273F:359E +273F:35AA  1E                                   push    ds +273F:35AB  52                                   push    dx +273F:35AC  8B D0                                mov     dx, ax                  ; dx = y rect +273F:35AE  D1 E0                                shl     ax, 1                   ; ax=y*2 +273F:35B0  D1 E0                                shl     ax, 1                   ; ax=y*4 +273F:35B2  03 D0                                add     dx, ax                  ; dx=y*5 +273F:35B4  B1 0B                                mov     cl, 11 +273F:35B6  D3 E2                                shl     dx,cl                   ; dx=y*(32*320) +273F:35B8  81 C2 0A00                           add     dx, MENUBAR_BLOCK_SIZE  ; dx =Y start on screen +273F:35BC  58                                   pop     ax                      ; ax = x rect +273F:35BD  B1 05                                mov     cl,5 +273F:35BF  D3 E0                                shl     ax,cl                   ; ax=x*32 +273F:35C1  03 D0                                add     dx,ax                   ; dx=start pos on screen + +273F:35C3  8A 01                                mov     al, [bx+di]             ; get cell status +273F:35C5  8B 1E 4CE4                           mov     bx, data_segment2 +273F:35C9  8E C3                                mov     es,bx +273F:35CB  8B 1C                                mov     bx, [si]                ; Get segment for layer to use +273F:35CD  8E DB                                mov     ds, bx                  ; ds = source data +273F:35CF  8B FA                                mov     di, dx                  ; es:di = destination +273F:35D1  32 E4                                xor     ah, ah +273F:35D3  B1 0A                                mov     cl, 10 +273F:35D5  D3 E0                                shl     ax, cl                  ; ax=cell status*1024 +273F:35D7  8B F0                                mov     si, ax + +273F:35D9  B9 0020                              mov     cx, 32                  ; Number of rows + +273F:35DC                       locloop_703:                                    ;  xref 273F:35F2 +273F:35DC  51                                   push    cx +273F:35DD  B9 0020                              mov     cx, 32                  ; Set pixel width + +273F:35E0                       locloop_704: +273F:35E0  AC                                   lodsb                           ; Get next pixel +273F:35E1  0A C0                                or      al,al                   ; Zero (transparent)? +273F:35E3  74 03                                jz      loc_705                 ; If yes, then skip +273F:35E5  26: 88 05                            mov     es:[di],al              ; Store pixel +273F:35E8                       loc_705: +273F:35E8  83 C7 01                             add     di,1                    ; Move to next dest pos +273F:35EB  E2 F3                                loop    locloop_704 + +273F:35ED ú81 C7 0120                           add     di, 320 - 32            ; Move to next line of rect +273F:35F1  59                                   pop     cx +273F:35F2  E2 E8                                loop    locloop_703             ; Loop remaining lines + +273F:35F4  1F                                   pop     ds +273F:35F5  C3                                   retn +                               vga_add_rect     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      vga_display_character     proc    near + +273F:35F6  57                                   push    di +273F:35F7  1E                                   push    ds +273F:35F8  53                                   push    bx +273F:35F9  51                                   push    cx +273F:35FA  56                                   push    si +273F:35FB  8E DD                                mov     ds,bp +273F:35FD  2C 20                                sub     al,20h                  ; ' ' +273F:35FF  32 E4                                xor     ah,ah                   ; Zero register +273F:3601  B1 03                                mov     cl,3 +273F:3603  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:3605  8B F0                                mov     si,ax +273F:3607  B3 08                                mov     bl,8                    ; Number of rows +273F:3609                       loc_706: +273F:3609  B9 0008                              mov     cx,8 +273F:360C  AC                                   lodsb                           ; String [si] to al + +273F:360D                       locloop_707:                                    ;  xref 273F:361C +273F:360D  D0 E0                                shl     al,1                    ; Shift w/zeros fill +273F:360F  72 05                                jc      loc_708                 ; Jump if carry Set +273F:3611  26: 88 15                            mov     es:[di],dl +273F:3614  EB 03                                jmp     short loc_709           ; (3619) +273F:3616                       loc_708:                                        ;  xref 273F:360F +273F:3616  26: 88 35                            mov     es:[di],dh +273F:3619                       loc_709:                                        ;  xref 273F:3614 +273F:3619  83 C7 01                             add     di,1 +273F:361C  E2 EF                                loop    locloop_707             ; Loop if cx > 0 + +273F:361E ú81 C7 0138                           add     di,data_1445e           ; (A000:0138=0) +273F:3622  80 EB 01                             sub     bl,1 +273F:3625  75 E2                                jnz     loc_706                 ; Jump if not zero +273F:3627  5E                                   pop     si +273F:3628  59                                   pop     cx +273F:3629  5B                                   pop     bx +273F:362A  1F                                   pop     ds +273F:362B  5F                                   pop     di +273F:362C  C3                                   retn + +                      vga_display_character     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              vga_menu_items    proc    near + +273F:362D  B8 A000                              mov     ax, VGA_SEGMENT +273F:3630  8E C0                                mov     es,ax +273F:3632  B1 03                                mov     cl,3 +273F:3634  BA 0048                              mov     dx,48h +273F:3637  8A 1E 334E                           mov     bl,byte ptr ds:[334Eh]  ; (273F:334E=0E4h) +273F:363B  32 FF                                xor     bh,bh                   ; Zero register +273F:363D  D3 E3                                shl     bx,cl                   ; Shift w/zeros fill +273F:363F  1E                                   push    ds +273F:3640  8B 36 335A                           mov     si,word ptr ds:[335Ah]  ; (273F:335A=0ACA4h) +273F:3644  8B FE                                mov     di,si +273F:3646  A1 3376                              mov     ax,data_265             ; (273F:3376=0F632h) +273F:3649  8E D8                                mov     ds,ax +273F:364B                       loc_710:                                        ;  xref 273F:365A +273F:364B  56                                   push    si +273F:364C  8B CB                                mov     cx,bx +273F:364E  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3650  5E                                   pop     si +273F:3651  81 C6 0140                           add     si,140h +273F:3655  8B FE                                mov     di,si +273F:3657  83 EA 01                             sub     dx,1 +273F:365A  75 EF                                jnz     loc_710                 ; Jump if not zero +273F:365C  1F                                   pop     ds + +273F:365D                       loc_ret_711:                                    ;  xref 273F:366F +273F:365D  C3                                   retn +273F:365E                       loc_712:                                        ;  xref 273F:36AD +273F:365E  80 26 11D0 FB                        and     menubar_state, 0FBh ; (273F:11D0=56h) +273F:3663  C3                                   retn + +                              vga_menu_items    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [show_cursor_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                  vga_cursor    proc    near + +273F:3664  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:366A  F6 06 11D0 04                        test    menubar_state, 4   ; (273F:11D0=56h) +273F:366F  75 EC                                jnz     loc_ret_711             ; Jump if not zero +273F:3671  80 0E 11D0 04                        or      menubar_state, 4   ; (273F:11D0=56h) +273F:3676  8B 3E 11E8                           mov     di,word ptr ds:[11E8h]  ; (273F:11E8=14B9h) +273F:367A úBE 11EE                              mov     si, offset data_641 +273F:367D  8B 1E 11EA                           mov     bx,word ptr ds:[11EAh]  ; (273F:11EA=8B00h) +273F:3681  8B 16 11EC                           mov     dx,word ptr ds:[11ECh]  ; (273F:11EC=1B55h) +273F:3685  0B D2                                or      dx,dx                   ; Zero ? +273F:3687  74 1F                                jz      loc_714                 ; Jump if zero + +273F:3689  B8 A000                              mov     ax, VGA_SEGMENT +273F:368C  8E C0                                mov     es,ax +273F:368E                       loc_713:                                        ;  xref 273F:36A0 +273F:368E  56                                   push    si +273F:368F  57                                   push    di +273F:3690  8B CB                                mov     cx,bx +273F:3692  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3694  5F                                   pop     di +273F:3695  5E                                   pop     si +273F:3696  83 C6 10                             add     si,10h +273F:3699  81 C7 0140                           add     di,140h +273F:369D  83 EA 01                             sub     dx,1 +273F:36A0  75 EC                                jnz     loc_713                 ; Jump if not zero +273F:36A2  C7 06 11EC 0000                      mov     word ptr ds:[11ECh],0   ; (273F:11EC=1B55h) +273F:36A8                       loc_714:                                        ;  xref 273F:3687 +273F:36A8  F6 06 11D0 01                        test    menubar_state, 1   ; (273F:11D0=56h) +273F:36AD  75 AF                                jnz     loc_712                 ; Jump if not zero +273F:36AF  A1 11D8                              mov     ax, mouse_y2 +273F:36B2  2B 06 11DF                           sub     ax, cursor_centroid +273F:36B6  73 02                                jnc     loc_715                 ; Jump if carry=0 +273F:36B8  33 C0                                xor     ax,ax                   ; Zero register +273F:36BA                       loc_715:                                        ;  xref 273F:36B6 +273F:36BA  BA 00C8                              mov     dx,0C8h +273F:36BD  2B D0                                sub     dx,ax +273F:36BF  83 FA 11                             cmp     dx,11h +273F:36C2  72 03                                jb      loc_716                 ; Jump if below +273F:36C4  BA 0010                              mov     dx,10h +273F:36C7                       loc_716:                                        ;  xref 273F:36C2 +273F:36C7  89 16 11EC                           mov     word ptr ds:[11ECh],dx  ; (273F:11EC=1B55h) +273F:36CB  8B 36 11D6                           mov     si, mouse_x2 +273F:36CF  2B 36 11DF                           sub     si, cursor_centroid +273F:36D3  73 02                                jnc     loc_717                 ; Jump if carry=0 +273F:36D5  33 F6                                xor     si,si                   ; Zero register +273F:36D7                       loc_717:                                        ;  xref 273F:36D3 +273F:36D7  BD 0140                              mov     bp,140h +273F:36DA  2B EE                                sub     bp,si +273F:36DC  83 FD 11                             cmp     bp,11h +273F:36DF  72 03                                jb      loc_718                 ; Jump if below +273F:36E1  BD 0010                              mov     bp,10h +273F:36E4                       loc_718:                                        ;  xref 273F:36DF +273F:36E4  89 2E 11EA                           mov     word ptr ds:[11EAh],bp  ; (273F:11EA=8B00h) +273F:36E8  8B C8                                mov     cx,ax +273F:36EA  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:36EC  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:36EE  03 C1                                add     ax,cx +273F:36F0  B1 06                                mov     cl,6 +273F:36F2  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:36F4  03 F0                                add     si,ax +273F:36F6  89 36 11E8                           mov     word ptr ds:[11E8h],si  ; (273F:11E8=14B9h) +273F:36FA  1E                                   push    ds +273F:36FB  FF 36 4CF4                           push    cursors_segment +273F:36FF  FF 36 11E1                           push    cursor_index +273F:3703  1E                                   push    ds +273F:3704  07                                   pop     es +273F:3705  B8 A000                              mov     ax, VGA_SEGMENT +273F:3708  8E D8                                mov     ds,ax +273F:370A úBF 11EE                              mov     di, offset data_641 +273F:370D  56                                   push    si +273F:370E  52                                   push    dx +273F:370F                       loc_719:                                        ;  xref 273F:3721 +273F:370F  56                                   push    si +273F:3710  57                                   push    di +273F:3711  8B CD                                mov     cx,bp +273F:3713  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3715  5F                                   pop     di +273F:3716  5E                                   pop     si +273F:3717 ú81 C6 0140                           add     si,data_1451e           ; (B2DE:0140=0) +273F:371B  83 C7 10                             add     di,10h +273F:371E  83 EA 01                             sub     dx,1 +273F:3721  75 EC                                jnz     loc_719                 ; Jump if not zero +273F:3723  1E                                   push    ds +273F:3724  07                                   pop     es + +273F:3725  5A                                   pop     dx +273F:3726  5F                                   pop     di +273F:3727  58                                   pop     ax +273F:3728  86 E0                                xchg    ah,al +273F:372A  8B F0                                mov     si,ax +273F:372C  1F                                   pop     ds +273F:372D                       loc_720:                                        ;  xref 273F:374A +273F:372D  56                                   push    si +273F:372E  57                                   push    di +273F:372F  8B CD                                mov     cx,bp + +273F:3731                       locloop_721:                                    ;  xref 273F:373C +273F:3731  AC                                   lodsb                           ; String [si] to al +273F:3732  0A C0                                or      al,al                   ; Zero ? +273F:3734  74 03                                jz      loc_722                 ; Jump if zero +273F:3736  26: 88 05                            mov     es:[di],al +273F:3739                       loc_722:                                        ;  xref 273F:3734 +273F:3739  83 C7 01                             add     di,1 +273F:373C  E2 F3                                loop    locloop_721             ; Loop if cx > 0 + +273F:373E  5F                                   pop     di +273F:373F  5E                                   pop     si +273F:3740  83 C6 10                             add     si,10h +273F:3743  81 C7 0140                           add     di,140h +273F:3747  83 EA 01                             sub     dx,1 +273F:374A  75 E1                                jnz     loc_720                 ; Jump if not zero +273F:374C  1F                                   pop     ds +273F:374D  80 26 11D0 FB                        and     menubar_state, 0FBh ; (273F:11D0=56h) + +273F:3752                       loc_ret_723:                                    ;  xref 273F:3758 +273F:3752  C3                                   retn + +                                  vga_cursor    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             sub_unknown_1      proc    near + +273F:3753  F6 06 11D0 01                        test    menubar_state, 1 +273F:3758  75 F8                                jnz     loc_ret_723 +273F:375A  1E                                   push    ds +273F:375B  8B 36 11E8                           mov     si,word ptr ds:[11E8h] +273F:375F  8B 1E 11EA                           mov     bx,word ptr ds:[11EAh] +273F:3763  8B 16 11EC                           mov     dx,word ptr ds:[11ECh] +273F:3767  0B D2                                or      dx,dx +273F:3769  74 51                                jz      loc_728 +273F:376B  FF 36 4CF4                           push    cursors_segment +273F:376F  FF 36 11E1                           push    cursor_index +273F:3773  52                                   push    dx +273F:3774  56                                   push    si +273F:3775  1E                                   push    ds +273F:3776  07                                   pop     es +273F:3777  A1 4CE4                              mov     ax, data_segment2 +273F:377A  8E D8                                mov     ds,ax +273F:377C úBF 11EE                              mov     di,11EEh +273F:377F                       loc_724: +273F:377F  56                                   push    si +273F:3780  57                                   push    di +273F:3781  8B CB                                mov     cx,bx +273F:3783  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3785  5F                                   pop     di +273F:3786  5E                                   pop     si +273F:3787  83 C7 10                             add     di,10h +273F:378A ú81 C6 0140                           add     si,data_1451e           ; (B2DE:0140=0) +273F:378E  83 EA 01                             sub     dx,1 +273F:3791  75 EC                                jnz     loc_724                 ; Jump if not zero +273F:3793  1E                                   push    ds +273F:3794  07                                   pop     es +273F:3795  5F                                   pop     di +273F:3796  5A                                   pop     dx +273F:3797  58                                   pop     ax +273F:3798  86 E0                                xchg    ah,al +273F:379A  8B F0                                mov     si,ax +273F:379C  1F                                   pop     ds +273F:379D                       loc_725:                                        ;  xref 273F:37BA +273F:379D  57                                   push    di +273F:379E  56                                   push    si +273F:379F  8B CB                                mov     cx,bx + +273F:37A1                       locloop_726:                                    ;  xref 273F:37AC +273F:37A1  AC                                   lodsb                           ; String [si] to al +273F:37A2  0A C0                                or      al,al                   ; Zero ? +273F:37A4  74 03                                jz      loc_727                 ; Jump if zero +273F:37A6  26: 88 05                            mov     es:[di],al +273F:37A9                       loc_727:                                        ;  xref 273F:37A4 +273F:37A9  83 C7 01                             add     di,1 +273F:37AC  E2 F3                                loop    locloop_726             ; Loop if cx > 0 + +273F:37AE  5E                                   pop     si +273F:37AF  5F                                   pop     di +273F:37B0  83 C6 10                             add     si,10h +273F:37B3 ú81 C7 0140                           add     di, SCREEN_WIDTH +273F:37B7  83 EA 01                             sub     dx,1 +273F:37BA  75 E1                                jnz     loc_725                 ; Jump if not zero +273F:37BC                       loc_728:                                        ;  xref 273F:3769 +273F:37BC  1F                                   pop     ds +273F:37BD  C3                                   retn + +                             sub_unknown_1      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:30B7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:37BE                       sub_73          proc    near +273F:37BE  F6 06 11D0 01                        test    menubar_state, 1   ; (273F:11D0=56h) +273F:37C3  75 2C                                jnz     loc_ret_730             ; Jump if not zero +273F:37C5  A1 4CE4                              mov     ax, data_segment2 +273F:37C8  8E C0                                mov     es,ax +273F:37CA  8B 3E 11E8                           mov     di,word ptr ds:[11E8h]  ; (273F:11E8=14B9h) +273F:37CE  8B 1E 11EA                           mov     bx,word ptr ds:[11EAh]  ; (273F:11EA=8B00h) +273F:37D2  8B 16 11EC                           mov     dx,word ptr ds:[11ECh]  ; (273F:11EC=1B55h) +273F:37D6  0B D2                                or      dx,dx                   ; Zero ? +273F:37D8  74 17                                jz      loc_ret_730             ; Jump if zero +273F:37DA úBE 11EE                              mov     si,11EEh                ; (273F:11EE=3Bh) +273F:37DD                       loc_729:                                        ;  xref 273F:37EF +273F:37DD  57                                   push    di +273F:37DE  56                                   push    si +273F:37DF  8B CB                                mov     cx,bx +273F:37E1  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:37E3  5E                                   pop     si +273F:37E4  5F                                   pop     di +273F:37E5  81 C7 0140                           add     di,140h +273F:37E9  83 C6 10                             add     si,10h +273F:37EC  83 EA 01                             sub     dx,1 +273F:37EF  75 EC                                jnz     loc_729                 ; Jump if not zero + +273F:37F1                       loc_ret_730:                                    ;  xref 273F:37C3, 37D8 +273F:37F1  C3                                   retn +                                sub_73          endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         vga_add_animation      proc    near + +273F:37F2  2E: C7 06 1500 0000                  mov     word ptr cs:data_215,0  ; (273F:1500=0) +273F:37F9  C6 06 11B0 00                        mov     byte ptr ds:[11B0h],0   ; (273F:11B0=0BEh) +273F:37FE  8A 6F 06                             mov     ch,[bx+ANIM_HEIGHT]     ; Get height +273F:3801  8A 4F 04                             mov     cl,[bx+ANIM_WIDTH]      ; Get width +273F:3804  8B 47 02                             mov     ax,[bx+ANIM_Y]          ; Get Y position +273F:3807  2D 0088                              sub     ax,88h +273F:380A  73 16                                jnc     loc_731 + +273F:380C  8B D0                                mov     dx,ax +273F:380E  02 D5                                add     dl,ch +273F:3810  73 15                                jnc     loc_ret_732             ; Jump if carry=0 +273F:3812  74 13                                jz      loc_ret_732             ; Jump if zero +273F:3814  F7 D8                                neg     ax +273F:3816  2A E8                                sub     ch,al +273F:3818  F6 E1                                mul     cl                      ; ax = reg * al +273F:381A  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:381C  03 F0                                add     si,ax +273F:381E  33 C0                                xor     ax,ax                   ; Zero register +273F:3820  EB 13                                jmp     short loc_734           ; (3835) +273F:3822                       loc_731:                                        ;  xref 273F:380A +273F:3822  3D 00C0                              cmp     ax, 192                 ; Row too high? +273F:3825  72 01                                jb      loc_733 + +273F:3827                       loc_ret_732:                                    ;  xref 273F:3810, 3812 +273F:3827  C3                                   retn +273F:3828                       loc_733: +273F:3828  8B D0                                mov     dx,ax                   ; Get start row +273F:382A  03 57 06                             add     dx,[bx+ANIM_HEIGHT]     ; Add number of rows +273F:382D  81 EA 00C0                           sub     dx, 192                 ; Bottom row > 192? +273F:3831  76 02                                jbe     loc_734 +273F:3833  2A EA                                sub     ch,dl                   ; Yes, reduce height to fit +273F:3835                       loc_734: +273F:3835  51                                   push    cx +273F:3836  8B D0                                mov     dx,ax                   ; ax = line number, and +273F:3838  D1 E0                                shl     ax,1                    ; will be * 320 +273F:383A  D1 E0                                shl     ax,1 +273F:383C  03 D0                                add     dx,ax +273F:383E  B1 06                                mov     cl,6 +273F:3840  D3 E2                                shl     dx,cl +273F:3842  8B FA                                mov     di,dx                   ; di = start of line +273F:3844 ú81 C7 0A00                           add     di, MENUBAR_BLOCK_SIZE  ; Compensate for menubar +273F:3848  59                                   pop     cx + +273F:3849  8B 07                                mov     ax,[bx]                 ; Get start X position +273F:384B  2D 0080                              sub     ax,80h +273F:384E  73 21                                jnc     loc_736                 ; Jump if carry=0 +273F:3850  8B D0                                mov     dx,ax +273F:3852  02 D1                                add     dl,cl +273F:3854  72 01                                jc      loc_735                 ; Jump if carry Set +273F:3856  C3                                   retn +273F:3857                       loc_735:                                        ;  xref 273F:3854 +273F:3857  F7 D0                                not     ax +273F:3859  2A C8                                sub     cl,al +273F:385B  2E: A3 1500                          mov     word ptr cs:data_215,ax ; (273F:1500=0) +273F:385F  C6 06 11B0 01                        mov     byte ptr ds:[11B0h],1   ; (273F:11B0=0BEh) +273F:3864  8B 47 04                             mov     ax,[bx+ANIM_WIDTH] +273F:3867  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3869  2E: A3 1505                          mov     cs:data_218,ax          ; (273F:1505=0) +273F:386D  33 C0                                xor     ax,ax                   ; Zero register +273F:386F  EB 22                                jmp     short loc_738           ; (3893) +273F:3871                       loc_736:                                        ;  xref 273F:384E +273F:3871  3D 0140                              cmp     ax,140h +273F:3874  72 01                                jb      loc_737                 ; Jump if below +273F:3876  C3                                   retn + +273F:3877                       loc_737:                                        ;  xref 273F:3874 +273F:3877  8B D0                                mov     dx,ax +273F:3879  03 57 04                             add     dx,[bx+ANIM_WIDTH] +273F:387C  81 EA 0140                           sub     dx,140h +273F:3880  76 11                                jbe     loc_738                 ; Jump if below or = +273F:3882  2A CA                                sub     cl,dl +273F:3884  C6 06 11B0 01                        mov     byte ptr ds:[11B0h],1   ; (273F:11B0=0BEh) + +273F:3889  8B 57 04                             mov     dx,[bx+ANIM_WIDTH] +273F:388C  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:388E  2E: 89 16 1505                       mov     cs:data_218,dx          ; (273F:1505=0) +273F:3893                       loc_738:                                        ;  xref 273F:386F, 3880 +273F:3893  03 F8                                add     di,ax +273F:3895  8A 5F 28                             mov     bl,[bx+ANIM_START_COLOUR] ; Colour offset start +273F:3898  F6 06 11B0 FF                        test    byte ptr ds:[11B0h],0FFh +273F:389D  75 47                                jnz     loc_743                   ; Jump if not zero +273F:389F  1E                                   push    ds +273F:38A0  06                                   push    es +273F:38A1  A1 4CE4                              mov     ax, data_segment2 +273F:38A4  8E C0                                mov     es,ax +273F:38A6  1F                                   pop     ds +273F:38A7  8A D1                                mov     dl,cl +273F:38A9  8A CD                                mov     cl,ch +273F:38AB  32 ED                                xor     ch,ch                   ; Zero register +273F:38AD  32 F6                                xor     dh,dh                   ; Zero register +273F:38AF  D1 EA                                shr     dx,1                    ; Divide by 2 + +; This seems to be the loop for applying an animation to the off-screen buffer +; cx = height, dx = width/2, es:di = dest, bl = starting colour offset +; ds:si = source - each byte consists of two pixels. An output pixel will +; be the starting colour offset + the nibble value of the source byte + +273F:38B1                       locloop_739:                                    ;  xref 273F:38E2 +273F:38B1  51                                   push    cx +273F:38B2  52                                   push    dx +273F:38B3  B1 04                                mov     cl,4 +273F:38B5  57                                   push    di +273F:38B6                       loc_740:                                        ;  xref 273F:38D9 +273F:38B6  AC                                   lodsb                           ; String [si] to al +273F:38B7  8A E0                                mov     ah,al +273F:38B9  D2 EC                                shr     ah,cl                   ; Shift w/zeros fill +273F:38BB  25 0F0F                              and     ax,0F0Fh +273F:38BE  0A E4                                or      ah,ah                   ; Zero ? +273F:38C0  74 05                                jz      loc_741                 ; Jump if zero +273F:38C2  02 E3                                add     ah,bl +273F:38C4  26: 88 25                            mov     es:[di],ah +273F:38C7                       loc_741:                                        ;  xref 273F:38C0 +273F:38C7  83 C7 01                             add     di,1 +273F:38CA  0A C0                                or      al,al                   ; Zero ? +273F:38CC  74 05                                jz      loc_742                 ; Jump if zero +273F:38CE  02 C3                                add     al,bl +273F:38D0  26: 88 05                            mov     es:[di],al +273F:38D3                       loc_742:                                        ;  xref 273F:38CC +273F:38D3  83 C7 01                             add     di,1 +273F:38D6  83 EA 01                             sub     dx,1 +273F:38D9  75 DB                                jnz     loc_740                 ; Jump if not zero + +273F:38DB  5F                                   pop     di +273F:38DC ú81 C7 0140                           add     di,SCREEN_WIDTH +273F:38E0  5A                                   pop     dx +273F:38E1  59                                   pop     cx +273F:38E2  E2 CD                                loop    locloop_739             ; Loop if cx > 0 + +273F:38E4  1F                                   pop     ds +273F:38E5  C3                                   retn + + +273F:38E6                       loc_743:                                        ;  xref 273F:389D +273F:38E6  1E                                   push    ds +273F:38E7  06                                   push    es +273F:38E8  A1 4CE4                              mov     ax, data_segment2 +273F:38EB  8E C0                                mov     es,ax +273F:38ED  1F                                   pop     ds +273F:38EE  8A D1                                mov     dl,cl +273F:38F0  8A CD                                mov     cl,ch +273F:38F2  32 ED                                xor     ch,ch                   ; Zero register +273F:38F4  32 F6                                xor     dh,dh                   ; Zero register + +273F:38F6                       locloop_744:                                    ;  xref 273F:3944 +273F:38F6  51                                   push    cx +273F:38F7  8B CA                                mov     cx,dx +273F:38F9  57                                   push    di +273F:38FA  56                                   push    si +273F:38FB  2E: A1 1500                          mov     ax,word ptr cs:data_215 ; (273F:1500=0) +273F:38FF  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3901  9C                                   pushf                           ; Push flags +273F:3902  03 F0                                add     si,ax +273F:3904  9D                                   popf                            ; Pop flags +273F:3905  73 05                                jnc     locloop_745             ; Jump if carry=0 +273F:3907  AC                                   lodsb                           ; String [si] to al +273F:3908  24 0F                                and     al,0Fh +273F:390A  EB 1E                                jmp     short locloop_747       ; (392A) + +273F:390C                       locloop_745:                                    ;  xref 273F:3905, 3936 +273F:390C  AC                                   lodsb                           ; String [si] to al +273F:390D  8A E0                                mov     ah,al +273F:390F  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:3911  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:3913  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:3915  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:3917  25 0F0F                              and     ax,0F0Fh +273F:391A  0A E4                                or      ah,ah                   ; Zero ? +273F:391C  74 05                                jz      loc_746                 ; Jump if zero +273F:391E  02 E3                                add     ah,bl +273F:3920  26: 88 25                            mov     es:[di],ah +273F:3923                       loc_746:                                        ;  xref 273F:391C +273F:3923  83 C7 01                             add     di,1 +273F:3926  E2 02                                loop    locloop_747             ; Loop if cx > 0 + +273F:3928  EB 0E                                jmp     short loc_749           ; (3938) + +273F:392A                       locloop_747:                                    ;  xref 273F:390A, 3926 +273F:392A  0A C0                                or      al,al                   ; Zero ? +273F:392C  74 05                                jz      loc_748                 ; Jump if zero +273F:392E  02 C3                                add     al,bl +273F:3930  26: 88 05                            mov     es:[di],al +273F:3933                       loc_748:                                        ;  xref 273F:392C +273F:3933  83 C7 01                             add     di,1 +273F:3936  E2 D4                                loop    locloop_745             ; Loop if cx > 0 + +273F:3938                       loc_749:                                        ;  xref 273F:3928 +273F:3938  5E                                   pop     si +273F:3939  2E: 03 36 1505                       add     si,cs:data_218          ; (273F:1505=0) +273F:393E  5F                                   pop     di +273F:393F ú81 C7 0140                           add     di, SCREEN_WIDTH +273F:3943  59                                   pop     cx +273F:3944  E2 B0                                loop    locloop_744             ; Loop if cx > 0 + +273F:3946  1F                                   pop     ds +273F:3947  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                                                                ;* No entry point to code +273F:3948  A1 4CE4                              mov     ax, data_segment2 +273F:394B  8E C0                                mov     es,ax +273F:394D  B2 08                                mov     dl,8 +273F:394F                       loc_750:                                        ;  xref 273F:396C +273F:394F  57                                   push    di +273F:3950  8B CB                                mov     cx,bx + +273F:3952                       locloop_751:                                    ;  xref 273F:3963 +273F:3952  26: 80 3D E2                         cmp     byte ptr es:[di],0E2h +273F:3956  74 06                                je      loc_752                 ; Jump if equal +273F:3958  26: 80 3D FF                         cmp     byte ptr es:[di],0FFh +273F:395C  75 04                                jne     loc_753                 ; Jump if not equal +273F:395E                       loc_752:                                        ;  xref 273F:3956 +273F:395E  26: 80 35 1D                         xor     byte ptr es:[di],1Dh +273F:3962                       loc_753:                                        ;  xref 273F:395C +273F:3962  47                                   inc     di +273F:3963  E2 ED                                loop    locloop_751             ; Loop if cx > 0 + +273F:3965  5F                                   pop     di +273F:3966 ú81 C7 0140                           add     di,data_1446e           ; (A000:0140=0) +273F:396A  FE CA                                dec     dl +273F:396C  75 E1                                jnz     loc_750                 ; Jump if not zero +273F:396E  C3                                   retn + +                         vga_add_animation      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      menubar_copy_to_screen    proc    near + +273F:396F  B8 A000                              mov     ax, VGA_SEGMENT +273F:3972  8E C0                                mov     es,ax +273F:3974  1E                                   push    ds +273F:3975  A1 4CE4                              mov     ax, data_segment2 +273F:3978  8E D8                                mov     ds,ax +273F:397A  B9 0500                              mov     cx, MENUBAR_BLOCK_SIZE/2 ; 500h words +500h +273F:397D  33 F6                                xor     si,si                   ; Zero register +273F:397F  33 FF                                xor     di,di                   ; Zero register +273F:3981  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3983  1F                                   pop     ds +273F:3984  C6 06 4BF0 00                        mov     byte ptr ds:[4BF0h],0   ; (273F:4BF0=3) +273F:3989  C3                                   retn + +                      menubar_copy_to_screen    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0BF9, 7B99, A7CC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:398A                  decode_file_entry    proc    near +273F:398A  83 C2 08                             add     dx,8 +273F:398D  1E                                   push    ds +273F:398E  8C C3                                mov     bx,es +273F:3990  8E C2                                mov     es,dx +273F:3992  8E DA                                mov     ds,dx +273F:3994  A1 0402                              mov     ax, ds:[402h] +273F:3997  B1 0C                                mov     cl,0Ch +273F:3999  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:399B  03 D0                                add     dx,ax +273F:399D  A1 0400                              mov     ax, ds:[400h] +273F:39A0  B1 04                                mov     cl,4 +273F:39A2  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:39A4  03 D0                                add     dx,ax +273F:39A6  8B 36 0400                           mov     si, ds:[400h] +273F:39AA  83 E6 0F                             and     si,0Fh +273F:39AD  8E DA                                mov     ds,dx +273F:39AF  8B D3                                mov     dx,bx +273F:39B1  33 FF                                xor     di,di                   ; Zero register +273F:39B3 úBB 0404                              mov     bx, ds:[404h] +273F:39B6  26: 8A 2F                            mov     ch,es:[bx] +273F:39B9  83 C3 01                             add     bx,1 +273F:39BC  B1 09                                mov     cl,9 +273F:39BE                       loc_754:                                        ;  xref 273F:3A70 +273F:39BE úAC                                   lodsb                           ; String [si] to al +273F:39BF  06                                   push    es +273F:39C0  8E C2                                mov     es,dx +273F:39C2  AA                                   stosb                           ; Store al to es:[di] +273F:39C3  07                                   pop     es +273F:39C4  32 E4                                xor     ah,ah                   ; Zero register +273F:39C6  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:39C8  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:39CA  8B E8                                mov     bp,ax +273F:39CC                       loc_755:                                        ;  xref 273F:3A02, 3A1D, 3A9C +273F:39CC ú80 E9 01                             sub     cl,1 +273F:39CF  75 08                                jnz     loc_756                 ; Jump if not zero +273F:39D1  26: 8A 2F                            mov     ch,es:[bx] +273F:39D4  B1 08                                mov     cl,8 +273F:39D6  83 C3 01                             add     bx,1 +273F:39D9                       loc_756:                                        ;  xref 273F:39CF +273F:39D9  D0 E5                                shl     ch,1                    ; Shift w/zeros fill +273F:39DB  72 42                                jc      loc_761                 ; Jump if carry Set +273F:39DD  80 E9 01                             sub     cl,1 +273F:39E0  75 08                                jnz     loc_757                 ; Jump if not zero +273F:39E2  26: 8A 2F                            mov     ch,es:[bx] +273F:39E5  B1 08                                mov     cl,8 +273F:39E7  83 C3 01                             add     bx,1 +273F:39EA                       loc_757:                                        ;  xref 273F:39E0 +273F:39EA  D0 E5                                shl     ch,1                    ; Shift w/zeros fill +273F:39EC  72 16                                jc      loc_759                 ; Jump if carry Set +273F:39EE  87 DD                                xchg    bx,bp +273F:39F0  26: 8A 07                            mov     al,es:[bx] +273F:39F3  8B DD                                mov     bx,bp +273F:39F5                       loc_758:                                        ;  xref 273F:3A49, 3A53, 3A6E +273F:39F5 ú06                                   push    es +273F:39F6  8E C2                                mov     es,dx +273F:39F8  AA                                   stosb                           ; Store al to es:[di] +273F:39F9  07                                   pop     es +273F:39FA  32 E4                                xor     ah,ah                   ; Zero register +273F:39FC  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:39FE  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:3A00  8B E8                                mov     bp,ax +273F:3A02  EB C8                                jmp     short loc_755           ; (39CC) +273F:3A04                       loc_759:                                        ;  xref 273F:39EC +273F:3A04  8B C5                                mov     ax,bp +273F:3A06  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A08  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A0A  8A 24                                mov     ah,[si] +273F:3A0C  83 C6 01                             add     si,1 +273F:3A0F  0A E4                                or      ah,ah                   ; Zero ? +273F:3A11  74 60                                jz      loc_768                 ; Jump if zero +273F:3A13  06                                   push    es +273F:3A14  8E C2                                mov     es,dx +273F:3A16                       loc_760:                                        ;  xref 273F:3A1A +273F:3A16  AA                                   stosb                           ; Store al to es:[di] +273F:3A17  80 EC 01                             sub     ah,1 +273F:3A1A  75 FA                                jnz     loc_760                 ; Jump if not zero +273F:3A1C  07                                   pop     es +273F:3A1D  EB AD                                jmp     short loc_755           ; (39CC) +273F:3A1F                       loc_761:                                        ;  xref 273F:39DB +273F:3A1F  80 E9 01                             sub     cl,1 +273F:3A22  75 08                                jnz     loc_762                 ; Jump if not zero +273F:3A24  26: 8A 2F                            mov     ch,es:[bx] +273F:3A27  B1 08                                mov     cl,8 +273F:3A29  83 C3 01                             add     bx,1 +273F:3A2C                       loc_762:                                        ;  xref 273F:3A22 +273F:3A2C  D0 E5                                shl     ch,1                    ; Shift w/zeros fill +273F:3A2E  72 25                                jc      loc_765                 ; Jump if carry Set +273F:3A30  80 E9 01                             sub     cl,1 +273F:3A33  75 08                                jnz     loc_763                 ; Jump if not zero +273F:3A35  26: 8A 2F                            mov     ch,es:[bx] +273F:3A38  B1 08                                mov     cl,8 +273F:3A3A  83 C3 01                             add     bx,1 +273F:3A3D                       loc_763:                                        ;  xref 273F:3A33 +273F:3A3D  D0 E5                                shl     ch,1                    ; Shift w/zeros fill +273F:3A3F  72 0A                                jc      loc_764                 ; Jump if carry Set +273F:3A41  87 DD                                xchg    bx,bp +273F:3A43  26: 8A 47 01                         mov     al,es:[bx+1] +273F:3A47  8B DD                                mov     bx,bp +273F:3A49  EB AA                                jmp     short loc_758           ; (39F5) +273F:3A4B                       loc_764:                                        ;  xref 273F:3A3F +273F:3A4B  87 DD                                xchg    bx,bp +273F:3A4D  26: 8A 47 02                         mov     al,es:[bx+2] +273F:3A51  8B DD                                mov     bx,bp +273F:3A53  EB A0                                jmp     short loc_758           ; (39F5) +273F:3A55                       loc_765:                                        ;  xref 273F:3A2E +273F:3A55  80 E9 01                             sub     cl,1 +273F:3A58  75 08                                jnz     loc_766                 ; Jump if not zero +273F:3A5A  26: 8A 2F                            mov     ch,es:[bx] +273F:3A5D  B1 08                                mov     cl,8 +273F:3A5F  83 C3 01                             add     bx,1 +273F:3A62                       loc_766:                                        ;  xref 273F:3A58 +273F:3A62  D0 E5                                shl     ch,1                    ; Shift w/zeros fill +273F:3A64  72 0A                                jc      loc_767                 ; Jump if carry Set +273F:3A66  87 DD                                xchg    bx,bp +273F:3A68  26: 8A 47 03                         mov     al,es:[bx+3] +273F:3A6C  8B DD                                mov     bx,bp +273F:3A6E  EB 85                                jmp     short loc_758           ; (39F5) +273F:3A70                       loc_767:                                        ;  xref 273F:3A64 +273F:3A70  E9 FF4B                              jmp     loc_754                 ; (39BE) +273F:3A73                       loc_768:                                        ;  xref 273F:3A11 +273F:3A73  AC                                   lodsb                           ; String [si] to al +273F:3A74  0A C0                                or      al,al                   ; Zero ? +273F:3A76  74 27                                jz      loc_769                 ; Jump if zero +273F:3A78  8B C7                                mov     ax,di +273F:3A7A  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A7C  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A7E  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A80  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A82  03 D0                                add     dx,ax +273F:3A84  83 E7 0F                             and     di,0Fh +273F:3A87  51                                   push    cx +273F:3A88  8C D9                                mov     cx,ds +273F:3A8A  8B C6                                mov     ax,si +273F:3A8C  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A8E  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A90  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A92  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:3A94  03 C8                                add     cx,ax +273F:3A96  8E D9                                mov     ds,cx +273F:3A98  83 E6 0F                             and     si,0Fh +273F:3A9B  59                                   pop     cx +273F:3A9C  E9 FF2D                              jmp     loc_755                 ; (39CC) +273F:3A9F                       loc_769:                                        ;  xref 273F:3A76 +273F:3A9F  1F                                   pop     ds +273F:3AA0  83 C7 0F                             add     di,0Fh +273F:3AA3  D1 EF                                shr     di,1                    ; Shift w/zeros fill +273F:3AA5  D1 EF                                shr     di,1                    ; Shift w/zeros fill +273F:3AA7  D1 EF                                shr     di,1                    ; Shift w/zeros fill +273F:3AA9  D1 EF                                shr     di,1                    ; Shift w/zeros fill +273F:3AAB  03 D7                                add     dx,di +273F:3AAD  C3                                   retn +                           decode_file_entry    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00C9, 70CA, 8FFA +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3AAE               replace_vga_palette     proc    near +273F:3AAE  1E                                   push    ds +273F:3AAF  07                                   pop     es +273F:3AB0 úBE 1757                              mov     si,offset replacement_vga_palette +273F:3AB3 úBF 15DA                              mov     di,offset unprocessed_vga_palette2 +273F:3AB6  B9 00B4                              mov     cx, 60*3                ; Move 60 palette entries +273F:3AB9  F3/ A4                               rep     movsb + +273F:3ABB               replace_vga_palette2: +273F:3ABB úBE 180B                              mov     si, offset replacement_vga_ palette2 +273F:3ABE úBF 16EB                              mov     di, offset unprocessed_vga_palette3 +273F:3AC1  B9 0018                              mov     cx, 8*3                 ; Move 8 palette entries +273F:3AC4  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3AC6  C3                                   retn +                        replace_vga_palette     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0C13, 0C35, 0C5A, 3C95, 75AE, 75D2, 75F0 +                                ;                             760E, A549, A5BB, A66D, A6C4, A914 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3AC7                     read_palette      proc    near +273F:3AC7  8C D9                                mov     cx,ds +273F:3AC9  BA 1457                              mov     dx, unprocessed_vga_palette +273F:3ACC  56                                   push    si +273F:3ACD  E8 C844                              call    read_entry              ; (0314) +273F:3AD0  5E                                   pop     si +273F:3AD1  C6 06 1456 FF                        mov     current_room_num, 0FFh  ; (31E4:1456=0FFh) +273F:3AD6  C3                                   retn +                              read_palette      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                  vga_toggle_menu_highlight     proc    near + +273F:3AD7  A1 4CE4                              mov     ax, data_segment2 +273F:3ADA  8E C0                                mov     es,ax +273F:3ADC  BA 0008                              mov     dx,8                    ; Number of lines +273F:3ADF  B0 F7                                mov     al,0F7h +273F:3AE1                       loc_770:                                        ;  xref 273F:3AFA +273F:3AE1  57                                   push    di +273F:3AE2  8B CB                                mov     cx,bx + +273F:3AE4                       locloop_771:                                    ;  xref 273F:3AF2 +273F:3AE4  26: 84 05                            test    al,es:[di] +273F:3AE7  74 05                                jz      loc_772                 ; Jump if zero +273F:3AE9  26: 38 05                            cmp     es:[di],al +273F:3AEC  75 03                                jne     loc_773                 ; Jump if not equal +273F:3AEE                       loc_772:                                        ;  xref 273F:3AE7 +273F:3AEE  26: 30 05                            xor     es:[di],al +273F:3AF1                       loc_773:                                        ;  xref 273F:3AEC +273F:3AF1  47                                   inc     di +273F:3AF2  E2 F0                                loop    locloop_771             ; Loop if cx > 0 + +273F:3AF4  5F                                   pop     di +273F:3AF5  81 C7 0140                           add     di,140h +273F:3AF9  4A                                   dec     dx +273F:3AFA  75 E5                                jnz     loc_770                 ; Jump if not zero +273F:3AFC  C3                                   retn + +                  vga_toggle_menu_highlight     endp + +273F:3AFD  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                     copy_protection_check      proc    near + +273F:3AFE  F6 06 1854 FF                        test    cp_num_digits, 0FFh     ; Sequence previously entered? +273F:3B03  74 01                                jz      loc_3B06 +273F:3B05  C3                                   ret +273F:3B06  8B 04              loc_3B06:         mov     ax, [si] +273F:3B08  E8 86 01                             call    read_screen_alt +273F:3B0B  BB 1830                              mov     bx, offset animation_rec_1 +273F:3B0E  E8 D1 3C                             call    animation_decode +273F:3B11  BB 1839                              mov     bx, offset animation_rec_2 +273F:3B14  E8 CB 3C                             call    animation_decode +273F:3B17  BB 1842                              mov     bx, offset animation_rec_3 +273F:3B1A  E8 C5 3C                             call    animation_decode + +; Make a backup copy of the first 10 animation table entries + +273F:3B1D  A1 4D00                              mov     ax, buffer_segment +273F:3B20  8EC0                                 mov     es, ax +273F:3B22  BE4EB1                               mov     si, offset animation_table +273F:3B25  33FF                                 xor     di, di +273F:3B27  B9CD00                               mov     cx, ANIMATION_SLOT_SIZE*10/2 ; 00CDh +273F:3B2A  F3 A5                                rep     movsw + +; Current hard coded jump to bypass copy protection code + +273F:3B2C  E92401                               jmp     loc_784 + +; Original program's code below + +273F:3B2C  1E                                   push    ds +273F:3B2D  07                                   pop     es +273F:3B2E  BF B14E                              mov     di, offset animation_table +273F:3B31  BE 1850                              mov     si, offset anim_src_table +273F:3B34  BB 1830                              mov     bx, offset animation_rec_1 +273F:3B37  8B4703                               mov     ax, [bx+3] +273F:3B3A  B200                                 mov     dl, 0 +273F:3B3C  E8BE01                               call    animation_set_entry +273F:3B3F  E8BB01                               call    animation_set_entry +273F:3B42  BB3918                               mov     bx, offset animation_rec_2 +273F:3B45  8B4703                               mov     ax, [bx+03] +273F:3B48  B220                                 mov     dl, 20 +273F:3B4A  E8B001                               call    animation_set_entry +273F:3B4D  BB4218                               mov     bx, offset animation_rec_3 +273F:3B50  8B4703                               mov     ax, [bx+3] +273F:3B53  E8A701                               call    animation_set_entry +273F:3B56  E8A401                               call    animation_set_entry +273F:3B59  E8A101                               call    animation_set_entry +273F:3B5C  E89E01                               call    animation_set_entry +273F:3B5F  FF164407                             call    [show_screen_proc] +273F:3B63  FF166207                             call    [set_lower_palette_proc] + +273F:3B67                       loc_774:                                        ;  xref 273F:3C48 +273F:3B67 úB8 0002                              mov     ax,2 +273F:3B6A úBB 0001                              mov     bx,1                    ; (273F:0001=0E4h) +273F:3B6D  E8 0169                              call    animation_draw +273F:3B70  FF 16 0744                           call    word ptr [show_screen_proc] +273F:3B74                       loc_775:                                        ;  xref 273F:3B82 +273F:3B74  B8 0005                              mov     ax,5 +273F:3B77  E8 0E6F                              call    sleep                   ; (49E9) +273F:3B7A  E8 00EE                              call    protection_cycle_characters +273F:3B7D  F6 06 11D5 FF                        test    mouse_buttons, 0FFh +273F:3B82  75 F0                                jnz     loc_775                 ; Jump if not zero +273F:3B84                       loc_776:                                        ;  xref 273F:3B87 +273F:3B84  E8 5999                              call    check_keypress                 ; (9520) +273F:3B87  75 FB                                jnz     loc_776                 ; Jump if not zero + +273F:3B89                       loc_777:                                        ;  xref 273F:3B9C +273F:3B89  B8 0005                              mov     ax,5 +273F:3B8C  E8 0E5A                              call    sleep                   ; (49E9) +273F:3B8F  E8 00D9                              call    protection_cycle_characters +273F:3B92  E8 598B                              call    check_keypress                 ; (9520) +273F:3B95  75 07                                jnz     loc_778                 ; Jump if not zero +273F:3B97  F6 06 11D5 FF                        test    mouse_buttons, 0FFh +273F:3B9C  74 EB                                jz      loc_777                 ; Jump if zero +273F:3B9E                       loc_778:                                        ;  xref 273F:3B95 +273F:3B9E  B8 0002                              mov     ax,2                    ; Change title text +273F:3BA1  33 DB                                xor     bx,bx                   ; Anim #2, frame #0 +273F:3BA3  E8 0133                              call    animation_draw +273F:3BA6  FF 16 0744                           call    word ptr [show_screen_proc] +273F:3BAA  C6 06 1854 00                        mov     cp_num_digits, 0 + +273F:3BAF                       loc_779:                                        ; Get keypress +273F:3BAF úE8 596E                              call    check_keypress +273F:3BB2  74 FB                                jz      loc_779 +273F:3BB4  3C 08                                cmp     al,8                    ; Backspace? +273F:3BB6  74 28                                je      cp_backspace            ; Jump if equal +273F:3BB8  3C 30                                cmp     al,30h                  ; '0' +273F:3BBA  72 F3                                jb      loc_779                 ; Jump if below +273F:3BBC  3C 3A                                cmp     al,3Ah                  ; '9' + 1 +273F:3BBE  73 EF                                jae     loc_779                 ; Jump if above or = + +; At this point a numeric key has been pressed + +273F:3BC0  25 000F                              and     ax,0Fh +273F:3BC3  8B D8                                mov     bx,ax +273F:3BC5  A0 1854                              mov     al, cp_num_digits +273F:3BC8  05 0003                              add     ax,3 +273F:3BCB  E8 010B                              call    animation_draw +273F:3BCE  FF 16 0744                           call    word ptr [show_screen_proc] +273F:3BD2  80 06 1854 01                        add     cp_num_digits, 1 +273F:3BD7  80 3E 1854 04                        cmp     cp_num_digits, 4 +273F:3BDC  72 D1                                jb      loc_779                 ; Jump if below +273F:3BDE  73 1F                                jnc     cp_done                 ; Entered all 4 digits + +273F:3BE0                    cp_backspace:                                      ;  xref 273F:3BB6 +273F:3BE0  F6 06 1854 FF                        test    cp_num_digits, 0FFh +273F:3BE5  74 C8                                jz      loc_779                 ; Jump if zero +273F:3BE7  80 2E 1854 01                        sub     cp_num_digits, 1 +273F:3BEC  A0 1854                              mov     al, cp_num_digits +273F:3BEF  04 03                                add     al,3 +273F:3BF1  32 E4                                xor     ah,ah                   ; Zero register +273F:3BF3 úBB 000A                              mov     bx,0Ah                  ; (273F:000A=23h) +273F:3BF6  E8 00E0                              call    animation_draw +273F:3BF9  FF 16 0744                           call    word ptr [show_screen_proc] +273F:3BFD  EB B0                                jmp     short loc_779           ; (3BAF) + +; At this point four digits have been entered, so it's time to check if it's valid + +273F:3BFF                       cp_done:                                        ;  xref 273F:3BDE +273F:3BFF  C7 06 38B1 0000                      mov     time_ctr, 0 +273F:3C05                       loc_782:                                        ;  xref 273F:3C0B +273F:3C05  81 3E 38B1 00C8                      cmp     time_ctr, 0C8h +273F:3C0B  72 F8                                jb      loc_782 + +273F:3C0D  FF 16 1856                           call    [cp_proc] +273F:3C11  73 7D                                jnc     loc_ret_786             ; Numbers correct + +; Redraw the originally displayed message + +273F:3C13  C6 06 1854 00                        mov     cp_num_digits, 0 +273F:3C18  B8 0003                              mov     ax,3 +273F:3C1B úBB 000A                              mov     bx,0Ah                  ; (273F:000A=23h) +273F:3C1E  E8 00B8                              call    animation_draw +273F:3C21  B8 0004                              mov     ax,4 +273F:3C24 úBB 000A                              mov     bx,0Ah                  ; (273F:000A=23h) +273F:3C27  E8 00AF                              call    animation_draw +273F:3C2A  B8 0005                              mov     ax,5 +273F:3C2D úBB 000A                              mov     bx,0Ah                  ; (273F:000A=23h) +273F:3C30  E8 00A6                              call    animation_draw +273F:3C33  B8 0006                              mov     ax,6 +273F:3C36 úBB 000A                              mov     bx,0Ah                  ; (273F:000A=23h) +273F:3C39  E8 009D                              call    animation_draw +273F:3C3C  80 06 1855 01                        add     cp_num_tries, 1 +273F:3C41  80 3E 1855 03                        cmp     cp_num_tries, 3 +273F:3C46  73 03                                jae     loc_783                 ; Jump if above or = +273F:3C48  E9 FF1C                              jmp     loc_774                 ; (3B67) +273F:3C4B                       loc_783:                                         +273F:3C4B  B8 000A                              mov     ax,0Ah                  ; Copy protection failed +273F:3C4E  B6 01                                mov     dh,1 +273F:3C50  E8 0351                              call    display_message         ; (3FA4) + +; Restore the backup copy of the current animation table + +273F:3C53                       loc_784: +273F:3C53  1E                                   push    ds +273F:3C54  1E                                   push    ds +273F:3C55  07                                   pop     es +273F:3C56  A1 4D00                              mov     ax, buffer_segment +273F:3C59  8E D8                                mov     ds,ax +273F:3C5B  33 F6                                xor     si,si                   ; Zero register +273F:3C5D úBF B14E                              mov     di, offset animation_table +273F:3C60  B9 00CD                              mov     cx, ANIMATION_SLOT_SIZE*10/2 ; 0CDh +273F:3C63  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:3C65  1F                                   pop     ds +273F:3C66  FF 16 0766                           call    word ptr ds:[fade_out_proc] +273F:3C6A  C3                                   retn + +                     copy_protection_check      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3B7A, 3B8F +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3C6B       protection_cycle_characters     proc    near + +273F:3C6B  56                                   push    si +273F:3C6C  57                                   push    di +273F:3C6D  06                                   push    es +273F:3C6E  B9 0014                              mov     cx,14h + +; Loop below to choose two random frames from the animation of possible characters. +; If both selections are identical, it will loop back and re-generate two new values + +273F:3C71                       loc_785:                                        ;  xref 273F:3C81 +273F:3C71  E8 07F8                              call    random +273F:3C74  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:3C76  8B DA                                mov     bx,dx +273F:3C78  E8 07F1                              call    random +273F:3C7B  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:3C7D  8B C2                                mov     ax,dx +273F:3C7F  3B C3                                cmp     ax,bx                   ; Prevent both images +273F:3C81  74 EE                                je      loc_785                 ;  being identical + +273F:3C83  E8 0045                              call    protection_draw_characters +273F:3C86  E8 F4D0                              call    wait_for_video_port      +273F:3C89  FF 16 0744                           call    word ptr [show_screen_proc] +273F:3C8D  07                                   pop     es +273F:3C8E  5F                                   pop     di +273F:3C8F  5E                                   pop     si + +273F:3C90                       loc_ret_786:                                    ;  xref 273F:3C11 +273F:3C90  C3                                   retn + +                protection_cycle_characters     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3D22 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3C91                read_screen_alt        proc    near +273F:3C91  50                                   push    ax +273F:3C92  2D 0001                              sub     ax,1 +273F:3C95  E8 FE2F                              call    read_palette            ; (3AC7) +273F:3C98  E8 336A                              call    menubar_clear_image +273F:3C9B  58                                   pop     ax +273F:3C9C  8B 0E 4CE2                           mov     cx, data_segment +273F:3CA0  BA 0080                              mov     dx,80h +273F:3CA3  E8 C66E                              call    read_entry              ; (0314) +273F:3CA6  A1 4CE4                              mov     ax, data_segment2 +273F:3CA9  8B 1E 074C                           mov     bx, menubar_block_size +273F:3CAD  B1 04                                mov     cl,4 +273F:3CAF  D3 EB                                shr     bx,cl                   ; Shift w/zeros fill +273F:3CB1  03 C3                                add     ax,bx +273F:3CB3  8E C0                                mov     es,ax +273F:3CB5  8B 16 4CE2                           mov     dx, data_segment +273F:3CB9  FF 16 077C                           call    [decode_entry_proc] +273F:3CBD  E8 CCA1                              call    clear_hotspot_rects +273F:3CC0  80 0E 11D0 10                        or      menubar_state, 10h      ; (273F:11D0=56h) +273F:3CC5  80 26 11D0 DF                        and     menubar_state, 0DFh     ; (273F:11D0=56h) +273F:3CCA  C3                                   retn +                         read_screen_alt        endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3C83 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3CCB        protection_draw_characters     proc    near +273F:3CCB  50                                   push    ax +273F:3CCC  B8 0001                              mov     ax,1 +273F:3CCF  E8 0007                              call    animation_draw          ; Draw right character +273F:3CD2  5B                                   pop     bx +273F:3CD3  33 C0                                xor     ax,ax +273F:3CD5  E8 0001                              call    animation_draw          ; Draw left character +273F:3CD8  C3                                   retn +                 protection_draw_characters     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3B6D, 3BA3, 3BCB, 3BF6, 3C1E, 3C27, 3C30 +                                ;                             3C39, 3CCF, 3CD5, 3D48, 3D51, 3D8F, 3D98 +                                ;                             3DE1, 3DEA, 3E11, 3E1A +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            animation_draw      proc    near +273F:3CD9  B9 0029                              mov     cx, ANIMATION_SLOT_SIZE +273F:3CDC  F7 E1                                mul     cx +273F:3CDE  05 B14E                              add     ax, offset animation_table ; Calculate anim offset +273F:3CE1  93                                   xchg    bx,ax +273F:3CE2  8B 77 19                             mov     si,[bx+19h]             ; Get address for hotspot +273F:3CE5  F7 64 07                             mul     word ptr [si+7]         ; multiply by frame size +273F:3CE8  8B F0                                mov     si,ax                   ; Store pixel data start +273F:3CEA  89 77 08                             mov     [bx+8],si                +273F:3CED  53                                   push    bx +273F:3CEE  FF 77 0A                             push    word ptr [bx+0Ah]       ; Pixel segment +273F:3CF1  07                                   pop     es +273F:3CF2  FF 16 0754                           call    [add_animation_proc] +273F:3CF6  5F                                   pop     di +273F:3CF7  B0 01                                mov     al,1 +273F:3CF9  E8 CE2C                              call    flag_covered_cells +273F:3CFC  C3                                   retn +                            animation_draw      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3D3E, 3D41 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3CFD              animation_set_entry      proc    near + +273F:3CFD  89 45 0A                             mov     [di+0Ah],ax +273F:3D00  89 5D 19                             mov     [di+19h],bx +273F:3D03  88 55 28                             mov     [di+28h],dl +273F:3D06  B9 0004                              mov     cx,4 +273F:3D09  F3/ A5                               rep     movsw        ; Copy first 8 bytes +273F:3D0B  83 C7 21                             add     di, ANIMATION_SLOT_SIZE - 8 +273F:3D0E  C3                                   retn + +                       animation_set_entry      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                                  cp_proc_1     proc    near + +273F:3D0F  E8 075A                              call    random +273F:3D12  8A 1E 1855                           mov     bl, cp_num_tries +273F:3D16  F6 26 1854                           mul     cp_num_digits           ; ax = data * al +273F:3D1A  F8                                   clc                             ; Clear carry flag +273F:3D1B  0B C0                                or      ax,ax                   ; Zero ? +273F:3D1D  C3                                   retn + +                                  cp_proc_1     proc    near + +273F:3D1E  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:937C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3D1F           restart_restore_dialog      proc    near + +273F:3D1F  B8 7900                              mov     ax,7900h                ; Restart/Restore image +273F:3D22  E8 FF6C                              call    sub_79                  ; Decode it +273F:3D25 úBB 184B                              mov     bx,offset data_657 +273F:3D28  E8 3AB7                              call    animation_decode +273F:3D2B  E8 E247                              call    show_arrow_cursor +273F:3D2E  1E                                   push    ds +273F:3D2F  07                                   pop     es +273F:3D30 úBF B14E                              mov     di, offset animation_table +273F:3D33 úBE 1890                              mov     si,1890h                ; (31E4:1890=0F6h) +273F:3D36 úBB 184B                              mov     bx,offset data_657      ; (31E4:184B=1) +273F:3D39  8B 47 03                             mov     ax,[bx+3] +273F:3D3C  B2 00                                mov     dl,0 +273F:3D3E  E8 FFBC                              call    animation_set_entry                  ; (3CFD) +273F:3D41  E8 FFB9                              call    animation_set_entry                  ; (3CFD) +273F:3D44  33 C0                                xor     ax,ax                   ; Zero register +273F:3D46  33 DB                                xor     bx,bx                   ; Zero register +273F:3D48  E8 FF8E                              call    animation_draw +273F:3D4B  B8 0001                              mov     ax,1 +273F:3D4E úBB 0001                              mov     bx,offset copyright+1   ; (31E4:0001='o') +273F:3D51  E8 FF85                              call    animation_draw +273F:3D54  FF 16 0744                           call    word ptr [show_screen_proc] +273F:3D58  FF 16 0760                           call    word ptr [fade_in_proc] +273F:3D5C  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:3D61                       loc_787:                                        ;  xref 273F:3DB0, 3E02, 3E30 +273F:3D61 úFF 16 0744                           call    word ptr [show_screen_proc] +273F:3D65                       loc_788:                                        ;  xref 273F:3DA8 +273F:3D65  E8 5660                              call    room_check_keypresses +273F:3D68  A1 11D6                              mov     ax, mouse_x2   +273F:3D6B  05 0080                              add     ax,80h +273F:3D6E  2B 06 1890                           sub     ax,word ptr ds:[1890h]  ; (31E4:1890=0F6h) +273F:3D72  72 47                                jc      loc_791                 ; Jump if carry Set +273F:3D74  3D 0025                              cmp     ax,25h +273F:3D77  73 42                                jae     loc_791                 ; Jump if above or = +273F:3D79  A1 11D8                              mov     ax, mouse_y2   +273F:3D7C  05 0080                              add     ax,80h +273F:3D7F  2B 06 1892                           sub     ax,word ptr ds:[1892h]  ; (31E4:1892=118h) +273F:3D83  72 36                                jc      loc_791                 ; Jump if carry Set +273F:3D85  3D 000E                              cmp     ax,0Eh +273F:3D88  73 31                                jae     loc_791                 ; Jump if above or = +273F:3D8A  33 C0                                xor     ax,ax                   ; Zero register +273F:3D8C úBB 0002                              mov     bx,offset copyright+2   ; (31E4:0002='py') +273F:3D8F  E8 FF47                              call    animation_draw +273F:3D92  B8 0001                              mov     ax,1 +273F:3D95 úBB 0001                              mov     bx,offset copyright+1   ; (31E4:0001='o') +273F:3D98  E8 FF3E                              call    animation_draw +273F:3D9B  F6 06 11DA FF                        test    mouse_buttons2, 0FFh +273F:3DA0  75 10                                jnz     loc_790                 ; Jump if not zero +273F:3DA2  2E: 80 3E 3D1E 01                    cmp     cs:data_288,1           ; (273F:3D1E=0) +273F:3DA8                       loc_789:                                        ;  xref 273F:3DFA +273F:3DA8  74 BB                                je      loc_788                 ; Jump if equal +273F:3DAA  2E: C6 06 3D1E 01                    mov     cs:data_288,1           ; (273F:3D1E=0) +273F:3DB0  EB AF                                jmp     short loc_787           ; (3D61) +273F:3DB2                       loc_790:                                        ;  xref 273F:3DA0 +273F:3DB2  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:3DB7  0D 0001                              or      ax,1 +273F:3DBA  C3                                   retn +273F:3DBB                       loc_791:                                        ;  xref 273F:3D72, 3D77, 3D83, 3D88 +273F:3DBB  A1 11D6                              mov     ax, mouse_x2 +273F:3DBE  05 0080                              add     ax,80h +273F:3DC1  2B 06 1898                           sub     ax,word ptr ds:[1898h]  ; (31E4:1898=128h) +273F:3DC5  72 46                                jc      loc_794                 ; Jump if carry Set +273F:3DC7  3D 0025                              cmp     ax,25h +273F:3DCA  73 41                                jae     loc_794                 ; Jump if above or = +273F:3DCC  A1 11D8                              mov     ax, mouse_y2 +273F:3DCF  05 0080                              add     ax,80h +273F:3DD2  2B 06 189A                           sub     ax,word ptr ds:[189Ah]  ; (31E4:189A=118h) +273F:3DD6  72 35                                jc      loc_794                 ; Jump if carry Set +273F:3DD8  3D 000E                              cmp     ax,0Eh +273F:3DDB  73 30                                jae     loc_794                 ; Jump if above or = +273F:3DDD  33 C0                                xor     ax,ax                   ; Zero register +273F:3DDF  33 DB                                xor     bx,bx                   ; Zero register +273F:3DE1  E8 FEF5                              call    animation_draw +273F:3DE4  B8 0001                              mov     ax,1 +273F:3DE7 úBB 0003                              mov     bx,offset copyright+3   ; (31E4:0003='y') +273F:3DEA  E8 FEEC                              call    animation_draw +273F:3DED  F6 06 11DA FF                        test    mouse_buttons2, 0FFh +273F:3DF2  75 11                                jnz     loc_793                 ; Jump if not zero +273F:3DF4  2E: 80 3E 3D1E 02                    cmp     cs:data_288,2           ; (273F:3D1E=0) +273F:3DFA                       loc_792:                                        ;  xref 273F:3E28 +273F:3DFA  74 AC                                je      loc_789                 ; Jump if equal +273F:3DFC  2E: C6 06 3D1E 02                    mov     cs:data_288,2           ; (273F:3D1E=0) +273F:3E02  E9 FF5C                              jmp     loc_787                 ; (3D61) +273F:3E05                       loc_793:                                        ;  xref 273F:3DF2 +273F:3E05  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:3E0A  33 C0                                xor     ax,ax                   ; Zero register +273F:3E0C  C3                                   retn +273F:3E0D                       loc_794:                                        ;  xref 273F:3DC5, 3DCA, 3DD6, 3DDB +273F:3E0D  33 C0                                xor     ax,ax                   ; Zero register +273F:3E0F  33 DB                                xor     bx,bx                   ; Zero register +273F:3E11  E8 FEC5                              call    animation_draw +273F:3E14  B8 0001                              mov     ax,1 +273F:3E17 úBB 0001                              mov     bx,offset copyright+1   ; (31E4:0001='o') +273F:3E1A  E8 FEBC                              call    animation_draw +273F:3E1D  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:3E22  2E: F6 06 3D1E FF                    test    cs:data_288,0FFh        ; (273F:3D1E=0) +273F:3E28  74 D0                                jz      loc_792                 ; Jump if zero +273F:3E2A  2E: C6 06 3D1E 00                    mov     cs:data_288,0           ; (273F:3D1E=0) +273F:3E30  E9 FF2E                              jmp     loc_787                 ; (3D61) + +                    restart_restore_dialog      endp + +273F:3E33  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:000B, 009D, 2053, 4792, 4FAB, 5024, 5423 +                                ;                             5738, 57D3, 5838, 58DA, 592B, 5AF2, 5B55 +                                ;                             5BCF, 5C21, 5C66, 5C87, 5CD7, 5D40, 8A0D +                                ;                             8AFF, 8C52, 8C67, 8C7A, 8CA4, 95F7, 962F +                                ;                             9635 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3E34                 sequence_execute      proc    near +273F:3E34 ú57                                   push    di +273F:3E35  56                                   push    si +273F:3E36  55                                   push    bp +273F:3E37  53                                   push    bx +273F:3E38  8B F0                                mov     si,ax +273F:3E3A  C7 06 BA1D 0000                      mov     sequence_result, 0 +273F:3E40  E8 000A                              call    sequence_execute_inner +273F:3E43  5B                                   pop     bx +273F:3E44  5D                                   pop     bp +273F:3E45  5E                                   pop     si +273F:3E46  5F                                   pop     di +273F:3E47  A1 BA1D                              mov     ax, sequence_result +273F:3E4A  0B C0                                or      ax,ax                   ; Zero ? +273F:3E4C  C3                                   retn +                          sequence_execute      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3E40, 3F51 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +                       sequence_execute_inner   proc    near +273F:3E4D  89 26 1910                           mov     current_sp, sp +273F:3E51  BF 1910                              mov     di, offset current_sp   ; Set up stack frame +273F:3E54  B8 450F                              mov     ax, scripts_seg +273F:3E57  8E C0                                mov     es,ax + +273F:3E59                       loc_796: +273F:3E59 ú26: 8A 1C                            mov     bl,es:[si] +273F:3E5C  83 C6 01                             add     si,1 +273F:3E5F  F6 C3 01                             test    bl,1 +273F:3E62  74 06                                jz      loc_797                 ; Jump if zero +273F:3E64  26: 8B 14                            mov     dx,es:[si] +273F:3E67  83 C6 02                             add     si,2 +273F:3E6A                       loc_797:                                        ;  xref 273F:3E62 +273F:3E6A  81 E3 00FE                           and     bx,0FEh +273F:3E6E  FF A7 18A0                           jmp     word ptr ds:[sequence_table][bx] +                       sequence_execute_inner   endp + + +273F:3E72  8B 05             sequence_add:      mov     ax,[di] +273F:3E74  01 45 02                             add     [di+2],ax +273F:3E77  83 C7 02                             add     di,2 +273F:3E7A  EB DD                                jmp     short loc_796           ; (3E59) + + +                                                                                ;* No entry point to code +273F:3E7C  8B 05         sequence_subtract:     mov     ax,[di] +273F:3E7E  29 45 02                             sub     [di+2],ax +273F:3E81  83 C7 02                             add     di,2 +273F:3E84  EB D3                                jmp     short loc_796           ; (3E59) +                                                                                ;* No entry point to code +273F:3E86  8B 05         sequence_multiply:     mov     ax,[di] +273F:3E88  F7 65 02                             mul     word ptr [di+2]         ; dx:ax = data * ax +273F:3E8B  83 C7 02                             add     di,2 +273F:3E8E  89 05                                mov     [di],ax +273F:3E90  EB C7                                jmp     short loc_796           ; (3E59) + +273F:3E92  8B 45 02        sequence_divide:     mov     ax,[di+2] +273F:3E95  33 D2                                xor     dx,dx                   ; Zero register +273F:3E97  F7 35                                div     word ptr [di]           ; ax,dxrem=dx:ax/data +273F:3E99  83 C7 02                             add     di,2 +273F:3E9C  89 05                                mov     [di],ax +273F:3E9E  EB B9                                jmp     short loc_796           ; (3E59) + +273F:3EA0  8B 05       sequence_not_equals:     mov     ax,[di] +273F:3EA2  3B 45 02                             cmp     ax,[di+2] +273F:3EA5  74 0A                                je      loc_one                 ; Jump if equal + +273F:3EA7 úC7 45 02 0000        loc_zero:       mov     word ptr [di+2],0 +273F:3EAC  83 C7 02                             add     di,2 +273F:3EAF  EB A8                                jmp     short loc_796           ; (3E59) + +273F:3EB1 ú83 C7 02             loc_one:        add     di,2 +273F:3EB4  C7 05 0001                           mov     word ptr [di],1 +273F:3EB8  EB 9F                                jmp     short loc_796           ; (3E59) +273F:3EBA  8B 05             sequence_equals:   mov     ax,[di] +273F:3EBC  3B 45 02                             cmp     ax,[di+2] +273F:3EBF  75 F0                                jne     loc_one                 ; Jump if not equal +273F:3EC1  EB E4                                jmp     short loc_zero           ; (3EA7) + +273F:3EC3  8B 45 02       sequence_greater:     mov     ax,[di+2] +273F:3EC6  2B 05                                sub     ax,[di] +273F:3EC8  72 E7                                jc      loc_one                 ; Jump if carry Set +273F:3ECA  EB DB                                jmp     short loc_zero           ; (3EA7) + +273F:3ECC  8B 05          sequence_smaller:     mov     ax,[di] +273F:3ECE  2B 45 02                             sub     ax,[di+2] +273F:3ED1  72 DE                                jc      loc_one                 ; Jump if carry Set +273F:3ED3  EB D2                                jmp     short loc_zero           ; (3EA7) + +273F:3ED5  8B 05          sequence_smaller2:    mov     ax,[di] +273F:3ED7  2B 45 02                             sub     ax,[di+2] +273F:3EDA  78 CB                                js      loc_zero                 ; Jump if sign=1 +273F:3EDC  EB D3                                jmp     short loc_one           ; (3EB1) + +273F:3EDE  8B 45 02       sequence_greater2:    mov     ax,[di+2] +273F:3EE1  2B 05                                sub     ax,[di] +273F:3EE3  78 C2                                js      loc_zero                 ; Jump if sign=1 +273F:3EE5  EB CA                                jmp     short loc_one           ; (3EB1) + +273F:3EE7  8B 05               sequence_and:    mov     ax,[di] +273F:3EE9  21 45 02                             and     [di+2],ax +273F:3EEC  83 C7 02                             add     di,2 +273F:3EEF  E9 FF67                              jmp     loc_796                 ; (3E59) + +273F:3EF2  8B 05                sequence_or:    mov     ax,[di] +273F:3EF4  09 45 02                             or      [di+2],ax +273F:3EF7  83 C7 02                             add     di,2 +273F:3EFA  E9 FF5C                              jmp     loc_796                 ; (3E59) + +273F:3EFD  F7 45 02 FFFF  sequence_logical_and: test    word ptr [di+2],0FFFFh +273F:3F02  74 A3                                jz      loc_zero                 ; Jump if zero +273F:3F04  F7 05 FFFF                           test    word ptr [di],0FFFFh +273F:3F08  74 9D                                jz      loc_zero                 ; Jump if zero +273F:3F0A  EB A5                                jmp     short loc_one           ; (3EB1) + +273F:3F0C  F7 45 02 FFFF  sequence_logical_or: test    word ptr [di+2],0FFFFh +273F:3F11  75 9E                                jnz     loc_one                 ; Jump if not zero +273F:3F13  F7 05 FFFF                           test    word ptr [di],0FFFFh +273F:3F17  75 98                                jnz     loc_one                 ; Jump if not zero +273F:3F19  EB 8C                                jmp     short loc_zero           ; (3EA7) + +273F:3F1B  83 EF 02       sequence_get_field:   sub     di,2 +273F:3F1E  81 C2 BA15                           add     dx, offset room_number_2 +273F:3F22  57                                   push    di +273F:3F23  8B FA                                mov     di,dx +273F:3F25  8B 05                                mov     ax,[di] +273F:3F27  5F                                   pop     di +273F:3F28  89 05                                mov     [di],ax +273F:3F2A  E9 FF2C                              jmp     loc_796                 ; (3E59) + +273F:3F2D  81 C2 BA15     sequence_set_field:   add     dx, offset room_number_2 +273F:3F31  8B 05                                mov     ax,[di]                 ; Get value off stack +273F:3F33  57                                   push    di +273F:3F34  8B FA                                mov     di,dx +273F:3F36  89 05                                mov     [di],ax                 ; Set field value +273F:3F38  5F                                   pop     di +273F:3F39  83 C7 02                             add     di,2                    ; Pop stack element +273F:3F3C  E9 FF1A                              jmp     loc_796 + +273F:3F3F  E8 052A           sequence_random:   call    random +273F:3F42  8A D4                                mov     dl,ah +273F:3F44  32 F6                                xor     dh,dh                   ; Zero register + +273F:3F46  83 EF 02      sequence_push_value:   sub     di,2 +273F:3F49  89 15                                mov     [di],dx +273F:3F4B  E9 FF0B                              jmp     loc_796                 ; (3E59) +                                                                                ;* No entry point to code +273F:3F4E  56            sequence_subroutine:   push    si +273F:3F4F  8B F2                                mov     si,dx +273F:3F51  E8 FEF9                              call    sequence_execute_inner +273F:3F54  5E                                   pop     si +273F:3F55                       loc_800:                                        ;  xref 273F:3F97 +273F:3F55  E9 FF01                              jmp     loc_796                 ; (3E59) + +273F:3F58  D1 E2        sequence_call_method:   shl     dx,1 +273F:3F5A  81 C2 BABF                           add     dx, offset sequence_method_list +273F:3F5E  57                                   push    di +273F:3F5F  8B FA                                mov     di,dx +273F:3F61  8B 05                                mov     ax,[di]                 ; Get address of method +273F:3F63  5F                                   pop     di +273F:3F64 ú81 FF 1910                           cmp     di, offset current_sp   ; Any value on stack? +273F:3F68  74 1B                                je      loc_801                 ; No, so go call method +273F:3F6A  8B 1D                                mov     bx,[di]                 ; bx = top stack value +273F:3F6C  83 C7 02                             add     di,2 +273F:3F6F ú81 FF 1910                           cmp     di, offset current_sp   ; Any value on stack? +273F:3F73  74 10                                je      loc_801                 ; No, so go call method +273F:3F75  8B 0D                                mov     cx,[di]                 ; cx = top stack value +273F:3F77  83 C7 02                             add     di,2 +273F:3F7A ú81 FF 1910                           cmp     di, offset current_sp   ; Any value on stack? +273F:3F7E  74 05                                je      loc_801                 ; No, so go call method +273F:3F80  8B 15                                mov     dx,[di]                 ; dx = top stack value +273F:3F82  83 C7 02                             add     di,2 +273F:3F85                       loc_801: +273F:3F85  56                                   push    si +273F:3F86  57                                   push    di +273F:3F87  06                                   push    es +273F:3F88  FF D0                                call    ax                      ; Call method +273F:3F8A  07                                   pop     es +273F:3F8B  5F                                   pop     di +273F:3F8C  5E                                   pop     si +273F:3F8D  E9 FEC9                              jmp     loc_796                 ; (3E59) + +273F:3F90  8B 05        sequence_cond_jump:     mov     ax,[di] +273F:3F92  83 C7 02                             add     di,2 +273F:3F95  0B C0                                or      ax,ax                   ; Zero ? +273F:3F97  75 BC                                jnz     loc_800                 ; Jump if not zero +273F:3F99  03 F2             sequence_jump:     add     si,dx +273F:3F9B  E9 FEBB                              jmp     loc_796                 ; (3E59) + +273F:3F9E  C3             sequence_end:         retn + +273F:3F9F  8B 26 10 19    sequence_restore_sp:  mov     sp, current_sp +273F:3FA3  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:029A, 02A6, 0365, 03BB, 03C7, 0426, 04FC +                                ;                             0691, 3C50, 7041, 7591, 7B04, 902C, 9414 +                                ;                             AA1B +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:3FA4                       display_message proc    near +273F:3FA4  80 0E 073D 01                        or      status_flags2, 1 +273F:3FA9  80 0E 11D0 08                        or      menubar_state, 8    +273F:3FAE  3D 000C                              cmp     ax,0Ch +273F:3FB1  72 03                                jb      loc_802                 ; Jump if below +273F:3FB3  B8 000C                              mov     ax,0Ch +273F:3FB6                       loc_802:                                        ;  xref 273F:3FB1 +273F:3FB6  F6 C6 FF                             test    dh,0FFh +273F:3FB9  75 03                                jnz     loc_803                 ; Jump if not zero +273F:3FBB  E9 0128                              jmp     loc_816                 ; (40E6) +273F:3FBE                       loc_803:                                        ;  xref 273F:3FB9 +273F:3FBE  50                                   push    ax +273F:3FBF  B8 31E4                              mov     ax,data_seg +273F:3FC2  8E D8                                mov     ds,ax +273F:3FC4  F6 06 073C 04                        test    status_flags, STATUS_TIMER_SET +273F:3FC9  74 12                                jz      loc_804                 ; Jump if zero +273F:3FCB  1E                                   push    ds +273F:3FCC  2E: A1 04AC                          mov     ax,word ptr cs:old_timer_int_proc+2 ; (273F:04AC=40h) +273F:3FD0  8E D8                                mov     ds,ax +273F:3FD2  2E: 8B 16 04AA                       mov     dx,cs:old_timer_int_proc +273F:3FD7  B8 2508                              mov     ax,2508h +273F:3FDA  CD 21                                int     21h                     ; DOS Services  ah=function 25h +                                                                                ;  set intrpt vector al to ds:dx +273F:3FDC  1F                                   pop     ds +273F:3FDD                       loc_804:                                        ;  xref 273F:3FC9 +273F:3FDD  F6 06 073C 10                        test    status_flags, STATUS_CRITICAL_SET +273F:3FE2  74 12                                jz      loc_805                 ; Jump if zero +273F:3FE4  1E                                   push    ds +273F:3FE5  2E: A1 04B4                          mov     ax,cs:old_critical_int_proc+2 +273F:3FE9  8E D8                                mov     ds,ax +273F:3FEB  2E: 8B 16 04B2                       mov     dx,cs:old_critical_int_proc +273F:3FF0  B8 2524                              mov     ax,2524h +273F:3FF3  CD 21                                int     21h                     ; DOS Services  ah=function 25h +                                                                                ;  set intrpt vector al to ds:dx +273F:3FF5  1F                                   pop     ds +273F:3FF6                       loc_805:                                        ;  xref 273F:3FE2 +273F:3FF6  F6 06 073C 40                        test    status_flags, STATUS_KEYBOARD_SET +273F:3FFB  74 12                                jz      loc_806                 ; Jump if zero +273F:3FFD  1E                                   push    ds +273F:3FFE  2E: A1 04B0                          mov     ax, word ptr cs:old_kbd_int_proc+2 +273F:4002  8E D8                                mov     ds,ax +273F:4004  2E: 8B 16 04AE                       mov     dx, cs:old_kbd_int_proc +273F:4009  B8 2509                              mov     ax,2509h +273F:400C  CD 21                                int     21h                     ; DOS Services  ah=function 25h +                                                                                ;  set intrpt vector al to ds:dx +273F:400E  1F                                   pop     ds +273F:400F                       loc_806:                                        ;  xref 273F:3FFB +273F:400F  F6 06 073C 01                        test    status_flags, STATUS_VIDEO_MODE_SET +273F:4014  74 07                                jz      loc_807                 ; Jump if zero +273F:4016  A0 073B                              mov     al,data_542             ; (31E4:073B=0) +273F:4019  32 E4                                xor     ah,ah                   ; Zero register +273F:401B  CD 10                                int     10h                     ; Video display   ah=functn 00h +                                                                                ;  set display mode in al +273F:401D                       loc_807:                                        ;  xref 273F:4014 +273F:401D  B8 0000                              mov     ax,0 +273F:4020  CD 33                                int     33h                     ; Mouse driver    ax=func 0000h +                                                                                ;  installed?, ax=0 no, =-1 yes +                                                                                ;   bx=number of mouse buttons +273F:4022  F6 06 073C 08                        test    status_flags, STATUS_CTRL_BREAK_SET +273F:4027  74 24                                jz      loc_808                 ; Jump if zero +273F:4029  B8 3301                              mov     ax,3301h +273F:402C  8A 16 073E                           mov     dl, old_ctrl_break_flag +273F:4030  CD 21                                int     21h                     ; DOS Services  ah=function 33h +                                                                                ;  set ctrl-break flag dl=off/on +273F:4032  B8 0040                              mov     ax,40h +273F:4035  8E C0                                mov     es,ax +273F:4037  A0 073F                              mov     al,data_546             ; (31E4:073F=1) +273F:403A  24 70                                and     al,70h                  ; 'p' +273F:403C  26: 80 26 0017 8F                    and     byte ptr es:keybd_flags_1,8Fh ; (0040:0017=0) +273F:4042  26: 08 06 0017                       or      es:keybd_flags_1,al     ; (0040:0017=0) +273F:4047  B4 06                                mov     ah,6 +273F:4049  B2 FF                                mov     dl,0FFh +273F:404B  CD 21                                int     21h                     ; DOS Services  ah=function 06h +                                                                                ;  special char i/o, dl=subfunc +273F:404D                       loc_808:                                        ;  xref 273F:4027 +273F:404D  58                                   pop     ax +273F:404E  0B C0                                or      ax,ax                   ; Zero ? +273F:4050  74 15                                jz      loc_809                 ; Jump if zero +273F:4052  50                                   push    ax +273F:4053  B4 09                                mov     ah,9 +273F:4055 úBA 3848                              mov     dx,offset data_779      ; (31E4:3848='') +273F:4058  CD 21                                int     21h                     ; DOS Services  ah=function 09h +                                                                                ;  display char string at ds:dx +273F:405A  58                                   pop     ax +273F:405B  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:405D  8B D8                                mov     bx,ax +273F:405F  8B 97 3670                           mov     dx,errormsg_list[bx]    ; (31E4:3670=0) +273F:4063  B4 09                                mov     ah,9 +273F:4065  CD 21                                int     21h                     ; DOS Services  ah=function 09h +                                                                                ;  display char string at ds:dx +273F:4067                       loc_809:                                        ;  xref 273F:4050 +273F:4067  E8 6189                              call    sub_257                 ; (A1F3) +273F:406A  B9 FFFF                              mov     cx,0FFFFh +273F:406D  B0 36                                mov     al,36h                  ; '6' +273F:406F  E6 43                                out     43h,al                  ; port 43h, 8253 timer control +273F:4071  EB 00                                jmp     short $+2               ; delay for I/O +273F:4073  EB 00                                jmp     short $+2               ; delay for I/O +273F:4075  8A C1                                mov     al,cl +273F:4077  E6 40                                out     40h,al                  ; port 40h, 8253 timer 0 clock +273F:4079  EB 00                                jmp     short $+2               ; delay for I/O +273F:407B  EB 00                                jmp     short $+2               ; delay for I/O +273F:407D  8A C5                                mov     al,ch +273F:407F  E6 40                                out     40h,al                  ; port 40h, 8253 timer 0 clock +273F:4081  B0 00                                mov     al,0 +273F:4083  B4 4C                                mov     ah,4Ch +273F:4085  CD 21                                int     21h                     ; DOS Services  ah=function 4Ch +                                                                                ;  terminate with al=return code +273F:4087                       loc_810:                                        ;  xref 273F:40F2 +273F:4087  50                                   push    ax +273F:4088  A0 073B                              mov     al,data_542             ; (31E4:073B=0) +273F:408B  32 E4                                xor     ah,ah                   ; Zero register +273F:408D  CD 10                                int     10h                     ; Video display   ah=functn 00h +                                                                                ;  set display mode in al +273F:408F  EB 01                                jmp     short loc_812           ; (4092) +273F:4091                       loc_811:                                        ;  xref 273F:40EB +273F:4091  50                                   push    ax +273F:4092                       loc_812:                                        ;  xref 273F:408F +273F:4092  B4 09                                mov     ah,9 +273F:4094 úBA 3848                              mov     dx,offset data_779      ; (31E4:3848='') +273F:4097  CD 21                                int     21h                     ; DOS Services  ah=function 09h +                                                                                ;  display char string at ds:dx +273F:4099  58                                   pop     ax +273F:409A  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:409C  8B D8                                mov     bx,ax +273F:409E  8B 97 3670                           mov     dx,errormsg_list[bx]    ; (31E4:3670=0) +273F:40A2  83 C2 02                             add     dx,2 +273F:40A5  B4 09                                mov     ah,9 +273F:40A7  CD 21                                int     21h                     ; DOS Services  ah=function 09h +                                                                                ;  display char string at ds:dx +273F:40A9  B4 09                                mov     ah,9 +273F:40AB úBA 3848                              mov     dx,offset data_779      ; (31E4:3848='') +273F:40AE  CD 21                                int     21h                     ; DOS Services  ah=function 09h +                                                                                ;  display char string at ds:dx +273F:40B0  F6 06 073C 80                        test    status_flags, STATUS_MOUSE_HANDLER_SET +273F:40B5  74 09                                jz      loc_813                 ; Jump if zero +273F:40B7  B4 09                                mov     ah,9 +273F:40B9 úBA 37D0                              mov     dx,offset data_777      ; (31E4:37D0='Press a mouse bu') +273F:40BC  CD 21                                int     21h                     ; DOS Services  ah=function 09h +                                                                                ;  display char string at ds:dx +273F:40BE  EB 07                                jmp     short loc_814           ; (40C7) +273F:40C0                       loc_813:                                        ;  xref 273F:40B5 +273F:40C0  B4 09                                mov     ah,9 +273F:40C2 úBA 37F2                              mov     dx,offset data_778      ; (31E4:37F2='and press any ke') +273F:40C5  CD 21                                int     21h                     ; DOS Services  ah=function 09h +                                                                                ;  display char string at ds:dx +273F:40C7                       loc_814:                                        ;  xref 273F:40BE +273F:40C7  E8 DECC                              call    pause_for_input         ; (1F96) +273F:40CA  50                                   push    ax +273F:40CB  E8 DEBD                              call    mouse_wait              ; (1F8B) +273F:40CE  F6 06 073C 01                        test    status_flags, STATUS_VIDEO_MODE_SET +273F:40D3  74 0A                                jz      loc_815                 ; Jump if zero +273F:40D5  A0 0743                              mov     al,video_mode           ; (31E4:0743=0) +273F:40D8  32 E4                                xor     ah,ah                   ; Zero register +273F:40DA  CD 10                                int     10h                     ; Video display   ah=functn 00h +                                                                                ;  set display mode in al +273F:40DC  E8 00A6                              call    set_upper_vga_palette   ; (4185) +273F:40DF                       loc_815:                                        ;  xref 273F:40D3 +273F:40DF  58                                   pop     ax +273F:40E0  80 26 073D FE                        and     status_flags2, 0FEh +273F:40E5  C3                                   retn +273F:40E6                       loc_816:                                        ;  xref 273F:3FBB +273F:40E6  F6 06 073C 01                        test    status_flags, STATUS_VIDEO_MODE_SET +273F:40EB  74 A4                                jz      loc_811                 ; Jump if zero +273F:40ED  F6 06 073C 02                        test    status_flags, STATUS_UNKNOWN +273F:40F2  74 93                                jz      loc_810                 ; Jump if zero +273F:40F4  8A 1E 11D0                           mov     bl,data_623             ; (31E4:11D0=3) +273F:40F8  53                                   push    bx +273F:40F9  50                                   push    ax +273F:40FA  80 0E 11D0 01                        or      menubar_state, 1     ; (31E4:11D0=3) +273F:40FF  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:4103  F6 06 11D0 10                        test    menubar_state, 10h   ; (31E4:11D0=3) +273F:4108  75 14                                jnz     loc_817                 ; Jump if not zero +273F:410A  A1 4CE4                              mov     ax, data_segment2 +273F:410D  8E C0                                mov     es,ax +273F:410F  33 C0                                xor     ax,ax                   ; Zero register +273F:4111  8B 0E 0746                           mov     cx, screen_size +273F:4115  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:4117  33 FF                                xor     di,di                   ; Zero register +273F:4119  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:411B  E8 C843                              call    clear_hotspot_rects +273F:411E                       loc_817:                                        ;  xref 273F:4108 +273F:411E  58                                   pop     ax +273F:411F  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:4121  8B D8                                mov     bx,ax +273F:4123  8B B7 3670                           mov     si,errormsg_list[bx]    ; (31E4:3670=0) +273F:4127  8B 34                                mov     si,[si] +273F:4129  E8 47E1                              call    sub_216                 ; (890D) +273F:412C  F6 06 073C 20                        test    status_flags, STATUS_UNKNOWN2 +273F:4131  74 0C                                jz      loc_818                 ; Jump if zero +273F:4133  FF 36 073C                           push    status_flags +273F:4137  FF 16 0762                           call    [set_lower_palette_proc]  +273F:413B  8F 06 073C                           pop     status_flags +273F:413F                       loc_818:                                        ;  xref 273F:4131 +273F:413F  E8 DE49                              call    mouse_wait              ; (1F8B) +273F:4142  E8 DE51                              call    pause_for_input         ; (1F96) +273F:4145  5B                                   pop     bx +273F:4146  50                                   push    ax +273F:4147  53                                   push    bx +273F:4148  F6 06 073C 20                        test    status_flags, STATUS_UNKNOWN2 +273F:414D  74 09                                jz      loc_819                 ; Jump if zero +273F:414F  80 26 073C DF                        and     status_flags, !STATUS_UNKNOWN2 +273F:4154  FF 16 0764                           call    [empty_palette_proc] +273F:4158                       loc_819:                                     +273F:4158  58                                   pop     ax +273F:4159  24 01                                and     al,1 +273F:415B  75 09                                jnz     loc_820                 ; Jump if not zero +273F:415D  80 26 11D0 FE                        and     menubar_state, 0FEh  ; (31E4:11D0=3) +273F:4162  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:4166                       loc_820:                                        ;  xref 273F:415B +273F:4166  F6 06 11D0 20                        test    menubar_state, 20h   ; (31E4:11D0=3) ' ' +273F:416B  74 0B                                jz      loc_821                 ; Jump if zero +273F:416D  FF 16 0752                           call    [show_compressed_screen_proc] +273F:4171  E8 D39A                              call    room_add_animations +273F:4174  FF 16 0744                           call    word ptr [show_screen_proc] +273F:4178                       loc_821:                                        ;  xref 273F:416B +273F:4178  58                                   pop     ax +273F:4179  80 26 073D FE                        and     status_flags2, 0FEh +273F:417E  C3                                   retn +                                display_message endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            seq_kill_player     proc    near +273F:417F  80 0E 073D 50                        or      status_flags2, FLAG_RESTART|FLAG_RESTORERESTART ;50h +273F:4184  C3                                   retn +                            seq_kill_player     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; Sets the upper 16 palette entries of the VGA palette +                                ; +                                ;         Called from:   273F:075B, 40DC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:4185             set_upper_vga_palette     proc    near +273F:4185  1E                                   push    ds +273F:4186  07                                   pop     es +273F:4187  B8 1012                              mov     ax,1012h +273F:418A  BB 00F0                              mov     bx,0F0h                 ; Start with palette entry #F0h +273F:418D  B9 0010                              mov     cx,10h                  ; Set 16 palette entries +273F:4190 úBA 1727                              mov     dx,offset vga_palette   ; es:dx pointer to table +273F:4193  CD 10                                int     10h                     ; Video display   ah=functn 10h +                                                                                ;  set cx color registers from +                                                                                ;   ptr es:dx, bx=first reg +273F:4195  C3                                   retn +                      set_upper_vga_palette     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00AF, 0110, 60FF, 9762 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            animation_tick      proc    near + +273F:4196 úBF B14E                              mov     di, offset animation_table +273F:4199  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:419C                       locloop_822: +273F:419C  F6 45 0C FF                          test    byte ptr [di+0Ch], 0FFh +273F:41A0  74 16                                jz      loc_823 + +273F:41A2  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:41A5  A3 BA17                              mov     current_hotspot, ax +273F:41A8  89 3E 1927                           mov     active_animation_offset, di +273F:41AC  8B 45 11                             mov     ax, [di+ANIM_TICK_PROC] +273F:41AF  8B 75 19                             mov     si, [di+ANIM_HOTSPOT_OFFSET] +273F:41B2  57                                   push    di +273F:41B3  51                                   push    cx +273F:41B4  FF D0                                call    ax                      ; Call entry's handler proc +273F:41B6  59                                   pop     cx +273F:41B7  5F                                   pop     di + +273F:41B8                       loc_823: +273F:41B8  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:41BB  E2 DF                                loop    locloop_822             ; Loop if cx > 0 + +273F:41BD  C3                                   retn + +                            animation_tick      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5F41 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:41BE                action_dispatch        proc    near +273F:41BE úC7 44 52 0000                        mov     [si+HS_DEST_HOTSPOT], 0 +273F:41C3  8B 5F 01                             mov     bx, [bx+CURRENT_ACTION_SUPPORT_TABLE] +273F:41C6  8B EB                                mov     bp, bx +273F:41C8  8B 1F                                mov     bx, [bx] +273F:41CA  89 1E BB45                           mov     current_action_num, bx +273F:41CE  83 C5 02                             add     bp, 2 +273F:41D1  D1 E3                                shl     bx, 1                   ; Shift w/zeros fill +273F:41D3  8B 87 3850                           mov     ax,word ptr ds:[actions2_proc_list][bx] +273F:41D7  FF E0                                jmp     ax +                         action_dispatch        endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              JUMP POINT +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +273F:41D9                       loc_825:                                        ;  xref 273F:52BB +273F:41D9 ú8B DE                                mov     bx, si +273F:41DB  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:41DE  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:41E1  F7 44 61 FFFF                        test    word ptr [si+HS_ACTION_OFFSET], 0FFFFh +273F:41E6  74 0F                                jz      loc_826                 ; Jump if zero +273F:41E8  83 6C 61 05                          sub     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:41EC  83 EB 05                             sub     bx, CURRENT_ACTION_RECORD_SIZE +273F:41EF  C6 44 4D 00                          mov     byte ptr [si+4Dh], 0 +273F:41F3  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:41F6  C3                                   retn +273F:41F7                       loc_826:                                        ;  xref 273F:41E6 +273F:41F7  C6 07 00                             mov     byte ptr [bx], CHAR_ACTION_NONE +273F:41FA  81 7D 1B 03E8                        cmp     word ptr [di+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID +273F:41FF  75 0B                                jne     loc_ret_827             ; Jump if not equal +273F:4201  C6 06 9834 00                        mov     cursor_state, CURSORSTATE_NONE +273F:4206  C7 06 11E4 FFFF                      mov     hotspot_name_id2, 0FFFFh + +273F:420C                       loc_ret_827:                                    ;  xref 273F:41FF +273F:420C  C3                                   retn + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:51EE, 5FE0 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +               character_translate_movements    proc    near +273F:420D  8B 4C 21                             mov     cx, [si+HS_PIXEL_OFFSET] +273F:4210  8B 44 5A                             mov     ax, [si+HS_MOVEMENT_SRC_OFFSET] +273F:4213  89 44 24                             mov     [si+HS_MOVEMENT_OFFSET], ax +273F:4216  C7 44 26 0000                        mov     word ptr [si+HS_STEP_CTR], 0 +273F:421B  C7 44 28 0000                        mov     word ptr [si+HS_FRAME_OFFSET], 0 +273F:4220  56                                   push    si +273F:4221  57                                   push    di +273F:4222  53                                   push    bx +273F:4223  8B F8                                mov     di, ax +273F:4225  8B F1                                mov     si, cx +273F:4227  8B DA                                mov     bx, dx + +273F:4229                       loc_828: +273F:4229 ú8B 0F                                mov     cx, [bx] +273F:422B  0B C9                                or      cx, cx                  ; No more movements needed? +273F:422D  74 51                                jz      loc_832                 ; Exit if yes +273F:422F  8B 57 02                             mov     dx, [bx+2]              ; Get direction +273F:4232  83 C3 04                             add     bx, 4                   ; Move ptr to next move rec +273F:4235  83 FA 01                             cmp     dx, FACING2_LEFT +273F:4238  74 26                                je      loc_830                 ; Jump if equal +273F:423A  83 FA 02                             cmp     dx, FACING2_RIGHT +273F:423D  74 31                                je      loc_831                 ; Jump if equal +273F:423F  83 FA 04                             cmp     dx, FACING2_UP +273F:4242  74 0E                                je      loc_829                 ; Jump if equal +273F:4244  83 C1 01                             add     cx, 1 +273F:4247  D1 E9                                shr     cx, 1 +273F:4249  8B 44 0B                             mov     ax, [si+PIXEL_MOVEREC_DOWN] +273F:424C  AB                                   stosw                           ; Store movement records +273F:424D  8B C1                                mov     ax,cx +273F:424F  AB                                   stosw                           ; Store steps +273F:4250  EB D7                                jmp     short loc_828 +273F:4252                       loc_829: +273F:4252  83 C1 01                             add     cx, 1 +273F:4255  D1 E9                                shr     cx, 1 +273F:4257  8B 44 09                             mov     ax, [si+PIXEL_MOVEREC_UP] +273F:425A  AB                                   stosw                           ; Store movement records +273F:425B  8B C1                                mov     ax,cx +273F:425D  AB                                   stosw                           ; Store steps +273F:425E  EB C9                                jmp     short loc_828 +273F:4260                       loc_830: +273F:4260  83 C1 03                             add     cx, 3 +273F:4263  D1 E9                                shr     cx, 1 +273F:4265  D1 E9                                shr     cx, 1 +273F:4267  8B 44 0D                             mov     ax, [si+PIXEL_MOVEREC_LEFT] +273F:426A  AB                                   stosw                           ; Store movement records +273F:426B  8B C1                                mov     ax,cx +273F:426D  AB                                   stosw                           ; Store steps +273F:426E  EB B9                                jmp     short loc_828 +273F:4270                       loc_831: +273F:4270  83 C1 03                             add     cx, 3 +273F:4273  D1 E9                                shr     cx, 1 +273F:4275  D1 E9                                shr     cx, 1 +273F:4277  8B 44 0F                             mov     ax, [si+PIXEL_MOVEREC_RIGHT] +273F:427A  AB                                   stosw                           ; Store movement records +273F:427B  8B C1                                mov     ax,cx +273F:427D  AB                                   stosw                           ; Store steps +273F:427E  EB A9                                jmp     short loc_828 +273F:4280                       loc_832: +273F:4280  B8 FFFF                              mov     ax,0FFFFh +273F:4283  AB                                   stosw                           ; Store end makrer +273F:4284  5B                                   pop     bx +273F:4285  5F                                   pop     di +273F:4286  5E                                   pop     si +273F:4287  C3                                   retn +               character_translate_movements    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5242 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                 character_check_room_change    proc    near +273F:4288 ú56                                   push    si +273F:4289  8B 45 0E                             mov     ax, [di+ANIM_ROOM_NUM] +273F:428C  E8 CA5B                              call    get_room_resource_pointer2 ; Get room resource +273F:428F  83 C6 1D                             add     si, ROOM_EXITS_START    ; Get pointer to room exits list +273F:4292  8B 05                                mov     ax, [di+ANIM_X]         ; get X start +273F:4294  8B 4D 13                             mov     cx, [di+ANIM_WIDTH_COPY]; Get animation width +273F:4297  D1 E9                                shr     cx, 1 +273F:4299  03 C1                                add     ax, cx +273F:429B  8B 55 02                             mov     dx, [di+ANIM_Y] +273F:429E  03 55 15                             add     dx, [di+ANIM_HEIGHT_COPY] +273F:42A1  8B 4D 17                             mov     cx, [di+ANIM_Y_CORRECTION] +273F:42A4  D1 E9                                shr     cx,1 +273F:42A6  2B D1                                sub     dx,cx                   ; ax=x, dx=y + +273F:42A8                       loc_834: +273F:42A8 ú83 3C FF                             cmp     word ptr [si],0FFFFh    ; End of list reached? +273F:42AB  74 3A                                je      loc_837                 ; Jump if yes +273F:42AD  3B 04                                cmp     ax, [si+ROOMREC_EXIT_X_START] ; Check bounds of the +273F:42AF  72 27                                jb      loc_836                 ;  room exit against character +273F:42B1  3B 44 02                             cmp     ax, [si+ROOMREC_EXIT_X_END] +273F:42B4  73 22                                jae     loc_836 +273F:42B6  3B 54 04                             cmp     dx, [si+ROOMREC_EXIT_Y_START] +273F:42B9  72 1D                                jb      loc_836 +273F:42BB  3B 54 06                             cmp     dx, [si+ROOMREC_EXIT_Y_END] +273F:42BE  73 18                                jae     loc_836 +273F:42C0  8B 44 08                             mov     ax, [si+ROOMREC_EXIT_SEQUENCE] +273F:42C3  3D FFFF                              cmp     ax, 0FFFFh              ; Any sequence to run? +273F:42C6  74 04                                je      loc_835                 ; If no, go set room directly +273F:42C8  5E                                   pop     si +273F:42C9  E9 FB68                              jmp     sequence_execute +273F:42CC                       loc_835:                                        ;  xref 273F:42C6 +273F:42CC  8B 54 0A                             mov     dx, [si+ROOMREC_EXIT_ROOM_NUM] ; Get new room #/direction +273F:42CF  8B 4C 0C                             mov     cx, [si+ROOMREC_EXIT_NEW_X]    ; Get new X +273F:42D2  8B 5C 0E                             mov     bx, [si+ROOMREC_EXIT_NEW_Y]    ; Get new Y +273F:42D5  5E                                   pop     si +273F:42D6  EB 11                                jmp     character_change_room +273F:42D8                       loc_836: +273F:42D8  8B 5C 08                             mov     bx, [si+ROOMREC_EXIT_SEQUENCE] ; Get sequence Id +273F:42DB  83 C6 0A                             add     si, 0Ah                 ; Move to next entry +273F:42DE  0B DB                                or      bx, bx                  ; Did entry have a script? +273F:42E0  79 C6                                jns     loc_834                 ; If not, go check next record +273F:42E2  83 C6 06                             add     si, 6                   ; Skip over room/x/y vals +273F:42E5  EB C1                                jmp     short loc_834           ; Check next record +273F:42E7                       loc_837: +273F:42E7  5E                                   pop     si +273F:42E8  C3                                   retn +                 character_check_room_change    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:960F, 9628 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      character_change_room     proc    near +273F:42E9  A1 BA17                              mov     ax, current_hotspot +273F:42EC  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID   ; Is character the player? +273F:42EF  75 2E                                jne     loc_840                 ; Jump if not +273F:42F1  F6 06 9834 FF                        test    cursor_state, 0FFh +273F:42F6  75 26                                jnz     loc_ret_839             ; Jump if not zero + +; Room change code for the player +273F:42F8 úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:42FB  88 74 50                             mov     [si+HS_DIRECTION], dh +273F:42FE  C6 44 51 00                          mov     byte ptr [si+HS_DIRECTION+1], 0 +273F:4302  32 F6                                xor     dh,dh                   ; Zero register +273F:4304  83 EB 30                             sub     bx,30h +273F:4307  89 16 982C                           mov     new_room_number_2, dx +273F:430B  89 0E 982E                           mov     new_room_x, cx +273F:430F  89 1E 9830                           mov     new_room_y, bx +273F:4313  E8 1D23                              call    sub_136                 ; (6039) +273F:4316  75 06                                jnz     loc_ret_839             ; Jump if not zero +273F:4318  C7 06 982C 0000                      mov     new_room_number_2, 0 +273F:431E                       loc_ret_839:    retn + +; Room change code for other characters +273F:431F                       loc_840: +273F:431F  8B 3E 1927                           mov     di, active_animation_offset +273F:4323  8B 75 19                             mov     si, [di+ANIM_HOTSPOT_OFFSET] +273F:4326  53                                   push    bx +273F:4327  51                                   push    cx +273F:4328  52                                   push    dx +273F:4329  E8 017D                              call    check_for_impinging_characters +273F:432C  5A                                   pop     dx +273F:432D  59                                   pop     cx +273F:432E  5B                                   pop     bx +273F:432F  75 06                                jnz     loc_841                 ; Jump if not zero +273F:4331  33 C0                                xor     ax,ax                   ; Zero register +273F:4333  E8 01F2                              call    set_new_dispatch_action +273F:4336  C3                                   retn +273F:4337                       loc_841:                                        ;  xref 273F:432F +273F:4337  83 E1 F8                             and     cx, 0FFF8h +273F:433A  83 C9 05                             or      cx, 5 +273F:433D  89 0D                                mov     [di+ANIM_X], cx +273F:433F  89 4C 0D                             mov     [si+HS_X], cx +273F:4342  8A CE                                mov     cl, dh +273F:4344  32 F6                                xor     dh, dh                  ; Zero register +273F:4346  89 55 0E                             mov     [di+ANIM_ROOM_NUM], dx +273F:4349  89 54 06                             mov     [si+HS_ROOM_NUM], dx +273F:434C  2B 5C 1B                             sub     bx, [si+HS_HEIGHT_COPY] +273F:434F  83 E3 F8                             and     bx, 0FFF8h +273F:4352  89 5D 02                             mov     [di+ANIM_Y], bx +273F:4355  89 5C 0F                             mov     [si+HS_Y], bx +273F:4358  8B DE                                mov     bx, si +273F:435A  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:435D  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:4360  E9 0EE3                              jmp     character_change_room_2 +                      character_change_room     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              JUMP POINT +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                 character_update_movement_2: +273F:4363 ú88 44 44                             mov     [si+HS_V44], al + + +                   character_update_movement    proc    near +273F:4366 ú53                                   push    bx +273F:4367  8B DE                                mov     bx, si +273F:4369  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:436C  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:436F  8A 07                                mov     al, [bx] +273F:4371  5B                                   pop     bx +273F:4372  3C 03                                cmp     al, CHAR_ACTION_EXEC_SCRIPT +273F:4374  74 10                                je      loc_ret_845             ; Exit if running script +273F:4376  F6 44 49 FF                          test    byte ptr [si+HS_PATHFIND_COVERED], 0FFh +273F:437A  75 07                                jnz     loc_844                 ; Jump if not zero +273F:437C  C6 44 49 01                          mov     byte ptr [si+HS_PATHFIND_COVERED], 1 +273F:4380  E8 2DAB                              call    pathfind_flag_covered_cells +273F:4383                       loc_844:                                        ;  xref 273F:437A +273F:4383  E9 032B                              jmp     character_reset_direction + +273F:4386                       loc_ret_845:                                    ;  xref 273F:4374, 438B +273F:4386  C3                                   retn +                   character_update_movement    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5050, 50B1, 512D, 5224, 5EC4, 5EF1, 5F5C +                                ;                             7758 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                    character_pathfind_clear    proc    near +273F:4387  F6 44 49 FF                          test    byte ptr [si+HS_PATHFIND_COVERED], 0FFh +273F:438B  74 F9                                jz      loc_ret_845             ; Jump if zero +273F:438D  C6 44 49 00                          mov     byte ptr [si+HS_PATHFIND_COVERED], 0 +273F:4391  E9 2DAF                              jmp     pathfind_clear_covered_cells +                    character_pathfind_clear    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:56D0, 712F, 7144 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          pathfind_get_cell     proc    near +273F:4394  8B 45 0E                             mov     ax, [di+ANIM_ROOM_NUM] +273F:4397  2D 0001                              sub     ax, 1                   ; ax=room # - 1 +273F:439A  8B D8                                mov     bx, ax +273F:439C  B1 04                                mov     cl, 4 +273F:439E  D3 E3                                shl     bx, cl                  ; bx=(R-1)*16 +273F:43A0  2B D8                                sub     bx, ax                  ; bx=(R-1)*15 +273F:43A2  B1 03                                mov     cl, 3 +273F:43A4  D3 E3                                shl     bx, cl                  ; bx=(R-1)*120 +273F:43A6  81 C3 984A                           add     bx, offset pathfind_data2 +273F:43AA  8B 45 02                             mov     ax, [di+ANIM_Y] +273F:43AD  2D 0088                              sub     ax, 88h +273F:43B0  03 45 15                             add     ax, [di+ANIM_HEIGHT_COPY] +273F:43B3  2D 0004                              sub     ax, 4 +273F:43B6  D3 E8                                shr     ax, cl +273F:43B8  3D 0018                              cmp     ax, 18h                 ; (y+height-8-4) >= 200? +273F:43BB  73 50                                jae     loc_850                 ; If yes then jump to exit +273F:43BD  8B D0                                mov     dx, ax                  ; ax=0->17 +273F:43BF  D1 E0                                shl     ax, 1 +273F:43C1  D1 E0                                shl     ax, 1                   ; ax=ax*4 +273F:43C3  03 C2                                add     ax, dx                  ; ax=ax*5 +273F:43C5  03 D8                                add     bx, ax                  ; Add bx onto offset + +; At this point bx = (Room# - 1) * 120 + (Y# * 5), where Y# is between 0 to 17 +273F:43C7  8B 05                                mov     ax, [di+ANIM_X] +273F:43C9  D3 E8                                shr     ax, cl +273F:43CB  8B 55 13                             mov     dx, [di+ANIM_WIDTH_COPY] +273F:43CE  D3 EA                      `          shr     dx, cl                  ; ax=left/8, dx=width/8 +273F:43D0  75 03                                jnz     loc_846                 ; Is width < 8 pixels? +273F:43D2  BA 0001                              mov     dx, 1                   ; Yes, default to 1 (8 pixels) +273F:43D5                       loc_846: +273F:43D5  2D 0010                              sub     ax, 10h                 ; Is left < 0 +273F:43D8  73 0A                                jnc     loc_847                 ; Jump if not +273F:43DA  F7 D8                                neg     ax +273F:43DC  2B D0                                sub     dx, ax +273F:43DE  72 2D                                jc      loc_850                 ; Exit if offscreen to left +273F:43E0  74 2B                                jz      loc_850 +273F:43E2  33 C0                                xor     ax, ax                  ; Default to 0 +273F:43E4                       loc_847: +273F:43E4  8B E8                                mov     bp, ax +273F:43E6  03 EA                                add     bp, dx                  ; Add width +273F:43E8  83 ED 29                             sub     bp, ROOM_PATHS_WIDTH+1 +273F:43EB  72 09                                jc      loc_848                 ; Jump if on screen +273F:43ED  83 C5 01                             add     bp, 1 +273F:43F0  2B D5                                sub     dx, bp +273F:43F2  72 19                                jc      loc_850                 ; Jump if carry Set +273F:43F4  74 17                                jz      loc_850                 ; Jump if zero +273F:43F6                       loc_848: +273F:43F6  8B E8                                mov     bp, ax                  ; bp,ax=(left/8)-10h +273F:43F8  D3 E8                                shr     ax, cl +273F:43FA  03 D8                                add     bx, ax                  ; Increment X offset +273F:43FC  8B CD                                mov     cx, bp +273F:43FE  B8 0080                              mov     ax, 80h +273F:4401  83 E1 07                             and     cx, 7 +273F:4404  74 02                                jz      loc_849 +273F:4406  D3 E8                                shr     ax, cl                  ; Setup bit mask +273F:4408                       loc_849:                                        ;  xref 273F:4404 +273F:4408  8B CA                                mov     cx, dx +273F:440A  0B C9                                or      cx, cx  +273F:440C  C3                                   retn +273F:440D                       loc_850:                                        ;  xref 273F:43BB, 43DE, 43E0, 43F2 +                                                                                ;            43F4 +273F:440D  33 C9                                xor     cx, cx                  ; Zero register +273F:440F  C3                                   retn +                          pathfind_get_cell     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0107, 60FC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                sub_96          proc    near +273F:4410  BB B0AE                              mov     bx, offset hotspot_action_list +273F:4413  B9 0014                              mov     cx, NUM_HOTSPOT_ACTION_SLOTS + +273F:4416                       locloop_851: +273F:4416  F7 07 FFFF                           test    word ptr [bx],0FFFFh    ; Entry position in use? +273F:441A  74 1F                                jz      loc_853                 ; Skip entry if not +273F:441C  83 6F 04 01                          sub     word ptr [bx+4], 1      ; Decrement entry counter +273F:4420  8B 47 04                             mov     ax, [bx+4] +273F:4423  0B C0                                or      ax,ax                   ; Reached zero? +273F:4425  75 04                                jnz     loc_852                 ; Jump if not +273F:4427  C7 07 0000                           mov     word ptr [bx], 0        ; Clear slot +273F:442B                       loc_852: +273F:442B  81 7F 02 2710                        cmp     word ptr [bx+2], 2710h  ; Check Id of entry +273F:4430  73 09                                jae     loc_853                 ; Jump if >= 2710h +273F:4432  8B 77 06                             mov     si,[bx+6]               ; Hotspot rec ptr? +273F:4435  05 0001                              add     ax, 1 +273F:4438  89 44 4A                             mov     [si+4Ah], ax            ; Set 4Ah to countdown ctr +273F:443B                       loc_853: +273F:443B  83 C3 08                             add     bx, HOTSPOT_ACTION_SLOT_SIZE +273F:443E  E2 D6                                loop    locloop_851             ; Loop if cx > 0 + +273F:4440  C3                                   retn +                                sub_96          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:479F, 51A8, 5FB9 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:4441                       sub_97          proc    near +273F:4441  53                                   push    bx +273F:4442  BB B0AE                              mov     bx, offset hotspot_action_list +273F:4445  B9 0014                              mov     cx, NUM_HOTSPOT_ACTION_SLOTS +273F:4448  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] + +273F:444B                       locloop_854:                                    ;  xref 273F:4468 +273F:444B  3B 07                                cmp     ax, [bx] +273F:444D  75 16                                jne     loc_855                 ; Skip if hotspot not found +273F:444F  C7 47 04 0001                        mov     word ptr [bx+4], 1 +273F:4454  81 7F 02 2710                        cmp     word ptr [bx+2], 2710h +273F:4459  73 0A                                jae     loc_855                 ; Jump if above or = +273F:445B  56                                   push    si +273F:445C  8B 77 06                             mov     si, [bx+6] +273F:445F  C7 44 4A 0001                        mov     word ptr [si+4Ah], 1 +273F:4464  5E                                   pop     si +273F:4465                       loc_855:                                        ; Move to next entry +273F:4465  83 C3 08                             add     bx, HOTSPOT_ACTION_SLOT_SIZE +273F:4468  E2 E1                                loop    locloop_854             ; Loop through list + +273F:446A  5B                                   pop     bx +273F:446B  C3                                   retn +                                sub_97          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3C71, 3C78, 3D0F, 3F3F, 4971, 5687, 5697 +                                ;                             7CAF, 7D2C, 81E1, 8224, 830A, 833D, 8385 +                                ;                             988C, 9F4B +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:446C                       random          proc    near +273F:446C  56                                   push    si +273F:446D  57                                   push    di +273F:446E  53                                   push    bx +273F:446F  51                                   push    cx +273F:4470  8B 16 38A2                           mov     dx, random_v1 +273F:4474  A1 38A4                              mov     ax, random_v2 +273F:4477  B9 015A                              mov     cx,15Ah +273F:447A  BB 4E35                              mov     bx,4E35h +273F:447D  56                                   push    si +273F:447E  96                                   xchg    si,ax +273F:447F  92                                   xchg    dx,ax +273F:4480  85 C0                                test    ax,ax +273F:4482  74 02                                jz      loc_856                 ; Jump if zero +273F:4484  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:4486                       loc_856:                                        ;  xref 273F:4482 +273F:4486  91                                   xchg    cx,ax +273F:4487  85 C0                                test    ax,ax +273F:4489  74 04                                jz      loc_857                 ; Jump if zero +273F:448B  F7 E6                                mul     si                      ; dx:ax = reg * ax +273F:448D  03 C8                                add     cx,ax +273F:448F                       loc_857:                                        ;  xref 273F:4489 +273F:448F  96                                   xchg    si,ax +273F:4490  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:4492  03 D1                                add     dx,cx +273F:4494  5E                                   pop     si +273F:4495  05 0001                              add     ax,1 +273F:4498  83 D2 00                             adc     dx,0 +273F:449B  89 16 38A2                           mov     random_v1, dx +273F:449F  A3 38A4                              mov     random_v2, ax +273F:44A2  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:44A4  59                                   pop     cx +273F:44A5  5B                                   pop     bx +273F:44A6  5F                                   pop     di +273F:44A7  5E                                   pop     si +273F:44A8  C3                                   retn +                                random          endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4329, 603C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +             check_for_impinging_characters     proc    near +273F:44A9 úBB B14E                              mov     bx, offset animation_table +273F:44AC  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS +273F:44AF  8B 55 0E                             mov     dx, [di+ANIM_ROOM_NUM] + +273F:44B2                       locloop_858:                                    ;  xref 273F:44D0 +273F:44B2  F6 47 1D FF                          test    byte ptr [bx+ANIM_LAYER1_SKIP], 0FFh +273F:44B6  74 15                                jz      loc_859                 ; Jump if zero +273F:44B8  F6 47 0C FF                          test    byte ptr [bx+ANIM_LAYER], 0FFh +273F:44BC  74 0F                                jz      loc_859                 ; Jump if zero +273F:44BE  3B 57 0E                             cmp     dx, [bx+ANIM_ROOM_NUM] +273F:44C1  75 0A                                jne     loc_859                 ; Jump if not equal +273F:44C3  53                                   push    bx +273F:44C4  8B 5F 19                             mov     bx, [bx+ANIM_HOTSPOT_OFFSET] +273F:44C7  E8 10D7                              call    characters_impinging_check +273F:44CA  5B                                   pop     bx +273F:44CB  75 09                                jnz     loc_860                 ; Jump if not zero +273F:44CD                       loc_859:                                        ;  xref 273F:44B6, 44BC, 44C1 +273F:44CD  83 C3 29                             add     bx, ANIMATION_SLOT_SIZE +273F:44D0  E2 E0                                loop    locloop_858             ; Loop if cx > 0 + +273F:44D2  0D 0001                              or      ax, 1 +273F:44D5  C3                                   retn +273F:44D6                       loc_860:                                        ;  xref 273F:44CB +273F:44D6  33 C0                                xor     ax, ax +273F:44D8  C3                                   retn +             check_for_impinging_characters     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:476C, 85A3 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             char_face_up       proc    near +273F:44D9 ú8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:44DC  8A 47 11                             mov     al, [bx+PIXEL_FRAMENUM_UP] +273F:44DF  C7 45 22 0004                        mov     word ptr [di+ANIM_CHAR_RECT_Y], 4 +273F:44E4  C6 45 26 00                          mov     byte ptr [di+ANIM_DIRECTION], FACING_UP +273F:44E8  EB 33                                jmp     short char_face_end +                             char_face_up       endp + +                           char_face_down       proc    near +273F:44EA ú8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:44ED  8A 47 12                             mov     al, [bx+PIXEL_FRAMENUM_DOWN] +273F:44F0  C7 45 22 0004                        mov     word ptr [di+ANIM_CHAR_RECT_Y], 4 +273F:44F5  C6 45 26 01                          mov     byte ptr [di+ANIM_DIRECTION], FACING_DOWN +273F:44F9  EB 22                                jmp     short char_face_end +                           char_face_down       endp + +                           char_face_left       proc    near +273F:44FB ú8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:44FE  8A 47 13                             mov     al, [bx+PIXEL_FRAMENUM_LEFT] +273F:4501  C7 45 22 0000                        mov     word ptr [di+ANIM_CHAR_RECT_Y], 0 +273F:4506  C6 45 26 02                          mov     byte ptr [di+ANIM_DIRECTION], FACING_LEFT +273F:450A  EB 11                                jmp     short char_face_end +                           char_face_left       endp + +                          char_face_right       proc    near +273F:450C ú8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:450F  8A 47 14                             mov     al, [bx+PIXEL_FRAMENUM_RIGHT] +273F:4512  C7 45 22 0000                        mov     word ptr [di+ANIM_CHAR_RECT_Y], 0 +273F:4517  C6 45 26 03                          mov     byte ptr [di+ANIM_DIRECTION], FACING_RIGHT +273F:451B  EB 00                                jmp     short char_face_end +                          char_face_right       endp + +273F:451D                 char_face_end: +273F:451D  8B 5F 07                             mov     bx, [bx+PIXEL_FRAME_SIZE] ; Calculate frame offset +273F:4520  32 E4                                xor     ah, ah +273F:4522  F7 E3                                mul     bx +273F:4524  89 45 08                             mov     [di+ANIM_FRAME_OFFSET], ax +273F:4527  C3                                   retn + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4333 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                     set_new_dispatch_action    proc    near +273F:4528 ú83 44 61 05                          add     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:452C  EB 0C                                jmp     short loc_868 +                     set_new_dispatch_action    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                 seq_set_new_dispatch_action    proc    near +273F:452E  53                                   push    bx +273F:452F  8B C1                                mov     ax, cx                  ; Get param +273F:4531  E8 C7B6                              call    get_room_resource_pointer2 ; Get HS resource +273F:4534  58                                   pop     ax +273F:4535                       loc_867: +273F:4535 úC7 44 61 0005                        mov     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:453A                       loc_868: +273F:453A  C6 44 4D 00                          mov     byte ptr [si+HS_V4D], 0 +273F:453E  D1 E0                                shl     ax, 1                    ; Shift w/zeros fill +273F:4540  05 1380                              add     ax, offset support_data_offset_list +273F:4543  8B D8                                mov     bx, ax +273F:4545  8B 07                                mov     ax, [bx]                ; Get support entry +273F:4547  8B DE                                mov     bx, si +273F:4549  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:454C  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:454F  89 47 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], ax +273F:4552  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:4555  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:4558  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:455B  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:455F  C3                                   retn +                 seq_set_new_dispatch_action    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5133, 5F63 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:4560                       sub_105         proc    near +273F:4560                       loc_869:                                        ;  xref 273F:5EC8 +273F:4560 úF6 44 4C FF                          test    byte ptr [si+HS_V4C], 0FFh +273F:4564  74 2C                                jz      loc_ret_873             ; Jump if zero +273F:4566                       loc_870:                                        ;  xref 273F:5042 +273F:4566 ú53                                   push    bx +273F:4567  BB B0AE                              mov     bx, offset hotspot_action_list +273F:456A  B9 0014                              mov     cx, NUM_HOTSPOT_ACTION_SLOTS +273F:456D  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] + +273F:4570                       locloop_871:                                    ;  xref 273F:458F +273F:4570  3B 07                                cmp     ax, [bx] +273F:4572  75 18                                jne     loc_872                 ; Jump if not equal +273F:4574  C7 47 04 000F                        mov     word ptr [bx+4], 0Fh +273F:4579  81 7F 02 2710                        cmp     word ptr [bx+2], 2710h +273F:457E  73 0C                                jae     loc_872 +273F:4580  56                                   push    si +273F:4581  51                                   push    cx +273F:4582  8B 77 06                             mov     si, [bx+6] +273F:4585  C7 44 4A 000F                        mov     word ptr [si+HS_V4A], 0Fh +273F:458A  59                                   pop     cx +273F:458B  5E                                   pop     si +273F:458C                       loc_872:                                        ;  xref 273F:4572, 457E +273F:458C  83 C3 08                             add     bx, HOTSPOT_ACTION_SLOT_SIZE +273F:458F  E2 DF                                loop    locloop_871             ; Loop if cx > 0 + +273F:4591  5B                                   pop     bx + +273F:4592                       loc_ret_873:                                    ;  xref 273F:4564 +273F:4592  C3                                   retn +                                sub_105         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:131F, 56FC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       is_roomexit_hotspot      proc    near +273F:4593                       loc_874:                                        ;  xref 273F:459F +273F:4593  3B 04                                cmp     ax,[si] +273F:4595  74 0D                                je      loc_875                 ; Jump if equal +273F:4597  83 C6 02                             add     si,2 +273F:459A  F7 44 FE FFFF                        test    word ptr [si-2],0FFFFh +273F:459F  75 F2                                jnz     loc_874                 ; Jump if not zero +273F:45A1  0C 01                                or      al,1 +273F:45A3  C3                                   retn +273F:45A4                       loc_875:                                        ;  xref 273F:4595 +273F:45A4  33 C0                                xor     ax,ax                   ; Zero register +273F:45A6  C3                                   retn +                       is_roomexit_hotspot      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5402, 5713, 5816, 5909, 5944, 5AB8, 5B30 +                                ;                             5B96, 5C34, 5CB3, 5D7E, 5DAA, 89F0 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                    hotspot_action_precheck     proc    near +273F:45A7  3D 0420                              cmp     ax, 420h +273F:45AA  74 0A                                je      loc_876                 ; Jump if equal +273F:45AC  3D 0436                              cmp     ax, 436h +273F:45AF  74 05                                je      loc_876                 ; Jump if equal +273F:45B1  3D 0429                              cmp     ax, 429h +273F:45B4  75 1A                                jne     loc_879                 ; Jump if not equal +273F:45B6                       loc_876:                                        ;  xref 273F:45AA, 45AF +273F:45B6  50                                   push    ax +273F:45B7  55                                   push    bp +273F:45B8  E8 3F9F                              call    sub_213                 ; (855A) +273F:45BB  5D                                   pop     bp +273F:45BC  0B C0                                or      ax, ax                  ; Zero ? +273F:45BE  74 0B                                jz      loc_878                 ; Jump if zero +273F:45C0  58                                   pop     ax +273F:45C1  56                                   push    si +273F:45C2  E8 C725                              call    get_room_resource_pointer2 +273F:45C5  5B                                   pop     bx +273F:45C6  87 F3                                xchg    si, bx +273F:45C8                       loc_877:                                        ;  xref 273F:45F4, 4600 +273F:45C8  E9 00BB                              jmp     loc_888                 ; (4686) +273F:45CB                       loc_878: +273F:45CB  58                                   pop     ax +273F:45CC  B8 0003                              mov     ax, 3                   ; Initial call for action +273F:45CF  C3                                   retn                            ;  (prior to moving to it) +273F:45D0                       loc_879: +273F:45D0  56                                   push    si +273F:45D1  E8 C716                              call    get_room_resource_pointer2 +273F:45D4  5B                                   pop     bx +273F:45D5  87 DE                                xchg    bx, si + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:58B0 + +                   hotspot_action_precheck_2: +273F:45D7  8B 44 06                             mov     ax, [si+HS_ROOM_NUM]    ; Is object in same room +273F:45DA  3B 47 06                             cmp     ax, [bx+HS_ROOM_NUM]    ;  as the character? +273F:45DD  75 72                                jne     loc_884                 ; Jump if not +273F:45DF  F6 44 2A FF                          test    byte ptr [si+HS_ACTION_CTR], 0FFh +273F:45E3  75 46                                jnz     loc_883                 ; Jump if not zero +273F:45E5  C6 44 2A 01                          mov     byte ptr [si+HS_ACTION_CTR], 1 +273F:45E9  81 3E BA1B 0408                      cmp     active_hotspot_id, 408h +273F:45EF  72 09                                jb      loc_881                 ; Jump if below +273F:45F1                       loc_880:                                        ;  xref 273F:4606, 463B, 4641, 4647 +                                                                                ;            464F +273F:45F1 úE8 0E95                              call    character_walking_check +273F:45F4  75 D2                                jnz     loc_877                 ; Jump if not zero +273F:45F6  B8 0003                              mov     ax, 3                   ; Flag walking is required +273F:45F9  C3                                   retn +273F:45FA                       loc_881:                                        ;  xref 273F:45EF +273F:45FA  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:45FD  3B 47 50                             cmp     ax, [bx+HS_DIRECTION] +273F:4600  74 C6                                je      loc_877                 ; Jump if equal +273F:4602  80 7F 44 04                          cmp     byte ptr [bx+HS_V44], 4 +273F:4606  74 E9                                je      loc_880                 ; Jump if equal +273F:4608  80 3E BAB9 02                        cmp     byte ptr script_val_88, 2 +273F:460D  74 0D                                je      loc_882                 ; Jump if equal +273F:460F  53                                   push    bx +273F:4610  BB 0005                              mov     bx,5 +273F:4613  E8 1D8C                              call    display_message_dialog_2 +273F:4616  5B                                   pop     bx +273F:4617  C7 44 42 0004                        mov     word ptr [si+HS_V42], 4 +273F:461C                       loc_882:                                        ;  xref 273F:460D +273F:461C  C7 47 2B 002A                        mov     word ptr [bx+HS_V2B], 2Ah +273F:4621  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:4624  89 47 2F                             mov     [bx+HS_USE_HOTSPOT_ID], ax +273F:4627  B8 0003                              mov     ax,3 +273F:462A  C3                                   retn +273F:462B                       loc_883:                                        ;  xref 273F:45E3 +273F:462B  80 44 2A 01                          add     byte ptr [si+HS_ACTION_CTR], 1 +273F:462F  80 7C 2A 06                          cmp     byte ptr [si+HS_ACTION_CTR], 6 +273F:4633  73 41                                jae     loc_887                 ; Jump if above or = +273F:4635  81 3E BA1B 0408                      cmp     active_hotspot_id, 408h +273F:463B  73 B4                                jae     loc_880                 ; Jump if above or = +273F:463D  80 7F 44 08                          cmp     byte ptr [bx+44h],8 +273F:4641  74 AE                                je      loc_880                 ; Jump if equal +273F:4643  80 7F 44 04                          cmp     byte ptr [bx+44h],4 +273F:4647  74 A8                                je      loc_880                 ; Jump if equal +273F:4649  80 7F 44 07                          cmp     byte ptr [bx+44h],7 +273F:464D  75 17                                jne     loc_886                 ; Jump if not equal +273F:464F  EB A0                                jmp     short loc_880           ; (45F1) +273F:4651                       loc_884:                                        ;  xref 273F:45DD +273F:4651  F6 44 2A FF                          test    byte ptr [si+HS_ACTION_CTR],0FFh   +273F:4655  75 07                                jnz     loc_885                 ; Jump if yes +273F:4657  33 C0                                xor     ax, ax                  ; Zero register +273F:4659  53                                   push    bx +273F:465A  E8 1D54                              call    display_message_dialog_3 +273F:465D  5B                                   pop     bx +273F:465E                       loc_885: +273F:465E  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:4662  B8 0001                              mov     ax, 1 +273F:4665  C3                                   retn +273F:4666                       loc_886:                                        ;  xref 273F:464D +273F:4666  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:466A  B8 000E                              mov     ax,0Eh +273F:466D  53                                   push    bx +273F:466E  E8 1D40                              call    display_message_dialog_3 +273F:4671  5B                                   pop     bx +273F:4672  B8 0002                              mov     ax,2 +273F:4675  C3                                   retn +273F:4676                       loc_887:                                        ;  xref 273F:4633 +273F:4676  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:467A  B8 000D                              mov     ax, 0Dh +273F:467D  53                                   push    bx +273F:467E  E8 1D30                              call    display_message_dialog_3 +273F:4681  5B                                   pop     bx +273F:4682  B8 0004                              mov     ax,4 +273F:4685  C3                                   retn +273F:4686                       loc_888:                                        ;  xref 273F:45C8 +273F:4686  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:468A  81 3E BA1B 0408                      cmp     active_hotspot_id, 408h +273F:4690  73 0F                                jae     loc_889                 ; Jump if above or = +273F:4692  C6 47 44 08                          mov     byte ptr [bx+HS_V44], 8 +273F:4696  C7 47 42 001E                        mov     word ptr [bx+HS_V42], 30 +273F:469B  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:469E  89 47 50                             mov     [bx+50h], ax +273F:46A1                       loc_889:                                        ;  xref 273F:4690 +273F:46A1  33 C0                                xor     ax,ax                   ; Zero register +273F:46A3  C3                                   retn +                    hotspot_action_precheck     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             seq_method_45      proc    near +273F:46A4  E8 C641                              call    get_room_resource_pointer +273F:46A7  C6 44 44 07                          mov     byte ptr [si+HS_V44], 7 +273F:46AB  C7 44 42 0082                        mov     word ptr [si+HS_V42], 130 +273F:46B0  C3                                   retn +                             seq_method_45      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7FD1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                  character_reset_direction     proc    near +273F:46B1  53                                   push    bx +273F:46B2  80 25 F8                             and     byte ptr [di+ANIM_X], 0F8h +273F:46B5  80 64 0D F8                          and     byte ptr [si+HS_X], 0F8h +273F:46B9  80 0D 05                             or      byte ptr [di+ANIM_X], 5 +273F:46BC  80 4C 0D 05                          or      byte ptr [si+HS_X], 5 +273F:46C0  8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:46C3  8A 45 26                             mov     al, [di+ANIM_DIRECTION] +273F:46C6  3C 01                                cmp     al, FACING_DOWN +273F:46C8  72 10                                jb      loc_893                 ; Jump if up +273F:46CA  74 09                                jz      loc_892                 ; Jump if down +273F:46CC  3C 03                                cmp     al, 3 +273F:46CE  72 0F                                jb      loc_894                 ; Jump if left +273F:46D0                       loc_891: +273F:46D0 ú8A 47 14                             mov     al, [bx+PIXEL_FRAMENUM_RIGHT] +273F:46D3  EB 0D                                jmp     short loc_895 +273F:46D5                       loc_892: +273F:46D5  8A 47 12                             mov     al, [bx+PIXEL_FRAMENUM_DOWN] +273F:46D8  EB 08                                jmp     short loc_895 +273F:46DA                       loc_893: +273F:46DA  8A 47 11                             mov     al, [bx+PIXEL_FRAMENUM_UP] +273F:46DD  EB 03                                jmp     short loc_895 +273F:46DF                       loc_894: +273F:46DF  8A 47 13                             mov     al, [bx+PIXEL_FRAMENUM_LEFT] +273F:46E2                       loc_895: +273F:46E2  8B 5F 07                             mov     bx, [bx+PIXEL_FRAME_SIZE] +273F:46E5  32 E4                                xor     ah, ah                  ; Zero register +273F:46E7  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:46E9  89 45 08                             mov     [di+ANIM_FRAME_OFFSET], ax +273F:46EC  5B                                   pop     bx +273F:46ED  C3                                   retn +                  character_reset_direction     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5411, 572B, 57C6, 58C3, 5920, 5958, 5ACA +                                ;                             5B43, 5BAA, 5C76, 5CC7, 8A00 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                    character_face_hotspot      proc    near +273F:46EE  53                                   push    bx +273F:46EF  57                                   push    di +273F:46F0  56                                   push    si +273F:46F1  EB 17                                jmp     short loc_896           ; (470A) +                                                                                ;* No entry point to code + +273F:46F3  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:46F6  8B 1E BA1B                           mov     bx, active_hotspot_id + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:61C5, 61CA + +                  character_face_hotspot_2: +273F:46FA  53                                   push    bx +273F:46FB  57                                   push    di +273F:46FC  56                                   push    si +273F:46FD  50                                   push    ax +273F:46FE  E8 C5E7                              call    get_room_resource_pointer +273F:4701  5B                                   pop     bx +273F:4702  56                                   push    si +273F:4703  E8 C5E2                              call    get_room_resource_pointer +273F:4706  5B                                   pop     bx +273F:4707  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:470A                       loc_896:                                        ;  xref 273F:46F1 +273F:470A  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:470D  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:4710  72 70                                jb      loc_903                 ; Jump if below +273F:4712  3D 0408                              cmp     ax, 408h +273F:4715  73 6B                                jae     loc_903                 ; Jump if above or = +273F:4717  53                                   push    bx +273F:4718  8B DE                                mov     bx, si +273F:471A  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:471D  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:4720  8A 07                                mov     al, [bx]                ; Get current action +273F:4722  5B                                   pop     bx +273F:4723  81 3E BA1B 7530                      cmp     active_hotspot_id, 7530h +273F:4729  72 17                                jb      loc_897 +273F:472B  5E                                   pop     si                      ; Non selectable hotspot +273F:472C  5F                                   pop     di +273F:472D  8A 47 08                             mov     al, [bx+HS_LOAD_FLAG] +273F:4730  88 45 26                             mov     [di+ANIM_DIRECTION], al +273F:4733  8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:4736  3C 01                                cmp     al, FACING_DOWN +273F:4738  72 A0                                jb      loc_893                 ; Jump if up +273F:473A  74 99                                jz      loc_892                 ; Jump if down +273F:473C  3C 03                                cmp     al, FACING_LEFT +273F:473E  72 9F                                jb      loc_894                 ; Jump if left +273F:4740  EB 8E                                jmp     short loc_891           ; Jump for right +273F:4742                       loc_897: +273F:4742  8B 54 0F                             mov     dx, [si+HS_Y] +273F:4745  03 54 1B                             add     dx, [si+HS_HEIGHT_COPY] +273F:4748  2B 57 0F                             sub     dx, [bx+HS_Y] +273F:474B  2B 57 1B                             sub     dx, [bx+HS_HEIGHT_COPY] +273F:474E  8B 4C 0D                             mov     cx, [si+HS_X] +273F:4751  2B 4F 0D                             sub     cx, [bx+HS_X] +273F:4754  8B C1                                mov     ax, cx +273F:4756  0B C0                                or      ax, ax                   ; Zero ? +273F:4758  79 02                                jns     loc_898                 ; Jump if not sign +273F:475A  F7 D8                                neg     ax +273F:475C                       loc_898:                                        ;  xref 273F:4758 +273F:475C  8B DA                                mov     bx, dx +273F:475E  0B DB                                or      bx, bx                  ; Zero ? +273F:4760  79 02                                jns     loc_899                 ; Jump if not sign +273F:4762  F7 DB                                neg     bx +273F:4764                       loc_899:                                        ;  xref 273F:4760 +273F:4764  3B D8                                cmp     bx, ax +273F:4766  72 09                                jb      loc_900                 ; Jump if below +273F:4768  0B D2                                or      dx, dx                   ; Zero ? +273F:476A  78 0E                                js      loc_901                 ; Jump if sign=1 +273F:476C  E8 FD6A                              call    char_face_up +273F:476F  EB 11                                jmp     short loc_903           ; (4782) +273F:4771                       loc_900:                                        ;  xref 273F:4766 +273F:4771  0B C9                                or      cx,cx                   ; Zero ? +273F:4773  78 0A                                js      loc_902                 ; Jump if sign=1 +273F:4775  E8 FD83                              call    char_face_left +273F:4778  EB 08                                jmp     short loc_903           ; (4782) +273F:477A                       loc_901:                                        ;  xref 273F:476A +273F:477A  E8 FD6D                              call    char_face_down +273F:477D  EB 03                                jmp     short loc_903           ; (4782) +273F:477F                       loc_902:                                        ;  xref 273F:4773 +273F:477F  E8 FD8A                              call    char_face_right +273F:4782                       loc_903:                                        ;  xref 273F:4710, 4715, 476F, 4778 +                                                                                ;            477D +273F:4782  5E                                   pop     si +273F:4783  5F                                   pop     di +273F:4784  5B                                   pop     bx +273F:4785  C3                                   retn +                    character_face_hotspot      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                    npc_execute_script_proc     proc    near +273F:4786  8B DD                                mov     bx,bp +273F:4788  8B 07                                mov     ax,[bx] +273F:478A  50                                   push    ax +273F:478B  83 C5 02                             add     bp,2 +273F:478E  E8 0DF0                              call    character_walking_end +273F:4791  58                                   pop     ax +273F:4792  E8 F69F                              call    sequence_execute +273F:4795  C3                                   retn +                    npc_execute_script_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                               npc_unknown2     proc    near +273F:4796  C6 44 44 01                          mov     byte ptr [si+HS_V44], 1 +273F:479A  C7 44 42 0016                        mov     word ptr [si+HS_V42], 16h +273F:479F  E8 FC9F                              call    sub_97                  ; (4441) +273F:47A2  8B DE                                mov     bx,si +273F:47A4  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:47A7  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:47AA  89 6F 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], bp +273F:47AD  C3                                   retn +                               npc_unknown2     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1E6F, 6279, 6585 +                                ; si = hotspot record +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:47AE               room_check_x_extents    proc    near +273F:47AE  53                                   push    bx +273F:47AF  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:47B2  B3 09                                mov     bl, RH_TABLE_ENTRY_SIZE +273F:47B4  F6 E3                                mul     bl                      ; Calculate offset +273F:47B6  8B D8                                mov     bx,ax +273F:47B8  8B 9F BF40                           mov     bx, [room_info_table][bx] ; Get room record ptr +273F:47BC  83 C3 19                             add     bx, ROOM_X_START +273F:47BF  8B 44 0D                             mov     ax, [si+HS_X]           ; Get X start +273F:47C2  3B 07                                cmp     ax, [bx] +273F:47C4  72 13                                jb      loc_905                 ; Jump if below +273F:47C6  05 0020                              add     ax, 20h +273F:47C9  F7 47 02 FFFF                        test    word ptr [bx+2], 0FFFFh +273F:47CE  74 05                                jz      loc_904                 ; Jump if zero +273F:47D0  3B 47 02                             cmp     ax, [bx+2] +273F:47D3  73 04                                jae     loc_905                 ; Jump if above or = +273F:47D5                       loc_904:                                        ;  xref 273F:47CE +273F:47D5  5B                                   pop     bx +273F:47D6  33 C0                                xor     ax,ax                   ; Zero register +273F:47D8  C3                                   retn +273F:47D9                       loc_905:                                        ;  xref 273F:47C4, 47D3 +273F:47D9  5B                                   pop     bx +273F:47DA  0D 0001                              or      ax,1 +273F:47DD  C3                                   retn +                        room_check_x_extents    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00A3 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:47DE                       sub_113         proc    near +273F:47DE  A1 9832                              mov     ax, room_number +273F:47E1  E8 C506                              call    get_room_resource_pointer2 +273F:47E4  83 7C 13 FF                          cmp     word ptr [si+ROOM_ENTRY_TIME], 0FFFFh +273F:47E8  74 3F                                je      loc_909                 ; Jump if equal +273F:47EA  8B 0E B0AA                           mov     cx, game_time_ctr +273F:47EE  2B 4C 13                             sub     cx, [si+ROOM_ENTRY_TIME] +273F:47F1  74 36                                jz      loc_909                 ; Jump if zero +273F:47F3  C6 06 1926 01                        mov     data_669, 1 + +273F:47F8  81 F9 012C                           cmp     cx, 12Ch +273F:47FC  72 03                                jb      locloop_906             ; Jump if below +273F:47FE  B9 012C                              mov     cx, 12Ch + +273F:4801                       locloop_906:                                    ;  xref 273F:47FC, 4827 +273F:4801  51                                   push    cx +273F:4802 úBF B14E                              mov     di, offset animation_table +273F:4805  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:4808                       locloop_907:                                    ;  xref 273F:4824 +273F:4808  F6 45 0C FF                          test    byte ptr [di+ANIM_LAYER], 0FFh +273F:480C  74 13                                jz      loc_908                 ; Jump if zero +273F:480E  81 7D 1B 0408                        cmp     word ptr [di+ANIM_HOTSPOT_ID], 408h +273F:4813  72 0C                                jb      loc_908                 ; Jump if below +273F:4815  8B 75 19                             mov     si, [di+ANIM_HOTSPOT_OFFSET] +273F:4818  8B 45 11                             mov     ax, [di+ANIM_TICK_PROC] +273F:481B  57                                   push    di +273F:481C  51                                   push    cx +273F:481D  FF D0                                call    ax +273F:481F  59                                   pop     cx +273F:4820  5F                                   pop     di +273F:4821                       loc_908:                                        ;  xref 273F:480C, 4813 +273F:4821  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:4824  E2 E2                                loop    locloop_907             ; Loop if cx > 0 + +273F:4826  59                                   pop     cx +273F:4827  E2 D8                                loop    locloop_906             ; Loop if cx > 0 + +273F:4829                       loc_909:                                        ;  xref 273F:47E8, 47F1 +273F:4829  C6 06 1926 00                        mov     data_669, 0 +273F:482E  C3                                   retn +                                sub_113         endp + +273F:482F  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:2031 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                        add_sequence_delay      proc    near +273F:4830  03 0E B8AB                           add     cx, seq_timer_ctr +273F:4834  33 C0                                xor     ax,ax                   ; Zero register +273F:4836  13 06 B8AD                           adc     ax, seq_timer_ctr_2 +273F:483A  BE B8AF                              mov     si, offset sequence_delay_table +273F:483D  EB 62                                jmp     short loc_915           ; (48A1) +                        add_sequence_delay      endp + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:0024 + +273F:483F                       sub_115: +273F:483F úBE B8AF                              mov     si,offset sequence_delay_table     ; (31E4:B8AF=0) +273F:4842  B9 0028                              mov     cx, NUM_DELAY_ENTRIES + +273F:4845                       locloop_910:                                    ;  xref 273F:4857 +273F:4845  F6 44 06 FF                          test    byte ptr [si+6],0FFh +273F:4849  74 09                                jz      loc_911                 ; Jump if zero +273F:484B  C7 04 0000                           mov     word ptr [si],0 +273F:484F  C7 44 02 0000                        mov     word ptr [si+2],0 +273F:4854                       loc_911:                                        ;  xref 273F:4849 +273F:4854  83 C6 07                             add     si, DELAY_ENTRY_SIZE +273F:4857  E2 EC                                loop    locloop_910             ; Loop if cx > 0 + +273F:4859  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      sequence_delay_check      proc    near +273F:485A  8B 16 B8AB                           mov     dx, seq_timer_ctr +273F:485E  8B 1E B8AD                           mov     bx, seq_timer_ctr_2 +273F:4862 úBE B8AF                              mov     si, offset sequence_delay_table +273F:4865  B9 0028                              mov     cx, NUM_DELAY_ENTRIES + +273F:4868                       locloop_912:                                    ;  xref 273F:4889 +273F:4868  F7 04 FFFF                           test    word ptr [si], 0FFFFh   ; Any entry here? +273F:486C  74 18                                jz      loc_913                 ; Skip if not +273F:486E  3B 5C 02                             cmp     bx, [si+2] +273F:4871  72 13                                jb      loc_913                 ; Jump if below +273F:4873  3B 14                                cmp     dx, [si] +273F:4875  72 0F                                jb      loc_913                 ; Jump if below +273F:4877  C7 04 0000                           mov     word ptr [si], 0        ; Timeout for entry reached +273F:487B  C7 44 02 0000                        mov     word ptr [si+2], 0 +273F:4880  8B 44 04                             mov     ax,[si+4] +273F:4883  E9 F5AE                              jmp     sequence_execute +273F:4886                       loc_913: +273F:4886  83 C6 07                             add     si, DELAY_ENTRY_SIZE    ; Move to next entry +273F:4889  E2 DD                                loop    locloop_912             ; Loop if cx > 0 +273F:488B  C3                                   retn +                      sequence_delay_check      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                    sequence_delay_list_init    proc    near +273F:488C úBE B8AF                              mov     si, offset sequence_delay_table +273F:488F  B9 0028                              mov     cx, NUM_DELAY_ENTRIES +273F:4892                       locloop_914: +273F:4892  C7 04 0000                           mov     word ptr [si],0 +273F:4896  83 C6 07                             add     si, DELAY_ENTRY_SIZE +273F:4899  E2 F7                                loop    locloop_914             ; Loop if cx > 0 +273F:489B  C3                                   retn +                    sequence_delay_list_init    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +273F:489C  BE B8AF                              mov     si, offset sequence_delay_table +273F:489F  33 C0                                xor     ax, ax +273F:48A1                       loc_915: +273F:48A1  8B E9                                mov     bp,cx +273F:48A3  B9 0028                              mov     cx, NUM_DELAY_ENTRIES + +273F:48A6                       locloop_916: +273F:48A6  F7 04 FFFF                           test    word ptr [si],0FFFFh    ; Slot free? +273F:48AA  75 13                                jnz     loc_917                 ; If not, then skip +273F:48AC  F7 44 02 FFFF                        test    word ptr [si+2],0FFFFh +273F:48B1  75 0C                                jnz     loc_917 +273F:48B3  89 2C                                mov     [si],bp                 ; Store sequence details +273F:48B5  89 44 02                             mov     [si+2], ax +273F:48B8  89 5C 04                             mov     [si+4], bx +273F:48BB  88 54 06                             mov     [si+6], dl +273F:48BE  C3                                   retn +273F:48BF                       loc_917: +273F:48BF  83 C6 07                             add     si, DELAY_ENTRY_SIZE    ; Loop through table +273F:48C2  E2 E2                                loop    locloop_916 + +273F:48C4  03 00                                add     ax, [bx+si] + +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ +                                ; +                                ;                       External Entry Point +                                ; +                                ; Timer Handler +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ + +273F:48C6                       timer_handler   proc    far                     ;  xref 273F:06AA +273F:48C6  50                                   push    ax +273F:48C7  53                                   push    bx +273F:48C8  51                                   push    cx +273F:48C9  52                                   push    dx +273F:48CA  56                                   push    si +273F:48CB  57                                   push    di +273F:48CC  55                                   push    bp +273F:48CD  1E                                   push    ds +273F:48CE  06                                   push    es +273F:48CF  9C                                   pushf                           ; Push flags +273F:48D0  B8 31E4                              mov     ax,data_seg +273F:48D3  8E D8                                mov     ds,ax + +; Timer ticks incrementor + +273F:48D5  81 3E F010 2EE0                      cmp     timer_ticks, TIMER_TICKS_MAX +273F:48DB  73 05                                jae     loc_918                 ; Jump if above or = +273F:48DD  83 06 F010 01                        add     timer_ticks, 1          ; (31E4:F010=0) +273F:48E2                       loc_918: + +; Code below is responsible for blinking musical note and playing music if a music sequence is set + +273F:48E2  F6 06 5668 FF                        test    note_flag, 0FFh        ; Any need to display note? +273F:48E7  74 52                                jz      loc_923                 ; No, so skip this section +273F:48E9  A0 5668                              mov     al, note_flag +273F:48EC  24 3F                                and     al,3Fh +273F:48EE  75 46                                jnz     loc_922                 ; Not yet at blink switch over +273F:48F0  80 0E 5668 0F                        or      note_flag, 0Fh         ; Reset for blink interval +273F:48F5  80 36 5668 40                        xor     note_flag, 40h         ; Toggle whether note is visble +273F:48FA  B8 A000                              mov     ax, VGA_SEGMENT +273F:48FD  8E C0                                mov     es,ax +273F:48FF úBF E740                              mov     di, NOTE_DISPLAY_ADDR   ; Where note will be displayed +273F:4902  BB 0007                              mov     bx, NOTE_IMAGE_WIDTH/2  ; Number of horiz words (width/2) +273F:4905  BA 000E                              mov     dx, NOTE_IMAGE_HEIGHT   ; Number of lines to display +273F:4908  F6 06 5668 40                        test    note_flag, MUSIC_NOTE_VISIBLE +273F:490D  74 18                                jz      loc_920                 ; No, so wipe out area +273F:490F  1E                                   push    ds +273F:4910  B8 4502                              mov     ax, musical_note_seg +273F:4913  8E D8                                mov     ds,ax +273F:4915  33 F6                                xor     si,si +273F:4917                       loc_919: +273F:4917  8B CB                                mov     cx,bx +273F:4919  F3/ A5                               rep     movsw                   ; Loop for moving one line of image +273F:491B ú81 C7 0132                           add     di, 320-MUSIC_NOTE_WIDTH ; Move to start of next line +273F:491F  83 EA 01                             sub     dx,1 +273F:4922  75 F3                                jnz     loc_919                 ; Jump if not zero +273F:4924  1F                                   pop     ds +273F:4925  EB 14                                jmp     short loc_923           ; (493B) +273F:4927                       loc_920:                                        ;  xref 273F:490D +273F:4927  33 C0                                xor     ax,ax                   ; Blank out area where note is +273F:4929                       loc_921: +273F:4929  8B CB                                mov     cx,bx +273F:492B  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:492D  81 C7 0132                           add     di,132h +273F:4931  83 EA 01                             sub     dx,1 +273F:4934  75 F3                                jnz     loc_921                 ; Jump if not zero +273F:4936                       loc_922:                                        ;  xref 273F:48EE +273F:4936  80 2E 5668 01                        sub     note_flag, 1           ; Decrement remaining time until +273F:493B                       loc_923:                                        ;  next time note is shown/hidden +273F:493B  F6 06 5660 04                        test    music_status,4          ; Once every 8 cycles (approx every +273F:4940  74 0D                                jz      loc_924                 ; 1/2 second), keep music playing +273F:4942  F6 06 5660 02                        test    music_status,2 +273F:4947  75 06                                jnz     loc_924 +273F:4949  B4 02                                mov     ah,2 +273F:494B  FF 1E 5662                           call    dword ptr [play_music_proc] + +; Remaining code is as of yet unknown + +273F:494F                       loc_924: +273F:494F  F6 06 38B0 FF                        test    byte ptr data_781,0FFh  ; (31E4:38B0=1) +273F:4954  75 1E                                jnz     loc_925                 ; Jump if not zero +273F:4956  80 2E 38B3 01                        sub     byte ptr data_783,1     ; (31E4:38B3=32h) +273F:495B  75 17                                jnz     loc_925                 ; Jump if not zero +273F:495D  83 06 B8AB 01                        add     seq_timer_ctr, 1 +273F:4962  83 16 B8AD 00                        adc     seq_timer_ctr_2, 0 +273F:4967  C6 06 38B3 32                        mov     byte ptr data_783,32h   ; (31E4:38B3=32h) '2' +273F:496C  80 0E 073D 02                        or      status_flags2, 2 +273F:4971  E8 FAF8                              call    random +273F:4974                       loc_925:                                        ;  xref 273F:4954, 495B +273F:4974  83 06 38B1 01                        add     time_ctr, 1             ; (31E4:38B1=0) +273F:4979  2E: 80 2E 48C4 01                    sub     byte ptr cs:[48C4h],1   ; (273F:48C4=3) +273F:497F  75 2C                                jnz     loc_928                 ; Jump if not zero +273F:4981  B0 02                                mov     al,2 +273F:4983  2E: 80 3E 48C5 44                    cmp     byte ptr cs:[48C5h],44h ; (273F:48C5=0) 'D' +273F:4989  73 02                                jae     loc_926                 ; Jump if above or = +273F:498B  04 01                                add     al,1 +273F:498D                       loc_926:                                        ;  xref 273F:4989 +273F:498D  2E: A2 48C4                          mov     byte ptr cs:[48C4h],al  ; (273F:48C4=3) +273F:4991  2E: 80 06 48C5 01                    add     byte ptr cs:[48C5h],1   ; (273F:48C5=0) +273F:4997  2E: 80 3E 48C5 5B                    cmp     byte ptr cs:[48C5h],5Bh ; (273F:48C5=0) '[' +273F:499D  72 06                                jb      loc_927                 ; Jump if below +273F:499F  2E: C6 06 48C5 00                    mov     byte ptr cs:[48C5h],0   ; (273F:48C5=0) + + +; Interrupt ending code - either send to old timer interrupt, or signal end without calling it + +273F:49A5                       loc_927:                                        ;  xref 273F:499D +273F:49A5  9C                                   pushf                           ; Push flags +273F:49A6  2E: FF 1E 04AA                       call    dword ptr cs:old_timer_int_proc +273F:49AB  EB 04                                jmp     short loc_929           ; (49B1) +273F:49AD                       loc_928:                                        ;  xref 273F:497F +273F:49AD  B0 20                                mov     al,20h                  ; ' ' +273F:49AF  E6 20                                out     20h,al                  ; port 20h, 8259-1 int command +                                                                                ;  al = 20h, end of interrupt +273F:49B1                       loc_929:                                        ;  xref 273F:49AB +273F:49B1  9D                                   popf                            ; Pop flags +273F:49B2  07                                   pop     es +273F:49B3  1F                                   pop     ds +273F:49B4  5D                                   pop     bp +273F:49B5  5F                                   pop     di +273F:49B6  5E                                   pop     si +273F:49B7  5A                                   pop     dx +273F:49B8  59                                   pop     cx +273F:49B9  5B                                   pop     bx +273F:49BA  58                                   pop     ax +273F:49BB  CF                                   iret                            ; Interrupt return +                                timer_handler   endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0127 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:49BC                       room_sleep      proc    near +273F:49BC  83 3E 9832 23                        cmp     room_number, ROOMNUM_VILLAGE_SHOP +273F:49C1  75 26                                jne     sleep +273F:49C3  F7 06 BA25 FFFF                      test    old_room_number, 0FFFFh +273F:49C9  75 1E                                jnz     sleep +273F:49CB  F6 06 073D 02                        test    status_flags2, 2 +273F:49D0  74 17                                jz      sleep +273F:49D2  50                                   push    ax +273F:49D3  BB 0010                              mov     bx,10h +273F:49D6  F6 06 073D 04                        test    status_flags2, 4 +273F:49DB  75 03                                jnz     loc_930                 ; Jump if not zero +273F:49DD  BB 0032                              mov     bx,32h +273F:49E0                       loc_930:                                        ;  xref 273F:49DB +273F:49E0  E8 561A                              call    play_sound                 ; (9FFD) +273F:49E3  80 36 073D 06                        xor     status_flags2, 6 +273F:49E8  58                                   pop     ax + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:3B77, 3B8C, 75BC, 75C8, 75DA, 75E6, 75F8 +                                ;                             7604, 7616, 764A, 977D, A1C3, A1D9, A5E6 +                                ;                             A615, A63A, A68D, A6F0, A93F, AA03 + +273F:49E9                       sleep: +273F:49E9                       loc_931:                                        ;  xref 273F:49C1, 49C9, 49D0, 49ED +273F:49E9  39 06 38B1                           cmp     time_ctr, ax +273F:49ED  72 FA                                jb      loc_931 +273F:49EF  C7 06 38B1 0000                      mov     time_ctr, 0 +273F:49F5  C3                                   retn +                                room_sleep      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5142, 5F79 +                                ; ax=character Hotspot Id, bx=dest x, cx=dest y, dl=[4ch] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                        character_pathfind      proc    near +273F:49F6  89 26 3942                           mov     pathfind_sp, sp         ; Backup current SP +273F:49FA  C7 06 3944 0FA0                      mov     pathfind_countdown_ctr, 0FA0h +273F:4A00  F6 06 3946 FF                        test    pathfind_in_progress, 0FFh +273F:4A05  74 0E                                jz      loc_933                 ; Jump if zero +273F:4A07  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:4A0A  74 03                                je      loc_932                 ; Jump if equal +273F:4A0C  33 C0                                xor     ax,ax                   ; Zero register +273F:4A0E  C3                                   retn +273F:4A0F                       loc_932: +273F:4A0F úBE 3983                              mov     si, offset player_pathfind_data +273F:4A12  8B 24                                mov     sp, [si]                ; Get SP for restore point +273F:4A14  C3                                   retn                            ; (ie. carry on where we left off) +273F:4A15                       loc_933: +273F:4A15  BE 3983                              mov     si, offset player_pathfind_data +273F:4A18  BD 03E8                              mov     bp, PLAYER_HOTSPOT_ID +273F:4A1B  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:4A1E  74 17                                je      loc_935                 ; Jump if equal +273F:4A20 úBE 4227                              mov     si, offset chars_pathfind_data +273F:4A23  BD 057A                              mov     bp, 57Ah +273F:4A26  F7 04 FFFF                           test    word ptr [si], 0FFFFh +273F:4A2A  74 10                                jz      loc_936                 ; Jump if zero +273F:4A2C  3B 44 02                             cmp     ax, [si+2] +273F:4A2F  74 03                                je      loc_934                 ; Jump if equal +273F:4A31  33 C0                                xor     ax, ax                  ; Zero register +273F:4A33  C3                                   retn +273F:4A34                       loc_934:                                        ;  xref 273F:4A2F +273F:4A34  8B 24                                mov     sp, [si] +273F:4A36  C3                                   retn +273F:4A37                       loc_935:                                        ;  xref 273F:4A1E +273F:4A37  C6 06 3946 01                        mov     pathfind_in_progress, 1 +273F:4A3C                       loc_936:                                        ;  xref 273F:4A2A +273F:4A3C  88 54 04                             mov     [si+PATHFIND_HS4C], dl +273F:4A3F  89 44 02                             mov     [si+PATHFIND_CHARACTER_ID], ax ; Store character Id +273F:4A42  8B E5                                mov     sp, bp + +; Handle adjusting destination X for left & right screen edges to place it completely +; off-screen. This will allows characters to walk completely off-screen as they exit +273F:4A44  81 FB 008A                           cmp     bx, 80h + 10            ; dest x >= 10? +273F:4A48  73 05                                jae     loc_937                 ; Jump if yes +273F:4A4A  83 EB 32                             sub     bx, 50 +273F:4A4D  EB 09                                jmp     short loc_938           ; (4A58) +273F:4A4F                       loc_937:                                        ;  xref 273F:4A48 +273F:4A4F  81 FB 01B6                           cmp     bx, 80h + 310 +273F:4A53  72 03                                jb      loc_938                 ; Jump if below +273F:4A55  83 C3 32                             add     bx, 50 +273F:4A58                       loc_938: +273F:4A58  89 5C 06                             mov     [si+PATHFIND_DEST_X], bx    ; Store X +273F:4A5B  89 4C 08                             mov     [si+PATHFIND_DEST_Y], cx    ; Store Y + +273F:4A5E  8B 6D 13                             mov     bp, [di+ANIM_WIDTH_COPY] +273F:4A61  83 ED 01                             sub     bp, 1 +273F:4A64  B1 03                                mov     cl, 3 +273F:4A66  D3 ED                                shr     bp, cl                  ; bp=(width copy-1)/8 +273F:4A68  57                                   push    di                                          +273F:4A69 ú81 C6 08A2                           add     si, 8A2h + +; Figure out the address for the bit-compressed data for screen walkable areas +273F:4A6D  8B 45 0E                             mov     ax, [di+ANIM_ROOM_NUM] +273F:4A70  8B D8                                mov     bx, ax +273F:4A72  B1 04                                mov     cl, 4 +273F:4A74  D3 E0                                shl     ax, cl +273F:4A76  2B C3                                sub     ax, bx +273F:4A78  B1 03                                mov     cl, 3 +273F:4A7A  D3 E0                                shl     ax, cl                  ; ax=Room # * 120 + +; Extract the bit-compressed data of the pathfinding data for the room into an +; uncompressed 26*42 byte array indicating whether each 8x8 pixel block on screen +; (and a surrounding column and row around the screen edge) can be traveled on +; cx = bit number, dl = number of columns, dh = number of rows + +273F:4A7C  05 9849                              add     ax, offset pathfind_data2 - 1 +273F:4A7F  1E                                   push    ds +273F:4A80  07                                   pop     es +273F:4A81  8B FE                                mov     di, si                  ; for player di=4225h +273F:4A83  8B F0                                mov     si, ax                  ; si=end of pathfind layer for room +273F:4A85  FD                                   std                             ; Set for reverse direction +273F:4A86  33 C0                                xor     ax, ax +273F:4A88  B9 002B                              mov     cx, 2Bh                 ; # cols + end col of 2nd last row +273F:4A8B  F3/ AB                               rep     stosw                   ; Clear area +273F:4A8D  83 C7 01                             add     di, 1                   ; For player di=41D0h + +273F:4A90  B6 18                                mov     dh, 24                  ; Number of rows on-screen +273F:4A92                       loc_939: +273F:4A92  B2 05                                mov     dl, 5                   ; Number of bytes horizontally + +273F:4A94                       loc_940: +273F:4A94  AC                                   lodsb                           ; Get next byte +273F:4A95  86 E0                                xchg    ah, al                  ; Move it into AH +273F:4A97  32 C0                                xor     al, al                  ; Reset AL to 0 for storage +273F:4A99  B9 0008                              mov     cx, 8                   ; Number of bits in the byte + +273F:4A9C                       locloop_941:                                    ;  xref 273F:4AA2, 4AB3 +273F:4A9C  D0 EC                                shr     ah, 1                   ; Move next bit for processing +273F:4A9E  72 06                                jc      loc_942                 ; Jump if bit set (block occupied) +273F:4AA0  AA                                   stosb                           ; Store 0 to es:[di] +273F:4AA1  AA                                   stosb                           ; Store 0 to es:[di] +273F:4AA2  E2 F8                                loop    locloop_941             ; Loop for remaining bits + +273F:4AA4  EB 33                                jmp     short loc_948 +273F:4AA6                       loc_942:                                        ; Handling for occupied blocks +273F:4AA6  F6 D0                                not     al +273F:4AA8  AA                                   stosb                           ; Store 0FFh to es:[di] +273F:4AA9  AA                                   stosb                           ; Store 0FFh to es:[di] +273F:4AAA  F6 D0                                not     al +273F:4AAC  8B DD                                mov     bx, bp                  ; Get width/8 val +273F:4AAE  83 EB 01                             sub     bx, 1 +273F:4AB1  73 1D                                jnc     loc_947                 ; Jump if width/8 val != 0 +273F:4AB3                       loc_943: +273F:4AB3  E2 E7                                loop    locloop_941             ; Keep looping + +273F:4AB5  EB 22                                jmp     short loc_948           ; (4AD9) +273F:4AB7                       loc_944:                                        ;  xref 273F:4AD5 +273F:4AB7  B9 0008                              mov     cx,8 +273F:4ABA  AC                                   lodsb                           ; String [si] to al +273F:4ABB  86 E0                                xchg    ah,al +273F:4ABD  32 C0                                xor     al,al                   ; Zero register + +273F:4ABF                       locloop_945:                                    ;  xref 273F:4AD0 +273F:4ABF  D0 EC                                shr     ah,1                    ; Shift w/zeros fill +273F:4AC1  73 02                                jnc     loc_946                 ; Jump if carry=0 +273F:4AC3  8B DD                                mov     bx,bp +273F:4AC5                       loc_946:                                        ;  xref 273F:4AC1 +273F:4AC5  F6 D0                                not     al +273F:4AC7  AA                                   stosb                           ; Store al to es:[di] +273F:4AC8  AA                                   stosb                           ; Store al to es:[di] +273F:4AC9  F6 D0                                not     al +273F:4ACB  83 EB 01                             sub     bx,1 +273F:4ACE  72 E3                                jc      loc_943                 ; Jump if carry Set +273F:4AD0                       loc_947:                                        ;  xref 273F:4AB1 +273F:4AD0  E2 ED                                loop    locloop_945             ; Loop if cx > 0 + +273F:4AD2  80 EA 01                             sub     dl,1 +273F:4AD5  75 E0                                jnz     loc_944                 ; Jump if not zero +273F:4AD7  EB 05                                jmp     short loc_949           ; (4ADE) + +273F:4AD9                       loc_948:                                        ;  xref 273F:4AA4, 4AB5 +273F:4AD9  80 EA 01                             sub     dl,1 +273F:4ADC  75 B6                                jnz     loc_940                 ; Jump if not zero +273F:4ADE                       loc_949: +273F:4ADE  B9 0004                              mov     cx, 4                   ; Store end col, next row start col +273F:4AE1  F3/ AA                               rep     stosb                    +273F:4AE3  B2 05                                mov     dl, 5 +273F:4AE5  80 EE 01                             sub     dh, 1 +273F:4AE8  75 A8                                jnz     loc_939                 ; Jump if not zero + +273F:4AEA  83 EF 01                             sub     di, 1 +273F:4AED  B9 0029                              mov     cx, 29h                 ; Handle final top off-screen row +273F:4AF0  33 C0                                xor     ax, ax +273F:4AF2  F3/ AB                               rep     stosw + +; End of decompression code for the path finding layer. + +273F:4AF4  83 EF 1A                             sub     di, 1Ah                 ; di=3983 again (skips local variables) +273F:4AF7  5E                                   pop     si                      ; si=anim slot +273F:4AF8  33 C0                                xor     ax, ax                  ; Zero register +273F:4AFA  89 45 0A                             mov     [di+PATHFIND_Y], ax +273F:4AFD  89 45 0C                             mov     [di+PATHFIND_X], ax +273F:4B00  89 45 10                             mov     [di+PATHFIND_DEST_X2], ax +273F:4B03  89 45 0E                             mov     [di+PATHFIND_0E], ax +273F:4B06  88 45 05                             mov     [di+PATHFIND_DEST_STATE], al +273F:4B09  81 2E 3944 02BC                      sub     pathfind_countdown_ctr, 2BCh       ; v2=0FA0h-2BCh=CE4h +273F:4B0F  8B 04                                mov     ax, [si+ANIM_X]         ; Get current X +273F:4B11  2D 0080                              sub     ax, 80h                 ; Subtract the 80h offset +273F:4B14  73 05                                jnc     loc_950                 ; Jump if current X on-screen +273F:4B16  89 45 0C                             mov     [di+PATHFIND_X], ax +273F:4B19  33 C0                                xor     ax, ax                  ; Zero register +273F:4B1B                       loc_950:                                        ; ax = max(0, X) +273F:4B1B  BB 013F                              mov     bx, 319 +273F:4B1E  2B 5C 13                             sub     bx, [si+ANIM_WIDTH_COPY] +273F:4B21  3B C3                                cmp     ax, bx +273F:4B23  72 07                                jb      loc_951                 ; X + full width on screen? +273F:4B25  2B C3                                sub     ax, bx +273F:4B27  89 45 0C                             mov     [di+PATHFIND_X], ax         ; X = min(X, 319 - width) +273F:4B2A  8B C3                                mov     ax, bx +273F:4B2C                       loc_951: +273F:4B2C  8B 5C 02                             mov     bx, [si+ANIM_Y] +273F:4B2F  80 E3 F8                             and     bl, 0F8h +273F:4B32  03 5C 15                             add     bx, [si+ANIM_HEIGHT_COPY] +273F:4B35  83 EB 04                             sub     bx, 4 +273F:4B38  81 EB 0088                           sub     bx, 88h                 ; bx=(Y&0F8h+height-4-8) +273F:4B3C  73 05                                jnc     loc_952                 ; Jump if bx (y bottom) < 0 +273F:4B3E  89 5D 0A                             mov     [di+PATHFIND_Y], bx +273F:4B41  33 DB                                xor     bx, bx                  ; Zero register +273F:4B43                       loc_952: +273F:4B43  81 FB 00C0                           cmp     bx, 192                 ; Is it on-screen? +273F:4B47  72 0A                                jb      loc_953                 ; Jump if below +273F:4B49  81 EB 00BF                           sub     bx, 191 +273F:4B4D  89 5D 0A                             mov     [di+PATHFIND_Y], bx +273F:4B50  BB 00BF                              mov     bx, 191 + +273F:4B53                       loc_953: +273F:4B53  8B 4D 06                             mov     cx, [di+PATHFIND_DEST_X] +273F:4B56  81 E9 0080                           sub     cx, 128 +273F:4B5A  73 05                                jnc     loc_954                 ; Jump if x >= 0 +273F:4B5C  89 4D 10                             mov     [di+PATHFIND_DEST_X2], cx   ; Store X (will be negative) +273F:4B5F  33 C9                                xor     cx, cx +273F:4B61                       loc_954: +273F:4B61  BA 0140                              mov     dx, SCREEN_WIDTH +273F:4B64  2B 54 13                             sub     dx, [si+ANIM_WIDTH_COPY] +273F:4B67  3B CA                                cmp     cx, dx +273F:4B69  72 07                                jb      loc_955                 ; Jump if fully on screen +273F:4B6B  2B CA                                sub     cx, dx +273F:4B6D  89 4D 10                             mov     [di+PATHFIND_DEST_X2], cx +273F:4B70  8B CA                                mov     cx, dx +273F:4B72                       loc_955: +273F:4B72  8B 55 08                             mov     dx, [di+PATHFIND_DEST_Y] +273F:4B75  81 EA 0088                           sub     dx, 88h +273F:4B79  73 02                                jnc     loc_956                 ; Jump if y >= 0 +273F:4B7B  33 D2                                xor     dx, dx                  ; Zero register +273F:4B7D                       loc_956:                                         +273F:4B7D  81 FA 00C0                           cmp     dx, 192 +273F:4B81  72 03                                jb      loc_957                 ; Jump if below +273F:4B83  BA 00BF                              mov     dx, 191 +273F:4B86                       loc_957:                                        ;  xref 273F:4B81 +273F:4B86  8B E9                                mov     bp, cx + +; current=(ax,bx), dest=(bp,dx). Check to see if a move of only a few pixels is required +273F:4B88  B1 03                                mov     cl, 3 +273F:4B8A  D3 E8                                shr     ax, cl +273F:4B8C  D3 EB                                shr     bx, cl +273F:4B8E  D3 ED                                shr     bp, cl +273F:4B90  D3 EA                                shr     dx, cl +273F:4B92  3B C5                                cmp     ax, bp                  ; Is x/8=dest_x/8? +273F:4B94  75 2B                                jne     loc_961                 ; Jump if not +273F:4B96  3B DA                                cmp     bx, dx                  ; Is y/8=dest_y/8? +273F:4B98  75 27                                jne     loc_961                 ; Jump if not + +; Destination is very close to source. +; If (I think) the PATHFIND_DEST_X2 != 0 (ie. dest is partially off-screen), then +; an initial walk entry is placed. Then irrespective, control jumps to loc_1003, +; which puts another left/right walking entry to move the character to dest X + +273F:4B9A úBB 3940                              mov     bx, offset pathfind_buffer_end +273F:4B9D  C7 07 0000                           mov     word ptr [bx], 0        ; Set end of pathfind sequence +273F:4BA1  8B 45 10                             mov     ax, [di+PATHFIND_DEST_X2] +273F:4BA4  0B C0                                or      ax, ax                  ; Any partial off-screen move? +273F:4BA6  74 16                                jz      loc_960                 ; Jump if zero +273F:4BA8  78 07                                js      loc_958                 ; Jump if sign=1 +273F:4BAA  C7 47 FE 0002                        mov     word ptr [bx-2], FACING2_RIGHT +273F:4BAF  EB 07                                jmp     short loc_959           ; (4BB8) +273F:4BB1                       loc_958:                                        ;  xref 273F:4BA8 +273F:4BB1  C7 47 FE 0001                        mov     word ptr [bx-2], FACING2_LEFT +273F:4BB6  F7 D8                                neg     ax +273F:4BB8                       loc_959:                                        ;  xref 273F:4BAF +273F:4BB8  89 47 FC                             mov     [bx-4], ax              ; Store # steps +273F:4BBB  83 EB 04                             sub     bx, 4                   ; Move back for next record +273F:4BBE                       loc_960: +273F:4BBE  E9 02B3                              jmp     loc_1003 + +; Destination isn't close, so here's where the actual pathfinding needs to be done +; current=(ax,bx)/8, dest=(bp,dx)/8 + +273F:4BC1                       loc_961:                                        ;  xref 273F:4B94, 4B98 +273F:4BC1  50                                   push    ax +273F:4BC2  53                                   push    bx +273F:4BC3  55                                   push    bp +273F:4BC4  52                                   push    dx +273F:4BC5  89 6D 06                             mov     [di+PATHFIND_DEST_X], bp    ; Store dest pos/8 +273F:4BC8  89 55 08                             mov     [di+PATHFIND_DEST_Y], dx + +273F:4BCB  D1 E0                                shl     ax, 1                   ; ax=sb_x*2 +273F:4BCD  8B F3                                mov     si, bx                  ; si=sb_y +273F:4BCF  B1 02                                mov     cl, 2 +273F:4BD1  D3 E3                                shl     bx, cl                  ; bx=sb_y*4 +273F:4BD3  03 DE                                add     bx, si                  ; bx=sb_y*5 +273F:4BD5  D3 E3                                shl     bx, cl                  ; bx=sb_y*20 +273F:4BD7  03 DE                                add     bx, si                  ; bx=sb_y*21 +273F:4BD9  D3 E3                                shl     bx, cl                  ; bx=sb_y*84 +273F:4BDB  03 D8                                add     bx, ax                  ; bx=sb_y*84 + sb_x*2 +273F:4BDD  83 C3 72                             add     bx, 72h                 ; Add on buffer & blank line offset +273F:4BE0  03 DF                                add     bx, di                  ; bx=source cell +273F:4BE2  C7 07 0001                           mov     word ptr [bx],1         ; Flag source cell +273F:4BE6  D1 E5                                shl     bp, 1 +273F:4BE8  8B F2                                mov     si, dx +273F:4BEA  D3 E6                                shl     si, cl +273F:4BEC  03 F2                                add     si, dx +273F:4BEE  D3 E6                                shl     si, cl +273F:4BF0  03 F2                                add     si, dx +273F:4BF2  D3 E6                                shl     si, cl +273F:4BF4  03 F5                                add     si, bp +273F:4BF6  83 C6 72                             add     si, 72h +273F:4BF9  03 F7                                add     si, di                  ; si=dest cell +273F:4BFB  C6 45 12 00                          mov     byte ptr [di+PATHFIND_DEST_OCCUPIED], 0 +273F:4BFF  F6 04 FF                             test    byte ptr [si], 0FFh     ; Is dest cell blocked? +273F:4C02  74 0C                                jz      loc_962                 ; Jump if clear +273F:4C04  C7 04 0000                           mov     word ptr [si], 0        ; Mark dest cell as unblocked +273F:4C08  C6 45 12 01                          mov     byte ptr [di+PATHFIND_DEST_OCCUPIED], 1 +273F:4C0C  C6 45 05 01                          mov     byte ptr [di+PATHFIND_DEST_STATE], 1 ; Dest occupied +273F:4C10                       loc_962: +273F:4C10  F6 45 04 FF                          test    byte ptr [di+PATHFIND_HS4C],0FFh +273F:4C14  74 00                                jz      $+2 +273F:4C16  5A                                   pop     dx +273F:4C17  59                                   pop     cx +273F:4C18  5D                                   pop     bp +273F:4C19  58                                   pop     ax + +; Source/8=(ax,bp), Dest/8=(cx,dx), bx=source cell, si=dest cell  +273F:4C1A  3B C1                                cmp     ax,cx                   ; Start X against Dest X +273F:4C1C  73 19                                jae     loc_964                 ; Jump if >= +273F:4C1E  0B C0                                or      ax,ax                   ; Is Start X 0? +273F:4C20  74 06                                jz      loc_963                 ; Jump if yes +273F:4C22  2D 0001                              sub     ax, 1 +273F:4C25  83 EB 02                             sub     bx, 2 +273F:4C28                       loc_963: +273F:4C28  C7 45 14 0002                        mov     word ptr [di+PATHFIND_X_CHANGE1], 2 +273F:4C2D  B9 0028                              mov     cx, ROOM_PATHS_WIDTH +273F:4C30  2B C8                                sub     cx, ax +273F:4C32  89 4D 18                             mov     [di+PATHFIND_X_CHANGE2], cx +273F:4C35  EB 17                                jmp     short loc_966           ; (4C4E) +273F:4C37                       loc_964:                                        ;  xref 273F:4C1C +273F:4C37  3D 0027                              cmp     ax, ROOM_PATHS_WIDTH - 1 +273F:4C3A  74 06                                je      loc_965                 ; Jump if equal +273F:4C3C  05 0001                              add     ax, 1 +273F:4C3F  83 C3 02                             add     bx, 2 +273F:4C42                       loc_965:                                        ;  xref 273F:4C3A +273F:4C42  C7 45 14 FFFE                        mov     word ptr [di+PATHFIND_X_CHANGE1], 0FFFEh +273F:4C47  89 45 18                             mov     [di+PATHFIND_X_CHANGE2],ax +273F:4C4A  83 45 18 01                          add     word ptr [di+PATHFIND_X_CHANGE2], 1 +273F:4C4E                       loc_966:                                        ;  xref 273F:4C35 +273F:4C4E  3B EA                                cmp     bp, dx +273F:4C50  72 19                                jb      loc_968                 ; Jump if below +273F:4C52  83 FD 17                             cmp     bp, ROOM_PATHS_HEIGHT - 1 +273F:4C55  74 06                                je      loc_967                 ; Jump if equal +273F:4C57  83 C5 01                             add     bp, 1 +273F:4C5A  83 C3 54                             add     bx, DECODED_PATHS_WIDTH * 2 +273F:4C5D                       loc_967:                                        ;  xref 273F:4C55 +273F:4C5D  C7 45 16 FFAC                        mov     [di+PATHFIND_Y_CHANGE1], -DECODED_PATHS_WIDTH*2 +273F:4C62  89 6D 1A                             mov     [di+PATHFIND_Y_CHANGE2], bp +273F:4C65  83 45 1A 01                          add     [di+PATHFIND_Y_CHANGE2], 1 +273F:4C69  EB 17                                jmp     short loc_970           ; (4C82) +273F:4C6B                       loc_968:                                        ;  xref 273F:4C50 +273F:4C6B  0B ED                                or      bp, bp                   ; Zero ? +273F:4C6D  74 06                                jz      loc_969                 ; Jump if zero +273F:4C6F  83 ED 01                             sub     bp, 1 +273F:4C72  83 EB 54                             sub     bx, DECODED_PATHS_WIDTH * 2 +273F:4C75                       loc_969:                                        ;  xref 273F:4C6D +273F:4C75  C7 45 16 0054                        mov     word ptr [di+PATHFIND_Y_CHANGE1], DECODED_PATHS_WIDTH * 2 +273F:4C7A  B9 0018                              mov     cx, ROOM_PATHS_HEIGHT +273F:4C7D  2B CD                                sub     cx, bp +273F:4C7F  89 4D 1A                             mov     [di+PATHFIND_Y_CHANGE2], cx +273F:4C82                       loc_970: + +; This next section populates the walkable sections of the decompressed array +; with incrementing numbers indicating the number of cells away each cell is +; from the source. A walkable path can be later formed by following the +; path of decrementing numbers from the destination to the source and reversing it + +273F:4C82  8B 55 14                             mov     dx,[di+PATHFIND_X_CHANGE1] +273F:4C85                       loc_971:                                        ;  xref 273F:4CC6, 4CCE, 4CDA +273F:4C85 ú56                                   push    si +273F:4C86  53                                   push    bx +273F:4C87  8B 36 3944                           mov     si, pathfind_countdown_ctr +273F:4C8B  8B 4D 1A                             mov     cx, [di+PATHFIND_Y_CHANGE2] + +273F:4C8E                       locloop_972:                                    ;  xref 273F:4C9F +273F:4C8E  51                                   push    cx +273F:4C8F  53                                   push    bx +273F:4C90  8B 4D 18                             mov     cx, [di+PATHFIND_X_CHANGE2] + +273F:4C93                       locloop_973:                                    ;  xref 273F:4C98 +273F:4C93  E8 021A                              call    pathfind_populate_cells +273F:4C96  03 DA                                add     bx, dx +273F:4C98  E2 F9                                loop    locloop_973             ; Loop if cx > 0 + +273F:4C9A  5B                                   pop     bx +273F:4C9B  59                                   pop     cx +273F:4C9C  03 5D 16                             add     bx, [di+PATHFIND_Y_CHANGE1] +273F:4C9F  E2 ED                                loop    locloop_972             ; Loop if cx > 0 + +273F:4CA1  89 36 3944                           mov     pathfind_countdown_ctr, si +273F:4CA5  5B                                   pop     bx +273F:4CA6  5E                                   pop     si +273F:4CA7  F7 04 FFFF                           test    word ptr [si], 0FFFFh   ; Dest been filled in yet? +273F:4CAB  75 2F                                jnz     loc_977                 ; Jump if yes + +273F:4CAD  80 7D 1A 18                          cmp     byte ptr [di+PATHFIND_Y_CHANGE2], ROOM_PATHS_HEIGHT +273F:4CB1  75 08                                jne     loc_974                 ; Jump if not equal +273F:4CB3  80 7D 18 28                          cmp     byte ptr [di+PATHFIND_X_CHANGE2], ROOM_PATHS_WIDTH +273F:4CB7  74 17                                je      loc_976                 ; Jump if equal +273F:4CB9  EB 07                                jmp     short loc_975 +273F:4CBB                       loc_974:                                        ;  xref 273F:4CB1 +273F:4CBB  2B 5D 16                             sub     bx, [di+PATHFIND_Y_CHANGE1] +273F:4CBE  83 45 1A 01                          add     word ptr [di+PATHFIND_Y_CHANGE2], 1 +273F:4CC2                       loc_975: +273F:4CC2  80 7D 18 28                          cmp     byte ptr [di+PATHFIND_X_CHANGE2], ROOM_PATHS_WIDTH +273F:4CC6  74 BD                                je      loc_971                 ; Jump if equal +273F:4CC8  2B DA                                sub     bx, dx +273F:4CCA  83 45 18 01                          add     word ptr [di+PATHFIND_X_CHANGE2], 1 +273F:4CCE  EB B5                                jmp     short loc_971 + +273F:4CD0                       loc_976: +273F:4CD0  F6 45 13 FF                          test    byte ptr [di+PATHFIND_CELL_POPULATED], 0FFh +273F:4CD4  74 08                                jz      loc_978                 ; Jump if no cell populated +273F:4CD6  C6 45 13 00                          mov     byte ptr [di+PATHFIND_CELL_POPULATED], 0 +273F:4CDA  EB A9                                jmp     short loc_971           ; Jump for another try +273F:4CDC                       loc_977: +273F:4CDC  EB 66                                jmp     short loc_982 +273F:4CDE                       loc_978: +273F:4CDE  C6 45 05 02                          mov     byte ptr [di+PATHFIND_DEST_STATE], 2 ; No path to destination +273F:4CE2                       loc_979: +273F:4CE2  F6 45 12 FF                          test    byte ptr [di+PATHFIND_DEST_OCCUPIED], 0FFh +273F:4CE6  74 08                                jz      loc_980                 ; Jump if zero +273F:4CE8  C7 04 FFFF                           mov     word ptr [si], 0FFFFh   ; Restore destination occupied +273F:4CEC  C6 45 12 00                          mov     byte ptr [di+PATHFIND_DEST_OCCUPIED], 0 +273F:4CF0                       loc_980: + +; Do a scan of the lines, if necessary, to allow the character to walk up to +; a wall without walking into it +273F:4CF0  57                                   push    di +273F:4CF1  8B EE                                mov     bp, si +273F:4CF3  8B DE                                mov     bx, si                  ; bx=bp=destination cell +273F:4CF5  B2 FF                                mov     dl, 0FFh +273F:4CF7  8B 4D 06                             mov     cx, [di+PATHFIND_DEST_X] +273F:4CFA  83 C1 01                             add     cx, 1 +273F:4CFD  BF FFFE                              mov     di, 0FFFEh +273F:4D00  E8 0220                              call    pathfind_scan_line +273F:4D03  5F                                   pop     di +273F:4D04  57                                   push    di +273F:4D05  B9 0028                              mov     cx, ROOM_PATHS_WIDTH +273F:4D08  2B 4D 06                             sub     cx, [di+PATHFIND_DEST_X] +273F:4D0B  BF 0002                              mov     di, 2 +273F:4D0E  E8 0212                              call    pathfind_scan_line +273F:4D11  5F                                   pop     di +273F:4D12  57                                   push    di +273F:4D13  8B 4D 08                             mov     cx, [di+PATHFIND_DEST_Y] +273F:4D16  83 C1 01                             add     cx, 1 +273F:4D19  BF FFAC                              mov     di, -DECODED_PATHS_WIDTH*2 +273F:4D1C  E8 0204                              call    pathfind_scan_line +273F:4D1F  5F                                   pop     di +273F:4D20  57                                   push    di +273F:4D21  B9 0018                              mov     cx, ROOM_PATHS_HEIGHT +273F:4D24  2B 4D 08                             sub     cx, [di+PATHFIND_DEST_Y] +273F:4D27  BF 0054                              mov     di, DECODED_PATHS_WIDTH*2 +273F:4D2A  E8 01F6                              call    pathfind_scan_line +273F:4D2D  5F                                   pop     di +273F:4D2E  8B F5                                mov     si, bp +273F:4D30  3B DE                                cmp     bx, si +273F:4D32  75 0E                                jne     loc_981                 ; Jump if not equal +273F:4D34  C6 45 05 03                          mov     byte ptr [di+PATHFIND_DEST_STATE], 3 +273F:4D38 úBB 3940                              mov     bx, offset pathfind_buffer_end +273F:4D3B  C7 07 0000                           mov     word ptr [bx], 0 +273F:4D3F  E9 0132                              jmp     loc_1003                ; (4E74) +273F:4D42                       loc_981:                                        ;  xref 273F:4D32 +273F:4D42  8B F3                                mov     si, bx + +273F:4D44                       loc_982:                                        ;  xref 273F:4CDC +273F:4D44  F6 45 12 FF                          test    byte ptr [di+PATHFIND_DEST_OCCUPIED], 0FFh +273F:4D48  75 98                                jnz     loc_979                 ; Jump if not zero + +; end of cell population +; Fill out any cells that are still blank (ie. anywhere that can't reach the +; destination) as occupied + +273F:4D4A  FC                                   cld                             ; Clear direction +273F:4D4B  57                                   push    di +273F:4D4C  83 C7 1C                             add     di, 1Ch                 ; di=start of grid +273F:4D4F  B9 0445                              mov     cx, DECODED_PATHS_WIDTH*DECODED_PATHS_HEIGHT+1 ;445h +273F:4D52  33 C0                                xor     ax, ax +273F:4D54                       loc_983:                               +273F:4D54 úF2/ AF                               repne   scasw                   ; Scan for an empty cell +273F:4D56  0B C9                                or      cx, cx                  ; Reached end of list? +273F:4D58  74 07                                jz      loc_984                 ; Jump if yes +273F:4D5A  C7 45 FE FFFF                        mov     word ptr [di-2], 0FFFFh ; Replace it with occupied state +273F:4D5F  EB F3                                jmp     short loc_983 +            +273F:4D61                       loc_984:                                         +273F:4D61  5F                                   pop     di +273F:4D62  33 D2                                xor     dx, dx +273F:4D64  B1 FF                                mov     cl,0FFh +273F:4D66 úBB 3940                              mov     bx, offset pathfind_buffer_end +273F:4D69  C7 07 0000                           mov     word ptr [bx], 0 +273F:4D6D  F6 45 05 FF                          test    byte ptr [di+PATHFIND_DEST_STATE], 0FFh +273F:4D71  75 1D                                jnz     loc_987                 ; Jump if not zero +273F:4D73  8B 45 10                             mov     ax, [di+PATHFIND_DEST_X2] +273F:4D76  0B C0                                or      ax,ax                   ; Zero ? +273F:4D78  74 16                                jz      loc_987                 ; Jump if zero +273F:4D7A  78 07                                js      loc_985                 ; Jump if sign=1 +273F:4D7C  C7 47 FE 0002                        mov     word ptr [bx-2], FACING2_RIGHT +273F:4D81  EB 07                                jmp     short loc_986           ; (4D8A) +273F:4D83                       loc_985:                                        ;  xref 273F:4D7A +273F:4D83  C7 47 FE 0001                        mov     word ptr [bx-2], FACING2_LEFT +273F:4D88  F7 D8                                neg     ax +273F:4D8A                       loc_986:                                        ;  xref 273F:4D81 +273F:4D8A  89 47 FC                             mov     [bx-4], ax              ; Save # steps +273F:4D8D  83 EB 04                             sub     bx, 4 +273F:4D90                       loc_987:                                        ;  xref 273F:4D71, 4D78, 4E64, 4E6F + +273F:4D90 ú53                                   push    bx +273F:4D91  56                                   push    si + +; Form a set of steps starting at the source +273F:4D92                       loc_988: +273F:4D92 ú8B 04                                mov     ax, [si]                ; Get steps value from current pos +273F:4D94  2D 0001                              sub     ax, 1 +273F:4D97  74 4A                                jz      loc_992                 ; Jump if zero +273F:4D99  F6 C2 26                             test    dl, 38 +273F:4D9C  75 11                                jnz     loc_989                 ; Jump if not zero +273F:4D9E  39 44 AC                             cmp     [si-DECODED_PATHS_WIDTH*2], ax +273F:4DA1  74 67                                je      loc_996                 ; Jump if equal +273F:4DA3  39 44 54                             cmp     [si+DECODED_PATHS_WIDTH*2], ax +273F:4DA6  74 60                                je      loc_995                 ; Jump if equal +273F:4DA8  39 44 02                             cmp     [si+2], ax +273F:4DAB  74 38                                je      loc_993                 ; Jump if equal +273F:4DAD  EB 11                                jmp     short loc_990           ; (4DC0) +273F:4DAF                       loc_989:                                        ;  xref 273F:4D9C +273F:4DAF  39 44 02                             cmp     [si+2], ax +273F:4DB2  74 31                                je      loc_993                 ; Jump if equal +273F:4DB4  39 44 FE                             cmp     [si-2], ax +273F:4DB7  74 07                                je      loc_990                 ; Jump if equal +273F:4DB9  39 44 54                             cmp     [si+DECODED_PATHS_WIDTH*2], ax +273F:4DBC  74 70                                je      loc_998                 ; Jump if equal +273F:4DBE  EB 4A                                jmp     short loc_996           ; (4E0A) +273F:4DC0                       loc_990:                                        ;  xref 273F:4DAD, 4DB7 +273F:4DC0  80 E2 03                             and     dl,3 +273F:4DC3  F6 C2 02                             test    dl,2 +273F:4DC6  75 10                                jnz     loc_991                 ; Jump if not zero +273F:4DC8  80 C6 01                             add     dh,1 +273F:4DCB  C7 47 FE 0002                        mov     word ptr [bx-2], FACING2_RIGHT +273F:4DD0  C7 47 FC 0000                        mov     word ptr [bx-4], 0 +273F:4DD5  83 EB 04                             sub     bx, 4 +273F:4DD8                       loc_991:                                        ;  xref 273F:4DC6 +273F:4DD8  83 EE 02                             sub     si,2 +273F:4DDB  83 07 08                             add     word ptr [bx],8 +273F:4DDE  80 CA 02                             or      dl,2 +273F:4DE1  EB AF                                jmp     short loc_988           ; (4D92) +273F:4DE3                       loc_992:                                        ;  xref 273F:4D97 +273F:4DE3  EB 6D                                jmp     short loc_1000          ; (4E52) +273F:4DE5                       loc_993:                                        ;  xref 273F:4DAB, 4DB2 +273F:4DE5  80 E2 05                             and     dl,5 +273F:4DE8  F6 C2 04                             test    dl,4 +273F:4DEB  75 10                                jnz     loc_994                 ; Jump if not zero +273F:4DED  80 C6 01                             add     dh,1 +273F:4DF0  C7 47 FE 0001                        mov     word ptr [bx-2], FACING2_LEFT +273F:4DF5  C7 47 FC 0000                        mov     word ptr [bx-4], 0 +273F:4DFA  83 EB 04                             sub     bx, 4 +273F:4DFD                       loc_994:                                        ;  xref 273F:4DEB +273F:4DFD  83 C6 02                             add     si, 2 +273F:4E00  83 07 08                             add     word ptr [bx], 8        ; Add # steps +273F:4E03  80 CA 04                             or      dl, 4 +273F:4E06  EB 8A                                jmp     short loc_988           ; (4D92) +273F:4E08                       loc_995:                                        ;  xref 273F:4DA6 +273F:4E08  EB 24                                jmp     short loc_998           ; (4E2E) +273F:4E0A                       loc_996:                                        ;  xref 273F:4DA1, 4DBE +273F:4E0A  80 E2 09                             and     dl,9 +273F:4E0D  F6 C2 08                             test    dl,8 +273F:4E10  75 10                                jnz     loc_997                 ; Jump if not zero +273F:4E12  80 C6 01                             add     dh,1 +273F:4E15  C7 47 FE 0008                        mov     word ptr [bx-2], FACING2_DOWN +273F:4E1A  C7 47 FC 0000                        mov     word ptr [bx-4], 0 +273F:4E1F  83 EB 04                             sub     bx, 4 +273F:4E22                       loc_997:                                        ;  xref 273F:4E10 +273F:4E22  83 EE 54                             sub     si, DECODED_PATHS_WIDTH*2 +273F:4E25  83 07 08                             add     word ptr [bx], 8        ; Add # steps +273F:4E28  80 CA 08                             or      dl, 8 +273F:4E2B  E9 FF64                              jmp     loc_988                 ; (4D92) +273F:4E2E                       loc_998:                                        ;  xref 273F:4DBC, 4E08 +273F:4E2E  80 E2 11                             and     dl,11h +273F:4E31  F6 C2 10                             test    dl,10h +273F:4E34  75 10                                jnz     loc_999                 ; Jump if not zero +273F:4E36  80 C6 01                             add     dh,1 +273F:4E39  C7 47 FE 0004                        mov     word ptr [bx-2], FACING2_UP +273F:4E3E  C7 47 FC 0000                        mov     word ptr [bx-4], 0 +273F:4E43  83 EB 04                             sub     bx, 4 +273F:4E46                       loc_999:                                        ;  xref 273F:4E34 +273F:4E46  83 C6 54                             add     si, DECODED_PATHS_WIDTH*2 +273F:4E49  83 07 08                             add     word ptr [bx], 8        ; Add # steps +273F:4E4C  80 CA 10                             or      dl, 10h +273F:4E4F  E9 FF40                              jmp     loc_988                 ; (4D92) + +; This post-check is used to go through the paths two times - the first two +; tries the path using standard direction checks, the second using the alternate +; checks. If the first run through was the shortest, redo the process a third +; time to get the walking sequence that was obtained the first time +273F:4E52                       loc_1000: +273F:4E52  F6 C2 01                             test    dl, 1                   ; Test for exit flag +273F:4E55  75 1B                                jnz     loc_1002                ; Jump if yes +273F:4E57  F6 C1 80                             test    cl, 80h +273F:4E5A  74 0B                                jz      loc_1001                ; Jump if zero +273F:4E5C  5E                                   pop     si +273F:4E5D  5B                                   pop     bx +273F:4E5E  8A CE                                mov     cl, dh                  ; Store number of steps +273F:4E60  32 F6                                xor     dh, dh                  ; Reset counter +273F:4E62  B2 20                                mov     dl, 20h                 ; Flag for alt direction check +273F:4E64  E9 FF29                              jmp     loc_987                 ; Go get directions again +273F:4E67                       loc_1001: +273F:4E67  3A CE                                cmp     cl, dh +273F:4E69  73 07                                jae     loc_1002                ; Jump if above or = +273F:4E6B  5E                                   pop     si +273F:4E6C  5B                                   pop     bx +273F:4E6D  B2 01                                mov     dl, 1                   ; Flag for exit after retry +273F:4E6F  E9 FF1E                              jmp     loc_987 + +273F:4E72                       loc_1002: +273F:4E72  5E                                   pop     si +273F:4E73  58                                   pop     ax + +273F:4E74                       loc_1003: +273F:4E74  FC                                   cld                             ; Clear direction +273F:4E75  8B 45 0C                             mov     ax, [di+PATHFIND_X] +273F:4E78  A9 FFFF                              test    ax, 0FFFFh              ; Check X position +273F:4E7B  74 19                                jz      loc_1006 +273F:4E7D  78 0A                                js      loc_1004                ; Move +273F:4E7F  C7 47 FE 0001                        mov     word ptr [bx-2], FACING2_LEFT +273F:4E84  89 47 FC                             mov     [bx-4], ax              ; Save # steps +273F:4E87  EB 0A                                jmp     short loc_1005 +273F:4E89                       loc_1004:                                       ;  xref 273F:4E7D +273F:4E89  C7 47 FE 0002                        mov     word ptr [bx-2], FACING2_RIGHT +273F:4E8E  F7 D8                                neg     ax +273F:4E90  89 47 FC                             mov     [bx-4], ax              ; Save # steps +273F:4E93                       loc_1005: +273F:4E93  83 EB 04                             sub     bx, 4                   ; Move back one record +273F:4E96                       loc_1006:                                       ; End of pathfinding +273F:4E96  C7 05 0000                           mov     word ptr [di], 0 +273F:4E9A  8B 26 3942                           mov     sp, pathfind_sp +273F:4E9E  C6 06 3946 00                        mov     pathfind_in_progress, 0 ; Reset in-progress flag +273F:4EA3  B8 0001                              mov     ax, 1                   ; Set return value +273F:4EA6  02 45 05                             add     al, [di+PATHFIND_DEST_STATE] +273F:4EA9  50                                   push    ax +273F:4EAA  53                                   push    bx +273F:4EAB  06                                   push    es +273F:4EAC  07                                   pop     es +273F:4EAD  5B                                   pop     bx +273F:4EAE  58                                   pop     ax +273F:4EAF  C3                                   retn +                        character_pathfind      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4C93 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                     pathfind_populate_cells    proc    near +273F:4EB0  F7 07 FFFF                           test    word ptr [bx], 0FFFFh   ; Is cell occupied? +273F:4EB4  75 48                                jnz     loc_1013                ; Jump if it is +273F:4EB6  BD FFFF                              mov     bp, 0FFFFh +273F:4EB9  8B 47 AC                             mov     ax, [bx-(DECODED_PATHS_WIDTH*2)] ; Get cell from one line up +273F:4EBC  0B C0                                or      ax, ax                  ; Is it occupied +273F:4EBE  74 06                                jz      loc_1007                ; Jump if not +273F:4EC0  3B C5                                cmp     ax, bp                  ; Is it standard occupied indicator? +273F:4EC2  73 02                                jae     loc_1007 +273F:4EC4  8B E8                                mov     bp,ax                   ; Store loaded cell value +273F:4EC6                       loc_1007: +273F:4EC6  8B 47 54                             mov     ax, [bx+(DECODED_PATHS_WIDTH*2)] ; Get cell from next line +273F:4EC9  0B C0                                or      ax, ax                  ; Is it occupied? +273F:4ECB  74 06                                jz      loc_1008                ; Jump if not +273F:4ECD  3B C5                                cmp     ax, bp +273F:4ECF  73 02                                jae     loc_1008 +273F:4ED1  8B E8                                mov     bp, ax                  ; Store loaded cell value +273F:4ED3                       loc_1008: +273F:4ED3  8B 47 FE                             mov     ax, [bx-2]              ; Get cell from left +273F:4ED6  0B C0                                or      ax, ax                  ; Is it occupied? +273F:4ED8  74 06                                jz      loc_1009                ; Jump if not +273F:4EDA  3B C5                                cmp     ax, bp +273F:4EDC  73 02                                jae     loc_1009                ; Store loaded cell value +273F:4EDE  8B E8                                mov     bp, ax +273F:4EE0                       loc_1009: +273F:4EE0  8B 47 02                             mov     ax, [bx+2]              ; Get cell from right +273F:4EE3  0B C0                                or      ax, ax                  ; Is it occupied? +273F:4EE5  74 06                                jz      loc_1010                ; Jump if not +273F:4EE7  3B C5                                cmp     ax, bp +273F:4EE9  73 02                                jae     loc_1010 +273F:4EEB  8B E8                                mov     bp, ax                  ; Store loaded cell value +273F:4EED                       loc_1010: + +; At this point, bp contains the lowest value from the surrounding cells, not +; counting entries with 0ffff (occupied). Below we will now add 1 to the value +; and store it in the cell. By repeated calls processing the entire grid, we +; can figure out a path to the destination by following sequential numbers +273F:4EED  83 C5 01                             add     bp, 1 +273F:4EF0  74 06                                jz      loc_1011                ; If no vals found, skip save +273F:4EF2  89 2F                                mov     [bx], bp                ; Store value +273F:4EF4  C6 45 13 01                          mov     byte ptr [di+PATHFIND_CELL_POPULATED], 1 +273F:4EF8                       loc_1011:                                       ;  xref 273F:4EF0 +273F:4EF8  83 EE 03                             sub     si, 3                   ; Decrement countdown ctr +273F:4EFB  72 06                                jc      loc_1014                ; Break if countdown ended + +273F:4EFD                       loc_ret_1012:                                   ;  xref 273F:4F01 +273F:4EFD  C3                                   retn +273F:4EFE                       loc_1013:                                       ;  xref 273F:4EB4 +273F:4EFE  83 EE 01                             sub     si, 1                   ; Decrement countdown ctr +273F:4F01  73 FA                                jnc     loc_ret_1012            ; Don't break if countdown not ended +273F:4F03                       loc_1014:                                        +273F:4F03  89 36 3944                           mov     pathfind_countdown_ctr, si +273F:4F07  50                                   push    ax +273F:4F08  53                                   push    bx +273F:4F09  51                                   push    cx +273F:4F0A  52                                   push    dx +273F:4F0B  56                                   push    si +273F:4F0C  57                                   push    di +273F:4F0D  55                                   push    bp +273F:4F0E  1E                                   push    ds +273F:4F0F  06                                   push    es +273F:4F10  9C                                   pushf +273F:4F11  E8 0034                              call    pathfind_return_to_sp +273F:4F14  9D                                   popf +273F:4F15  07                                   pop     es +273F:4F16  1F                                   pop     ds +273F:4F17  5D                                   pop     bp +273F:4F18  5F                                   pop     di +273F:4F19  5E                                   pop     si +273F:4F1A  5A                                   pop     dx +273F:4F1B  59                                   pop     cx +273F:4F1C  5B                                   pop     bx +273F:4F1D  58                                   pop     ax +273F:4F1E  8B 36 3944                           mov     si, pathfind_countdown_ctr +273F:4F22  C3                                   retn +                     pathfind_populate_cells    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4D00, 4D0E, 4D1C, 4D2A +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         pathfind_scan_line     proc    near +273F:4F23  8B F5                                mov     si, bp +273F:4F25  32 F6                                xor     dh, dh + +273F:4F27                       locloop_1015:                                   ;  xref 273F:4F45 +273F:4F27  03 F7                                add     si, di                  ; Add increment amount +273F:4F29  80 C6 01                             add     dh,1 +273F:4F2C  F7 04 FFFF                           test    word ptr [si], 0FFFFh   ; Check cell +273F:4F30  74 13                                jz      loc_1018                ; Skip if empty (unpopulated) +273F:4F32  78 11                                js      loc_1018                ; Or if occupied +273F:4F34  3A D6                                cmp     dl, dh                  ; Check ctr against max +273F:4F36  72 0C                                jb      loc_ret_1017            ; Exit if below +273F:4F38  75 06                                jnz     loc_1016                ; Jump if not equal +273F:4F3A  8B 04                                mov     ax, [si] +273F:4F3C  3B 07                                cmp     ax, [bx] +273F:4F3E  73 04                                jae     loc_ret_1017            ; Jump if above or = +273F:4F40                       loc_1016:                                       ;  xref 273F:4F38 +273F:4F40  8B DE                                mov     bx,si +273F:4F42  8A D6                                mov     dl, dh + +273F:4F44                       loc_ret_1017:                                   ;  xref 273F:4F36, 4F3E +273F:4F44  C3                                   retn +273F:4F45                       loc_1018:                                       ;  xref 273F:4F30, 4F32 +273F:4F45  E2 E0                                loop    locloop_1015            ; Loop if cx > 0 + +273F:4F47  C3                                   retn +                         pathfind_scan_line     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4F11 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                     pathfind_return_to_sp      proc    near +273F:4F48  89 25                                mov     [di], sp +273F:4F4A  8B 26 3942                           mov     sp, pathfind_sp +273F:4F4E  33 C0                                xor     ax, ax +273F:4F50  FC                                   cld                             ; Clear direction +273F:4F51  C3                                   retn +                     pathfind_return_to_sp      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5039, 5127, 5EB0, 5EE9, 5F56 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             pathfind_reset     proc    near +273F:4F52  53                                   push    bx +273F:4F53  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:4F56  75 0E                                jne     loc_1019                ; Jump if not equal +273F:4F58 úBB 3983                              mov     bx, offset player_pathfind_data +273F:4F5B  C6 06 3946 00                        mov     pathfind_in_progress, 0 +273F:4F60  C7 07 0000                           mov     word ptr [bx], 0 +273F:4F64  5B                                   pop     bx +273F:4F65  C3                                   retn +273F:4F66                       loc_1019:                                       ;  xref 273F:4F56 +273F:4F66 úBB 4227                              mov     bx, offset chars_pathfind_data +273F:4F69  3B 47 02                             cmp     ax, [bx+2] +273F:4F6C  75 04                                jne     loc_1020                ; Jump if not equal +273F:4F6E  C7 07 0000                           mov     word ptr [bx], 0 +273F:4F72                       loc_1020:                                       ;  xref 273F:4F6C +273F:4F72  5B                                   pop     bx +273F:4F73  C3                                   retn +                             pathfind_reset     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8FE4 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:4F74                       sub_124         proc    near +273F:4F74  C6 06 3946 00                        mov     byte ptr ds:[3946h],0   ; (273F:3946=1Fh) +273F:4F79 úBE 4227                              mov     si, offset chars_pathfind_data +273F:4F7C  C7 04 0000                           mov     word ptr [si],0 +273F:4F80  C3                                   retn +                                sub_124         endp + +273F:4F81  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; Contains all the standard handling for characters, such as the Skorl +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                standard_character_tick_proc    proc    near +273F:4F82 ú8B DE                                mov     bx, si +273F:4F84  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:4F87  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:4F8A  E8 11EB                              call    talk_countdown_handler +273F:4F8D  F7 44 2F FFFF                        test    word ptr [si+HS_USE_HOTSPOT_ID], 0FFFFh +273F:4F92  74 1F                                jz      loc_1023                ; Jump if no hotspot to use +273F:4F94  8B 44 2B                             mov     ax, [si+HS_V2B] +273F:4F97  3D 002A                              cmp     ax, 2Ah +273F:4F9A  74 03                                je      loc_1022                ; Jump if equal +273F:4F9C  E9 F3C7                              jmp     character_update_movement + +273F:4F9F                       loc_1022:                                       ;  xref 273F:4F9A +273F:4F9F  A3 BA1B                              mov     active_hotspot_id, ax +273F:4FA2  8B 44 2F                             mov     ax, [si+HS_USE_HOTSPOT_ID] +273F:4FA5  A3 BA19                              mov     use_hotspot_id, ax +273F:4FA8  8B 44 2D                             mov     ax, [si+HS_HOTSPOT_SCRIPT_ID +273F:4FAB  E8 EE86                              call    sequence_execute +273F:4FAE  C7 44 2F 0000                        mov     word ptr [si+HS_USE_HOTSPOT_ID], 0 +273F:4FB3                       loc_1023: +273F:4FB3  F7 44 1F FFFF                        test    word ptr [si+HS_FRAME_CTR], 0FFFFh +273F:4FB8  74 05                                jz      loc_1024 +273F:4FBA  83 6C 1F 01                          sub     word ptr [si+HS_FRAME_CTR], 1 +273F:4FBE  C3                                   retn +273F:4FBF                       loc_1024: +273F:4FBF  E8 C149                              call    character_find_impinging_chars +273F:4FC2  F6 45 1D FF                          test    byte ptr [di+ANIM_LAYER1_SKIP], 0FFh +273F:4FC6  74 4C                                jz      loc_1028                ; Skip if necessary +273F:4FC8  F7 06 10BE FFFF                      test    num_impinging_chars, 0FFFFh ; Bumped into anyone? +273F:4FCE  74 40                                jz      loc_1027                ; Jump if not +273F:4FD0  56                                   push    si +273F:4FD1 úBE 10C0                              mov     si, offset impinging_char_list +273F:4FD4                       loc_1025: +273F:4FD4  AD                                   lodsw                           ; Get character Id +273F:4FD5  0B C0                                or      ax, ax                  ; End of list reached? +273F:4FD7  74 2C                                jz      loc_1026                ; Jump if yes +273F:4FD9  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID   ; Is it the player? +273F:4FDC  75 F6                                jne     loc_1025                ; Skip if yes +273F:4FDE  80 3E 6D33 02                        cmp     data_900, 2 +273F:4FE3  75 20                                jne     loc_1026                ; Jump if not equal +273F:4FE5  5E                                   pop     si +273F:4FE6 úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:4FE9  BF B14E                              mov     di, offset animation_table +273F:4FEC  8B DE                                mov     bx, si +273F:4FEE  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:4FF1  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:4FF4  C6 44 4C 01                          mov     byte ptr [si+HS_V4C], 1 +273F:4FF8  C7 44 52 0000                        mov     [si+HS_DEST_HOTSPOT], 0 +                                                assume  ds:seg_code +273F:4FFD  C6 06 9834 04                        mov     cursor_state, CURSORSTATE_4 +273F:5002  E9 0661                              jmp     sub_133 + +273F:5005                       loc_1026:                                      +273F:5005  5E                                   pop     si +273F:5006  C6 44 44 03                          mov     byte ptr [si+HS_V44], 3 +273F:500A  C7 44 42 000A                        mov     word ptr [si+HS_V42], 10 +273F:500F  C3                                   retn + +273F:5010                       loc_1027: +273F:5010  C6 45 1D 00                          mov     byte ptr [di+ANIM_LAYER1_SKIP], 0 +273F:5014                       loc_1028: +273F:5014  F7 44 47 FFFF                        test    [si+HS_USE2_HOTSPOT_ID], 0FFFFh +273F:5019  74 11                                jz      loc_1029                ; Jump if zero +273F:501B  8B 44 47                             mov     ax, [si+HS_USE2_HOTSPOT_ID] +273F:501E  A3 BA19                              mov     use_hotspot_id, ax +273F:5021  8B 44 45                             mov     ax, [si+HS_TICK_SCRIPT_OFFSET] +273F:5024  E8 EE0D                              call    sequence_execute +273F:5027  C7 44 47 0000                        mov     word ptr [si+HS_USE2_HOTSPOT_ID], 0 + +273F:502C                       loc_1029: +273F:502C  F7 44 4A FFFF                        test    word ptr [si+HS_V4A], 0FFFFh +273F:5031  74 21                                jz      loc_1031                ; Jump if zero +273F:5033  E8 F330                              call    character_update_movement +273F:5036  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:5039  E8 FF16                              call    pathfind_reset +273F:503C  83 7C 4A 01                          cmp     word ptr [si+HS_V4A], 1 +273F:5040  74 03                                je      loc_1030                ; Jump if equal +273F:5042  E9 F521                              jmp     loc_870                 ; (4566) +273F:5045                       loc_1030:                                       ;  xref 273F:5040 +273F:5045  C7 44 4A 0000                        mov     word ptr [si+HS_V4A], 0 +273F:504A  F6 44 44 FF                          test    byte ptr [si+HS_V4A], 0FFh +273F:504E  75 04                                jnz     loc_1031                ; Jump if not zero +273F:5050  E8 F334                              call    character_pathfind_clear +273F:5053  C3                                   retn +273F:5054                       loc_1031:                                       ;  xref 273F:5031, 504E +273F:5054  F6 44 44 FF                          test    byte ptr [si+HS_V44], 0FFh +273F:5058  75 02                                jnz     loc_1032                ; Jump if not zero +273F:505A  EB 6C                                jmp     short loc_1040          ; (50C8) +273F:505C                       loc_1032:                                       ;  xref 273F:5058 +273F:505C  8A 44 44                             mov     al, [si+HS_V44] +273F:505F  3C 06                                cmp     al, 6 +273F:5061  75 17                                jne     loc_1034                ; Jump if not equal +273F:5063  E8 F300                              call    character_update_movement +273F:5066  53                                   push    bx +273F:5067 úBB 10BE                              mov     bx, offset num_impinging_chars +273F:506A                       loc_1033:                                       ;  xref 273F:5076 +273F:506A  8B 07                                mov     ax, [bx]                ; Get impinging char Id +273F:506C  0B C0                                or      ax, ax                  ; End of list reached? +273F:506E  74 37                                jz      loc_1037 +273F:5070  83 C3 02                             add     bx, 2                   ; Move to next entry +273F:5073  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID   ; Is character the player? +273F:5076  75 F2                                jne     loc_1033                ; Keep looping +273F:5078  5B                                   pop     bx +273F:5079  C3                                   retn + +273F:507A                       loc_1034:                                       ; HS[44h] != 6 +273F:507A  F7 44 42 FFFF                        test    word ptr [si+HS_V42], 0FFFFh +273F:507F  74 27                                jz      loc_1038                ; Jump if zero +273F:5081  E8 F2E2                              call    character_update_movement +273F:5084  F7 44 50 FFFF                        test    word ptr [si+HS_DIRECTION], 0FFFFh +273F:5089  74 17                                jz      loc_1035                ; Jump if zero +273F:508B  56                                   push    si +273F:508C  8B 5C 50                             mov     bx, [si+HS_DIRECTION] +273F:508F  E8 BC56                              call    get_room_resource_pointer +273F:5092  5B                                   pop     bx +273F:5093  87 F3                                xchg    si, bx                  ; si=char Id, +273F:5095  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:5098  3B 47 06                             cmp     ax, [bx+HS_ROOM_NUM] +273F:509B  75 0B                                jne     loc_1038                ; Jump if not equal +273F:509D  E8 0501                              call    characters_impinging_check +273F:50A0  74 06                                jz      loc_1038                ; Jump if zero +273F:50A2                       loc_1035:                                       ;  xref 273F:5089 +273F:50A2  83 6C 42 01                          sub     word ptr [si+HS_V42], 1 + +273F:50A6                       loc_ret_1036:                                   ;  xref 273F:50BB +273F:50A6  C3                                   retn +273F:50A7                       loc_1037:                                       ;  xref 273F:506E +273F:50A7  5B                                   pop     bx +273F:50A8                       loc_1038:                                       ;  xref 273F:507F, 509B, 50A0 +273F:50A8  33 C0                                xor     ax,ax                   ; Zero register +273F:50AA  89 44 50                             mov     [si+HS_DIRECTION], ax +273F:50AD  86 44 44                             xchg    [si+HS_V44], al +273F:50B0  50                                   push    ax +273F:50B1  E8 F2D3                              call    character_pathfind_clear +273F:50B4  58                                   pop     ax +273F:50B5  3C 04                                cmp     al,4 +273F:50B7  74 04                                je      loc_1039                ; Jump if equal +273F:50B9  3C 07                                cmp     al,7 +273F:50BB  75 E9                                jne     loc_ret_1036            ; Jump if not equal +273F:50BD                       loc_1039:                                       ;  xref 273F:50B7 +273F:50BD  C7 44 33 0000                        mov     word ptr [si+HS_V33], 0 +273F:50C2  B8 0001                              mov     ax, 1 +273F:50C5  E9 12E9                              jmp     display_message_dialog +273F:50C8                       loc_1040:                                       ;  xref 273F:505A +273F:50C8  F7 44 58 FFFF                        test    word ptr [si+58h],0FFFFh +273F:50CD  74 0F                                jz      loc_1041                ; Jump if zero +273F:50CF  F6 06 6D52 FF                        test    player_action_state, 0FFh +273F:50D4  74 08                                jz      loc_1041                ; Jump if zero +273F:50D6  C6 44 2A C7                          mov     byte ptr [si+HS_ACTION_CTR], 199 +273F:50DA  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:50DD  C3                                   retn + +273F:50DE                       loc_1041:                                       ;  xref 273F:50CD, 50D4 +273F:50DE  8A 07                                mov     al, [bx]                ; Get current atcion +273F:50E0  0A C0                                or      al,al                   ; Any defined? +273F:50E2  75 06                                jnz     loc_1042                ; Jump if yes +273F:50E4  B8 0002                              mov     ax, 2 +273F:50E7  E9 F279                              jmp     character_update_movement_2 +273F:50EA                       loc_1042:                                       ;  xref 273F:50E2 +273F:50EA  3C 05                                cmp     al, CHAR_ACTION_CONTINUE_WALK +273F:50EC  74 28                                je      loc_1045 +273F:50EE  3C 01                                cmp     al, CHAR_ACTION_START_WALK +273F:50F0  74 32                                je      loc_1048                ; Jump if equal +273F:50F2  3C 04                                cmp     al, CHAR_ACTION_PROCESSING_PATH +273F:50F4  74 3A                                je      loc_1049                ; Jump if equal +273F:50F6  3C 03                                cmp     al, CHAR_ACTION_EXEC_SCRIPT +273F:50F8  74 1F                                je      loc_1046                ; Jump if equal + +; Dispatching action +273F:50FA  8B 45 0E                             mov     ax, [di+ANIM_ROOM_NUM] +273F:50FD  F7 47 03 FFFF                        test    word ptr [bx+CURRENT_ACTION_ROOM_NUM], 0FFFFh +273F:5102  75 03                                jnz     loc_1043                ; Jump if not zero +273F:5104  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:5107                       loc_1043:                                       ;  xref 273F:5102 +273F:5107  3B 47 03                             cmp     ax, [bx+CURRENT_ACTION_ROOM_NUM] ; Compare against room number +273F:510A  74 03                                je      loc_1044                ; Jump if equal +273F:510C  E9 01F6                              jmp     loc_1078 +273F:510F                       loc_1044:                                       ;  xref 273F:510A +273F:510F  C6 45 1D 00                          mov     byte ptr [di+ANIM_LAYER1_SKIP], 0 +273F:5113  E9 F0A8                              jmp     action_dispatch +273F:5116                       loc_1045:                                       ;  xref 273F:50EC +273F:5116  E9 00E0                              jmp     loc_1060                ; (51F9) +273F:5119                       loc_1046:                                       ;  xref 273F:50F8 +273F:5119  E8 BE8D                              call    hotspot_script_execute +273F:511C  0B C0                                or      ax,ax                   ; Zero ? +273F:511E  75 03                                jnz     loc_ret_1047            ; Jump if not zero +273F:5120  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION + +273F:5123                       loc_ret_1047:                                   ;  xref 273F:511E +273F:5123  C3                                   retn +273F:5124                       loc_1048:                                       ; Start walk +273F:5124  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:5127  E8 FE28                              call    pathfind_reset +273F:512A  C6 07 04                             mov     byte ptr [bx], CHAR_ACTION_PROCESSING_PATH +273F:512D  E8 F257                              call    character_pathfind_clear + +273F:5130                       loc_1049:                                       ; Processing walk path +273F:5130  56                                   push    si +273F:5131  57                                   push    di +273F:5132  53                                   push    bx +273F:5133  E8 F42A                              call    sub_105                 ; (4560) +273F:5136  8B 4C 56                             mov     cx, [si+HS_DEST_Y] +273F:5139  8B 5C 54                             mov     bx, [si+HS_DEST_X] +273F:513C  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:513F  8A 54 4C                             mov     dl, [si+HS_V4C] +273F:5142  E8 F8B1                              call    character_pathfind +273F:5145  5A                                   pop     dx +273F:5146  5F                                   pop     di +273F:5147  5E                                   pop     si +273F:5148  0B C0                                or      ax,ax                   ; Zero ? +273F:514A  75 01                                jnz     loc_1050                ; Jump if not zero +273F:514C  C3                                   retn +273F:514D                       loc_1050:                                       ;  xref 273F:514A +273F:514D  3D 0001                              cmp     ax,1 +273F:5150  74 0C                                je      loc_1051                ; Jump if equal +273F:5152  F7 44 52 FFFF                        test    [si+HS_DEST_HOTSPOT], 0FFFFh +273F:5157  75 07                                jnz     loc_1052                ; Jump if not zero +273F:5159  3D 0002                              cmp     ax,2 +273F:515C  75 02                                jne     loc_1052                ; Jump if not equal +273F:515E                       loc_1051:                                       ;  xref 273F:5150 +273F:515E  EB 79                                jmp     short loc_1058          ; (51D9) +273F:5160                       loc_1052:                                       ;  xref 273F:5157, 515C +273F:5160  87 D3                                xchg    dx,bx +273F:5162  80 7C 4C 02                          cmp     byte ptr [si+HS_V4C], 2 +273F:5166  74 24                                je      loc_1054                ; Jump if equal +273F:5168  80 44 4C 01                          add     byte ptr [si+HS_V4C],1 +273F:516C  F6 44 4D FF                          test    byte ptr [si+HS_V4D], 0FFh +273F:5170  75 0B                                jnz     loc_1053                ; Jump if not zero +273F:5172  83 44 61 05                          add     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:5176  C6 44 4D 01                          mov     byte ptr [si+HS_V4D], 1 +273F:517A  83 C3 05                             add     bx, CURRENT_ACTION_RECORD_SIZE +273F:517D                       loc_1053:                                       ;  xref 273F:5170 +273F:517D  C7 47 01 13C2                        mov     word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 13C2h +273F:5182  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:5185  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:5188  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:518B  C3                                   retn +273F:518C                       loc_1054:                                       ;  xref 273F:5166 +273F:518C  53                                   push    bx +273F:518D úBB 10C0                              mov     bx, offset impinging_char_list +273F:5190                       loc_1055:                                       ;  xref 273F:519C +273F:5190  8B 07                                mov     ax, [bx] +273F:5192  0B C0                                or      ax,ax                   ; Zero ? +273F:5194  74 11                                jz      loc_1056                ; Jump if zero +273F:5196  83 C3 02                             add     bx,2 +273F:5199  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:519C  75 F2                                jne     loc_1055                ; Jump if not equal +273F:519E  5B                                   pop     bx +273F:519F  E8 0006                              call    sub_125                 ; (51A8) +273F:51A2  C6 44 44 06                          mov     byte ptr [si+HS_V44], 6 +273F:51A6  C3                                   retn +273F:51A7                       loc_1056:                                       ;  xref 273F:5194 +273F:51A7  5B                                   pop     bx +                standard_character_tick_proc    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:519F +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:51A8                       sub_125         proc    near +273F:51A8  E8 F296                              call    sub_97                  ; (4441) +273F:51AB  E8 F1B8                              call    character_update_movement +273F:51AE  83 6C 61 05                          sub     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:51B2  C6 44 4D 00                          mov     byte ptr [si+HS_V4D], 0 +273F:51B6  C6 44 4C 00                          mov     byte ptr [si+HS_V4C], 0 +273F:51BA  C6 44 44 03                          mov     byte ptr [si+HS_V44], 3 +273F:51BE  C7 44 42 0002                        mov     word ptr [si+HS_V42], 2 +273F:51C3  8B DE                                mov     bx, si +273F:51C5  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:51C8  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:51CB  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:51CE  3B 47 03                             cmp     ax, [bx+CURRENT_ACTION_ROOM_NUM] +273F:51D1  74 05                                je      loc_ret_1057            ; Jump if equal +273F:51D3  C7 44 52 FFFF                        mov     [si+HS_DEST_HOTSPOT], 0FFFFh + +273F:51D8                       loc_ret_1057:                                   ;  xref 273F:51D1 +273F:51D8  C3                                   retn +                                sub_125         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:51D9                       loc_1058:                                       ;  xref 273F:515E +273F:51D9  C6 44 4C 00                          mov     byte ptr [si+4Ch],0 +273F:51DD  F7 07 FFFF                           test    word ptr [bx],0FFFFh +273F:51E1  75 06                                jnz     loc_1059                ; Jump if not zero +273F:51E3  8B DA                                mov     bx,dx +273F:51E5  C6 07 02                             mov     byte ptr [bx],2 +273F:51E8  C3                                   retn +273F:51E9                       loc_1059:                                       ;  xref 273F:51E1 +273F:51E9  87 DA                                xchg    bx,dx +273F:51EB  C6 07 05                             mov     byte ptr [bx], CHAR_ACTION_CONTINUE_WALK +273F:51EE  E8 F01C                              call    character_translate_movements +273F:51F1  83 65 02 F8                          and     word ptr [di+2],0FFF8h +273F:51F5  83 64 0F F8                          and     word ptr [si+0Fh],0FFF8h +273F:51F9                       loc_1060:                                       ;  xref 273F:5116 +273F:51F9  8B 44 52                             mov     ax, [si+HS_DEST_HOTSPOT] +273F:51FC  0B C0                                or      ax,ax                   ; Zero ? +273F:51FE  74 17                                jz      loc_1062                ; Jump if zero +273F:5200  3D FFFF                              cmp     ax,0FFFFh +273F:5203  74 12                                je      loc_1062                ; Jump if equal +273F:5205  56                                   push    si +273F:5206  53                                   push    bx +273F:5207  E8 1FE4                              call    room_exit_hs_get_pointer +273F:520A  8A 44 0C                             mov     al,[si+0Ch] +273F:520D  5B                                   pop     bx +273F:520E  5E                                   pop     si +273F:520F  0A C0                                or      al,al                   ; Zero ? +273F:5211  74 04                                jz      loc_1062                ; Jump if zero +273F:5213  C6 07 02                             mov     byte ptr [bx],2 + +273F:5216                       loc_ret_1061:                                   ;  xref 273F:521C +273F:5216  C3                                   retn +273F:5217                       loc_1062:                                       ;  xref 273F:51FE, 5203, 5211 +273F:5217  E8 BF9B                              call    sub_41                  ; (11B5) +273F:521A  0B C0                                or      ax,ax                   ; Zero ? +273F:521C  75 F8                                jnz     loc_ret_1061            ; Jump if not zero +273F:521E  F6 44 49 FF                          test    byte ptr [si+49h],0FFh +273F:5222  74 03                                jz      loc_1063                ; Jump if zero +273F:5224  E8 F160                              call    character_pathfind_clear +273F:5227                       loc_1063: +273F:5227  8B DE                                mov     bx,si +273F:5229  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:522C  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:522F  E8 BC7E                              call    character_update_frame +273F:5232  0A C0                                or      al, al                  ; Zero ? +273F:5234  75 02                                jnz     loc_1064                ; Jump if not zero +273F:5236  EB 03                                jmp     short loc_1065 +273F:5238                       loc_1064: +273F:5238  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:523B                       loc_1065: +273F:523B  F7 44 52 FFFF                        test    [si+HS_DEST_HOTSPOT], 0FFFFh ; Walking to exit? +273F:5240  74 03                                jz      loc_ret_1066            ; If not then return +273F:5242  E8 F043                              call    character_check_room_change ; Room change check + +273F:5245                       loc_ret_1066: +273F:5245  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              JUMP POINT +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                     character_change_room_2: +273F:5246  80 25 F8                             and     byte ptr [di+ANIM_X], 0F8h +273F:5249  80 64 0D F8                          and     byte ptr [si+HS_X], 0F8h +273F:524D  80 0D 05                             or      byte ptr [di+ANIM_X], 5 +273F:5250  80 4C 0D 05                          or      byte ptr [si+HS_X], 5 +273F:5254  C6 44 60 00                          mov     byte ptr [si+HS_EXIT_CTR], 0 +273F:5258  C6 45 1D 2A                          mov     byte ptr [di+ANIM_LAYER1_SKIP], 2Ah +273F:525C  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:525F  F6 C1 FF                             test    cl, 0FFh                ; Any direction specified? +273F:5262  74 12                                jz      loc_ret_1068            ; Exit if not +273F:5264  F6 C1 80                             test    cl, 80h +273F:5267  75 0E                                jnz     loc_1069                ; Face up +273F:5269  F6 C1 40                             test    cl, 40h +273F:526C  75 0C                                jnz     loc_1070                ; Face down +273F:526E  F6 C1 20                             test    cl, 20h +273F:5271  75 0A                                jnz     loc_1071                ; Face left +273F:5273  E9 F296                              jmp     char_face_right + +273F:5276                       loc_ret_1068: +273F:5276  C3                                   retn +273F:5277                       loc_1069: +273F:5277  E9 F25F                              jmp     char_face_up +273F:527A                       loc_1070: +273F:527A  E9 F26D                              jmp     char_face_down +273F:527D                       loc_1071: +273F:527D  E9 F27B                              jmp     char_face_left + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                               npc_unknown1     proc    near +273F:5280  F6 06 6D52 FF                        test    player_action_state, 0FFh +273F:5285  74 0E                                jz      loc_1072                ; Jump if zero +273F:5287  C7 44 42 000C                        mov     word ptr [si+HS_V42], 0Ch +273F:528C  C6 44 44 03                          mov     byte ptr [si+HS_V44], 3 +273F:5290  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:5294  C3                                   retn +273F:5295                       loc_1072: +273F:5295  8B 4D 1B                             mov     cx, [di+ANIM_HOTSPOT_ID] +273F:5298  89 0E 983F                           mov     data_435, cx +273F:529C  C7 06 9841 0000                      mov     data_436, 0 +273F:52A2  55                                   push    bp +273F:52A3  BB 0022                              mov     bx,22h +273F:52A6  BA 03E8                              mov     dx, PLAYER_HOTSPOT_ID +273F:52A9  E8 10E4                              call    display_message_dialog + +273F:52AC  C6 44 44 04                          mov     byte ptr [si+HS_V44], 4 +273F:52B0  C7 44 42 0082                        mov     word ptr [si+HS_V42], 82h +273F:52B5  5B                                   pop     bx +273F:52B6  8B 07                                mov     ax, [bx] +273F:52B8  89 44 33                             mov     [si+HS_V33], ax +273F:52BB  E9 EF1B                              jmp     loc_825                 ; (41D9) +                               npc_unknown1     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              JUMP POINT +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +273F:52BE                       loc_1073:                                       ;  xref 273F:530D +273F:52BE  C6 44 60 00                          mov     byte ptr [si+HS_EXIT_CTR], 0 +273F:52C2  F7 44 61 FFFF                        test    word ptr [si+HS_ACTION_OFFSET], 0FFFFh +273F:52C7  74 28                                jz      loc_1077                ; Jump if no cached actions +273F:52C9  53                                   push    bx +273F:52CA  F7 44 4E FFFF                        test    word ptr [si+HS_V4E], 0FFFFh +273F:52CF  74 18                                jz      loc_1075                ; Jump if zero +273F:52D1  8B 5F 01                             mov     bx, [bx+CURRENT_ACTION_SUPPORT_TABLE] +273F:52D4  81 FB 13BE                           cmp     bx, 13BEh +273F:52D8  72 06                                jb      loc_1074                ; Jump if below +273F:52DA ú81 FB 13CE                           cmp     bx, 13CEh               ; (273F:13CE=54h) +273F:52DE  72 09                                jb      loc_1075                ; Jump if below +273F:52E0                       loc_1074:                                       ;  xref 273F:52D8 +273F:52E0  C7 07 0017                           mov     word ptr [bx], ACTION_RETURN +273F:52E4  C7 47 02 0000                        mov     word ptr [bx+2], 0 +273F:52E9                       loc_1075:                                       ;  xref 273F:52CF, 52DE +273F:52E9  5B                                   pop     bx +273F:52EA  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:52ED  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax + +273F:52F0                       loc_ret_1076:                                   ;  xref 273F:52F6 +273F:52F0  C3                                   retn +273F:52F1                       loc_1077:                                       ;  xref 273F:52C7 +273F:52F1  F7 44 5E FFFF                        test    word ptr [si+HS_BLOCKED_SUPPORT_OFFSET], 0FFFFh +273F:52F6  74 F8                                jz      loc_ret_1076            ; Jump if zero +273F:52F8  8B 44 5E                             mov     ax, [si+HS_BLOCKED_SUPPORT_OFFSET] +273F:52FB  89 47 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], ax +273F:52FE  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:5301  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:5304  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              JUMP POINT +                                ; +                                ; This code is jumped to if the NPC is not in the room designated +                                ; by the room number in the current action record. It starts the +                                ; character walking to the exit to route them to the right room +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +273F:5305                       loc_1078:                                       ;  xref 273F:510C +273F:5305  80 44 60 01                          add     byte ptr [si+HS_EXIT_CTR], 1 +273F:5309  80 7C 60 05                          cmp     byte ptr [si+HS_EXIT_CTR], 5 +273F:530D  73 AF                                jae     loc_1073                ; Jump if above or = +273F:530F  53                                   push    bx +273F:5310  8B 5F 03                             mov     bx,[bx+CURRENT_ACTION_ROOM_NUM] +273F:5313  E8 00C4                              call    room_exit_get_coordinates +273F:5316  81 7D 1B 03E9                        cmp     word ptr [di+ANIM_HOTSPOT_ID],3E9h +273F:531B  74 39                                je      loc_1081                ; Jump if equal + +; The following loop counts up the number of characters in that room into dl +273F:531D  51                                   push    cx +273F:531E  52                                   push    dx +273F:531F úBB B14E                              mov     bx, offset animation_table +273F:5322  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS +273F:5325  33 D2                                xor     dx,dx                   ; Zero register +273F:5327                       locloop_1079:                                   ;  xref 273F:5346 +273F:5327  39 47 0E                             cmp     [bx+ANIM_ROOM_NUM], ax +273F:532A  75 17                                jne     loc_1080                ; Jump if not equal +273F:532C  F6 47 0C FF                          test    byte ptr [bx+ANIM_LAYER], 0FFh +273F:5330  74 11                                jz      loc_1080                ; Jump if zero +273F:5332  81 7F 1B 03E8                        cmp     word ptr [bx+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID +273F:5337  72 0A                                jb      loc_1080                ; Jump if below +273F:5339  81 7F 1B 0408                        cmp     word ptr [bx+ANIM_HOTSPOT_ID],408h +273F:533E  73 03                                jae     loc_1080                ; Jump if above or = +273F:5340  80 C2 01                             add     dl,1 +273F:5343                       loc_1080: +273F:5343  83 C3 29                             add     bx, ANIMATION_SLOT_SIZE +273F:5346  E2 DF                                loop    locloop_1079            ; Loop if cx > 0 +273F:5348  8A C2                                mov     al,dl +273F:534A  5A                                   pop     dx +273F:534B  59                                   pop     cx + +273F:534C  3C 04                                cmp     al,4                    ; 4 or more chars in room? +273F:534E  72 06                                jb      loc_1081                ; Jump if not +273F:5350  5B                                   pop     bx +273F:5351  33 C0                                xor     ax,ax                   ; Set action to index #0 in list +273F:5353  E9 F1D2                              jmp     set_new_dispatch_action + +273F:5356                       loc_1081: +273F:5356  5B                                   pop     bx +273F:5357  8A C6                                mov     al,dh +273F:5359  80 E6 0F                             and     dh,0Fh +273F:535C  89 4C 54                             mov     [si+HS_DEST_X],cx +273F:535F  89 54 56                             mov     [si+HS_DEST_Y],dx +273F:5362  C7 44 52 FFFF                        mov     [si+HS_DEST_HOTSPOT], 0FFFFh +273F:5367  53                                   push    bx + +273F:5368 úBB 2E57                              mov     bx, offset room_exit_hotspots +273F:536B  24 F0                                and     al, 0F0h +273F:536D  8B 54 06                             mov     dx, [si+HS_ROOM_NUM] +273F:5370                       loc_1082:                                       ;  xref 273F:5381 +273F:5370 úF6 07 FF                             test    byte ptr [bx], 0FFh +273F:5373  74 5C                                jz      loc_1085                ; Jump if zero +273F:5375  3A 17                                cmp     dl, [bx] +273F:5377  75 05                                jne     loc_1083                ; Jump if not equal +273F:5379  3A 47 01                             cmp     al, [bx+1] +273F:537C  74 05                                je      loc_1084                ; Jump if equal +273F:537E                       loc_1083:                                       ;  xref 273F:5377 +273F:537E  83 C3 04                             add     bx, 4 +273F:5381  EB ED                                jmp     short loc_1082          ; (5370) +273F:5383                       loc_1084: +273F:5383  8B 47 02                             mov     ax, [bx+2]              ; Found an entry, set it +273F:5386  89 44 52                             mov     [si+HS_DEST_HOTSPOT], ax ; into the dest hotspot Id +273F:5389  50                                   push    ax +273F:538A  56                                   push    si +273F:538B  E8 1E60                              call    room_exit_hs_get_pointer +273F:538E  5B                                   pop     bx +273F:538F  87 DE                                xchg    bx,si +273F:5391  58                                   pop     ax +273F:5392  F6 47 0C FF                          test    byte ptr [bx+REHS_EXIT_BLOCKED], 0FFh ; Exit blocked? +273F:5396  74 39                                jz      loc_1085                ; Jump if not blocked + +; Code reaches this point if the needed exit is blocked +273F:5398  50                                   push    ax                      ; Save dest hotspot Id +273F:5399  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID]; Calc offset into support +273F:539C  BB 0006                              mov     bx, 6                   ;   data set starting at 0bb95h +273F:539F  2D 03E9                              sub     ax, 3E9h +273F:53A2  F7 E3                                mul     bx +273F:53A4 úBB BB95                              mov     bx, offset support_data_rec_bb95 +273F:53A7  03 D8                                add     bx, ax +273F:53A9  58                                   pop     ax                      ; Restore dest hotspot Id +273F:53AA  89 47 02                             mov     [bx+2], ax              ; Store id into record as param #1 +273F:53AD  C6 44 4D 00                          mov     byte ptr [si+HS_V4D], 0 +273F:53B1  83 44 61 05                          add     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:53B5  8B C3                                mov     ax, bx +273F:53B7  5B                                   pop     bx +273F:53B8  8B DE                                mov     bx, si +273F:53BA  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:53BD  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:53C0  89 47 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], ax +273F:53C3  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:53C6  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:53C9  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:53CC  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:53D0  C3                                   retn + +; Exit is not blocked, so it's safe to simply start walking to it +273F:53D1                       loc_1085: +273F:53D1  5B                                   pop     bx +273F:53D2  C6 07 01                             mov     byte ptr [bx], CHAR_ACTION_START_WALK +273F:53D5  C6 45 27 01                          mov     byte ptr [di+ANIM_UNKNOWN1], 1 +273F:53D9  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:13B8, 5313 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                   room_exit_get_coordinates    proc    near +273F:53DA  48                                   dec     ax +273F:53DB  B9 0058                              mov     cx,58h +273F:53DE  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:53E0  05 1929                              add     ax, offset exit_coord_list +273F:53E3  03 D8                                add     bx, ax                  ; Move offset for indexing +273F:53E5  8A 5F 23                             mov     bl, [bx+23h] +273F:53E8  32 FF                                xor     bh, bh                  ; Zero register +273F:53EA  03 D8                                add     bx, ax +273F:53EC  8B 0F                                mov     cx, [bx] +273F:53EE  8B 57 02                             mov     dx, [bx+2] +273F:53F1  8B 47 04                             mov     ax, [bx+4] +273F:53F4  C3                                   retn +                   room_exit_get_coordinates    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bp = Address of offset 2 in the Support data for the DISPATCH_ACTION +                                ; character action that launched this action +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                 get_proc       proc    near +273F:53F5  8B DD                                mov     bx, bp +273F:53F7  8B 07                                mov     ax, [bx]                ; Get hotspot Id +273F:53F9  83 C5 02                             add     bp,2 +273F:53FC  A3 BA19                              mov     use_hotspot_id, ax +273F:53FF  A3 BA1B                              mov     active_hotspot_id, ax +273F:5402  E8 F1A2                              call    hotspot_action_precheck +273F:5405  0B C0                                or      ax,ax                   ; Zero ? +273F:5407  74 08                                jz      loc_1086                ; Jump if zero +273F:5409  3D 0003                              cmp     ax,3 +273F:540C  74 4E                                je      loc_ret_1090            ; Jump if equal +273F:540E  E9 0170                              jmp     character_walking_end +273F:5411                       loc_1086:                                       ;  xref 273F:5407 +273F:5411  E8 F2DA                              call    character_face_hotspot +273F:5414  53                                   push    bx +273F:5415  E8 0169                              call    character_walking_end +273F:5418  5B                                   pop     bx +273F:5419  E8 01DA                              call    hotspot_get_action_sequence +273F:541C  79 03                                jns     loc_1087                ; Jump if not sign +273F:541E  E9 0F90                              jmp     display_message_dialog_3 +273F:5421                       loc_1087:                                       ;  xref 273F:541C +273F:5421  74 0D                                jz      loc_1088                ; Jump if zero +273F:5423  E8 EA0E                              call    sequence_execute +273F:5426  74 08                                jz      loc_1088                ; Jump if zero +273F:5428  3D 0001                              cmp     ax,1 +273F:542B  74 2F                                je      loc_ret_1090            ; Jump if equal +273F:542D  E9 0F81                              jmp     display_message_dialog_3 +273F:5430                       loc_1088: +273F:5430  8B 45 1B                             mov     ax,[di+ANIM_HOTSPOT_ID] ; Move item into char's inventory +273F:5433  89 47 06                             mov     [bx+HS_ROOM_NUM], ax +273F:5436  E8 0920                              call    player_inc_inventory_items +273F:5439  81 3E BA19 7530                      cmp     use_hotspot_id, 7530h +273F:543F  73 1B                                jae     loc_ret_1090            ; Jump if above or = +273F:5441  56                                   push    si +273F:5442  57                                   push    di +273F:5443  8B F3                                mov     si,bx +273F:5445  8B 7C 0B                             mov     di,[si+HS_ANIM_OFFSET] +273F:5448  0B FF                                or      di,di                   ; Zero ? +273F:544A  74 03                                jz      loc_1089                ; Jump if zero +273F:544C  E8 BE23                              call    animation_unload +273F:544F                       loc_1089:                                       ;  xref 273F:544A +273F:544F  A1 BA19                              mov     ax, use_hotspot_id    ; Get hotspot header +273F:5452  E8 B8CC                              call    get_room_resource_pointer3 +273F:5455  C7 44 06 0000                        mov     word ptr [si+HSH_DESC_2], 0 ; Remove first description +273F:545A  5F                                   pop     di +273F:545B  5E                                   pop     si + +273F:545C                       loc_ret_1090:                                   ;  xref 273F:540C, 542B, 543F, 5487 +273F:545C  C3                                   retn +                                 get_proc       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                          npc_walking_check     proc    near +273F:545D  8B DD                                mov     bx, bp +273F:545F  8B 07                                mov     ax, [bx]                ; Get hotspot Id +273F:5461  83 C5 02                             add     bp, 2 +273F:5464  8B DE                                mov     bx, si +273F:5466  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5469  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:546C  89 6F 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], bp +273F:546F  A3 BA19                              mov     use_hotspot_id, ax +273F:5472  A3 BA1B                              mov     active_hotspot_id, ax +273F:5475  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:5478  72 0F                                jb      character_walking_check +273F:547A  56                                   push    si +273F:547B  E8 B86C                              call    get_room_resource_pointer2 +273F:547E  5B                                   pop     bx +273F:547F  87 DE                                xchg    bx, si +273F:5481  8B 44 06                             mov     ax, [si+HS_ROOM_NUM]    ; Make sure hotspot +273F:5484  3B 47 06                             cmp     ax, [bx+HS_ROOM_NUM]    ;   is in char's room +273F:5487  75 D3                                jne     loc_ret_1090             + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:45F1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                    character_walking_check     proc    near +273F:5489  57                                   push    di +273F:548A úBF BC4B                              mov     di, offset hotspot_walkto_list +273F:548D  A1 BA1B                              mov     ax, active_hotspot_id +273F:5490                       loc_1092:                                       ;  xref 273F:549D +273F:5490 úF7 05 FFFF                           test    word ptr [di+WALKTO_HOTSPOT_ID], 0FFFFh ; End of list reached? +273F:5494  74 4F                                jz      loc_1094                ; Jump if yes +273F:5496  3B 05                                cmp     ax, [diWALKTO_HOTSPOT_ID] ; Found entry for active hotspot? +273F:5498  74 05                                je      loc_1093                ; Jump if yes +273F:549A  83 C7 06                             add     di, 6                   ; Move to next record +273F:549D  EB F1                                jmp     short loc_1092 +273F:549F                       loc_1093: +273F:549F  8B 4D 02                             mov     cx, [di+WALKTO_X] +273F:54A2  8B 55 04                             mov     dx, [di+WALKTO_Y] +273F:54A5  B0 01                                mov     al, 1 +273F:54A7  F6 C6 80                             test    dh, 80h +273F:54AA  74 47                                jz      loc_1095                ; Jump if zero +273F:54AC  5F                                   pop     di +273F:54AD  88 45 27                             mov     [di+ANIM_UNKNOWN1], al +273F:54B0  80 E6 7F                             and     dh, 7Fh +273F:54B3  8B 44 0D                             mov     ax, [si+HS_X] +273F:54B6  D1 E8                                shr     ax, 1 +273F:54B8  D1 E8                                shr     ax, 1 +273F:54BA  D1 E8                                shr     ax, 1                   ; ax = player X / 8 +273F:54BC  51                                   push    cx +273F:54BD  D1 E9                                shr     cx, 1 +273F:54BF  D1 E9                                shr     cx, 1 +273F:54C1  D1 E9                                shr     cx, 1                   ; cx = list[2] / 8 +273F:54C3  2B C1                                sub     ax, cx                  ; ax -= cx +273F:54C5  59                                   pop     cx +273F:54C6  75 51                                jnz     character_start_walking ; If NZ, jump to start walking +273F:54C8  8B 44 0F                             mov     ax, [si+HS_Y] +273F:54CB  03 44 1B                             add     ax, [si+HS_HEIGHT_COPY] +273F:54CE  D1 E8                                shr     ax, 1 +273F:54D0  D1 E8                                shr     ax, 1 +273F:54D2  D1 E8                                shr     ax, 1 +273F:54D4  2D 0001                              sub     ax, 1                   ; ax = (HS+height)/8 - 1 +273F:54D7  52                                   push    dx +273F:54D8  D1 EA                                shr     dx, 1 +273F:54DA  D1 EA                                shr     dx, 1 +273F:54DC  D1 EA                                shr     dx, 1 +273F:54DE  2B C2                                sub     ax, dx                  ; ax -= dx +273F:54E0  5A                                   pop     dx +273F:54E1  75 36                                jnz     character_start_walking ; If NZ, jump to start walking +273F:54E3  EB 65                                jmp     short loc_1100 + +273F:54E5                       loc_1094:                                       ;  xref 273F:5494 +273F:54E5  8B 4F 0D                             mov     cx, [bx+HS_X] +273F:54E8  8B 57 0F                             mov     dx, [bx+HS_Y] +273F:54EB  03 57 1B                             add     dx, [bx+HS_HEIGHT_COPY] +273F:54EE  83 EA 04                             sub     dx, 4 +273F:54F1  B0 00                                mov     al, 0 +273F:54F3                       loc_1095:                                       ;  xref 273F:54AA +273F:54F3  5F                                   pop     di +273F:54F4  88 45 27                             mov     [di+ANIM_UNKNOWN1], al +273F:54F7  8B 44 0D                             mov     ax, [si+HS_X] +273F:54FA  2B C1                                sub     ax, cx +273F:54FC  73 02                                jnc     loc_1096                ; Jump if carry=0 +273F:54FE  F7 D8                                neg     ax +273F:5500                       loc_1096:                                       ;  xref 273F:54FC +273F:5500  3D 0008                              cmp     ax, 8 +273F:5503  73 14                                jae     character_start_walking ; If NZ, jump to start walking +273F:5505  8B 44 0F                             mov     ax, [si+HS_Y] +273F:5508  03 44 1B                             add     ax, [si+HS_HEIGHT_COPY] +273F:550B  2D 0001                              sub     ax, 1 +273F:550E  2B C2                                sub     ax, dx +273F:5510  73 02                                jnc     loc_1097                ; Jump if carry=0 +273F:5512  F7 D8                                neg     ax +273F:5514                       loc_1097:                                       ;  xref 273F:5510 +273F:5514  3D 0013                              cmp     ax, 13h +273F:5517  72 31                                jb      loc_1100                ; Jump if below + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:8541 + +                    character_start_walking     proc    near +273F:5519  81 FE 6CEF                           cmp     si, offset player_hotspot_rec +273F:551D  75 17                                jne     loc_1099                ; Jump if not equal +273F:551F  C7 06 11E1 0002                      mov     cursor_index, CURSOR_TIME_UP +273F:5525  C6 06 11DF 00                        mov     cursor_centroid, 0 +273F:552A  56                                   push    si +273F:552B  57                                   push    di +273F:552C  51                                   push    cx +273F:552D  52                                   push    dx +273F:552E  FF 16 075E                           call    [show_cursor_proc] +273F:5532  5A                                   pop     dx +273F:5533  59                                   pop     cx +273F:5534  5F                                   pop     di +273F:5535  5E                                   pop     si +273F:5536                       loc_1099:                                       ;  xref 273F:551D +273F:5536  8B DE                                mov     bx,si +273F:5538  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:553B  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:553E  C6 07 01                             mov     byte ptr [bx], CHAR_ACTION_START_WALK +273F:5541  89 54 56                             mov     [si+HS_DEST_Y], dx +273F:5544  89 4C 54                             mov     [si+HS_DEST_X], cx +273F:5547  33 C0                                xor     ax, ax +273F:5549  C3                                   retn +273F:554A                       loc_1100:                                       ;  xref 273F:54E3, 5517 +273F:554A  0D 0001                              or      ax,1 +273F:554D  C3                                   retn +                    character_start_walking     endp +                    character_walking_check     endp +                          npc_walking_check     endp +                           +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +         npc_set_support_offset_conditional     proc    near +273F:554E  8B DD                                mov     bx, bp +273F:5550  8B 07                                mov     ax, [bx]                ; Get sequence offset +273F:5552  E8 DF E8                             call    sequence_execute        ; Execute it +273F:5555  74 11                                jz      loca_5568               ; Skip if zero return +273F:5557  8B 47 02                             mov     ax, [bx+2]              ; Get new action offset +273F:555A                       loc_1101: +273F:555A ú8B DE                                mov     bx, si +273F:555C  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:555F  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5562  89 47 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], ax  ; Set it action rec +273F:5565  E9 EC56                              jmp     action_dispatch +                               loca_5568: +273F:5568  8B C5                                mov     ax,bp +273F:556A  05 0004                              add     ax,4 +273F:556D  EB EB                                jmp     short loc_1101          ; (555A) +         npc_set_support_offset_conditional     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                     npc_set_support_offset     proc    near +273F:556F  8B DD                                mov     bx,bp +273F:5571  8B 07                                mov     ax, [bx] +273F:5573  8B DE                                mov     bx, si +273F:5575  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5578  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:557B  89 47 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], ax +273F:557E  E9 EC3D                              jmp     action_dispatch +                     npc_set_support_offset     endp                                 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:478E, 5415, 5723, 57BE, 58CC, 591C, 5954 +                                ;                             5968, 5ACE, 5B47, 5BA6, 5C15, 5C7A, 5D32 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       character_walking_end    proc    near +273F:5581 ú81 7D 1B 03E8                        cmp     word ptr [di+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID +273F:5586  75 05                                jne     character_walking_end_2 +273F:5588  80 26 9834 02                        and     cursor_state, 2 + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; + +                     character_walking_end_2: +273F:558D ú33 C0                                xor     ax, ax +273F:558F  89 45 24                             mov     [di+ANIM_VOICE_CTR], ax +273F:5592  88 44 2A                             mov     [si+HS_ACTION_CTR], al +273F:5595  8B DE                                mov     bx, si +273F:5597  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:559A  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:559D  89 6F 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], bp +273F:55A0  C3                                   retn +                       character_walking_end    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:44C7, 509D, 7F5D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                  characters_impinging_check    proc    near +273F:55A1  8B 47 0D                             mov     ax, [bx+HS_X] +273F:55A4  03 47 19                             add     ax, [bx+HS_WIDTH_COPY] +273F:55A7  05 0004                              add     ax, 4 +273F:55AA  3B 44 0D                             cmp     ax, [si+HS_X] +273F:55AD  72 44                                jb      loc_1104                ; Jump if below +273F:55AF  8B 44 0D                             mov     ax, [si+HS_X] +273F:55B2  03 44 19                             add     ax, [si+HS_WIDTH_COPY] +273F:55B5  05 0004                              add     ax, 4 +273F:55B8  3B 47 0D                             cmp     ax, [bx+HS_X] +273F:55BB  72 36                                jb      loc_1104                ; Jump if below + +273F:55BD  8B 44 0F                             mov     ax, [si+HS_Y] +273F:55C0  03 44 1B                             add     ax, [si+HS_HEIGHT_COPY] +273F:55C3  2B 44 1D                             sub     ax, [si+HS_Y_CORRECTION] +273F:55C6  2D 0002                              sub     ax, 2 +273F:55C9  8B 4F 0F                             mov     cx, [bx+HS_Y] +273F:55CC  03 4F 1B                             add     cx, [bx+HS_HEIGHT_COPY] +273F:55CF  83 C1 02                             add     cx, 2 +273F:55D2  3B C1                                cmp     ax, cx +273F:55D4  73 1D                                jae     loc_1104                ; Jump if above or = +273F:55D6  8B 44 0F                             mov     ax, [si+HS_Y] +273F:55D9  03 44 1B                             add     ax, [si+HS_HEIGHT_COPY] +273F:55DC  05 0002                              add     ax, 2 +273F:55DF  8B 4F 0F                             mov     cx, [bx+HS_Y] +273F:55E2  03 4F 1B                             add     cx, [bx+HS_HEIGHT_COPY] +273F:55E5  2B 4F 1D                             sub     cx, [bx+HS_Y_CORRECTION] +273F:55E8  83 E9 02                             sub     cx, 2 +273F:55EB  3B C1                                cmp     ax, cx +273F:55ED  72 04                                jb      loc_1104                ; Jump if below +273F:55EF  0D 0001                              or      ax,1 +273F:55F2  C3                                   retn +273F:55F3                       loc_1104:                                       ;  xref 273F:55AD, 55BB, 55D4, 55ED +273F:55F3  33 C0                                xor     ax,ax                   ; Zero register +273F:55F5  C3                                   retn +                  characters_impinging_check    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5419, 572E, 57C9, 5830, 58D0, 5923, 595B +                                ;                             5AE2, 5B4B, 5BC5, 5C19, 5C82, 5CD0, 5D36 +                                ;                             8A03 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                hotspot_get_action_sequence     proc    near +273F:55F6  53                                   push    bx +273F:55F7  8B 5F 04                             mov     bx, [bx+HS_ACTIONS_OFFSET] +273F:55FA  0B DB                                or      bx, bx                  ; Hotspot have actions? +273F:55FC  74 1C                                jz      loc_1107                ; Jump if not + +273F:55FE  8B 0F                                mov     cx,[bx]                 ; Get # entries +273F:5600  83 C3 02                             add     bx,2                    ; Move to first entry +273F:5603  A1 BB45                              mov     ax, current_action_num  ; Get action number +273F:5606  0B C9                                or      cx,cx                   ; List have any items? +273F:5608  74 10                                jz      loc_1107                ; Jump if not + +273F:560A                       locloop_1105: +273F:560A  3A 07                                cmp     al, [bx]                ; Get action number +273F:560C  75 07                                jne     loc_1106                ; Skip if not wanted action +273F:560E  8B 47 01                             mov     ax, [bx+1]              ; Get sequence offset +273F:5611  5B                                   pop     bx +273F:5612  0B C0                                or      ax, ax                  ; Zero ? +273F:5614  C3                                   retn +273F:5615                       loc_1106:                                       ;  xref 273F:560C +273F:5615  83 C3 03                             add     bx,3 +273F:5618  E2 F0                                loop    locloop_1105            ; Loop if cx > 0 + +273F:561A                       loc_1107:                                       ;  xref 273F:55FC, 5608 +273F:561A  5B                                   pop     bx +273F:561B  33 C0                                xor     ax, ax                  ; Zero register +273F:561D  C3                                   retn +                hotspot_get_action_sequence     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                npc_set_blocked_offset_proc     proc    near +273F:561E  8B DD                                mov     bx, bp +273F:5620  8B 07                                mov     ax, [bx] +273F:5622  8B 4F 02                             mov     cx, [bx+2] +273F:5625  83 C5 04                             add     bp, 4 +273F:5628  89 4C 5E                             mov     [si+HS_BLOCKED_SUPPORT_OFFSET], cx +273F:562B  C6 44 60 00                          mov     byte ptr [si+HS_EXIT_CTR], 0 +273F:562F  8B DE                                mov     bx, si +273F:5631  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5634  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5637  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:563A  E9 FF44                              jmp     character_walking_end +                npc_set_blocked_offset_proc     endp +                              +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                                go_to_proc      proc    near +273F:563D  8B DD                                mov     bx,bp +273F:563F  8B 07                                mov     ax,[bx] +273F:5641  83 C5 02                             add     bp,2 +273F:5644  C7 44 5E 0000                        mov     word ptr [si+HS_BLOCKED_SUPPORT_OFFSET], 0 +273F:5649  C6 44 60 00                          mov     byte ptr [si+HS_EXIT_CTR], 0 +273F:564D  8B DE                                mov     bx,si +273F:564F  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5652  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5655  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:5658  E9 FF26                              jmp     character_walking_end +                                go_to_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                        npc_set_random_dest     proc    near +273F:565B  8B DE                                mov     bx, si +273F:565D  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5660  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5663  89 6F 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], bp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:606B +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                  character_set_random_dest     proc    near +273F:5666 úC6 07 01                             mov     byte ptr [bx], CHAR_ACTION_START_WALK +273F:5669  C6 45 27 01                          mov     byte ptr [di+ANIM_UNKNOWN1], 1 +273F:566D  56                                   push    si +273F:566E  56                                   push    si +273F:566F  8B 44 06                             mov     ax, [si+HS_ROOM_NUM]    ; Get char's room rsc +273F:5672  E8 B675                              call    get_room_resource_pointer2 +273F:5675  8A 5C 18                             mov     bl, [si+ROOM_BOUNDS_INDEX] +273F:5678  32 FF                                xor     bh, bh +273F:567A  B1 03                                mov     cl, 3 +273F:567C  D3 E3                                shl     bx, cl +273F:567E  81 C3 2EB1                           add     bx, offset room_bounds_table +273F:5682  B9 0014                              mov     cx, 20                  ; # attempts +273F:5685  5E                                   pop     si + +273F:5686                       locloop_1109:                                   ;  xref 273F:56C3 +273F:5686  51                                   push    cx + +; Chooses a random destination for the character within the given rectangle +273F:5687  E8 EDE2                              call    random                  ; Get random value +273F:568A  8B 4F 02                             mov     cx, [bx+2] +273F:568D  2B 0F                                sub     cx, [bx] +273F:568F  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:5691  03 17                                add     dx,[bx] +273F:5693  89 54 54                             mov     [si+HS_DEST_X],dx +273F:5696  52                                   push    dx +273F:5697  E8 EDD2                              call    random +273F:569A  8B 4F 06                             mov     cx, [bx+6] +273F:569D  2B 4F 04                             sub     cx, [bx+4] +273F:56A0  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:56A2  03 57 04                             add     dx, [bx+4] +273F:56A5  89 54 56                             mov     [si+HS_DEST_Y], dx +273F:56A8  8B C2                                mov     ax, dx +273F:56AA  5A                                   pop     dx +273F:56AB  B9 0003                              mov     cx,3 +273F:56AE  E8 001D                              call    character_check_dest_occupied +273F:56B1  0B C0                                or      ax, ax                  ; Occupied? +273F:56B3  75 0D                                jnz     loc_1110                ; Jump if yes +273F:56B5  05 0008                              add     ax, 8 +273F:56B8  B9 0003                              mov     cx, 3 +273F:56BB  E8 0010                              call    character_check_dest_occupied +273F:56BE  0B C0                                or      ax, ax                  ; Occupied +273F:56C0  74 07                                jz      loc_1111                ; Jump if not +273F:56C2                       loc_1110: +273F:56C2  59                                   pop     cx                      ; Loop to choose another +273F:56C3  E2 C1                                loop    locloop_1109            ;   random destination + +273F:56C5  5B                                   pop     bx +273F:56C6  87 DE                                xchg    bx,si +273F:56C8  C3                                   retn +273F:56C9                       loc_1111:                                       ;  xref 273F:56C0 +273F:56C9  59                                   pop     cx +273F:56CA  5B                                   pop     bx +273F:56CB  87 DE                                xchg    bx,si +273F:56CD  C3                                   retn +                  character_set_random_dest     endp +                        npc_set_random_dest     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:56AE, 56BB +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +              character_check_dest_occupied     proc    near +273F:56CE  53                                   push    bx +273F:56CF  51                                   push    cx +273F:56D0  E8 ECC1                              call    pathfind_get_cell +273F:56D3  59                                   pop     cx + +273F:56D4                       locloop_1112:                                   ;  xref 273F:56E1 +273F:56D4  85 07                                test    ax,[bx]                 ; Is the dest occupied? +273F:56D6  75 0F                                jnz     loc_1114                ; Jump if yes +273F:56D8  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:56DA  73 05                                jnc     loc_1113                ; Jump if carry=0 +273F:56DC  83 C3 01                             add     bx,1 +273F:56DF  B0 80                                mov     al,80h +273F:56E1                       loc_1113:                                       ;  xref 273F:56DA +273F:56E1  E2 F1                                loop    locloop_1112            ; Loop if cx > 0 + +273F:56E3  5B                                   pop     bx +273F:56E4  33 C0                                xor     ax,ax                   ; Zero register +273F:56E6  C3                                   retn +273F:56E7                       loc_1114:                                       ;  xref 273F:56D6 +273F:56E7  5B                                   pop     bx +273F:56E8  B0 01                                mov     al,1 +273F:56EA  C3                                   retn +              character_check_dest_occupied     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                 open_proc      proc    near +273F:56EB  8B DD                                mov     bx,bp +273F:56ED  8B 07                                mov     ax,[bx] +273F:56EF  83 C5 02                             add     bp,2 +273F:56F2  A3 BA19                              mov     use_hotspot_id, ax +273F:56F5  A3 BA1B                              mov     active_hotspot_id, ax +273F:56F8  56                                   push    si +273F:56F9 úBE 4CB0                              mov     si, offset exit_hotspots_list +273F:56FC  E8 EE94                              call    is_roomexit_hotspot +273F:56FF  75 0E                                jnz     loc_1115                ; Not a valid door +273F:5701  53                                   push    bx +273F:5702  A1 BA19                              mov     ax, use_hotspot_id +273F:5705  E8 1AE6                              call    room_exit_hs_get_pointer +273F:5708  5B                                   pop     bx +273F:5709  F6 44 0C FF                          test    byte ptr [si+REHS_EXIT_BLOCKED], 0FFh +273F:570D  74 58                                jz      loc_1120                ; Jump if exit blocked (closed) +273F:570F                       loc_1115: +273F:570F  5E                                   pop     si +273F:5710  A1 BA19                              mov     ax, use_hotspot_id +273F:5713  E8 EE91                              call    hotspot_action_precheck +273F:5716  0B C0                                or      ax, ax                  ; Execute? +273F:5718  74 08                                jz      loc_1116                ; Jump if yes +273F:571A  3D 0003                              cmp     ax, 3                   ; Initial? +273F:571D  74 47                                je      loc_ret_1119            ; Exit if not +273F:571F  E9 FE5F                              jmp     character_walking_end +273F:5722                       loc_1116:                                       ;  xref 273F:5718 +273F:5722  53                                   push    bx +273F:5723  E8 FE5B                              call    character_walking_end +273F:5726  5B                                   pop     bx +273F:5727  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:572B  E8 EFC0                              call    character_face_hotspot +273F:572E  E8 FEC5                              call    hotspot_get_action_sequence +273F:5731  79 03                                jns     loc_1117                ; Jump if not sign +273F:5733  E9 0C7B                              jmp     display_message_dialog_3 +273F:5736                       loc_1117:                                       ;  xref 273F:5731 +273F:5736  74 0A                                jz      loc_1118                ; Jump if zero +273F:5738  E8 E6F9                              call    sequence_execute +273F:573B  3D 0001                              cmp     ax,1 +273F:573E  74 26                                je      loc_ret_1119            ; Jump if equal +273F:5740  73 2F                                jnc     loc_1121                ; Jump if carry=0 +273F:5742                       loc_1118:                                       ;  xref 273F:5736 +273F:5742  A1 BA19                              mov     ax, use_hotspot_id +273F:5745  56                                   push    si +273F:5746  E8 1AA5                              call    room_exit_hs_get_pointer +273F:5749  5B                                   pop     bx +273F:574A  87 F3                                xchg    si,bx +273F:574C  F6 47 0C FF                          test    byte ptr [bx+REHS_EXIT_BLOCKED], 0FFh +273F:5750  74 14                                jz      loc_ret_1119            ; Jump if zero +273F:5752  C6 47 0C 00                          mov     byte ptr [bx+REHS_EXIT_BLOCKED], 0 +273F:5756  81 7D 1B 03E8                        cmp     word ptr [di+ANIM_HOTSPOT_ID], PLAYER_HOTSPOT_ID +273F:575B  74 09                                je      loc_ret_1119            ; Jump if equal +273F:575D  C6 44 44 03                          mov     byte ptr [si+HS_V44], 3 +273F:5761  C7 44 42 0004                        mov     word ptr [si+HS_V42], 4 + +273F:5766                       loc_ret_1119:                                   ;  xref 273F:571D, 573E, 5750, 575B +273F:5766  C3                                   retn +273F:5767                       loc_1120:                                       ;  xref 273F:570D +273F:5767  5E                                   pop     si +273F:5768  B8 0004                              mov     ax,4 +273F:576B  E8 0C43                              call    display_message_dialog_3 +273F:576E  E9 FE10                              jmp     character_walking_end +273F:5771                       loc_1121:                                       ;  xref 273F:5740 +273F:5771  F6 44 60 FF                          test    byte ptr [si+HS_EXIT_CTR],0FFh +273F:5775  74 04                                jz      loc_1122                ; Jump if zero +273F:5777  C6 44 60 04                          mov     byte ptr [si+HS_EXIT_CTR], 4 +273F:577B                       loc_1122:                                       ;  xref 273F:5775 +273F:577B  E9 0C33                              jmp     display_message_dialog_3 +                                 open_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                close_proc      proc    near +273F:577E 8B DD                                 mov     bx, bp +273F:5780 8B07                                  mov     ax, [bx] +273F:5782 83C502                                add     bp, 2 +273F:5785 A319BA                                mov     use_hotspot_id, ax +273F:5788 A31BBA                                mov     active_hotspot_id, ax +273F:578B 56                                    push    si +273F:578C BEB04C                                mov     si, offset exit_hotspots_list +273F:578F E801EE                                call    is_roomexit_hotspot +273F:5792 7516                                  jnz     close_proc_2 +273F:5794 A119BA                                mov     ax, use_hotspot_id +273F:5797 E8541A                                call    room_exit_hs_get_pointer +273F:579A F6440CFF                              test    byte ptr [si+REHS_EXIT_BLOCKED], 0FFh +273F:579E 740A                                  jz      close_proc_2 +273F:57A0 5E                                    pop     si +273F:57A1 B80300                                mov     ax, 3 +273F:57A4 E80A0C                                call    display_message_dialog_3 +273F:57A7 E9D7FD                                jmp     character_walking_end +273F:57AA A119BA            close_proc_2:       mov     ax, use_hotspot_id +273F:57AD 5E                                    pop     si +273F:57AE E8F6ED                                call    hotspot_action_precheck +273F:57B1 0BC0                                  or      ax, ax +273F:57B3 7408                                  jz      loc_1123 +273F:57B5 3D0300                                cmp     ax, 3 +273F:57B8 7448                                  jz      loc_ret_1127 +273F:57BA E9C4FD                                jmp     character_walking_end +273F:57BD                       loc_1123: +273F:57BD  53                                   push    bx +273F:57BE  E8 FDC0                              call    character_walking_end +273F:57C1  5B                                   pop     bx +273F:57C2  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:57C6  E8 EF25                              call    character_face_hotspot +273F:57C9  E8 FE2A                              call    hotspot_get_action_sequence +273F:57CC  79 03                                jns     loc_1125                ; Jump if not sign +273F:57CE                       loc_1124:                                       ;  xref 273F:57D6 +273F:57CE  E9 0BE0                              jmp     display_message_dialog_3 +273F:57D1                       loc_1125:                                       ;  xref 273F:57CC +273F:57D1  74 05                                jz      loc_1126                ; Jump if zero +273F:57D3  E8 E65E                              call    sequence_execute +273F:57D6  75 F6                                jnz     loc_1124                ; Jump if not zero +273F:57D8                       loc_1126:                                       ;  xref 273F:57D1 +273F:57D8  56                                   push    si +273F:57D9  A1 BA19                              mov     ax, use_hotspot_id +273F:57DC  E8 1A0F                              call    room_exit_hs_get_pointer  +273F:57DF  5B                                   pop     bx +273F:57E0  87 DE                                xchg    bx,si +273F:57E2  F6 47 0C FF                          test    byte ptr [bx+REHS_EXIT_BLOCKED], 0FFh +273F:57E6  75 1A                                jnz     loc_ret_1127            ; Jump if not zero +273F:57E8  8B EB                                mov     bp, bx + +273F:57EA  8B 5F 0D                             mov     bx, [bx+REHS_HOTSPOT1_OFFSET] +273F:57ED  E8 1A7B                              call    door_close_check +273F:57F0  74 11                                jz      loc_1128                ; Jump if can't close +273F:57F2  8B DD                                mov     bx, bp +273F:57F4  8B 5F 0F                             mov     bx, [bx+REHS_HOTSPOT2_OFFSET] +273F:57F7  E8 1A71                              call    door_close_check +273F:57FA  74 07                                jz      loc_1128                ; Jump if can't close +273F:57FC  8B DD                                mov     bx,bp +273F:57FE  C6 47 0C 01                          mov     byte ptr [bx+REHS_EXIT_BLOCKED], 1 + +273F:5802                       loc_ret_1127:                                   ;  xref 273F:57E6, 581F +273F:5802  C3                                   retn +273F:5803                       loc_1128:                                       ;  xref 273F:57F0, 57FA +273F:5803  B8 0002                              mov     ax,2 +273F:5806  E9 0BA8                              jmp     display_message_dialog_3 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                 tell_proc      proc    near +273F:5809  8B DD                                mov     bx,bp +273F:580B  8B 07                                mov     ax,[bx] +273F:580D  83 C5 02                             add     bp,2 +273F:5810  A3 BA19                              mov     use_hotspot_id, ax +273F:5813  A3 BA1B                              mov     active_hotspot_id, ax +273F:5816  E8 ED8E                              call    hotspot_action_precheck +273F:5819  0B C0                                or      ax,ax                   ; Zero ? +273F:581B  74 06                                jz      loc_1129                ; Jump if zero +273F:581D  3C 03                                cmp     al,3 +273F:581F  74 E1                                je      loc_ret_1127            ; Jump if equal +273F:5821  EB 68                                jmp     short loc_1134          ; (588B) +273F:5823                       loc_1129:                                       ;  xref 273F:581B +273F:5823  8B 0E BA19                           mov     cx, use_hotspot_id +273F:5827  B8 0001                              mov     ax,1 +273F:582A  BA 007C                              mov     dx,7Ch +273F:582D  E8 0922                              call    talk_converse_2 +273F:5830  E8 FDC3                              call    hotspot_get_action_sequence +273F:5833  79 03                                jns     loc_1130                ; Jump if not sign +273F:5835  E9 0B79                              jmp     display_message_dialog_3 +273F:5838                       loc_1130:                                       ;  xref 273F:5833 +273F:5838  E8 E5F9                              call    sequence_execute +273F:583B  75 4E                                jnz     loc_1134                ; Jump if not zero +273F:583D  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:5840  89 47 4E                             mov     [bx+HS_V4E],ax +273F:5843  C7 47 61 0005                        mov     word ptr [bx+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:5848  C6 47 4D 00                          mov     byte ptr [bx+4Dh],0 +273F:584C  8B 4F 5C                             mov     cx,[bx+5Ch] +273F:584F  89 4F 69                             mov     [bx+69h],cx +273F:5852  8B 44 06                             mov     ax,[si+6] +273F:5855  89 47 6B                             mov     [bx+6Bh],ax +273F:5858  C6 47 68 02                          mov     byte ptr [bx+68h],2 +273F:585C  56                                   push    si +273F:585D  57                                   push    di +273F:585E  8B F5                                mov     si,bp +273F:5860  8B F9                                mov     di,cx +273F:5862  1E                                   push    ds +273F:5863  07                                   pop     es +273F:5864                       loc_1131:                                       ;  xref 273F:5875, 587B +273F:5864 úAD                                   lodsw                           ; String [si] to ax +273F:5865  8B D0                                mov     dx,ax +273F:5867                       loc_1132:                                       ;  xref 273F:5870 +273F:5867  AB                                   stosw                           ; Store ax to es:[di] +273F:5868  0B C0                                or      ax,ax                   ; Zero ? +273F:586A  74 11                                jz      loc_1133                ; Jump if zero +273F:586C  AD                                   lodsw                           ; String [si] to ax +273F:586D  3D 7D00                              cmp     ax,7D00h +273F:5870  75 F5                                jne     loc_1132                ; Jump if not equal +273F:5872  83 FA 17                             cmp     dx,17h +273F:5875  75 ED                                jne     loc_1131                ; Jump if not equal +273F:5877  B8 0020                              mov     ax,20h +273F:587A  AB                                   stosw                           ; Store ax to es:[di] +273F:587B  EB E7                                jmp     short loc_1131          ; (5864) +273F:587D                       loc_1133:                                       ;  xref 273F:586A +273F:587D  26: C7 45 FE 0020                    mov     word ptr es:[di-2],20h +273F:5883  AB                                   stosw                           ; Store ax to es:[di] +273F:5884  8B EE                                mov     bp,si +273F:5886  83 ED 02                             sub     bp,2 +273F:5889  5F                                   pop     di +273F:588A  5E                                   pop     si +273F:588B                       loc_1134:                                       ;  xref 273F:5821, 583B +273F:588B  8B DD                                mov     bx,bp +273F:588D  C7 07 0000                           mov     word ptr [bx],0 +273F:5891  E9 FCF9                              jmp     character_walking_end_2 +                                 tell_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; xi=player hotspot, di=player anim slot, bp=?? +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         look_through_proc      proc    near +273F:5894  8B DD                                mov     bx,bp +273F:5896  8B 07                                mov     ax,[bx] +273F:5898  83 C5 02                             add     bp,2 +273F:589B  A3 BA19                              mov     use_hotspot_id, ax +273F:589E  A3 BA1B                              mov     active_hotspot_id, ax +273F:58A1  56                                   push    si +273F:58A2  E8 B445                              call    get_room_resource_pointer2 ; Get hotspot ptr +273F:58A5  5B                                   pop     bx +273F:58A6  87 DE                                xchg    bx,si                   ; si=player, bx=hotspot +273F:58A8  8B 47 06                             mov     ax, [bx+HS_ROOM_NUM] +273F:58AB  3B 45 1B                             cmp     ax, [di+ANIM_HOTSPOT_ID] ; In player's inventory? +273F:58AE  74 1B                                je      loc_1136                ; If yes then jump +273F:58B0  E8 ED24                              call    hotspot_action_precheck_2 +273F:58B3  0B C0                                or      ax, ax                  ; Zero ? +273F:58B5  74 08                                jz      loc_1135                ; Jump if zero +273F:58B7  3D 0003                              cmp     ax,3 +273F:58BA  74 3E                                je      loc_ret_1139            ; Jump if equal +273F:58BC  E9 FCC2                              jmp     character_walking_end +273F:58BF                       loc_1135:                                       ;  xref 273F:58B5 +273F:58BF  C6 44 2A 00                          mov     byte ptr [si+2Ah],0 +273F:58C3  E8 EE28                              call    character_face_hotspot +273F:58C6  55                                   push    bp +273F:58C7  E8 EA9C                              call    character_update_movement +273F:58CA  5D                                   pop     bp +273F:58CB                       loc_1136: +273F:58CB  53                                   push    bx +273F:58CC  E8 FCB2                              call    character_walking_end +273F:58CF  5B                                   pop     bx +273F:58D0  E8 FD23                              call    hotspot_get_action_sequence +273F:58D3  79 03                                jns     loc_1137                ; Jump if not sign +273F:58D5  E9 0AD9                              jmp     display_message_dialog_3 +273F:58D8                       loc_1137:                                       ;  xref 273F:58D3 +273F:58D8  74 13                                jz      loc_ret_1138            ; Jump if zero +273F:58DA  E8 E557                              call    sequence_execute +273F:58DD  74 0E                                jz      loc_ret_1138            ; Jump if zero +273F:58DF  3D 002A                              cmp     ax,2Ah +273F:58E2  75 09                                jne     loc_ret_1138            ; Jump if not equal +273F:58E4  C7 44 42 0050                        mov     word ptr [si+HS_V42],  80 +273F:58E9  C6 44 44 02                          mov     byte ptr [si+HS_V44], 2 + +273F:58ED                       loc_ret_1138:                                   ;  xref 273F:58D8, 58DD, 58E2 +273F:58ED  C3                                   retn +                         look_through_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; Sets up things for remotely viewing a room - storing the room to +                                ; return to, and disabling the tick proc for the player +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                  seq_room_remote_view_setup    proc    near +                                                assume  ds:seg_code +273F:58EE  A1 9832                              mov     ax, room_number +273F:58F1  A3 BA25                              mov     old_room_number, ax +273F:58F4  C7 06 B15F 58FB                      mov     slot0_tick_proc, offset loc_ret_1140 + +273F:58FA                       loc_ret_1139:                                   ;  xref 273F:58BA +273F:58FA  C3                                   retn +                  seq_room_remote_view_setup    endp + + + +273F:58FB                       loc_ret_1140:                                   ;  xref 273F:5913, 594E, 5963 +273F:58FB  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; xi=player hotspot, di=player anim slot, bp=?? +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              operate_proc      proc    near +273F:58FC  8B DD                                mov     bx,bp +273F:58FE  8B 07                                mov     ax,[bx] +273F:5900  83 C5 02                             add     bp,2 +273F:5903  A3 BA19                              mov     use_hotspot_id, ax +273F:5906  A3 BA1B                              mov     active_hotspot_id, ax +273F:5909  E8 EC9B                              call    hotspot_action_precheck +273F:590C  0B C0                                or      ax,ax                   ; Zero ? +273F:590E  74 08                                jz      loc_1141                ; Jump if zero +273F:5910  3D 0003                              cmp     ax,3 +273F:5913  74 E6                                je      loc_ret_1140            ; Jump if equal +273F:5915  E9 FC69                              jmp     character_walking_end +273F:5918                       loc_1141:                                       ;  xref 273F:590E +273F:5918  88 44 2A                             mov     [si+HS_ACTION_CTR], al +273F:591B  53                                   push    bx +273F:591C  E8 FC62                              call    character_walking_end +273F:591F  5B                                   pop     bx +273F:5920  E8 EDCB                              call    character_face_hotspot +273F:5923  E8 FCD0                              call    hotspot_get_action_sequence +273F:5926  79 03                                jns     loc_1142                ; Jump if not sign +273F:5928  E9 0A86                              jmp     display_message_dialog_3 +273F:592B                       loc_1142:                                       ;  xref 273F:5926 +273F:592B  E8 E506                              call    sequence_execute +273F:592E  3D 0002                              cmp     ax,2 +273F:5931  72 03                                jb      loc_ret_1143            ; Jump if below +273F:5933  E9 0A7B                              jmp     display_message_dialog_3 + +273F:5936                       loc_ret_1143:                                   ;  xref 273F:5931 +273F:5936  C3                                   retn +                              operate_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                           lock_unlock_proc     proc    near +273F:5937  8B DD                                mov     bx,bp +273F:5939  8B 07                                mov     ax,[bx] +273F:593B  83 C5 02                             add     bp,2 +273F:593E  A3 BA19                              mov     use_hotspot_id, ax +273F:5941  A3 BA1B                              mov     active_hotspot_id, ax +273F:5944  E8 EC60                              call    hotspot_action_precheck +273F:5947  0B C0                                or      ax,ax                   ; Zero ? +273F:5949  74 08                                jz      loc_1144                ; Jump if zero +273F:594B  3D 0003                              cmp     ax,3 +273F:594E  74 AB                                je      loc_ret_1140            ; Jump if equal +273F:5950  E9 FC2E                              jmp     character_walking_end +273F:5953                       loc_1144:                                       ;  xref 273F:5949 +273F:5953  53                                   push    bx +273F:5954  E8 FC2A                              call    character_walking_end +273F:5957  5B                                   pop     bx +273F:5958  E8 ED93                              call    character_face_hotspot +273F:595B  E8 FC98                              call    hotspot_get_action_sequence +273F:595E  79 03                                jns     loc_1145                ; Jump if not sign +273F:5960  E9 0A4E                              jmp     display_message_dialog_3 +273F:5963                       loc_1145:                                       ;  xref 273F:595E +273F:5963  74 96                                jz      loc_ret_1140            ; Jump if zero +273F:5965  E9 E4CC                              jmp     sequence_execute +                           lock_unlock_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:56AE, 56BB +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              look_proc         proc    near + +273F:5968  E8 FC16                              call    character_walking_end +273F:596B  8B 44 06                             mov     ax, [si+6] +273F:596E  E8 B3B0                              call    get_room_resource_pointer4 +273F:5971  8B 5C 04                             mov     bx, [si+RH_DESC_ID] +273F:5974  E9 2F45                              jmp     display_dialog + +                              look_proc         endp +                              +273F:5977  00                     data_359      db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                               status_proc      proc    near + +31E4:5978  E8 06 FC                             call    character_walking_end +31E4:597B  80 0E 11D0 01                        or      menubar_state, 1 +31E4:5980  FF 16 075E                           call    [show_cursor_proc] +31E4:5984  B0 09                                mov     al, 9 +31E4:5986  B1 16                                mov     cl, 16 +31E4:5988  B2 03                                mov     dl, 3 +31E4:598A  F7 06 BC49 FFFF                      test    num_groats, 0ffffh +31E4:5990  74 03                                jz      status_loc_2 +31E4:5992  80 C2 02                             add     dl, 2 +                            status_loc_2: +31E4:5995  F6 06 9835 FF                        test    num_inventory_items, 0ffh +31E4:599A  74 07                                jz      loc_1146 +31E4:599C  02 16 9835                           mov     dl, num_inventory_items +31E4:59A0  80 EA 01                             sub     dl, 1 + +273F:59A3                       loc_1146: +273F:59A3  B3 18                                mov     bl,18h +273F:59A5  2A DA                                sub     bl,dl +273F:59A7  D0 EB                                shr     bl,1                    ; Shift w/zeros fill +273F:59A9  2E: 88 1E 5977                       mov     cs:data_359,bl          ; (273F:5977=0) +273F:59AE  BD 0001                              mov     bp,1 +273F:59B1  FF 16 077A                           call    [draw_dialog_proc] +273F:59B5  A1 9832                              mov     ax, room_number         ; Get the current room's +273F:59B8  E8 B366                              call    get_room_resource_pointer3 ; short name +273F:59BB  8B 44 02                             mov     ax,[si+2] +273F:59BE  BF 4B43                              mov     di, offset hotspot_name +273F:59C1  E8 2376                              call    decode_string +273F:59C4  2E: A0 5977                          mov     al, cs:data_359 +273F:59C8  04 01                                add     al,1 +273F:59CA  32 E4                                xor     ah,ah                   ; Zero register +273F:59CC úBB 000A                              mov     bx, 10 +273F:59CF úBE 4B43                              mov     si, offset hotspot_name +273F:59D2  E8 C210                              call    sub_52 + +273F:59D5  C7 06 4B19 6F6E                      mov     data_789,6F6Eh          ; (31E4:4B19=6F6Eh) +273F:59DB  F6 06 9835 FF                        test    num_inventory_items, 0FFh +273F:59E0  74 06                                jz      loc_1147                ; Jump if zero +273F:59E2  C7 06 4B19 003A                      mov     data_789,3Ah            ; (31E4:4B19=6F6Eh) +273F:59E8                       loc_1147:                                       ;  xref 273F:59E0 +273F:59E8  2E: A0 5977                          mov     al,cs:data_359          ; (273F:5977=0) +273F:59EC  04 03                                add     al,3 +273F:59EE  32 E4                                xor     ah,ah                   ; Zero register +273F:59F0 úBB 000A                              mov     bx, 10 +273F:59F3 úBE 4B08                              mov     si, offset carrying_str +273F:59F6  E8 C1EC                              call    sub_52                  ; (1BE5) + +273F:59F9  2E: 8A 0E 5977                       mov     cl,cs:data_359          ; (273F:5977=0) +273F:59FE  80 C1 03                             add     cl,3 +273F:5A01  32 ED                                xor     ch,ch                   ; Zero register +273F:5A03  F6 06 9835 FF                        test    num_inventory_items, 0FFh +273F:5A08  74 34                                jz      loc_1151                ; Jump if zero + +273F:5A0A úBE 623E                              mov     si, offset hotspot_table_3 +273F:5A0D                       loc_1148: +273F:5A0D ú8B 3C                                mov     di,[si]                 ; Get hotspot offset +273F:5A0F  83 FF FF                             cmp     di,0FFFFh               ; End of sublist? +273F:5A12  74 27                                je      loc_1150                ; If yes, then jump +273F:5A14  81 7D 06 03E8                        cmp     word ptr [di+HS_ROOM_NUM], PLAYER_HOTSPOT_ID  ; In player's inventory? +273F:5A19  75 1B                                jne     loc_1149                ; If not, move to next +273F:5A1B  56                                   push    si +273F:5A1C  8B 44 02                             mov     ax, [si+HSH_NAME]       ; Get hotspot name +273F:5A1F  BF 4B43                              mov     di, offset hotspot_name +273F:5A22  51                                   push    cx +273F:5A23  E8 2314                              call    decode_string +273F:5A26  58                                   pop     ax +273F:5A27  50                                   push    ax +273F:5A28 úBB 0016                              mov     bx,16h                  ; (273F:0016=0EBh) +273F:5A2B úBE 4B43                              mov     si, offset hotspot_name +273F:5A2E  E8 C1B4                              call    sub_52                  ; (1BE5) +273F:5A31  59                                   pop     cx +273F:5A32  83 C1 01                             add     cx,1 +273F:5A35  5E                                   pop     si +273F:5A36                       loc_1149:                                       ;  xref 273F:5A19 +273F:5A36  83 C6 09                             add     si,9 +273F:5A39  EB D2                                jmp     short loc_1148          ; (5A0D) +273F:5A3B                       loc_1150:                                       ;  xref 273F:5A12 +273F:5A3B  83 E9 01                             sub     cx,1 +273F:5A3E                       loc_1151:                                       ;  xref 273F:5A08 +273F:5A3E  A1 BC49                              mov     ax, num_groats +273F:5A41  0B C0                                or      ax,ax                   ; Zero ? +273F:5A43  74 26                                jz      loc_1153                ; Jump if zero +273F:5A45  04 30                                add     al,30h                  ; '0' +273F:5A47  A2 4B2B                              mov     s_num_groats, al        ; Fill out # groats +273F:5A4A  C7 06 4B32 0073                      mov     s_groats_plural, 's'    ; Add in a plural 's' + +273F:5A50  83 3E BC49 01                        cmp     num_groats, 1           ; Is a plural necessary? +273F:5A55  75 06                                jne     loc_1152                ; Yes, so skip removal +273F:5A57  C7 06 4B32 0000                      mov     s_groats_plural, 0      ; Remove plural 's' +273F:5A5D                       loc_1152: +273F:5A5D  8B C1                                mov     ax,cx +273F:5A5F  05 0002                              add     ax,2 +273F:5A62 úBB 000A                              mov     bx,0Ah                  ; (273F:000A=23h) +273F:5A65 úBE 4B22                              mov     si, offset money_str +273F:5A68  E8 C17A                              call    sub_52                  ; (1BE5) +273F:5A6B                       loc_1153:                                       ;  xref 273F:5A43 +273F:5A6B  FF 16 0744                           call    word ptr [show_screen_proc] +273F:5A6F  E8 C519                              call    mouse_wait              ; (1F8B) +273F:5A72  E8 C521                              call    pause_for_input         ; (1F96) +273F:5A75  E8 C513                              call    mouse_wait              ; (1F8B) +273F:5A78  80 26 11D0 FE                        and     menubar_state, 0FEh ; (273F:11D0=56h) +273F:5A7D  FF 16 075E                           call    [show_cursor_proc] +273F:5A81  C3                                   retn + +                               status_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                               return_proc      proc    near +273F:5A82  8B DE                                mov     bx, si +273F:5A84  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5A87  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5A8A  8B 44 4E                             mov     ax, [si+HS_V4E] +273F:5A8D  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:5A90  E9 FAEE                              jmp     character_walking_end +                               return_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                                   use_proc     proc    near +273F:5A93  8B DD                                mov     bx,bp +273F:5A95  8B 07                                mov     ax,[bx] +273F:5A97  A3 BA19                              mov     use_hotspot_id, ax +273F:5A9A  8B 47 02                             mov     ax,[bx+2] +273F:5A9D  A3 BA1B                              mov     active_hotspot_id, ax +273F:5AA0  83 C5 04                             add     bp,4 +273F:5AA3  56                                   push    si +273F:5AA4  A1 BA19                              mov     ax, use_hotspot_id +273F:5AA7  E8 B240                              call    get_room_resource_pointer2 +273F:5AAA  5B                                   pop     bx +273F:5AAB  87 DE                                xchg    bx,si                   ; bx=item to use, si=hotspot +273F:5AAD  8B 47 06                             mov     ax, [bx+HS_ROOM_NUM] +273F:5AB0  3B 45 1B                             cmp     ax, [di+ANIM_HOTSPOT_ID]; Item in char's inventory? +273F:5AB3  75 12                                jne     loc_1155                ; Jump if not equal +273F:5AB5  A1 BA1B                              mov     ax, active_hotspot_id +273F:5AB8  E8 EAEC                              call    hotspot_action_precheck +273F:5ABB  0B C0                                or      ax,ax                   ; Zero ? +273F:5ABD  74 0B                                jz      loc_1156                ; Jump if zero +273F:5ABF  3C 03                                cmp     al,3 +273F:5AC1  74 03                                je      loc_ret_1154            ; Jump if equal +273F:5AC3  E9 FABB                              jmp     character_walking_end + +273F:5AC6                       loc_ret_1154:                                   ;  xref 273F:5AC1, 5AF5, 5B3A +273F:5AC6  C3                                   retn +273F:5AC7                       loc_1155:                                       ;  xref 273F:5AB3 +273F:5AC7  E9 0242                              jmp     loc_1187                ; (5D0C) +273F:5ACA                       loc_1156:                                       ;  xref 273F:5ABD +273F:5ACA  E8 EC21                              call    character_face_hotspot +273F:5ACD  53                                   push    bx +273F:5ACE  E8 FAB0                              call    character_walking_end +273F:5AD1  5B                                   pop     bx +273F:5AD2  81 7D 1B 03E9                        cmp     word ptr [di+ANIM_HOTSPOT_ID], 3E9h +273F:5AD7  75 09                                jne     loc_1157                ; Jump if not equal +273F:5AD9  C6 44 FF 28                          mov     byte ptr [si-1], 28h    ; '(' +273F:5ADD  C7 44 1F 0050                        mov     word ptr [si+HS_FRAME_CTR], 50h +273F:5AE2                       loc_1157:                                       ;  xref 273F:5AD7 +273F:5AE2  E8 FB11                              call    hotspot_get_action_sequence +273F:5AE5  79 03                                jns     loc_1158                ; Jump if not sign +273F:5AE7  E9 08C7                              jmp     display_message_dialog_3 +273F:5AEA                       loc_1158:                                       ;  xref 273F:5AE5 +273F:5AEA  75 06                                jnz     loc_1159                ; Jump if not zero +273F:5AEC  B8 0011                              mov     ax,11h +273F:5AEF  E9 08BF                              jmp     display_message_dialog_3 +273F:5AF2                       loc_1159:                                       ;  xref 273F:5AEA +273F:5AF2  E8 E33F                              call    sequence_execute +273F:5AF5  74 CF                                jz      loc_ret_1154            ; Jump if zero +273F:5AF7  E9 08B7                              jmp     display_message_dialog_3 +                                   use_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                            look_at_proc        proc    near +273F:5AFA  8B DD                                mov     bx,bp +273F:5AFC  8B 07                                mov     ax,[bx] +273F:5AFE  83 C5 02                             add     bp,2 +273F:5B01  A3 BA19                              mov     use_hotspot_id, ax +273F:5B04  A3 BA1B                              mov     active_hotspot_id, ax +273F:5B07  56                                   push    si +273F:5B08  E8 B1DF                              call    get_room_resource_pointer2 +273F:5B0B  5B                                   pop     bx +273F:5B0C  87 DE                                xchg    bx,si +273F:5B0E  81 3E BA19 0408                      cmp     use_hotspot_id, 408h +273F:5B14  72 29                                jb      loc_1163                ; Jump if below +273F:5B16  56                                   push    si +273F:5B17 úBE 4AD0                              mov     si, offset lookat_hotspot_list +273F:5B1A  8B 0E BA19                           mov     cx, use_hotspot_id +273F:5B1E                       loc_1160: +273F:5B1E úAD                                   lodsw                           ; Get next hotspot Id +273F:5B1F  0B C0                                or      ax,ax                   ; Reached end of list? +273F:5B21  74 09                                jz      loc_1162                ; Jump if yes +273F:5B23  3B C1                                cmp     ax,cx                   ; Found hotspot? +273F:5B25  74 02                                je      loc_1161                ; Jump if yes +273F:5B27  EB F5                                jmp     short loc_1160          ; Keep scanning +273F:5B29                       loc_1161: +273F:5B29  5E                                   pop     si +273F:5B2A  EB 13                                jmp     short loc_1163           +273F:5B2C                       loc_1162: +273F:5B2C  5E                                   pop     si                      ; Hotspot not found +273F:5B2D  A1 BA19                              mov     ax, use_hotspot_id +273F:5B30  E8 EA74                              call    hotspot_action_precheck +273F:5B33  0B C0                                or      ax,ax                   ; Zero ? +273F:5B35  74 08                                jz      loc_1163                ; Jump if zero +273F:5B37  3D 0003                              cmp     ax,3 +273F:5B3A  74 8A                                je      loc_ret_1154            ; Jump if equal +273F:5B3C  E9 FA42                              jmp     character_walking_end +273F:5B3F                       loc_1163:                                       ;  xref 273F:5B14, 5B2A, 5B35 +273F:5B3F  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:5B43  E8 EBA8                              call    character_face_hotspot +273F:5B46  53                                   push    bx +273F:5B47  E8 FA37                              call    character_walking_end +273F:5B4A  5B                                   pop     bx +273F:5B4B  E8 FAA8                              call    hotspot_get_action_sequence +273F:5B4E  79 03                                jns     loc_1164                ; Jump if not sign +273F:5B50  E9 085E                              jmp     display_message_dialog_3 +273F:5B53                       loc_1164:                                       ;  xref 273F:5B4E +273F:5B53  74 05                                jz      loc_1165                ; Jump if zero +273F:5B55  E8 E2DC                              call    sequence_execute +273F:5B58  75 16                                jnz     loc_ret_1167            ; Jump if not zero +273F:5B5A                       loc_1165:                                       ;  xref 273F:5B53, 5C1E +273F:5B5A úA1 BA1B                              mov     ax, active_hotspot_id +273F:5B5D  E8 B1C1                              call    get_room_resource_pointer3 +273F:5B60  8B 5C 06                             mov     bx, [si+HSH_DESC_2] +273F:5B63  0B DB                                or      bx, bx                  ; Zero ? +273F:5B65  75 03                                jnz     loc_1166                ; Jump if not zero +273F:5B67  8B 5C 04                             mov     bx, [si+HSH_DESC] +273F:5B6A                       loc_1166: +273F:5B6A  80 E7 1F                             and     bh, 1Fh +273F:5B6D  E9 2D4C                              jmp     display_dialog +273F:5B70                       loc_ret_1167:                                   ;  xref 273F:5B58, 5BA0, 5BCD, 5BDD +273F:5B70  C3                                   retn +                            look_at_proc        endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                                  give_proc     proc    near +273F:5B71  8B DD                                mov     bx,bp +273F:5B73  8B 47 02                             mov     ax, [bx+2] +273F:5B76  A3 BA1B                              mov     active_hotspot_id, ax +273F:5B79  8B 07                                mov     ax, [bx] +273F:5B7B  A3 BA19                              mov     use_hotspot_id, ax +273F:5B7E  83 C5 04                             add     bp, 4 +273F:5B81  56                                   push    si +273F:5B82  E8 B165                              call    get_room_resource_pointer2 +273F:5B85  5B                                   pop     bx +273F:5B86  87 DE                                xchg    bx,si +273F:5B88  8B 47 06                             mov     ax, [bx+HS_ROOM_NUM] +273F:5B8B  3B 45 1B                             cmp     ax, [di+ANIM_HOTSPOT_ID]; Is item in char's inventory? +273F:5B8E  74 03                                je      loc_1168                ; Jump if equal +273F:5B90  E9 0179                              jmp     loc_1187                ; (5D0C) +273F:5B93                       loc_1168:                                       ;  xref 273F:5B8E +273F:5B93  A1 BA1B                              mov     ax, active_hotspot_id +273F:5B96  E8 EA0E                              call    hotspot_action_precheck +273F:5B99  0B C0                                or      ax,ax                   ; Zero ? +273F:5B9B  74 08                                jz      loc_1169                ; Jump if zero +273F:5B9D  3D 0003                              cmp     ax,3 +273F:5BA0  74 CE                                je      loc_ret_1167            ; Jump if equal +273F:5BA2  E9 F9DC                              jmp     character_walking_end +273F:5BA5                       loc_1169:                                       ;  xref 273F:5B9B +273F:5BA5  53                                   push    bx +273F:5BA6  E8 F9D8                              call    character_walking_end +273F:5BA9  5B                                   pop     bx +273F:5BAA  E8 EB41                              call    character_face_hotspot +273F:5BAD  81 3E BA1B 0412                      cmp     active_hotspot_id, 412h +273F:5BB3  75 08                                jne     loc_1170                ; Jump if not equal +273F:5BB5  81 3E BA19 2710                      cmp     use_hotspot_id, 2710h +273F:5BBB  74 08                                je      loc_1171                ; Jump if equal +273F:5BBD                       loc_1170:                                       ;  xref 273F:5BB3 +273F:5BBD  53                                   push    bx +273F:5BBE  BB 0007                              mov     bx,7 +273F:5BC1  E8 07DE                              call    display_message_dialog_2 +273F:5BC4  5B                                   pop     bx +273F:5BC5                       loc_1171:                                       ;  xref 273F:5BBB +273F:5BC5  E8 FA2E                              call    hotspot_get_action_sequence +273F:5BC8  79 03                                jns     loc_1172                ; Jump if not sign +273F:5BCA  E9 07E4                              jmp     display_message_dialog_3 +273F:5BCD                       loc_1172:                                       ;  xref 273F:5BC8 +273F:5BCD  74 A1                                jz      loc_ret_1167            ; Jump if zero +273F:5BCF  E8 E262                              call    sequence_execute +273F:5BD2  3D 03E7                              cmp     ax,3E7h +273F:5BD5  75 03                                jne     loc_1173                ; Jump if not equal +273F:5BD7  E9 2DD6                              jmp     loc_1705                ; (89B0) +273F:5BDA                       loc_1173:                                       ;  xref 273F:5BD5 +273F:5BDA  3D 0001                              cmp     ax,1 +273F:5BDD  74 91                                je      loc_ret_1167            ; Jump if equal +273F:5BDF  73 13                                jnc     loc_1174                ; Jump if carry=0 +273F:5BE1  56                                   push    si +273F:5BE2  53                                   push    bx +273F:5BE3  A1 BA19                              mov     ax, use_hotspot_id +273F:5BE6  E8 B101                              call    get_room_resource_pointer2 +273F:5BE9  A1 BA1B                              mov     ax, active_hotspot_id +273F:5BEC  89 44 06                             mov     [si+6],ax +273F:5BEF  5B                                   pop     bx +273F:5BF0  5E                                   pop     si +273F:5BF1  E9 0171                              jmp     loc_1193                ; (5D65) +273F:5BF4                       loc_1174:                                       ;  xref 273F:5BDF +273F:5BF4  8B D8                                mov     bx,ax +273F:5BF6  8B 0E BA1B                           mov     cx, active_hotspot_id +273F:5BFA  8B 55 1B                             mov     dx, [di+ANIM_HOTSPOT_ID] +273F:5BFD  E9 0790                              jmp     display_message_dialog +                                  give_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                               examine_proc     proc    near +273F:5C00  8B DD                                mov     bx,bp +273F:5C02  8B 07                                mov     ax,[bx] +273F:5C04  A3 BA19                              mov     use_hotspot_id, ax +273F:5C07  A3 BA1B                              mov     active_hotspot_id, ax +273F:5C0A  83 C5 02                             add     bp,2 +273F:5C0D  56                                   push    si +273F:5C0E  E8 B0D9                              call    get_room_resource_pointer2 +273F:5C11  5B                                   pop     bx +273F:5C12  87 DE                                xchg    bx,si +273F:5C14  53                                   push    bx +273F:5C15  E8 F969                              call    character_walking_end +273F:5C18  5B                                   pop     bx +273F:5C19  E8 F9DA                              call    hotspot_get_action_sequence +273F:5C1C  75 03                                jnz     loc_1176                ; Jump if not zero +273F:5C1E                       loc_1175:                                       ;  xref 273F:5C24 +273F:5C1E  E9 FF39                              jmp     loc_1165                ; (5B5A) +273F:5C21                       loc_1176:                                       ;  xref 273F:5C1C +273F:5C21  E8 E210                              call    sequence_execute +273F:5C24  74 F8                                jz      loc_1175                ; Jump if zero + +273F:5C26                       loc_ret_1177:                                   ;  xref 273F:5C3E, 5C8A +273F:5C26  C3                                   retn +                               examine_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                bribe_proc      proc    near +273F:5C27  8B DD                                mov     bx,bp +273F:5C29  8B 07                                mov     ax,[bx] +273F:5C2B  A3 BA19                              mov     use_hotspot_id, ax +273F:5C2E  A3 BA1B                              mov     active_hotspot_id, ax +273F:5C31  83 C5 02                             add     bp,2 +273F:5C34  E8 E970                              call    hotspot_action_precheck +273F:5C37  0B C0                                or      ax,ax                   ; Zero ? +273F:5C39  74 08                                jz      loc_1178                ; Jump if zero +273F:5C3B  3D 0003                              cmp     ax,3 +273F:5C3E  74 E6                                je      loc_ret_1177            ; Jump if equal +273F:5C40  E9 F93E                              jmp     character_walking_end +273F:5C43                       loc_1178:                                       ;  xref 273F:5C39 +273F:5C43  B8 014B                              mov     ax,14Bh +273F:5C46  8B 16 BA1B                           mov     dx, active_hotspot_id +273F:5C4A  53                                   push    bx +273F:5C4B úBB 4AE6                              mov     bx, offset bribe_hotspot_list - 4 +273F:5C4E                       loc_1179:                                        +273F:5C4E  83 C3 04                             add     bx, 4                   ; Move to next entry +273F:5C51  F7 07 FFFF                           test    word ptr [bx],0FFFFh    ; End of list reached? +273F:5C55  74 12                                jz      loc_1180                ; Jump if yes +273F:5C57  3B 17                                cmp     dx, [bx]                ; Char Id found? +273F:5C59  75 F3                                jne     loc_1179                ; Keep scanning if not +273F:5C5B  8B 47 02                             mov     ax, [bx+2]              ; Get  +273F:5C5E  F6 C4 80                             test    ah, 80h +273F:5C61  74 06                                jz      loc_1180                ; Jump if zero +273F:5C63  80 E4 7F                             and     ah,7Fh +273F:5C66  E8 E1CB                              call    sequence_execute +273F:5C69                       loc_1180:                                       ;  xref 273F:5C55, 5C61 +273F:5C69  8B D0                                mov     dx,ax +273F:5C6B  BB 03E8                              mov     bx, PLAYER_HOTSPOT_ID +273F:5C6E  8B 0E BA1B                           mov     cx, active_hotspot_id +273F:5C72  E8 04A7                              call    talk_setup +273F:5C75  5B                                   pop     bx +273F:5C76  E8 EA75                              call    character_face_hotspot +273F:5C79  53                                   push    bx +273F:5C7A  E8 F904                              call    character_walking_end +273F:5C7D  5B                                   pop     bx +273F:5C7E  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:5C82  E8 F971                              call    hotspot_get_action_sequence +273F:5C85  74 05                                jz      loc_1181                ; Jump if zero +273F:5C87  E8 E1AA                              call    sequence_execute +273F:5C8A  75 9A                                jnz     loc_ret_1177            ; Jump if not zero +273F:5C8C                       loc_1181:                                       ;  xref 273F:5C85 +273F:5C8C  BA 03E8                              mov     dx, PLAYER_HOTSPOT_ID +273F:5C8F  8B 0E BA19                           mov     cx, use_hotspot_id +273F:5C93  BB 0029                              mov     bx, 29h +273F:5C96  83 3E BA3B 06                        cmp     talk_record_index, 6 +273F:5C9B  75 03                                jne     loc_1182                ; Jump if not equal +273F:5C9D úBB 0030                              mov     bx, 30h   +273F:5CA0                       loc_1182:                                       ;  xref 273F:5C9B +273F:5CA0  E9 06ED                              jmp     display_message_dialog +                                bribe_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                  ask_proc      proc    near +273F:5CA3  8B DD                                mov     bx,bp +273F:5CA5  8B 47 02                             mov     ax,[bx+2] +273F:5CA8  A3 BA19                              mov     use_hotspot_id, ax +273F:5CAB  8B 07                                mov     ax,[bx] +273F:5CAD  A3 BA1B                              mov     active_hotspot_id, ax +273F:5CB0  83 C5 04                             add     bp,4 +273F:5CB3  E8 E8F1                              call    hotspot_action_precheck +273F:5CB6  0B C0                                or      ax,ax                   ; Zero ? +273F:5CB8  74 08                                jz      loc_1183                ; Jump if zero +273F:5CBA  3D 0003                              cmp     ax,3 +273F:5CBD  74 4C                                je      loc_ret_1186            ; Jump if equal +273F:5CBF  E9 F8BF                              jmp     character_walking_end +273F:5CC2                       loc_1183:                                       ;  xref 273F:5CB8 +273F:5CC2  53                                   push    bx +273F:5CC3  E8 F8C7                              call    character_walking_end_2 +273F:5CC6  5B                                   pop     bx +273F:5CC7  E8 EA24                              call    character_face_hotspot +273F:5CCA  BB 0009                              mov     bx,9 +273F:5CCD  E8 06D2                              call    display_message_dialog_2 +273F:5CD0  E8 F923                              call    hotspot_get_action_sequence +273F:5CD3  78 0C                                js      loc_1184                ; Jump if sign=1 +273F:5CD5  74 34                                jz      loc_ret_1186            ; Jump if zero +273F:5CD7  E8 E15A                              call    sequence_execute +273F:5CDA  74 11                                jz      loc_1185                ; Jump if zero +273F:5CDC  3D 0001                              cmp     ax,1 +273F:5CDF  74 2A                                je      loc_ret_1186            ; Jump if equal +273F:5CE1                       loc_1184:                                       ;  xref 273F:5CD3 +273F:5CE1  8B 0E BA1B                           mov     cx, active_hotspot_id +273F:5CE5  8B 55 1B                             mov     dx,[di+1Bh] +273F:5CE8  8B D8                                mov     bx,ax +273F:5CEA  E9 06A3                              jmp     display_message_dialog +273F:5CED                       loc_1185:                                       ;  xref 273F:5CDA +273F:5CED  56                                   push    si +273F:5CEE  A1 BA19                              mov     ax, use_hotspot_id +273F:5CF1  E8 AFF6                              call    get_room_resource_pointer2 +273F:5CF4  8B 4D 1B                             mov     cx,[di+1Bh] +273F:5CF7  89 4C 06                             mov     [si+6],cx +273F:5CFA  5E                                   pop     si +273F:5CFB  E8 005B                              call    player_inc_inventory_items +273F:5CFE  BB 0020                              mov     bx,20h +273F:5D01  8B 0E BA1B                           mov     cx, active_hotspot_id +273F:5D05  8B 55 1B                             mov     dx,[di+1Bh] +273F:5D08  E9 0685                              jmp     display_message_dialog + +273F:5D0B                       loc_ret_1186:                                   ;  xref 273F:5CBD, 5CD5, 5CDF +273F:5D0B  C3                                   retn +                                  ask_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              JUMP POINT +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +273F:5D0C                       loc_1187:                                       ;  xref 273F:5AC7, 5B90, 5D2F +273F:5D0C  B8 000F                              mov     ax, 0Fh                 ; "What???" +273F:5D0F  E8 069F                              call    display_message_dialog_3 +273F:5D12  E9 F86C                              jmp     character_walking_end + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                               drink_proc       proc    near +273F:5D15  8B DD                                mov     bx,bp +273F:5D17  8B 07                                mov     ax,[bx] +273F:5D19  83 C5 02                             add     bp,2 +273F:5D1C  A3 BA19                              mov     use_hotspot_id, ax +273F:5D1F  A3 BA1B                              mov     active_hotspot_id, ax +273F:5D22  56                                   push    si +273F:5D23  E8 AFC4                              call    get_room_resource_pointer2 +273F:5D26  5B                                   pop     bx +273F:5D27  87 DE                                xchg    bx,si +273F:5D29  8B 45 1B                             mov     ax,[di+ANIM_HOTSPOT_ID] ; Validate item is in +273F:5D2C  3B 47 06                             cmp     ax,[bx+HS_ROOM_NUM]     ; character's inventory +273F:5D2F  75 DB                                jne     loc_1187                ; Jump if not equal +273F:5D31  53                                   push    bx +273F:5D32  E8 F84C                              call    character_walking_end +273F:5D35  5B                                   pop     bx +273F:5D36  E8 F8BD                              call    hotspot_get_action_sequence +273F:5D39  79 03                                jns     loc_1188                ; Jump if not sign +273F:5D3B  E9 0673                              jmp     display_message_dialog_3 +273F:5D3E                       loc_1188:                                       ;  xref 273F:5D39 +273F:5D3E  74 13                                jz      loc_1191                ; Jump if zero +273F:5D40  E8 E0F1                              call    sequence_execute +273F:5D43  74 08                                jz      loc_1189                ; Jump if zero +273F:5D45  3D 0001                              cmp     ax,1 +273F:5D48  74 08                                je      loc_ret_1190            ; Jump if equal +273F:5D4A  E9 0664                              jmp     display_message_dialog_3 +273F:5D4D                       loc_1189:                                       ;  xref 273F:5D43 +273F:5D4D  C7 47 06 0000                        mov     word ptr [bx+HS_ROOM_NUM], 0 + +273F:5D52                       loc_ret_1190:                                   ;  xref 273F:5D48 +273F:5D52  C3                                   retn +273F:5D53                       loc_1191:                                       ;  xref 273F:5D3E +273F:5D53  B8 0016                              mov     ax,16h +273F:5D56  E9 0658                              jmp     display_message_dialog_3 +                               drink_proc       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:5436, 5CFB +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                 player_inc_inventory_items     proc    near +273F:5D59  81 FE 6CEF                           cmp     si, offset player_hotspot_rec +273F:5D5D  75 05                                jne     loc_ret_1192            ; Jump if not equal +273F:5D5F  80 06 9835 01                        add     num_inventory_items, 1 +273F:5D64                       loc_ret_1192:                                   ;  xref 273F:5D5D, 5D69, 5DB4 +273F:5D64  C3                                   retn +                 player_inc_inventory_items     proc    near + + +273F:5D65                       loc_1193:                                       ;  xref 273F:5BF1 +273F:5D65 ú81 FE 6CEF                           cmp     si, offset player_hotspot_rec +273F:5D69  75 F9                                jne     loc_ret_1192            ; Jump if not equal +273F:5D6B  80 2E 9835 01                        sub     num_inventory_items, 1 + +273F:5D70                       loc_ret_1194:                                   ;  xref 273F:5D8B +273F:5D70  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                        npc_dispatch_action     proc    near                                                                 +273F:5D71  8B DD                                mov     bx,bp +273F:5D73  8B 07                                mov     ax,[bx] +273F:5D75  83 C5 04                             add     bp,4 +273F:5D78  A3 BA19                              mov     use_hotspot_id, ax +273F:5D7B  A3 BA1B                              mov     active_hotspot_id, ax +273F:5D7E  E8 E826                              call    hotspot_action_precheck +273F:5D81  0B C0                                or      ax,ax                   ; Zero ? +273F:5D83  75 03                                jnz     loc_1195                ; Jump if not zero +273F:5D85  E9 F7F9                              jmp     character_walking_end +273F:5D88                       loc_1195:                                       ;  xref 273F:5D83 +273F:5D88  3D 0003                              cmp     ax, 3                   ; Initial state? +273F:5D8B  74 E3                                je      loc_ret_1194            ; Exit if yes +273F:5D8D  8B DD                                mov     bx,bp +273F:5D8F  8B 47 FE                             mov     ax,[bx-2] +273F:5D92  8B DE                                mov     bx,si +273F:5D94  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5D97  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5D9A  89 47 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], ax +273F:5D9D  E9 E41E                              jmp     action_dispatch +                        npc_dispatch_action     endp                                                                 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                              npc_unknown_3     proc    near +273F:5DA0  8B DD                                mov     bx,bp +273F:5DA2  8B 07                                mov     ax,[bx] +273F:5DA4  A3 BA19                              mov     use_hotspot_id, ax +273F:5DA7  A3 BA1B                              mov     active_hotspot_id, ax +273F:5DAA  E8 E7FA                              call    hotspot_action_precheck +273F:5DAD  0B C0                                or      ax,ax                   ; Zero ? +273F:5DAF  74 0B                                jz      loc_1196                ; Jump if zero +273F:5DB1  3D 0003                              cmp     ax,3 +273F:5DB4  74 AE                                je      loc_ret_1192            ; Jump if equal +273F:5DB6  83 C5 0A                             add     bp,0Ah +273F:5DB9  E9 F7C5                              jmp     character_walking_end +273F:5DBC                       loc_1196:                                       ;  xref 273F:5DAF +273F:5DBC  A1 BA1B                              mov     ax, active_hotspot_id +273F:5DBF  56                                   push    si +273F:5DC0  E8 AF27                              call    get_room_resource_pointer2 +273F:5DC3  5B                                   pop     bx +273F:5DC4  87 DE                                xchg    bx,si +273F:5DC6  F7 47 37 FFFF                        test    word ptr [bx+HS_TALK_COUNTDOWN], 0FFFFh +273F:5DCB  75 36                                jnz     loc_ret_1199            ; Jump if not zero +273F:5DCD  83 C5 02                             add     bp, 2 +273F:5DD0  8B DD                                mov     bx, bp +273F:5DD2  8B 17                                mov     dx, [bx]                ; Get param #2 +273F:5DD4  0B D2                                or      dx, dx                  ; Zero ? +273F:5DD6  74 11                                jz      loc_1197                ; Jump if zero +273F:5DD8  8B 4F FE                             mov     cx, [bx-2] +273F:5DDB  53                                   push    bx +273F:5DDC  E8 0350                              call    talk_setup_3                 ; (612F) +273F:5DDF  5B                                   pop     bx +273F:5DE0  8B 47 02                             mov     ax, [bx+2] +273F:5DE3  01 44 42                             add     [si+HS_V42], ax +273F:5DE6  01 44 37                             add     [si+HS_TALK_COUNTDOWN], ax +273F:5DE9                       loc_1197:                                       ;  xref 273F:5DD6 +273F:5DE9  83 C3 04                             add     bx, 4 +273F:5DEC  8B 17                                mov     dx, [bx]                ; Param #4 +273F:5DEE  0B D2                                or      dx, dx                  ; Zero ? +273F:5DF0  74 0B                                jz      loc_1198                ; Jump if zero +273F:5DF2  8B 5F FA                             mov     bx, [bx-6]              ; Param #1 +273F:5DF5  8B 4D 1B                             mov     cx, [di+ANIM_HOTSPOT_ID] +273F:5DF8  56                                   push    si +273F:5DF9  E8 032E                              call    talk_setup_2 +273F:5DFC  5E                                   pop     si +273F:5DFD                       loc_1198: +273F:5DFD  83 C5 08                             add     bp, 8 +273F:5E00  E9 F77E                              jmp     character_walking_end + +273F:5E03                       loc_ret_1199: +273F:5E03  C3                                   retn +                              npc_unknown_4     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                              npc_unknown_4     proc    near +273F:5E04  8B DD                                mov     bx,bp +273F:5E06  8B 47 02                             mov     ax, [bx+2] +273F:5E09  89 44 42                             mov     [si+HS_V42], ax +273F:5E0C  C6 44 44 03                          mov     byte ptr [si+HS_V44], 3 +273F:5E10  83 C5 04                             add     bp, 4 +273F:5E13  E9 F76B                              jmp     character_walking_end +                              npc_unknown_4     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                          npc_start_talking     proc    near +273F:5E16  8B DE                                mov     bx, si +273F:5E18  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5E1B  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5E1E  83 47 01 06                          add     word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 6 +273F:5E22  8B DD                                mov     bx, bp +273F:5E24  8B 17                                mov     dx, [bx] +273F:5E26  8B 47 02                             mov     ax, [bx+2] +273F:5E29  8B 5D 1B                             mov     bx, [di+ANIM_HOTSPOT_ID] +273F:5E2C  B9 03E7                              mov     cx,3E7h +273F:5E2F  E9 0319                              jmp     talk_converse +                          npc_start_talking     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                        npc_jump_to_address     proc    near +273F:5E32  8B DE                                mov     bx,si +273F:5E34  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5E37  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5E3A  83 47 01 04                          add     word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 4 +273F:5E3E  8B DD                                mov     bx,bp +273F:5E40  8B 07                                mov     ax,[bx]                 ; Load address +273F:5E42  FF E0                                jmp     ax                      ; Jump to it +                        npc_jump_to_address     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; This method is the tick handler proc for the player, and gets +                                ; called once every frame +                                ; di = animation slot entry, si = hotspot resource +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                            player_tick_proc    proc    near + +273F:5E44  8B DE                                mov     bx, si +273F:5E46  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:5E49  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:5E4C  E8 0329                              call    talk_countdown_handler +273F:5E4F  F7 44 1F FFFF                        test    word ptr [si+HS_FRAME_CTR], 0FFFFh +273F:5E54  74 0B                                jz      loc_1200                ; Jump if zero +273F:5E56  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:5E5C  83 6C 1F 01                          sub     word ptr [si+HS_FRAME_CTR],1 +273F:5E60  C3                                   retn +273F:5E61                       loc_1200: +273F:5E61  E8 B2A7                              call    character_find_impinging_chars +273F:5E64  F6 45 1D FF                          test    byte ptr [di+ANIM_LAYER1_SKIP], 0FFh +273F:5E68  74 13                                jz      loc_1202                ; Jump if zero +273F:5E6A  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:5E70  F7 06 10BE FFFF                      test    num_impinging_chars, 0FFFFh +273F:5E76  74 01                                jz      loc_1201                ; Jump if zero +273F:5E78  C3                                   retn +273F:5E79                       loc_1201:                                       ;  xref 273F:5E76 +273F:5E79  C6 45 1D 00                          mov     byte ptr [di+ANIM_LAYER1_SKIP], 0 +273F:5E7D                       loc_1202:                                       ;  xref 273F:5E68 +273F:5E7D  8B 44 58                             mov     ax, [si+HS_V58] +273F:5E80  0B C0                                or      ax, ax                  ; Zero ? +273F:5E82  74 19                                jz      loc_1203                ; Jump if zero +273F:5E84  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:5E8A  C7 44 58 0000                        mov     word ptr [si+HS_V58], 0 +273F:5E8F  56                                   push    si +273F:5E90  E8 AE57                              call    get_room_resource_pointer2 +273F:5E93  80 7C 44 07                          cmp     byte ptr [si+HS_V44], 7 +273F:5E97  5E                                   pop     si +273F:5E98  74 03                                jz      loc_1203 +273F:5E9A  C6 07 00                             mov     byte ptr [bx], 0        ; Reset action + +273F:5E9D                       loc_1203:                                        +273F:5E9D  F7 44 4A FFFF                        test    word ptr [si+HS_V4A], 0FFFFh +273F:5EA2  74 27                                jz      loc_1205                ; Jump if zero +273F:5EA4  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:5EAA  E8 E4B9                              call    character_update_movement +273F:5EAD  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:5EB0  E8 F09F                              call    pathfind_reset +273F:5EB3  83 7C 4A 01                          cmp     word ptr [si+HS_V4A], 1 +273F:5EB7  75 0F                                jne     loc_1204                ; Jump if not equal +273F:5EB9  C7 44 4A 0000                        mov     word ptr [si+HS_V4A], 0 +273F:5EBE  F6 44 44 FF                          test    byte ptr [si+HS_V44], 0FFh +273F:5EC2  75 07                                jnz     loc_1205                ; Jump if not zero +273F:5EC4  E8 E4C0                              call    character_pathfind_clear +273F:5EC7  C3                                   retn +273F:5EC8                       loc_1204:                                       ;  xref 273F:5EB7 +273F:5EC8  E9 E695                              jmp     loc_869                 ; (4560) +273F:5ECB                       loc_1205:                                       ;  xref 273F:5EA2, 5EC2 +273F:5ECB  8A 44 44                             mov     al, [si+HS_V44] +273F:5ECE  0A C0                                or      al, al +273F:5ED0  74 44                                jz      loc_1208                ; Jump if not +273F:5ED2  3C 02                                cmp     al,2 +273F:5ED4  74 40                                je      loc_1208                ; Jump if equal +273F:5ED6  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:5EDC  F7 44 42 FFFF                        test    word ptr [si+HS_V42], 0FFFFh +273F:5EE1  74 0E                                jz      loc_1206                ; Jump if zero +273F:5EE3  E8 E480                              call    character_update_movement +273F:5EE6  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:5EE9  E8 F066                              call    pathfind_reset +273F:5EEC  83 6C 42 01                          sub     word ptr [si+HS_V42], 1 +273F:5EF0  C3                                   retn +273F:5EF1                       loc_1206:                                       ;  xref 273F:5EE1 +273F:5EF1  E8 E493                              call    character_pathfind_clear +273F:5EF4  C6 44 44 00                          mov     byte ptr [si+HS_V44], 0 +273F:5EF8  F6 44 FF FF                          test    byte ptr [si-1],0FFh +273F:5EFC  74 17                                jz      loc_ret_1207            ; Jump if zero +273F:5EFE  C6 44 FF 00                          mov     byte ptr [si-1],0 +273F:5F02  8B 44 FB                             mov     ax,[si-5] +273F:5F05  89 44 54                             mov     [si+HS_DEST_X], ax +273F:5F08  8B 44 FD                             mov     ax,[si-3] +273F:5F0B  89 44 56                             mov     [si+HS_DEST_Y], ax +273F:5F0E  C6 07 01                             mov     byte ptr [bx], CHAR_ACTION_START_WALK +273F:5F11  C6 45 27 00                          mov     byte ptr [di+ANIM_UNKNOWN1], 0 + +273F:5F15                       loc_ret_1207:                                   ;  xref 273F:5EFC +273F:5F15  C3                                   retn + +273F:5F16                       loc_1208:                                       ;  xref 273F:5ED0, 5ED4 +273F:5F16  B0 02                                mov     al, 2 +273F:5F18  8A 27                                mov     ah, [bx] +273F:5F1A  F6 C4 FF                             test    ah, 0FFh +273F:5F1D  75 08                                jnz     loc_1209                ; Jump if not zero +273F:5F1F  C7 44 52 0000                        mov     [si+HS_DEST_HOTSPOT], 0 +273F:5F24  E9 E43C                              jmp     character_update_movement_2 + +273F:5F27                       loc_1209: +273F:5F27  C7 06 F010 0000                      mov     timer_ticks, 0 +273F:5F2D  80 FC 05                             cmp     ah, CHAR_ACTION_CONTINUE_WALK +273F:5F30  74 13                                je      loc_1211                ; Jump if equal +273F:5F32  80 FC 03                             cmp     ah, CHAR_ACTION_EXEC_SCRIPT +273F:5F35  74 11                                je      loc_1212                ; Jump if equal +273F:5F37  80 FC 01                             cmp     ah, CHAR_ACTION_START_WALK +273F:5F3A  74 17                                je      loc_1213                ; Jump if equal +273F:5F3C  80 FC 04                             cmp     ah, CHAR_ACTION_PROCESSING_PATH +273F:5F3F  74 1E                                je      loc_1214                ; Jump if equal +273F:5F41  E8 E27A                              call    action_dispatch + +273F:5F44                       loc_ret_1210:                                   ;  xref 273F:5F4D +273F:5F44  C3                                   retn +273F:5F45                       loc_1211:                                       ;  xref 273F:5F30 +273F:5F45  E9 00A3                              jmp     loc_1219                ; (5FEB) +273F:5F48                       loc_1212:                                       ;  xref 273F:5F35 +273F:5F48  E8 B05E                              call    hotspot_script_execute +273F:5F4B  0B C0                                or      ax,ax                   ; Zero ? +273F:5F4D  75 F5                                jnz     loc_ret_1210            ; Jump if not zero +273F:5F4F  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:5F52  C3                                   retn + +; Code below is responsible for starting the player walking + +273F:5F53                       loc_1213:                                       ;  xref 273F:5F3A +273F:5F53  B8 03E8                              mov     ax, PLAYER_HOTSPOT_ID +273F:5F56  E8 EFF9                              call    pathfind_reset +273F:5F59  C6 07 04                             mov     byte ptr [bx], CHAR_ACTION_PROCESSING_PATH +273F:5F5C  E8 E428                              call    character_pathfind_clear + +; Jump point here calculates one sequence of the path finding required to get +; the player to a given destination + +273F:5F5F                       loc_1214:                                       ;  xref 273F:5F3F +273F:5F5F  C6 44 44 00                          mov     byte ptr [si+HS_V44], 0 +273F:5F63  E8 E5FA                              call    sub_105                 ; (4560) +273F:5F66  8B 4C 54                             mov     cx, [si+HS_DEST_X] +273F:5F69  8B 54 56                             mov     dx, [si+HS_DEST_Y] +273F:5F6C  53                                   push    bx +273F:5F6D  56                                   push    si +273F:5F6E  57                                   push    di +273F:5F6F  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:5F72  8B D9                                mov     bx,cx +273F:5F74  8B CA                                mov     cx,dx +273F:5F76  8A 54 4C                             mov     dl, [si+HS_V4C] +273F:5F79  E8 EA7A                              call    character_pathfind +273F:5F7C  8B D3                                mov     dx,bx +273F:5F7E  5F                                   pop     di +273F:5F7F  5E                                   pop     si +273F:5F80  5B                                   pop     bx +273F:5F81  0B C0                                or      ax,ax                   ; Zero ? +273F:5F83  75 01                                jnz     loc_1215                ; Jump if not zero +273F:5F85  C3                                   retn + +; The code below gets jumped to when the final segment of pathfinding is +; complete. + +273F:5F86                       loc_1215: +273F:5F86  3D 0001                              cmp     ax, 1 +273F:5F89  74 42                                je      loc_1218                ; Immediate translate +273F:5F8B  F6 45 27 01                          test    byte ptr [di+ANIM_UNKNOWN1], 1 +273F:5F8F  75 05                                jnz     loc_1216                ; Jump if not zero +273F:5F91  3D 0002                              cmp     ax, 2 +273F:5F94  74 37                                je      loc_1218                ; Jump to translate +273F:5F96                       loc_1216:                                       ;  xref 273F:5F8F +273F:5F96  F6 44 4C FF                          test    byte ptr [si+HS_V4C], 0FFh +273F:5F9A  74 31                                jz      loc_1218                ; Jump if zero +273F:5F9C  80 7C 4C 02                          cmp     byte ptr [si+HS_V4C], 2 +273F:5FA0  74 17                                je      loc_1217                ; Jump if equal +273F:5FA2  C6 44 FF 01                          mov     byte ptr [si-1], 1 +273F:5FA6  8B 44 54                             mov     ax, [si+HS_DEST_X] +273F:5FA9  89 44 FB                             mov     [si-5], ax +273F:5FAC  8B 44 56                             mov     ax, [si+HS_DEST_Y] +273F:5FAF  89 44 FD                             mov     [si-3], ax +273F:5FB2  80 44 4C 01                          add     byte ptr [si+HS_V4C], 1 +273F:5FB6  E9 F6AD                              jmp     sub_133 +273F:5FB9                       loc_1217:                                       ;  xref 273F:5FA0 +273F:5FB9  E8 E485                              call    sub_97                  ; (4441) +273F:5FBC  C6 44 4C 00                          mov     byte ptr [si+HS_V4C], 0 +273F:5FC0  C6 07 00                             mov     byte ptr [bx], 0 +273F:5FC3  C6 44 44 06                          mov     byte ptr [si+HS_V44], 6 +273F:5FC7  C7 44 42 0007                        mov     word ptr [si+HS_V42], 7 +273F:5FCC  C3                                   retn + +273F:5FCD                       loc_1218:                                       ; dx => movement data +273F:5FCD  C6 44 4C 00                          mov     byte ptr [si+HS_V44], 0 +273F:5FD1  8B C3                                mov     ax, bx +273F:5FD3  8B DA                                mov     bx, dx +273F:5FD5  8B 0F                                mov     cx, [bx] +273F:5FD7  8B D8                                mov     bx, ax +273F:5FD9  0B C9                                or      cx, cx                  ; Zero ? +273F:5FDB  74 56                                jz      loc_1223                ; Jump if zero +273F:5FDD  C6 07 05                             mov     byte ptr [bx], CHAR_ACTION_CONTINUE_WALK +273F:5FE0  E8 E22A                              call    character_translate_movements +273F:5FE3  83 65 02 F8                          and     [di+ANIM_Y], 0FFF8h +273F:5FE7  83 64 0F F8                          and     [si+HS_Y], 0FFF8h + +; The buffer pointed to by HS[HS_MOVEMENT_SRC_OFFSET] now contains a set of +; direction numbers and steps necessary to get the player to the destination +; they've clicked on + +; Code jumps to this point to handle the continual walking + +273F:5FEB                       loc_1219: +273F:5FEB  8B 44 52                             mov     ax, [si+HS_DEST_HOTSPOT] +273F:5FEE  0B C0                                or      ax,ax                   ; Walking to a room exit hotspot: +273F:5FF0  74 17                                jz      loc_1221                ; No, straight walking +273F:5FF2  3D FFFF                              cmp     ax, 0FFFFh +273F:5FF5  74 12                                je      loc_1221 +273F:5FF7  56                                   push    si +273F:5FF8  53                                   push    bx +273F:5FF9  E8 11F2                              call    room_exit_hs_get_pointer +273F:5FFC  8A 44 0C                             mov     al, [si+REHS_EXIT_BLOCKED] +273F:5FFF  5B                                   pop     bx +273F:6000  5E                                   pop     si +273F:6001  0A C0                                or      al, al                  ; Is exit now blocked? +273F:6003  74 04                                jz      loc_1221                ; Keep walking if not +273F:6005  C6 07 00                             mov     byte ptr [bx], 0        ; Stop the player walking + +273F:6008                       loc_ret_1220:                                   ;  xref 273F:600E +273F:6008  C3                                   retn +273F:6009                       loc_1221:                                       ;  xref 273F:5FF0, 5FF5, 6003 +273F:6009  E8 B1A9                              call    sub_41                  ; (11B5) +273F:600C  0B C0                                or      ax,ax                   ; Zero ? +273F:600E  75 F8                                jnz     loc_ret_1220            ; Jump if not zero +273F:6010  E8 AE9D                              call    character_update_frame +273F:6013  0A C0                                or      al, al                  ; Zero ? +273F:6015  74 1F                                jz      loc_1224                ; Jump if zero +273F:6017  80 3E 9834 04                        cmp     cursor_state, CURSORSTATE_4 +273F:601C  75 05                                jne     loc_1222                ; Jump if not equal +273F:601E  C6 06 9834 00                        mov     cursor_state, CURSORSTATE_NONE +273F:6023                       loc_1222:                                       ;  xref 273F:601C +273F:6023  F6 44 FF FF                          test    byte ptr [si-1], 0FFh +273F:6027  74 0A                                jz      loc_1223                ; Jump if zero +273F:6029  C6 44 44 06                          mov     byte ptr [si+HS_V44], 6 +273F:602D  C7 44 42 000F                        mov     word ptr [si+HS_V42], 0Fh +273F:6032  C3                                   retn +273F:6033                       loc_1223:                                       ;  xref 273F:5FDB, 6027 +273F:6033  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:6036                       loc_1224:                                       ;  xref 273F:6015 +273F:6036  E9 E24F                              jmp     character_check_room_change + +                            player_tick_proc    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4313 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6039                       sub_136         proc    near +273F:6039  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:603C  E8 E46A                              call    check_for_impinging_characters +273F:603F  75 30                                jnz     loc_1225                ; Character found +273F:6041  8B DE                                mov     bx, si +273F:6043  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:6046  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:6049  C6 44 FF 01                          mov     byte ptr [si-1], 1 +273F:604D  8B 44 54                             mov     ax, [si+HS_DEST_X] +273F:6050  89 44 FB                             mov     [si-5], ax +273F:6053  8B 44 56                             mov     ax,[si+HS_DEST_Y] +273F:6056  89 44 FD                             mov     [si-3], ax +273F:6059  C6 06 9834 04                        mov     cursor_state, CURSORSTATE_4 +273F:605E  C6 44 2A 00                          mov     byte ptr [si+2Ah], 0 +273F:6062  80 44 4C 01                          add     byte ptr [si+4Ch], 1 +273F:6066  C7 44 52 0000                        mov     word ptr [si+HS_DEST_HOTSPOT], 0 +273F:606B  E8 F5F8                              call    character_set_random_dest +273F:606E  33 C0                                xor     ax, ax                  ; Zero register +273F:6070  C3                                   retn +273F:6071                       loc_1225:                                       ;  xref 273F:603F +273F:6071  0D 0001                              or      ax, 1 + +273F:6074                       loc_ret_1226:                                   ;  xref 273F:60D3 +273F:6074  C3                                   retn +                                sub_136         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:006E +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       player_change_room       proc    near +273F:6075 úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:6078  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] ; Get player anim rec +273F:607B  C6 45 1D 2A                          mov     byte ptr [di+ANIM_LAYER1_SKIP], 2Ah +273F:607F  8B DE                                mov     bx, si +273F:6081  03 5F 61                             add     bx, [bx+HS_ACTION_OFFSET] +273F:6084  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:6087  C6 07 00                             mov     byte ptr [bx], CHAR_ACTION_NONE +273F:608A  A1 9832                              mov     ax, room_number +273F:608D  89 45 0E                             mov     [di+ANIM_ROOM_NUM], ax  ; Set player's room # +273F:6090  89 44 06                             mov     [si+HS_ROOM_NUM], ax +273F:6093  A1 982E                              mov     ax, new_room_x          ; Set x position +273F:6096  24 F8                                and     al, 0F8h +273F:6098  0C 05                                or      al, 5 +273F:609A  89 05                                mov     [di+ANIM_X], ax +273F:609C  89 44 0D                             mov     [si+HS_X], ax +273F:609F  A1 9830                              mov     ax, new_room_y          ; Set y position +273F:60A2  25 FFF8                              and     ax, 0FFF8h +273F:60A5  89 45 02                             mov     [di+ANIM_Y], ax +273F:60A8  89 44 0F                             mov     [si+HS_Y], ax +273F:60AB  C7 06 982C 0000                      mov     new_room_number_2, 0 +273F:60B1  8B 5D 0E                             mov     bx, [di+ANIM_ROOM_NUM] +273F:60B4  56                                   push    si +273F:60B5  E8 1B53                              call    hotspot_enable +273F:60B8  5E                                   pop     si +273F:60B9  8B 4C 50                             mov     cx, [si+HS_DIRECTION] +273F:60BC  C7 44 50 0000                        mov     word ptr [si+HS_DIRECTION], 0 +273F:60C1  F6 C1 80                             test    cl, DIR_UP +273F:60C4  75 12                                jnz     loc_1227                ; Jump if not zero +273F:60C6  F6 C1 40                             test    cl, DIR_DOWN +273F:60C9  75 13                                jnz     loc_1229                ; Jump if not zero +273F:60CB  F6 C1 20                             test    cl, DIR_LEFT +273F:60CE  75 0B                                jnz     loc_1228                ; Jump if not zero +273F:60D0  F6 C1 10                             test    cl, DIR_RIGHT +273F:60D3  74 9F                                jz      loc_ret_1226            ; Jump if zero +273F:60D5  E9 E434                              jmp     char_face_right +273F:60D8                       loc_1227:                                       ;  xref 273F:60C4 +273F:60D8  E9 E3FE                              jmp     char_face_up +273F:60DB                       loc_1228:                                       ;  xref 273F:60CE +273F:60DB  E9 E41D                              jmp     char_face_left +273F:60DE                       loc_1229:                                       ;  xref 273F:60C9 +273F:60DE  E9 E409                              jmp     char_face_down +                       player_change_room       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:00A6 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:60E1                       sub_138         proc    near +273F:60E1                       loc_1230:                                       ;  xref 273F:6106 +273F:60E1 úBF B14E                              mov     di, offset animation_table +273F:60E4  BE 6CEF                              mov     si, offset player_hotspot_rec +273F:60E7  E8 B021                              call    character_find_impinging_chars +273F:60EA  F7 06 10BE FFFF                      test    num_impinging_chars, 0FFFFh          +273F:60F0  74 16                                jz      loc_ret_1231            ; Jump if zero +273F:60F2  FF 36 6D06                           push    data_900                ; (31E4:6D06=5E44h) +273F:60F6  C7 06 6D06 41BD                      mov     data_900,41BDh          ; (31E4:6D06=5E44h) +273F:60FC  E8 E311                              call    sub_96                  ; (4410) +273F:60FF  E8 E094                              call    animation_tick +273F:6102  8F 06 6D06                           pop     data_900                ; (31E4:6D06=5E44h) +273F:6106  EB D9                                jmp     short loc_1230          ; (60E1) + +273F:6108                       loc_ret_1231:                                   ;  xref 273F:60F0 +273F:6108  C3                                   retn +                                sub_138         endp + +273F:6109  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8132 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:610A                       sub_139         proc    near +273F:610A  B0 01                                mov     al, 1 +273F:610C  8B D1                                mov     dx, cx +273F:610E  B9 03E7                              mov     cx, 3E7h +273F:6111  EB 38                                jmp     talk_converse +                                sub_139         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6113  B8 0001                              mov     ax,1 +273F:6116  EB 33                                jmp     talk_converse + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx=talking char Id, cx=talk to char Id, dx=string Id +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                               seq_converse     proc    near +273F:6118  32 C0                                xor     al, al +273F:611A  EB 2F                                jmp     talk_converse +                               seq_converse     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:611C                        talk_setup: +273F:611C  EB 0C                                jmp     talk_setup_2 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:611E  32 C0                                xor     al,al                   ; Zero register +273F:6120  8B D3                                mov     dx,bx +273F:6122  BB 03E8                              mov     bx, PLAYER_HOTSPOT_ID +273F:6125  B9 03E7                              mov     cx,3E7h +273F:6128  EB 21                                jmp     short talk_converse + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:5DF9 + +273F:612A                  talk_setup_2: +273F:612A  51                                   push    cx +273F:612B  E8 ABBA                              call    get_room_resource_pointer +273F:612E  59                                   pop     cx + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:5DDC, 8C43, 8C8F, 8D33 + +                           talk_setup_3: +273F:612F ú89 54 3C                             mov     [si+HS_RESPONSE_ID], dx +273F:6132  89 4C 39                             mov     [si+HS_TALK_CHAR_ID], cx +273F:6135  C7 44 37 0028                        mov     word ptr [si+37h], 28h +273F:613A  56                                   push    si +273F:613B  8B D9                                mov     bx,cx +273F:613D  E8 ABA8                              call    get_room_resource_pointer ; Get char talking to +273F:6140  5B                                   pop     bx +273F:6141  87 DE                                xchg    bx, si                  ; bx=character talking to +273F:6143  8B 47 37                             mov     ax, [bx+HS_TALK_COUNTDOWN] +273F:6146  01 44 37                             add     [si+HS_TALK_COUNTDOWN], ax +273F:6149  EB 16                                jmp     short loc_1236 + +; bx=talking char Id, cx=talking to char Id, dx=string Id, ax=??? +273F:614B                 talk_converse: +273F:614B  50                                   push    ax +273F:614C  51                                   push    cx +273F:614D  E8 AB98                              call    get_room_resource_pointer +273F:6150  59                                   pop     cx +273F:6151  58                                   pop     ax + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:582D, 638C + +273F:6152               talk_converse_2: +273F:6152 ú89 54 3C                             mov     [si+HS_RESPONSE_ID], dx +273F:6155  89 4C 39                             mov     [si+HS_TALK_CHAR_ID],cx +273F:6158  C7 44 37 0028                        mov     [si+HS_TALK_COUNTDOWN], 28h +273F:615D  A8 FF                                test    al,0FFh +273F:615F  74 16                                jz      loc_ret_1237            ; Jump if zero +273F:6161                      loc_1236:                                        ;  xref 273F:6149 +273F:6161  8B 44 37                             mov     ax, [si+HS_TALK_COUNTDOWN] +273F:6164  89 44 42                             mov     [si+HS_V42], ax +273F:6167  C6 44 44 05                          mov     byte ptr [si+HS_V44], 5 +273F:616B  A1 BA19                              mov     ax, use_hotspot_id +273F:616E  89 44 3E                             mov     [si+3Eh], ax +273F:6171  A1 BA1B                              mov     ax, active_hotspot_id +273F:6174  89 44 40                             mov     [si+40h], ax + +273F:6177                  loc_ret_1237: +273F:6177  C3                                   retn +                                sub_139         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4F8A, 5E4C, 81B3, 81F3, 820E, 8241, 82A0 +                                ;                             85CE, 8663, 87EC, 882A, 8D3B, 8D59 +                                ; si = hotspot record,  bx = table offset +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      talk_countdown_handler    proc    near +273F:6178 úF7 44 37 FFFF                        test    word ptr [si+HS_TALK_COUNTDOWN], 0FFFFh +273F:617D  74 F8                                jz      loc_ret_1237            ; Jump if zero +273F:617F  83 7C 37 28                          cmp     word ptr [si+HS_TALK_COUNTDOWN], 28h +273F:6183  74 22                                je      loc_1241                ; Jump if equal +273F:6185  F6 06 CE20 80                        test    data_1152, 80h +273F:618A  75 16                                jnz     loc_1240                ; Jump if not zero +273F:618C  F6 06 CE20 0C                        test    data_1152, 0Ch +273F:6191  74 0A                                jz      loc_1239                ; Jump if zero +273F:6193  83 44 42 01                          add     word ptr [si+HS_V42], 1 +273F:6197  80 2E CE20 04                        sub     data_1152, 4 +273F:619C  C3                                   retn +273F:619D                       loc_1239:                                       ;  xref 273F:6191 +273F:619D  80 0E CE20 04                        or      data_1152, 4 +273F:61A2                       loc_1240:                                       ;  xref 273F:618A +273F:61A2  83 6C 37 01                          sub     word ptr [si+HS_TALK_COUNTDOWN], 1 +273F:61A6  C3                                   retn +273F:61A7                       loc_1241:                                       ;  xref 273F:6183 +273F:61A7  83 6C 37 01                          sub     word ptr [si+HS_TALK_COUNTDOWN], 1 +273F:61AB  53                                   push    bx +273F:61AC  E8 0020                              call    talk_add_voice_animation +273F:61AF  E8 0298                              call    sub_153                 ; (644A) +273F:61B2  81 7C 39 03E7                        cmp     word ptr [si+39h], NOONE_HOTSPOT_ID +273F:61B7  74 14                                je      loc_1242                ; Jump if equal +273F:61B9  8B 45 1B                             mov     ax,[di+1Bh] +273F:61BC  8B 5C 39                             mov     bx,[si+39h] +273F:61BF  89 1E BA1B                           mov     active_hotspot_id, bx +273F:61C3  50                                   push    ax +273F:61C4  53                                   push    bx +273F:61C5  E8 E532                              call    character_face_hotspot_2 +273F:61C8  58                                   pop     ax +273F:61C9  5B                                   pop     bx +273F:61CA  E8 E52D                              call    character_face_hotspot_2 +273F:61CD                       loc_1242:                                       ;  xref 273F:61B7 +273F:61CD  5B                                   pop     bx +273F:61CE  C3                                   retn +                      talk_countdown_handler    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:61AC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                talk_add_voice_animation        proc    near +273F:61CF  8B 45 1B                             mov     ax,[di+ANIM_HOTSPOT_ID] +273F:61D2  57                                   push    di +273F:61D3 úBF B14E                              mov     di, offset animation_table +273F:61D6  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:61D9                       locloop_1243: +273F:61D9  F6 45 0C FF                          test    byte ptr [di+ANIM_LAYER], 0FFh ; Empty slot? +273F:61DD  74 12                                jz      loc_1245                ; Jump if slot found +273F:61DF  83 7D 1B FF                          cmp     word ptr [di+ANIM_HOTSPOT_ID], 0FFFFh +273F:61E3  75 05                                jne     loc_1244                ; Jump if not equal +273F:61E5  3B 45 1E                             cmp     ax,[di+1Eh] +273F:61E8  74 07                                je      loc_1245                ; Jump if equal +273F:61EA                       loc_1244:                                       ;  xref 273F:61E3 +273F:61EA  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:61ED  E2 EA                                loop    locloop_1243            ; Loop if cx > 0 + +273F:61EF  5F                                   pop     di +273F:61F0  C3                                   retn + +273F:61F1                       loc_1245:                                       ;  xref 273F:61DD, 61E8 +273F:61F1  5B                                   pop     bx +273F:61F2  87 DF                                xchg    bx,di + +; di = passed character animation entry, bx = slot to add voice entry into + +273F:61F4  8B 45 0E                             mov     ax, [di+ANIM_ROOM_NUM] +273F:61F7  89 47 0E                             mov     [bx+ANIM_ROOM_NUM], ax +273F:61FA  C7 47 1B FFFF                        mov     word ptr [bx+ANIM_HOTSPOT_ID], 0FFFFh +273F:61FF  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:6202  89 47 1E                             mov     [bx+1Eh], ax +273F:6205  8B 44 3C                             mov     ax, [si+3Ch] +273F:6208  89 47 20                             mov     [bx+20h],ax +273F:620B  C6 47 0D 01                          mov     byte ptr [bx+ANIM_FLAGS], 1 +273F:620F  8B 05                                mov     ax, [di]                ; X position +273F:6211  05 000C                              add     ax, 12 +273F:6214  89 07                                mov     [bx], ax +273F:6216  8B 45 02                             mov     ax, [di+ANIM_Y] +273F:6219  2D 0012                              sub     ax, 18 +273F:621C  89 47 02                             mov     [bx+ANIM_Y], ax +273F:621F  C7 47 04 0020                        mov     word ptr [bx+ANIM_WIDTH], 32 +273F:6224  C7 47 06 0012                        mov     word ptr [bx+ANIM_HEIGHT], 18 +273F:6229  C6 47 0C 01                          mov     byte ptr [bx+ANIM_LAYER], 1 +273F:622D  C6 47 10 01                          mov     byte ptr [bx+ANIM_CAN_UNLOAD], 1 +273F:6231  C7 47 11 625E                        mov     word ptr [bx+ANIM_TICK_PROC], 625Eh +273F:6236  C7 47 13 0018                        mov     word ptr [bx+ANIM_WIDTH_COPY], 24 +273F:623B  8B 45 15                             mov     ax, [di+ANIM_HEIGHT_COPY] +273F:623E  05 000E                              add     ax, 14 +273F:6241  89 47 15                             mov     [bx+ANIM_HEIGHT_COPY], ax +273F:6244  C7 47 17 0001                        mov     word ptr [bx+17h], 1 +273F:6249  C7 47 08 0000                        mov     word ptr [bx+8], 0 +273F:624E  A1 5813                              mov     ax, voice_pixel_segment +273F:6251  89 47 0A                             mov     [bx+ANIM_SEGMENT], ax +273F:6254  C6 47 28 00                          mov     byte ptr [bx+ANIM_START_COLOUR], 0 +273F:6258  C7 47 24 0028                        mov     word ptr [bx+24h], 28h +273F:625D  C3                                   retn +                talk_add_voice_animation        endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            voice_tick_proc     proc    near +273F:625E  83 6D 24 01                          sub     word ptr [di+ANIM_VOICE_CTR], 1 ; Decrement countdown ctr +273F:6262  74 3A                                jz      loc_1247                ; Jump if zero +273F:6264  8B 5D 1E                             mov     bx, [di+ANIM_VOICE_CHAR_ID] +273F:6267  E8 AA7E                              call    get_room_resource_pointer +273F:626A  8B 45 0E                             mov     ax, [di+ANIM_ROOM_NUM] +273F:626D  3B 44 06                             cmp     ax, [si+HS_ROOM_NUM]    ; Still in same room as char? +273F:6270  75 2C                                jne     loc_1247                ; If not then unload +273F:6272  F7 44 37 FFFF                        test    word ptr [si+37h],0FFFFh +273F:6277  74 25                                jz      loc_1247                ; Jump if zero +273F:6279  E8 E532                              call    room_check_x_extents +273F:627C  74 06                                jz      loc_1246                ; Jump if zero +273F:627E  C7 45 02 0008                        mov     word ptr [di+ANIM_Y], 8 +273F:6283  C3                                   retn +273F:6284                       loc_1246:                                       ;  xref 273F:627C +273F:6284  8A 44 35                             mov     al, [si+HS_TALK_X] +273F:6287  98                                   cbw +273F:6288  03 44 0D                             add     ax, [si+HS_X] +273F:628B  05 000C                              add     ax, 12 +273F:628E  89 05                                mov     [di], ax + +273F:6290  8A 44 36                             mov     al,[si+HS_TALK_Y] +273F:6293  98                                   cbw                             +273F:6294  03 44 0F                             add     ax,[si+HS_Y] +273F:6297  2D 0012                              sub     ax, 18 +273F:629A  89 45 02                             mov     [di+ANIM_Y], ax +273F:629D  C3                                   retn +273F:629E                       loc_1247:                                       ;  xref 273F:6262, 6270, 6277 +273F:629E  E9 AFD6                              jmp     animation_unload_2 +                            voice_tick_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0113 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            handle_talking      proc    near +273F:62A1  83 3E 9838 01                        cmp     data_1087,1             ; (31E4:9838=0) +273F:62A6  72 3C                                jb      loc_ret_1249            ; Jump if below +273F:62A8  74 3B                                jz      loc_1250                ; Jump if zero +273F:62AA  83 3E 9838 02                        cmp     data_1087,2             ; (31E4:9838=0) +273F:62AF  74 75                                je      loc_1251                ; Jump if equal +273F:62B1  83 06 9838 01                        add     data_1087,1             ; (31E4:9838=0) +273F:62B6  A1 9847                              mov     ax,data_1093            ; (31E4:9847=0) +273F:62B9  39 06 9838                           cmp     data_1087,ax            ; (31E4:9838=0) +273F:62BD  72 25                                jb      loc_ret_1249            ; Jump if below +273F:62BF  C7 06 9838 0000                      mov     data_1087,0             ; (31E4:9838=0) + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:64BC, 8DDF + +273F:62C5                       sub_147: +273F:62C5                       loc_1248:                                       ;  xref 273F:149F, 65DB +273F:62C5 úA1 11C2                              mov     ax, talk_dialog_left +273F:62C8  8B 1E 11C0                           mov     bx, talk_dialog_top +273F:62CC  8B 2E 11C4                           mov     bp, talk_dialog_width +273F:62D0  8B 16 11C6                           mov     dx, talk_dialog_height +273F:62D4  B1 81                                mov     cl, 81h +273F:62D6  E8 A8B6                              call    sub_22                  ; (0B8F) +273F:62D9  C6 06 9837 00                        mov     talk_dialog_active, 0 +273F:62DE  C7 06 9838 0000                      mov     data_431,0              ; (273F:9838=5C8Bh) + +273F:62E4                       loc_ret_1249:                                   ;  xref 273F:62A6, 62BD +273F:62E4  C3                                   retn + + +273F:62E5                       loc_1250:                                       ;  xref 273F:62A8 +273F:62E5  C7 06 9847 0014                      mov     data_439,14h            ; (273F:9847=0F7F5h) +273F:62EB  C6 06 9837 01                        mov     talk_dialog_active, 1 +273F:62F0  83 06 9838 01                        add     data_431,1              ; (273F:9838=5C8Bh) +273F:62F5  BF CCE0                              mov     di, offset talk_character_buffer +273F:62F8  8B 1E 983B                           mov     bx, talk_character_id +273F:62FC  E8 AA20                              call    get_room_resource_pointer3 +273F:62FF  8B 44 02                             mov     ax, [si+HSH_NAME]       ; Get character name   +273F:6302  80 E4 1F                             and     ah, 1Fh +273F:6305  E8 1A32                              call    decode_string +273F:6308  A1 983D                              mov     ax, data_434             ; (273F:983D=3B75h) +273F:630B  E8 005A                              call    sub_148                 ; (6368) +273F:630E  BF CCF4                              mov     di, offset talk_text_buffer +273F:6311  A1 983D                              mov     ax, data_434 +273F:6314  E8 1A23                              call    decode_string +273F:6317  BF CCF4                              mov     di, offset talk_text_buffer +273F:631A úBE CCE0                              mov     si, offset talk_character_buffer +273F:631D  E8 B72A                              call    talk_dialog_init +273F:6320  C6 06 4B40 01                        mov     data_791, 1  +273F:6325  C3                                   retn +273F:6326                       loc_1251:                                       ;  xref 273F:62AF +273F:6326  83 06 9847 03                        add     data_439,3              ; (273F:9847=0F7F5h) +273F:632B  F6 06 CE20 80                        test    byte ptr ds:data_498e,80h ; (273F:CE20=0) +273F:6330  75 12                                jnz     loc_1253                ; Jump if not zero +273F:6332  F6 06 CE20 03                        test    byte ptr ds:data_498e,3 ; (273F:CE20=0) +273F:6337  74 06                                jz      loc_1252                ; Jump if zero +273F:6339  80 2E CE20 01                        sub     byte ptr ds:data_498e,1 ; (273F:CE20=0) +273F:633E  C3                                   retn +273F:633F                       loc_1252:                                       ;  xref 273F:6337 +273F:633F  80 0E CE20 01                        or      byte ptr ds:data_498e,1 ; (273F:CE20=0) +273F:6344                       loc_1253:                                       ;  xref 273F:6330 +273F:6344  C6 06 4B40 01                        mov     data_791, 1 +273F:6349 úBB B9F9                              mov     bx, talk_speech_ptr +273F:634C  E8 B849                              call    sub_51                  ; (1B98) +273F:634F  0B C0                                or      ax,ax                   ; Zero ? +273F:6351  74 14                                jz      loc_ret_1254            ; Jump if zero +273F:6353  83 06 9838 01                        add     data_431, 1 +273F:6358  C6 06 4B40 00                        mov     data_791, 0 +273F:635D  80 26 CE20 F0                        and     byte ptr ds:data_498e,0F0h ; (273F:CE20=0) +273F:6362  80 0E CE20 05                        or      byte ptr ds:data_498e,5 ; (273F:CE20=0) + +273F:6367                       loc_ret_1254:                                   ;  xref 273F:6351 +273F:6367  C3                                   retn +                            handle_talking      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:630B, 6428 +                                ; ax=11fh, dx=player id, si=player hotspot, di=player anim slot +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6368                       sub_148         proc    near +273F:6368  E8 1B28                              call    sub_208                 ; (7E93) +273F:636B  8A D8                                mov     bl,al +273F:636D  56                                   push    si +273F:636E  53                                   push    bx +273F:636F  BF 4B43                              mov     di, offset hotspot_name +273F:6372  A1 9843                              mov     ax,data_437             ; (273F:9843=3F75h) +273F:6375  E8 1B2E                              call    sub_209                 ; (7EA6) +273F:6378  5B                                   pop     bx +273F:6379  5E                                   pop     si +273F:637A  56                                   push    si +273F:637B  BF 4B93                              mov     di, action_name +273F:637E  A1 9845                              mov     ax,data_438             ; (273F:9845=448Bh) +273F:6381  E8 1B22                              call    sub_209                 ; (7EA6) +273F:6384  5E                                   pop     si +273F:6385  C3                                   retn +                                sub_148         endp + +                                                                                ;* No entry point to code +273F:6386  B9 03E7                              mov     cx,3E7h +273F:6389  B8 0001                              mov     ax,1 +273F:638C  E8 FDC3                              call    sub_143                 ; (6152) +273F:638F  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:52A9 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                     display_message_dialog     proc    near +273F:6390  89 16 4B41                           mov     data_792, dx +273F:6394  53                                   push    bx +273F:6395  8B D9                                mov     bx, cx +273F:6397  E8 A94E                              call    get_room_resource_pointer +273F:639A  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:639D  5B                                   pop     bx +273F:639E  B2 01                                mov     dl,1 +273F:63A0  EB 19                                jmp     display_message_dialog_4 +                                ; si = HS [from cx], bx = param1, dl = 1 + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:4613, 5BC1, 5CCD + +                   display_message_dialog_2: +273F:63A2  8B 16 BA1B                           mov     dx, active_hotspot_id +273F:63A6  89 16 4B41                           mov     data_792, dx +273F:63AA  8B 4D 1B                             mov     cx, [di+ANIM_HOTSPOT_ID] +273F:63AD  B2 01                                mov     dl,1 +273F:63AF  EB 0A                                jmp     display_message_dialog_4 + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:465A, 466E, 467E, 576B, 5D0F +                                ;   ax = Id stored in a sequence offset: 801ah for "look through" window +                                ;   si = player hotspot rec, di = player animation slot + +                   display_message_dialog_3: +273F:63B1 ú80 E4 7F                             and     ah, 7Fh +273F:63B4  8B D8                                mov     bx, ax +273F:63B6  8B 4D 1B                             mov     cx, [di+ANIM_HOTSPOT_ID] +273F:63B9  33 D2                                xor     dx,dx + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:8D20 + +                   display_message_dialog_4: +273F:63BB  8B C1                                mov     ax,cx +273F:63BD  E8 A92A                              call    get_room_resource_pointer2 ; Get hs resource +273F:63C0  8B 7C 0B                             mov     di,[si+HS_ANIM_OFFSET]  ; Get char's hotspot Id +273F:63C3  B8 47D5                              mov     ax, messages_seg +273F:63C6  8E C0                                mov     es, ax +273F:63C8  8B C3                                mov     ax, bx +273F:63CA  87 CA                                xchg    cx, dx +273F:63CC  BB 0000                              mov     bx, 0 +; ax = the passed offset with high bit cleared: eg. 801A for window look throug => 1Ah +; si=hotspot rec, di=player anim slot, dx=character hotspot Id +273F:63CF                       loc_1258:                                       ; Find entry for char Id +273F:63CF ú26: 39 17                            cmp     es:[bx],dx +273F:63D2  74 05                                je      loc_1259 +273F:63D4  83 C3 04                             add     bx,4 +273F:63D7  EB F6                                jmp     short loc_1258 +273F:63D9                       loc_1259: +273F:63D9  26: 8B 5F 02                         mov     bx,es:[bx+2]            ; bx<=5Ch +273F:63DD  80 E4 7F                             and     ah,7Fh +273F:63E0  52                                   push    dx +273F:63E1  BA 08C4                              mov     dx,8C4h +273F:63E4                       loc_1260:                                       ;  xref 273F:63F3 +273F:63E4 ú26: 83 3F FF                         cmp     word ptr es:[bx],0FFFFh ; Check [5ch] +273F:63E8  74 0E                                je      loc_1262                ; End of list? +273F:63EA  26: 3B 47 02                         cmp     ax,es:[bx+2]            ; Found 1Ah? +273F:63EE  74 05                                je      loc_1261                ; Jump if equal +273F:63F0  83 C3 04                             add     bx,4 +273F:63F3  EB EF                                jmp     short loc_1260          ; Loop through table +273F:63F5                       loc_1261: +273F:63F5  26: 8B 17                            mov     dx, es:[bx]             ; dx<=811fh +273F:63F8                       loc_1262: +273F:63F8  8B C2                                mov     ax,dx                   ; ax=811fh +273F:63FA  5A                                   pop     dx                      ; dx=3e8h +273F:63FB  3D 0076                              cmp     ax, 76h +273F:63FE  74 08                                je      loc_1263                ; Jump if equal +273F:6400  3D 0120                              cmp     ax,120h +273F:6403  75 06                                jne     loc_1264                ; Jump if not equal +273F:6405  E9 0157                              jmp     loc_1279                ; (655F) +273F:6408                       loc_1263:                                       ;  xref 273F:63FE +273F:6408  E9 0144                              jmp     loc_1278                ; (654F) +273F:640B                       loc_1264:                                       ;  xref 273F:6403 +273F:640B  0B C0                                or      ax,ax                   ; Zero ? +273F:640D  74 3A                                jz      loc_ret_1267            ; Jump if zero +273F:640F  79 22                                jns     loc_1265                ; Jump if not sign + +273F:6411  8B D8                                mov     bx, ax +273F:6413  80 E7 7F                             and     bh, 7Fh                 ; bx=811fh +273F:6416  A1 BA19                              mov     ax, use_hotspot_id ; ax=41Bh +273F:6419  A3 9843                              mov     data_437,ax +273F:641C  A1 BA1B                              mov     ax, active_hotspot_id   ; ax=41bh +273F:641F  A3 9845                              mov     data_438,ax +273F:6422  56                                   push    si +273F:6423  57                                   push    di +273F:6424  55                                   push    bp +273F:6425  53                                   push    bx +273F:6426  8B C3                                mov     ax,bx +; ax=11fh, dx=player id, si=player hotspot, di=player anim slot +273F:6428  E8 FF3D                              call    sub_148                 ; (6368) +273F:642B  5B                                   pop     bx +273F:642C  E8 248D                              call    display_dialog +273F:642F  5D                                   pop     bp +273F:6430  5F                                   pop     di +273F:6431  5E                                   pop     si +273F:6432  C3                                   retn + +; Further handling code for if the ax is not signed. In this case the message +; is shown as a talk dialog + +273F:6433                       loc_1265:                                       ;  xref 273F:640F +273F:6433  8B D0                                mov     dx,ax +273F:6435  F6 C1 FF                             test    cl,0FFh +273F:6438  74 07                                jz      loc_1266                ; Jump if zero +273F:643A  8B 0E 4B41                           mov     cx, data_792 +273F:643E  E9 FCEE                              jmp     talk_setup_3 +273F:6441                       loc_1266:                                       ;  xref 273F:6438 +273F:6441  B9 03E7                              mov     cx,3E7h +273F:6444  B0 01                                mov     al,1 +273F:6446  E9 FD09                              jmp     talk_converse_2 + +273F:6449                       loc_ret_1267:                                   ;  xref 273F:640D, 6451 +273F:6449  C3                                   retn +                     display_message_dialog     endp + + + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:61AF + +273F:644A                       sub_153: +273F:644A  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:644D  3B 06 9832                           cmp     ax, room_number +273F:6451  75 F6                                jne     loc_ret_1267            ; Jump if not equal +273F:6453  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:6456  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:6459  75 19                                jne     loc_1268                ; Jump if not equal +273F:645B  C7 06 9841 0000                      mov     data_436,0              ; (273F:9841=20EFh) +273F:6461  A3 983F                              mov     data_435,ax             ; (273F:983F=7C83h) +273F:6464  81 7C 39 03E7                        cmp     word ptr [si+39h],3E7h +273F:6469  74 44                                je      loc_1273                ; Jump if equal +273F:646B  8B 5C 39                             mov     bx,[si+39h] +273F:646E  89 1E 9841                           mov     data_436,bx             ; (273F:9841=20EFh) +273F:6472  EB 3B                                jmp     short loc_1273          ; (64AF) +273F:6474                       loc_1268:                                       ;  xref 273F:6459 +273F:6474  39 06 983F                           cmp     data_435,ax             ; (273F:983F=7C83h) +273F:6478  74 08                                je      loc_1269                ; Jump if equal +273F:647A  39 06 9841                           cmp     data_436,ax             ; (273F:9841=20EFh) +273F:647E  74 02                                je      loc_1269                ; Jump if equal +273F:6480  EB 0F                                jmp     short loc_1270          ; (6491) +273F:6482                       loc_1269:                                       ;  xref 273F:6478, 647E +273F:6482  8B 5C 39                             mov     bx,[si+39h] +273F:6485  3B 1E 983F                           cmp     bx,data_435             ; (273F:983F=7C83h) +273F:6489  74 24                                je      loc_1273                ; Jump if equal +273F:648B  3B 1E 9841                           cmp     bx,data_436             ; (273F:9841=20EFh) +273F:648F  74 1E                                je      loc_1273                ; Jump if equal +273F:6491                       loc_1270:                                       ;  xref 273F:6480 +273F:6491  F6 06 9849 FF                        test    pathfind_data, 0FFh +273F:6496  75 16                                jnz     loc_ret_1272            ; Jump if not zero +273F:6498  F7 06 9838 FFFF                      test    data_431,0FFFFh         ; (273F:9838=5C8Bh) +273F:649E  74 07                                jz      loc_1271                ; Jump if zero +273F:64A0  F6 06 983A FF                        test    byte ptr data_432,0FFh  ; (273F:983A=0F7h) +273F:64A5  75 07                                jnz     loc_ret_1272            ; Jump if not zero +273F:64A7                       loc_1271:                                       ;  xref 273F:649E +273F:64A7  C6 06 983A 00                        mov     byte ptr data_432,0     ; (273F:983A=0F7h) +273F:64AC  EB 06                                jmp     short loc_1274          ; (64B4) + +273F:64AE                       loc_ret_1272:                                   ;  xref 273F:6496, 64A5 +273F:64AE  C3                                   retn +273F:64AF                       loc_1273:                                       ;  xref 273F:6469, 6472, 6489, 648F +273F:64AF  C6 06 983A 01                        mov     byte ptr data_432,1     ; (273F:983A=0F7h) +273F:64B4                       loc_1274:                                       ;  xref 273F:64AC +273F:64B4  F7 06 9838 FFFF                      test    data_431,0FFFFh         ; (273F:9838=5C8Bh) +273F:64BA  74 03                                jz      loc_1275                ; Jump if zero +273F:64BC  E8 FE06                              call    sub_147                 ; (62C5) +273F:64BF                       loc_1275:                                       ;  xref 273F:64BA +273F:64BF  C7 06 9838 0001                      mov     data_431,1              ; (273F:9838=5C8Bh) +273F:64C5  8B 44 3C                             mov     ax,[si+3Ch] +273F:64C8  A3 983D                              mov     data_434,ax             ; (273F:983D=3B75h) +273F:64CB  8B 45 1B                             mov     ax,[di+1Bh] +273F:64CE  A3 983B                              mov     talk_character_id, ax +273F:64D1  8B 44 3E                             mov     ax,[si+3Eh] +273F:64D4  A3 9843                              mov     data_437,ax             ; (273F:9843=3F75h) +273F:64D7  8B 44 40                             mov     ax,[si+40h] +273F:64DA  A3 9845                              mov     data_438,ax             ; (273F:9845=448Bh) +273F:64DD  C3                                   retn +                                                                                ;* No entry point to code +273F:64DE  89 1E 983F                           mov     data_435,bx             ; (273F:983F=7C83h) +273F:64E2  89 0E 9841                           mov     data_436,cx             ; (273F:9841=20EFh) +273F:64E6  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:654F, 655F +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                sub_154: +273F:64E7  8B DA                                mov     bx,dx +273F:64E9  53                                   push    bx +273F:64EA  E8 A7FB                              call    get_room_resource_pointer +273F:64ED úBB B14E                              mov     bx, offset animation_table +273F:64F0  5A                                   pop     dx +273F:64F1  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:64F4                       locloop_1276: +273F:64F4  F6 47 0C FF                          test    byte ptr [bx+ANIM_LAYER], 0FFh +273F:64F8  74 0D                                jz      loc_1277                ; Jump if anim has no layer +273F:64FA  39 57 1E                             cmp     [bx+ANIM_VOICE_CHAR_ID], dx +273F:64FD  74 08                                je      loc_1277                ; Jump if equal +273F:64FF  83 C3 29                             add     bx, ANIMATION_SLOT_SIZE +273F:6502  E2 F0                                loop    locloop_1276            ; Loop if cx > 0 + +273F:6504  83 EB 29                             sub     bx, ANIMATION_SLOT_SIZE +273F:6507                       loc_1277: +273F:6507  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:650A  89 47 0E                             mov     [bx+ANIM_ROOM_NUM], ax +273F:650D  C7 47 1B FFFE                        mov     word ptr [bx+ANIM_HOTSPOT_ID], 0FFFEh +273F:6512  C7 47 20 0028                        mov     word ptr [bx+ANIM_V20], 40 +273F:6517  89 57 1E                             mov     [bx+ANIM_VOICE_CHAR_ID], dx +273F:651A  C6 47 0D 01                          mov     byte ptr [bx+ANIM_FLAGS], 1 +273F:651E  C7 47 04 0020                        mov     word ptr [bx+ANIM_WIDTH], 20h +273F:6523  C7 47 06 0012                        mov     word ptr [bx+ANIM_HEIGHT], 12h +273F:6528  C6 47 0C 01                          mov     byte ptr [bx+ANIM_LAYER], 1 +273F:652C  C6 47 10 01                          mov     byte ptr [bx+ANIM_CAN_UNLOAD], 1 +273F:6530  C7 47 11 6571                        mov     word ptr [bx+ANIM_TICK_PROC], offset tick_proc_6571 +273F:6535  C7 47 13 0013                        mov     word ptr [bx+ANIM_WIDTH_COPY], 19 +273F:653A  C7 47 15 0012                        mov     word ptr [bx+ANIM_HEIGHT_COPY], 18 +273F:653F  8B 44 1B                             mov     ax, [si+HS_HEIGHT_COPY] +273F:6542  01 47 15                             add     [bx+ANIM_HEIGHT_COPY], ax +273F:6545  C7 47 17 0001                        mov     word ptr [bx+ANIM_Y_CORRECTION], 1 +273F:654A  C6 47 28 00                          mov     byte ptr [bx+ANIM_START_COLOUR], 0 +273F:654E  C3                                   retn +                                sub_154         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUPPORT CODE +                                ; +                                ; This is support code used by display_message_dialog +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:654F                       loc_1278:                                       ;  xref 273F:6408 +273F:654F  E8 FF95                              call    sub_154                 ; (64E7) +273F:6552  A1 5813                              mov     ax, voice_pixel_segment +273F:6555  89 47 0A                             mov     [bx+0Ah],ax +273F:6558  A1 5817                              mov     ax, voice_frame_offset +273F:655B  89 47 08                             mov     [bx+8],ax +273F:655E  C3                                   retn +273F:655F                       loc_1279:                                       ;  xref 273F:6405 +273F:655F  E8 FF85                              call    sub_154                 ; (64E7) +273F:6562  A1 5813                              mov     ax, voice_pixel_segment +273F:6565  89 47 0A                             mov     [bx+ANIM_SEGMENT], ax +273F:6568  A1 5817                              mov     ax, voice_frame_offset +273F:656B  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:656D  89 47 08                             mov     [bx+ANIM_FRAME_OFFSET], ax +273F:6570  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             tick_proc_6571     proc    near +273F:6571  8B 45 1E                             mov     ax,[di+1Eh] +273F:6574  E8 A773                              call    get_room_resource_pointer2 +273F:6577  8B 44 06                             mov     ax,[si+6] +273F:657A  3B 45 0E                             cmp     ax,[di+0Eh] +273F:657D  75 0B                                jne     loc_1280                ; Jump if not equal +273F:657F  83 6D 20 01                          sub     word ptr [di+20h],1 +273F:6583  74 05                                jz      loc_1280                ; Jump if zero +273F:6585  E8 E226                              call    room_check_x_extents +273F:6588  74 03                                jz      loc_1281                ; Jump if zero +273F:658A                       loc_1280:                                       ;  xref 273F:657D, 6583 +273F:658A  E9 ACEA                              jmp     animation_unload_2 +273F:658D                       loc_1281:                                       ;  xref 273F:6588 +273F:658D  8A 44 35                             mov     al, [si+HS_TALK_X] +273F:6590  98                                   cbw                             ; Convrt byte to word +273F:6591  03 44 0D                             add     ax, [si+HS_X] +273F:6594  05 000C                              add     ax, 12 +273F:6597  89 05                                mov     [di], ax + +273F:6599  8A 44 36                             mov     al, [si+HS_TALK_Y] +273F:659C  98                                   cbw +273F:659D  03 44 0F                             add     ax, [si+0Fh] +273F:65A0  2D 0014                              sub     ax, 20 +273F:65A3  89 45 02                             mov     [di+ANIM_Y],ax +273F:65A6  C3                                   retn +                             tick_proc_6571     endp +                                                                                ;* No entry point to code +273F:65A7  A1 983B                              mov     ax, talk_character_id +273F:65AA  E8 A73B                              call    get_room_resource_pointer +273F:65AD  C7 44 37 0000                        mov     word ptr [si+37h],0 +273F:65B2  81 3E 983B 03E8                      cmp     talk_character_id, PLAYER_HOTSPOT_ID +273F:65B8  75 16                                jne     loc_1282                ; Jump if not equal +273F:65BA  A1 9841                              mov     ax,data_436             ; (273F:9841=20EFh) +273F:65BD  0B C0                                or      ax,ax                   ; Zero ? +273F:65BF  74 0F                                jz      loc_1282                ; Jump if zero +273F:65C1  E8 A724                              call    get_room_resource_pointer +273F:65C4  F7 44 37 FFFF                        test    word ptr [si+37h],0FFFFh +273F:65C9  74 05                                jz      loc_1282                ; Jump if zero +273F:65CB  C7 44 37 0028                        mov     word ptr [si+37h],28h +273F:65D0                       loc_1282:                                       ;  xref 273F:65B8, 65BF, 65C9 +273F:65D0  C6 06 9837 00                        mov     talk_dialog_active, 0 +273F:65D5  C7 06 9838 0000                      mov     data_431,0              ; (273F:9838=5C8Bh) +273F:65DB  E9 FCE7                              jmp     loc_1248                ; (62C5) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              TABLE LIST +                                ; +                                ; The following table provides a list of offsets for handler methods +                                ; for each of the possible actions in actions_list +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:65DE  0000          actions_proc_list      dw      0 +273F:65E0  6698                                 dw      offset action_do        ; 01 - GET +273F:65E2  0000                                 dw      0 +273F:65E4  6698                                 dw      offset action_do        ; 03 - PUSH +273F:65E6  6698                                 dw      offset action_do        ; 04 - PULL +273F:65E8  6698                                 dw      offset action_do        ; 05 - OPERATE +273F:65EA  6698                                 dw      offset action_do        ; 06 - OPEN +273F:65EC  6698                                 dw      offset action_do        ; 07 - CLOSE +273F:65EE  6698                                 dw      offset action_do        ; 08 - LOCK +273F:65F0  6698                                 dw      offset action_do        ; 09 - UNLOCK +273F:65F2  66B3                                 dw      offset action_use       ; 10 - USE +273F:65F4  66B3                                 dw      offset action_use       ; 11 - GIVE +273F:65F6  6698                                 dw      offset action_do        ; 12 - TALK TO +273F:65F8  6738                                 dw      offset action_tell      ; 13 - TELL +273F:65FA  6698                                 dw      offset action_do        ; 14 - BUY +273F:65FC  6735                                 dw      offset action_look      ; 15 - LOOK +273F:65FE  6698                                 dw      offset action_do        ; 16 - LOOK AT +273F:6600  6698                                 dw      offset action_do        ; 17 - LOOK THROUGH +273F:6602  66E0                                 dw      offset action_ask       ; 18 - ASK +273F:6604  669E                                 dw      offset action_consume   ; 19 - EAT (unused) +273F:6606  669E                                 dw      offset action_consume   ; 20 - DRINK +273F:6608  669B                                 dw      offset action_status    ; 21 - STATUS +273F:660A  6698                                 dw      offset action_do        ; 22 - GO TO +273F:660C  6698                                 dw      offset action_do        ; 23 - RETURN +273F:660E  6698                                 dw      offset action_do        ; 24 - BRIBE +273F:6610  669E                                 dw      offset action_consume   ; 25 - EXAMINE +273F:6612  6698                                 dw      offset action_do        ; 26 - unused + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1431 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                  room_show_rightclick_menu     proc    near + +273F:6614  E8 A1D7                              call    sub_11                  ; (07EE) +273F:6617                       loc_1283:                                       ;  xref 273F:670A +273F:6617 úC7 06 3382 FFFF                      mov     data_3382, 0FFFFh +273F:661D  C7 06 3380 0000                      mov     data_3380, 0 +273F:6623  C7 06 335E 0001                      mov     data_75e, 1 +273F:6629  B8 0007                              mov     ax,7 +273F:662C  F7 26 336A                           mul     word ptr ds:data_79e    ; (0874:336A=7500h) dx:ax = data * ax +273F:6630  03 06 336E                           add     ax,ds:data_81e          ; (0874:336E=8090h) +273F:6634  A3 335A                              mov     ds:data_74e,ax          ; (0874:335A=0C70Fh) +273F:6637  C7 06 3350 0000                      mov     word ptr ds:data_71e,0  ; (0874:3350=9A90h) +273F:663D  A1 3356                              mov     ax,ds:data_72e          ; (0874:3356=289Ah) +273F:6640  A3 3379                              mov     ds:data_85e,ax          ; (0874:3379=0C722h) +273F:6643  A1 3358                              mov     ax, data_3358 +273F:6646  0B C0                                or      ax,ax                   ; Hotspot highlighted? +273F:6648  74 19                                jz      loc_1284                ; No, so set up for look/status menu + +273F:664A  1E                                   push    ds +273F:664B  8E DD                                mov     ds,bp +273F:664D  E8 A69A                              call    get_room_resource_pointer2 +273F:6650  8B 04                                mov     ax,[si] +273F:6652  8B 54 02                             mov     dx,[si+2] +273F:6655  1F                                   pop     ds +273F:6656  81 E2 10FF                           and     dx,10FFh +273F:665A  75 0D                                jnz     loc_1285                ; Jump if not zero +273F:665C  0B C0                                or      ax,ax                   ; Zero ? +273F:665E  75 09                                jnz     loc_1285                ; Jump if not zero +273F:6660  E9 00D2                              jmp     action_handle + +; Execution reaches this point if no hotspot was highlighted. ie. for the look/status menu + +273F:6663                       loc_1284: +273F:6663  B8 4000                              mov     ax,4000h                ; Default actions: Drink, Examine, +273F:6666  BA 0118                              mov     dx,118h                 ;   Look, Status + +273F:6669                       loc_1285: +273F:6669  F6 06 3360 FF                        test    byte ptr ds:data_76e,0FFh +273F:666E  75 07                                jnz     loc_1286 +273F:6670  25 F9FD                              and     ax,0F9FDh               ; Removes Drink, Examine actions.. +273F:6673  81 E2 FEF3                           and     dx,0FEF3h               ;    maybe others as well +273F:6677                       loc_1286: +273F:6677  F7 06 337E FFFF                      test    word ptr ds:data_88e,0FFFFh ; (0874:337E=0) +273F:667D  75 04                                jnz     loc_1287 +273F:667F  81 E2 FF7F                           and     dx,0FF7Fh               ; Remove Bribe +273F:6683                       loc_1287: +273F:6683  E8 02D4                              call    popmenu_populate_list +273F:6686  E8 0308                              call    menu_make_selections +273F:6689  0B C0                                or      ax,ax                   ; Any selection made +273F:668B  78 51                                js      loc_1290                ; No, so jump out + +273F:668D  D1 E0                                shl     ax,1                    ; Get jump destination +273F:668F  8B D8                                mov     bx,ax                   ;  for particular atcion +273F:6691  2E: 8B 87 65DE                       mov     ax, cs:actions_proc_list[bx] +273F:6696  FF E0                                jmp     ax                      ; Jump to handler + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; Action handler for use actions +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + + +273F:6698  E8 028A              action_do:      call    sub_159 +273F:669B  E9 0097          action_status:      jmp     action_handle + + +273F:669E  E8 A6B3          action_consume:     call    sub_32                  ; (0D54) +273F:66A1  F7 06 31E4 FFFF                      test    popmenu_entry_count, 0FFFFh +273F:66A7  74 57                                jz      loc_1291                ; Jump if zero +273F:66A9  E8 02E5                              call    menu_make_selections +273F:66AC  0B C0                                or      ax,ax                   ; Zero ? +273F:66AE  78 53                                js      loc_1292                ; Jump if sign=1 +273F:66B0  E9 0082                              jmp     action_handle + + +273F:66B3  E8 A69E              action_use:     call    sub_32                  ; (0D54) +273F:66B6  F7 06 31E4 FFFF                      test    popmenu_entry_count, 0FFFFh +273F:66BC  74 42                                jz      loc_1291                ; Jump if zero +273F:66BE  E8 02D0                              call    menu_make_selections    ; Select inventory item +273F:66C1  0B C0                                or      ax,ax                   ; Zero ? +273F:66C3  78 3E                                js      loc_1292                ; Jump if sign=1 +273F:66C5  8B 36 3380                           mov     si, data_3380           ; Get the hotspot +273F:66C9  83 BC 337C 0B                        cmp     word ptr ds:data_86e+1[si],0Bh ; (0874:337C=4758h) +273F:66CE  75 05                                jne     loc_1288                ; Jump if not equal +273F:66D0  BB 33E4                              mov     bx,33E4h +273F:66D3  EB 03                                jmp     short loc_1289          ; (66D8) +273F:66D5                       loc_1288:                                       ;  xref 273F:66CE +273F:66D5  BB 33E0                              mov     bx,33E0h +273F:66D8                       loc_1289:                                       ;  xref 273F:66D3 +273F:66D8  E8 0575                              call    sub_166                 ; (6C50) +273F:66DB  E8 0247                              call    sub_159                 ; (6925) +273F:66DE                       loc_1290:                                       ;  xref 273F:668B +273F:66DE  EB 55                                jmp     action_handle + + +273F:66E0  E8 0242             action_ask:      call    sub_159                 ; (6925) +273F:66E3  BB 33F1                              mov     bx,33F1h +273F:66E6  E8 0567                              call    sub_166                 ; (6C50) +273F:66E9  B8 0001                              mov     ax,1 +273F:66EC  E8 A6C0                              call    sub_34                  ; (0DAF) +273F:66EF  F7 06 31E4 FFFF                      test    popmenu_entry_count, 0FFFFh +273F:66F5  74 09                                jz      loc_1291                ; Jump if zero +273F:66F7  E8 0297                              call    menu_make_selections +273F:66FA  0B C0                                or      ax,ax                   ; Zero ? +273F:66FC  78 05                                js      loc_1292                ; Jump if sign=1 +273F:66FE  EB 35                                jmp     action_handle +273F:6700                       loc_1291:                                       ;  xref 273F:66A7, 66BC, 66F5 +273F:6700  E8 000A                              call    sub_156                 ; (670D) +273F:6703                       loc_1292:                                       ;  xref 273F:66AE, 66C3, 66FC, 6763 +273F:6703  1E                                   push    ds +273F:6704  8E DD                                mov     ds,bp +273F:6706  E8 08FC                              call    menubar_clear_image +273F:6709  1F                                   pop     ds +273F:670A  E9 FF0A                              jmp     loc_1283                ; (6617) + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:6700, 6792 + +273F:670D                       sub_156: +273F:670D  BB 33E7                              mov     bx,33E7h +273F:6710  E8 053D                              call    sub_166                 ; (6C50) +273F:6713  1E                                   push    ds +273F:6714  07                                   pop     es +273F:6715 úBF 3174                              mov     di,3174h                ; (273F:3174=7) +273F:6718  B8 33E2                              mov     ax,33E2h +273F:671B  B9 0012                              mov     cx,12h +273F:671E  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:6720  C7 06 334C 0000                      mov     popmenu_num_entries, 0 +273F:6726  E8 02B8                              call    menu_make_selections_select +273F:6729  1E                                   push    ds +273F:672A  8E DD                                mov     ds,bp +273F:672C                       loc_1293:                                       ;  xref 273F:6731 +273F:672C  F6 06 11D5 FF                        test    byte ptr ds:data_29e,0FFh ; (0000:11D5=8Bh) +273F:6731  75 F9                                jnz     loc_1293                ; Jump if not zero +273F:6733  1F                                   pop     ds +273F:6734  C3                                   retn + + +273F:6735 úE9 A153           action_handle:     jmp     action_handle_2 + +                  room_show_rightclick_menu     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                action_tell     proc    near +                                                                                                                                                                                 +273F:6738  E8 01EA                              call    sub_159                 ; (6925) +273F:673B  BB 33E4                              mov     bx,33E4h +273F:673E  E8 050F                              call    sub_166                 ; (6C50) +273F:6741                       loc_1295:                                       ;  xref 273F:676E, 67EA +273F:6741 ú83 3E 3380 08                        cmp     data_3380, 8 +273F:6746  75 06                                jne     loc_1296                ; Jump if not equal +273F:6748  A1 3356                              mov     ax,word ptr ds:[3356h]  ; (273F:3356=9B9h) +273F:674B  A3 3379                              mov     data_266,ax             ; (273F:3379=62C0h) +273F:674E                       loc_1296:                                       ;  xref 273F:6746 +273F:674E  BA 006A                              mov     dx,6Ah +273F:6751  B8 07FD                              mov     ax,7FDh +273F:6754  E8 0203                              call    popmenu_populate_list +273F:6757  E8 0237                              call    menu_make_selections +273F:675A  0B C0                                or      ax,ax                   ; Zero ? +273F:675C  79 12                                jns     loc_1298                ; Jump if not sign +273F:675E  83 3E 3380 08                        cmp     data_3380, 8 +273F:6763  74 9E                                je      loc_1292                ; Jump if equal +273F:6765                       loc_1297:                                       ;  xref 273F:6795, 679C, 683E +273F:6765 úE8 00F7                              call    sub_157                 ; (685F) +273F:6768  C7 06 3380 0008                      mov     data_3380, 8 +273F:676E  EB D1                                jmp     short loc_1295          ; (6741) +273F:6770                       loc_1298:                                       ;  xref 273F:675C +273F:6770  3D 0017                              cmp     ax,17h +273F:6773  74 4B                                je      loc_1304                ; Jump if equal +273F:6775  3D 000A                              cmp     ax,0Ah +273F:6778  74 0A                                je      loc_1299                ; Jump if equal +273F:677A  3D 0014                              cmp     ax,14h +273F:677D  74 05                                je      loc_1299                ; Jump if equal +273F:677F  3D 000B                              cmp     ax,0Bh +273F:6782  75 03                                jne     loc_1300                ; Jump if not equal +273F:6784                       loc_1299:                                       ;  xref 273F:6778, 677D +273F:6784  B8 0001                              mov     ax,1 +273F:6787                       loc_1300:                                       ;  xref 273F:6782 +273F:6787  E8 A625                              call    sub_34                  ; (0DAF) +273F:678A  F7 06 31E4 FFFF                      test    word ptr ds:[31E4h],0FFFFh ; (273F:31E4=0E4h) +273F:6790  75 05                                jnz     loc_1302                ; Jump if not zero +273F:6792                       loc_1301:                                       ;  xref 273F:683B +273F:6792 úE8 FF78                              call    sub_156                 ; (670D) +273F:6795  EB CE                                jmp     short loc_1297          ; (6765) +273F:6797                       loc_1302:                                       ;  xref 273F:6790 +273F:6797  E8 01F7                              call    menu_make_selections +273F:679A  0B C0                                or      ax,ax                   ; Zero ? +273F:679C  78 C7                                js      loc_1297                ; Jump if sign=1 +273F:679E  8B 1E 3380                           mov     bx, data_3380 +273F:67A2  8B 9F 337C                           mov     bx,word ptr data_267+1[bx] ; (273F:337C=4Eh) +273F:67A6  83 FB 16                             cmp     bx,16h +273F:67A9  75 03                                jne     loc_1303                ; Jump if not equal +273F:67AB  A3 3379                              mov     data_266,ax             ; (273F:3379=62C0h) +273F:67AE                       loc_1303:                                       ;  xref 273F:67A9 +273F:67AE  83 FB 12                             cmp     bx,12h +273F:67B1  74 4E                                je      loc_1308                ; Jump if equal +273F:67B3  83 FB 0B                             cmp     bx,0Bh +273F:67B6  74 66                                je      loc_1309                ; Jump if equal +273F:67B8  83 FB 0A                             cmp     bx,0Ah +273F:67BB  75 03                                jne     loc_1304                ; Jump if not equal +273F:67BD  E9 0081                              jmp     loc_1312                ; (6841) +273F:67C0                       loc_1304:                                       ;  xref 273F:6773, 67BB, 681C, 6839 +                                                                                ;            685C +273F:67C0 ú83 3E 3380 4A                        cmp     data_3380, 4Ah +273F:67C5  73 0B                                jae     loc_1305                ; Jump if above or = +273F:67C7  BE 2E41                              mov     si,2E41h +273F:67CA  BB 2E53                              mov     bx,2E53h +273F:67CD  B9 FFFF                              mov     cx,0FFFFh +273F:67D0  EB 09                                jmp     short loc_1306          ; (67DB) +273F:67D2                       loc_1305:                                       ;  xref 273F:67C5 +273F:67D2  BE 2E4B                              mov     si,2E4Bh +273F:67D5  BB 2E55                              mov     bx,2E55h +273F:67D8  B9 0001                              mov     cx,1 +273F:67DB                       loc_1306:                                       ;  xref 273F:67D0 +273F:67DB  E8 054D                              call    sub_168                 ; (6D2B) +273F:67DE  E8 01B0                              call    menu_make_selections +273F:67E1  0B C0                                or      ax,ax                   ; Zero ? +273F:67E3  78 59                                js      loc_1311                ; Jump if sign=1 +273F:67E5  3D 7D00                              cmp     ax,7D00h +273F:67E8  75 03                                jne     loc_1307                ; Jump if not equal +273F:67EA  E9 FF54                              jmp     loc_1295                ; (6741) +273F:67ED                       loc_1307:                                       ;  xref 273F:67E8 +273F:67ED  A1 338A                              mov     ax,word ptr ds:[338Ah]  ; (273F:338A=8E9h) +273F:67F0  A3 335E                              mov     data_335E, ax +273F:67F3  33 FF                                xor     di,di                   ; Zero register +273F:67F5  E8 00AD                              call    sub_158                 ; (68A5) +273F:67F8  BB 33F5                              mov     bx,33F5h +273F:67FB  E8 0452                              call    sub_166                 ; (6C50) +273F:67FE  E9 FF34                              jmp     action_handle +273F:6801                       loc_1308:                                       ;  xref 273F:67B1 +273F:6801  BB 33F1                              mov     bx,33F1h +273F:6804  E8 0449                              call    sub_166                 ; (6C50) +273F:6807  B8 0001                              mov     ax,1 +273F:680A  E8 A5A2                              call    sub_34                  ; (0DAF) +273F:680D  F7 06 31E4 FFFF                      test    word ptr ds:[31E4h],0FFFFh ; (273F:31E4=0E4h) +273F:6813  74 26                                jz      loc_1310                ; Jump if zero +273F:6815  E8 0179                              call    menu_make_selections +273F:6818  0B C0                                or      ax,ax                   ; Zero ? +273F:681A  78 22                                js      loc_1311                ; Jump if sign=1 +273F:681C  EB A2                                jmp     short loc_1304          ; (67C0) +273F:681E                       loc_1309:                                       ;  xref 273F:67B6 +273F:681E  BB 33E4                              mov     bx,33E4h +273F:6821  E8 042C                              call    sub_166                 ; (6C50) +273F:6824  B8 000B                              mov     ax,0Bh +273F:6827  E8 A585                              call    sub_34                  ; (0DAF) +273F:682A  F7 06 31E4 FFFF                      test    word ptr ds:[31E4h],0FFFFh ; (273F:31E4=0E4h) +273F:6830  74 09                                jz      loc_1310                ; Jump if zero +273F:6832  E8 015C                              call    menu_make_selections +273F:6835  0B C0                                or      ax,ax                   ; Zero ? +273F:6837  78 05                                js      loc_1311                ; Jump if sign=1 +273F:6839  EB 85                                jmp     short loc_1304          ; (67C0) +273F:683B                       loc_1310:                                       ;  xref 273F:6813, 6830, 6853 +273F:683B  E9 FF54                              jmp     loc_1301                ; (6792) +273F:683E                       loc_1311:                                       ;  xref 273F:67E3, 681A, 6837, 685A +273F:683E  E9 FF24                              jmp     loc_1297                ; (6765) +273F:6841                       loc_1312:                                       ;  xref 273F:67BD +273F:6841  BB 33E0                              mov     bx,33E0h +273F:6844  E8 0409                              call    sub_166                 ; (6C50) +273F:6847  B8 000A                              mov     ax,0Ah +273F:684A  E8 A562                              call    sub_34                  ; (0DAF) +273F:684D  F7 06 31E4 FFFF                      test    word ptr ds:[31E4h],0FFFFh ; (273F:31E4=0E4h) +273F:6853  74 E6                                jz      loc_1310                ; Jump if zero +273F:6855  E8 0139                              call    menu_make_selections +273F:6858  0B C0                                or      ax,ax                   ; Zero ? +273F:685A  78 E2                                js      loc_1311                ; Jump if sign=1 +273F:685C  E9 FF61                              jmp     loc_1304                ; (67C0) + +                                action_tell     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6765 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:685F                       sub_157         proc    near +273F:685F  83 2E 3380 04                        sub     data_3380, 4 +273F:6864  8B 1E 3380                           mov     bx, data_3380 +273F:6868  8B 87 3382                           mov     ax, data_3382[bx] +273F:686C  C7 87 3382 FFFF                      mov     data_3382[bx],0FFFFh +273F:6872  B9 0140                              mov     cx,140h +273F:6875  50                                   push    ax +273F:6876  33 D2                                xor     dx,dx                   ; Zero register +273F:6878  F7 F1                                div     cx                      ; ax,dx rem=dx:ax/reg +273F:687A  52                                   push    dx +273F:687B  50                                   push    ax +273F:687C  A1 335E                              mov     ax, data_335E +273F:687F  33 D2                                xor     dx,dx                   ; Zero register +273F:6881  F7 F1                                div     cx                      ; ax,dx rem=dx:ax/reg +273F:6883  5A                                   pop     dx +273F:6884  3B C2                                cmp     ax,dx +273F:6886  74 0B                                je      loc_1313                ; Jump if equal +273F:6888  1E                                   push    ds +273F:6889  52                                   push    dx +273F:688A  8E DD                                mov     ds,bp +273F:688C  E8 078D                              call    talk_clear_line +273F:688F  58                                   pop     ax +273F:6890  1F                                   pop     ds +273F:6891  EB 04                                jmp     short loc_1314          ; (6897) +273F:6893                       loc_1313:                                       ;  xref 273F:6886 +273F:6893  0B C0                                or      ax,ax                   ; Zero ? +273F:6895  74 03                                jz      loc_1315                ; Jump if zero +273F:6897                       loc_1314:                                       ;  xref 273F:6891 +273F:6897  E8 0474                              call    sub_167                 ; (6D0E) +273F:689A                       loc_1315:                                       ;  xref 273F:6895 +273F:689A  F7 26 336A                           mul     word ptr ds:[336Ah]     ; (273F:336A=40C7h) dx:ax = data * ax +273F:689E  8B F8                                mov     di,ax +273F:68A0  58                                   pop     ax +273F:68A1  8F 06 335E                           pop     data_335E + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:67F5 + +273F:68A5                       sub_158: +273F:68A5  8B 1E 3376                           mov     bx,data_265             ; (273F:3376=0F632h) +273F:68A9  8E C3                                mov     es,bx +273F:68AB  81 3E 3368 362D                      cmp     menu_items_proc2, offset vga_menu_items +273F:68B1  75 1D                                jne     loc_1317                ; Jump if not equal +273F:68B3  03 F8                                add     di,ax +273F:68B5  BB 0140                              mov     bx,140h +273F:68B8  2B D8                                sub     bx,ax +273F:68BA  BA 0008                              mov     dx,8 +273F:68BD  32 C0                                xor     al,al                   ; Zero register +273F:68BF                       loc_1316:                                       ;  xref 273F:68CC +273F:68BF  57                                   push    di +273F:68C0  8B CB                                mov     cx,bx +273F:68C2  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:68C4  5F                                   pop     di +273F:68C5 ú81 C7 0140                           add     di,data_1458e           ; (F632:0140=0) +273F:68C9  83 EA 01                             sub     dx,1 +273F:68CC  75 F1                                jnz     loc_1316                ; Jump if not zero +273F:68CE  EB 4C                                jmp     short loc_1320          ; (691C) +273F:68D0                       loc_1317:                                       ;  xref 273F:68B1 +273F:68D0  8A C8                                mov     cl,al +273F:68D2  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:68D4  24 FC                                and     al,0FCh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 252 + +273F:68D6  80 E1 07                             and     cl,7 +273F:68D9  03 F8                                add     di,ax +273F:68DB  BA FF00                              mov     dx,0FF00h +273F:68DE  D3 FA                                sar     dx,cl                   ; Shift w/sign fill +273F:68E0  BB 00A0                              mov     bx,0A0h +273F:68E3  2B D8                                sub     bx,ax +273F:68E5  B6 08                                mov     dh,8 +273F:68E7  57                                   push    di +273F:68E8                       loc_1318:                                       ;  xref 273F:68FE +273F:68E8  26: 20 15                            and     es:[di],dl +273F:68EB  26: 20 55 01                         and     es:[di+1],dl +273F:68EF  26: 20 55 02                         and     es:[di+2],dl +273F:68F3  26: 20 55 03                         and     es:[di+3],dl +273F:68F7 ú81 C7 00A0                           add     di,data_1457e           ; (F632:00A0=0) +273F:68FB  80 EE 01                             sub     dh,1 +273F:68FE  75 E8                                jnz     loc_1318                ; Jump if not zero +273F:6900  5F                                   pop     di +273F:6901  83 C7 04                             add     di,4 +273F:6904  83 EB 04                             sub     bx,4 +273F:6907  74 13                                jz      loc_1320                ; Jump if zero +273F:6909  B2 08                                mov     dl,8 +273F:690B  32 C0                                xor     al,al                   ; Zero register +273F:690D                       loc_1319:                                       ;  xref 273F:691A +273F:690D  57                                   push    di +273F:690E  8B CB                                mov     cx,bx +273F:6910  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:6912  5F                                   pop     di +273F:6913  81 C7 00A0                           add     di,0A0h +273F:6917  80 EA 01                             sub     dl,1 +273F:691A  75 F1                                jnz     loc_1319                ; Jump if not zero +273F:691C                       loc_1320:                                       ;  xref 273F:68CE, 6907 +273F:691C  8E C5                                mov     es,bp +273F:691E  26: C6 06 4BF0 02                    mov     byte ptr es:data_46e,2  ; (0000:4BF0=28h) +273F:6924  C3                                   retn +                                sub_157         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6698, 66DB, 66E0, 6738 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6925                       sub_159         proc    near +273F:6925  8B 1E 3358                           mov     bx, data_3358           ; Get the hotspot Id +273F:6929  8B 36 3380                           mov     si, data_3380           ; Get offset +273F:692D  89 9C 3382                           mov     data_3382[si], bx       ; Store hotspot Id +273F:6931  89 9C 3384                           mov     word ptr ds:[3384h][si], bx +273F:6935  C7 84 3386 FFFF                      mov     word ptr ds:[3386h][si], 0FFFFh +273F:693B  83 06 3380 04                        add     data_3380, 4 +273F:6940  1E                                   push    ds +273F:6941  8E DD                                mov     ds,bp +273F:6943  E8 A3D9                              call    get_room_resource_pointer3 ; Get header pointer +273F:6946  8B 44 02                             mov     ax, [si+HSH_NAME] +273F:6949  80 E4 1F                             and     ah, 1Fh +273F:694C  1F                                   pop     ds +273F:694D  BF 30D4                              mov     di, offset hotspot_display_buffer +273F:6950  E8 13E7                              call    decode_string           ; Decode hotspot name +273F:6953  BB 30D4                              mov     bx, offset hotspot_display_buffer +273F:6956  E8 02F7                              call    sub_166                 ; Displays name +273F:6959  C3                                   retn +                                sub_159         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6683, 6754 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:695A             popmenu_populate_list     proc    near + +273F:695A  C7 06 31E4 0000                      mov     popmenu_entry_count, 0 +273F:6960 úBF 31E6                              mov     di, offset popmenu_entry_contents +273F:6963 úBE 2D5F                              mov     si, offset actions_list +273F:6966  1E                                   push    ds +273F:6967  07                                   pop     es +273F:6968  8E DD                                mov     ds,bp +273F:696A  8B E8                                mov     bp,ax +273F:696C  B9 0019                              mov     cx, NUM_ACTIONS         ; 19h + +273F:696F                       locloop_1321: +273F:696F  D1 DA                                rcr     dx,1                    ; Rotate thru carry +273F:6971  D1 DD                                rcr     bp,1                    ; Rotate thru carry +273F:6973  73 0F                                jnc     loc_1323                ; If bit wasn't set, don't add + +273F:6975  A5                                   movsw                           ; Copy over action Id +273F:6976                       loc_1322: +273F:6976  AC                                   lodsb                           ; Copy over action name +273F:6977  AA                                   stosb +273F:6978  0A C0                                or      al,al +273F:697A  75 FA                                jnz     loc_1322 +273F:697C  26: 83 06 31E4 01                    add     es:popmenu_entry_count, 1 ; Increment # actions +273F:6982  EB 06                                jmp     short loc_1325           + +273F:6984                       loc_1323: +273F:6984  AD                                   lodsw                           ; Skip over action Id +273F:6985                       loc_1324: +273F:6985  AC                                   lodsb                           ; Scan over action name +273F:6986  0A C0                                or      al,al +273F:6988  75 FB                                jnz     loc_1324 +273F:698A                       loc_1325: +273F:698A  E2 E3                                loop    locloop_1321            ; Loop through remaining actions + +273F:698C  8C DD                                mov     bp,ds +273F:698E  06                                   push    es +273F:698F  1F                                   pop     ds +273F:6990  C3                                   retn + +                      popmenu_populate_list     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6686, 66A9, 66BE, 66F7, 6757, 6797, 67DE +                                ;                             6815, 6832, 6855 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       menu_make_selections     proc    near + +273F:6991  8B 36 3380                           mov     si, data_3380 +273F:6995  F6 84 3383 80                        test    byte ptr ds:[3383h][si],80h ; (273F:3383=74h) +273F:699A  74 36                                jz      loc_1327                ; Jump if zero +273F:699C  C6 06 337D 00                        mov     data_269,0              ; (273F:337D=0) +273F:69A1  E8 01E6                              call    sub_165                 ; (6B8A) +273F:69A4  E8 003A                              call    menu_make_selections_select +273F:69A7  0B C0                                or      ax,ax                   ; Zero ? +273F:69A9  78 26                                js      loc_ret_1326            ; Jump if sign=1 +273F:69AB  3D 7CFF                              cmp     ax,7CFFh +273F:69AE  74 21                                je      loc_ret_1326            ; Jump if equal +273F:69B0  FF 36 335E                           push    data_335E +273F:69B4  E8 0299                              call    sub_166                 ; (6C50) +273F:69B7  5B                                   pop     bx +273F:69B8  8B 36 3380                           mov     si, data_3380 +273F:69BC  89 9C 3382                           mov     data_3382[si],bx  +273F:69C0  89 84 3384                           mov     word ptr ds:[3384h][si],ax ; (273F:3384=810Ch) +273F:69C4  83 C6 04                             add     si,4 +273F:69C7  C7 84 3382 FFFF                      mov     data_3382[si], 0FFFFh  +273F:69CD  89 36 3380                           mov     data_3380, si + +273F:69D1                       loc_ret_1326:                                   ;  xref 273F:69A9, 69AE +273F:69D1  C3                                   retn +273F:69D2                       loc_1327:                                       ;  xref 273F:699A +273F:69D2  83 06 3380 04                        add     data_3380, 4 +273F:69D7  8B 84 3384                           mov     ax,word ptr ds:[3384h][si] ; (273F:3384=810Ch) +273F:69DB  C6 06 337D 01                        mov     data_269,1              ; (273F:337D=0) +273F:69E0  C3                                   retn + +                       menu_make_selections     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6726, 69A4 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +        menu_make_selections_select     proc    near + +273F:69E1  A1 3362                              mov     ax, popmenu_current_index +273F:69E4  3B 06 334C                           cmp     ax, popmenu_num_entries +273F:69E8  72 06                                jb      loc_1328                ; Jump if below +273F:69EA  C7 06 3362 0000                      mov     popmenu_current_index, 0 +273F:69F0                       loc_1328:                                       ;  xref 273F:69E8 +273F:69F0  A1 334C                              mov     ax, popmenu_num_entries +273F:69F3  D0 E8                                shr     al,1                    ; Shift w/zeros fill +273F:69F5  04 01                                add     al,1 +273F:69F7  3C 06                                cmp     al,6 +273F:69F9  72 02                                jb      loc_1329                ; Jump if below +273F:69FB  B0 05                                mov     al,5 +273F:69FD                       loc_1329:                                       ;  xref 273F:69F9 +273F:69FD  A3 335C                              mov     popmenu_num_visible_items, ax +273F:6A00  1E                                   push    ds +273F:6A01  55                                   push    bp +273F:6A02  50                                   push    ax +273F:6A03  FF 36 334E                           push    word ptr ds:[334Eh]     ; (273F:334E=83E4h) +273F:6A07  8E DD                                mov     ds,bp +273F:6A09  FF 16 0752                           call    word ptr ds:data_16e    ; (0000:0752=0) +273F:6A0D  E8 AAFE                              call    room_add_animations +273F:6A10  5B                                   pop     bx +273F:6A11  5A                                   pop     dx +273F:6A12  FF 16 0778                           call    word ptr ds:data_21e    ; (0000:0778=5253h) +273F:6A16  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:6A1B  75 28                                jne     loc_1330                ; Jump if not equal + +273F:6A1D  5D                                   pop     bp +273F:6A1E  1F                                   pop     ds +273F:6A1F  E8 00E1                              call    menu_create_popmenu +273F:6A22  1E                                   push    ds +273F:6A23  55                                   push    bp +273F:6A24  8E DD                                mov     ds,bp +273F:6A26  FF 16 0744                           call    [show_screen_proc] +273F:6A2A  5D                                   pop     bp +273F:6A2B  1F                                   pop     ds +273F:6A2C  8A 1E 334E                           mov     bl,byte ptr ds:[334Eh]  ; (273F:334E=0E4h) +273F:6A30  8A 16 335C                           mov     dl,byte ptr [popmenu_num_visible_items] +273F:6A34  1E                                   push    ds +273F:6A35  55                                   push    bp +273F:6A36  8E DD                                mov     ds,bp +273F:6A38  FF 16 0778                           call    word ptr ds:data_21e    ; (0000:0778=5253h) +273F:6A3C  5D                                   pop     bp +273F:6A3D  1F                                   pop     ds +273F:6A3E  E8 00C2                              call    menu_create_popmenu +273F:6A41  1E                                   push    ds +273F:6A42  55                                   push    bp +273F:6A43  8E DD                                mov     ds,bp +273F:6A45                       loc_1330:                                       ;  xref 273F:6A1B +273F:6A45  FF 16 0744                           call    [show_screen_proc] +273F:6A49  5D                                   pop     bp +273F:6A4A  1F                                   pop     ds +273F:6A4B  B8 000B                              mov     ax,0Bh +273F:6A4E  CD 33                                int     33h                     ; Mouse driver    ax=func 000Bh +                                                                                ;  read motion counters, cx & dx +273F:6A50  C7 06 3366 0000                      mov     mouse_y_change, 0 +273F:6A56  8E C5                                mov     es,bp +273F:6A58  26: C6 06 11DA 00                    mov     mouse_buttons2, 0 +273F:6A5E  EB 07                                jmp     short loc_1332          ; (6A67) +273F:6A60                       loc_1331:                                       ;  xref 273F:6AA3, 6ACC, 6AD9 +273F:6A60 úE8 00A0                              call    menu_create_popmenu +273F:6A63  FF 16 3368                           call    [menu_items_proc2]      ; Add the menu items +273F:6A67                       loc_1332: +273F:6A67  F7 06 334C FFFF                      test    popmenu_num_entries, 0FFFFh ; Any entries at all? +273F:6A6D  74 6C                                jz      sub162_abort            ; No, so abort +273F:6A6F  8E C5                                mov     es,bp +273F:6A71  26: F6 06 11DA FF                    test    mouse_buttons2, 0FFh +273F:6A77  75 6C                                jnz     loc_1339                ; Jump if not zero +273F:6A79  E8 2AA4                              call    check_keypress          ; Any key pressed? +273F:6A7C  74 1C                                jz      loc_1333                ; No, so skip kbd code +273F:6A7E  8A D8                                mov     bl,al +273F:6A80  B8 FFFF                              mov     ax,0FFFFh               ; Constant for moving up +273F:6A83  80 FB C8                             cmp     bl,0C8h                 ; Up arrow pressed? +273F:6A86  74 46                                je      sub162_moveup           ; Yes, so handle it +273F:6A88  B8 0001                              mov     ax,1                    ; Constant for moving down +273F:6A8B  80 FB D0                             cmp     bl,0D0h                 ; Down arrow pressed? +273F:6A8E  74 29                                je      sub162_movedown         ; Yes, so handle it +273F:6A90  80 FB 0D                             cmp     bl,0Dh                  ; Enter key pressed? +273F:6A93  74 5A                                je      sub162_select           ; Yes, so handle it +273F:6A95  80 FB 20                             cmp     bl,20h                  ; ' ' +273F:6A98  74 41                                je      sub162_abort +273F:6A9A                       loc_1333: +273F:6A9A  33 D2                                xor     dx,dx                   ; Zero register +273F:6A9C  B8 000B                              mov     ax,0Bh +273F:6A9F  CD 33                                int     33h                     ; Mouse driver    ax=func 000Bh +                                                                                ;  read motion counters, cx & dx +273F:6AA1  0B D2                                or      dx,dx                   ; Zero ? +273F:6AA3  74 BB                                jz      loc_1331                ; Jump if zero +273F:6AA5  03 16 3366                           add     dx, mouse_y_change +273F:6AA9  8B C2                                mov     ax,dx +273F:6AAB  99                                   cwd                             ; Word to double word +273F:6AAC úBB 000A                              mov     bx,0Ah                  ; (273F:000A=23h) +273F:6AAF  F7 FB                                idiv    bx                      ; ax,dx rem=dx:ax/reg +273F:6AB1  89 16 3366                           mov     mouse_y_change, dx +273F:6AB5  0B C0                                or      ax,ax                   ; Zero ? +273F:6AB7  78 15                                js      sub162_moveup +273F:6AB9                sub162_movedown: +273F:6AB9  03 06 3362                           add     ax, popmenu_current_index +273F:6ABD  3B 06 334C                           cmp     ax, popmenu_num_entries +273F:6AC1  72 06                                jb      loc_1335                ; Jump if below +273F:6AC3  A1 334C                              mov     ax, popmenu_num_entries +273F:6AC6  2D 0001                              sub     ax,1 +273F:6AC9                       loc_1335:                                       ;  xref 273F:6AC1 +273F:6AC9  A3 3362                              mov     popmenu_current_index, ax +273F:6ACC  EB 92                                jmp     short loc_1331          ; (6A60) +273F:6ACE                  sub162_moveup: +273F:6ACE  03 06 3362                           add     ax, popmenu_current_index +273F:6AD2  72 02                                jc      loc_1337 +273F:6AD4  33 C0                                xor     ax,ax                   ; Already at first item +273F:6AD6                       loc_1337: +273F:6AD6  A3 3362                              mov     popmenu_current_index, ax +273F:6AD9  EB 85                                jmp     short loc_1331          ; (6A60) +273F:6ADB                   sub162_abort: +273F:6ADB  A1 3364                              mov     ax, popmenu_prior_index    ; Reset index to prior one +273F:6ADE  A3 3362                              mov     popmenu_current_index, ax +273F:6AE1  B8 FFFF                              mov     ax,0FFFFh +273F:6AE4  C3                                   retn +273F:6AE5                       loc_1339:                                       ;  xref 273F:6A77 +273F:6AE5  8E C5                                mov     es,bp +273F:6AE7  26: F6 06 11DA 02                    test    byte ptr es:data_32e,2  ; (0000:11DA=0D3h) +273F:6AED  75 EC                                jnz     sub162_abort +273F:6AEF                  sub162_select: +273F:6AEF  A1 3362                              mov     ax, popmenu_current_index  ; Backup selected index +273F:6AF2  A3 3364                              mov     popmenu_prior_index, ax +273F:6AF5  C7 06 3362 0000                      mov     popmenu_current_index, 0 +273F:6AFB  8B 1E 3372                           mov     bx,word ptr ds:[3372h]  ; (273F:3372=0C31Fh) +273F:6AFF  8B 47 FD                             mov     ax,[bx-3] +273F:6B02  C3                                   retn + +        menu_make_selections_select             endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6A1F, 6A3E, 6A60 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6B03              menu_create_popmenu      proc    near +273F:6B03  A1 3376                              mov     ax,data_265             ; (273F:3376=0F632h) +273F:6B06  8E C0                                mov     es,ax +273F:6B08  55                                   push    bp +273F:6B09  8B 36 3362                           mov     si, popmenu_current_index +273F:6B0D  D1 E6                                shl     si,1                    ; Shift w/zeros fill +273F:6B0F  D1 E6                                shl     si,1                    ; Shift w/zeros fill +273F:6B11 ú81 C6 3174                           add     si,3174h                ; (273F:3174=7) +273F:6B15  8B 3E 335A                           mov     di,word ptr ds:[335Ah]  ; (273F:335A=0ACA4h) +273F:6B19  8B 2E 337B                           mov     bp,data_267             ; (273F:337B=4EB9h) +273F:6B1D  B8 0005                              mov     ax,5 +273F:6B20  2B 06 335C                           sub     ax, popmenu_num_visible_items +273F:6B24  74 0E                                jz      loc_1341                ; Jump if zero +273F:6B26  8B D8                                mov     bx,ax +273F:6B28  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:6B2A  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:6B2C  03 F3                                add     si,bx +273F:6B2E  F7 26 336A                           mul     word ptr ds:[336Ah]     ; (273F:336A=40C7h) dx:ax = data * ax +273F:6B32  03 F8                                add     di,ax +273F:6B34                       loc_1341:                                       ;  xref 273F:6B24 +273F:6B34  8B 0E 335C                           mov     cx, popmenu_num_visible_items +273F:6B38  D0 E1                                shl     cl,1                    ; Shift w/zeros fill +273F:6B3A  80 E9 01                             sub     cl,1 + +273F:6B3D                       locloop_1342:                                   ;  xref 273F:6B4D +273F:6B3D  56                                   push    si +273F:6B3E  57                                   push    di +273F:6B3F  8B 34                                mov     si,[si] +273F:6B41  E8 000D                              call    sub_164                 ; (6B51) +273F:6B44  5F                                   pop     di +273F:6B45  5E                                   pop     si +273F:6B46  03 3E 336A                           add     di,word ptr ds:[336Ah]  ; (273F:336A=40C7h) +273F:6B4A  83 C6 04                             add     si,4 +273F:6B4D  E2 EE                                loop    locloop_1342            ; Loop if cx > 0 + +273F:6B4F  5D                                   pop     bp +273F:6B50  C3                                   retn +                       menu_create_popmenu      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6B41 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6B51                       sub_164         proc    near +273F:6B51  51                                   push    cx +273F:6B52  AC                                   lodsb                           ; String [si] to al +273F:6B53  8B 16 33DE                           mov     dx,word ptr ds:[33DEh]  ; (273F:33DE=0F300h) +273F:6B57  3B 0E 335C                           cmp     cx, popmenu_num_visible_items +273F:6B5B  75 08                                jne     loc_1343                ; Jump if not equal +273F:6B5D  8B 16 33DC                           mov     dx,word ptr ds:[33DCh]  ; (273F:33DC=7BB9h) +273F:6B61  89 36 3372                           mov     word ptr ds:[3372h],si  ; (273F:3372=0C31Fh) +273F:6B65                       loc_1343:                                       ;  xref 273F:6B5B +273F:6B65  8A 0E 334E                           mov     cl,byte ptr ds:[334Eh]  ; (273F:334E=0E4h) +273F:6B69  32 ED                                xor     ch,ch                   ; Zero register + +273F:6B6B                       locloop_1344:                                   ;  xref 273F:6B78 +273F:6B6B  AC                                   lodsb                           ; String [si] to al +273F:6B6C  0A C0                                or      al,al                   ; Zero ? +273F:6B6E  74 0C                                jz      locloop_1345            ; Jump if zero +273F:6B70  FF 16 336C                           call    word ptr ds:[336Ch]     ; (273F:336C=8301h) +273F:6B74  03 3E 336E                           add     di,word ptr ds:[336Eh]  ; (273F:336E=1EDh) +273F:6B78  E2 F1                                loop    locloop_1344            ; Loop if cx > 0 + +273F:6B7A  EB 0C                                jmp     short loc_1346          ; (6B88) + +273F:6B7C                       locloop_1345:                                   ;  xref 273F:6B6E, 6B86 +273F:6B7C  B0 20                                mov     al,20h                  ; ' ' +273F:6B7E  FF 16 336C                           call    word ptr ds:[336Ch]     ; (273F:336C=8301h) +273F:6B82  03 3E 336E                           add     di,word ptr ds:[336Eh]  ; (273F:336E=1EDh) +273F:6B86  E2 F4                                loop    locloop_1345            ; Loop if cx > 0 + +273F:6B88                       loc_1346:                                       ;  xref 273F:6B7A +273F:6B88  59                                   pop     cx +273F:6B89  C3                                   retn +                                sub_164         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:69A1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6B8A                       sub_165         proc    near +273F:6B8A  55                                   push    bp +273F:6B8B  1E                                   push    ds +273F:6B8C  07                                   pop     es +273F:6B8D úBE 31E4                              mov     si, popmenu_entry_count +273F:6B90  AD                                   lodsw                           ; String [si] to ax +273F:6B91  8B C8                                mov     cx,ax +273F:6B93  89 0E 334C                           mov     popmenu_num_entries, cx +273F:6B97  0B C9                                or      cx,cx                   ; Zero ? +273F:6B99  75 02                                jnz     loc_1347                ; Jump if not zero +273F:6B9B  5D                                   pop     bp +273F:6B9C  C3                                   retn +273F:6B9D                       loc_1347:                                       ;  xref 273F:6B99 +273F:6B9D  C7 06 334E 0004                      mov     word ptr ds:[334Eh],4   ; (273F:334E=83E4h) +273F:6BA3 úBF 30D4                              mov     di,30D4h                ; (273F:30D4=11h) + +273F:6BA6                       locloop_1348:                                   ;  xref 273F:6C14 +273F:6BA6  83 C6 02                             add     si,2 +273F:6BA9  89 75 04                             mov     [di+4],si +273F:6BAC  C7 45 06 0000                        mov     word ptr [di+6],0 +273F:6BB1  51                                   push    cx +273F:6BB2  B9 0004                              mov     cx,4 +273F:6BB5  8B EF                                mov     bp,di + +273F:6BB7                       locloop_1349:                                   ;  xref 273F:6BBD +273F:6BB7  AC                                   lodsb                           ; String [si] to al +273F:6BB8  AA                                   stosb                           ; Store al to es:[di] +273F:6BB9  0A C0                                or      al,al                   ; Zero ? +273F:6BBB  74 05                                jz      loc_1351                ; Jump if zero +273F:6BBD  E2 F8                                loop    locloop_1349            ; Loop if cx > 0 + +273F:6BBF  EB 03                                jmp     short loc_1352          ; (6BC4) + +273F:6BC1                       locloop_1350:                                   ;  xref 273F:6BC2 +273F:6BC1  AA                                   stosb                           ; Store al to es:[di] +273F:6BC2                       loc_1351:                                       ;  xref 273F:6BBB +273F:6BC2  E2 FD                                loop    locloop_1350            ; Loop if cx > 0 + +273F:6BC4                       loc_1352:                                       ;  xref 273F:6BBF +273F:6BC4  59                                   pop     cx +273F:6BC5  8B 45 FC                             mov     ax,[di-4] +273F:6BC8  8B 55 FE                             mov     dx,[di-2] +273F:6BCB úBB 30D4                              mov     bx,30D4h                ; (273F:30D4=11h) +273F:6BCE                       loc_1353:                                       ;  xref 273F:6BF8 +273F:6BCE ú3B DD                                cmp     bx,bp +273F:6BD0  74 28                                je      loc_1357                ; Jump if equal +273F:6BD2  3A 07                                cmp     al,[bx] +273F:6BD4  72 1B                                jb      loc_1355                ; Jump if below +273F:6BD6  75 13                                jnz     loc_1354                ; Jump if not zero +273F:6BD8  3A 67 01                             cmp     ah,[bx+1] +273F:6BDB  72 14                                jb      loc_1355                ; Jump if below +273F:6BDD  75 0C                                jnz     loc_1354                ; Jump if not zero +273F:6BDF  3A 57 02                             cmp     dl,[bx+2] +273F:6BE2  72 0D                                jb      loc_1355                ; Jump if below +273F:6BE4  75 05                                jnz     loc_1354                ; Jump if not zero +273F:6BE6  3A 77 03                             cmp     dh,[bx+3] +273F:6BE9  72 06                                jb      loc_1355                ; Jump if below +273F:6BEB                       loc_1354:                                       ;  xref 273F:6BD6, 6BDD, 6BE4 +273F:6BEB  83 45 02 04                          add     word ptr [di+2],4 +273F:6BEF  EB 04                                jmp     short loc_1356          ; (6BF5) +273F:6BF1                       loc_1355:                                       ;  xref 273F:6BD4, 6BDB, 6BE2, 6BE9 +273F:6BF1  83 47 06 04                          add     word ptr [bx+6],4 +273F:6BF5                       loc_1356:                                       ;  xref 273F:6BEF +273F:6BF5  83 C3 08                             add     bx,8 +273F:6BF8  EB D4                                jmp     short loc_1353          ; (6BCE) +273F:6BFA                       loc_1357:                                       ;  xref 273F:6BD0 +273F:6BFA  B4 01                                mov     ah,1 +273F:6BFC  83 EE 01                             sub     si,1 +273F:6BFF                       loc_1358:                                       ;  xref 273F:6C05 +273F:6BFF  80 C4 01                             add     ah,1 +273F:6C02  AC                                   lodsb                           ; String [si] to al +273F:6C03  0A C0                                or      al,al                   ; Zero ? +273F:6C05  75 F8                                jnz     loc_1358                ; Jump if not zero +273F:6C07  3A 26 334E                           cmp     ah,byte ptr ds:[334Eh]  ; (273F:334E=0E4h) +273F:6C0B  72 04                                jb      loc_1359                ; Jump if below +273F:6C0D  88 26 334E                           mov     byte ptr ds:[334Eh],ah  ; (273F:334E=0E4h) +273F:6C11                       loc_1359:                                       ;  xref 273F:6C0B +273F:6C11  83 C7 04                             add     di,4 +273F:6C14  E2 90                                loop    locloop_1348            ; Loop if cx > 0 + +273F:6C16  8B 0E 334C                           mov     cx, popmenu_num_entries +273F:6C1A  51                                   push    cx +273F:6C1B  81 EF 30D4                           sub     di,30D4h +273F:6C1F  D1 EF                                shr     di,1                    ; Shift w/zeros fill +273F:6C21 ú81 C7 3184                           add     di,3184h                ; (273F:3184=33h) +273F:6C25  B8 33E2                              mov     ax,33E2h +273F:6C28  B9 0008                              mov     cx,8 +273F:6C2B  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:6C2D úBE 30D8                              mov     si,30D8h                ; (273F:30D8=0FFh) +273F:6C30 úBF 3174                              mov     di,3174h                ; (273F:3174=7) +273F:6C33  B8 33E2                              mov     ax,33E2h +273F:6C36  B9 0008                              mov     cx,8 +273F:6C39  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:6C3B  59                                   pop     cx +273F:6C3C  33 D2                                xor     dx,dx                   ; Zero register + +273F:6C3E                       locloop_1360:                                   ;  xref 273F:6C4C +273F:6C3E  AD                                   lodsw                           ; String [si] to ax +273F:6C3F  8B 1C                                mov     bx,[si] +273F:6C41  89 01                                mov     [bx+di],ax +273F:6C43  89 51 02                             mov     [bx+di+2],dx +273F:6C46  83 C6 06                             add     si,6 +273F:6C49  83 C2 01                             add     dx,1 +273F:6C4C  E2 F0                                loop    locloop_1360            ; Loop if cx > 0 + +273F:6C4E  5D                                   pop     bp + +273F:6C4F                       loc_ret_1361:                                   ;  xref 273F:6C55 +273F:6C4F  C3                                   retn +                                sub_165         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:66D8, 66E6, 6710, 673E, 67FB, 6804, 6821 +                                ;                             6844, 6956, 69B4 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6C50                       sub_166         proc    near +273F:6C50  F6 06 337D FF                        test    data_269,0FFh           ; (273F:337D=0) +273F:6C55  75 F8                                jnz     loc_ret_1361            ; Jump if not zero +273F:6C57  8E C5                                mov     es,bp +273F:6C59  26: C6 06 4BF0 02                    mov     byte ptr es:data_46e,2  ; (0000:4BF0=28h) +273F:6C5F  50                                   push    ax +273F:6C60  53                                   push    bx +273F:6C61  8B F3                                mov     si,bx +273F:6C63  A1 3370                              mov     ax,word ptr ds:[3370h]  ; (273F:3370=0E375h) +273F:6C66  8E C0                                mov     es,ax +273F:6C68  33 D2                                xor     dx,dx                   ; Zero register +273F:6C6A  B1 03                                mov     cl,3 +273F:6C6C                       loc_1362:                                       ;  xref 273F:6C7A +273F:6C6C úAC                                   lodsb                           ; String [si] to al +273F:6C6D  2C 20                                sub     al,20h                  ; ' ' +273F:6C6F  72 0B                                jc      loc_1363                ; Jump if carry Set +273F:6C71  32 E4                                xor     ah,ah                   ; Zero register +273F:6C73  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:6C75  8B D8                                mov     bx,ax +273F:6C77  26: 02 17                            add     dl,es:[bx] +273F:6C7A  EB F0                                jmp     short loc_1362          ; (6C6C) +273F:6C7C                       loc_1363:                                       ;  xref 273F:6C6F +273F:6C7C  26: 02 16 0000                       add     dl,es:data_1454e        ; (E375:0000=0) +273F:6C81  A1 335E                              mov     ax, data_335E +273F:6C84  3D 0001                              cmp     ax,1 +273F:6C87  75 09                                jne     loc_1364                ; Jump if not equal +273F:6C89  1E                                   push    ds +273F:6C8A  50                                   push    ax +273F:6C8B  8E DD                                mov     ds,bp +273F:6C8D  E8 0375                              call    menubar_clear_image +273F:6C90  58                                   pop     ax +273F:6C91  1F                                   pop     ds +273F:6C92                       loc_1364:                                       ;  xref 273F:6C87 +273F:6C92  BB 0140                              mov     bx,140h +273F:6C95  8A CA                                mov     cl,dl +273F:6C97  32 ED                                xor     ch,ch                   ; Zero register +273F:6C99  33 D2                                xor     dx,dx                   ; Zero register +273F:6C9B  F7 F3                                div     bx                      ; ax,dx rem=dx:ax/reg +273F:6C9D  8B F2                                mov     si,dx +273F:6C9F  03 F1                                add     si,cx +273F:6CA1  3B F3                                cmp     si,bx +273F:6CA3  72 17                                jb      loc_1365                ; Jump if below +273F:6CA5  05 0001                              add     ax,1 +273F:6CA8  50                                   push    ax +273F:6CA9  50                                   push    ax +273F:6CAA  53                                   push    bx +273F:6CAB  51                                   push    cx +273F:6CAC  1E                                   push    ds +273F:6CAD  8E DD                                mov     ds,bp +273F:6CAF  E8 036A                              call    talk_clear_line +273F:6CB2  1F                                   pop     ds +273F:6CB3  59                                   pop     cx +273F:6CB4  5B                                   pop     bx +273F:6CB5  58                                   pop     ax +273F:6CB6  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:6CB8  A3 335E                              mov     data_335E, ax +273F:6CBB  58                                   pop     ax +273F:6CBC                       loc_1365:                                       ;  xref 273F:6CA3 +273F:6CBC  01 0E 335E                           add     data_335E, cx +273F:6CC0  0B C0                                or      ax,ax                   ; Zero ? +273F:6CC2  74 03                                jz      loc_1366                ; Jump if zero +273F:6CC4  E8 0047                              call    sub_167                 ; (6D0E) +273F:6CC7                       loc_1366:                                       ;  xref 273F:6CC2 +273F:6CC7  8B CA                                mov     cx,dx +273F:6CC9  F7 26 336A                           mul     word ptr ds:[336Ah]     ; (273F:336A=40C7h) dx:ax = data * ax +273F:6CCD  8B F8                                mov     di,ax +273F:6CCF  8B 1E 3376                           mov     bx,data_265             ; (273F:3376=0F632h) +273F:6CD3  8E C3                                mov     es,bx +273F:6CD5  B7 06                                mov     bh,6 +273F:6CD7  5E                                   pop     si +273F:6CD8  81 3E 3368 362D                      cmp     menu_items_proc2, offset vga_menu_items +273F:6CDE  75 04                                jne     loc_1367                ; Jump if not equal +273F:6CE0  03 F9                                add     di,cx +273F:6CE2  EB 0C                                jmp     short loc_1368          ; (6CF0) +273F:6CE4                       loc_1367:                                       ;  xref 273F:6CDE +273F:6CE4  8B C1                                mov     ax,cx +273F:6CE6  80 E1 07                             and     cl,7 +273F:6CE9  25 01F8                              and     ax,1F8h +273F:6CEC  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:6CEE  03 F8                                add     di,ax +273F:6CF0                       loc_1368:                                       ;  xref 273F:6CE2, 6D0A +273F:6CF0 úAC                                   lodsb                           ; String [si] to al +273F:6CF1  2C 20                                sub     al,20h                  ; ' ' +273F:6CF3  72 17                                jc      loc_1369                ; Jump if carry Set +273F:6CF5  1E                                   push    ds +273F:6CF6  55                                   push    bp +273F:6CF7  8B 2E 3374                           mov     bp,data_264             ; (273F:3374=0FF32h) +273F:6CFB  1F                                   pop     ds +273F:6CFC  8B 1E 076E                           mov     bx, data_571 +273F:6D00  8A 7F 04                             mov     bh,[bx+4] +273F:6D03  FF 16 075A                           call    [display2_character_proc] +273F:6D07  8C DD                                mov     bp,ds +273F:6D09  1F                                   pop     ds +273F:6D0A  EB E4                                jmp     short loc_1368          ; (6CF0) +273F:6D0C                       loc_1369:                                       ;  xref 273F:6CF3 +273F:6D0C  58                                   pop     ax +273F:6D0D  C3                                   retn +                                sub_166         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6897, 6CC4 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6D0E                       sub_167         proc    near +273F:6D0E  50                                   push    ax +273F:6D0F  51                                   push    cx +273F:6D10  52                                   push    dx +273F:6D11  1E                                   push    ds +273F:6D12  55                                   push    bp +273F:6D13  8E DD                                mov     ds,bp +273F:6D15  33 C0                                xor     ax,ax                   ; Zero register +273F:6D17  33 DB                                xor     bx,bx                   ; Zero register +273F:6D19  BD 0027                              mov     bp,27h +273F:6D1C  BA 0001                              mov     dx,1 +273F:6D1F  B9 0001                              mov     cx,1 +273F:6D22  E8 9E5E                              call    sub_21                  ; (0B83) +273F:6D25  5D                                   pop     bp +273F:6D26  1F                                   pop     ds +273F:6D27  5A                                   pop     dx +273F:6D28  59                                   pop     cx +273F:6D29  58                                   pop     ax +273F:6D2A  C3                                   retn +                                sub_167         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:67DB +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6D2B                       sub_168         proc    near +273F:6D2B  1E                                   push    ds +273F:6D2C  1E                                   push    ds +273F:6D2D  07                                   pop     es +273F:6D2E  8E DD                                mov     ds,bp +273F:6D30 úBF 31E4                              mov     di,31E4h                ; (273F:31E4=0E4h) +273F:6D33  0B C9                                or      cx,cx                   ; Zero ? +273F:6D35  79 05                                jns     loc_1370                ; Jump if not sign +273F:6D37  8A 4C FF                             mov     cl,[si-1] +273F:6D3A  32 ED                                xor     ch,ch                   ; Zero register +273F:6D3C                       loc_1370:                                       ;  xref 273F:6D35 +273F:6D3C  8B C1                                mov     ax,cx +273F:6D3E  AB                                   stosw                           ; Store ax to es:[di] + +273F:6D3F                       locloop_1371:                                   ;  xref 273F:6D4B +273F:6D3F  8B 07                                mov     ax,[bx] +273F:6D41  83 C3 02                             add     bx,2 +273F:6D44  AB                                   stosw                           ; Store ax to es:[di] +273F:6D45                       loc_1372:                                       ;  xref 273F:6D49 +273F:6D45  AC                                   lodsb                           ; String [si] to al +273F:6D46  AA                                   stosb                           ; Store al to es:[di] +273F:6D47  0A C0                                or      al,al                   ; Zero ? +273F:6D49  75 FA                                jnz     loc_1372                ; Jump if not zero +273F:6D4B  E2 F2                                loop    locloop_1371            ; Loop if cx > 0 + +273F:6D4D  1F                                   pop     ds +273F:6D4E  C3                                   retn +                                sub_168         endp + +273F:6D4F  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                         menubar_handle_menu    proc near + +273F:6D50  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:6D55  C6 06 38B0 01                        mov     byte ptr ds:[38B0h],1   ; (273F:38B0=0EAh) +273F:6D5A  E8 B218                              call    show_arrow_cursor +273F:6D5D  E8 0287                              call    sub_173                 ; (6FE7) +273F:6D60  C7 06 4BF1 0000                      mov     menuitem_table_location, 0 +273F:6D66                       loc_1374:                                       ;  xref 273F:6E6A, 6EA4 +273F:6D66 úE8 27B7                              call    check_keypress                 ; (9520) +273F:6D69  74 71                                jz      loc_1380                ; Jump if zero +273F:6D6B  3C C8                                cmp     al,0C8h +273F:6D6D  75 1A                                jne     loc_1375                ; Jump if not equal +273F:6D6F  83 2E 11D3 08                        sub     mouse_y, 8 +273F:6D74  83 2E 11D8 08                        sub     mouse_y2, 8 +273F:6D79  73 5D                                jnc     loc_1379                ; Jump if carry=0 +273F:6D7B  C7 06 11D8 0004                      mov     mouse_y2, 4 +273F:6D81  C7 06 11D3 0004                      mov     mouse_y, 4 +273F:6D87  EB 4F                                jmp     short loc_1379          ; (6DD8) +273F:6D89                       loc_1375:                                       ;  xref 273F:6D6D +273F:6D89  3C D0                                cmp     al,0D0h +273F:6D8B  75 13                                jne     loc_1376                ; Jump if not equal +273F:6D8D  83 3E 11D8 64                        cmp     mouse_y2, 64h  +273F:6D92  73 44                                jae     loc_1379                ; Jump if above or = +273F:6D94  83 06 11D8 08                        add     mouse_y2, 8 +273F:6D99  83 06 11D3 08                        add     mouse_y, 8 +273F:6D9E  EB 38                                jmp     short loc_1379          ; (6DD8) +273F:6DA0                       loc_1376:                                       ;  xref 273F:6D8B +273F:6DA0  3C CB                                cmp     al,0CBh +273F:6DA2  75 13                                jne     loc_1377                ; Jump if not equal +273F:6DA4  83 3E 11D6 15                        cmp     mouse_x2, 15h  +273F:6DA9  72 2D                                jb      loc_1379                ; Jump if below +273F:6DAB  83 2E 11D6 14                        sub     mouse_x2, 14h +273F:6DB0  83 2E 11D1 14                        sub     mouse_x, 14h +273F:6DB5  EB 21                                jmp     short loc_1379          ; (6DD8) +273F:6DB7                       loc_1377:                                       ;  xref 273F:6DA2 +273F:6DB7  3C CD                                cmp     al,0CDh +273F:6DB9  75 14                                jne     loc_1378                ; Jump if not equal +273F:6DBB  81 3E 11D6 0135                      cmp     mouse_x2, 135h +273F:6DC1  73 15                                jae     loc_1379                ; Jump if above or = +273F:6DC3  83 06 11D6 14                        add     mouse_x2, 14h +273F:6DC8  83 06 11D1 14                        add     mouse_x, 14h +273F:6DCD  EB 09                                jmp     short loc_1379          ; (6DD8) +273F:6DCF                       loc_1378:                                       ;  xref 273F:6DB9 +273F:6DCF  3C 0D                                cmp     al,0Dh +273F:6DD1  75 09                                jne     loc_1380                ; Jump if not equal +273F:6DD3  C6 06 11D5 00                        mov     mouse_buttons, 0 +273F:6DD8                       loc_1379:                                       ;  xref 273F:6D79, 6D87, 6D92, 6D9E +                                                                                ;            6DA9, 6DB5, 6DC1, 6DCD +273F:6DD8  FF 16 075E                           call    [show_cursor_proc] +273F:6DDC                       loc_1380:                                       ;  xref 273F:6D69, 6DD1 +273F:6DDC  A1 11D8                              mov     ax, mouse_y2 +273F:6DDF  A3 4BF6                              mov     word ptr ds:[4BF6h],ax  ; (273F:4BF6=0C683h) +273F:6DE2  A1 11D6                              mov     ax, mouse_x2 +273F:6DE5  A3 4BF8                              mov     data_unk1, ax +273F:6DE8  A0 11D5                              mov     al, mouse_buttons +273F:6DEB  A2 4BFA                              mov     mouse_buttons_temp, al +273F:6DEE  F6 06 4BF0 FF                        test    byte ptr ds:[4BF0h],0FFh ; (273F:4BF0=3) +273F:6DF3  75 07                                jnz     loc_1381                ; Jump if not zero +273F:6DF5  F6 06 4BF5 FF                        test    byte ptr ds:[4BF5h],0FFh ; (273F:4BF5=0F5h) +273F:6DFA  74 09                                jz      loc_1382                ; Jump if zero +273F:6DFC                       loc_1381:                                       ;  xref 273F:6DF3 +273F:6DFC  FF 16 0744                           call    word ptr [show_screen_proc] +273F:6E00  C6 06 4BF5 00                        mov     byte ptr ds:[4BF5h],0   ; (273F:4BF5=0F5h) +273F:6E05                       loc_1382: +273F:6E05  A1 4CE4                              mov     ax, data_segment2       ; Stores off-screen copy of menubar +273F:6E08  8E C0                                mov     es,ax +273F:6E0A  F6 06 4BFA FF                        test    mouse_buttons_temp, 0FFh ; Mouse button released? +273F:6E0F  74 5C                                jz      loc_1390                 ; Yes +273F:6E11  83 3E 4BF6 08                        cmp     word ptr ds:[4BF6h],8 +273F:6E16  72 08                                jb      loc_1383                ; Jump if below +273F:6E18  F7 06 4BF1 FFFF                      test    menuitem_table_location, 0FFFFh +273F:6E1E  75 69                                jnz     loc_1392                ; Jump if not zero +273F:6E20                       loc_1383:                                       ;  xref 273F:6E16 +273F:6E20 úBE 4C0B                              mov     si, offset menuitem_table_info +273F:6E23  A1 4BF8                              mov     ax, data_unk1 +273F:6E26  B9 0004                              mov     cx, MENUITEM_NUM_MENUS  ; 4 tables + +273F:6E29                       locloop_1384:                                   ;  xref 273F:6E3C +273F:6E29  F7 44 0A FFFF                        test    word ptr [si+0Ah],0FFFFh +273F:6E2E  74 09                                jz      loc_1385                ; Jump if zero +273F:6E30  3B 04                                cmp     ax,[si] +273F:6E32  72 0A                                jb      loc_1386                ; Jump if below +273F:6E34  3B 44 02                             cmp     ax,[si+2] +273F:6E37  72 07                                jb      loc_1387                ; Jump if below + +273F:6E39                       loc_1385:                                       ; table diff is 0Eh +273F:6E39  83 C6 0E                             add     si, offset menuitem_table_file - offset menuitem_table_info +273F:6E3C  E2 EB                                loop    locloop_1384            ; Loop if cx > 0 + +273F:6E3E                       loc_1386:                                       ;  xref 273F:6E32 +273F:6E3E  33 F6                                xor     si,si                   ; Zero register +273F:6E40                       loc_1387:                                       ;  xref 273F:6E37 +273F:6E40  3B 36 4BF1                           cmp     si, menuitem_table_location +273F:6E44  74 24                                je      loc_1389                ; Jump if equal +273F:6E46  56                                   push    si +273F:6E47  FF 16 0752                           call    [show_compressed_screen_proc] +273F:6E4B  E8 A6C0                              call    room_add_animations +273F:6E4E  5E                                   pop     si +273F:6E4F  0B F6                                or      si,si                   ; Zero ? +273F:6E51  74 06                                jz      loc_1388                ; Jump if zero +273F:6E53  E8 013C                              call    toggle_menu_highlight +273F:6E56  E8 00B1                              call    menubar_create_menu +273F:6E59                       loc_1388:                                       ;  xref 273F:6E51 +273F:6E59  C7 06 4BF3 0000                      mov     word ptr ds:[4BF3h],0   ; (273F:4BF3=3E6h) +273F:6E5F  87 36 4BF1                           xchg    menuitem_table_location, si +273F:6E63  0B F6                                or      si,si                   ; Menu currently visible? +273F:6E65  74 03                                jz      loc_1389                ; No, so skip removing it +273F:6E67  E8 0128                              call    toggle_menu_highlight +273F:6E6A                       loc_1389:                                       ;  xref 273F:6E44, 6E65 +273F:6E6A  E9 FEF9                              jmp     loc_1374                ; (6D66) +273F:6E6D                       loc_1390:                                       ;  xref 273F:6E0F +273F:6E6D  E8 004C                              call    sub_169                 ; (6EBC) + +; At this point a menu item has been selected. I suspect that: +;      ax=item index in menu (1 to 3), BP=> 2=Info, 4=File, 3=>Help +;      If no item selected, then bp = 0 & ax = 0 + +273F:6E70  0B C0                                or      ax,ax                   ; Zero ? +273F:6E72  75 33                                jnz     loc_1395                ; Jump if not zero +273F:6E74                       loc_1391:                                       ;  xref 273F:6EBA +273F:6E74 úC6 06 38B0 00                        mov     byte ptr ds:[38B0h],0   ; (273F:38B0=0EAh) +273F:6E79  80 26 11D0 FE                        and     menubar_state, 0FEh ; (273F:11D0=56h) +273F:6E7E  E8 B0F4                              call    show_arrow_cursor +273F:6E81  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:6E86  E9 017C                              jmp     menubar_clear_image +273F:6E89                       loc_1392:                                       ;  xref 273F:6E1E +273F:6E89  E8 0030                              call    sub_169                 ; (6EBC) +273F:6E8C  0B C0                                or      ax,ax                   ; Zero ? +273F:6E8E  74 09                                jz      loc_1393                ; Jump if zero +273F:6E90  3B 06 4BF3                           cmp     ax,word ptr ds:[4BF3h]  ; (273F:4BF3=3E6h) +273F:6E94  74 0E                                je      loc_1394                ; Jump if equal +273F:6E96  E8 010A                              call    sub_172                 ; (6FA3) +273F:6E99                       loc_1393:                                       ;  xref 273F:6E8E +273F:6E99  87 06 4BF3                           xchg    word ptr ds:[4BF3h],ax  ; (273F:4BF3=3E6h) +273F:6E9D  0B C0                                or      ax,ax                   ; Zero ? +273F:6E9F  74 03                                jz      loc_1394                ; Jump if zero +273F:6EA1  E8 00FF                              call    sub_172                 ; (6FA3) +273F:6EA4                       loc_1394:                                       ;  xref 273F:6E94, 6E9F +273F:6EA4  E9 FEBF                              jmp     loc_1374                ; (6D66) +273F:6EA7                       loc_1395:                                       ;  xref 273F:6E72 +273F:6EA7  8B 36 4BF1                           mov     si, menuitem_table_location +273F:6EAB  8B 74 0C                             mov     si,[si+0Ch] +273F:6EAE  48                                   dec     ax +273F:6EAF  B3 04                                mov     bl,4 +273F:6EB1  F6 E3                                mul     bl                      ; ax = reg * al +273F:6EB3  03 F0                                add     si,ax +273F:6EB5  8B 44 02                             mov     ax,[si+2] +273F:6EB8  FF D0                                call    ax                      ; Handle the selected item +273F:6EBA  EB B8                                jmp     short loc_1391           + +                         menubar_handle_menu    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6E6D, 6E89 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6EBC                       sub_169         proc    near +273F:6EBC  8B 36 4BF1                           mov     si, menuitem_table_location +273F:6EC0  B1 03                                mov     cl,3 +273F:6EC2  8B 44 04                             mov     ax,[si+4] +273F:6EC5  40                                   inc     ax +273F:6EC6  8B 5C 08                             mov     bx,[si+8] +273F:6EC9  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:6ECB  D3 E3                                shl     bx,cl                   ; Shift w/zeros fill +273F:6ECD  39 06 4BF8                           cmp     data_unk1, ax +273F:6ED1  72 34                                jb      loc_1397                ; Jump if below +273F:6ED3  03 D8                                add     bx,ax +273F:6ED5  39 1E 4BF8                           cmp     data_unk1, bx +273F:6ED9  73 2C                                jae     loc_1397                ; Jump if above or = +273F:6EDB  8B 44 06                             mov     ax,[si+6] +273F:6EDE  8B 5C 0A                             mov     bx,[si+0Ah] +273F:6EE1  43                                   inc     bx +273F:6EE2  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:6EE4  D3 E3                                shl     bx,cl                   ; Shift w/zeros fill +273F:6EE6  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:6EEB  74 03                                je      loc_1396                ; Jump if equal +273F:6EED  05 0003                              add     ax,3 +273F:6EF0                       loc_1396:                                       ;  xref 273F:6EEB +273F:6EF0  3B 06 4BF6                           cmp     ax,word ptr ds:[4BF6h]  ; (273F:4BF6=0C683h) +273F:6EF4  73 11                                jae     loc_1397                ; Jump if above or = +273F:6EF6  03 D8                                add     bx,ax +273F:6EF8  39 1E 4BF6                           cmp     word ptr ds:[4BF6h],bx  ; (273F:4BF6=0C683h) +273F:6EFC  73 09                                jae     loc_1397                ; Jump if above or = +273F:6EFE  2B 06 4BF6                           sub     ax,word ptr ds:[4BF6h]  ; (273F:4BF6=0C683h) +273F:6F02  F7 D8                                neg     ax +273F:6F04  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:6F06  C3                                   retn +273F:6F07                       loc_1397:                                       ;  xref 273F:6ED1, 6ED9, 6EF4, 6EFC +273F:6F07  33 C0                                xor     ax,ax                   ; Zero register +273F:6F09  C3                                   retn +                                sub_169         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6E56 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +; SI = pointer to data block containing the details of the menu + +273F:6F0A               menubar_create_menu     proc    near +273F:6F0A  56                                   push    si +273F:6F0B  56                                   push    si +273F:6F0C  8B 44 04                             mov     ax,[si+4] +273F:6F0F  8B 5C 06                             mov     bx,[si+6] +273F:6F12  8B 4C 08                             mov     cx,[si+8] +273F:6F15  8B 54 0A                             mov     dx,[si+0Ah]             ; Number of menu entries +273F:6F18  BD 0001                              mov     bp,1 +273F:6F1B  FF 16 077A                           call    [draw_dialog_proc] +273F:6F1F  5E                                   pop     si +273F:6F20  8B 4C 0A                             mov     cx,[si+0Ah]             ; Number of menu entries +273F:6F23  8B 44 06                             mov     ax,[si+6] +273F:6F26  FE C0                                inc     al +273F:6F28  F7 26 074C                           mul     menubar_block_size      ; Get # lines to save +273F:6F2C  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:6F31  74 0C                                je      loc_1398                ; Jump if equal +273F:6F33  03 06 0748                           add     ax, screen_width +273F:6F37  03 06 0748                           add     ax, screen_width +273F:6F3B  03 06 0748                           add     ax, screen_width +273F:6F3F                       loc_1398:                                       ;  xref 273F:6F31 +273F:6F3F  8B F8                                mov     di,ax +273F:6F41  8B 44 04                             mov     ax,[si+4] +273F:6F44  FE C0                                inc     al +273F:6F46  F7 26 074A                           mul     char_width                ; (273F:074A=43A0h) dx:ax = data * ax +273F:6F4A  03 F8                                add     di,ax +273F:6F4C  8B 2E 4CF2                           mov     bp, font_segment +273F:6F50  8B 1E 076E                           mov     bx, data_571 +273F:6F54  8B 17                                mov     dx,[bx] +273F:6F56  8B 5C 08                             mov     bx,[si+8]               ; Max chars in menu +273F:6F59  8B 4C 0A                             mov     cx,[si+0Ah] +273F:6F5C  8B 74 0C                             mov     si,[si+0Ch]             ; Offset of list of menuitem text +                                                                                ; strings and handler offsets +273F:6F5F                       locloop_1399:                                    +273F:6F5F  57                                   push    di +273F:6F60  51                                   push    cx +273F:6F61  56                                   push    si +273F:6F62  8B 34                                mov     si,[si] +273F:6F64  8B CB                                mov     cx,bx + +273F:6F66                       locloop_1400:                                   ; Loop to add menu item text +273F:6F66  AC                                   lodsb                           ; Load next character +273F:6F67  0A C0                                or      al,al                   ; Is it the end of the string? +273F:6F69  74 0C                                jz      locloop_1401            ; Jump if yes +273F:6F6B  FF 16 076A                           call    [display_character_proc]; Load character +273F:6F6F  03 3E 074A                           add     di, char_width          ; Move the store position +273F:6F73  E2 F1                                loop    locloop_1400            ; Loop if cx > 0 + +273F:6F75  EB 0D                                jmp     short loc_1402          ; (6F84) + +273F:6F77                       locloop_1401:                                   ;  xref 273F:6F69, 6F82 +273F:6F77  B8 0020                              mov     ax,20h +273F:6F7A  FF 16 076A                           call    [display_character_proc] +273F:6F7E  03 3E 074A                           add     di, char_width +273F:6F82  E2 F3                                loop    locloop_1401            ; Loop if cx > 0 + +273F:6F84                       loc_1402:                                       ;  xref 273F:6F75 +273F:6F84  5E                                   pop     si +273F:6F85  59                                   pop     cx +273F:6F86  5F                                   pop     di +273F:6F87  03 3E 074C                           add     di, menubar_block_size +273F:6F8B  83 C6 04                             add     si,4 +273F:6F8E  E2 CF                                loop    locloop_1399            ; Loop if cx > 0 + +273F:6F90  5E                                   pop     si +273F:6F91  C3                                   retn +                        menubar_create_menu     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6E53, 6E67 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6F92             toggle_menu_highlight     proc    near +273F:6F92  8B 5C 02                             mov     bx,[si+2] +273F:6F95  8B 3C                                mov     di,[si] +273F:6F97  2B DF                                sub     bx,di +273F:6F99  FF 16 0772                           call    [toggle_menu_highlight_proc] +273F:6F9D  C6 06 4BF0 02                        mov     byte ptr ds:[4BF0h],2   ; (273F:4BF0=3) +273F:6FA2  C3                                   retn +                      toggle_menu_highlight     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6E96, 6EA1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6FA3                       sub_172         proc    near +273F:6FA3  50                                   push    ax +273F:6FA4  03 44 06                             add     ax,[si+6] +273F:6FA7  50                                   push    ax +273F:6FA8  BB 0A00                              mov     bx,0A00h +273F:6FAB  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:6FAD  8B F8                                mov     di,ax +273F:6FAF  8B 44 04                             mov     ax,[si+4] +273F:6FB2  40                                   inc     ax +273F:6FB3  50                                   push    ax +273F:6FB4  B3 08                                mov     bl,8 +273F:6FB6  F6 E3                                mul     bl                      ; ax = reg * al +273F:6FB8  03 F8                                add     di,ax +273F:6FBA  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:6FBF  74 04                                je      loc_1403                ; Jump if equal +273F:6FC1  81 C7 03C0                           add     di,3C0h +273F:6FC5                       loc_1403:                                       ;  xref 273F:6FBF +273F:6FC5  8B 5C 08                             mov     bx,[si+8] +273F:6FC8  53                                   push    bx +273F:6FC9  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:6FCB  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:6FCD  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:6FCF  FF 16 0770                           call    word ptr ds:[770h]      ; (273F:0770=6411h) +273F:6FD3  5D                                   pop     bp +273F:6FD4  58                                   pop     ax +273F:6FD5  5B                                   pop     bx +273F:6FD6  4B                                   dec     bx +273F:6FD7  BA 0002                              mov     dx,2 +273F:6FDA  B9 0001                              mov     cx,1 +273F:6FDD  E8 9BA3                              call    sub_21                  ; (0B83) +273F:6FE0  58                                   pop     ax +273F:6FE1  C6 06 4BF5 01                        mov     byte ptr ds:[4BF5h],1   ; (273F:4BF5=0F5h) +273F:6FE6  C3                                   retn +                                sub_172         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6D5D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:6FE7                       sub_173         proc    near +273F:6FE7  A1 4CE4                              mov     ax, data_segment2 +273F:6FEA  8E C0                                mov     es,ax +273F:6FEC  8B 0E 074C                           mov     cx, menubar_block_size +273F:6FF0  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:6FF2  A1 4CF6                              mov     ax,word ptr ds:[4CF6h]  ; (273F:4CF6=8BFFh) +273F:6FF5  1E                                   push    ds +273F:6FF6  8E D8                                mov     ds,ax +273F:6FF8  33 F6                                xor     si,si                   ; Zero register +273F:6FFA  33 FF                                xor     di,di                   ; Zero register +273F:6FFC  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:6FFE  1F                                   pop     ds +273F:6FFF  C6 06 4BF0 02                        mov     byte ptr ds:[4BF0h],2   ; (273F:4BF0=3) +273F:7004  C3                                   retn +                                sub_173         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0087, 1365, 1D10, 3C98, 6706, 6C8D, 70A5 +                                ;                             7BB7, 8FB2, A828 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                        menubar_clear_image    proc    near +273F:7005  A1 4CE4                              mov     ax, data_segment2 +273F:7008  8E C0                                mov     es,ax +273F:700A  8B 0E 074C                           mov     cx, menubar_block_size +273F:700E  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:7010  33 C0                                xor     ax,ax                   ; Zero register +273F:7012  33 FF                                xor     di,di                   ; Zero register +273F:7014  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:7016  C6 06 4BF0 02                        mov     byte ptr data_794,2     ; (31E4:4BF0=0) +273F:701B  C3                                   retn +                        menubar_clear_image     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:688C, 6CAF, 8DED +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          talk_clear_line       proc    near +273F:701C  0B C0                                or      ax,ax                   ; Zero ? +273F:701E  74 E5                                jz      menubar_clear_image +273F:7020  F7 26 074C                           mul     menubar_block_size +273F:7024  8B F8                                mov     di,ax +273F:7026  A1 4CE4                              mov     ax, data_segment2 +273F:7029  8E C0                                mov     es, ax +273F:702B  8B 0E 074C                           mov     cx, menubar_block_size +273F:702F  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:7031  33 C0                                xor     ax,ax                   ; Zero register +273F:7033  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:7035  C3                                   retn +                          talk_clear_line       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                               menuitem_quit    proc    near + +273F:7036  E8 000B                              call    confirm_dialog +273F:7039  74 01                                jz      loc_1405                ; Jump if zero +273F:703B  C3                                   retn +273F:703C                       loc_1405:                                       ;  xref 273F:7039 +273F:703C  B8 0000                              mov     ax,0 +273F:703F  B6 01                                mov     dh,1 +273F:7041  E8 CF60                              call    display_message         ; (3FA4) + +                               menuitem_quit    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7036, 70EA +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7044                   confirm_dialog      proc    near + +273F:7044  BE 5040                              mov     si,5040h +273F:7047  C7 44 08 0179                        mov     word ptr [si+8],179h +273F:704C  C6 06 38B0 01                        mov     byte ptr ds:[38B0h],1   ; (273F:38B0=0EAh) +273F:7051  E8 18B9                              call    sub_216                 ; (890D) +273F:7054  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:7059  75 03                                jne     loc_1406                ; Jump if not equal +273F:705B  E8 18AF                              call    sub_216                 ; (890D) +273F:705E                       loc_1406:                                       ;  xref 273F:7059 +273F:705E  E8 AF2A                              call    mouse_wait              ; (1F8B) +273F:7061                       loc_1407:                                       ;  xref 273F:707F +273F:7061 úE8 AF32                              call    pause_for_input         ; (1F96) +273F:7064  50                                   push    ax +273F:7065  80 26 11D0 FE                        and     menubar_state, 0FEh ; (273F:11D0=56h) +273F:706A  FF 16 075E                           call    [show_cursor_proc] +273F:706E  58                                   pop     ax +273F:706F  3C 6E                                cmp     al,6Eh                  ; 'n' +273F:7071  74 0E                                je      loc_1408                ; Jump if equal +273F:7073  3C 4E                                cmp     al,4Eh                  ; 'N' +273F:7075  74 0A                                je      loc_1408                ; Jump if equal +273F:7077  3C 79                                cmp     al,79h                  ; 'y' +273F:7079  74 08                                je      loc_ret_1409            ; Jump if equal +273F:707B  3C 59                                cmp     al,59h                  ; 'Y' +273F:707D  74 04                                je      loc_ret_1409            ; Jump if equal +273F:707F  EB E0                                jmp     short loc_1407          ; (7061) +273F:7081                       loc_1408:                                       ;  xref 273F:7071, 7075 +273F:7081  0C 01                                or      al,1 + +273F:7083                       loc_ret_1409:                                   ;  xref 273F:7079, 707D +273F:7083  C3                                   retn + +                            confirm_dialog      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                            menuitem_credits    proc    near + +273F:7084  80 0E 11D0 01                        or      menubar_state, 1        ; Hide the cursor +273F:7089  FF 16 075E                           call    [show_cursor_proc] +273F:708D  FF 36 9832                           push    room_number +273F:7091  C7 06 9832 0032                      mov     room_number, 32h +273F:7097  E8 98B4                              call    clear_layer_rects +273F:709A  E8 98D2                              call    room_load_layers +273F:709D  FF 16 0752                           call    [show_compressed_screen_proc] +273F:70A1  FF 16 0764                           call    [empty_palette_proc] +273F:70A5  E8 FF5D                              call    menubar_clear_image +273F:70A8  FF 16 0744                           call    [show_screen_proc] +273F:70AC  FF 16 0762                           call    [set_lower_palette_proc] + +273F:70B0  E8 AEE3                              call    pause_for_input         ; (1F96) +273F:70B3  E8 AEA9                              call    show_disk_cursor +273F:70B6  8F 06 9832                           pop     room_number +273F:70BA  E8 9891                              call    clear_layer_rects +273F:70BD  E8 98AF                              call    room_load_layers +273F:70C0  FF 16 074E                           call    word ptr ds:[74Eh]      ; (273F:074E=8010h) +273F:70C4  E8 9920                              call    sub_16                  ; (09E7) +273F:70C7  E8 9A34                              call    sub_19                  ; (0AFE) +273F:70CA  E8 C9E1                              call    replace_vga_palette     ; (3AAE) +273F:70CD  FF 16 0752                           call    [show_compressed_screen_proc] +273F:70D1  E8 A43A                              call    room_add_animations +273F:70D4  FF 16 0764                           call    [empty_palette_proc] +273F:70D8  FF 16 0744                           call    [show_screen_proc] +273F:70DC  FF 16 0762                           call    [set_lower_palette_proc] +273F:70E0  80 26 11D0 FE                        and     menubar_state, 0FEh +273F:70E5  FF 16 075E                           call    [show_cursor_proc] +273F:70E9  C3                                   retn + +                            menuitem_credits    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                           menuitem_restart     proc    near + +273F:70EA  E8 FF57                              call    confirm_dialog +273F:70ED  75 05                                jnz     loc_ret_1410            ; Jump if not zero +273F:70EF  80 0E 073D 10                        or      status_flags2, FLAG_RESTART  ; 10h + +273F:70F4                       loc_ret_1410:                                   ;  xref 273F:70ED +273F:70F4  C3                                   retn + +                           menuitem_restart     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8FEC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:70F5                 menuitem_textspeed    proc    near + +273F:70F5  BE 4C7F                              mov     si, offset slowtext_slow_substr +273F:70F8  80 36 CE20 80                        xor     byte ptr ds:data_498e,80h +273F:70FD  79 03                                jns     loc_1411                ; Jump if not sign +273F:70FF úBE 4C83                              mov     si, offset slowtext_fast_substr +273F:7102                       loc_1411: +273F:7102 úBF 4C74                              mov     di, offset menuitem_textspeed_str +273F:7105  B9 0002                              mov     cx, 2                   ; Four characters to replace +273F:7108  1E                                   push    ds +273F:7109  07                                   pop     es +273F:710A  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:710C  C3                                   retn + +                          menuitem_textspeed    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                              menuitem_sound    proc    near + +273F:710D  E8 30E3                              call    sub_257 +273F:7110  BE 4C91                              mov     si, offset sound_on_substr +273F:7113  F6 06 5660 02                        test    music_status, 2 +273F:7118  75 03                                jnz     loc_1412 +273F:711A úBE 4C95                              mov     si, offset sound_off_substr +273F:711D                       loc_1412: +273F:711D  80 36 5660 02                        xor     music_status, 2 +273F:7122 úBF 4C8D                              mov     di, offset menuitem_sound_str+6 ; Start of 'off' or 'on'  +273F:7125  B9 0002                              mov     cx,2                    ; Move four bytes +273F:7128  1E                                   push    ds +273F:7129  07                                   pop     es +273F:712A  F3/ A5                               rep     movsw +273F:712C  C3                                   retn + +                              menuitem_sound    endp + +273F:712D  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4380, 721C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                pathfind_flag_covered_cells     proc    near +273F:712E ú53                                   push    bx +273F:712F  E8 D262                              call    pathfind_get_cell +273F:7132  74 0D                                jz      loc_1416                ; Exit if animation offscreen + +273F:7134                       locloop_1414: +273F:7134  09 07                                or      [bx], ax                ; Flag cell as covered + +273F:7136  D0 E8                                shr     al, 1                   ; Rotate bit mask +273F:7138  73 05                                jnc     loc_1415                ; Jump if not passed bit 0 +273F:713A  83 C3 01                             add     bx, 1                   ; Move to next byte in data +273F:713D  B0 80                                mov     al, 80h                 ; Reset bit mask +273F:713F                       loc_1415: +273F:713F  E2 F3                                loop    locloop_1414            ; Loop for remaining cells + +273F:7141                       loc_1416: +273F:7141  5B                                   pop     bx +273F:7142  C3                                   retn +                pathfind_flag_covered_cells     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7245 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                pathfind_clear_covered_cells    proc    near +273F:7143  53                                   push    bx +273F:7144  E8 D24D                              call    pathfind_get_cell +273F:7147  74 12                                jz      loc_1420                ; Jump if zero +273F:7149  32 E4                                xor     ah,ah                   ; Zero register +273F:714B  F7 D0                                not     ax + +273F:714D                       locloop_1418:                                   ;  xref 273F:7159 +273F:714D  20 07                                and     [bx],al +273F:714F  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7151  72 06                                jc      loc_1419                ; Jump if carry Set +273F:7153  83 C3 01                             add     bx,1 +273F:7156  B8 FF7F                              mov     ax,0FF7Fh +273F:7159                       loc_1419:                                       ;  xref 273F:7151 +273F:7159  E2 F2                                loop    locloop_1418            ; Loop if cx > 0 + +273F:715B                       loc_1420:                                       ;  xref 273F:7147 +273F:715B  5B                                   pop     bx +273F:715C  C3                                   retn +                pathfind_clear_covered_cells    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       seq_set_frame_number     proc    near +273F:715D  E8 9B88                              call    get_room_resource_pointer +273F:7160  88 4C 2A                             mov     [si+2Ah],cl +273F:7163  C3                                   retn +                       seq_set_frame_number     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7164  E8 9B81                              call    get_room_resource_pointer + +273F:7167  E8 0008                              call    animation_load_2 +273F:716A  C6 45 10 00                          mov     byte ptr [di+ANIM_CAN_UNLOAD], 0 +273F:716E  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:88B7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:716F                 animation_load        proc    near +273F:716F  E8 9B76                              call    get_room_resource_pointer + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:7167, 7F7E + +273F:7172                 animation_load_2: +273F:7172 úE8 9F5E                              call    animation_find_slot + +; di = free animation list slot. si = pointer to resource, bx = resource Id + +273F:7175  89 7C 0B                             mov     [si+HS_ANIM_OFFSET], di  ; Store slot anim is placed in +273F:7178  89 5D 1B                             mov     [di+ANIM_HOTSPOT_ID], bx ; Save Id of anim resource +273F:717B  89 75 19                             mov     [di+ANIM_HOTSPOT_OFFSET], si ; Save ptr of anim resource +273F:717E  8B 44 0F                             mov     ax, [si+HS_Y]           ; Copy over Y start +273F:7181  89 45 02                             mov     [di+ANIM_Y], ax +273F:7184  8B 44 0D                             mov     ax, [si+HS_X]           ; Copy over X start +273F:7187  89 05                                mov     [di+ANIM_X], ax +273F:7189  8B 44 11                             mov     ax, [si+HS_WIDTH]       ; Copy over width +273F:718C  89 45 04                             mov     [di+ANIM_WIDTH], ax +273F:718F  8B 44 13                             mov     ax, [si+HS_HEIGHT]      ; Copy over height +273F:7192  89 45 06                             mov     [di+ANIM_HEIGHT], ax +273F:7195  8A 44 15                             mov     al, [si+HS_LAYER]       ; Copy layer +273F:7198  88 45 0C                             mov     [di+ANIM_LAYER], al +273F:719B  8A 44 16                             mov     al, [si+16h]  +273F:719E  88 45 0D                             mov     [di+ANIM_FLAGS], al +273F:71A1  C6 45 10 01                          mov     byte ptr [di+ANIM_CAN_UNLOAD], 1 +273F:71A5  8B 44 17                             mov     ax, [si+HS_TICK_PROC]   ; Copy tick handler proc +273F:71A8  89 45 11                             mov     [di+ANIM_TICK_PROC], ax +273F:71AB  8B 44 19                             mov     ax, [si+HS_WIDTH_COPY] +273F:71AE  89 45 13                             mov     [di+ANIM_WIDTH_COPY], ax +273F:71B1  8B 44 1B                             mov     ax, [si+HS_HEIGHT_COPY] +273F:71B4  89 45 15                             mov     [di+ANIM_HEIGHT_COPY], ax +273F:71B7  8B 44 1D                             mov     ax, [si+HS_Y_CORRECTION] ; Y correction +273F:71BA  89 45 17                             mov     [di+ANIM_Y_CORRECTION], ax +273F:71BD  C7 45 1E 0000                        mov     word ptr [di+ANIM_VOICE_CHAR_ID], 0 +273F:71C2  8B 44 06                             mov     ax, [si+HS_ROOM_NUM]    ; Copy room number +273F:71C5  89 45 0E                             mov     [di+ANIM_ROOM_NUM], ax +273F:71C8  8A 44 23                             mov     al, [si+HS_START_COLOUR] ; Copy colour offset +273F:71CB  88 45 28                             mov     [di+ANIM_START_COLOUR], al + +273F:71CE  8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] ; Get animation record +273F:71D1  8B 47 03                             mov     ax, [bx+PIXEL_DATA_SEGMENT] ; Get pixel data segment +273F:71D4  89 45 0A                             mov     [di+ANIM_SEGMENT], ax   ; Set it in animation +273F:71D7  33 C9                                xor     cx, cx +273F:71D9  F6 47 02 04                          test    byte ptr [bx+PIXEL_FLAGS], PIXELFLAG_HAS_TABLE +273F:71DD  74 07                                jz      loc_1422                ; Jump if zero +273F:71DF  8E C0                                mov     es, ax +273F:71E1  26: 8B 0E 0000                       mov     cx, es:[0] +273F:71E6                       loc_1422: +273F:71E6  89 4D 08                             mov     [di+ANIM_FRAME_OFFSET], cx ; Set frame +273F:71E9  C6 45 27 01                          mov     byte ptr [di+ANIM_UNKNOWN1], 1 +273F:71ED  C3                                   retn +                          animation_load        endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1326, 1D93, 5207, 538B, 5705, 5746, 57DC +                                ;                             5FF9, 720B, 8025, 826F, 86C6, 86D1, 86E8 +                                ;                             86F2, 8708, 8727, 8894, 9E82 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                    room_exit_hs_get_pointer    proc    near +273F:71EE úBE CE30                              mov     si, offset room_exit_joins_table +273F:71F1                       loc_1423:                                       ;  xref 273F:71FD +273F:71F1 ú3B 04                                cmp     ax, [si] +273F:71F3  74 0A                                je      loc_1424                ; Jump if equal +273F:71F5  3B 44 06                             cmp     ax, [si+REHS_HOTSPOT2_ID] +273F:71F8  74 09                                je      loc_1425                ; Jump if equal +273F:71FA  83 C6 11                             add     si, REHS_RECORD_SIZE +273F:71FD  EB F2                                jmp     short loc_1423          ; (71F1) +273F:71FF                       loc_1424:                                       ;  xref 273F:71F3 +273F:71FF  BB 0002                              mov     bx, REHS_HOTSPOT1_CURRENT_FRAME +273F:7202  C3                                   retn +273F:7203                       loc_1425:                                       ;  xref 273F:71F8 +273F:7203  BB 0008                              mov     bx, REHS_HOTSPOT2_CURRENT_FRAME +273F:7206  C3                                   retn +                    room_exit_hs_get_pointer    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; This tick handler proc is used by a lot of the resources in the 3rd +                                ; hotspot table (hotspots starting at 2711h) +                                ; di = animation slot entry, si = hotspot resource +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + + +                       room_exits_tick_proc     proc    near + +273F:7207  8B 45 1B                             mov     ax,[di+ANIM_HOTSPOT_ID] ; Get hotspot Id +273F:720A  56                                   push    si                      ; Save hotspot ptr +273F:720B  E8 FFE0                              call    room_exit_hs_get_pointer +273F:720E  F6 44 0C FF                          test    byte ptr [si+REHS_EXIT_BLOCKED], 0FFh +273F:7212  74 2A                                jz      loc_1427                ; Jump if exit blocked + +; Eexecution reaches this point if the room exit is blocked +273F:7214  8A 00                                mov     al, [bx+si]             ; Get frame number +273F:7216  3A 40 01                             cmp     al, [bx+si+1]           ; Check against dest frame +273F:7219  74 12                                je      loc_1426                ; If equal, go set frame +273F:721B  50                                   push    ax +273F:721C  E8 FF0F                              call    pathfind_flag_covered_cells +273F:721F  58                                   pop     ax +273F:7220  04 01                                add     al, 1                   ; Move to next frame +273F:7222  3A 40 01                             cmp     al, [bx+si+1]           ; Reached end frame yet? +273F:7225  75 06                                jne     loc_1426                ; No, so go set frame +273F:7227  B9 0001                              mov     cx, 1 +273F:722A  E8 00DA                              call    room_exit_play_sound + +; The code below sets the frame number and offset of the given hotspot to the # in AL +273F:722D                       loc_1426: +273F:722D ú88 00                                mov     [bx+si],al              ; Store frame number +273F:722F  5E                                   pop     si +273F:7230  8B 5C 21                             mov     bx,[si+HS_PIXEL_OFFSET] +273F:7233  32 E4                                xor     ah,ah                   ; Calculate frame offset +273F:7235  F7 67 07                             mul     word ptr [bx+PIXEL_FRAME_SIZE] +273F:7238  89 45 08                             mov     [di+ANIM_FRAME_OFFSET], ax ; Save frame start +273F:723B  C3                                   retn + +273F:723C  5E                                   pop     si +273F:723D  C3                                   retn + +; Execution reaches this pointer if the room exit is currently active +273F:723E                       loc_1427: +273F:723E  8A 00                                mov     al, [bx+si]             ; Get frame number +273F:7240  0A C0                                or      al, al                  ; Zero ? +273F:7242  74 E9                                jz      loc_1426                ; If zero, go set and exit + +273F:7244  50                                   push    ax +273F:7245  E8 FEFB                              call    pathfind_clear_covered_cells +273F:7248  58                                   pop     ax +273F:7249  3A 40 01                             cmp     al, [bx+si+1]           ; Current frame at end frame? +273F:724C  75 19                                jne     loc_1428                ; No, so go move back 1 frame + +273F:724E  33 C9                                xor     cx, cx                  ; Zero register +273F:7250  E8 00B4                              call    room_exit_play_sound +273F:7253  80 3E BAB9 01                        cmp     byte ptr script_val_88, 1 +273F:7258  75 0D                                jne     loc_1428                ; Jump if not equal +273F:725A  53                                   push    bx +273F:725B  50                                   push    ax +273F:725C  B8 0C00                              mov     ax, 0C00h +273F:725F  32 DB                                xor     bl, bl                  ; Zero register +273F:7261  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:7265  58                                   pop     ax +273F:7266  5B                                   pop     bx +273F:7267                       loc_1428: +273F:7267  2C 01                                sub     al, 1                   ; Move to prior frame +273F:7269  EB C2                                jmp     short loc_1426          ; Go set frame + +                       room_exits_tick_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:57ED, 57F7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            door_close_check    proc    near +273F:726B  55                                   push    bp +273F:726C  56                                   push    si +273F:726D  8B 5F 0B                             mov     bx, [bx+HS_ANIM_OFFSET] +273F:7270  8B 57 0E                             mov     dx, [bx+ANIM_ROOM_NUM]  ; Get room number +273F:7273 úBE B14E                              mov     si, offset animation_table +273F:7276  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS +273F:7279  8B 07                                mov     ax, [bx+ANIM_X] +273F:727B  A3 10E6                              mov     char_rect_left, ax +273F:727E  03 47 13                             add     ax, [bx+ANIM_WIDTH_COPY] +273F:7281  A3 10E8                              mov     char_rect_right, ax +273F:7284  8B 47 02                             mov     ax, [bx+ANIM_Y] +273F:7287  03 47 15                             add     ax, [bx+ANIM_HEIGHT_COPY] +273F:728A  50                                   push    ax +273F:728B  2B 47 17                             sub     ax, [bx+ANIM_Y_CORRECTION] +273F:728E  2B 47 22                             sub     ax, [bx+ANIM_CHAR_RECT_Y] +273F:7291  A3 10EA                              mov     char_rect_top, ax +273F:7294  58                                   pop     ax +273F:7295  03 47 22                             add     ax, [bx+ANIM_CHAR_RECT_Y] +273F:7298  A3 10EC                              mov     char_rect_bottom, ax + +273F:729B                       locloop_1429:                                   ;  xref 273F:72FC +273F:729B  3B FE                                cmp     di, si                  ; Reached anim pointed to by DI? +273F:729D  74 5A                                je      loc_1431                ; Skip if yes +273F:729F  3B F3                                cmp     si, bx                  ; Reached anim pointed to by BX? +273F:72A1  74 56                                je      loc_1431                ; Skip if yes + +273F:72A3  F6 44 0C FF                          test    [si+ANIM_LAYER], 0FFh   ; Animation has a layer? +273F:72A7  74 50                                jz      loc_1431                ; Skip if not +273F:72A9  3B 54 0E                             cmp     dx, [si+ANIM_ROOM_NUM]  ; In same room? +273F:72AC  75 4B                                jne     loc_1431                ; Skip if not +273F:72AE  8B 44 1B                             mov     ax, [si+ANIM_HOTSPOT_ID] +273F:72B1  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:72B4  72 43                                jb      loc_1431                ; Skip low end animations +273F:72B6  3D 0408                              cmp     ax,408h +273F:72B9  72 05                                jb      loc_1430                ; Jump if below +273F:72BB  3D 2710                              cmp     ax,2710h +273F:72BE  72 39                                jb      loc_1431                ; Jump if below +273F:72C0                       loc_1430: +273F:72C0  3D FFFE                              cmp     ax,0FFFEh +273F:72C3  73 34                                jae     loc_1431                ; Skip if Id is 0fffeh or 0ffffh +273F:72C5  8B 04                                mov     ax, [si+ANIM_X]         ; Get anim x pos +273F:72C7  3B 06 10E8                           cmp     ax, char_rect_right    ; More than set X pos? +273F:72CB  73 2C                                jae     loc_1431                ; If yes, skip entry +273F:72CD  03 44 13                             add     ax,[si+ANIM_WIDTH_COPY] ; anim width +273F:72D0  3B 06 10E6                           cmp     ax, char_rect_left      ; Compare against loaded right +273F:72D4  72 23                                jb      loc_1431                ; Skip if less or equal +273F:72D6  74 21                                jz      loc_1431 + +; This point is only reached if an animation is in the current room if it's +; X start is less than or equal to that specified at routine start, and it's right +; is greater than the X end position. That is to say, the given horizontal slice + +273F:72D8  8B 44 02                             mov     ax, [si+ANIM_Y]         ; Get Y position +273F:72DB  03 44 15                             add     ax, [si+ANIM_HEIGHT_COPY]; Add copy of anim height +273F:72DE  8B E8                                mov     bp,ax +273F:72E0  03 44 22                             add     ax, [si+ANIM_CHAR_RECT_Y] +273F:72E3  3B 06 10EA                           cmp     ax, char_rect_top +273F:72E7  72 10                                jb      loc_1431                ; Not meeting Y start +273F:72E9  8B C5                                mov     ax, bp +273F:72EB  2B 44 17                             sub     ax, [si+ANIM_Y_CORRECTION] +273F:72EE  2B 44 22                             sub     ax, [si+ANIM_CHAR_RECT_Y] +273F:72F1  3B 06 10EC                           cmp     ax, char_rect_bottom +273F:72F5  74 0B                                je      loc_1432                ; Jump if equal +273F:72F7  72 09                                jc      loc_1432                ; Jump if carry Set + +273F:72F9                       loc_1431: +273F:72F9  83 C6 29                             add     si, ANIMATION_SLOT_SIZE +273F:72FC  E2 9D                                loop    locloop_1429            ; Loop if cx > 0 + +273F:72FE  0C 01                                or      al,1                    ; Result = 1 (no blockings) +273F:7300  EB 02                                jmp     short loc_1433 +273F:7302                       loc_1432: +273F:7302  33 C0                                xor     ax,ax                   ; Result = 0 (a blocking) +273F:7304                       loc_1433: +273F:7304  5E                                   pop     si +273F:7305  5D                                   pop     bp +273F:7306  C3                                   retn +                            door_close_check    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:722A, 7250 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       room_exit_play_sound     proc    near +273F:7307  50                                   push    ax +273F:7308  56                                   push    si +273F:7309  53                                   push    bx +273F:730A  57                                   push    di +273F:730B  8B 16 9832                           mov     dx, room_number +273F:730F  8B 7C 0D                             mov     di, [si+REHS_HOTSPOT1_OFFSET] +273F:7312  83 FB 02                             cmp     bx, 2 +273F:7315  74 03                                je      loc_1434 +273F:7317  8B 7C 0F                             mov     di, [si+REHS_HOTSPOT2_OFFSET] +273F:731A                       loc_1434:                                       ;  xref 273F:7315 +273F:731A  3B 55 06                             cmp     dx, [di+HS_ROOM_NUM] +273F:731D  75 10                                jne     loc_1435                ; Jump if not equal +273F:731F  03 D9                                add     bx, cx +273F:7321  8A 58 02                             mov     bl, [bx+si+2] +273F:7324  32 FF                                xor     bh, bh +273F:7326  0B DB                                or      bx, bx                  ; Zero ? +273F:7328  74 05                                jz      loc_1435                ; Jump if zero +273F:732A  E8 2CD0                              call    play_sound +273F:732D  8B CE                                mov     cx, si +273F:732F                       loc_1435:                                       ;  xref 273F:731D, 7328 +273F:732F  5F                                   pop     di +273F:7330  5B                                   pop     bx +273F:7331  5E                                   pop     si +273F:7332  58                                   pop     ax +273F:7333  C3                                   retn +                       room_exit_play_sound     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7876 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7334            animation_decode_inner     proc    near +273F:7334  83 C6 06                             add     si,6 +273F:7337  1E                                   push    ds +273F:7338  8E DA                                mov     ds,dx +273F:733A  B5 10                                mov     ch,10h +273F:733C  B1 04                                mov     cl,4 +273F:733E  33 FF                                xor     di,di                   ; Zero register +273F:7340                       loc_1436:                                       ;  xref 273F:7365 +273F:7340  AC                                   lodsb                           ; String [si] to al +273F:7341  26: 88 45 10                         mov     es:[di+10h],al +273F:7345  26: 80 65 10 0F                      and     byte ptr es:[di+10h],0Fh +273F:734A  D2 E8                                shr     al,cl                   ; Shift w/zeros fill +273F:734C  26: 88 05                            mov     es:[di],al +273F:734F  AC                                   lodsb                           ; String [si] to al +273F:7350  26: 88 45 30                         mov     es:[di+30h],al +273F:7354  26: 80 65 30 0F                      and     byte ptr es:[di+30h],0Fh +273F:7359  D2 E8                                shr     al,cl                   ; Shift w/zeros fill +273F:735B  26: 88 45 20                         mov     es:[di+20h],al +273F:735F  83 C7 01                             add     di,1 +273F:7362  80 ED 01                             sub     ch,1 +273F:7365  75 D9                                jnz     loc_1436                ; Jump if not zero + +273F:7367 úBF 0040                              mov     di, 40h +273F:736A  AC                                   lodsb                           ; String [si] to al +273F:736B  8A E0                                mov     ah,al +273F:736D  AC                                   lodsb                           ; String [si] to al +273F:736E  32 ED                                xor     ch,ch                   ; Zero register +273F:7370  B1 04                                mov     cl,4 +273F:7372  26: 88 25                            mov     es:[di],ah +273F:7375  26: 80 25 F0                         and     byte ptr es:[di],0F0h +273F:7379  8A DC                                mov     bl,ah +273F:737B  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:737D  D2 EB                                shr     bl,cl                   ; Shift w/zeros fill +273F:737F  32 FF                                xor     bh,bh                   ; Zero register +273F:7381  B2 01                                mov     dl,1 + +273F:7383                       loc_1437:                                       ;  xref 273F:73A1, 73A9, 74DD +273F:7383 úD1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7385  E2 03                                loop    locloop_1438            ; Loop if cx > 0 + +273F:7387  AC                                   lodsb                           ; String [si] to al +273F:7388  B1 08                                mov     cl,8 + +273F:738A                       locloop_1438:                                   ;  xref 273F:7385 +273F:738A  72 1F                                jc      loc_1441                ; Jump if carry Set +273F:738C  26: 8A 1F                            mov     bl,es:[bx] +273F:738F                       loc_1439:                                       ;  xref 273F:73C1, 73C7, 73D6, 7417 +273F:738F ú80 F2 01                             xor     dl,1 +273F:7392  74 0F                                jz      loc_1440                ; Jump if zero +273F:7394  8A F3                                mov     dh,bl +273F:7396  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:7398  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:739A  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:739C  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:739E  26: 88 35                            mov     es:[di],dh +273F:73A1  EB E0                                jmp     short loc_1437          ; (7383) +273F:73A3                       loc_1440:                                       ;  xref 273F:7392 +273F:73A3  26: 08 1D                            or      es:[di],bl +273F:73A6  83 C7 01                             add     di,1 +273F:73A9  EB D8                                jmp     short loc_1437          ; (7383) +273F:73AB                       loc_1441:                                       ;  xref 273F:738A +273F:73AB  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:73AD  E2 03                                loop    locloop_1442            ; Loop if cx > 0 + +273F:73AF  AC                                   lodsb                           ; String [si] to al +273F:73B0  B1 08                                mov     cl,8 + +273F:73B2                       locloop_1442:                                   ;  xref 273F:73AD +273F:73B2  72 15                                jc      loc_1445                ; Jump if carry Set +273F:73B4  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:73B6  E2 03                                loop    locloop_1443            ; Loop if cx > 0 + +273F:73B8  AC                                   lodsb                           ; String [si] to al +273F:73B9  B1 08                                mov     cl,8 + +273F:73BB                       locloop_1443:                                   ;  xref 273F:73B6 +273F:73BB  72 06                                jc      loc_1444                ; Jump if carry Set +273F:73BD  26: 8A 5F 10                         mov     bl,es:[bx+10h] +273F:73C1  EB CC                                jmp     short loc_1439          ; (738F) +273F:73C3                       loc_1444:                                       ;  xref 273F:73BB +273F:73C3  26: 8A 5F 20                         mov     bl,es:[bx+20h] +273F:73C7  EB C6                                jmp     short loc_1439          ; (738F) +273F:73C9                       loc_1445:                                       ;  xref 273F:73B2 +273F:73C9  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:73CB  E2 03                                loop    locloop_1446            ; Loop if cx > 0 + +273F:73CD  AC                                   lodsb                           ; String [si] to al +273F:73CE  B1 08                                mov     cl,8 + +273F:73D0                       locloop_1446:                                   ;  xref 273F:73CB +273F:73D0  72 06                                jc      loc_1447                ; Jump if carry Set +273F:73D2  26: 8A 5F 30                         mov     bl,es:[bx+30h] +273F:73D6  EB B7                                jmp     short loc_1439          ; (738F) +273F:73D8                       loc_1447:                                       ;  xref 273F:73D0 +273F:73D8  8A F4                                mov     dh,ah +273F:73DA  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:73DC  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:73DE  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:73E0  D0 EE                                shr     dh,1                    ; Shift w/zeros fill + +273F:73E2  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:73E4  E2 03                                loop    locloop_1448            ; Loop if cx > 0 + +273F:73E6  AC                                   lodsb                           ; String [si] to al +273F:73E7  B1 08                                mov     cl,8 + +273F:73E9                       locloop_1448:                                   ;  xref 273F:73E4 +273F:73E9  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:73EB  E2 03                                loop    locloop_1449            ; Loop if cx > 0 + +273F:73ED  AC                                   lodsb                           ; String [si] to al +273F:73EE  B1 08                                mov     cl,8 + +273F:73F0                       locloop_1449:                                   ;  xref 273F:73EB +273F:73F0  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:73F2  E2 03                                loop    locloop_1450            ; Loop if cx > 0 + +273F:73F4  AC                                   lodsb                           ; String [si] to al +273F:73F5  B1 08                                mov     cl,8 + +273F:73F7                       locloop_1450:                                   ;  xref 273F:73F2 +273F:73F7  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:73F9  E2 03                                loop    locloop_1451            ; Loop if cx > 0 + +273F:73FB  AC                                   lodsb                           ; String [si] to al +273F:73FC  B1 08                                mov     cl,8 + +273F:73FE                       locloop_1451:                                   ;  xref 273F:73F9 +273F:73FE  26: 3A 37                            cmp     dh,es:[bx] +273F:7401  74 17                                je      loc_1452                ; Jump if equal +273F:7403  26: 3A 77 10                         cmp     dh,es:[bx+10h] +273F:7407  74 29                                je      loc_1454                ; Jump if equal +273F:7409  26: 3A 77 20                         cmp     dh,es:[bx+20h] +273F:740D  74 2D                                je      loc_1455                ; Jump if equal +273F:740F  26: 3A 77 30                         cmp     dh,es:[bx+30h] +273F:7413  74 5E                                je      loc_1462                ; Jump if equal +273F:7415  8A DE                                mov     bl,dh +273F:7417  E9 FF75                              jmp     loc_1439                ; (738F) +273F:741A                       loc_1452:                                       ;  xref 273F:7401 +273F:741A  51                                   push    cx +273F:741B  52                                   push    dx +273F:741C  E8 00C7                              call    sub_186                 ; (74E6) +273F:741F  8A D6                                mov     dl,dh +273F:7421  E8 00C2                              call    sub_186                 ; (74E6) +273F:7424  8A EA                                mov     ch,dl +273F:7426  8A CE                                mov     cl,dh +273F:7428  5A                                   pop     dx +273F:7429  0B C9                                or      cx,cx                   ; Zero ? +273F:742B  74 02                                jz      loc_1453                ; Jump if zero +273F:742D  EB 74                                jmp     short loc_1468          ; (74A3) +273F:742F                       loc_1453: +273F:742F  E9 00AE                              jmp     loc_1471                ; Exit +273F:7432                       loc_1454:                                       ;  xref 273F:7407 +273F:7432  51                                   push    cx +273F:7433  E8 00B0                              call    sub_186                 ; (74E6) +273F:7436  8A CE                                mov     cl,dh +273F:7438  32 ED                                xor     ch,ch                   ; Zero register +273F:743A  EB 67                                jmp     short loc_1468          ; (74A3) +273F:743C                       loc_1455:                                       ;  xref 273F:740D +273F:743C  8A F4                                mov     dh,ah +273F:743E  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:7440  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:7442  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7444  E2 03                                loop    locloop_1456            ; Loop if cx > 0 + +273F:7446  AC                                   lodsb                           ; String [si] to al +273F:7447  B1 08                                mov     cl,8 + +273F:7449                       locloop_1456:                                   ;  xref 273F:7444 +273F:7449  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:744B  E2 03                                loop    locloop_1457            ; Loop if cx > 0 + +273F:744D  AC                                   lodsb                           ; String [si] to al +273F:744E  B1 08                                mov     cl,8 + +273F:7450                       locloop_1457:                                   ;  xref 273F:744B +273F:7450  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7452  E2 03                                loop    locloop_1458            ; Loop if cx > 0 + +273F:7454  AC                                   lodsb                           ; String [si] to al +273F:7455  B1 08                                mov     cl,8 + +273F:7457                       locloop_1458:                                   ;  xref 273F:7452 +273F:7457  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7459  E2 03                                loop    locloop_1459            ; Loop if cx > 0 + +273F:745B  AC                                   lodsb                           ; String [si] to al +273F:745C  B1 08                                mov     cl,8 + +273F:745E                       locloop_1459:                                   ;  xref 273F:7459 +273F:745E  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7460  E2 03                                loop    locloop_1460            ; Loop if cx > 0 + +273F:7462  AC                                   lodsb                           ; String [si] to al +273F:7463  B1 08                                mov     cl,8 + +273F:7465                       locloop_1460:                                   ;  xref 273F:7460 +273F:7465  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7467  E2 03                                loop    locloop_1461            ; Loop if cx > 0 + +273F:7469  AC                                   lodsb                           ; String [si] to al +273F:746A  B1 08                                mov     cl,8 + +273F:746C                       locloop_1461:                                   ;  xref 273F:7467 +273F:746C  51                                   push    cx +273F:746D  8A CE                                mov     cl,dh +273F:746F  32 ED                                xor     ch,ch                   ; Zero register +273F:7471  EB 30                                jmp     short loc_1468          ; (74A3) +273F:7473                       loc_1462:                                       ;  xref 273F:7413 +273F:7473  8A F4                                mov     dh,ah +273F:7475  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:7477  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:7479  D0 EE                                shr     dh,1                    ; Shift w/zeros fill +273F:747B  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:747D  E2 03                                loop    locloop_1463            ; Loop if cx > 0 + +273F:747F  AC                                   lodsb                           ; String [si] to al +273F:7480  B1 08                                mov     cl,8 + +273F:7482                       locloop_1463:                                   ;  xref 273F:747D +273F:7482  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7484  E2 03                                loop    locloop_1464            ; Loop if cx > 0 + +273F:7486  AC                                   lodsb                           ; String [si] to al +273F:7487  B1 08                                mov     cl,8 + +273F:7489                       locloop_1464:                                   ;  xref 273F:7484 +273F:7489  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:748B  E2 03                                loop    locloop_1465            ; Loop if cx > 0 + +273F:748D  AC                                   lodsb                           ; String [si] to al +273F:748E  B1 08                                mov     cl,8 + +273F:7490                       locloop_1465:                                   ;  xref 273F:748B +273F:7490  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7492  E2 03                                loop    locloop_1466            ; Loop if cx > 0 + +273F:7494  AC                                   lodsb                           ; String [si] to al +273F:7495  B1 08                                mov     cl,8 + +273F:7497                       locloop_1466:                                   ;  xref 273F:7492 +273F:7497  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7499  E2 03                                loop    locloop_1467            ; Loop if cx > 0 + +273F:749B  AC                                   lodsb                           ; String [si] to al +273F:749C  B1 08                                mov     cl,8 + +273F:749E                       locloop_1467:                                   ;  xref 273F:7499 +273F:749E  51                                   push    cx +273F:749F  8A CE                                mov     cl,dh +273F:74A1  32 ED                                xor     ch,ch                   ; Zero register +273F:74A3                       loc_1468:                                       ;  xref 273F:742D, 743A, 7471 +273F:74A3  F6 C2 01                             test    dl,1 +273F:74A6  74 0C                                jz      loc_1469                ; Jump if zero +273F:74A8  26: 08 1D                            or      es:[di],bl +273F:74AB  83 C7 01                             add     di,1 +273F:74AE  83 E9 01                             sub     cx,1 +273F:74B1  80 E2 FE                             and     dl,0FEh +273F:74B4                       loc_1469:                                       ;  xref 273F:74A6 +273F:74B4  8A F3                                mov     dh,bl +273F:74B6  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:74B8  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:74BA  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:74BC  D0 E6                                shl     dh,1                    ; Shift w/zeros fill +273F:74BE  0A DE                                or      bl,dh +273F:74C0  51                                   push    cx +273F:74C1  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:74C3  86 C3                                xchg    al,bl +273F:74C5  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:74C7  86 C3                                xchg    al,bl +273F:74C9  59                                   pop     cx +273F:74CA  83 E1 01                             and     cx,1 +273F:74CD  74 0A                                jz      loc_1470                ; Jump if zero +273F:74CF  26: 88 1D                            mov     es:[di],bl +273F:74D2  26: 80 25 F0                         and     byte ptr es:[di],0F0h +273F:74D6  80 CA 01                             or      dl,1 +273F:74D9                       loc_1470:                                       ;  xref 273F:74CD +273F:74D9  59                                   pop     cx +273F:74DA  80 E3 0F                             and     bl,0Fh +273F:74DD  E9 FEA3                              jmp     loc_1437                ; (7383) +273F:74E0                       loc_1471: +273F:74E0  58                                   pop     ax +273F:74E1  1F                                   pop     ds +273F:74E2  FF 26 0776                           jmp     [data_575]              ; For VGA, no implementation +                     animation_decode_inner     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:741C, 7421, 7433 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:74E6                       sub_186         proc    near +273F:74E6  8A F4                                mov     dh,ah +273F:74E8  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:74EA  E2 03                                loop    locloop_1472            ; Loop if cx > 0 + +273F:74EC  AC                                   lodsb                           ; String [si] to al +273F:74ED  B1 08                                mov     cl,8 + +273F:74EF                       locloop_1472:                                   ;  xref 273F:74EA +273F:74EF  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:74F1  E2 03                                loop    locloop_1473            ; Loop if cx > 0 + +273F:74F3  AC                                   lodsb                           ; String [si] to al +273F:74F4  B1 08                                mov     cl,8 + +273F:74F6                       locloop_1473:                                   ;  xref 273F:74F1 +273F:74F6  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:74F8  E2 03                                loop    locloop_1474            ; Loop if cx > 0 + +273F:74FA  AC                                   lodsb                           ; String [si] to al +273F:74FB  B1 08                                mov     cl,8 + +273F:74FD                       locloop_1474:                                   ;  xref 273F:74F8 +273F:74FD  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:74FF  E2 03                                loop    locloop_1475            ; Loop if cx > 0 + +273F:7501  AC                                   lodsb                           ; String [si] to al +273F:7502  B1 08                                mov     cl,8 + +273F:7504                       locloop_1475:                                   ;  xref 273F:74FF +273F:7504  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7506  E2 03                                loop    locloop_1476            ; Loop if cx > 0 + +273F:7508  AC                                   lodsb                           ; String [si] to al +273F:7509  B1 08                                mov     cl,8 + +273F:750B                       locloop_1476:                                   ;  xref 273F:7506 +273F:750B  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:750D  E2 03                                loop    locloop_1477            ; Loop if cx > 0 + +273F:750F  AC                                   lodsb                           ; String [si] to al +273F:7510  B1 08                                mov     cl,8 + +273F:7512                       locloop_1477:                                   ;  xref 273F:750D +273F:7512  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:7514  E2 03                                loop    locloop_1478            ; Loop if cx > 0 + +273F:7516  AC                                   lodsb                           ; String [si] to al +273F:7517  B1 08                                mov     cl,8 + +273F:7519                       locloop_1478:                                   ;  xref 273F:7514 +273F:7519  D1 D0                                rcl     ax,1                    ; Rotate thru carry +273F:751B  E2 03                                loop    locloop_1479            ; Loop if cx > 0 + +273F:751D  AC                                   lodsb                           ; String [si] to al +273F:751E  B1 08                                mov     cl,8 + +273F:7520                       locloop_1479:                                   ;  xref 273F:751B +273F:7520  C3                                   retn +                                sub_186         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:25C8, 25CD, 25DF +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7521                       sub_187         proc    near +273F:7521  8A C6                                mov     al,dh +273F:7523  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:7525  E2 07                                loop    locloop_1480            ; Loop if cx > 0 + +273F:7527  86 D0                                xchg    dl,al +273F:7529  AC                                   lodsb                           ; String [si] to al +273F:752A  86 D0                                xchg    dl,al +273F:752C  B1 08                                mov     cl,8 + +273F:752E                       locloop_1480:                                   ;  xref 273F:7525 +273F:752E  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:7530  E2 07                                loop    locloop_1481            ; Loop if cx > 0 + +273F:7532  86 D0                                xchg    dl,al +273F:7534  AC                                   lodsb                           ; String [si] to al +273F:7535  86 D0                                xchg    dl,al +273F:7537  B1 08                                mov     cl,8 + +273F:7539                       locloop_1481:                                   ;  xref 273F:7530 +273F:7539  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:753B  E2 07                                loop    locloop_1482            ; Loop if cx > 0 + +273F:753D  86 D0                                xchg    dl,al +273F:753F  AC                                   lodsb                           ; String [si] to al +273F:7540  86 D0                                xchg    dl,al +273F:7542  B1 08                                mov     cl,8 + +273F:7544                       locloop_1482:                                   ;  xref 273F:753B +273F:7544  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:7546  E2 07                                loop    locloop_1483            ; Loop if cx > 0 + +273F:7548  86 D0                                xchg    dl,al +273F:754A  AC                                   lodsb                           ; String [si] to al +273F:754B  86 D0                                xchg    dl,al +273F:754D  B1 08                                mov     cl,8 + +273F:754F                       locloop_1483:                                   ;  xref 273F:7546 +273F:754F  D1 D2                                rcl     dx,1                    ; Rotate thru carry +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 285 + +273F:7551  E2 07                                loop    locloop_1484            ; Loop if cx > 0 + +273F:7553  86 D0                                xchg    dl,al +273F:7555  AC                                   lodsb                           ; String [si] to al +273F:7556  86 D0                                xchg    dl,al +273F:7558  B1 08                                mov     cl,8 + +273F:755A                       locloop_1484:                                   ;  xref 273F:7551 +273F:755A  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:755C  E2 07                                loop    locloop_1485            ; Loop if cx > 0 + +273F:755E  86 D0                                xchg    dl,al +273F:7560  AC                                   lodsb                           ; String [si] to al +273F:7561  86 D0                                xchg    dl,al +273F:7563  B1 08                                mov     cl,8 + +273F:7565                       locloop_1485:                                   ;  xref 273F:755C +273F:7565  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:7567  E2 07                                loop    locloop_1486            ; Loop if cx > 0 + +273F:7569  86 D0                                xchg    dl,al +273F:756B  AC                                   lodsb                           ; String [si] to al +273F:756C  86 D0                                xchg    dl,al +273F:756E  B1 08                                mov     cl,8 + +273F:7570                       locloop_1486:                                   ;  xref 273F:7567 +273F:7570  D1 D2                                rcl     dx,1                    ; Rotate thru carry +273F:7572  E2 07                                loop    locloop_1487            ; Loop if cx > 0 + +273F:7574  86 D0                                xchg    dl,al +273F:7576  AC                                   lodsb                           ; String [si] to al +273F:7577  86 D0                                xchg    dl,al +273F:7579  B1 08                                mov     cl,8 + +273F:757B                       locloop_1487:                                   ;  xref 273F:7572 +273F:757B  C3                                   retn +                                sub_187         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:075E +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:757C                       show_startup    proc    near +273F:757C  E8 8D3E                              call    validate_header +273F:757F  B4 48                                mov     ah,48h +273F:7581  BB FFFF                              mov     bx,0FFFFh +273F:7584  CD 21                                int     21h                     ; DOS Services  ah=function 48h +                                                                                ;  allocate memory, bx=bytes/16 +273F:7586  81 FB 61A8                           cmp     bx,61A8h +273F:758A  73 08                                jae     loc_1488                ; There is enough memory +273F:758C  B8 0008                              mov     ax,8 +273F:758F  B6 01                                mov     dh,1 +273F:7591  E8 CA10                              call    display_message         ; (3FA4) +273F:7594                       loc_1488:                                       ;  xref 273F:758A +                                                assume  ds:data_seg +273F:7594  89 1E 4CFC                           mov     largest_free_block,bx   ; (31E4:4CFC=0) +273F:7598  89 1E 4D02                           mov     buffer_segment_end, bx  ; (31E4:4D02=0) +273F:759C  B4 48                                mov     ah,48h +273F:759E  CD 21                                int     21h                     ; DOS Services  ah=function 48h +                                                                                ;  allocate memory, bx=bytes/16 +273F:75A0  A3 4D00                              mov     buffer_segment, ax      ; (31E4:4D00=0) +273F:75A3  01 06 4D02                           add     buffer_segment_end, ax  ; (31E4:4D02=0) +273F:75A7  FF 16 0764                           call    [empty_palette_proc] +273F:75AB  B8 0019                              mov     ax,19h                  ; Get first palette +273F:75AE  E8 C516                              call    read_palette +273F:75B1  B8 0018                              mov     ax,18h                  ; Revolution title image +273F:75B4  E8 059C                              call    read_entry_into_buffer +273F:75B7  E8 05CF                              call    decode_and_fade_in_display +273F:75BA  33 C0                                xor     ax,ax +273F:75BC  E8 D42A                              call    sleep + +273F:75BF  B8 001A                              mov     ax,1Ah                  ; Virgin games image load +273F:75C2  E8 058E                              call    read_entry_into_buffer +273F:75C5  B8 0096                              mov     ax,96h +273F:75C8  E8 D41E                              call    sleep + +273F:75CB  FF 16 0766                           call    word ptr [fade_out_proc] +273F:75CF  B8 001B                              mov     ax,1Bh +273F:75D2  E8 C4F2                              call    read_palette +273F:75D5  E8 05B1                              call    decode_and_fade_in_display +273F:75D8  33 C0                                xor     ax,ax +273F:75DA  E8 D40C                              call    sleep + +273F:75DD  B8 001E                              mov     ax,1Eh                  ; Virtual Theatre title +273F:75E0  E8 0570                              call    read_entry_into_buffer +273F:75E3  B8 0096                              mov     ax,96h +273F:75E6  E8 D400                              call    sleep +273F:75E9  FF 16 0766                           call    word ptr [fade_out_proc] +273F:75ED  B8 001F                              mov     ax,1Fh +273F:75F0  E8 C4D4                              call    read_palette            ; (3AC7) +273F:75F3  E8 0593                              call    decode_and_fade_in_display +273F:75F6  33 C0                                xor     ax,ax                   ; Zero register +273F:75F8  E8 D3EE                              call    sleep                   ; (49E9) + +273F:75FB  B8 001C                              mov     ax,1Ch                  ; Lure of the Temptress title +273F:75FE  E8 0552                              call    read_entry_into_buffer +273F:7601  B8 0096                              mov     ax,96h +273F:7604  E8 D3E2                              call    sleep +273F:7607  FF 16 0766                           call    word ptr [fade_out_proc] +273F:760B  B8 001D                              mov     ax,1Dh +273F:760E  E8 C4B6                              call    read_palette +273F:7611  E8 0575                              call    decode_and_fade_in_display +273F:7614  33 C0                                xor     ax,ax +273F:7616  E8 D3D0                              call    sleep + +273F:7619  F6 06 5660 08                        test    music_status,8 +273F:761E  75 27                                jnz     loc_1489 +273F:7620  B8 000A                              mov     ax,0Ah +273F:7623  8B 0E 4D00                           mov     cx, buffer_segment      ; (31E4:4D00=0) +273F:7627  33 D2                                xor     dx,dx                   ; Zero register +273F:7629  89 0E 5664                           mov     word ptr play_music_proc+2,cx +273F:762D  C7 06 5662 0000                      mov     play_music_proc, 0 +273F:7633  8B 1E 4D00                           mov     bx, buffer_segment      ; (31E4:4D00=0) +273F:7637  89 1E 4CE4                           mov     data_segment2, bx +273F:763B  80 26 11D0 EF                        and     menubar_state, 0EFh  ; (31E4:11D0=3) +273F:7640  E8 8CD1                              call    read_entry              ; (0314) +273F:7643  01 16 4D00                           add     buffer_segment,dx       ; (31E4:4D00=0) +273F:7647                       loc_1489:                                       ;  xref 273F:761E +273F:7647  B8 0096                              mov     ax,96h +273F:764A  E8 D39C                              call    sleep                   ; (49E9) +273F:764D  F6 06 11D0 40                        test    menubar_state, 40h   ; Skip the intro? +273F:7652  75 03                                jnz     loc_1490                ; Jump if not zero +273F:7654  E8 2C65                              call    show_introduction       ; Run the intro +273F:7657                       loc_1490:                                       ;  xref 273F:7652 +273F:7657  E8 290A                              call    sub_246                 ; (9F64) + +273F:765A  B8 0010                              mov     ax, 10h                 ; Load strings resource +273F:765D  E8 0514                              call    read_into_buffer +273F:7660  A3 4CE8                              mov     strings_segment, ax +273F:7663  B8 0009                              mov     ax,9                    ; Load names resource +273F:7666  E8 050B                              call    read_into_buffer +273F:7669  A3 4CEE                              mov     names_segment, ax +273F:766C  B8 0003                              mov     ax,3                    ; Load alternate font +273F:766F  E8 0502                              call    read_into_buffer +273F:7672  A3 4CF0                              mov     font2_segment, ax +273F:7675  80 0E 073C 02                        or      status_flags, STATUS_UNKNOWN + +273F:767A  B8 0001                              mov     ax, 1                   ; Load cursors resource +273F:767D  E8 04F4                              call    read_into_buffer +273F:7680  A3 4CF4                              mov     cursors_segment, ax +273F:7683  A1 4D00                              mov     ax, buffer_segment +273F:7686  A3 4CFE                              mov     data_814, ax +273F:7689  E9 0408                              jmp     load_resources +                                show_startup    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:007A +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:768C                       sub_189         proc    near +273F:768C  E8 8B6C                              call    read_and_validate_header +273F:768F úBE B883                              mov     si, offset animation_block_list +273F:7692                       loc_1492:                                        +273F:7692 ú8B 1C                                mov     bx, [si] +273F:7694  0B DB                                or      bx, bx                  ; End of list? +273F:7696  74 09                                jz      loc_1493                ; Jump if yes +273F:7698  83 C6 02                             add     si, 2 +273F:769B  80 67 02 F7                          and     byte ptr [bx+2], 0F7h +273F:769F  EB F1                                jmp     short loc_1492 + +273F:76A1                       loc_1493:                                 +273F:76A1 úBE B883                              mov     si, offset animation_block_list +273F:76A4                       loc_1494: +273F:76A4 ú8B 1C                                mov     bx, [si] +273F:76A6  0B DB                                or      bx, bx                  ; End of list? +273F:76A8  74 13                                jz      loc_1495                ; Jump if yes +273F:76AA  83 C6 02                             add     si,2 +273F:76AD  F6 47 02 20                          test    byte ptr [bx+ANIM_FLAGS], 20h    ; ' ' +273F:76B1  F6 47 02 02                          test    byte ptr [bx+ANIM_FLAGS], 2 +273F:76B5  74 ED                                jz      loc_1494                ; Jump if zero +273F:76B7  80 4F 02 08                          or      byte ptr [bx+ANIM_FLAGS], 8 +273F:76BB  EB E7                                jmp     short loc_1494 + +273F:76BD                       loc_1495:                                       ;  xref 273F:76A8 +273F:76BD  E8 0324                              call    sub_194 +273F:76C0  8B 1E 9832                           mov     bx, room_number +273F:76C4  E8 9621                              call    get_room_resource_pointer +273F:76C7  8B 74 06                             mov     si, [si+6] +273F:76CA  0B F6                                or      si, si                  ; Any table set? +273F:76CC  74 20                                jz      loc_1498                ; Skip if not + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:8FD0 +                                ; si = Offset of table for animation resources for a room + +273F:76CE                       sub_190: +273F:76CE                       loc_1496:                                   +273F:76CE ú8B 1C                                mov     bx, [si] +273F:76D0  0B DB                                or      bx, bx                  ; End of list reached? +273F:76D2  74 1A                                jz      loc_1498                ; Jump if yes +273F:76D4  F7 47 03 FFFF                        test    word ptr [bx+3], 0FFFFh  +273F:76D9  75 0E                                jnz     loc_1497                ; Jump if not zero +273F:76DB  89 1D                                mov     [di], bx                ; Store in output list +273F:76DD  83 C7 02                             add     di, 2                   ; Move to next position +273F:76E0  56                                   push    si +273F:76E1  57                                   push    di +273F:76E2  E8 00FD                              call    animation_decode        ; Decode animation +273F:76E5  5F                                   pop     di +273F:76E6  5E                                   pop     si +273F:76E7  72 0A                                jc      loc_1499                ; Jump if carry Set +273F:76E9                       loc_1497:                                       ;  xref 273F:76D9 +273F:76E9  83 C6 02                             add     si,2 +273F:76EC  EB E0                                jmp     short loc_1496          ; (76CE) +273F:76EE                       loc_1498:                                       ;  xref 273F:76CC, 76D2 +273F:76EE  C7 05 0000                           mov     word ptr [di],0 +273F:76F2  C3                                   retn +273F:76F3                       loc_1499:                                       ;  xref 273F:76E7 +273F:76F3  C7 05 0000                           mov     word ptr [di],0 +273F:76F7  E8 00A8                              call    sub_192                 ; (77A2) +273F:76FA  73 90                                jnc     sub_189 +273F:76FC  C3                                   retn +                                sub_189         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:152C, 15D2, 1617 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                   animation_resolve_segment    proc    near + +273F:76FD                       loc_1500:                                       ;  xref 273F:7790 +273F:76FD ú83 7F 1B FE                          cmp     word ptr [bx+1Bh],0FFFEh +273F:7701  72 05                                jb      loc_1501                ; Jump if below +273F:7703  BF 5810                              mov     di,5810h +273F:7706  EB 06                                jmp     short loc_1502          ; (770E) +273F:7708                       loc_1501: +273F:7708  8B 77 19                             mov     si, [bx+ANIM_HOTSPOT_OFFSET] +273F:770B  8B 7C 21                             mov     di, [si+HS_PIXEL_OFFSET] + +; Loop to see if animation_block_list contains any existing matching entry +; (scanning until a 0 entry is found). If it's found, the segment value at +; word [di+3] is returned + +273F:770E                       loc_1502: +273F:770E  53                                   push    bx +273F:770F úBB B883                              mov     bx, offset animation_block_list +273F:7712                       loc_1503: +273F:7712 ú3B 3F                                cmp     di,[bx] +273F:7714  75 03                                jne     loc_1504                ; Jump if not equal +273F:7716  E9 0081                              jmp     loc_1510                ; (779A) +273F:7719                       loc_1504:                                       ;  xref 273F:7714 +273F:7719  F7 07 FFFF                           test    word ptr [bx],0FFFFh +273F:771D  74 05                                jz      loc_1505                ; Jump if zero +273F:771F  83 C3 02                             add     bx,2 +273F:7722  EB EE                                jmp     short loc_1503 + +; At this point, the end of the list at animation_block_list has been reached + +273F:7724                       loc_1505:                                       ;  xref 273F:771D +273F:7724  F6 06 073D 01                        test    status_flags2, 1 +273F:7729  74 03                                jz      loc_1506                ; Jump if zero +273F:772B  5B                                   pop     bx +273F:772C  EB 5C                                jmp     short loc_1507          ; (778A) + +; The following code seems to be responsible for preparing the data. Perhaps +; uncompressing it the first time from some source? + +273F:772E                       loc_1506:                                       ;  xref 273F:7729 +273F:772E  53                                   push    bx +273F:772F  57                                   push    di +273F:7730  8B DF                                mov     bx,di +273F:7732  E8 00AD                              call    animation_decode +273F:7735  5F                                   pop     di +273F:7736  5E                                   pop     si +273F:7737  73 5A                                jnc     loc_1509                ; Jump if carry=0 +273F:7739  E8 0066                              call    sub_192                 ; (77A2) +273F:773C  73 51                                jnc     loc_1508                ; Jump if carry=0 +273F:773E  5B                                   pop     bx +273F:773F  81 7F 1B 03E9                        cmp     word ptr [bx+1Bh],3E9h +273F:7744  72 44                                jb      loc_1507                ; Jump if below +273F:7746  81 7F 1B 0408                        cmp     word ptr [bx+1Bh],408h +273F:774B  73 3D                                jae     loc_1507                ; Jump if above or = +273F:774D  83 7F 0E 2A                          cmp     word ptr [bx+0Eh],2Ah +273F:7751  73 37                                jae     loc_1507                ; Jump if above or = +273F:7753  8B 77 19                             mov     si,[bx+19h] +273F:7756  8B FB                                mov     di,bx +273F:7758  E8 CC2C                              call    character_pathfind_clear +273F:775B  C7 44 06 0018                        mov     word ptr [si+6],18h +273F:7760  C7 47 0E 0018                        mov     word ptr [bx+0Eh],18h +273F:7765  C7 44 0D 00C0                        mov     word ptr [si+0Dh],0C0h +273F:776A  C7 07 00C0                           mov     word ptr [bx],0C0h +273F:776E  C7 44 0F 00F4                        mov     word ptr [si+0Fh],0F4h +273F:7773  C7 47 02 00F4                        mov     word ptr [bx+2],0F4h +273F:7778  C6 06 4F8A 01                        mov     byte ptr data_817,1     ; (31E4:4F8A=0) +273F:777D  53                                   push    bx +273F:777E  8B DE                                mov     bx,si +273F:7780  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:7783  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:7786  C6 07 02                             mov     byte ptr [bx], 2 +273F:7789  5B                                   pop     bx +273F:778A                       loc_1507: +273F:778A  33 C0                                xor     ax,ax                   ; Couldn't resolve +273F:778C  F9                                   stc                             ; Flag error occurred +273F:778D  EB 0F                                jmp     short loc_1511           +273F:778F                       loc_1508:                                       ;  xref 273F:773C +273F:778F  5B                                   pop     bx +273F:7790  E9 FF6A                              jmp     loc_1500                ; (76FD) +273F:7793                       loc_1509:                                       ;  xref 273F:7737 +273F:7793  89 3C                                mov     [si], di +273F:7795  C7 44 02 0000                        mov     word ptr [si+2],0 +273F:779A                       loc_1510:                                       ;  xref 273F:7716 +273F:779A  5B                                   pop     bx +273F:779B  8B 45 03                             mov     ax, [di+3] +273F:779E                       loc_1511:                                        +273F:779E  89 47 0A                             mov     [bx+ANIM_SEGMENT], ax   ; Save segment +273F:77A1  C3                                   retn + +                   animation_resolve_segment    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:76F7, 7739 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:77A2                       sub_192         proc    near +273F:77A2 úBE B883                              mov     si, offset animation_block_list +273F:77A5                       loc_1512:                                       ;  xref 273F:77B2, 77B8 +273F:77A5 ú8B 1C                                mov     bx,[si] +273F:77A7  0B DB                                or      bx,bx                   ; Zero ? +273F:77A9  74 0F                                jz      loc_1513                ; Jump if zero +273F:77AB  83 C6 02                             add     si,2 +273F:77AE  F6 47 02 21                          test    byte ptr [bx+PIXEL_FLAGS], 21h     ; '!' +273F:77B2  75 F1                                jnz     loc_1512                ; Jump if not zero +273F:77B4  80 4F 02 08                          or      byte ptr [bx+PIXEL_FLAGS], 8 +273F:77B8  EB EB                                jmp     short loc_1512          ; (77A5) +273F:77BA                       loc_1513:                                       ;  xref 273F:77A9 +273F:77BA úBF B14E                              mov     di, offset animation_table +273F:77BD  8B 16 9832                           mov     dx, room_number +273F:77C1  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:77C4                       locloop_1514:                                   ;  xref 273F:77DC +273F:77C4  F6 45 0C FF                          test    byte ptr [di+ANIM_LAYER], 0FFh +273F:77C8  74 0F                                jz      loc_1515                ; Jump if zero +273F:77CA  3B 55 0E                             cmp     dx, [di+ANIM_ROOM_NUM] +273F:77CD  75 0A                                jne     loc_1515                ; Jump if not equal +273F:77CF  8B 75 19                             mov     si, [di+ANIM_HOTSPOT_OFFSET] +273F:77D2  8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:77D5  80 67 02 F7                          and     byte ptr [bx+PIXEL_FLAGS], 0F7h +273F:77D9                       loc_1515:                                       +273F:77D9  83 C7 29                             add     di, ANIMATION_SLOT_SIZE +273F:77DC  E2 E6                                loop    locloop_1514            ; Loop if cx > 0 + +273F:77DE  E8 0203                              call    sub_194                 ; (79E4) +273F:77E1  C3                                   retn +                                sub_192         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:3D28, 76E2, 7732 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:77E2                 animation_decode      proc    near +273F:77E2  80 3E 0786 02                        cmp     byte ptr ds:[drive_number],2    ; (273F:0786=0E8h) +273F:77E7  73 05                                jae     loc_1516                ; Jump if above or = +273F:77E9  53                                   push    bx +273F:77EA  E8 A772                              call    show_disk_cursor +273F:77ED  5B                                   pop     bx +273F:77EE                       loc_1516:                                       ;  xref 273F:77E7 +273F:77EE  8B 07                                mov     ax,[bx] +273F:77F0  53                                   push    bx +273F:77F1  E8 8BF2                              call    get_entry_size +273F:77F4  5B                                   pop     bx +273F:77F5  8B 0E 4D02                           mov     cx, buffer_segment_end +273F:77F9  2B CA                                sub     cx,dx +273F:77FB  83 E9 08                             sub     cx,8 +273F:77FE  3B 0E 4D00                           cmp     cx, buffer_segment +273F:7802  73 02                                jae     loc_1517                ; Jump if above or = +273F:7804  F9                                   stc                             ; Set carry flag +273F:7805  C3                                   retn +273F:7806                       loc_1517:                                       ;  xref 273F:7802 +273F:7806  89 0E 4D04                           mov     anim_src_segment2, cx +273F:780A  89 0E 4D06                           mov     anim_src_segment, cx +273F:780E  8B 07                                mov     ax,[bx]                 ; Get anim resource id +273F:7810  33 D2                                xor     dx,dx                   ; Read into cx:dx +273F:7812  53                                   push    bx +273F:7813  E8 8AFE                              call    read_entry +273F:7816  01 16 4D06                           add     anim_src_segment, dx    ; Save end of animation +273F:781A  1E                                   push    ds +273F:781B  A1 4D06                              mov     ax, anim_src_segment +273F:781E  8E C0                                mov     es,ax +273F:7820  A1 4D04                              mov     ax, anim_src_segment2 +273F:7823  8E D8                                mov     ds,ax +273F:7825  8B 0E 0000                           mov     cx,ds:[0]               ; Get in # table entries +273F:7829  26: 89 0E 0000                       mov     es:[0], cx              ; Store # entries +273F:782E  B5 05                                mov     ch,5 +273F:7830  86 E9                                xchg    ch,cl +273F:7832  BE 0002                              mov     si, 2                   ; Point to table start +273F:7835  8B FE                                mov     di,si                   ; Point to dest table data +273F:7837  33 D2                                xor     dx,dx +273F:7839                       loc_1518: +273F:7839  AD                                   lodsw                           ; String [si] to ax +273F:783A  AB                                   stosw                           ; Store ax to es:[di] +273F:783B  05 001F                              add     ax,1Fh +273F:783E  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:7840  03 D0                                add     dx,ax +273F:7842  80 ED 01                             sub     ch,1 +273F:7845  75 F2                                jnz     loc_1518                ; Jump if not zero + +; At this point the entire header has been copied from ds:0 to es:0, and +; dx = summation : foreach header value -> (value + 0x1f) / 32 + +273F:7847  1F                                   pop     ds +273F:7848  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:784D  75 0B                                jne     loc_1519                ; Jump if not equal +273F:784F  8B C2                                mov     ax,dx +273F:7851  05 0003                              add     ax,3 +273F:7854  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7856  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7858  03 D0                                add     dx,ax +273F:785A                       loc_1519:                                       ;  xref 273F:784D +273F:785A  81 C2 0081                           add     dx,81h                  ; Add extra needed amount +273F:785E  8B 0E 4D00                           mov     cx, buffer_segment +273F:7862  03 CA                                add     cx,dx +273F:7864  3B 0E 4D02                           cmp     cx, buffer_segment_end  ; Enough room? +273F:7868  72 03                                jb      loc_1520                ; Yes, so carry on +273F:786A  5E                                   pop     si                      ; There won't be space left +273F:786B  F9                                   stc                             ; Flag error +273F:786C  C3                                   retn +273F:786D                       loc_1520:                                        +273F:786D  A1 4D00                              mov     ax, buffer_segment +273F:7870  8E C0                                mov     es,ax +273F:7872  8B 16 4D04                           mov     dx, anim_src_segment2 +273F:7876  E8 FABB                              call    animation_decode_inner +273F:7879  5E                                   pop     si                      ; Retrieve anim rec ptr +273F:787A  89 7C 05                             mov     [si+PIXEL_DATA_SIZE], di ; Store size of decoded rsc? +273F:787D  83 6C 05 40                          sub     word ptr [si+PIXEL_DATA_SIZE], 40h  ; ??? +273F:7881  33 FF                                xor     di, di +273F:7883  F6 44 02 04                          test    byte ptr [si+PIXEL_FLAGS], PIXELFLAG_HAS_TABLE +273F:7887  74 34                                jz      loc_1523                ; Skip if not +273F:7889  56                                   push    si +273F:788A  1E                                   push    ds +273F:788B  8A 16 0742                           mov     dl, video_style +273F:788F  A1 4D06                              mov     ax, anim_src_segment +273F:7892  8E D8                                mov     ds, ax +273F:7894 úBE 0002                              mov     si, 2                   ; Offset of 1st header entry +273F:7897  8B 0E 0000                           mov     cx, ds:[0]              ; Get number of entries +273F:789B  8B E9                                mov     bp, cx +273F:789D  D1 E5                                shl     bp, 1 + +273F:789F                       locloop_1521: +273F:789F  26: 89 2D                            mov     es:[di],bp +273F:78A2  83 C7 02                             add     di,2 +273F:78A5  8B 04                                mov     ax,[si] +273F:78A7  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:78A9  83 C6 02                             add     si,2 +273F:78AC  03 E8                                add     bp,ax +273F:78AE  80 FA 01                             cmp     dl,1 +273F:78B1  74 06                                je      loc_1522                ; Jump if equal +273F:78B3  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:78B5  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:78B7  03 E8                                add     bp,ax +273F:78B9                       loc_1522:                                       ;  xref 273F:78B1 +273F:78B9  E2 E4                                loop    locloop_1521            ; Loop if cx > 0 +273F:78BB  1F                                   pop     ds +273F:78BC  5E                                   pop     si + +273F:78BD                       loc_1523:                                       ;  xref 273F:7887 +273F:78BD  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:78C2  74 58                                je      loc_1525                ; Jump if equal + +273F:78C4  8B 4C 05                             mov     cx,[si+5]               ; Get size of file +273F:78C7  D1 E9                                shr     cx,1                    ; Divide by 2 for # words +273F:78C9  56                                   push    si +273F:78CA úBE 0040                              mov     si, 40h +273F:78CD  A1 4D00                              mov     ax, buffer_segment +273F:78D0  8E C0                                mov     es,ax +273F:78D2  1E                                   push    ds +273F:78D3  8E D8                                mov     ds,ax + +; Copy the decoded data from offset 40h back to offset 0h. This will discard +; the 40h byte header that was used during the decoding process + +273F:78D5  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:78D7  1F                                   pop     ds +273F:78D8  5E                                   pop     si +273F:78D9  8B C7                                mov     ax,di +273F:78DB  89 44 05                             mov     [si+5],ax +273F:78DE  8B D0                                mov     dx,ax +273F:78E0  83 EA 01                             sub     dx,1 +273F:78E3  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:78E5  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:78E7  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:78E9  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:78EB  83 C2 01                             add     dx,1 +273F:78EE  51                                   push    cx +273F:78EF  8B CA                                mov     cx,dx +273F:78F1  03 0E 4D00                           add     cx, buffer_segment +273F:78F5  3B 0E 4D02                           cmp     cx, buffer_segment_end +273F:78F9  59                                   pop     cx +273F:78FA  72 02                                jc      loc_1524                ; Jump if carry Set +273F:78FC  F9                                   stc                             ; Set carry flag +273F:78FD  C3                                   retn + +273F:78FE                       loc_1524: +273F:78FE  8B 2E 4D00                           mov     bp, buffer_segment +273F:7902  01 16 4D00                           add     buffer_segment, dx +273F:7906  A1 4D06                              mov     ax, anim_src_segment    ; Get ptr to copy of +273F:7909  8E C0                                mov     es,ax                   ;   anim table header +273F:790B  26: A1 0002                          mov     ax,es:[2]               ; Get 1st entry +273F:790F  D1 E8                                shr     ax,1                     +273F:7911  89 44 07                             mov     [si+7],ax +273F:7914  89 6C 03                             mov     [si+3],bp +273F:7917  E8 01F4                              call    sub_197                 ; (7B0E) +273F:791A  F8                                   clc                             ; Clear carry flag +273F:791B  C3                                   retn +273F:791C                       loc_1525:                                       ;  xref 273F:78C2 +273F:791C  8B 4C 05                             mov     cx,[si+5] +273F:791F  8B C1                                mov     ax,cx +273F:7921  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7923  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7925  01 44 05                             add     [si+5],ax +273F:7928  03 C1                                add     ax,cx +273F:792A  05 000F                              add     ax,0Fh +273F:792D  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:792F  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7931  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7933  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7935  01 06 4D00                           add     buffer_segment, ax   +273F:7939  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:793B  06                                   push    es +273F:793C  A1 4D06                              mov     ax, anim_src_segment +273F:793F  8E C0                                mov     es,ax +273F:7941  26: A1 0002                          mov     ax,es:data_67e          ; (0028:0002=0) +273F:7945  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7947  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7949  26: 03 06 0002                       add     ax,es:data_67e          ; (0028:0002=0) +273F:794E  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7950  89 44 07                             mov     [si+7],ax +273F:7953  07                                   pop     es +273F:7954  1E                                   push    ds +273F:7955  8C C0                                mov     ax,es +273F:7957  89 44 03                             mov     [si+3],ax +273F:795A  8E D8                                mov     ds,ax +273F:795C úBE 0040                              mov     si,data_1433e           ; (45F6:0040=23h) +273F:795F  57                                   push    di +273F:7960  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:7962  8B D7                                mov     dx,di +273F:7964  5F                                   pop     di +273F:7965  1F                                   pop     ds +273F:7966  1E                                   push    ds +273F:7967  A1 4D06                              mov     ax, anim_src_segment +273F:796A  8E D8                                mov     ds, ax +273F:796C  8B 0E 0000                           mov     cx,ds:data_66e          ; (0028:0000=0) +273F:7970 úBE 0002                              mov     si,data_67e             ; (0028:0002=0) +273F:7973  83 EF 01                             sub     di,1 + +273F:7976                       locloop_1526:                                   ;  xref 273F:7984 +273F:7976  AD                                   lodsw                           ; String [si] to ax +273F:7977  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7979  50                                   push    ax +273F:797A  03 F8                                add     di,ax +273F:797C  57                                   push    di +273F:797D  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:797F  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:7981  03 F8                                add     di,ax +273F:7983  57                                   push    di +273F:7984  E2 F0                                loop    locloop_1526            ; Loop if cx > 0 + +273F:7986  8B F2                                mov     si,dx +273F:7988  83 EE 01                             sub     si,1 +273F:798B  8B 16 0000                           mov     dx,ds:data_66e          ; (0028:0000=0) +273F:798F  06                                   push    es +273F:7990  1F                                   pop     ds +273F:7991  FD                                   std                             ; Set direction flag +273F:7992                       loc_1527:                                       ;  xref 273F:79B4 +273F:7992  5B                                   pop     bx +273F:7993  5F                                   pop     di +273F:7994  59                                   pop     cx +273F:7995  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:7997  D1 E9                                shr     cx,1                    ; Shift w/zeros fill + +273F:7999                       locloop_1528:                                   ;  xref 273F:79AF +273F:7999  AC                                   lodsb                           ; String [si] to al +273F:799A  8A E0                                mov     ah,al +273F:799C  AA                                   stosb                           ; Store al to es:[di] +273F:799D  AC                                   lodsb                           ; String [si] to al +273F:799E  0A E0                                or      ah,al +273F:79A0  AA                                   stosb                           ; Store al to es:[di] +273F:79A1  AC                                   lodsb                           ; String [si] to al +273F:79A2  0A E0                                or      ah,al +273F:79A4  AA                                   stosb                           ; Store al to es:[di] +273F:79A5  AC                                   lodsb                           ; String [si] to al +273F:79A6  0A E0                                or      ah,al +273F:79A8  AA                                   stosb                           ; Store al to es:[di] +273F:79A9  26: 88 27                            mov     es:[bx],ah +273F:79AC  83 EB 01                             sub     bx,1 +273F:79AF  E2 E8                                loop    locloop_1528            ; Loop if cx > 0 + +273F:79B1  83 EA 01                             sub     dx,1 +273F:79B4  75 DC                                jnz     loc_1527                ; Jump if not zero +273F:79B6  1F                                   pop     ds +273F:79B7  FC                                   cld                             ; Clear direction +273F:79B8  F8                                   clc                             ; Clear carry flag +273F:79B9  C3                                   retn +                          animation_decode      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                 seq_deactivate_hotspot_set     proc    near +273F:79BA  D1 E3                                shl     bx,1 +273F:79BC  8B B7 13CA                           mov     si, [hotspot_dealloc_table][bx] +273F:79C0                       loc_1529: +273F:79C0 úAD                                   lodsw                           ; String [si] to ax +273F:79C1  0B C0                                or      ax,ax                   ; Zero ? +273F:79C3  74 1D                                jz      loc_ret_1530            ; Jump if zero +273F:79C5  56                                   push    si +273F:79C6  8B D8                                mov     bx,ax +273F:79C8  E8 931D                              call    get_room_resource_pointer +273F:79CB  5B                                   pop     bx +273F:79CC  87 DE                                xchg    bx, si +273F:79CE  8B 7F 0B                             mov     di, [bx+HS_ANIM_OFFSET] +273F:79D1  0B FF                                or      di, di                  ; Zero ? +273F:79D3  74 EB                                jz      loc_1529                ; Jump if zero + +273F:79D5  33 C0                                xor     ax,ax                   ; Zero register +273F:79D7  88 45 0C                             mov     [di+ANIM_LAYER], al +273F:79DA  89 45 1B                             mov     [di+ANIM_HOTSPOT_ID], ax +273F:79DD  89 47 0B                             mov     [bx+HS_ANIM_OFFSET], ax +273F:79E0  EB DE                                jmp     short loc_1529          ; (79C0) +273F:79E2                       loc_ret_1530:                                   ;  xref 273F:79C3 +273F:79E2  C3                                   retn +                 seq_deactivate_hotspot_set     endp + +273F:79E3  00                   data_401        db      0                       ;  xref 273F:79E4, 7A4F, 7A8A + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:76BD, 77DE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:79E4                       sub_194         proc    near +273F:79E4  2E: C6 06 79E3 00                    mov     cs:data_401,0           ; (273F:79E3=0) +273F:79EA úBE B883                              mov     si, offset animation_block_list +273F:79ED  8B FE                                mov     di,si +273F:79EF  8B 2E 4CFA                           mov     bp,data_812             ; (31E4:4CFA=0) +273F:79F3                       loc_1531:                                       ;  xref 273F:7A10, 7A33, 7A48, 7A55 +273F:79F3 úAD                                   lodsw                           ; String [si] to ax +273F:79F4  0B C0                                or      ax,ax                   ; Zero ? +273F:79F6  74 5F                                jz      loc_1534                ; Jump if zero +273F:79F8  8B D8                                mov     bx,ax +273F:79FA  F6 47 02 08                          test    byte ptr [bx+2],8 +273F:79FE  75 4A                                jnz     loc_1532                ; Jump if not zero +273F:7A00  F7 47 03 FFFF                        test    word ptr [bx+3],0FFFFh +273F:7A05  74 48                                jz      loc_1533                ; Jump if zero +273F:7A07  89 1D                                mov     [di],bx +273F:7A09  83 C7 02                             add     di,2 +273F:7A0C  F6 47 02 20                          test    byte ptr [bx+2],20h     ; ' ' +273F:7A10  75 E1                                jnz     loc_1531                ; Jump if not zero +273F:7A12  8B 47 03                             mov     ax,[bx+3] +273F:7A15  8E C5                                mov     es,bp +273F:7A17  89 6F 03                             mov     [bx+3],bp +273F:7A1A  8B 4F 05                             mov     cx,[bx+5] +273F:7A1D  8B D1                                mov     dx,cx +273F:7A1F  83 EA 01                             sub     dx,1 +273F:7A22  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:7A24  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:7A26  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:7A28  D1 EA                                shr     dx,1                    ; Shift w/zeros fill +273F:7A2A  83 C2 01                             add     dx,1 +273F:7A2D  03 EA                                add     bp,dx +273F:7A2F  8C C2                                mov     dx,es +273F:7A31  3B C2                                cmp     ax,dx +273F:7A33  74 BE                                je      loc_1531                ; Jump if equal +273F:7A35  1E                                   push    ds +273F:7A36  56                                   push    si +273F:7A37  57                                   push    di +273F:7A38  33 F6                                xor     si,si                   ; Zero register +273F:7A3A  33 FF                                xor     di,di                   ; Zero register +273F:7A3C  8E D8                                mov     ds,ax +273F:7A3E  83 C1 01                             add     cx,1 +273F:7A41  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:7A43  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:7A45  5F                                   pop     di +273F:7A46  5E                                   pop     si +273F:7A47  1F                                   pop     ds +273F:7A48  EB A9                                jmp     short loc_1531          ; (79F3) +273F:7A4A                       loc_1532:                                       ;  xref 273F:79FE +273F:7A4A  C7 47 03 0000                        mov     word ptr [bx+3],0 +273F:7A4F                       loc_1533:                                       ;  xref 273F:7A05 +273F:7A4F  2E: C6 06 79E3 01                    mov     cs:data_401,1           ; (273F:79E3=0) +273F:7A55  EB 9C                                jmp     short loc_1531          ; (79F3) +273F:7A57                       loc_1534:                                       ;  xref 273F:79F6 +273F:7A57  C7 05 0000                           mov     word ptr [di],0 +273F:7A5B  89 2E 4D00                           mov     buffer_segment, bp      ; (31E4:4D00=0) + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:7B0A, 8FD3 + +273F:7A5F                       sub_195: +273F:7A5F  57                                   push    di +273F:7A60 úBE B14E                              mov     si, offset animation_table +273F:7A63  B9 002D                              mov     cx, NUM_ANIMATION_SLOTS + +273F:7A66                       locloop_1535:                                   ;  xref 273F:7A86 +273F:7A66  F6 44 0C FF                          test    byte ptr [si+0Ch],0FFh +273F:7A6A  74 17                                jz      loc_1538                ; Jump if zero +273F:7A6C  83 7C 1B FE                          cmp     word ptr [si+1Bh],0FFFEh +273F:7A70  72 05                                jb      loc_1536                ; Jump if below +273F:7A72 úBF 5810                              mov     di,5810h                ; (273F:5810=0A3h) +273F:7A75  EB 06                                jmp     short loc_1537          ; (7A7D) +273F:7A77                       loc_1536:                                       ;  xref 273F:7A70 +273F:7A77  8B 7C 19                             mov     di,[si+19h] +273F:7A7A  8B 7D 21                             mov     di,[di+21h] +273F:7A7D                       loc_1537:                                       ;  xref 273F:7A75 +273F:7A7D  8B 45 03                             mov     ax,[di+3] +273F:7A80  89 44 0A                             mov     [si+0Ah],ax +273F:7A83                       loc_1538:                                       ;  xref 273F:7A6A +273F:7A83  83 C6 29                             add     si,29h +273F:7A86  E2 DE                                loop    locloop_1535            ; Loop if cx > 0 + +273F:7A88  5F                                   pop     di +273F:7A89  F8                                   clc                             ; Clear carry flag +                                                assume  ds:seg_code +273F:7A8A  2E: F6 06 79E3 FF                    test    cs:data_401,0FFh        ; (273F:79E3=0) +273F:7A90  75 01                                jnz     loc_ret_1539            ; Jump if not zero +273F:7A92  F9                                   stc                             ; Set carry flag + +273F:7A93                       loc_ret_1539:                                   ;  xref 273F:7A90 +273F:7A93  C3                                   retn +                                sub_194         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A651, A6AE, A700 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7A94                   load_resources      proc    near + +273F:7A94  A1 4CFE                              mov     ax, data_814 +273F:7A97  A3 4D00                              mov     buffer_segment, ax +273F:7A9A  A3 4CE0                              mov     current_room_segment, ax +273F:7A9D  A3 4CE2                              mov     data_segment, ax +273F:7AA0  05 2146                              add     ax,2146h +273F:7AA3  A3 4CE4                              mov     data_segment2, ax +273F:7AA6  05 0FA0                              add     ax, 0FA0h +273F:7AA9  A3 4CE6                              mov     talk_dialog_buffer, ax +273F:7AAC  05 0340                              add     ax,340h +273F:7AAF  A3 4D00                              mov     buffer_segment, ax +273F:7AB2  B8 0004                              mov     ax,4                    ; Read font data +273F:7AB5  E8 00BC                              call    read_into_buffer +273F:7AB8  A3 4CF2                              mov     font_segment, ax +273F:7ABB  B8 0005                              mov     ax,5                    ; Read menubar +273F:7ABE  8B 0E 4CE2                           mov     cx,data_segment +273F:7AC2  BA 0080                              mov     dx,80h +273F:7AC5  E8 884C                              call    read_entry +273F:7AC8  A1 4D00                              mov     ax,buffer_segment +273F:7ACB  8E C0                                mov     es,ax +273F:7ACD  8B 16 4CE2                           mov     dx,data_segment +273F:7AD1  FF 16 077C                           call    [decode_entry_proc] +273F:7AD5  A1 4D00                              mov     ax,buffer_segment       ; (31E4:4D00=0) +273F:7AD8  A3 4CF6                              mov     data_810,ax             ; (31E4:4CF6=0) +273F:7ADB  8B 16 074C                           mov     dx, menubar_block_size +273F:7ADF  B1 04                                mov     cl,4 +273F:7AE1  D3 EA                                shr     dx,cl                   ; Shift w/zeros fill +273F:7AE3  01 16 4D00                           add     buffer_segment, dx      ; (31E4:4D00=0) +273F:7AE7  A1 4D00                              mov     ax,buffer_segment       ; (31E4:4D00=0) +273F:7AEA  A3 4CF8                              mov     data_811,ax             ; (31E4:4CF8=0) +273F:7AED  E8 00D1                              call    load_string_resources +273F:7AF0  A1 4D00                              mov     ax,buffer_segment       ; (31E4:4D00=0) +273F:7AF3  8B 16 4D02                           mov     dx,buffer_segment_end   ; (31E4:4D02=0) +273F:7AF7  2B D0                                sub     dx,ax +273F:7AF9  81 FA 186A                           cmp     dx,186Ah +273F:7AFD  73 08                                jae     loc_1541                ; Jump if above or = +273F:7AFF  B8 0008                              mov     ax,8 +273F:7B02  B6 01                                mov     dh,1 +273F:7B04  E8 C49D                              call    display_message         ; (3FA4) +273F:7B07                       loc_1541:                                       ;  xref 273F:7AFD +273F:7B07  E8 9998                              call    sub_45                  ; (14A2) +273F:7B0A  E8 FF52                              call    sub_195                 ; (7A5F) +273F:7B0D  C3                                   retn +                            load_resources      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7917 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7B0E                       sub_197         proc    near +273F:7B0E  F6 44 02 10                          test    byte ptr [si+2],10h +273F:7B12  74 3E                                jz      loc_ret_1542            ; Jump if zero +273F:7B14  B8 2146                              mov     ax,2146h +273F:7B17  03 06 4CE0                           add     ax, current_room_segment +273F:7B1B  2B 06 4CE2                           sub     ax, data_segment +273F:7B1F  8B 5C 05                             mov     bx,[si+5] +273F:7B22  83 C3 0F                             add     bx,0Fh +273F:7B25  B1 04                                mov     cl,4 +273F:7B27  D3 EB                                shr     bx,cl                   ; Shift w/zeros fill +273F:7B29  3B D8                                cmp     bx,ax +273F:7B2B  73 25                                jae     loc_ret_1542            ; Jump if above or = +273F:7B2D  80 4C 02 20                          or      byte ptr [si+2],20h     ; ' ' +273F:7B31  1E                                   push    ds +273F:7B32  A1 4CE2                              mov     ax, data_segment +273F:7B35  01 1E 4CE2                           add     data_segment, bx +273F:7B39  8E C0                                mov     es,ax +273F:7B3B  8B 4C 05                             mov     cx,[si+5] +273F:7B3E  D1 E9                                shr     cx,1                    ; Shift w/zeros fill +273F:7B40  87 44 03                             xchg    [si+3],ax +273F:7B43  A3 4D00                              mov     buffer_segment, ax +273F:7B46  8E D8                                mov     ds,ax +273F:7B48  56                                   push    si +273F:7B49  33 F6                                xor     si,si                   ; Zero register +273F:7B4B  33 FF                                xor     di,di                   ; Zero register +273F:7B4D  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:7B4F  5E                                   pop     si +273F:7B50  1F                                   pop     ds +273F:7B51  C3                                   retn + +273F:7B52                       loc_ret_1542:                                   ;  xref 273F:7B12, 7B2B +273F:7B52  C3                                   retn +                                sub_197         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:75B4, 75C2, 75E0, 75FE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      read_entry_into_buffer    proc    near + +273F:7B53  8B 0E 4D00                           mov     cx, buffer_segment +273F:7B57  89 0E 4CE4                           mov     data_segment2, cx +273F:7B5B  BA 0080                              mov     dx, 80h +273F:7B5E  80 26 11D0 EF                        and     menubar_state, 0EFh +273F:7B63  E8 87AE                              call    read_entry +273F:7B66  C3                                   retn + +                      read_entry_into_buffer    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A2BF, A2E9 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7B67               read_into_buffer_2      proc    near +273F:7B67  8B 0E 4D00                           mov     cx,buffer_segment       ; (31E4:4D00=0) +273F:7B6B  89 0E 4CE4                           mov     data_segment2, cx +273F:7B6F  80 26 11D0 EF                        and     menubar_state, 0EFh  ; (31E4:11D0=3) + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:765D, 7666, 766F, 767D, 7AB5, 7BCB, 7BDB + +273F:7B74               read_into_buffer: +273F:7B74  8B 0E 4D00                           mov     cx,buffer_segment       ; (31E4:4D00=0) +273F:7B78  33 D2                                xor     dx,dx                   ; Zero register +273F:7B7A  80 26 11D0 EF                        and     menubar_state, 0EFh  ; (31E4:11D0=3) +273F:7B7F  51                                   push    cx +273F:7B80  E8 8791                              call    read_entry              ; (0314) +273F:7B83  01 16 4D00                           add     buffer_segment, dx      ; (31E4:4D00=0) +273F:7B87  58                                   pop     ax +273F:7B88  C3                                   retn +                        read_into_buffer_2      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:75B7, 75D5, 75F3, 7611 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7B89         decode_and_fade_in_display    proc    near + +273F:7B89  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:7B8E  74 10                                je      loc_1543                ; Jump if equal +273F:7B90  B8 A000                              mov     ax, VGA_SEGMENT +273F:7B93  8E C0                                mov     es,ax +273F:7B95  8B 16 4D00                           mov     dx, buffer_segment      ; decode loaded file entry +273F:7B99  E8 BDEE                              call    decode_file_entry       ; (398A) +273F:7B9C  FF 26 0760                           jmp     word ptr [fade_in_proc] +273F:7BA0                       loc_1543:                                       ;  xref 273F:7B8E +273F:7BA0  8B 16 4D00                           mov     dx, buffer_segment      ; (31E4:4D00=0) +273F:7BA4  8B C2                                mov     ax,dx +273F:7BA6  05 0FA0                              add     ax,0FA0h +273F:7BA9  A3 4CE4                              mov     data_segment2, ax +273F:7BAC  05 0050                              add     ax,50h +273F:7BAF  8E C0                                mov     es,ax +273F:7BB1  E8 A8B6                              call    ega_decode_entry +273F:7BB4  E8 8DAA                              call    clear_hotspot_rects +273F:7BB7  E8 F44B                              call    menubar_clear_image +273F:7BBA  E8 A49F                              call    ega_show_menu            +273F:7BBD  FF 26 0760                           jmp     word ptr [fade_in_proc] + +                  decode_and_fade_in_display    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7AED, 8FAF, 93AC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7BC1             load_string_resources     proc    near +                                                assume  ds:seg_code +273F:7BC1  83 3E 9832 2A                        cmp     room_number, 2Ah +273F:7BC6  73 09                                jae     loc_1544                ; Jump if above or = +273F:7BC8  B8 0011                              mov     ax,11h +273F:7BCB  E8 FFA6                              call    read_into_buffer        ; (7B74) +273F:7BCE  A3 4CEA                              mov     strings_segment_2, ax +273F:7BD1                       loc_1544:                                       ;  xref 273F:7BC6 +273F:7BD1  83 3E 9832 2A                        cmp     room_number, 2Ah +273F:7BD6  72 09                                jb      loc_1545                ; Jump if below +273F:7BD8  B8 0012                              mov     ax,12h +273F:7BDB  E8 FF96                              call    read_into_buffer        ; (7B74) +273F:7BDE  A3 4CEC                              mov     strings_segment_3, ax +273F:7BE1                       loc_1545:                                       ;  xref 273F:7BD6 +273F:7BE1  A1 4D00                              mov     ax, buffer_segment +273F:7BE4  A3 4CFA                              mov     word ptr ds:[4CFAh],ax  ; (273F:4CFA=0C183h) +273F:7BE7  C3                                   retn +                      load_string_resources     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7FF7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      seq_character_in_room     proc    near + +0C07:7BE8 C7 06 BA1F 0000                       mov     general_val, 0 +0C07:7BEE 81 FB 03E8                            cmp     bx, PLAYER_HOTSPOT_ID +0C07:7BF2 72 E                                  jb      loc_ret_1546 +0C07:7BF4 E8 F1 90                              call    get_room_resource_pointer +0C07:7BF7 3B 4C 06                              cmp     cx, [si+HS_ROOM_NUM] +0C07:7BFA 75 06                                 jnz     loc_ret_1546 +0C07:7BFC C7061FBA0100                          mov     general_val, 1 +0C07:7C02 C3                loc_ret_1546:       ret +                       seq_character_in_room    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7FF7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7C03                 hotspot_disable       proc    near +273F:7C03  E8 90E2                              call    get_room_resource_pointer +273F:7C06  80 64 03 7F                          and     byte ptr [si+HS_FLAGS], 7Fh +273F:7C0A  C3                                   retn +                          hotspot_disable       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:60B5 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7C0B                  hotspot_enable       proc    near +273F:7C0B  E8 90DA                              call    get_room_resource_pointer +273F:7C0E  80 4C 03 80                          or      byte ptr [si+HS_FLAGS], 80h +273F:7C12  C3                                   retn +                           hotspot_enable       endp + +273F:7C13  00 +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +0C07:7C14 8B DE                                 mov     bx, si +0C07:7C16 03 5C 61                              add     bx, [si+HS_ACTION_OFFSET] +0C07:7C19 83 C3 63                              add     BX, HS_FIRST_ACTION_OFFSET +0C07:7C1C F7 06 BA5F FFFF                       test    script_val_37, 0FFFFh +0C07:7C22 75 38                                 jnz     loc_1548_2 +0C07:7C24 8B DE                                 mov     bx, si +0C07:7C26 03 5C 61                              add     bx, [si+HS_ACTION_OFFSET] +0C07:7C29 83 C3 63                              add     bx, HS_FIRST_ACTION_OFFSET +0C07:7C2C F7 44 61 FFFF                         test    word ptr [si+HS_ACTION_OFFSET], 0FFFFh +0C07:7C31 75 29                                 jnz     loc_1548_2 +0C07:7C33 8B 47 03                              mov     ax, [bx+3] +0C07:7C36 3B 44 06                              cmp     ax, [si+6] +0C07:7C39 74 21                                 jz      loc_1548_2 +0C07:7C3B A1 6CF5                               mov     ax, [6CF5h] +0C07:7C3E 53                                    push    bx +0C07:7C3F 81 7D 1B 03EF                         cmp     word ptr [DI+ANIM_HOTSPOT_ID], 03EFh +0C07:7C44 74 12                                 JZ      7C58 +0C07:7C46 BB 4F6D                               mov     bx, 4F6Dh +0C07:7C49 83 C3 02                              add     bx, 2 + +273F:7C49                       loc_1547:                                       ;  xref 273F:7C53 +273F:7C49  83 C3 02                             add     bx,2 +273F:7C4C  F6 07 FF                             test    byte ptr [bx],0FFh +273F:7C4F  74 07                                jz      loc_1548                ; Jump if zero +273F:7C51  3A 07                                cmp     al,[bx] +273F:7C53  75 F4                                jne     loc_1547                ; Jump if not equal +273F:7C55  8A 47 01                             mov     al,[bx+1] +273F:7C58                       loc_1548:                                       ;  xref 273F:7C4F +273F:7C58  5B                                   pop     bx +273F:7C59  89 47 03                             mov     [bx+3],ax +273F:7C5C  8A 44 44           loc_1548_2:       mov     al,[si+44h] +273F:7C5F  3C 02                                cmp     al,2 +273F:7C61  75 35                                jne     loc_1550                ; Jump if not equal +273F:7C63  F6 06 4F8A FF                        test    byte ptr ds:[4F8Ah],0FFh ; (273F:4F8A=0E8h) +273F:7C68  74 24                                jz      loc_1549                ; Jump if zero +273F:7C6A  C6 06 4F8A 00                        mov     byte ptr ds:[4F8Ah],0   ; (273F:4F8A=0E8h) +273F:7C6F  83 44 61 05                          add     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:7C73  83 C3 05                             add     bx, CURRENT_ACTION_RECORD_SIZE +273F:7C76  C6 44 4D 00                          mov     byte ptr [si+4Dh],0 +273F:7C7A  C7 47 01 13C2                        mov     word ptr [bx+CURRENT_ACTION_SUPPORT_TABLE], 13C2h +273F:7C7F  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:7C82  C7 47 03 0007                        mov     word ptr [bx+CURRENT_ACTION_ROOM_NUM], 7 +273F:7C87  C6 44 2A 00                          mov     byte ptr [si+2Ah],0 +273F:7C8B  E9 D2F4                              jmp     standard_character_tick_proc +273F:7C8E                       loc_1549:                                       ;  xref 273F:7C68 +273F:7C8E  F6 44 FF FF                          test    byte ptr [si-1],0FFh +273F:7C92  74 07                                jz      loc_1551                ; Jump if zero +273F:7C94  80 6C FF 01                          sub     byte ptr [si-1],1 +273F:7C98                       loc_1550:                                       ;  xref 273F:7C61 +273F:7C98  E9 D2E7                              jmp     standard_character_tick_proc +273F:7C9B                       loc_1551:                                       ;  xref 273F:7C92 +273F:7C9B  8B 5C 06                             mov     bx,[si+6] +273F:7C9E  83 EB 01                             sub     bx,1 +273F:7CA1  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:7CA3 ú81 C3 4D10                           add     bx,4D10h                ; (273F:4D10=2) +273F:7CA7  8B 1F                                mov     bx,[bx] +273F:7CA9  8A 0F                                mov     cl,[bx] +273F:7CAB  0A C9                                or      cl,cl                   ; Zero ? +273F:7CAD  74 25                                jz      loc_1554                ; Jump if zero +273F:7CAF  E8 C7BA                              call    random +273F:7CB2  32 ED                                xor     ch,ch                   ; Zero register +273F:7CB4  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:7CB6  83 C3 01                             add     bx,1 +273F:7CB9  0B D2                                or      dx,dx                   ; Zero ? +273F:7CBB  74 0F                                jz      loc_1553                ; Jump if zero +273F:7CBD                       loc_1552:                                       ;  xref 273F:7CC5, 7CCA +273F:7CBD  8B 07                                mov     ax,[bx] +273F:7CBF  83 C3 02                             add     bx,2 +273F:7CC2  3D FFFF                              cmp     ax,0FFFFh +273F:7CC5  75 F6                                jne     loc_1552                ; Jump if not equal +273F:7CC7  83 EA 01                             sub     dx,1 +273F:7CCA  75 F1                                jnz     loc_1552                ; Jump if not zero +273F:7CCC                       loc_1553:                                       ;  xref 273F:7CBB +273F:7CCC  8B 07                                mov     ax,[bx] +273F:7CCE  83 C3 02                             add     bx,2 +273F:7CD1  3D 0004                              cmp     ax,4 +273F:7CD4                       loc_1554:                                       ;  xref 273F:7CAD +273F:7CD4  74 61                                je      loc_1557                ; Jump if equal +273F:7CD6  3D 0003                              cmp     ax,3 +273F:7CD9  75 0E                                jne     loc_1555                ; Jump if not equal +273F:7CDB  8B 44 06                             mov     ax,[si+6] +273F:7CDE  3B 06 6CF5                           cmp     ax,word ptr ds:[6CF5h]  ; (273F:6CF5=551Eh) +273F:7CE2  75 53                                jne     loc_1557                ; Jump if not equal +273F:7CE4  C7 47 FE 0004                        mov     word ptr [bx-2],4 +273F:7CE9                       loc_1555:                                       ;  xref 273F:7CD9 +273F:7CE9  8B CB                                mov     cx,bx +273F:7CEB  83 3F FE                             cmp     word ptr [bx],0FFFEh +273F:7CEE  75 2A                                jne     loc_1556                ; Jump if not equal +273F:7CF0  8B DE                                mov     bx,si +273F:7CF2  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:7CF5  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:7CF8  C6 07 02                             mov     byte ptr [bx],2 +273F:7CFB  C7 06 0001 69D3                      mov     word ptr ds:[1],69D3h   ; (273F:0001=31E4h) +273F:7D01  C7 06 69D3 0020                      mov     word ptr ds:[69D3h],20h ; (273F:69D3=8006h) +273F:7D07  C7 06 69D5 0000                      mov     word ptr ds:[69D5h],0   ; (273F:69D5=433h) +273F:7D0D  83 C1 02                             add     cx,2 +273F:7D10  83 44 61 05                          add     word ptr [si+HS_ACTION_OFFSET], CURRENT_ACTION_RECORD_SIZE +273F:7D14  8B 44 06                             mov     ax,[si+HS_ROOM_NUM] +273F:7D17  89 47 08                             mov     [bx+8],ax +273F:7D1A                       loc_1556:                                       ;  xref 273F:7CEE +273F:7D1A  8B DE                                mov     bx,si +273F:7D1C  03 5C 61                             add     bx,[si+HS_ACTION_OFFSET] +273F:7D1F  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:7D22  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:7D25  89 4F 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], cx +273F:7D28  C6 44 44 00                          mov     byte ptr [si+HS_V44], 0 +273F:7D2C  E8 C73D                              call    random +273F:7D2F  B9 0020                              mov     cx,20h +273F:7D32  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:7D34  88 54 FF                             mov     [si-1],dl +273F:7D37                       loc_1557:                                       ;  xref 273F:7CD4, 7CE2 +273F:7D37  E9 D248                              jmp     standard_character_tick_proc + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0D9B, 0E9B, 1381, 1D1D, 59C1, 5A23, 6305 +                                ;                             6314, 6950, 8953, 8DF8 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            decode_string       proc    near + +273F:7D3A                       loc_1558:                                       ;  xref 273F:7EEA +273F:7D3A ú1E                                   push    ds +273F:7D3B  25 1FFF                              and     ax,1FFFh +273F:7D3E  E8 0099                              call    decode_string_init +273F:7D41                       loc_1559:                                       ;  xref 273F:7D49 +273F:7D41 úE8 0061                              call    read_bit +273F:7D44  74 05                                jz      loc_1560                ; Jump if zero +273F:7D46  83 C6 02                             add     si,2 +273F:7D49  EB F6                                jmp     short loc_1559          ; (7D41) +273F:7D4B                       loc_1560:                                       ;  xref 273F:7D44 +273F:7D4B  E8 0057                              call    read_bit +273F:7D4E                       loc_1561:                                       ;  xref 273F:7D5E, 7D7E, 7DA0 +273F:7D4E úE8 98F7                              call    decode_character +273F:7D51  0A C0                                or      al,al                   ; End of string sequence? +273F:7D53  74 4D                                jz      loc_1568                ; If yes, then exit +273F:7D55  3C A0                                cmp     al,0A0h +273F:7D57  73 27                                jae     loc_1565                ; Jump if above or = +273F:7D59  3C 25                                cmp     al,25h                  ; '%' +273F:7D5B  74 03                                je      loc_1562                ; Jump if equal +273F:7D5D  AA                                   stosb                           ; Store al to es:[di] +273F:7D5E  EB EE                                jmp     short loc_1561          ; (7D4E) + +273F:7D60                       loc_1562:                                       ; % handler - if it's %1, replace +273F:7D60  E8 98E5                              call    decode_character        ;   it with the highlighted hotspot +273F:7D63  1E                                   push    ds                      ;   name. Otherwise, replace it +273F:7D64  56                                   push    si                      ;   it with selected action string +273F:7D65  BE 31E4                              mov     si,seg data_seg +273F:7D68  8E DE                                mov     ds,si +273F:7D6A  BE 4B43                              mov     si, offset hotspot_name +273F:7D6D  3C 31                                cmp     al,31h                  ; '1' +273F:7D6F  74 03                                je      loc_1563                ; Jump if equal +273F:7D71 úBE 4B93                              mov     si, offset action_name +273F:7D74                       loc_1563: +273F:7D74 úAC                                   lodsb                           ; String [si] to al +273F:7D75  0A C0                                or      al,al +273F:7D77  74 03                                jz      loc_1564                ; Copy bytes until NULL +273F:7D79  AA                                   stosb +273F:7D7A  EB F8                                jmp     short loc_1563 +273F:7D7C                       loc_1564: +273F:7D7C  5E                                   pop     si +273F:7D7D  1F                                   pop     ds +273F:7D7E  EB CE                                jmp     short loc_1561          ; (7D4E) + +273F:7D80                       loc_1565:                                       ; Handle character name substitution                                        +273F:7D80  56                                   push    si +273F:7D81  1E                                   push    ds +273F:7D82  2C A0                                sub     al,0A0h +273F:7D84  32 E4                                xor     ah,ah                   ; Zero register +273F:7D86  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:7D88  8B F0                                mov     si,ax +273F:7D8A  B8 31E4                              mov     ax,data_seg +273F:7D8D  8E D8                                mov     ds,ax +                                                assume  ds:data_seg +273F:7D8F  A1 4CEE                              mov     ax, names_segment +273F:7D92  8E D8                                mov     ds,ax +273F:7D94  8B 34                                mov     si,[si]                 ; Get name position from offset list +273F:7D96                       loc_1566: +273F:7D96 úAC                                   lodsb                           ; String [si] to al +273F:7D97  0A C0                                or      al,al                   ; Zero ? +273F:7D99  74 03                                jz      loc_1567                ; Jump if zero +273F:7D9B  AA                                   stosb                           ; Store al to es:[di] +273F:7D9C  EB F8                                jmp     short loc_1566 +273F:7D9E                       loc_1567: +273F:7D9E  1F                                   pop     ds +273F:7D9F  5E                                   pop     si +273F:7DA0  EB AC                                jmp     short loc_1561 +273F:7DA2                       loc_1568: +273F:7DA2  AA                                   stosb                           ; Store final NULL +273F:7DA3  1F                                   pop     ds +273F:7DA4  C3                                   retn + +                            decode_string       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1648, 1650, 165B, 1663, 1671, 167C, 168A +                                ;                             1692, 169A, 16A8, 16B3, 16BE, 16C9, 16D7 +                                ;                             16DF, 16E7, 16F2, 1700, 1708, 1716, 1721 +                                ;                             172F, 1737, 173F, 174D, 1755, 1763, 176E +                                ;                             177C, 1784, 178C, 179A, 17A2, 17B0, 17BB +                                ;                             17C9, 17D1, 17D9, 17E4, 17F2, 17FA, 1808 +                                ;                             1813, 181E, 182C, 1834, 183C, 1847, 1855 +                                ;                             185D, 186B, 1876, 1884, 188C, 1894, 189F +                                ;                             18AD, 18B8, 18C3, 18D1, 18D9, 18E1, 18EF +                                ;                             18F7, 1905, 1910, 191E, 1926, 192E, 1939 +                                ;                             1947, 1952, 195D, 196B, 1973, 197B, 1989 +                                ;                             1994, 19A2, 19AA, 19B5, 19C0, 19CE, 19D6 +                                ;                             19E1, 19EF, 19F7, 1A05, 1A0D, 1A1B, 1A23 +                                ;                             1A31, 1A39, 7D41, 7D4B, 7E97, 7EA1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7DA5                       read_bit        proc    near +273F:7DA5  8A 04                                mov     al,[si] +273F:7DA7  22 C2                                and     al,dl +273F:7DA9  D0 EA                                shr     dl,1                    ; Shift w/zeros fill +273F:7DAB  73 03                                jnc     loc_1569                ; Jump if carry=0 +273F:7DAD  46                                   inc     si +273F:7DAE  B2 80                                mov     dl,80h +273F:7DB0                       loc_1569:                                       ;  xref 273F:7DAB +273F:7DB0  0A C0                                or      al,al                   ; Zero ? +273F:7DB2  C3                                   retn +                                read_bit        endp + +                                                                                ;* No entry point to code +273F:7DB3  1E                                   push    ds +273F:7DB4  07                                   pop     es +273F:7DB5  8B EC                                mov     bp,sp +273F:7DB7  83 C5 02                             add     bp,2 +273F:7DBA                       loc_1570:                                       ;  xref 273F:7DC4, 7DD8 +273F:7DBA úAC                                   lodsb                           ; String [si] to al +273F:7DBB  0A C0                                or      al,al                   ; Zero ? +273F:7DBD  74 07                                jz      loc_ret_1571            ; Jump if zero +273F:7DBF  3C 25                                cmp     al,25h                  ; '%' +273F:7DC1  74 04                                je      loc_1572                ; Jump if equal +273F:7DC3  AA                                   stosb                           ; Store al to es:[di] +273F:7DC4  EB F4                                jmp     short loc_1570          ; (7DBA) + +273F:7DC6                       loc_ret_1571:                                   ;  xref 273F:7DBD +273F:7DC6  C3                                   retn +273F:7DC7                       loc_1572:                                       ;  xref 273F:7DC1 +273F:7DC7  AC                                   lodsb                           ; String [si] to al +273F:7DC8  56                                   push    si +273F:7DC9  8B 76 00                             mov     si,[bp] +273F:7DCC  83 C5 02                             add     bp,2 +273F:7DCF                       loc_1573:                                       ;  xref 273F:7DD5 +273F:7DCF úAC                                   lodsb                           ; String [si] to al +273F:7DD0  0A C0                                or      al,al                   ; Zero ? +273F:7DD2  74 03                                jz      loc_1574                ; Jump if zero +273F:7DD4  AA                                   stosb                           ; Store al to es:[di] +273F:7DD5  EB F8                                jmp     short loc_1573          ; (7DCF) +273F:7DD7                       loc_1574:                                       ;  xref 273F:7DD2 +273F:7DD7  5E                                   pop     si +273F:7DD8  EB E0                                jmp     short loc_1570          ; (7DBA) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7D3E, 7E94 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7DDA              decode_string_init       proc    near +273F:7DDA  1E                                   push    ds +273F:7DDB  50                                   push    ax +273F:7DDC  B8 31E4                              mov     ax,data_seg +273F:7DDF  8E D8                                mov     ds,ax +273F:7DE1  58                                   pop     ax +273F:7DE2  83 3E 9832 2A                        cmp     room_number, 2Ah +273F:7DE7  72 0D                                jb      loc_1575                ; Jump if below +273F:7DE9  3D 07D0                              cmp     ax,7D0h +273F:7DEC  72 08                                jb      loc_1575                ; Jump if below +273F:7DEE  3D 0FA0                              cmp     ax,0FA0h +273F:7DF1  73 03                                jae     loc_1575                ; Jump if above or = +273F:7DF3  B8 0076                              mov     ax,76h +273F:7DF6                       loc_1575:                                       ;  xref 273F:7DE7, 7DEC, 7DF1 +273F:7DF6  83 3E 9832 2A                        cmp     room_number, 2Ah +273F:7DFB  73 08                                jae     loc_1576                ; Jump if above or = +273F:7DFD  3D 0FA0                              cmp     ax,0FA0h +273F:7E00  72 03                                jb      loc_1576                ; Jump if below +273F:7E02  B8 0076                              mov     ax,76h +273F:7E05                       loc_1576:                                       ;  xref 273F:7DFB, 7E00 +273F:7E05  1F                                   pop     ds +273F:7E06  1E                                   push    ds +273F:7E07  07                                   pop     es +273F:7E08  BB 31E4                              mov     bx,seg data_seg +273F:7E0B  8E DB                                mov     ds,bx +273F:7E0D  8B 1E 4CE8                           mov     bx, strings_segment +273F:7E11  3D 07D0                              cmp     ax,7D0h +273F:7E14  72 13                                jb      loc_1577                ; Jump if below +273F:7E16  8B 1E 4CEA                           mov     bx, strings_segment_2 +273F:7E1A  2D 07D0                              sub     ax,7D0h +273F:7E1D  3D 07D0                              cmp     ax,7D0h +273F:7E20  72 07                                jb      loc_1577                ; Jump if below +273F:7E22  8B 1E 4CEC                           mov     bx, strings_segment_3 +273F:7E26  2D 07D0                              sub     ax,7D0h +273F:7E29                       loc_1577:                                       ;  xref 273F:7E14, 7E20 +273F:7E29  8E DB                                mov     ds,bx +273F:7E2B  8B D0                                mov     dx,ax +273F:7E2D úBE 0004                              mov     si, 4 +273F:7E30  55                                   push    bp +273F:7E31  33 DB                                xor     bx,bx                   ; Zero register +273F:7E33  33 ED                                xor     bp,bp                   ; Zero register +273F:7E35  B1 05                                mov     cl,5 +273F:7E37  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:7E39  74 0A                                jz      loc_1579                ; Jump if zero +273F:7E3B  8B C8                                mov     cx,ax + + + +273F:7E3D                       locloop_1578:                                   ;  xref 273F:7E43 +273F:7E3D  AD                                   lodsw                           ; String [si] to ax +273F:7E3E  03 D8                                add     bx,ax +273F:7E40  83 D5 00                             adc     bp,0 +273F:7E43  E2 F8                                loop    locloop_1578            ; Loop if cx > 0 + +273F:7E45                       loc_1579:                                       ;  xref 273F:7E39 +273F:7E45  8B CA                                mov     cx,dx +273F:7E47  83 E1 1F                             and     cx,1Fh +273F:7E4A  74 28                                jz      loc_1582                ; Jump if zero +273F:7E4C  83 E2 E0                             and     dx,0FFE0h +273F:7E4F  03 16 0000                           add     dx,ds:[0] +273F:7E53  8B F2                                mov     si,dx + +273F:7E55                       locloop_1580:                                   ;  xref 273F:7E61, 7E72 +273F:7E55  AC                                   lodsb                           ; String [si] to al +273F:7E56  32 E4                                xor     ah,ah                   ; Zero register +273F:7E58  A8 80                                test    al,80h +273F:7E5A  75 09                                jnz     loc_1581                ; Jump if not zero +273F:7E5C  03 D8                                add     bx,ax +273F:7E5E  83 D5 00                             adc     bp,0 +273F:7E61  E2 F2                                loop    locloop_1580            ; Loop if cx > 0 + +273F:7E63  EB 0F                                jmp     short loc_1582          ; (7E74) +273F:7E65                       loc_1581:                                       ;  xref 273F:7E5A +273F:7E65  24 7F                                and     al,7Fh +273F:7E67  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:7E69  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:7E6B  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:7E6D  03 D8                                add     bx,ax +273F:7E6F  83 D5 00                             adc     bp,0 +273F:7E72  E2 E1                                loop    locloop_1580            ; Loop if cx > 0 + +273F:7E74                       loc_1582:                                       ;  xref 273F:7E4A, 7E63 +273F:7E74  B2 80                                mov     dl,80h +273F:7E76  8A CB                                mov     cl,bl +273F:7E78  80 E1 03                             and     cl,3 +273F:7E7B  74 04                                jz      loc_1583                ; Jump if zero +273F:7E7D  D0 E1                                shl     cl,1                    ; Shift w/zeros fill +273F:7E7F  D2 EA                                shr     dl,cl                   ; Shift w/zeros fill +273F:7E81                       loc_1583:                                       ;  xref 273F:7E7B +273F:7E81  D1 EB                                shr     bx,1                    ; Shift w/zeros fill +273F:7E83  D1 EB                                shr     bx,1                    ; Shift w/zeros fill +273F:7E85  03 1E 0002                           add     bx,word ptr ds:[2] +273F:7E89  8B F3                                mov     si,bx +273F:7E8B  B1 0E                                mov     cl,0Eh +273F:7E8D  D3 E5                                shl     bp,cl                   ; Shift w/zeros fill +273F:7E8F  03 F5                                add     si,bp +273F:7E91  5D                                   pop     bp +273F:7E92  C3                                   retn +                       decode_string_init       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6368 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7E93                       sub_208         proc    near +273F:7E93  1E                                   push    ds +273F:7E94  E8 FF43                              call    decode_string_init +273F:7E97                       loc_1584:                                       ;  xref 273F:7E9F +273F:7E97 úE8 FF0B                              call    read_bit +273F:7E9A  74 05                                jz      loc_1585                ; Jump if zero +273F:7E9C  83 C6 02                             add     si,2 +273F:7E9F  EB F6                                jmp     short loc_1584          ; (7E97) +273F:7EA1                       loc_1585:                                       ;  xref 273F:7E9A +273F:7EA1  E8 FF01                              call    read_bit +273F:7EA4  1F                                   pop     ds +273F:7EA5  C3                                   retn +                                sub_208         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:6375, 6381 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7EA6                       sub_209         proc    near +273F:7EA6  3D 03E7                              cmp     ax,3E7h +273F:7EA9  74 05                                je      loc_1586                ; Jump if equal +273F:7EAB  3D 03E5                              cmp     ax,3E5h +273F:7EAE  75 04                                jne     loc_1587                ; Jump if not equal +273F:7EB0                       loc_1586:                                       ;  xref 273F:7EA9 +273F:7EB0  C6 05 00                             mov     byte ptr [di],0 +273F:7EB3  C3                                   retn +273F:7EB4                       loc_1587:                                       ;  xref 273F:7EAE +273F:7EB4  E8 8E6A                              call    get_room_resource_pointer3 +273F:7EB7  8B 44 02                             mov     ax,[si+2] +273F:7EBA  F6 C3 FF                             test    bl,0FFh +273F:7EBD  74 28                                jz      loc_1593                ; Jump if zero +273F:7EBF  F6 C4 C0                             test    ah,0C0h +273F:7EC2  74 0C                                jz      loc_1589                ; Jump if zero +273F:7EC4  78 05                                js      loc_1588                ; Jump if sign=1 +273F:7EC6  BE 4F90                              mov     si,4F90h +273F:7EC9  EB 0D                                jmp     short loc_1590          ; (7ED8) +273F:7ECB                       loc_1588:                                       ;  xref 273F:7EC4 +273F:7ECB  BE 4F92                              mov     si,4F92h +273F:7ECE  EB 08                                jmp     short loc_1590          ; (7ED8) +273F:7ED0                       loc_1589:                                       ;  xref 273F:7EC2 +273F:7ED0  F6 C4 20                             test    ah,20h                  ; ' ' +273F:7ED3  74 12                                jz      loc_1593                ; Jump if zero +273F:7ED5 úBE 4F95                              mov     si,4F95h                ; (273F:4F95=44h) +273F:7ED8                       loc_1590:                                       ;  xref 273F:7EC9, 7ECE +273F:7ED8  50                                   push    ax +273F:7ED9  1E                                   push    ds +273F:7EDA  07                                   pop     es +273F:7EDB                       loc_1591:                                       ;  xref 273F:7EE1 +273F:7EDB úAC                                   lodsb                           ; String [si] to al +273F:7EDC  0A C0                                or      al,al                   ; Zero ? +273F:7EDE  74 03                                jz      loc_1592                ; Jump if zero +273F:7EE0  AA                                   stosb                           ; Store al to es:[di] +273F:7EE1  EB F8                                jmp     short loc_1591          ; (7EDB) +273F:7EE3                       loc_1592:                                       ;  xref 273F:7EDE +273F:7EE3  B0 20                                mov     al,20h                  ; ' ' +273F:7EE5  AA                                   stosb                           ; Store al to es:[di] +273F:7EE6  58                                   pop     ax +273F:7EE7                       loc_1593:                                       ;  xref 273F:7EBD, 7ED3 +273F:7EE7  80 E4 1F                             and     ah,1Fh +273F:7EEA  E9 FE4D                              jmp     loc_1558                ; (7D3A) +                                sub_209         endp + +                                db              0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +273F:7EEE  C6 06 70FD 03                        mov     byte ptr [70FDh], 3 +273F:7EF3  C7 06 70FB 7FFF                      MOV     WORD PTR [70FB],7FFF +273F:7EF9  C3                                   RET + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                             skorl_tick_proc    proc    near +273F:7EFA  F7 06 BA2B FFFF                      TEST    data_1130, 0FFFFh +273F:7F00  74 22                                jz      vskorl_2 +273F:7F02  F6 45 1D FF                          test    byte ptr [di+ANIM_LAYER1_SKIP], 0FFh +273F:7F06  75 1C                                jnz     vskorl_2 +273F:7F08  F6 06 1926 FF                        test    data_669, 0FFh +273F:7F0D  75 15                                jnz     vskorl_2 +273F:7F0F  BB 6CEF                              mov     bx, offset player_hotspot_rec +273F:7F12  8B 44 06                             mov     ax, [si+HS_ROOM_NUM]    ; Is Skorl in the same +273F:7F15  3B 47 06                             cmp     ax, [bx+HS_ROOM_NUM]    ; room as the player? +273F:7F18  75 0A                                jnz     vskorl_2                ; No, so skip +273F:7F1A  E8 84 D6                             call    characters_impinging_check      ; Check if Skorl has 'caught' player +273F:7F1D  74 05                                jz      vskorl_2 +273F:7F1F  80 0E 073D 70                        or      status_flags2, FLAG_RESTART || FLAG_CAUGHT || FLAG_RESTORERESTART + +273F:7F24  E9 5B D0               vskorl_2:     jmp     standard_character_tick_proc +                             skorl_tick_proc    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                 set_village_skorl_tick_proc    proc    near +273F:7F27  C7 06 6DFD 7EFA                      mov     word ptr [village_skorl_hotspot_rec+HS_TICK_PROC], offset skorl_tick_proc +273F:7F2D  8B 3E 6DF1                           mov     di, [village_skorl_hotspot_rec+HS_ANIM_OFFSET] +273F:7F31  C7 45 11 FA 7E                       mov     word ptr [di+ANIM_TICK_PROC], offset skorl_tick_proc +273F:7F36  C3                                   ret +                 set_village_skorl_tick_proc    endp + +273F:7F37  E8 3E E2                             call    talk_countdown_handler + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; Tick action proc for standard animations, and is responsible +                                ; for them being animated. This seems to include the vertical +                                ; movement of the drip animation +                                ; di = animation slot entry, si = hotspot resource +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                    std_animation_tick_proc     proc    near + +273F:7F3A úF7 44 1F FFFF                        test    word ptr [si+HS_FRAME_CTR], 0FFFFh +273F:7F3F  75 0E                                jnz     loc_1596                ; Jump if not zero +273F:7F41  E8 9065                              call    hotspot_script_execute +273F:7F44  75 08                                jnz     loc_ret_1595            ; Jump if not zero +273F:7F46  E8 9329                              call    animation_unload +273F:7F49  81 4C 06 8000                        or      word ptr [si+6], 8000h + +273F:7F4E                       loc_ret_1595:                                   ;  xref 273F:7F44 +273F:7F4E  C3                                   retn +273F:7F4F                       loc_1596:                                       ;  xref 273F:7F3F, 7F6E, 7FA6 +273F:7F4F  83 6C 1F 01                          sub     word ptr [si+HS_FRAME_CTR], 1 +273F:7F53  C3                                   retn + +                    std_animation_tick_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7F54  F6 44 2A FF                          test    byte ptr [si+2Ah],0FFh +273F:7F58  75 0D                                jnz     loc_1598                ; Jump if not zero +273F:7F5A úBB 6CEF                              mov     bx, offset player_hotspot_rec +273F:7F5D  E8 D641                              call    characters_impinging_check +273F:7F60  74 04                                jz      loc_ret_1597            ; Jump if zero +273F:7F62  80 44 2A 01                          add     byte ptr [si+2Ah],1 + +273F:7F66                       loc_ret_1597:                                   ;  xref 273F:7F60 +273F:7F66  C3                                   retn +273F:7F67                       loc_1598:                                       ;  xref 273F:7F58 +273F:7F67  EB D1                                jmp     short std_animation_tick_proc + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                   dropping_torch_tick_proc     proc    near +273F:7F69  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:7F6E  75 DF                                jnz     loc_1596                ; Jump if not zero +273F:7F70  E8 9036                              call    hotspot_script_execute +273F:7F73  75 7E                                jnz     loc_ret_1599            ; Jump if not zero +273F:7F75  E8 92FA                              call    animation_unload +273F:7F78  BB 041C                              mov     bx, 41Ch +273F:7F7B  BE 7F1F                              mov     si, 7F1Fh +273F:7F7E  E8 F1F1                              call    animation_load_2 +273F:7F81  BB 0008                              mov     bx,8 +273F:7F84  A0 1926                              mov     al, data_669 +273F:7F87  50                                   push    ax +273F:7F88  C6 06 1926 00                        mov     data_669, 0 +273F:7F8D  E8 206D                              call    play_sound                 ; (9FFD) +273F:7F90  58                                   pop     ax +273F:7F91  A2 1926                              mov     data_669, al + +273F:7F94  BB 0418                              mov     bx, 418h                ; Fire on straw in room #1 +273F:7F97 úBE 7EF0                              mov     si,offset data_409 +273F:7F9A  80 4C 03 80                          or      byte ptr [si+3],80h     ; Enable it to be highlighted +273F:7F9E  E9 F1D1                              jmp     animation_load_2        ; Load it for animation +                   dropping_torch_tick_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +273F:7FA1  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:7FA6  75 A7                                jnz     loc_1596                ; Jump if not zero +273F:7FA8  E8 8FFE                              call    hotspot_script_execute +273F:7FAB  75 46                                jnz     loc_ret_1599            ; Jump if not zero +273F:7FAD  E8 92C2                              call    animation_unload +273F:7FB0  C6 44 15 00                          mov     byte ptr [si+15h],0 +273F:7FB4  C7 06 6CFC 0120                      mov     word ptr ds:[6CFCh],120h ; (273F:6CFC=1E8Bh) +273F:7FBA  C7 06 6CFE 00E0                      mov     word ptr ds:[6CFEh],0E0h ; (273F:6CFE=76Eh) +273F:7FC0  8B 1E 6CFA                           mov     bx,word ptr ds:[6CFAh]  ; (273F:6CFA=1F33h) +273F:7FC4  C7 07 0120                           mov     word ptr [bx],120h +273F:7FC8  C7 47 02 00E0                        mov     word ptr [bx+2],0E0h +273F:7FCD  C6 47 26 01                          mov     byte ptr [bx+26h],1 +273F:7FD1  E8 C6DD                              call    character_reset_direction +273F:7FD4  C6 44 44 00                          mov     byte ptr [si+44h],0 +273F:7FD8  C6 44 49 00                          mov     byte ptr [si+49h],0 +273F:7FDC  C6 06 70FD 00                        mov     byte ptr ds:[70FDh],0   ; (273F:70FD=79h) +273F:7FE1  C7 06 70FB 0000                      mov     word ptr ds:[70FBh],0   ; (273F:70FB=80CEh) +273F:7FE7  C7 06 70B9 1C00                      mov     [ratpouch_hotspot_rec], 1C00h ; Set his actions +273F:7FED  C7 06 70BB 0082                      mov     [ratpouch_hotspot_rec+2],82h + +273F:7FF3                       loc_ret_1599:                                   ;  xref 273F:7F73, 7FAB +273F:7FF3  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:7FF4  BB 040F                              mov     bx, 40Fh +273F:7FF7  E8 FC09                              call    hotspot_disable +273F:7FFA  8B 7C 0B                             mov     di,[si+0Bh] +273F:7FFD  E8 9272                              call    animation_unload +273F:8000  BB 040E                              mov     bx, 40Eh +273F:8003 úBE 7EC6                              mov     si, 7EC6h               ; (273F:7EC6=0BEh) +273F:8006  E9 F169                              jmp     animation_load_2 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              fire_tick_proc    proc    near +273F:8009  E8 FF2E                              call    std_animation_tick_proc +273F:800C  E9 F11F                              jmp     pathfind_flag_covered_cells +                              fire_tick_proc    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ +                               +273F:800F  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:8013               loc_set_frame_offset:                                   ;  xref 273F:8269, 83C8, 840E, 84C7 +                                                                                ;            84D2, 85D1 +273F:8013 ú8A 44 2A                             mov     al, [si+HS_ACTION_CTR] +273F:8016  32 E4                                xor     ah, ah                   ; Zero register +273F:8018  8B 5C 21                             mov     bx, [si+HS_PIXEL_OFFSET] +273F:801B  F7 67 07                             mul     word ptr [bx+PIXEL_FRAME_SIZE] +273F:801E  89 45 08                             mov     [di+ANIM_FRAME_OFFSET], ax +273F:8021  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8022  B8 2714                              mov     ax, 2714h +273F:8025  E8 F1C6                              call    room_exit_hs_get_pointer +273F:8028  C6 44 0C 00                          mov     byte ptr [si+0Ch],0     ; Mark door open +273F:802C úBE 70B9                              mov     si, 70B9h +273F:802F  8B DE                                mov     bx,si +273F:8031  03 5C 61                             add     bx, [si+ACTION_OFFSET] +273F:8034  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:8037  C7 47 03 0007                        mov     word ptr [bx+CURRENT_ACTION_ROOM_NUM], 7 +273F:803C  33 C0                                xor     ax,ax                   ; Zero register +273F:803E  8B 5F 01                             mov     bx, [bx+CURRENT_ACTION_SUPPORT_TABLE] +273F:8041  89 07                                mov     [bx],ax +273F:8043  89 04                                mov     [si],ax +273F:8045  89 44 02                             mov     [si+2],ax +273F:8048  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                               seq_cut_sack     proc    near +273F:8049  C7 06 840A 010A                      mov     sack_hotspot_rec[HS_Y], 10Ah +273F:804F  8B 1E 8406                           mov     bx, sack_hotspot_rec[HS_ANIM_OFFSET] +273F:8053  0B DB                                or      bx, bx                  ; Is active animation? +273F:8055  74 05                                jz      loc_ret_1601            ; Skip if not +273F:8057  C7 47 02 010A                        mov     word ptr [bx+ANIM_Y], 10Ah +273F:805C                       loc_ret_1601:                                   ;  xref 273F:8055 +273F:805C  C3                                   retn +                               seq_cut_sack     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:805D  C7 06 6BDD 0063                      mov     word ptr ds:[6BDDh],63h ; (273F:6BDD=0C75h) +273F:8063  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8064  C7 06 6BDD 0013                      mov     word ptr ds:[6BDDh],13h ; (273F:6BDD=0C75h) +273F:806A  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             seq_method_37      proc    near +273F:806B  C7 06 7E7D 0118                      mov     oil_burner_hotspot_rec[HS_X], 7F3Ah  ;Maybe incorrect?  +273F:8071  C7 06 7E87 7F3A                      mov     word ptr ds:[7E87h],7F3Ah ; (273F:7E87=2) +273F:8077  8B 3E 7E7B                           mov     di, oil_burner_hotspot_rec[HS_ANIM_OFFSET] + +273F:807B  C7 05 0118                           mov     word ptr [di],118h      ; X start +273F:807F  C7 45 11 7F3A                        mov     word ptr [di+11h],7F3Ah ; Handler proc offset +273F:8084  C3                                   retn +                             seq_method_37      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8085  C7 06 8EA9 09E0                      mov     word ptr ds:[8EA9h],9E0h ; (273F:8EA9=0F003h) +273F:808B  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:8090  75 06                                jne     loc_ret_1602            ; Jump if not equal +273F:8092  C7 06 8EA9 0AF0                      mov     word ptr ds:[8EA9h],0AF0h ; (273F:8EA9=0F003h) +273F:8098                       loc_ret_1602:                                   ;  xref 273F:8090 +273F:8098  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       seq_transform_player     proc    near +273F:8099 úBE 7E9B                              mov     si, offset resource_425_rec +273F:809C úBF 6CEF                              mov     di, offset player_hotspot_rec +273F:809F  8B 45 06                             mov     ax, [di+HS_ROOM_NUM]    ; Get player room number +273F:80A2  89 44 06                             mov     [si+HS_ROOM_NUM], ax    ; Move into player's room +273F:80A5  8B 45 0D                             mov     ax, [di+HS_X] +273F:80A8  2D 000E                              sub     ax, 14 +273F:80AB  89 44 0D                             mov     [si+HS_X], ax           ; Set x position +273F:80AE  8B 45 0F                             mov     ax,[di+HS_Y] +273F:80B1  2D 000A                              sub     ax, 10 +273F:80B4  89 44 0F                             mov     [si+HS_Y], ax           ; Set y position +273F:80B7  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:80BB  C7 44 24 0630                        mov     word ptr [si+HS_SCRIPT_OFFSET], 630h +273F:80C0  BB 0425                              mov     bx, 425h +273F:80C3  E9 8C00                              jmp     animation_load_entry +                       seq_transform_player     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +273F:80C6  A1 6CF5                              mov     ax,word ptr ds:[6CF5h]  ; (273F:6CF5=551Eh) +273F:80C9  89 44 06                             mov     [si+6],ax +273F:80CC  A1 6CFC                              mov     ax,word ptr ds:[6CFCh]  ; (273F:6CFC=1E8Bh) +273F:80CF  2D 000E                              sub     ax,0Eh +273F:80D2  89 05                                mov     [di],ax +273F:80D4  A1 6CFE                              mov     ax,word ptr ds:[6CFEh]  ; (273F:6CFE=76Eh) +273F:80D7  2D 000A                              sub     ax,0Ah +273F:80DA  89 45 02                             mov     [di+2],ax +273F:80DD  80 44 2A 01                          add     byte ptr [si+2Ah],1 +273F:80E1  80 7C 2A 06                          cmp     byte ptr [si+2Ah],6 +273F:80E5  75 30                                jne     loc_1606                ; Jump if not equal +273F:80E7  83 3E BA2B 02                        cmp     word ptr ds:data_484e,2 ; (273F:BA2B=0) +273F:80EC  74 08                                je      loc_1603                ; Jump if equal +273F:80EE  F7 06 BA4D FFFF                      test    word ptr ds:data_488e,0FFFFh ; (273F:BA4D=0) +273F:80F4  74 0B                                jz      loc_1604                ; Jump if zero +273F:80F6                       loc_1603:                                       ;  xref 273F:80EC +273F:80F6  C7 06 BA4D 0000                      mov     word ptr ds:data_488e,0 ; (273F:BA4D=0) +273F:80FC  BB 5C80                              mov     bx,5C80h +273F:80FF  EB 08                                jmp     short loc_1605          ; (8109) +273F:8101                       loc_1604:                                       ;  xref 273F:80F4 +273F:8101  83 06 BA4D 01                        add     word ptr ds:data_488e,1 ; (273F:BA4D=0) +273F:8106 úBB 5CAA                              mov     bx,5CAAh                ; (273F:5CAA=0BAh) +273F:8109                       loc_1605:                                       ;  xref 273F:80FF +273F:8109  89 1E 6D10                           mov     word ptr ds:[6D10h],bx  ; (273F:6D10=1E52h) +273F:810D  8B 47 03                             mov     ax,[bx+3] +273F:8110  8B 1E 6CFA                           mov     bx,word ptr ds:[6CFAh]  ; (273F:6CFA=1F33h) +273F:8114  89 47 0A                             mov     [bx+0Ah],ax +273F:8117                       loc_1606:                                       ;  xref 273F:80E5 +273F:8117  E8 8E8F                              call    hotspot_script_execute +273F:811A  75 22                                jnz     loc_ret_1607            ; Jump if not zero +273F:811C  E8 9153                              call    animation_unload +273F:811F  C7 44 06 01A8                        mov     word ptr [si+6],1A8h +273F:8124  F7 06 BA4D FFFF                      test    word ptr ds:data_488e,0FFFFh ; (273F:BA4D=0) +273F:812A  74 12                                jz      loc_ret_1607            ; Jump if zero +273F:812C  BB 03E9                              mov     bx,3E9h +273F:812F  B9 0854                              mov     cx,854h +273F:8132  E8 DFD5                              call    sub_139                 ; (610A) +273F:8135  B8 0004                              mov     ax,4 +273F:8138 úBE 70B9                              mov     si,70B9h                ; (273F:70B9=98h) +273F:813B  E9 C3F7                              jmp     loc_867                 ; (4535) + +273F:813E                       loc_ret_1607:                                   ;  xref 273F:811A, 812A, 814E +273F:813E  C3                                   retn +                                                                                ;* No entry point to code +273F:813F  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:8144  74 05                                jz      loc_1608                ; Jump if zero +273F:8146  83 6C 1F 01                          sub     word ptr [si+1Fh],1 +273F:814A  C3                                   retn +273F:814B                       loc_1608:                                       ;  xref 273F:8144 +273F:814B  E8 8E5B                              call    hotspot_script_execute +273F:814E  75 EE                                jnz     loc_ret_1607            ; Jump if not zero +273F:8150  C7 44 24 0B82                        mov     word ptr [si+24h],0B82h +273F:8155  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:815A  75 05                                jne     loc_1609                ; Jump if not equal +273F:815C  C7 44 24 0B7C                        mov     word ptr [si+24h],0B7Ch +273F:8161                       loc_1609:                                       ;  xref 273F:815A +273F:8161  C7 06 BA4B 0001                      mov     word ptr ds:data_487e,1 ; (273F:BA4B=0) +273F:8167  C3                                   retn + +273F:8168  0C00                 data_410        dw      0C00h +273F:816A  0082                 data_411        dw      82h + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;  Sets the action bitset for Goewin +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             seq_method_55      proc    near +273F:816C  C6 06 7D4B 01                        mov     BYTE PTR [goewin_hotspot_rec+HS_ACTION_CTR], 1 +273F:8171  2E A1 8168                           mov     ax, cs:data_410 +273F:8175  A3 7D21                              mov     [goewin_hotspot_rec], ax +273F:8178  2E A1 816A                           mov     ax, cs:data_411 +273F:817C  A3 7D23                              mov     [goewin_hotspot_rec+2], ax +273F:817F  C3                                   ret +                             seq_method_55      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8180  F6 44 2A FF                          test    bye ptr [SI+HS_ACTION_CTR], 0FFh +273F:8184  74 B8                                jz      loc_ret_1607 +273F:8186  E8 20 8E                             call    hotspot_script_execute +273F:8189  75 B3                                jnz     loc_ret_1607 +273F:818B  C7 44 17 4F82                        mov     word ptr [si+HS_TICK_PROC], 4F82h +273F:8190  C7 45 11 4F82                        mov     word ptr [di+ANIM_TICK_PROC], 4F82h +273F:8195  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:8199  C3                                   ret + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       seq_is_skorl_in_cell     proc    near +273F:819A  C7 06 BA1F 0000                      mov     general_val, 0 +273F:81A0  83 3E 6D6D 01                        cmp     skorl_hotspot_rec[HS_ROOM_NUM], 1 +273F:81A5  74 06                                je      loc_ret_1610 +273F:81A7  C7 06 BA1F 0001                      mov     general_val, 1 +273F:81AD                       loc_ret_1610: +273F:81AD  C3                                   retn +                       seq_is_skorl_in_cell     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                seq_method_3    proc    near +273F:81AE  88 1E 9836                           mov     data_1085, bl ; Set HS-435h(4802h)[34h]                                       +273F:81B2  C3                                   retn +                                seq_method_3    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:81B3  E8 DFC2                              call    talk_countdown_handler +273F:81B6  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:81BB  74 05                                jz      loc_1612                ; Jump if zero +273F:81BD  83 6C 1F 01                          sub     word ptr [si+1Fh],1 +273F:81C1                       loc_ret_1611:                                   ;  xref 273F:81CD, 81DF, 81E7 +273F:81C1  C3                                   retn +273F:81C2                       loc_1612:                                       ;  xref 273F:81BB +273F:81C2  F6 44 2A FF                          test    byte ptr [si+2Ah],0FFh +273F:81C6  74 11                                jz      loc_1613                ; Jump if zero +273F:81C8  E8 8DDE                              call    hotspot_script_execute +273F:81CB  0B C0                                or      ax,ax                   ; Zero ? +273F:81CD  75 F2                                jnz     loc_ret_1611            ; Jump if not zero +273F:81CF  C6 44 2A 00                          mov     byte ptr [si+2Ah],0 +273F:81D3  C7 44 24 03E0                        mov     word ptr [si+24h],3E0h +273F:81D8  C3                                   retn +273F:81D9                       loc_1613:                                       ;  xref 273F:81C6 +273F:81D9  F7 06 BA33 FFFF                      test    word ptr ds:data_485e,0FFFFh ; (273F:BA33=0) +273F:81DF  75 E0                                jnz     loc_ret_1611            ; Jump if not zero +273F:81E1  E8 C288                              call    random +273F:81E4  3D 0006                              cmp     ax,6 +273F:81E7  72 D8                                jb      loc_ret_1611            ; Jump if below +273F:81E9  C6 44 2A 01                          mov     byte ptr [si+2Ah],1 +273F:81ED  C7 44 24 03F6                        mov     word ptr [si+24h],3F6h +273F:81F2  C3                                   retn +                                                                                ;* No entry point to code +273F:81F3  E8 DF82                              call    talk_countdown_handler +273F:81F6  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:81FB  74 05                                jz      loc_1614                ; Jump if zero +273F:81FD  83 6C 1F 01                          sub     word ptr [si+1Fh],1 +273F:8201  C3                                   retn +273F:8202                       loc_1614:                                       ;  xref 273F:81FB +273F:8202  E8 8DA4                              call    hotspot_script_execute +273F:8205  8A 44 2A                             mov     al,[si+2Ah] +273F:8208  32 E4                                xor     ah,ah                   ; Zero register +273F:820A  89 44 1F                             mov     [si+1Fh],ax +273F:820D  C3                                   retn +                                                                                ;* No entry point to code +273F:820E  E8 DF67                              call    talk_countdown_handler +273F:8211  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:8216  74 05                                jz      loc_1616                ; Jump if zero +273F:8218  83 6C 1F 01                          sub     word ptr [si+1Fh],1 + +273F:821C                       loc_ret_1615:                                   ;  xref 273F:8222 +273F:821C  C3                                   retn +273F:821D                       loc_1616:                                       ;  xref 273F:8216 +273F:821D  E8 8D89                              call    hotspot_script_execute +273F:8220  0B C0                                or      ax,ax                   ; Zero ? +273F:8222  75 F8                                jnz     loc_ret_1615            ; Jump if not zero +273F:8224  E8 C245                              call    random +273F:8227  BB 0000                              mov     bx,0 +273F:822A  A9 0004                              test    ax,4 +273F:822D  74 03                                jz      loc_1617                ; Jump if zero +273F:822F  BB 0054                              mov     bx,54h +273F:8232                       loc_1617:                                       ;  xref 273F:822D +273F:8232  89 5C 24                             mov     [si+24h],bx +273F:8235 úBB 003F                              mov     bx,3Fh                  ; (273F:003F=0) +273F:8238  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:823A  83 C2 14                             add     dx,14h +273F:823D  89 54 1F                             mov     [si+1Fh],dx +273F:8240  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                   head_animation_tick_proc     proc    near +273F:8241  E8 DF34                              call    talk_countdown_handler +273F:8244 úBB 6CEF                              mov     bx, offset player_hotspot_rec +273F:8247  81 7F 0F 00CF                        cmp     word ptr [bx+HS_Y], 80h + 79 +273F:824C  73 03                                jae     loc_1618                ; Jump if above or = +273F:824E úBB 70B9                              mov     bx, 70B9h                ; (273F:70B9=98h) +273F:8251                       loc_1618:                                       ;  xref 273F:824C +273F:8251  8B 5F 0D                             mov     bx, [bx+HS_X] +273F:8254  33 C0                                xor     ax, ax +273F:8256  81 FB 00C8                           cmp     bx, 80h + 72 +273F:825A  72 0A                                jb      loc_1619                ; Jump if below +273F:825C  B0 01                                mov     al, 1 +273F:825E  81 FB 012C                           cmp     bx, 80h + 172 +273F:8262  72 02                                jb      loc_1619                ; Jump if below +273F:8264  B0 02                                mov     al,2 +273F:8266                       loc_1619:                                       ;  xref 273F:825A, 8262 +273F:8266  88 44 2A                             mov     [si+2Ah], al +273F:8269  E9 FDA7                              jmp     loc_set_frame_offset +                   head_animation_tick_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                     seq_room_14_door_close     proc    near +273F:826C  B8 2719                              mov     ax,2719h +273F:826F  E8 EF7C                              call    room_exit_hs_get_pointer +273F:8272  C6 44 0C 01                          mov     byte ptr [si+0Ch],1 +273F:8276  C3                                   retn +                     seq_room_14_door_close     proc    near + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          seq_decrase_groats    proc    near +273F:8277  E8 8A6E                              call    get_room_resource_pointer +273F:827A  29 0E BC49                           sub     num_groats, cx +273F:827E  C3                                   retn +                          seq_decrase_groats    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          seq_incrase_groats    proc    near +273F:827F  E8 8A66                              call    get_room_resource_pointer +273F:8282  01 0E BC49                           add     num_groats, cx +273F:8286  C3                                   retn +                          seq_incrase_groats    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:82AF, 855B, 85F2 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8287                       sub_211         proc    near +273F:8287 úBB 502A                              mov     bx, offset sub_211_list +273F:828A  B9 0003                              mov     cx, 3 +273F:828D  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] + +273F:8290                       locloop_1620:                                   ;  xref 273F:8297 +273F:8290  39 07                                cmp     [bx], ax                ; Found entry for room #? +273F:8292  74 08                                je      loc_1621                ; Exit if yes +273F:8294  83 C3 04                             add     bx, 4 +273F:8297  E2 F7                                loop    locloop_1620            ; Loop if cx > 0 + +273F:8299  33 DB                                xor     bx,bx                   ; Zero return +273F:829B  C3                                   retn +273F:829C                       loc_1621:                                       ;  xref 273F:8292 +273F:829C  8B 5F 02                             mov     bx, [bx+2] +273F:829F  C3                                   retn +                                sub_211         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                                                                ;* No entry point to code +273F:82A0  E8 DED5                              call    talk_countdown_handler +273F:82A3  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:82A8  74 05                                jz      loc_1622                ; Jump if zero +273F:82AA  83 6C 1F 01                          sub     word ptr [si+1Fh],1 +273F:82AE  C3                                   retn +273F:82AF                       loc_1622:                                       ;  xref 273F:82A8 +273F:82AF  E8 FFD5                              call    sub_211                 ; (8287) +273F:82B2  8A 44 28                             mov     al,[si+28h] +273F:82B5  0A C0                                or      al,al                   ; Zero ? +273F:82B7  75 60                                jnz     loc_1626                ; Jump if not zero +273F:82B9  F7 07 FFFF                           test    word ptr [bx],0FFFFh +273F:82BD  74 03                                jz      loc_1623                ; Jump if zero +273F:82BF  E9 0159                              jmp     loc_1646                ; (841B) +273F:82C2                       loc_1623:                                       ;  xref 273F:82BD +273F:82C2  53                                   push    bx +273F:82C3  83 C3 02                             add     bx,2 +273F:82C6  B9 0004                              mov     cx,4 + +273F:82C9                       locloop_1624:                                   ;  xref 273F:82ED +273F:82C9  F6 47 03 80                          test    byte ptr [bx+3],80h +273F:82CD  74 1B                                jz      loc_1625                ; Jump if zero +273F:82CF  8B CB                                mov     cx,bx +273F:82D1  C6 47 03 00                          mov     byte ptr [bx+3],0 +273F:82D5  8B 07                                mov     ax,[bx] +273F:82D7  5B                                   pop     bx +273F:82D8  89 0F                                mov     [bx],cx +273F:82DA  56                                   push    si +273F:82DB  E8 8A0C                              call    get_room_resource_pointer2 +273F:82DE  8B 44 0D                             mov     ax,[si+0Dh] +273F:82E1  5E                                   pop     si +273F:82E2  89 44 24                             mov     [si+24h],ax +273F:82E5  C6 44 28 80                          mov     byte ptr [si+28h],80h +273F:82E9  C3                                   retn +273F:82EA                       loc_1625:                                       ;  xref 273F:82CD +273F:82EA  83 C3 04                             add     bx,4 +273F:82ED  E2 DA                                loop    locloop_1624            ; Loop if cx > 0 + +273F:82EF  5B                                   pop     bx +273F:82F0  33 C0                                xor     ax,ax                   ; Zero register +273F:82F2  89 47 02                             mov     [bx+2],ax +273F:82F5  89 47 04                             mov     [bx+4],ax +273F:82F8  89 47 06                             mov     [bx+6],ax +273F:82FB  89 47 08                             mov     [bx+8],ax +273F:82FE  89 47 0A                             mov     [bx+0Ah],ax +273F:8301  89 47 0C                             mov     [bx+0Ch],ax +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 316 + +273F:8304  89 47 0E                             mov     [bx+0Eh],ax +273F:8307  89 47 10                             mov     [bx+10h],ax +273F:830A  E8 C15F                              call    random +273F:830D  B9 0003                              mov     cx,3 +273F:8310  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:8312  92                                   xchg    dx,ax +273F:8313  05 0001                              add     ax,1 +273F:8316  88 44 28                             mov     [si+28h],al +273F:8319                       loc_1626:                                       ;  xref 273F:82B7 +273F:8319  A8 80                                test    al,80h +273F:831B  75 10                                jnz     loc_1627                ; Jump if not zero +273F:831D  24 3F                                and     al,3Fh                  ; '?' +273F:831F  3C 02                                cmp     al,2 +273F:8321  72 0D                                jb      loc_1628                ; Jump if below +273F:8323  74 0D                                jz      loc_1629                ; Jump if zero +273F:8325  3C 04                                cmp     al,4 +273F:8327  74 0E                                je      loc_1631                ; Jump if equal +273F:8329  72 09                                jc      loc_1630                ; Jump if carry Set +273F:832B  EB 0D                                jmp     short loc_1632          ; (833A) +273F:832D                       loc_1627:                                       ;  xref 273F:831B +273F:832D  E9 015A                              jmp     loc_1652                ; (848A) +273F:8330                       loc_1628:                                       ;  xref 273F:8321 +273F:8330  EB 0B                                jmp     short loc_1633          ; (833D) +273F:8332                       loc_1629:                                       ;  xref 273F:8323 +273F:8332  EB 2F                                jmp     short loc_1636          ; (8363) +273F:8334                       loc_1630:                                       ;  xref 273F:8329 +273F:8334  E9 00CA                              jmp     loc_1643                ; (8401) +273F:8337                       loc_1631:                                       ;  xref 273F:8327 +273F:8337  E9 00D7                              jmp     loc_1645                ; (8411) +273F:833A                       loc_1632:                                       ;  xref 273F:832B +273F:833A  E9 00B6                              jmp     loc_1642                ; (83F3) +273F:833D                       loc_1633:                                       ;  xref 273F:8330 +273F:833D  E8 C12C                              call    random +273F:8340  81 7D 1B 0436                        cmp     word ptr [di+1Bh],436h +273F:8345  74 11                                je      loc_1635                ; Jump if equal +273F:8347  BB 0055                              mov     bx,55h +273F:834A  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:834C  81 C2 00F5                           add     dx,0F5h +273F:8350                       loc_1634:                                       ;  xref 273F:8361 +273F:8350 ú89 54 24                             mov     [si+24h],dx +273F:8353  C6 44 28 83                          mov     byte ptr [si+28h],83h +273F:8357  C3                                   retn +273F:8358                       loc_1635:                                       ;  xref 273F:8345 +273F:8358  BB 0033                              mov     bx,33h +273F:835B  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:835D  81 C2 00DE                           add     dx,0DEh +273F:8361  EB ED                                jmp     short loc_1634          ; (8350) +273F:8363                       loc_1636:                                       ;  xref 273F:8332 +273F:8363  F6 44 28 40                          test    byte ptr [si+28h],40h   ; '@' +273F:8367  75 4B                                jnz     loc_1640                ; Jump if not zero +273F:8369  81 7D 1B 0436                        cmp     word ptr [di+1Bh],436h +273F:836E  75 3E                                jne     loc_1638                ; Jump if not equal +273F:8370  83 3E 6CF5 23                        cmp     word ptr ds:[6CF5h],23h ; (273F:6CF5=551Eh) +273F:8375  74 37                                je      loc_1638                ; Jump if equal +273F:8377  83 3E 6DEC 23                        cmp     word ptr ds:[6DECh],23h ; (273F:6DEC=4BFAh) +273F:837C  74 30                                je      loc_1638                ; Jump if equal +273F:837E  83 3E 77C8 23                        cmp     word ptr ds:[77C8h],23h ; (273F:77C8=0F74h) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 317 + +273F:8383  74 29                                je      loc_1638                ; Jump if equal +273F:8385  E8 C0E4                              call    random +273F:8388  0B C0                                or      ax,ax                   ; Zero ? +273F:838A  78 05                                js      loc_1637                ; Jump if sign=1 +273F:838C  B8 4FED                              mov     ax,4FEDh +273F:838F  EB 20                                jmp     short loc_1639          ; (83B1) +273F:8391                       loc_1637:                                       ;  xref 273F:838A +273F:8391  C7 44 21 59ED                        mov     word ptr [si+21h],59EDh +273F:8396  C7 45 04 0020                        mov     word ptr [di+4],20h +273F:839B  C6 06 5029 08                        mov     byte ptr ds:[5029h],8   ; (273F:5029=47h) +273F:83A0  83 2D 08                             sub     word ptr [di],8 +273F:83A3  A1 59F0                              mov     ax,word ptr ds:[59F0h]  ; (273F:59F0=0ABBh) +273F:83A6  89 45 0A                             mov     [di+0Ah],ax +273F:83A9  B8 5010                              mov     ax,5010h +273F:83AC  EB 03                                jmp     short loc_1639          ; (83B1) +273F:83AE                       loc_1638:                                       ;  xref 273F:836E, 8375, 837C, 8383 +273F:83AE  8B 47 14                             mov     ax,[bx+14h] +273F:83B1                       loc_1639:                                       ;  xref 273F:838F, 83AC +273F:83B1  89 44 24                             mov     [si+24h],ax +273F:83B4                       loc_1640:                                       ;  xref 273F:8367, 83F7, 83FF +273F:83B4 ú80 4C 28 40                          or      byte ptr [si+28h],40h   ; '@' +273F:83B8  8B 5C 24                             mov     bx,[si+24h] +273F:83BB  83 44 24 01                          add     word ptr [si+24h],1 +273F:83BF  8A 07                                mov     al,[bx] +273F:83C1  0A C0                                or      al,al                   ; Zero ? +273F:83C3  74 06                                jz      loc_1641                ; Jump if zero +273F:83C5  88 44 2A                             mov     [si+2Ah],al +273F:83C8  E9 FC48                              jmp     loc_set_frame_offset +273F:83CB                       loc_1641:                                       ;  xref 273F:83C3 +273F:83CB  81 7D 1B 0436                        cmp     word ptr [di+1Bh],436h +273F:83D0  75 2F                                jne     loc_1643                ; Jump if not equal +273F:83D2  C7 44 21 59E4                        mov     word ptr [si+21h],59E4h +273F:83D7  C7 45 04 0010                        mov     word ptr [di+4],10h +273F:83DC  A1 59E7                              mov     ax,word ptr ds:[59E7h]  ; (273F:59E7=2E00h) +273F:83DF  89 45 0A                             mov     [di+0Ah],ax +273F:83E2  F6 06 5029 FF                        test    byte ptr ds:[5029h],0FFh ; (273F:5029=47h) +273F:83E7  74 18                                jz      loc_1643                ; Jump if zero +273F:83E9  83 05 08                             add     word ptr [di],8 +273F:83EC  C6 06 5029 00                        mov     byte ptr ds:[5029h],0   ; (273F:5029=47h) +273F:83F1  EB 0E                                jmp     short loc_1643          ; (8401) +273F:83F3                       loc_1642:                                       ;  xref 273F:833A +273F:83F3  F6 44 28 40                          test    byte ptr [si+28h],40h   ; '@' +273F:83F7  75 BB                                jnz     loc_1640                ; Jump if not zero +273F:83F9  8B 47 16                             mov     ax,[bx+16h] +273F:83FC  89 44 24                             mov     [si+24h],ax +273F:83FF  EB B3                                jmp     short loc_1640          ; (83B4) +273F:8401                       loc_1643:                                       ;  xref 273F:8334, 83D0, 83E7, 83F1 +273F:8401  C7 44 1F 000A                        mov     word ptr [si+1Fh],0Ah +273F:8406                       loc_1644:                                       ;  xref 273F:8419 +273F:8406 úC6 44 28 00                          mov     byte ptr [si+28h],0 +273F:840A  C6 44 2A 0C                          mov     byte ptr [si+2Ah],0Ch +273F:840E  E9 FC02                              jmp     loc_set_frame_offset +273F:8411                       loc_1645:                                       ;  xref 273F:8337 +273F:8411  F7 06 9838 FFFF                      test    data_431,0FFFFh         ; (273F:9838=5C8Bh) +273F:8417  75 35                                jnz     loc_ret_1647            ; Jump if not zero +273F:8419  EB EB                                jmp     short loc_1644          ; (8406) +273F:841B                       loc_1646:                                       ;  xref 273F:82BF +273F:841B  8B D3                                mov     dx,bx +273F:841D  8B 1F                                mov     bx,[bx] +273F:841F  8B 07                                mov     ax,[bx] +273F:8421  56                                   push    si +273F:8422  E8 88C5                              call    get_room_resource_pointer2 +273F:8425  8B 44 0F                             mov     ax,[si+0Fh] +273F:8428  03 44 1B                             add     ax,[si+1Bh] +273F:842B  5E                                   pop     si +273F:842C  87 DA                                xchg    bx,dx +273F:842E  8B 4F 18                             mov     cx,[bx+18h] +273F:8431  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:8433  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:8435  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:8437  81 C1 0098                           add     cx,98h +273F:843B  3B C1                                cmp     ax,cx +273F:843D  72 10                                jb      loc_1648                ; Jump if below +273F:843F  C7 07 0000                           mov     word ptr [bx],0 +273F:8443  87 DA                                xchg    bx,dx +273F:8445  C7 07 0000                           mov     word ptr [bx],0 +273F:8449  C7 47 02 0000                        mov     word ptr [bx+2],0 + +273F:844E                       loc_ret_1647:                                   ;  xref 273F:8417 +273F:844E  C3                                   retn +273F:844F                       loc_1648:                                       ;  xref 273F:843D +273F:844F  87 DA                                xchg    bx,dx +273F:8451  81 3F 03E8                           cmp     word ptr [bx], PLAYER_HOTSPOT_ID +273F:8455  74 05                                je      loc_1649                ; Jump if equal +273F:8457  C6 47 03 00                          mov     byte ptr [bx+3],0 +273F:845B  C3                                   retn +273F:845C                       loc_1649:                                       ;  xref 273F:8455 +273F:845C  80 67 03 7F                          and     byte ptr [bx+3],7Fh +273F:8460  F6 47 03 07                          test    byte ptr [bx+3],7 +273F:8464  74 0D                                jz      loc_1651                ; Jump if zero +273F:8466  8A 47 03                             mov     al,[bx+3] +273F:8469  80 67 03 F8                          and     byte ptr [bx+3],0F8h +273F:846D  32 E4                                xor     ah,ah                   ; Zero register +273F:846F  89 44 28                             mov     [si+28h],ax + +273F:8472                       loc_ret_1650:                                   ;  xref 273F:8478 +273F:8472  C3                                   retn +273F:8473                       loc_1651:                                       ;  xref 273F:8464 +273F:8473  F7 44 2F FFFF                        test    word ptr [si+2Fh],0FFFFh +273F:8478  75 F8                                jnz     loc_ret_1650            ; Jump if not zero +273F:847A  C7 07 0000                           mov     word ptr [bx],0 +273F:847E  8B DA                                mov     bx,dx +273F:8480  C7 07 0000                           mov     word ptr [bx],0 +273F:8484  C7 44 28 0002                        mov     word ptr [si+28h],2 +273F:8489  C3                                   retn +273F:848A                       loc_1652:                                       ;  xref 273F:832D +273F:848A  8B 44 0D                             mov     ax,[si+0Dh] +273F:848D  BA FFFE                              mov     dx,0FFFEh +273F:8490  2B 44 24                             sub     ax,[si+24h] +273F:8493  73 14                                jnc     loc_1654                ; Jump if carry=0 +273F:8495  F7 D8                                neg     ax +273F:8497  F7 DA                                neg     dx +273F:8499  80 44 2A 01                          add     byte ptr [si+2Ah],1 +273F:849D  80 7C 2A 06                          cmp     byte ptr [si+2Ah],6 +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 319 + +273F:84A1  72 04                                jb      loc_1653                ; Jump if below +273F:84A3  C6 44 2A 00                          mov     byte ptr [si+2Ah],0 +273F:84A7                       loc_1653:                                       ;  xref 273F:84A1 +273F:84A7  EB 14                                jmp     short loc_1656          ; (84BD) +273F:84A9                       loc_1654:                                       ;  xref 273F:8493 +273F:84A9  80 44 2A 01                          add     byte ptr [si+2Ah],1 +273F:84AD  80 7C 2A 0C                          cmp     byte ptr [si+2Ah],0Ch +273F:84B1  73 06                                jae     loc_1655                ; Jump if above or = +273F:84B3  80 7C 2A 06                          cmp     byte ptr [si+2Ah],6 +273F:84B7  73 04                                jae     loc_1656                ; Jump if above or = +273F:84B9                       loc_1655:                                       ;  xref 273F:84B1 +273F:84B9  C6 44 2A 06                          mov     byte ptr [si+2Ah],6 +273F:84BD                       loc_1656:                                       ;  xref 273F:84A7, 84B7 +273F:84BD  3D 0002                              cmp     ax,2 +273F:84C0  72 08                                jb      loc_1657                ; Jump if below +273F:84C2  01 54 0D                             add     [si+0Dh],dx +273F:84C5  01 15                                add     [di],dx +273F:84C7  E9 FB49                              jmp     loc_set_frame_offset +273F:84CA                       loc_1657:                                       ;  xref 273F:84C0 +273F:84CA  C6 44 2A 0C                          mov     byte ptr [si+2Ah],0Ch +273F:84CE  80 64 28 7F                          and     byte ptr [si+28h],7Fh +273F:84D2  E9 FB3E                              jmp     loc_set_frame_offset + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8565 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:84D5                       sub_212         proc    near +273F:84D5  8B 44 0F                             mov     ax, [si+HS_Y] +273F:84D8  03 44 1B                             add     ax, [si+HS_HEIGHT_COPY] +273F:84DB  8B 4F 18                             mov     cx, [bx+18h] +273F:84DE  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:84E0  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:84E2  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:84E4  81 C1 0098                           add     cx,98h +273F:84E8  3B C1                                cmp     ax,cx +273F:84EA  73 06                                jae     loc_1658                ; Jump if above or = +273F:84EC  0D 0001                              or      ax,1 +273F:84EF  33 C9                                xor     cx,cx                   ; Zero register +273F:84F1  C3                                   retn +273F:84F2                       loc_1658:                                       ;  xref 273F:84EA +273F:84F2  53                                   push    bx +273F:84F3  8B 44 06                             mov     ax,[si+6] +273F:84F6  2D 0001                              sub     ax,1 +273F:84F9  BA 0078                              mov     dx,78h +273F:84FC  F7 E2                                mul     dx                      ; dx:ax = reg * ax +273F:84FE  8B 4F 18                             mov     cx,[bx+18h] +273F:8501  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:8503  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:8505  03 4F 18                             add     cx,[bx+18h] +273F:8508  03 C1                                add     ax,cx +273F:850A  05 0004                              add     ax,4 +273F:850D úBB 984A                              mov     bx, offset data_441 +273F:8510  03 D8                                add     bx,ax +273F:8512  B2 01                                mov     dl,1 +273F:8514  B9 0027                              mov     cx,27h +273F:8517  32 F6                                xor     dh,dh                   ; Zero register + +273F:8519                       locloop_1659:                                   ;  xref 273F:8553 +273F:8519  84 17                                test    dl,[bx] +273F:851B  75 2B                                jnz     loc_1660                ; Jump if not zero +273F:851D  80 C6 01                             add     dh,1 +273F:8520  80 FE 04                             cmp     dh,4 +273F:8523  72 25                                jb      loc_1661                ; Jump if below +273F:8525  B8 0008                              mov     ax,8 +273F:8528  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:852A  8B C8                                mov     cx,ax +273F:852C  81 C1 0080                           add     cx,80h +273F:8530  5B                                   pop     bx +273F:8531  53                                   push    bx +273F:8532  8B 57 18                             mov     dx,[bx+18h] +273F:8535  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:8537  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:8539  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:853B  81 C2 0088                           add     dx,88h +273F:853F  B0 01                                mov     al,1 +273F:8541  E8 CFD5                              call    character_start_walking +273F:8544  33 C9                                xor     cx,cx                   ; Zero register +273F:8546  5B                                   pop     bx +273F:8547  C3                                   retn +273F:8548                       loc_1660:                                       ;  xref 273F:851B +273F:8548  32 F6                                xor     dh,dh                   ; Zero register +273F:854A                       loc_1661:                                       ;  xref 273F:8523 +273F:854A  D0 E2                                shl     dl,1                    ; Shift w/zeros fill +273F:854C  73 05                                jnc     loc_1662                ; Jump if carry=0 +273F:854E  83 EB 01                             sub     bx,1 +273F:8551  B2 01                                mov     dl,1 +273F:8553                       loc_1662:                                       ;  xref 273F:854C +273F:8553  E2 C4                                loop    locloop_1659            ; Loop if cx > 0 + +273F:8555  83 C9 01                             or      cx,1 +273F:8558  5B                                   pop     bx +273F:8559  C3                                   retn +                                sub_212         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:45B8 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:855A                       sub_213         proc    near +273F:855A  53                                   push    bx +273F:855B  E8 FD29                              call    sub_211                 ; list[room #] => bx +273F:855E  F6 44 2A FF                          test    byte ptr [si+HS_ACTION_CTR], 0FFh +273F:8562  75 45                                jnz     loc_1669                ; Jump if not zero +273F:8564  58                                   pop     ax +273F:8565  E8 FF6D                              call    sub_212                 ; (84D5) +273F:8568  74 03                                jz      loc_1664                ; Jump if zero +273F:856A                       loc_1663:                                       ;  xref 273F:8594 +273F:856A ú33 C0                                xor     ax,ax                   ; Zero register +273F:856C  C3                                   retn +273F:856D                       loc_1664:                                       ;  xref 273F:8568 +273F:856D  0B C0                                or      ax, ax                  ; Zero ? +273F:856F  74 35                                jz      loc_1668                ; Jump if zero +273F:8571  83 C3 02                             add     bx, 2 +273F:8574  B9 0004                              mov     cx, 4 +273F:8577  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] + +273F:857A                       locloop_1665:                                   ;  xref 273F:8581 +273F:857A  39 07                                cmp     [bx], ax +273F:857C  74 18                                je      loc_1667                ; Jump if equal +273F:857E  83 C3 04                             add     bx,4 +273F:8581  E2 F7                                loop    locloop_1665            ; Loop if cx > 0 + +273F:8583  B9 0004                              mov     cx, 4 +273F:8586  83 EB 10                             sub     bx, 10h + +273F:8589                       locloop_1666:                                   ;  xref 273F:8592 +273F:8589  F7 07 FFFF                           test    word ptr [bx], 0FFFFh +273F:858D  74 07                                jz      loc_1667                ; Jump if zero +273F:858F  83 C3 04                             add     bx, 4 +273F:8592  E2 F5                                loop    locloop_1666            ; Loop if cx > 0 + +273F:8594  EB D4                                jmp     short loc_1663          ; (856A) +273F:8596                       loc_1667:                                       ;  xref 273F:857C, 858D +273F:8596  89 07                                mov     [bx],ax +273F:8598  C6 47 03 82                          mov     byte ptr [bx+3],82h +273F:859C  C6 44 2A 01                          mov     byte ptr [si+2Ah],1 +273F:85A0  E8 BDC3                              call    character_update_movement +273F:85A3  E8 BF33                              call    char_face_up +273F:85A6                       loc_1668:                                       ;  xref 273F:856F +273F:85A6  33 C0                                xor     ax,ax                   ; Zero register +273F:85A8  C3                                   retn +273F:85A9                       loc_1669:                                       ;  xref 273F:8562 +273F:85A9  83 C3 02                             add     bx, 2 +273F:85AC  B9 0004                              mov     cx, 4 +273F:85AF  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] + +273F:85B2                       locloop_1670:                                   ;  xref 273F:85B9 +273F:85B2  39 07                                cmp     [bx], ax +273F:85B4  74 0D                                je      loc_1672                ; Jump if equal +273F:85B6  83 C3 04                             add     bx,4 +273F:85B9  E2 F7                                loop    locloop_1670            ; Loop if cx > 0 + +273F:85BB  C6 44 2A 00                          mov     byte ptr [si+HS_ACTION_CTR], 0 +273F:85BF                       loc_1671:                                       ;  xref 273F:85C7 +273F:85BF  5B                                   pop     bx +273F:85C0  33 C0                                xor     ax,ax                   ; Zero register +273F:85C2  C3                                   retn +273F:85C3                       loc_1672:                                       ;  xref 273F:85B4 +273F:85C3  F6 47 03 80                          test    byte ptr [bx+3], 80h +273F:85C7  75 F6                                jnz     loc_1671                ; Jump if not zero +273F:85C9  5B                                   pop     bx +273F:85CA  B8 0001                              mov     ax, 1 +273F:85CD  C3                                   retn +                                sub_213         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ +                                 +                                                                                ;* No entry point to code +273F:85CE  E8 DBA7                              call    talk_countdown_handler +273F:85D1  E9 FA3F                              jmp     loc_set_frame_offset + +                                                                                ;* No entry point to code +273F:85D4  BA 3627                              mov     dx,3627h +273F:85D7  8B 44 06                             mov     ax,[si+6] +273F:85DA  89 47 03                             mov     [bx+3],ax +273F:85DD  89 57 01                             mov     [bx+1],dx +273F:85E0  C3                                   retn +                                                                                ;* No entry point to code +273F:85E1  C7 06 6B98 0063                      mov     word ptr ds:[6B98h],63h ; (273F:6B98=75C9h) +273F:85E7  C3                                   retn +                                                                                ;* No entry point to code +273F:85E8  C7 06 6B98 0011                      mov     word ptr ds:[6B98h],11h ; (273F:6B98=75C9h) +273F:85EE  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            seq_method_56       proc    near +273F:85EF úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:85F2  E8 FC92                              call    sub_211                 ; (8287) +273F:85F5  0B DB                                or      bx,bx                   ; Zero ? +273F:85F7  74 16                                jz      loc_ret_1675            ; Jump if zero +273F:85F9  83 C3 02                             add     bx,2 +273F:85FC  B9 0004                              mov     cx,4 +273F:85FF                       locloop_1673:                                   ;  xref 273F:8608 +273F:85FF  81 3F 03E8                           cmp     word ptr [bx], PLAYER_HOTSPOT_ID +273F:8603  74 06                                je      loc_1674                ; Jump if equal +273F:8605  83 C3 04                             add     bx,4 +273F:8608  E2 F5                                loop    locloop_1673            ; Loop if cx > 0 +273F:860A  C3                                   retn + +273F:860B                       loc_1674:                                       ;  xref 273F:8603 +273F:860B  80 4F 03 05                          or      byte ptr [bx+3],5 +273F:860F                       loc_ret_1675:                                   ;  xref 273F:85F7 +273F:860F  C3                                   retn +                            seq_method_56       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             get_num_groats     proc    near +273F:8610  A1 BC49                              mov     ax, num_groats +273F:8613  A3 BA1F                              mov     general_val, ax +273F:8616                       loc_ret_1676:                                   ;  xref 273F:861C, 8623 +273F:8616  C3                                   retn +                             get_num_groats     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                                                                ;* No entry point to code +273F:8617  83 3E BA3B 08                        cmp     talk_record_index, 8 +273F:861C  72 F8                                jb      loc_ret_1676            ; Jump if below +273F:861E  83 3E BA3B 0E                        cmp     talk_record_index, 0Eh +273F:8623  73 F1                                jae     loc_ret_1676            ; Jump if above or = +273F:8625  C7 44 0F 00D5                        mov     word ptr [si+0Fh],0D5h +273F:862A  E9 EB45                              jmp     animation_load_2 +273F:862D  E9 DB48                              jmp     talk_countdown_handler + +                                                                                ;* No entry point to code +273F:8630 úBE 7D21                              mov     si, offset goewin_hotspot_rec +273F:8633  8B 7C 0B                             mov     di,[si+0Bh] +273F:8636  E8 BD2D                              call    character_update_movement +273F:8639  8B DE                                mov     bx,si +273F:863B  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:863E  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:8641  C6 07 03                             mov     byte ptr [bx],3 +273F:8644  C7 44 28 05DC                        mov     word ptr [si+28h],5DCh +273F:8649  C7 44 24 0616                        mov     word ptr [si+24h],616h +273F:864E  C7 45 11 865A                        mov     word ptr [di+11h],865Ah +273F:8653  C7 06 BD9B 03EF                      mov     word ptr ds:data_496e,3EFh ; (273F:BD9B=0) + +273F:8659                       loc_ret_1677:                                   ;  xref 273F:8679 +273F:8659  C3                                   retn +                                                                                ;* No entry point to code +273F:865A  C7 44 50 0000                        mov     word ptr [si+50h],0 +273F:865F  C6 44 44 07                          mov     byte ptr [si+44h],7 +273F:8663  E8 DB12                              call    talk_countdown_handler +273F:8666  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:866B  74 05                                jz      loc_1678                ; Jump if zero +273F:866D  83 6C 1F 01                          sub     word ptr [si+1Fh],1 +273F:8671  C3                                   retn +273F:8672                       loc_1678:                                       ;  xref 273F:866B +273F:8672  E8 8934                              call    hotspot_script_execute +273F:8675  83 6C 28 01                          sub     word ptr [si+28h],1 +273F:8679  75 DE                                jnz     loc_ret_1677            ; Jump if not zero +273F:867B  83 3E BA3B 0C                        cmp     talk_record_index, 0Ch +273F:8680  74 3B                                je      loc_1679                ; Jump if equal +273F:8682  83 3E BA3B 0D                        cmp     talk_record_index, 0Dh +273F:8687  74 34                                je      loc_1679                ; Jump if equal +273F:8689  83 3E BA3B 0E                        cmp     talk_record_index, 0Eh +273F:868E  74 2D                                je      loc_1679                ; Jump if equal +273F:8690  83 3E 6CF5 22                        cmp     word ptr ds:[6CF5h],22h ; (273F:6CF5=551Eh) +273F:8695  74 26                                je      loc_1679                ; Jump if equal + +273F:8697 úBE 7D21                              mov     si, offset goewin_hotspot_rec +273F:869A  8B 7C 0B                             mov     di,[si+0Bh] +273F:869D  8B DE                                mov     bx,si +273F:869F  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:86A2  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:86A5  C6 07 02                             mov     byte ptr [bx],2 +273F:86A8  C6 44 44 00                          mov     byte ptr [si+44h],0 +273F:86AC  C7 44 50 0000                        mov     word ptr [si+50h],0 +273F:86B1  C7 45 11 4F82                        mov     word ptr [di+11h],4F82h +273F:86B6  C7 06 BD9B FFFF                      mov     word ptr ds:data_496e,0FFFFh ; (273F:BD9B=0) +273F:86BC  C3                                   retn +273F:86BD                       loc_1679:                                       ;  xref 273F:8680, 8687, 868E, 8695 +273F:86BD  C7 44 28 05DC                        mov     word ptr [si+28h],5DCh +273F:86C2  C3                                   retn +                                                                                ;* No entry point to code +273F:86C3  B8 271E                              mov     ax,271Eh +273F:86C6  E8 EB25                              call    room_exit_hs_get_pointer +273F:86C9  C6 44 0C 00                          mov     byte ptr [si+0Ch],0 +273F:86CD  C3                                   retn +                                                                                ;* No entry point to code +273F:86CE  B8 271E                              mov     ax,271Eh +273F:86D1  E8 EB1A                              call    room_exit_hs_get_pointer +273F:86D4  C6 44 0C 01                          mov     byte ptr [si+0Ch],1 +273F:86D8  C3                                   retn +                                                                                ;* No entry point to code +273F:86D9  C7 06 8CE7 0800                      mov     data_8ce7, 800h +273F:86DF  C7 06 8D2C 0800                      mov     data_8d2C, 800h  +273F:86E5  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             seq_door_close     proc    near +273F:86E6  8B C3                                mov     ax,bx +273F:86E8  E8 EB03                              call    room_exit_hs_get_pointer +273F:86EB  C6 44 0C 01                          mov     byte ptr [si+0Ch],1 +273F:86EF  C3                                   retn +                             seq_door_close     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              seq_door_open     proc    near +273F:86F0  8B C3                                mov     ax,bx +273F:86F2  E8 EAF9                              call    room_exit_hs_get_pointer +273F:86F5  C6 44 0C 00                          mov     byte ptr [si+0Ch],0 +273F:86F9  C3                                   retn +                              seq_door_open     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +                                                                                ;* No entry point to code +273F:86FA  B8 272A                              mov     ax,272Ah +273F:86FD  EB 03                                jmp     short loc_1680          ; (8702) +273F:86FF  B8 2C 27                             db      0B8h, 2Ch, 27h +273F:8702                       loc_1680:                                       ;  xref 273F:86FD, 8740 +273F:8702 úC7 45 08 0000                        mov     word ptr [di+8],0 +273F:8707  56                                   push    si +273F:8708  E8 EAE3                              call    room_exit_hs_get_pointer +273F:870B  5B                                   pop     bx +273F:870C  87 DE                                xchg    bx,si +273F:870E  F6 47 0C FF                          test    byte ptr [bx+0Ch],0FFh +273F:8712  75 09                                jnz     loc_ret_1681            ; Jump if not zero +273F:8714  8B 5C 21                             mov     bx,[si+21h] +273F:8717  8B 47 07                             mov     ax,[bx+7] +273F:871A  89 45 08                             mov     [di+8],ax + +273F:871D                       loc_ret_1681:                                   ;  xref 273F:8712 +273F:871D  C3                                   retn +273F:871E  B8 272A                              mov     az, 272Ah + +273F:8721                       loc_1682:                                       ;  xref 273F:8745, 874A +273F:8721 úC7 45 08 0000                        mov     word ptr [di+8],0 +273F:8726  56                                   push    si +273F:8727  E8 EAC4                              call    room_exit_hs_get_pointer +273F:872A  5B                                   pop     bx +273F:872B  87 DE                                xchg    bx,si +273F:872D  F6 47 0C FF                          test    byte ptr [bx+0Ch],0FFh +273F:8731  74 09                                jz      loc_ret_1683            ; Jump if zero +273F:8733  8B 5C 21                             mov     bx,[si+21h] +273F:8736  8B 47 07                             mov     ax,[bx+7] +273F:8739  89 45 08                             mov     [di+8],ax + +273F:873C                       loc_ret_1683:                                   ;  xref 273F:8731 +273F:873C  C3                                   retn +                                                                                ;* No entry point to code +273F:873D  B8 272E                              mov     ax,272Eh +273F:8740  EB C0                                jmp     short loc_1680          ; (8702) +                                                                                ;* No entry point to code +273F:8742  B8 272C                              mov     ax,272Ch +273F:8745  EB DA                                jmp     short loc_1682          ; (8721) +                                                                                ;* No entry point to code +273F:8747  B8 272A                              mov     ax,272Ah +273F:874A  EB D5                                jmp     short loc_1682          ; (8721) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              seq_method_58     proc    near +273F:874C C7 06 BA1D 0000                       mov     sequence_result, 0 +273F:8752  81 3E 84CD 03E8                      cmp     hotspot_2713_hs5e, PLAYER_HOTSPOT_ID +273F:8758  75 06                                jne     loc_ret_1684            ; Jump if not equal +273F:875A  C7 06 BA1D 0001                      mov     sequence_result, 1 +273F:8760                       loc_ret_1684: +273F:8760  C3                                   retn +                              seq_method_58     endp +                               +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              seq_method_43     proc    near +273F:8761 úBE 7D21                              mov     si, offset goewin_hotspot_rec +273F:8764  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:8767  C7 45 11 4F82                        mov     word ptr [di+ANIM_TICK_PROC], 4F82h +273F:876C  C7 44 17 4F82                        mov     word ptr [si+HS_TICK_PROC], 4F82h +273F:8771  C7 44 64 7D9D                        mov     word ptr [si+HS_FIRST_ACTION_OFFSET+CURRENT_ACTION_SUPPORT_TABLE], 7D9Dh +273F:8776  C6 44 63 02                          mov     byte ptr [si+HS_FIRST_ACTION_OFFSET], 2 +273F:877A  81 36 7D21 1000                      xor     [goewin_hotspot_rec+HS_ACTIONS], 1000h +273F:8780  EB 22                                jmp     short loc_1685       +                              seq_method_43     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8782 úBE 7D21                              mov     si, offset goewin_hotspot_rec +273F:8785  8B 7C 0B                             mov     di,[si+0Bh] +273F:8788  C7 45 11 7C24                        mov     word ptr [di+11h],7C24h +273F:878D  C7 44 17 7C24                        mov     word ptr [si+17h],7C24h +273F:8792  C7 44 64 4EBB                        mov     word ptr [si+64h],4EBBh +273F:8797  C6 44 63 02                          mov     byte ptr [si+63h],2 +273F:879B  C7 44 66 0026                        mov     word ptr [si+66h],26h +273F:87A0  81 0C 1000                           or      word ptr [si],1000h +273F:87A4                       loc_1685:                                       ;  xref 273F:8780 +273F:87A4  33 C0                                xor     ax,ax                   ; Zero register +273F:87A6  89 44 61                             mov     [si+HS_ACTION_OFFSET], ax +273F:87A9  88 44 2A                             mov     [si+HS_ACTION_CTR], al +273F:87AC  89 44 42                             mov     [si+HS_V42], ax +273F:87AF  88 44 44                             mov     [si+HS_V44], al +273F:87B2  C3                                   retn + +                                                                                ;* No entry point to code +273F:87B3  E8 87F3                              call    hotspot_script_execute +273F:87B6  75 05                                jnz     loc_ret_1686            ; Jump if not zero +273F:87B8  80 0E 073D 50                        or      status_flags2, 50h +273F:87BD                       loc_ret_1686:                                   ;  xref 273F:87B6, 87C3 +273F:87BD  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; This method is referenced by a jump point for NPC script action #40 +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +273F:87BE  83 3E BA25 13                        cmp     old_room_number, 13h +273F:87C3  75 F8                                jne     loc_ret_1686            ; Jump if not equal +273F:87C5  C7 06 BA3B 0018                      mov     talk_record_index, 18h +273F:87CB  BB 03F1                              mov     bx,3F1h +273F:87CE  B9 0154                              mov     cx,154h +273F:87D1  E8 0006                              call    seq_set_hotspot_name +273F:87D4  BB 0AB9                              mov     bx, 0AB9h +273F:87D7  E9 00E2                              jmp     display_dialog + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:87D1, 89A6 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:87DA             seq_set_hotspot_name      proc    near +273F:87DA  51                                   push    cx +273F:87DB  E8 8541                              call    get_room_resource_pointer3 +273F:87DE  58                                   pop     ax +273F:87DF  89 44 02                             mov     [si+HSH_NAME], ax +273F:87E2  C3                                   retn +                      seq_set_hotspot_name      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +                     seq_set_actions_offset     proc    near +273F:87E3  51                                   push    cx +273F:87E4  E8 8538                              call    get_room_resource_pointer3 +273F:87E7  58                                   pop     ax +273F:87E8  89 44 04                             mov     [si+HS_ACTIONS_OFFSET], ax +273F:87EB  C3                                   retn +                     seq_set_actions_offset     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + + +                                                                                ;* No entry point to code +273F:87EC  E8 D989                              call    talk_countdown_handler +273F:87EF  F7 44 1F FFFF                        test    word ptr [si+1Fh],0FFFFh +273F:87F4  74 05                                jz      loc_1688                ; Jump if zero +273F:87F6  83 6C 1F 01                          sub     word ptr [si+1Fh],1 + +273F:87FA                       loc_ret_1687:                                   ;  xref 273F:87FE +273F:87FA  C3                                   retn +273F:87FB                       loc_1688:                                       ;  xref 273F:87F4 +273F:87FB  E8 87AB                              call    hotspot_script_execute +273F:87FE  75 FA                                jnz     loc_ret_1687            ; Jump if not zero +273F:8800  E8 8A6F                              call    animation_unload +273F:8803  C6 44 15 FF                          mov     byte ptr [si+15h],0FFh +273F:8807  C7 44 37 0000                        mov     word ptr [si+37h],0 +273F:880C  80 4C 03 20                          or      byte ptr [si+3],20h     ; ' ' +273F:8810  C7 06 6FEF 002D                      mov     word ptr ds:[6FEFh],2Dh ; (273F:6FEF=0D107h) +273F:8816 úBB 03F3                              mov     bx,3F3h                 ; (273F:03F3=0FBh) +273F:8819  E9 84AA                              jmp     animation_load_entry + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; This method is referenced by a jump point for NPC script action #40 +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +273F:881C  81 3E 6CFE 00B4                      cmp     [player_hotspot_rec+HS_Y], 80h + 52 +273F:8822  73 14                                jae     loc_ret_1689            ; Jump if above or = +273F:8824  BD 706C                              mov     bp, 706Ch +273F:8827  E9 CD57                              jmp     character_walking_end + +                                                                                ;* No entry point to code +273F:882A  E8 D94B                              call    talk_countdown_handler +273F:882D  F7 44 1F FFFF                        test    word ptr [si+HS_FRAME_CTR], 0FFFFh +273F:8832  74 05                                jz      loc_1690                ; Jump if zero +273F:8834  83 6C 1F 01                          sub     word ptr [si+HS_FRAME_CTR], 1 + +273F:8838                       loc_ret_1689:                                   ;  xref 273F:8822 +273F:8838  C3                                   retn +273F:8839                       loc_1690:                                       ;  xref 273F:8832 +273F:8839  F6 44 2A FF                          test    byte ptr [si+2Ah],0FFh +273F:883D  75 01                                jnz     loc_1691                ; Jump if not zero +273F:883F  C3                                   retn +273F:8840                       loc_1691:                                       ;  xref 273F:883D +273F:8840  80 7C 2A 01                          cmp     byte ptr [si+2Ah],1 +273F:8844  74 0E                                je      loc_1692                ; Jump if equal +273F:8846  80 7C 2A 02                          cmp     byte ptr [si+2Ah],2 +273F:884A  74 12                                je      loc_1694                ; Jump if equal +273F:884C  80 7C 2A 03                          cmp     byte ptr [si+2Ah],3 +273F:8850  74 18                                je      loc_1695                ; Jump if equal +273F:8852  EB 23                                jmp     short loc_1696          ; (8877) +273F:8854                       loc_1692:                                       ;  xref 273F:8844 +273F:8854  C7 44 24 035C                        mov     word ptr [si+24h],35Ch +273F:8859  80 44 2A 01                          add     byte ptr [si+2Ah],1 + +273F:885D                       loc_ret_1693:                                   ;  xref 273F:8863, 887C +273F:885D  C3                                   retn +273F:885E                       loc_1694:                                       ;  xref 273F:884A +273F:885E  E8 8748                              call    hotspot_script_execute +273F:8861  0B C0                                or      ax,ax                   ; Zero ? +273F:8863  75 F8                                jnz     loc_ret_1693            ; Jump if not zero +273F:8865  C6 44 2A 00                          mov     byte ptr [si+2Ah],0 +273F:8869  C3                                   retn +273F:886A                       loc_1695:                                       ;  xref 273F:8850 +273F:886A  C7 44 24 0384                        mov     word ptr [si+24h],384h +273F:886F  80 44 2A 01                          add     byte ptr [si+2Ah],1 +273F:8873  C6 45 0C 02                          mov     byte ptr [di+0Ch],2 +273F:8877                       loc_1696:                                       ;  xref 273F:8852 +273F:8877  E8 872F                              call    hotspot_script_execute +273F:887A  0B C0                                or      ax,ax                   ; Zero ? +273F:887C  75 DF                                jnz     loc_ret_1693            ; Jump if not zero +273F:887E  E8 89F1                              call    animation_unload +273F:8881  C6 44 15 FF                          mov     byte ptr [si+15h],0FFh +273F:8885  C7 06 70BF 0004                      mov     word ptr ds:[70BFh],4   ; (273F:70BF=0FF98h) +273F:888B  BB 03E9                              mov     bx,3E9h +273F:888E  E9 8435                              jmp     animation_load_entry + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                        seq_check_cell_door     proc    near +273F:8891  B8 2712                              mov     ax,2712h                ; Cell door hotspot Id +273F:8894  E8 E957                              call    room_exit_hs_get_pointer +273F:8897  F6 44 0C FF                          test    byte ptr [si+REHS_EXIT_BLOCKED], 0FFh +273F:889B  75 0E                                jnz     loc_ret_1697            ; Jump if blocked +                        seq_check_cell_door_2: +273F:889D  F7 06 BA29 FFFF                      test    torch_hide, 0FFFFh      ; Torch been pulled? +273F:88A3  74 06                                jz      loc_ret_1697            ; No, so exit +273F:88A5  BB 0015                              mov     bx, 15h +273F:88A8  E8 1752                              call    play_sound                 ; (9FFD) + +273F:88AB                       loc_ret_1697:                                   ;  xref 273F:889B, 88A3 +273F:88AB  C3                                   retn +                        seq_check_cell_door     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; Called by the torch hotspot in room #1 +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                          torch_load_method     proc    near +273F:88AC  F7 06 BA29 FFFF                      test    torch_hide, 0FFFFh      ; Has torch been pulled? +273F:88B2  75 06                                jnz     loc_ret_1698            ; Yes, so skip load +273F:88B4  BB 040F                              mov     bx,40Fh                 ; Otherwise, load torch +273F:88B7  E8 E8B5                              call    animation_load + +273F:88BA                       loc_ret_1698:                                   ;  xref 273F:88B2 +273F:88BA  C3                                   retn +                          torch_load_method     proc    near + +273F:88BB  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx = Room description resource Id +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             display_dialog     proc    near +273F:88BC  BE 5040                              mov     si, offset look_info +273F:88BF  89 5C 08                             mov     [si+8],bx +273F:88C2  C6 06 38B0 01                        mov     byte ptr ds:[38B0h],1   ; (273F:38B0=0EAh) +273F:88C7  E8 0043                              call    sub_216                 ; (890D) +273F:88CA  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:88CF  75 03                                jne     loc_1700                ; Jump if not equal +273F:88D1  E8 0052                              call    sub_217                 ; (8926) +273F:88D4                       loc_1700:                                       ;  xref 273F:88CF +273F:88D4  F6 06 073C 20                        test    byte ptr ds:[73Ch],20h  ; (273F:073C=17h) ' ' +273F:88D9  74 0F                                jz      loc_1701                ; Jump if zero +273F:88DB  E8 B1DD                              call    replace_vga_palette2    ; (3ABB) +273F:88DE  FF 36 073C                           push    word ptr ds:[73Ch]      ; (273F:073C=17h) +273F:88E2  FF 16 0762                           call    [set_lower_palette_proc] +273F:88E6  8F 06 073C                           pop     word ptr ds:[73Ch]      ; (273F:073C=17h) +273F:88EA                       loc_1701:                                       ;  xref 273F:88D9 +273F:88EA  E8 969E                              call    mouse_wait              ; (1F8B) +273F:88ED  E8 96A6                              call    pause_for_input         ; (1F96) +273F:88F0  E8 9698                              call    mouse_wait              ; (1F8B) +273F:88F3  C6 06 38B0 00                        mov     byte ptr ds:[38B0h],0   ; (273F:38B0=0EAh) +273F:88F8  80 26 11D0 FE                        and     menubar_state, 0FEh     ; (273F:11D0=56h) +273F:88FD  FF 16 075E                           call    [show_cursor_proc] +273F:8901  F6 06 073C 20                        test    byte ptr ds:[73Ch],20h  ; (273F:073C=17h) ' ' +273F:8906  74 04                                jz      loc_ret_1702            ; Jump if zero +273F:8908  FF 16 0764                           call    [empty_palette_proc] + +273F:890C                       loc_ret_1702:                                   ;  xref 273F:8906 +273F:890C  C3                                   retn +                             display_dialog     proc    near + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4129, 7051, 705B, 88C7 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:890D                       sub_216         proc    near +273F:890D  F6 06 11D0 20                        test    menubar_state, 20h ; (273F:11D0=56h) ' ' +273F:8912  74 12                                jz      loc_1703                ; Jump if zero +273F:8914  56                                   push    si +273F:8915  80 0E 11D0 01                        or      menubar_state, 1   ; (273F:11D0=56h) +273F:891A  FF 16 075E                           call    [show_cursor_proc] +273F:891E  FF 16 0752                           call    [show_compressed_screen_proc] +273F:8922  E8 8BE9                              call    room_add_animations +273F:8925  5E                                   pop     si + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:88D1 + +273F:8926                       sub_217: +273F:8926                       loc_1703:                                       ;  xref 273F:8912 +273F:8926  56                                   push    si +273F:8927  8A 44 01                             mov     al,[si+1] +273F:892A  04 01                                add     al,1 +273F:892C  32 E4                                xor     ah,ah                   ; Zero register +273F:892E  F7 26 074C                           mul     menubar_block_size +273F:8932  8A 0C                                mov     cl,[si] +273F:8934  80 C1 01                             add     cl,1 +273F:8937  32 ED                                xor     ch,ch                   ; Zero register +273F:8939  91                                   xchg    cx,ax +273F:893A  F7 26 074A                           mul     char_width +273F:893E  03 C1                                add     ax,cx +273F:8940  A3 BA0F                              mov     ds:data_470e,ax         ; (273F:BA0F=0) +273F:8943  A3 BA11                              mov     ds:data_471e,ax         ; (273F:BA11=0) +273F:8946  8B 44 08                             mov     ax,[si+8] +273F:8949  BF AF42                              mov     di, offset talk_string_buffer +273F:894C  89 3E BA07                           mov     talk_string_offset, di +273F:8950  FF 74 06                             push    word ptr [si+6] +273F:8953  E8 F3E4                              call    decode_string +273F:8956  5D                                   pop     bp +273F:8957  A1 0748                              mov     ax, screen_width +273F:895A  A3 BA09                              mov     ds:data_468e,ax         ; (273F:BA09=0) +273F:895D  A1 4CE4                              mov     ax, data_segment2 +273F:8960  A3 BA0D                              mov     ds:data_469e,ax         ; (273F:BA0D=0) +273F:8963  C6 06 BA13 04                        mov     byte ptr ds:data_472e,4 ; (273F:BA13=0) +273F:8968  8B 3E 076E                           mov     di, data_571 +273F:896C  8A 45 05                             mov     al,[di+5] +273F:896F  A2 BA14                              mov     ds:data_473e,al         ; (273F:BA14=0) +273F:8972  8B 3E BA07                           mov     di, talk_string_offset +273F:8976  BB BA07                              mov     bx, offset talk_string_offset +273F:8979  A1 4CF0                              mov     ax, font2_segment +273F:897C  8E C0                                mov     es, ax +273F:897E  B1 03                                mov     cl, 3 +273F:8980  E8 91AD                              call    word_wrap_string +273F:8983  5E                                   pop     si +273F:8984  56                                   push    si +273F:8985  8A D0                                mov     dl,al +273F:8987  88 44 03                             mov     [si+3],al +273F:898A  8A 04                                mov     al,[si] +273F:898C  8A 5C 01                             mov     bl,[si+1] +273F:898F  8A 4C 02                             mov     cl,[si+2] +273F:8992  33 ED                                xor     bp,bp                   ; Zero register +273F:8994  FF 16 077A                           call    [draw_dialog_proc] +273F:8998 úBB BA07                              mov     bx, offset talk_string_offset +273F:899B                       loc_1704:                                       ;  xref 273F:899E +273F:899B  E8 91FA                              call    sub_51                  ; (1B98) +273F:899E  74 FB                                jz      loc_1704                ; Jump if zero +273F:89A0  FF 16 0744                           call    word ptr [show_screen_proc] +273F:89A4  5E                                   pop     si +273F:89A5  C3                                   retn +                                sub_216         endp + +                                                                                ;* No entry point to code +273F:89A6  E8 FE31                              call    seq_set_hotspot_name +273F:89A9  8B 34                                mov     si,[si] +273F:89AB  80 4C 03 80                          or      byte ptr [si+3],80h +273F:89AF  C3                                   retn +273F:89B0                       loc_1705:                                       ;  xref 273F:5BD7 +273F:89B0  E8 006E                              call    talk_init                  +273F:89B3  8B 1E BA21                           mov     bx,ds:data_480e         ; (273F:BA21=0) +273F:89B7  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:89B9  8B 9F 5050                           mov     bx,word ptr ds:[5050h][bx] ; (273F:5050=34E8h) +273F:89BD  E8 00C8                              call    talk_init2 +273F:89C0  E9 CBCA                              jmp     character_walking_end_2 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                              talk_to_proc      proc    near +273F:89C3  8B DD                                mov     bx,bp +273F:89C5  8B 07                                mov     ax, [bx] +273F:89C7  83 C5 02                             add     bp,2 +273F:89CA  A3 BA19                              mov     use_hotspot_id, ax +273F:89CD  A3 BA1B                              mov     active_hotspot_id, ax +273F:89D0  56                                   push    si +273F:89D1  E8 8316                              call    get_room_resource_pointer2 +273F:89D4  5B                                   pop     bx +273F:89D5  87 DE                                xchg    bx,si +273F:89D7  81 3E BA19 03EA                      cmp     use_hotspot_id, SKORL_HOTSPOT_ID +273F:89DD  74 21                                je      loc_1708                ; Jump if equal +273F:89DF  83 7C 06 1C                          cmp     word ptr [si+HS_ROOM_NUM], 28 +273F:89E3  75 08                                jne     loc_1706                ; Jump if not equal +273F:89E5  81 3E BA19 03EB                      cmp     use_hotspot_id, 3EBh +273F:89EB  74 13                                je      loc_1708                ; Jump if equal +273F:89ED                       loc_1706:                                       ;  xref 273F:89E3 +273F:89ED  A1 BA19                              mov     ax, use_hotspot_id +273F:89F0  E8 BBB4                              call    hotspot_action_precheck +273F:89F3  0B C0                                or      ax,ax                   ; Zero ? +273F:89F5  74 09                                jz      loc_1708                ; Jump if zero +273F:89F7  3D 0003                              cmp     ax,3 +273F:89FA  74 03                                je      loc_ret_1707            ; Jump if equal +273F:89FC  E9 CB82                              jmp     character_walking_end + +273F:89FF                       loc_ret_1707:                                   ;  xref 273F:89FA +273F:89FF  C3                                   retn +273F:8A00                       loc_1708:                                       ;  xref 273F:89DD, 89EB, 89F5 +273F:8A00  E8 BCEB                              call    character_face_hotspot +273F:8A03  E8 CBF0                              call    hotspot_get_action_sequence +273F:8A06  79 03                                jns     loc_1709                ; Jump if not sign +273F:8A08  E9 D9A6                              jmp     display_message_dialog_3 +273F:8A0B                       loc_1709:                                       ;  xref 273F:8A06 +273F:8A0B  74 08                                jz      loc_1710                ; Jump if zero +273F:8A0D  E8 B424                              call    sequence_execute +273F:8A10  74 03                                jz      loc_1710                ; Jump if zero +273F:8A12  E9 CB6C                              jmp     character_walking_end +273F:8A15                       loc_1710:                                       ;  xref 273F:8A0B, 8A10 +273F:8A15  E8 0009                              call    talk_init +273F:8A18  E8 0026                              call    talk_get_record +273F:8A1B  E8 006A                              call    talk_init2 +273F:8A1E  E9 CB6C                              jmp     character_walking_end_2 +                              talk_to_proc      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx = talking to char hotspot rec +                                ; di = player anim slot +                                ; Amongst other things, sets the player's tick proc to the +                                ; talk tick handler +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                  talk_init     proc    near +273F:8A21  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:8A24  89 47 2F                             mov     [bx+HS_USE_HOTSPOT_ID], ax +273F:8A27  C7 47 2B 0000                        mov     [bx+HS_V2B], 0 +273F:8A2C  89 1E CF06                           mov     talk_to_hotspot_ptr, bx +273F:8A30  55                                   push    bp +273F:8A31  E8 B932                              call    character_update_movement +273F:8A34  5D                                   pop     bp +273F:8A35  B8 8ABD                              mov     ax, offset talk_tick_proc +273F:8A38  89 45 11                             mov     [di+ANIM_TICK_PROC], ax +273F:8A3B  C6 06 9834 03                        mov     cursor_state, CURSORSTATE_TALK +273F:8A40  C3                                   retn +                                  talk_init     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx = talking to char hotspot rec +                                ;         Called from:   273F:8A18 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                          talk_get_record       proc    near +273F:8A41  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8A45  F7 47 33 FFFF                        test    word ptr [bx+33h], 0FFFFh +273F:8A4A  74 0A                                jz      loc_1711                ; Jump if zero +273F:8A4C  FF 77 33                             push    word ptr [bx+33h] +273F:8A4F  C7 47 33 0000                        mov     word ptr [bx+33h], 0 +273F:8A54  5B                                   pop     bx +273F:8A55  C3                                   retn +273F:8A56                       loc_1711:                                       ;  xref 273F:8A4A +273F:8A56  8B 0E BA1B                           mov     cx, active_hotspot_id +273F:8A5A úBB 505C                              mov     bx, offset talk_table +273F:8A5D                       loc_1712:                                       ;  xref 273F:8A64 +273F:8A5D ú3B 0F                                cmp     cx, [bx]                ; Hotspot entry found? +273F:8A5F  74 05                                je      loc_1713                ; If yes then jump +273F:8A61  83 C3 04                             add     bx,4                    ; Move to next record +273F:8A64  EB F7                                jmp     short loc_1712 +273F:8A66                       loc_1713: +273F:8A66  8B 5F 02                             mov     bx, [bx+2]              ; Get offset of talk data +273F:8A69  56                                   push    si +273F:8A6A  A1 BA1B                              mov     ax, active_hotspot_id +273F:8A6D  E8 82B1                              call    get_room_resource_pointer4 +273F:8A70  8B 44 02                             mov     ax, [si+HSH_NAME] +273F:8A73  5E                                   pop     si +273F:8A74  3D 017A                              cmp     ax, 17Ah                ; "Stranger"? +273F:8A77  74 0C                                je      loc_1714                ; If yes then jump + +273F:8A79  A1 BA3B                              mov     ax, talk_record_index  ; Get talk index to use +273F:8A7C  D1 E0                                shl     ax, 1 +273F:8A7E  03 D8                                add     bx, ax +273F:8A80  8B 5F 02                             mov     bx,[bx+2]               ; Return alt offset +273F:8A83  EB 02                                jmp     short loc_ret_1715 +273F:8A85                       loc_1714: +273F:8A85  8B 1F                                mov     bx, [bx]                ; Return main offset +273F:8A87                       loc_ret_1715: +273F:8A87  C3                                   retn +                          talk_get_record       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx = talk record offset +                                ;         Called from:   273F:89BD, 8A1B +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                talk_init2      proc    near +273F:8A88  8B 07                                mov     ax, [bx] +273F:8A8A  A3 CF02                              mov     talk_response_ptr, ax +273F:8A8D  83 C3 02                             add     bx, 2 +273F:8A90  89 1E CF00                           mov     talk_data_ptr, bx +273F:8A94  89 1E CF04                           mov     talk_next_talk_offset, bx +273F:8A98  C6 06 CF08 FF                        mov     talk_state, TALK_START +273F:8A9D  C6 06 CF0B 00                        mov     talk_cf0b, 0 +273F:8AA2  8B 45 1B                             mov     ax, [di+ANIM_HOTSPOT_ID] +273F:8AA5  A3 983F                              mov     data_435, ax +273F:8AA8  A1 BA1B                              mov     ax, active_hotspot_id +273F:8AAB  A3 9841                              mov     data_436, ax +273F:8AAE  C6 06 9849 01                        mov     pathfind_data, 1 +273F:8AB3  C3                                   retn +                                talk_init2      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8AB4                       loc_1716:                                       ;  xref 273F:8AC9 +273F:8AB4  E9 0281                              jmp     loc_1753                ; (8D38) +273F:8AB7                       loc_1717:                                       ;  xref 273F:8AC2 +273F:8AB7  E9 00A8                              jmp     talk_handle_selection +273F:8ABA                       loc_1718:                                       ;  xref 273F:8AD0 +273F:8ABA  E9 0299                              jmp     loc_1755                ; (8D56) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx = eb26h for Skorl +                                ; talk_data_ptr = e5aa for prisoner +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             talk_tick_proc     proc    near +273F:8ABD  80 3E CF08 02                        cmp     talk_state, TALK_SELECT ; Talk selection? +273F:8AC2  74 F3                                je      loc_1717                ; If yes then jump +273F:8AC4  80 3E CF08 03                        cmp     talk_state, TALK_UNKNOWN +273F:8AC9  74 E9                                je      loc_1716                ; Jump if equal +273F:8ACB  80 3E CF08 04                        cmp     talk_state, 4 +273F:8AD0  74 E8                                je      loc_1718                ; Jump if equal + +; Handler for showing a list of talking options. This only gets run once before +; the talk state changes to TALK_SELECT + +273F:8AD2  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8AD6  C6 06 CF09 00                        mov     talk_line_num, 0 +273F:8ADB  C6 06 CF0A 00                        mov     talk_selected_line, 0 +273F:8AE0  C6 06 CF08 02                        mov     talk_state, TALK_SELECT +273F:8AE5  8B 1E CF00                           mov     bx, talk_data_ptr +273F:8AE9  BD CF0C                              mov     bp, offset talk_entry_list +273F:8AEC                       loc_1719: +273F:8AEC  F6 47 03 40                          test    byte ptr [bx+3], 40h +273F:8AF0  74 06                                jz      loc_1720 +273F:8AF2  F6 47 03 80                          test    byte ptr [bx+3], 80h +273F:8AF6  75 2E                                jnz     loc_1723 +273F:8AF8                       loc_1720: +273F:8AF8  8B 07                                mov     ax, [bx]                ; Get sequence offset +273F:8AFA  25 3FFF                              and     ax, 3FFFh +273F:8AFD  74 05                                jz      loc_1721                ; Jump if zero +273F:8AFF  E8 B332                              call    sequence_execute +273F:8B02  74 1C                                jz      loc_1722                ; If zero, skip line +273F:8B04                       loc_1721: +273F:8B04  87 DD                                xchg    bx, bp +273F:8B06  89 2F                                mov     [bx], bp                ; Add to lookup list +273F:8B08  83 C3 02                             add     bx,2                    ; Move to next entry +273F:8B0B  87 DD                                xchg    bx, bp +273F:8B0D  8B 47 02                             mov     ax, [bx+TALK_DESC_ID] +273F:8B10  80 E4 3F                             and     ah, 3Fh +273F:8B13  80 06 CF09 01                        add     talk_line_num, 1 +273F:8B18  3D 0424                              cmp     ax, TALK_MAGIC_ID       ; Magic skip number +273F:8B1B  74 03                                je      loc_1722                ; Jump if equal +273F:8B1D  E8 02C3                              call    talk_handle_line +273F:8B20                       loc_1722:                                       ;  xref 273F:8B02, 8B1B +273F:8B20  F6 47 01 80                          test    byte ptr [bx+1],80h +273F:8B24  75 08                                jnz     loc_1724                ; Jump if not zero +273F:8B26                       loc_1723:                                       ;  xref 273F:8AF6 +273F:8B26  83 C3 06                             add     bx, 6 +273F:8B29  83 3F FF                             cmp     word ptr [bx], 0FFFFh +273F:8B2C  75 BE                                jne     loc_1719 + +273F:8B2E                       loc_1724:                                       ;  xref 273F:8B24 +273F:8B2E  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8B32  C7 47 42 0000                        mov     word ptr [bx+HS_V42], 0 +273F:8B37  80 3E CF09 01                        cmp     talk_line_num, 1        ; Only one option? +273F:8B3C  75 05                                jne     loc_1725                ; If not, then jump + +273F:8B3E  B9 0081                              mov     cx,81h +273F:8B41  EB 03                                jmp     short loc_1726          ; (8B46) +273F:8B43                       loc_1725:                                       ;  xref 273F:8B3C +273F:8B43  B9 0001                              mov     cx,1 +273F:8B46                       loc_1726:                                       ;  xref 273F:8B41 +273F:8B46  B8 0000                              mov     ax,0 +273F:8B49  BB 0000                              mov     bx,0 +273F:8B4C  BD 0026                              mov     bp,26h +273F:8B4F  BA 0002                              mov     dx,2 +273F:8B52  E8 802E                              call    sub_21                  ; Mark rects needing display + +273F:8B55  F6 06 11DA FF                        test    mouse_buttons2, 0FFh +273F:8B5A  74 05                                jz      loc_ret_1727            ; Jump if zero +273F:8B5C  C6 06 11DA 00                        mov     mouse_buttons2, 0 + +273F:8B61                       loc_ret_1727:                                   ;  xref 273F:8B5A +273F:8B61  C3                                   retn +                             talk_tick_proc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       talk_handle_selection: +273F:8B62  80 3E CF09 01                        cmp     talk_line_num, 1        ; Were any lines present +273F:8B67  75 1B                                jne     loc_1731                ; If yes then jump + +; This code fragment is only reached if talking to someone who only has a canned response. +; ie. no options need be presented. Such as the prisoner saying "I want water" + +273F:8B69  F6 06 11DA FF                        test    mouse_buttons2, 0FFh +273F:8B6E  74 05                                jz      loc_1729                ; Jump if zero +273F:8B70  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:8B75                       loc_1729:                                       ;  xref 273F:8B6E +273F:8B75  F7 06 9838 FFFF                      test    data_431,0FFFFh         ; (273F:9838=5C8Bh) +273F:8B7B  74 01                                jz      loc_1730                ; Jump if zero +273F:8B7D  C3                                   retn +273F:8B7E                       loc_1730: +273F:8B7E  BB 0001                              mov     bx, 1                   ; Response #1 +273F:8B81  E9 0092                              jmp     loc_1741 + +; This code is reached both for the handling of highlighting the list of possible talk +; selections, as well as for handling the response when one of those lines is selected + +273F:8B84                       loc_1731:                                       ;  xref 273F:8B67 +273F:8B84  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8B88  A1 11D8                              mov     ax, mouse_y2 +273F:8B8B  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:8B8D  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:8B8F  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:8B91  74 08                                jz      loc_1732                ; Jump if zero +273F:8B93  38 06 CF09                           cmp     talk_line_num, al +273F:8B97  73 02                                jae     loc_1732 +273F:8B99  33 C0                                xor     ax,ax                   ; No line selected +273F:8B9B                       loc_1732: +273F:8B9B  3A 06 CF0A                           cmp     al, talk_selected_line  ; Still on same line? +273F:8B9F  74 5C                                je      loc_1737                ; If yse then jump +273F:8BA1  86 06 CF0A                           xchg    talk_selected_line, al +273F:8BA5  0A C0                                or      al, al                  ; Any current selection? +273F:8BA7  74 08                                jz      loc_1733                ; If not then skip +273F:8BA9  80 0E 11D0 02                        or      menubar_state, 2 +273F:8BAE  E8 0281                              call    talk_toggle_line_highlight ; Deselect old line +273F:8BB1                       loc_1733: +273F:8BB1  A0 CF0A                              mov     al, talk_selected_line +273F:8BB4  0A C0                                or      al,al                   ; Any new selected line? +273F:8BB6  74 08                                jz      loc_1734                ; If not then jump +273F:8BB8  80 0E 11D0 02                        or      menubar_state, 2 +273F:8BBD  E8 0272                              call    talk_toggle_line_highlight ; Highlight new line +273F:8BC0                       loc_1734: +273F:8BC0  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:8BC5  74 06                                je      loc_1735                ; Jump if equal +273F:8BC7  C7 06 11EC 0000                      mov     data_640, 0 +273F:8BCD                       loc_1735:                                       ;  xref 273F:8BC5 +273F:8BCD  FF 16 075E                           call    [show_cursor_proc] +273F:8BD1  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:8BD6  75 12                                jne     loc_1736                ; Jump if not equal +273F:8BD8  33 C0                                xor     ax,ax                   ; Zero register +273F:8BDA  33 DB                                xor     bx,bx                   ; Zero register +273F:8BDC  BD 0140                              mov     bp,140h +273F:8BDF  BA 001F                              mov     dx,1Fh +273F:8BE2  B9 0001                              mov     cx,1 +273F:8BE5  E8 7FA7                              call    sub_22                  ; (0B8F) +273F:8BE8  EB 13                                jmp     short loc_1737          ; (8BFD) +273F:8BEA                       loc_1736:                                       ;  xref 273F:8BD6 +273F:8BEA  A1 11D6                              mov     ax, mouse_x2 +273F:8BED  8B 1E 11D8                           mov     bx, mouse_y2 +273F:8BF1  BD 0010                              mov     bp,10h +273F:8BF4  BA 0010                              mov     dx,10h +273F:8BF7  B9 0001                              mov     cx,1 +273F:8BFA  E8 7F92                              call    sub_22                  ; (0B8F) +273F:8BFD                       loc_1737:                                       ;  xref 273F:8B9F, 8BE8 +273F:8BFD  32 C0                                xor     al,al                   ; Zero register +273F:8BFF  86 06 11DA                           xchg    mouse_buttons2, al +273F:8C03  A8 07                                test    al,7                    ; Any buttons pressed? +273F:8C05  74 07                                jz      loc_ret_1738            ; Skip if not + +; At this point a talk line has been selected + +273F:8C07  A8 03                                test    al,3 +273F:8C09  75 05                                jnz     loc_1740 +273F:8C0B  E9 00F8                              jmp     loc_1751                ; Handle selection +273F:8C0E                       loc_ret_1738:                                   ;  xref 273F:8C05 +273F:8C0E  C3                                   retn + +273F:8C0F                       loc_ret_1739:                                   ;  xref 273F:8C19 +273F:8C0F  C3                                   retn +273F:8C10                       loc_1740:                                       ;  xref 273F:8C09 +273F:8C10  8A 1E CF0A                           mov     bl, talk_selected_line +273F:8C14  32 FF                                xor     bh,bh                   ; Zero register + +; This code point is reached both for automatic responses from a character, +; or when a talk item has been selected and needs to be "spoken" + +273F:8C16                       loc_1741: +273F:8C16  80 EB 01                             sub     bl, 1 +273F:8C19  72 F4                                jc      loc_ret_1739            ; If bl had been 0, invalid exit +273F:8C1B  80 06 CF0B 01                        add     talk_cf0b, 1 +273F:8C20  D1 E3                                shl     bx,1 +273F:8C22  8B 9F CF0C                           mov     bx, talk_entry_list[bx] ; Get selected talk entry +273F:8C26  8B 57 02                             mov     dx, [bx+TALK_DESC_ID] +273F:8C29  80 E6 3F                             and     dh,3Fh                  ; '?' +273F:8C2C  80 4F 03 40                          or      byte ptr [bx+TALK_DESC_ID+1], 40h ; Flag desc +273F:8C30  81 FA 0424                           cmp     dx, TALK_MAGIC_ID +273F:8C34  74 11                                je      loc_1742                ; Jump if equal +273F:8C36  53                                   push    bx +273F:8C37  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8C3B  8B 5F 0B                             mov     bx, [bx+HS_ANIM_OFFSET] +273F:8C3E  8B 4F 1B                             mov     cx, [bx+ANIM_HOTSPOT_ID] +273F:8C41  B0 01                                mov     al, 1 +273F:8C43  E8 D4E9                              call    talk_setup_3                 ; (612F) +273F:8C46  5B                                   pop     bx +273F:8C47                       loc_1742:                                       ;  xref 273F:8C34 +273F:8C47  8B 47 04                             mov     ax, [bx+TALK_POST_SEQUENCE] +273F:8C4A  F6 C4 80                             test    ah, 80h +273F:8C4D  74 06                                jz      loc_1743                ; Jump if zero +273F:8C4F  80 E4 7F                             and     ah, 7Fh +273F:8C52  E8 B1DF                              call    sequence_execute +273F:8C55                       loc_1743: +273F:8C55  8B 1E CF02                           mov     bx, talk_response_ptr +273F:8C59  D1 E0                                shl     ax, 1 +273F:8C5B  03 D8                                add     bx, ax +273F:8C5D  D1 E0                                shl     ax, 1 +273F:8C5F  03 D8                                add     bx, ax + +273F:8C61  8B 07                                mov     ax, [bx]                ; Get sequence to run +273F:8C63  0B C0                                or      ax, ax +273F:8C65  74 08                                jz      loc_1744                ; Jump if zero +273F:8C67  E8 B1CA                              call    sequence_execute +273F:8C6A  3D 1092                              cmp     ax, 1092h +273F:8C6D  75 E6                                jne     loc_1743                ; Jump if not equal +273F:8C6F                       loc_1744:                                       ;  xref 273F:8C65 +273F:8C6F  8B 47 02                             mov     ax, [bx+2] +273F:8C72  F6 C4 80                             test    ah, 80h +273F:8C75  74 06                                jz      loc_1745                ; Jump if zero +273F:8C77  80 E4 7F                             and     ah, 7Fh +273F:8C7A  E8 B1B7                              call    sequence_execute +273F:8C7D                       loc_1745:                                       ;  xref 273F:8C75 +273F:8C7D  3D 0424                              cmp     ax, 424h +273F:8C80  74 12                                je      loc_1746                ; Jump if equal +273F:8C82  53                                   push    bx +273F:8C83  8B D0                                mov     dx,ax +273F:8C85  B9 03E8                              mov     cx, PLAYER_HOTSPOT_ID +273F:8C88  56                                   push    si +273F:8C89  8B 36 CF06                           mov     si, talk_to_hotspot_ptr +273F:8C8D  B0 01                                mov     al,1 +273F:8C8F  E8 D49D                              call    talk_setup_3                 ; (612F) +273F:8C92  5E                                   pop     si +273F:8C93  5B                                   pop     bx +273F:8C94                       loc_1746:                                       ;  xref 273F:8C80 +273F:8C94  8B 47 04                             mov     ax, [bx+4] +273F:8C97  3D FFFF                              cmp     ax, 0FFFFh +273F:8C9A  74 28                                je      loc_1748                ; Jump if equal +273F:8C9C  F6 C4 80                             test    ah, 80h +273F:8C9F  74 0B                                jz      loc_1747                ; Jump if zero +273F:8CA1  80 E4 7F                             and     ah, 7Fh +273F:8CA4  E8 B18D                              call    sequence_execute +273F:8CA7  3D FFFF                              cmp     ax, 0FFFFh +273F:8CAA  74 18                                je      loc_1748                ; Jump if equal +273F:8CAC                       loc_1747:                                       ;  xref 273F:8C9F +273F:8CAC  D1 E0                                shl     ax, 1 +273F:8CAE  8B D8                                mov     bx, ax +273F:8CB0  D1 E0                                shl     ax, 1 +273F:8CB2  03 C3                                add     ax, bx +273F:8CB4  03 06 CF04                           add     ax, talk_next_talk_offset ; Next sequence start offset +273F:8CB8  A3 CF00                              mov     talk_data_ptr, ax +273F:8CBB  C6 06 CF08 03                        mov     talk_state, 3 +273F:8CC0  EB 07                                jmp     short loc_1749          ; (8CC9) + +273F:8CC2  5B                                   pop     bx +273F:8CC3  C3                                   ret +273F:8CC4                       loc_1748: +273F:8CC4  C6 06 CF08 04                        mov     talk_state, 4 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8D06 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8CC9                       sub_221         proc    near +273F:8CC9                       loc_1749:                                       ;  xref 273F:8CC0, 8D04 +273F:8CC9 úB8 0001                              mov     ax,1 +273F:8CCC  BB 0001                              mov     bx,1 +273F:8CCF  BD 0026                              mov     bp,26h +273F:8CD2  BA 0001                              mov     dx,1 +273F:8CD5  B9 0081                              mov     cx,81h +273F:8CD8  E9 7EA8                              jmp     loc_92                  ; (0B83) +                                sub_221         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8CDB                       loc_1750:                                       ;  xref 273F:8D24, 8D36, 8D6E +273F:8CDB úC6 06 9849 00                        mov     pathfind_data, 0  +273F:8CE0  C7 06 B15F 5E44                      mov     word ptr ds:data_450e, offset player_tick_proc +273F:8CE6  C6 06 6D33 00                        mov     data_900, 0 +273F:8CEB  C7 06 6D31 0000                      mov     data_6D31, 0 +273F:8CF1  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8CF5  C7 47 2F 0000                        mov     word ptr [bx+HS_USE_HOTSPOT_ID], 0 +273F:8CFA  C7 47 42 0018                        mov     word ptr [bx+HS_V42], 18h +273F:8CFF  C6 06 9834 00                        mov     cursor_state, CURSORSTATE_NONE +273F:8D04  EB C3                                jmp     short loc_1749          ; (8CC9) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; This point is reached if the third button is pressed. It causes the +                                ; talk to abort, and the talked to character to show the question mark briefly +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8D06                       loc_1751:                                       ;  xref 273F:8C0B +273F:8D06  E8 FFC0                              call    sub_221                 ; (8CC9) +273F:8D09  F6 06 CF0B FF                        test    talk_cf0b, 0FFh +273F:8D0E  75 16                                jnz     loc_1752                ; Jump if not zero +273F:8D10  56                                   push    si +273F:8D11  8B 36 CF06                           mov     si, talk_to_hotspot_ptr  +273F:8D15  8B 5C 0B                             mov     bx, [si+HS_ANIM_OFFSET] +273F:8D18  8B 4F 1B                             mov     cx, [bx+1Bh] +273F:8D1B  BB 002B                              mov     bx,2Bh +273F:8D1E  33 D2                                xor     dx,dx                   ; Zero register +273F:8D20  E8 D698                              call    display_message_dialog_4 +273F:8D23  5E                                   pop     si +273F:8D24  EB B5                                jmp     short loc_1750          ; (8CDB) +273F:8D26                       loc_1752:                                       ;  xref 273F:8D0E +273F:8D26  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8D2A  8B 5F 0B                             mov     bx,[bx+HS_ANIM_OFFSET] +273F:8D2D  8B 4F 1B                             mov     cx,[bx+ANIM_HOTSPOT_ID] +273F:8D30  BA 088D                              mov     dx, 88Dh +273F:8D33  E8 D3F9                              call    talk_setup_3 +273F:8D36  EB A3                                jmp     short loc_1750          ; (8CDB) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8D38                       loc_1753:                                       ;  xref 273F:8AB4 +273F:8D38  E8 0036                              call    sub_222                 ; (8D71) +273F:8D3B  E8 D43A                              call    talk_countdown_handler +273F:8D3E  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr  +273F:8D42  83 7F 37 06                          cmp     word ptr [bx+37h],6 +273F:8D46  73 0D                                jae     loc_ret_1754            ; Jump if above or = +273F:8D48  F7 06 9838 FFFF                      test    data_431,0FFFFh         ; (273F:9838=5C8Bh) +273F:8D4E  75 05                                jnz     loc_ret_1754            ; Jump if not zero +273F:8D50  C6 06 CF08 01                        mov     talk_state, 1 + +273F:8D55                       loc_ret_1754:                                   ;  xref 273F:8D46, 8D4E, 8D64, 8D6C +273F:8D55  C3                                   retn +273F:8D56                       loc_1755:                                       ;  xref 273F:8ABA +273F:8D56  E8 0018                              call    sub_222                 ; (8D71) +273F:8D59  E8 D41C                              call    talk_countdown_handler +273F:8D5C  8B 1E CF06                           mov     bx, talk_to_hotspot_ptr +273F:8D60  83 7F 37 06                          cmp     word ptr [bx+37h],6 +273F:8D64  73 EF                                jae     loc_ret_1754            ; Jump if above or = +273F:8D66  F7 06 9838 FFFF                      test    data_431,0FFFFh         ; (273F:9838=5C8Bh) +273F:8D6C  75 E7                                jnz     loc_ret_1754            ; Jump if not zero +273F:8D6E  E9 FF6A                              jmp     loc_1750                ; (8CDB) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8D38, 8D56 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8D71                       sub_222         proc    near +273F:8D71  F6 06 11DA 07                        test    mouse_buttons2, 7 +273F:8D76  74 6A                                jz      loc_ret_1758            ; Jump if zero +273F:8D78  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:8D7D  C3                                   retn +                                                                                ;* No entry point to code +273F:8D7E  F6 06 9837 FF                        test    talk_dialog_active, 0FFh +273F:8D83  74 5D                                jz      loc_ret_1758            ; Jump if zero +273F:8D85  A1 11D6                              mov     ax, mouse_x2 +273F:8D88  3B 06 11C2                           cmp     ax, talk_dialog_left +273F:8D8C  72 54                                jb      loc_ret_1758            ; Jump if below +273F:8D8E  2B 06 11C2                           sub     ax, talk_dialog_left +273F:8D92  3B 06 11C4                           cmp     ax, talk_dialog_width +273F:8D96  73 4A                                jae     loc_ret_1758            ; Jump if above or = +273F:8D98  A1 11D8                              mov     ax, mouse_y2 +273F:8D9B  3B 06 11C0                           cmp     ax, talk_dialog_top +273F:8D9F  72 41                                jb      loc_ret_1758            ; Jump if below +273F:8DA1  2B 06 11C0                           sub     ax, talk_dialog_top +273F:8DA5  3B 06 11C6                           cmp     ax, talk_dialog_height +273F:8DA9  73 37                                jae     loc_ret_1758            ; Jump if above or = +273F:8DAB  A1 983B                              mov     ax, talk_character_id +273F:8DAE  56                                   push    si +273F:8DAF  E8 7F38                              call    get_room_resource_pointer2 +273F:8DB2  C7 44 37 0000                        mov     word ptr [si+37h],0 +273F:8DB7  5E                                   pop     si +273F:8DB8  81 3E 983B 03E8                      cmp     talk_character_id, PLAYER_HOTSPOT_ID +273F:8DBE  75 14                                jne     loc_1757                ; Jump if not equal +273F:8DC0  A1 9841                              mov     ax,data_436             ; (273F:9841=20EFh) +273F:8DC3  56                                   push    si +273F:8DC4  E8 7F23                              call    get_room_resource_pointer2 +273F:8DC7  F7 44 37 FFFF                        test    word ptr [si+37h],0FFFFh +273F:8DCC  74 05                                jz      loc_1756                ; Jump if zero +273F:8DCE  C7 44 37 0028                        mov     word ptr [si+37h],28h +273F:8DD3                       loc_1756:                                       ;  xref 273F:8DCC +273F:8DD3  5E                                   pop     si +273F:8DD4                       loc_1757:                                       ;  xref 273F:8DBE +273F:8DD4  C6 06 9837 00                        mov     talk_dialog_active, 0 +273F:8DD9  C7 06 9838 0000                      mov     data_431,0              ; (273F:9838=5C8Bh) +273F:8DDF  E8 D4E3                              call    sub_147                 ; (62C5) + +273F:8DE2                       loc_ret_1758:                                   ;  xref 273F:8D76, 8D83, 8D8C, 8D96 +                                                                                ;            8D9F, 8DA9 +273F:8DE2  C3                                   retn +                                sub_222         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8B1D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                        talk_handle_line        proc    near +273F:8DE3  56                                   push    si +273F:8DE4  57                                   push    di +273F:8DE5  55                                   push    bp +273F:8DE6  53                                   push    bx +273F:8DE7  50                                   push    ax +273F:8DE8  A0 CF09                              mov     al, talk_line_num +273F:8DEB  32 E4                                xor     ah, ah                  ; Zero register +273F:8DED  E8 E22C                              call    talk_clear_line +273F:8DF0  58                                   pop     ax +273F:8DF1  BF AF42                              mov     di, offset talk_string_buffer +273F:8DF4  89 3E BA07                           mov     talk_string_offset, di +273F:8DF8  E8 EF3F                              call    decode_string +273F:8DFB  A0 CF09                              mov     al, talk_line_num +273F:8DFE  32 E4                                xor     ah, ah +273F:8E00  F7 26 074C                           mul     menubar_block_size      ; Calculate display offset +273F:8E04  A3 BA0F                              mov     ds:data_470e, ax +273F:8E07  A3 BA11                              mov     ds:data_471e, ax +273F:8E0A  C6 06 BA13 00                        mov     byte ptr ds:data_472e, 0 +273F:8E0F  A1 0748                              mov     ax, screen_width +273F:8E12  A3 BA09                              mov     ds:data_468e,ax +273F:8E15  A1 4CE4                              mov     ax, data_segment2 +273F:8E18  A3 BA0D                              mov     ds:data_469e, ax +273F:8E1B  8B 36 076E                           mov     si, data_571 +273F:8E1F  8A 44 05                             mov     al, [si+5] +273F:8E22  A2 BA14                              mov     ds:data_473e, al +273F:8E25 úBB BA07                              mov     bx, offset talk_string_offset +273F:8E28                       loc_1759: +273F:8E28  E8 8D6D                              call    sub_51                  ; (1B98) +273F:8E2B  74 FB                                jz      loc_1759                ; Jump if zero +273F:8E2D  5B                                   pop     bx +273F:8E2E  5D                                   pop     bp +273F:8E2F  5F                                   pop     di +273F:8E30  5E                                   pop     si +273F:8E31  C3                                   retn +                        talk_handle_line        endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8BAE, 8BBD +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                talk_toggle_line_highlight      proc    near +273F:8E32  32 E4                                xor     ah,ah                   ; Zero register +273F:8E34  BB 0A00                              mov     bx, MENUBAR_BLOCK_SIZE +273F:8E37  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:8E39  8B F8                                mov     di,ax +273F:8E3B  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:8E40  75 06                                jne     loc_1760                ; Jump if not equal +273F:8E42  BB 0140                              mov     bx,140h +273F:8E45  E9 A154                              jmp     loc_637                 ; (2F9C) +273F:8E48                       loc_1760:                                       ;  xref 273F:8E40 +273F:8E48  1E                                   push    ds +273F:8E49  B8 A000                              mov     ax, VGA_SEGMENT +273F:8E4C  8E C0                                mov     es,ax +273F:8E4E  A1 4CE4                              mov     ax, data_segment2 +273F:8E51  8E D8                                mov     ds,ax +273F:8E53  B9 0A00                              mov     cx, MENUBAR_BLOCK_SIZE + +273F:8E56                       locloop_1761:                                   ;  xref 273F:8E68 +273F:8E56  80 3D E2                             cmp     byte ptr [di],0E2h +273F:8E59  74 05                                je      loc_1762                ; Jump if equal +273F:8E5B  80 3D FF                             cmp     byte ptr [di],0FFh +273F:8E5E  75 07                                jne     loc_1763                ; Jump if not equal +273F:8E60                       loc_1762:                                       ;  xref 273F:8E59 +273F:8E60  80 35 1D                             xor     byte ptr [di],1Dh +273F:8E63  26: 80 35 1D                         xor     byte ptr es:[di],1Dh +273F:8E67                       loc_1763:                                       ;  xref 273F:8E5E +273F:8E67  47                                   inc     di +273F:8E68  E2 EC                                loop    locloop_1761            ; Loop if cx > 0 + +273F:8E6A  1F                                   pop     ds +273F:8E6B  C3                                   retn +                talk_toggle_line_highlight      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                                                                ;* No entry point to code +273F:8E6C  E8 7E79                              call    get_room_resource_pointer +273F:8E6F  F7 44 33 FFFF                        test    word ptr [si+33h],0FFFFh +273F:8E74  74 05                                jz      loc_1764                ; Jump if zero +273F:8E76  8B 74 33                             mov     si,[si+33h] +273F:8E79  EB 26                                jmp     short loc_1768          ; (8EA1) +273F:8E7B                       loc_1764:                                       ;  xref 273F:8E74 +273F:8E7B úBE 505C                              mov     si,505Ch                ; (273F:505C=8Ah) +273F:8E7E                       loc_1765:                                       ;  xref 273F:8E85 +273F:8E7E ú3B 1C                                cmp     bx,[si] +273F:8E80  74 05                                je      loc_1766                ; Jump if equal +273F:8E82  83 C6 04                             add     si,4 +273F:8E85  EB F7                                jmp     short loc_1765          ; (8E7E) +273F:8E87                       loc_1766:                                       ;  xref 273F:8E80 +273F:8E87  8B 7C 02                             mov     di,[si+2] +273F:8E8A  E8 7E92                              call    get_room_resource_pointer3 +273F:8E8D  81 7C 02 017A                        cmp     word ptr [si+2],17Ah +273F:8E92  74 0B                                je      loc_1767                ; Jump if equal +273F:8E94  8B 1E BA3B                           mov     bx, talk_record_index +273F:8E98  D1 E3                                shl     bx,1                    ; Shift w/zeros fill +273F:8E9A  8B 71 02                             mov     si,[bx+di+2] +273F:8E9D  EB 02                                jmp     short loc_1768          ; (8EA1) +273F:8E9F                       loc_1767:                                       ;  xref 273F:8E92 +273F:8E9F  8B 35                                mov     si,[di] +273F:8EA1                       loc_1768:                                       ;  xref 273F:8E79, 8E9D +273F:8EA1  83 C6 02                             add     si,2 +273F:8EA4  B8 0008                              mov     ax,8 +273F:8EA7  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:8EA9  03 F0                                add     si,ax +273F:8EAB  81 4C 02 C000                        or      word ptr [si+2],0C000h +273F:8EB0  C3                                   retn + +273F:8EB1  00                                   db      0 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                            menuitem_save       proc    near + +273F:8EB2  B0 56                                mov     al, 56h +273F:8EB4  E8 52 01                             call    saverestore_proc +273F:8EB7  2D 00001                             sub     ax, 1 +273F:8EBA  73 03                                jnb     mi_save_1 +273F:8EBC  E9 80 00                             jmp     loc_1774 + +273F:8EBF  50                    mi_save_1      push    ax +273F:8EC0  E8 9C 90                             call    show_disk_cursor +273F:8EC3  58                                   pop     ax +273F:8EC4  3B 06 08 03                          cmp     ax, data_540 +273F:8EC8  72 0C                                jb      mi_save_2 +273F:8ECA  83 3E 0308 0F                        cmp     data_540, 0Fh +273F:8ECF  73 05                                jnb     mi_save_2 +273F:8ED1  83 06 0308 01                        add     data_540, 1 + +273F:8ED6                       loc_1769: +273F:8ED6  BB F010                              mov     bx, WRITE_BUFFER_SIZE +273F:8ED9  81 EB 5D90                           sub     bx, offset write_buffer +273F:8EDD  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:8EDF  05 0200                              add     ax,200h +273F:8EE2  83 D2 00                             adc     dx,0 +273F:8EE5  50                                   push    ax +273F:8EE6  52                                   push    dx +273F:8EE7  8B CA                                mov     cx,dx +273F:8EE9  8B D0                                mov     dx,ax +273F:8EEB  B8 4200                              mov     ax,4200h +273F:8EEE  8B 1E 554D                           mov     bx, data_832 +273F:8EF2  CD 21                                int     21h                     ; DOS Services  ah=function 42h +                                                                                ;  move file ptr, bx=file handle +                                                                                ;   al=method, cx,dx=offset +273F:8EF4  59                                   pop     cx +273F:8EF5  5B                                   pop     bx +273F:8EF6  73 09                                jnc     loc_1771                ; Jump if carry=0 +273F:8EF8                       loc_1770:                                       ;  xref 273F:8F03, 8F07, 8F31, 8F3D +273F:8EF8  BB 00A2                              mov     bx,0A2h +273F:8EFB  E8 F9BE                              call    display_dialog +273F:8EFE  33 C0                                xor     ax,ax                   ; Zero register +273F:8F00  C3                                   retn +273F:8F01                       loc_1771:                                       ;  xref 273F:8EF6 +273F:8F01  3B D1                                cmp     dx,cx +273F:8F03  75 F3                                jne     loc_1770                ; Jump if not equal +273F:8F05  3B C3                                cmp     ax,bx +273F:8F07  75 EF                                jne     loc_1770                ; Jump if not equal +273F:8F09  B4 40                                mov     ah,40h                  ; '@' +273F:8F0B  8B 1E 554D                           mov     bx, data_832 +273F:8F0F  B9 F010                              mov     cx, WRITE_BUFFER_SIZE +273F:8F12 úBA 5D90                              mov     dx, offset write_buffer ; (273F:5D90=47h) +273F:8F15  2B CA                                sub     cx,dx +273F:8F17  CD 21                                int     21h                     ; DOS Services  ah=function 40h +                                                                                ;  write file  bx=file handle +                                                                                ;   cx=bytes from ds:dx buffer +273F:8F19  73 09                                jnc     loc_1773                ; Jump if carry=0 +273F:8F1B                       loc_1772:                                       ;  xref 273F:8F26 +273F:8F1B  BB 00A2                              mov     bx,0A2h +273F:8F1E  E8 F99B                              call    display_dialog +273F:8F21  33 C0                                xor     ax,ax                   ; Zero register +273F:8F23  C3                                   retn +273F:8F24                       loc_1773:                                       ;  xref 273F:8F19 +273F:8F24  3B C1                                cmp     ax,cx +273F:8F26  75 F3                                jne     loc_1772                ; Jump if not equal +273F:8F28  B8 4200                              mov     ax,4200h +273F:8F2B  33 C9                                xor     cx,cx                   ; Zero register +273F:8F2D  33 D2                                xor     dx,dx                   ; Zero register +273F:8F2F  CD 21                                int     21h                     ; DOS Services  ah=function 42h +                                                                                ;  move file ptr, bx=file handle +                                                                                ;   al=method, cx,dx=offset +273F:8F31  72 C5                                jc      loc_1770                ; Jump if carry Set +273F:8F33  B4 40                                mov     ah,40h +273F:8F35  B9 0200                              mov     cx,200h +273F:8F38 úBA 0119                              mov     dx, offset file_buffer  ; (273F:0119=0FFh) +273F:8F3B  CD 21                                int     21h                     ; DOS Services  ah=function 40h +                                                                                ;  write file  bx=file handle +                                                                                ;   cx=bytes from ds:dx buffer +273F:8F3D  72 B9                                jc      loc_1770                ; Jump if carry Set +273F:8F3F                       loc_1774:                                       ;  xref 273F:8F57 +273F:8F3F  8B 1E 554D                           mov     bx, data_832 +273F:8F43  B4 3E                                mov     ah,3Eh +273F:8F45  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle +273F:8F47  0C 01                                or      al,1 +273F:8F49  C3                                   retn + +                            menuitem_save       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:9381 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:8F4A                   menuitem_restore    proc    near +273F:8F4A  B0 AC                                mov     al,0ACh +273F:8F4C  E8 00BA                              call    saverestore_proc +                                                assume  ds:data_seg +273F:8F4F  83 06 0308 01                        add     data_540,1              ; (31E4:0308=0) +273F:8F54  2D 0001                              sub     ax,1 +273F:8F57  72 E6                                jc      loc_1774                ; Jump if carry Set +273F:8F59  50                                   push    ax +273F:8F5A  E8 9002                              call    show_disk_cursor +273F:8F5D  E8 0458                              call    sub_230                 ; (93B8) +273F:8F60  E8 1290                              call    sub_257                 ; (A1F3) +273F:8F63  58                                   pop     ax +273F:8F64  BB F010                              mov     bx, WRITE_BUFFER_SIZE +273F:8F67  81 EB 5D90                           sub     bx, offset write_buffer +273F:8F6B  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:8F6D  05 0200                              add     ax,200h +273F:8F70  83 D2 00                             adc     dx,0 +273F:8F73  50                                   push    ax +273F:8F74  52                                   push    dx +273F:8F75  8B CA                                mov     cx,dx +273F:8F77  8B D0                                mov     dx,ax +273F:8F79  B8 4200                              mov     ax,4200h +273F:8F7C  8B 1E 554D                           mov     bx, data_832    +273F:8F80  CD 21                                int     21h                     ; DOS Services  ah=function 42h +                                                                                ;  move file ptr, bx=file handle +                                                                                ;   al=method, cx,dx=offset +273F:8F82  59                                   pop     cx +273F:8F83  5B                                   pop     bx +273F:8F84  B4 3F                                mov     ah,3Fh                  ; '?' +273F:8F86  8B 1E 554D                           mov     bx, data_832  +273F:8F8A  B9 F010                              mov     cx, WRITE_BUFFER_SIZE +273F:8F8D úBA 5D90                              mov     dx, offset write_buffer ; (31E4:5D90=0) +273F:8F90  2B CA                                sub     cx,dx +273F:8F92  CD 21                                int     21h                     ; DOS Services  ah=function 3Fh +                                                                                ;  read file, bx=file handle +                                                                                ;   cx=bytes to ds:dx buffer +273F:8F94  B8 4200                              mov     ax,4200h +273F:8F97  33 C9                                xor     cx,cx                   ; Zero register +273F:8F99  33 D2                                xor     dx,dx                   ; Zero register +273F:8F9B  CD 21                                int     21h                     ; DOS Services  ah=function 42h +                                                                                ;  move file ptr, bx=file handle +                                                                                ;   al=method, cx,dx=offset +273F:8F9D  B4 40                                mov     ah,40h                  ; '@' +273F:8F9F  B9 0200                              mov     cx,200h +273F:8FA2 úBA 0119                              mov     dx,offset file_buffer   ; (31E4:0119=0) +273F:8FA5  CD 21                                int     21h                     ; DOS Services  ah=function 40h +                                                                                ;  write file  bx=file handle +                                                                                ;   cx=bytes from ds:dx buffer +273F:8FA7  B4 3E                                mov     ah,3Eh +273F:8FA9  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle +273F:8FAB  FF 16 0766                           call    word ptr [fade_out_proc] +273F:8FAF  E8 EC0F                              call    load_string_resources +273F:8FB2  E8 E050                              call    menubar_clear_image +273F:8FB5  E8 7996                              call    clear_layer_rects +273F:8FB8  E8 79B4                              call    room_load_layers +273F:8FBB  FF 16 074E                           call    word ptr ds:[74Eh]      ; (273F:074E=8010h) +273F:8FBF  E8 7A25                              call    sub_16                  ; (09E7) +273F:8FC2  E8 7B39                              call    sub_19                  ; (0AFE) +273F:8FC5  E8 7999                              call    clear_hotspot_rects +273F:8FC8  E8 84D7                              call    sub_45                  ; (14A2) +273F:8FCB úBE B883                              mov     si, offset animation_block_list +273F:8FCE  8B FE                                mov     di,si +273F:8FD0  E8 E6FB                              call    sub_190                 ; (76CE) +273F:8FD3  E8 EA89                              call    sub_195                 ; (7A5F) +                                                assume  ds:seg_code +273F:8FD6  C6 06 9837 00                        mov     talk_dialog_active, 0 +273F:8FDB  C7 06 9838 0000                      mov     data_431,0              ; (273F:9838=5C8Bh) +273F:8FE1  E8 123D                              call    sub_259                 ; (A221) +273F:8FE4  E8 BF8D                              call    sub_124                 ; (4F74) +273F:8FE7  80 36 CE20 80                        xor     byte ptr ds:data_498e,80h ; (273F:CE20=0) +273F:8FEC  E8 E106                              call    sub_177                 ; (70F5) +273F:8FEF  FF 16 0752                           call    [show_compressed_screen_proc] +273F:8FF3  E8 8518                              call    room_add_animations +273F:8FF6  FF 16 0744                           call    word ptr [show_screen_proc] +273F:8FFA  E8 AAB1                              call    replace_vga_palette     ; (3AAE) +273F:8FFD  FF 16 0760                           call    word ptr ds:[760h]      ; (273F:0760=0C76Eh) +273F:9001  C6 06 1456 FF                        mov     data_213,0FFh           ; (273F:1456=42h) +273F:9006  33 C0                                xor     ax,ax                   ; Zero register +273F:9008  C3                                   retn +                            menuitem_restore    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8F4C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9009               saverestore_proc        proc    near +273F:9009  A2 5553                              mov     data_344,al                     ; (273F:5553=0DFh) +273F:900C  80 3E 0786 02                        cmp     drive_number, 2         ; Running on hard drive? +273F:9011  73 1C                                jae     loc_1776                ; If yes, skip prompt msg +273F:9013  F6 06 00B5 80                        test    byte ptr ds:[0B5h],80h +273F:9018  75 0D                                jnz     loc_1775 +273F:901A  8B 1E 00B4                           mov     bx,word ptr ds:[file_handle] +273F:901E  B4 3E                                mov     ah,3Eh +273F:9020  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle +273F:9022  C6 06 00B5 80                        mov     byte ptr ds:[0B5h],80h +273F:9027                       loc_1775: +273F:9027  B8 000B                              mov     ax,0Bh                  ; Prompt to insert data disk +273F:902A  B6 00                                mov     dh,0 +273F:902C  E8 AF75                              call    display_message +273F:902F                       loc_1776: +273F:902F  B8 3D02                              mov     ax,3D02h +273F:9032  BA 5540                              mov     dx, offset savegame_filename +273F:9035  CD 21                                int     21h                     ; DOS Services  ah=function 3Dh +                                                                                ;  open file, al=mode,name@ds:dx +273F:9037  72 18                                jc      loc_1777                ; Jump if error occurred + +273F:9039  A3 554D                              mov     data_832, ax +273F:903C  8B D8                                mov     bx,ax +273F:903E  B4 3F                                mov     ah,3Fh +273F:9040  B9 0200                              mov     cx,200h +273F:9043 úBA 0119                              mov     dx, offset file_buffer  ; (273F:0119=0FFh) +273F:9046  CD 21                                int     21h                     ; DOS Services  ah=function 3Fh +                                                                                ;  read file, bx=file handle +                                                                                ;   cx=bytes to ds:dx buffer +273F:9048  3D 0200                              cmp     ax,200h                 ; Read 512 bytes? +273F:904B  74 27                                je      loc_1779                ; Jump if equal +273F:904D  B4 3E                                mov     ah,3Eh +273F:904F  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle + +                                                                                273F:9051                       loc_1777:                                       ;  xref 273F:9037 +273F:9051  B4 3C                                mov     ah,3Ch                  ; '<' +273F:9053  33 C9                                xor     cx,cx                   ; Zero register +273F:9055  BA 5540                              mov     dx, offset savegame_filename +273F:9058  CD 21                                int     21h                     ; DOS Services  ah=function 3Ch +                                                                                ;  create/truncate file @ ds:dx +273F:905A  73 09                                jnc     loc_1778                ; Jump if carry=0 +273F:905C  BB 00A2                              mov     bx,0A2h +273F:905F  E8 F85A                              call    display_dialog +273F:9062  33 C0                                xor     ax,ax                   ; Zero register +273F:9064  C3                                   retn +273F:9065                       loc_1778:                                       ;  xref 273F:905A +273F:9065  A3 554D                              mov     data_832, ax +273F:9068  1E                                   push    ds +273F:9069  07                                   pop     es +273F:906A úBF 0119                              mov     di, offset file_buffer  ; (273F:0119=0FFh) +273F:906D  B9 0100                              mov     cx,100h +273F:9070  33 C0                                xor     ax,ax                   ; Zero register +273F:9072  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:9074                       loc_1779:                                       ;  xref 273F:904B +273F:9074  80 3E 5553 AC                        cmp     data_344,0ACh           ; (273F:5553=0DFh) +273F:9079  75 0A                                jne     loc_1780                ; Jump if not equal +273F:907B  83 2E 0308 01                        sub     word ptr ds:[308h],1    ; (273F:0308=21CDh) +273F:9080  73 03                                jnc     loc_1780                ; Jump if carry=0 +273F:9082  33 C0                                xor     ax,ax                   ; Zero register +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 344 + +273F:9084  C3                                   retn +273F:9085                       loc_1780:                                       ;  xref 273F:9079, 9080 +273F:9085  B0 02                                mov     al,2 +273F:9087  B3 04                                mov     bl,4 +273F:9089  B1 20                                mov     cl,20h                  ; ' ' +273F:908B  8B 16 0308                           mov     dx,word ptr ds:[308h]   ; (273F:0308=21CDh) +273F:908F  83 C2 02                             add     dx,2 +273F:9092  83 FA 11                             cmp     dx,11h +273F:9095  73 03                                jae     loc_1781                ; Jump if above or = +273F:9097  80 C2 01                             add     dl,1 +273F:909A                       loc_1781:                                       ;  xref 273F:9095 +273F:909A  BD 0001                              mov     bp,1 +273F:909D  FF 16 077A                           call    [draw_dialog_proc] +273F:90A1  A1 4CE4                              mov     ax, data_segment2 +273F:90A4  8E C0                                mov     es,ax +273F:90A6  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:90AB  74 1E                                je      loc_1783                ; Jump if equal +273F:90AD úBF 3E92                              mov     di,data_1466e           ; (FF12:3E92=80h) +273F:90B0 úBE 558D                              mov     si,558Dh                ; (273F:558D=33h) +273F:90B3  BA 0005                              mov     dx,5 +273F:90B6                       loc_1782:                                       ;  xref 273F:90C7 +273F:90B6  57                                   push    di +273F:90B7  AC                                   lodsb                           ; String [si] to al +273F:90B8  8A E0                                mov     ah,al +273F:90BA  B9 0085                              mov     cx,85h +273F:90BD  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:90BF  5F                                   pop     di +273F:90C0  81 C7 0140                           add     di,140h +273F:90C4  83 EA 01                             sub     dx,1 +273F:90C7  75 ED                                jnz     loc_1782                ; Jump if not zero +273F:90C9  EB 03                                jmp     short loc_1784          ; (90CE) +273F:90CB                       loc_1783:                                       ;  xref 273F:90AB +273F:90CB  E8 9F57                              call    sub_69                  ; (3025) +273F:90CE                       loc_1784:                                       ;  xref 273F:90C9 +273F:90CE  BE 5576                              mov     si,5576h +273F:90D1  B9 000C                              mov     cx,0Ch +273F:90D4  80 3E 5553 56                        cmp     data_344,56h            ; (273F:5553=0DFh) 'V' +273F:90D9  75 06                                jne     loc_1785                ; Jump if not equal +273F:90DB úBE 5583                              mov     si,5583h                ; (273F:5583=1Bh) +273F:90DE  B9 0009                              mov     cx,9 +273F:90E1                       loc_1785:                                       ;  xref 273F:90D9 +273F:90E1  B8 0020                              mov     ax,20h +273F:90E4  2B C1                                sub     ax,cx +273F:90E6  D1 E8                                shr     ax,1                    ; Shift w/zeros fill +273F:90E8  05 0003                              add     ax,3 +273F:90EB  8B 3E 076E                           mov     di, data_571 +273F:90EF  8B 15                                mov     dx,[di] +273F:90F1  BB 0005                              mov     bx,5 +273F:90F4  E8 01EC                              call    sub_227                 ; (92E3) +273F:90F7  8B 0E 0308                           mov     cx,word ptr ds:[308h]   ; (273F:0308=21CDh) +273F:90FB  83 F9 0F                             cmp     cx,0Fh +273F:90FE  73 03                                jae     loc_1786                ; Jump if above or = +273F:9100  83 C1 01                             add     cx,1 +273F:9103                       loc_1786:                                       ;  xref 273F:90FE +273F:9103 úBE 0119                              mov     si, offset file_buffer  ; (273F:0119=0FFh) +273F:9106  B8 0003                              mov     ax,3 +273F:9109  BB 0007                              mov     bx,7 + +273F:910C                       locloop_1787:                                   ;  xref 273F:9126 +273F:910C  50                                   push    ax +273F:910D  53                                   push    bx +273F:910E  51                                   push    cx +273F:910F  56                                   push    si +273F:9110  B9 0020                              mov     cx,20h +273F:9113  8B 3E 076E                           mov     di,word ptr ds:[76Eh]   ; (273F:076E=0D806h) +273F:9117  8B 15                                mov     dx,[di] +273F:9119  E8 01C7                              call    sub_227                 ; (92E3) +273F:911C  5E                                   pop     si +273F:911D  59                                   pop     cx +273F:911E  5B                                   pop     bx +273F:911F  58                                   pop     ax +273F:9120  83 C3 01                             add     bx,1 +273F:9123  83 C6 21                             add     si,21h +273F:9126  E2 E4                                loop    locloop_1787            ; Loop if cx > 0 + +273F:9128  FF 16 0744                           call    word ptr [show_screen_proc] +273F:912C  E8 8E5C                              call    mouse_wait              ; (1F8B) +273F:912F                       loc_1788:                                       ;  xref 273F:9188, 91E5, 92B3 +273F:912F úE8 0296                              call    room_check_keypresses +273F:9132  F6 06 11DA 01                        test    mouse_buttons2, 1 +273F:9137  74 08                                jz      loc_1789                ; Jump if zero +273F:9139  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:913E  E9 00A7                              jmp     loc_1797                ; (91E8) +273F:9141                       loc_1789:                                       ;  xref 273F:9137 +273F:9141  F6 06 11DA 02                        test    mouse_buttons2, 2 +273F:9146  74 06                                jz      loc_1790                ; Jump if zero +273F:9148  33 C0                                xor     ax,ax                   ; Zero register +273F:914A  A2 11DA                              mov     mouse_buttons2, al +273F:914D  C3                                   retn +273F:914E                       loc_1790:                                       ;  xref 273F:9146 +273F:914E  A1 11D6                              mov     ax, mouse_x2 +273F:9151  8B 1E 11D8                           mov     bx, mouse_y2 +273F:9155  B1 03                                mov     cl,3 +273F:9157  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:9159  D3 EB                                shr     bx,cl                   ; Shift w/zeros fill +273F:915B  3D 0002                              cmp     ax,2 +273F:915E  72 22                                jb      loc_1792                ; Jump if below +273F:9160  3D 0022                              cmp     ax,22h +273F:9163  73 1D                                jae     loc_1792                ; Jump if above or = +273F:9165  83 FB 07                             cmp     bx,7 +273F:9168  72 18                                jb      loc_1792                ; Jump if below +273F:916A  8B 0E 0308                           mov     cx,word ptr ds:[308h]   ; (273F:0308=21CDh) +273F:916E  83 F9 0F                             cmp     cx,0Fh +273F:9171  72 03                                jb      loc_1791                ; Jump if below +273F:9173  83 E9 01                             sub     cx,1 +273F:9176                       loc_1791:                                       ;  xref 273F:9171 +273F:9176  83 C1 08                             add     cx,8 +273F:9179  3B D9                                cmp     bx,cx +273F:917B  73 05                                jae     loc_1792                ; Jump if above or = +273F:917D  83 EB 06                             sub     bx,6 +273F:9180  EB 02                                jmp     short loc_1793          ; (9184) +273F:9182                       loc_1792:                                       ;  xref 273F:915E, 9163, 9168, 917B +273F:9182  33 DB                                xor     bx,bx                   ; Zero register +273F:9184                       loc_1793:                                       ;  xref 273F:9180 +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 346 + +273F:9184  3B 1E 5551                           cmp     bx,data_343             ; (273F:5551=0E807h) +273F:9188  74 A5                                je      loc_1788                ; Jump if equal +273F:918A  87 1E 5551                           xchg    data_343,bx             ; (273F:5551=0E807h) +273F:918E  0B DB                                or      bx,bx                   ; Zero ? +273F:9190  74 21                                jz      loc_1794                ; Jump if zero +273F:9192  8B C3                                mov     ax,bx +273F:9194  2D 0001                              sub     ax,1 +273F:9197  B9 0021                              mov     cx,21h +273F:919A  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:919C  05 0119                              add     ax, offset file_buffer +273F:919F  8B F0                                mov     si,ax +273F:91A1  8B 3E 076E                           mov     di,word ptr ds:[76Eh]   ; (273F:076E=0D806h) +273F:91A5  8B 15                                mov     dx,[di] +273F:91A7  B8 0003                              mov     ax,3 +273F:91AA  83 C3 06                             add     bx,6 +273F:91AD  B9 0020                              mov     cx,20h +273F:91B0  E8 0130                              call    sub_227                 ; (92E3) +273F:91B3                       loc_1794:                                       ;  xref 273F:9190 +273F:91B3  F7 06 5551 FFFF                      test    data_343,0FFFFh         ; (273F:5551=0E807h) +273F:91B9  74 26                                jz      loc_1795                ; Jump if zero +273F:91BB  8B 1E 5551                           mov     bx,data_343             ; (273F:5551=0E807h) +273F:91BF  8B C3                                mov     ax,bx +273F:91C1  2D 0001                              sub     ax,1 +273F:91C4  B9 0021                              mov     cx,21h +273F:91C7  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:91C9  05 0119                              add     ax, offset file_buffer +273F:91CC  8B F0                                mov     si,ax +273F:91CE  8B 3E 076E                           mov     di,word ptr ds:[76Eh]   ; (273F:076E=0D806h) +273F:91D2  8B 55 02                             mov     dx,[di+2] +273F:91D5  B8 0003                              mov     ax,3 +273F:91D8  83 C3 06                             add     bx,6 +273F:91DB  B9 0020                              mov     cx,20h +273F:91DE  E8 0102                              call    sub_227                 ; (92E3) +273F:91E1                       loc_1795:                                       ;  xref 273F:91B9 +273F:91E1  FF 16 0744                           call    word ptr [show_screen_proc] +273F:91E5                       loc_1796:                                       ;  xref 273F:91EE +273F:91E5  E9 FF47                              jmp     loc_1788                ; (912F) +273F:91E8                       loc_1797:                                       ;  xref 273F:913E +273F:91E8  F7 06 5551 FFFF                      test    data_343,0FFFFh         ; (273F:5551=0E807h) +273F:91EE  74 F5                                jz      loc_1796                ; Jump if zero +273F:91F0  80 0E 11D0 01                        or      menubar_state, 1   ; (273F:11D0=56h) +273F:91F5  FF 16 075E                           call    [show_cursor_proc] +273F:91F9  B8 0021                              mov     ax,21h +273F:91FC  F7 26 5551                           mul     data_343                ; (273F:5551=0E807h) dx:ax = data * ax +273F:9200  2D 0021                              sub     ax,21h +273F:9203  05 0119                              add     ax, offset file_buffer +273F:9206  8B F0                                mov     si,ax +273F:9208  8B F8                                mov     di,ax +273F:920A                       loc_1798:                                       ;  xref 273F:9212 +273F:920A úF6 05 FF                             test    byte ptr [di],0FFh +273F:920D  74 05                                jz      loc_1799                ; Jump if zero +273F:920F  83 C7 01                             add     di,1 +273F:9212  EB F6                                jmp     short loc_1798          ; (920A) +273F:9214                       loc_1799:                                       ;  xref 273F:920D, 928A, 9297 +273F:9214 úC6 05 5F                             mov     byte ptr [di],5Fh       ; '_' +273F:9217  C6 45 01 00                          mov     byte ptr [di+1],0 +273F:921B  57                                   push    di +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 347 + +273F:921C  56                                   push    si +273F:921D  8B 3E 076E                           mov     di,word ptr ds:[76Eh]   ; (273F:076E=0D806h) +273F:9221  8B 15                                mov     dx,[di] +273F:9223  B8 0003                              mov     ax,3 +273F:9226  8B 1E 5551                           mov     bx,data_343             ; (273F:5551=0E807h) +273F:922A  83 C3 06                             add     bx,6 +273F:922D  B9 0020                              mov     cx,20h +273F:9230  E8 00B0                              call    sub_227                 ; (92E3) +273F:9233  FF 16 0744                           call    word ptr [show_screen_proc] +273F:9237  5E                                   pop     si +273F:9238  5F                                   pop     di +273F:9239                       loc_1800:                                       ;  xref 273F:924A, 9283, 9292, 92DF +273F:9239 úF6 06 11DA 01                        test    mouse_buttons2, 1 +273F:923E  75 7A                                jnz     loc_1808                ; Jump if not zero +273F:9240  F6 06 11DA 02                        test    mouse_buttons2, 2 +273F:9245  75 57                                jnz     loc_1806                ; Jump if not zero +273F:9247  E8 02D6                              call    check_keypress                 ; (9520) +273F:924A  74 ED                                jz      loc_1800                ; Jump if zero +273F:924C  80 3E 5553 AC                        cmp     data_344,0ACh           ; (273F:5553=0DFh) +273F:9251  74 47                                je      loc_1805                ; Jump if equal +273F:9253  3C 30                                cmp     al,30h                  ; '0' +273F:9255  72 14                                jb      loc_1801                ; Jump if below +273F:9257  3C 3A                                cmp     al,3Ah                  ; ':' +273F:9259  72 21                                jb      loc_1803                ; Jump if below +273F:925B  3C 41                                cmp     al,41h                  ; 'A' +273F:925D  72 0C                                jb      loc_1801                ; Jump if below +273F:925F  3C 5B                                cmp     al,5Bh                  ; '[' +273F:9261  72 19                                jb      loc_1803                ; Jump if below +273F:9263  3C 61                                cmp     al,61h                  ; 'a' +273F:9265  72 04                                jb      loc_1801                ; Jump if below +273F:9267  3C 7B                                cmp     al,7Bh                  ; '{' +273F:9269  72 11                                jb      loc_1803                ; Jump if below +273F:926B                       loc_1801:                                       ;  xref 273F:9255, 925D, 9265 +273F:926B úBB 5554                              mov     bx,offset data_345      ; (273F:5554=0E8h) +273F:926E                       loc_1802:                                       ;  xref 273F:927A +273F:926E úF6 07 FF                             test    byte ptr [bx],0FFh +273F:9271  74 19                                jz      loc_1804                ; Jump if zero +273F:9273  3A 07                                cmp     al,[bx] +273F:9275  74 05                                je      loc_1803                ; Jump if equal +273F:9277  83 C3 01                             add     bx,1 +273F:927A  EB F2                                jmp     short loc_1802          ; (926E) +273F:927C                       loc_1803:                                       ;  xref 273F:9259, 9261, 9269, 9275 +273F:927C  8B DF                                mov     bx,di +273F:927E  2B DE                                sub     bx,si +273F:9280  83 FB 1F                             cmp     bx,1Fh +273F:9283  73 B4                                jae     loc_1800                ; Jump if above or = +273F:9285  88 05                                mov     [di],al +273F:9287  83 C7 01                             add     di,1 +273F:928A  EB 88                                jmp     short loc_1799          ; (9214) +273F:928C                       loc_1804:                                       ;  xref 273F:9271 +273F:928C  3C 08                                cmp     al,8 +273F:928E  75 0A                                jne     loc_1805                ; Jump if not equal +273F:9290  3B F7                                cmp     si,di +273F:9292  74 A5                                je      loc_1800                ; Jump if equal +273F:9294  83 EF 01                             sub     di,1 +273F:9297  E9 FF7A                              jmp     loc_1799                ; (9214) +273F:929A                       loc_1805:                                       ;  xref 273F:9251, 928E +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 348 + +273F:929A  3C 1B                                cmp     al,1Bh +273F:929C  75 18                                jne     loc_1807                ; Jump if not equal +273F:929E                       loc_1806:                                       ;  xref 273F:9245 +273F:929E  C6 05 00                             mov     byte ptr [di],0 +273F:92A1  80 26 11D0 FE                        and     menubar_state, 0FEh ; (273F:11D0=56h) +273F:92A6  FF 16 075E                           call    [show_cursor_proc] +273F:92AA  FF 16 0744                           call    word ptr [show_screen_proc] +273F:92AE  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:92B3  E9 FE79                              jmp     loc_1788                ; (912F) +273F:92B6                       loc_1807:                                       ;  xref 273F:929C +273F:92B6  3C 0D                                cmp     al,0Dh +273F:92B8  75 25                                jne     loc_1809                ; Jump if not equal +273F:92BA                       loc_1808:                                       ;  xref 273F:923E +273F:92BA  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:92BF  3B FE                                cmp     di,si +273F:92C1  74 1C                                je      loc_1809                ; Jump if equal +273F:92C3  C6 05 00                             mov     byte ptr [di],0 +273F:92C6  80 26 11D0 FE                        and     menubar_state, 0FEh ; (273F:11D0=56h) +273F:92CB  FF 16 075E                           call    [show_cursor_proc] +273F:92CF  FF 16 0744                           call    word ptr [show_screen_proc] +273F:92D3  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:92D8  33 C0                                xor     ax,ax                   ; Zero register +273F:92DA  87 06 5551                           xchg    data_343,ax             ; (273F:5551=0E807h) +273F:92DE  C3                                   retn +273F:92DF                       loc_1809:                                       ;  xref 273F:92B8, 92C1 +273F:92DF  E9 FF57                              jmp     loc_1800                ; (9239) +273F:92E2  C3                                   db      0C3h + +                        saverestore_proc        endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:90F4, 9119, 91B0, 91DE, 9230 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:92E3                       sub_227         proc    near +273F:92E3  50                                   push    ax +273F:92E4  53                                   push    bx +273F:92E5  52                                   push    dx +273F:92E6  F7 26 074A                           mul     char_width +273F:92EA  8B F8                                mov     di,ax +273F:92EC  A1 074C                              mov     ax, menubar_block_size +273F:92EF  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:92F1  03 F8                                add     di,ax +273F:92F3  5A                                   pop     dx +273F:92F4  A1 4CE4                              mov     ax, data_segment2 +273F:92F7  8E C0                                mov     es,ax +273F:92F9  8B 2E 4CF2                           mov     bp, font_segment +273F:92FD                       loc_1810:                                       ;  xref 273F:930D +273F:92FD úAC                                   lodsb                           ; String [si] to al +273F:92FE  0A C0                                or      al,al                   ; Zero ? +273F:9300  74 0D                                jz      loc_1811                ; Jump if zero +273F:9302  FF 16 076A                           call    [display_character_proc] +273F:9306  03 3E 074A                           add     di, char_width +273F:930A  80 C5 01                             add     ch,1 +273F:930D  EB EE                                jmp     short loc_1810          ; (92FD) +273F:930F                       loc_1811:                                       ;  xref 273F:9300, 9320 +273F:930F ú3A E9                                cmp     ch,cl +273F:9311  73 0F                                jae     loc_1812                ; Jump if above or = +273F:9313  B0 20                                mov     al,20h                  ; ' ' +273F:9315  FF 16 076A                           call    [display_character_proc] +273F:9319  03 3E 074A                           add     di, char_width +273F:931D  80 C5 01                             add     ch,1 +273F:9320  EB ED                                jmp     short loc_1811          ; (930F) +273F:9322                       loc_1812:                                       ;  xref 273F:9311 +273F:9322  5B                                   pop     bx +273F:9323  58                                   pop     ax +273F:9324  83 EB 01                             sub     bx,1 +273F:9327  8A CD                                mov     cl,ch +273F:9329  32 ED                                xor     ch,ch                   ; Zero register +273F:932B  8B E9                                mov     bp,cx +273F:932D  B9 0081                              mov     cx,81h +273F:9330  BA 0001                              mov     dx,1 +273F:9333  E9 784D                              jmp     loc_92                  ; (0B83) +                                sub_227         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:015D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9336                       sub_228         proc    near +273F:9336  E8 0EBA                              call    sub_257                 ; (A1F3) +273F:9339  B8 01BC                              mov     ax,1BCh +273F:933C  B3 00                                mov     bl,0 +                                                assume  ds:data_seg +273F:933E  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:9342  E8 8C30                              call    show_arrow_cursor +273F:9345  80 3E 0786 02                        cmp     default_drive, 2        ; Is it drive A or B (0 or 1)? +273F:934A  72 20                                jb      loc_1813                ; Yes, so running on floppy +273F:934C  B8 3D00                              mov     ax,3D00h +273F:934F úBA 5540                              mov     dx, offset savegame_filename +273F:9352  CD 21                                int     21h                     ; DOS Services  ah=function 3Dh +                                                                                ;  open file, al=mode,name@ds:dx +273F:9354  72 35                                jc      loc_1815                ; Jump if carry Set +273F:9356  8B D8                                mov     bx,ax +273F:9358  B8 4202                              mov     ax,4202h +273F:935B  33 C9                                xor     cx,cx                   ; Zero register +273F:935D  33 D2                                xor     dx,dx                   ; Zero register +273F:935F  CD 21                                int     21h                     ; DOS Services  ah=function 42h +                                                                                ;  move file ptr, bx=file handle +                                                                                ;   al=method, cx,dx=offset +273F:9361  72 24                                jc      loc_1814                ; Jump if carry Set +273F:9363  3D 03E8                              cmp     ax, PLAYER_HOTSPOT_ID +273F:9366  72 1F                                jb      loc_1814                ; Jump if below +273F:9368  B4 3E                                mov     ah,3Eh +273F:936A  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle +273F:936C                       loc_1813:                                       ;  xref 273F:934A +273F:936C  FF 16 0766                           call    word ptr [fade_out_proc] +273F:9370  C7 06 9832 FFFF                      mov     room_number, 0FFFFh +273F:9376  A1 4CE0                              mov     ax, current_room_segment +273F:9379  A3 4CE2                              mov     data_segment, ax +273F:937C  E8 A9A0                              call    restart_restore_dialog  ; Show restore/restart dialog +273F:937F  75 0A                                jnz     loc_1815                ; Jump if not zero +273F:9381  E8 FBC6                              call    menuitem_restore +273F:9384  75 05                                jnz     loc_1815                ; Jump if not zero +273F:9386  C3                                   retn +273F:9387                       loc_1814:                                       ;  xref 273F:9361, 9366 +273F:9387  B4 3E                                mov     ah,3Eh +273F:9389  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:0169 + +273F:938B                       sub_229: +273F:938B                       loc_1815:                                       ;  xref 273F:9354, 937F, 9384 +273F:938B  E8 8BD1                              call    show_disk_cursor +273F:938E  FF 16 0766                           call    word ptr [fade_out_proc] +273F:9392  E8 0E5E                              call    sub_257                 ; (A1F3) +273F:9395  B8 FFFF                              mov     ax,0FFFFh +273F:9398  C7 06 9832 FFFF                      mov     room_number, 0FFFFh +273F:939E  E8 0017                              call    sub_230                 ; (93B8) +273F:93A1  B8 400E                              mov     ax,400Eh +273F:93A4  8C D9                                mov     cx,ds +273F:93A6  BA 5D90                              mov     dx,5D90h +273F:93A9  E8 6F68                              call    read_entry              ; (0314) +273F:93AC  E8 E812                              call    load_string_resources +273F:93AF  C6 06 1456 FF                        mov     current_room_num, 0FFh +273F:93B4  0D 0001                              or      ax,1 +273F:93B7  C3                                   retn +                                sub_228         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8F5D, 939E +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:93B8                       sub_230         proc    near +                                                assume  ds:seg_code +273F:93B8  A1 9832                              mov     ax, room_number +273F:93BB  A3 554F                              mov     data_342,ax             ; (273F:554F=8BDDh) +273F:93BE  E8 80E1                              call    sub_45                  ; (14A2) +273F:93C1  A1 4CF8                              mov     ax, data_811 +273F:93C4  A3 4D00                              mov     buffer_segment, ax +273F:93C7  C3                                   retn +                                sub_230         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0104, 14E6, 3D65, 912F +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:93C8              room_check_keypresses    proc    near +273F:93C8                       loc_1816:                                       ;  xref 273F:94D8 +273F:93C8 úE8 0155                              call    check_keypress                 ; (9520) +273F:93CB  74 3B                                jz      loc_ret_1820            ; Jump if zero +273F:93CD  E8 01B8                              call    sub_233                 ; (9588) +273F:93D0  74 36                                jz      loc_ret_1820            ; Jump if zero +273F:93D2  3C 41                                cmp     al,41h                  ; 'A' +273F:93D4  72 06                                jb      loc_1817                ; Jump if below +273F:93D6  3C 5B                                cmp     al,5Bh                  ; 'Z'+1 +273F:93D8  73 02                                jae     loc_1817                ; Jump if above or = +273F:93DA  04 20                                add     al,20h                  ; Convert uppercase to lowercase +273F:93DC                       loc_1817: +273F:93DC  3C 70                                cmp     al,70h                  ; 'p' - Pause +273F:93DE  75 29                                jne     loc_1821                ; Jump if not equal +273F:93E0  A0 5660                              mov     al, music_status          +273F:93E3  50                                   push    ax +273F:93E4  80 26 5660 FB                        and     music_status, 0FBh +273F:93E9  E8 8B9F                              call    mouse_wait              ; (1F8B) +273F:93EC                       loc_1818:                                       ;  xref 273F:93FF +273F:93EC  E8 8823                              call    room_check_cursors +273F:93EF  E8 80C6                              call    set_vga_palette         ; (14B8) +273F:93F2  F6 06 11D5 FF                        test    mouse_buttons, 0FFh     ; (31E4:11D5=0) +273F:93F7  75 08                                jnz     loc_1819                ; Jump if not zero +273F:93F9  B4 06                                mov     ah,6 +273F:93FB  B2 FF                                mov     dl,0FFh +273F:93FD  CD 21                                int     21h                     ; DOS Services  ah=function 06h +                                                                                ;  special char i/o, dl=subfunc +273F:93FF  74 EB                                jz      loc_1818                ; Jump if zero +273F:9401                       loc_1819:                                       ;  xref 273F:93F7 +273F:9401  E8 8B87                              call    mouse_wait              ; (1F8B) +273F:9404  58                                   pop     ax +273F:9405  A2 5660                              mov     music_status, al + +273F:9408                       loc_ret_1820:                                   ;  xref 273F:93CB, 93D0 +273F:9408  C3                                   retn + +273F:9409                       loc_1821:                                       ;  xref 273F:93DE +273F:9409  3C 71                                cmp     al,71h                  ; 'q' - Quit +273F:940B  75 0A                                jne     loc_1822                ; Jump if not equal +273F:940D  EB 08                                jmp     short loc_1822          ; (9417) +                                                                                ;* No entry point to code +273F:940F  B8 0000                              mov     ax,0 +273F:9412  B6 01                                mov     dh,1 +273F:9414  E8 AB8D                              call    display_message         ; (3FA4) +273F:9417                       loc_1822: +273F:9417  3C C8                                cmp     al, 0C8h                ; Up arrow? +273F:9419  75 07                                jne     loc_1823                ; Jump if not equal +273F:941B  33 C9                                xor     cx, cx +273F:941D  BA FFFE                              mov     dx, 0FFFEh +273F:9420  EB 7C                                jmp     short loc_1834           +273F:9422                       loc_1823: +273F:9422  3C D0                                cmp     al,0D0h                 ; Down arrow? +273F:9424  75 07                                jne     loc_1824                ; Jump if not equal +273F:9426  33 C9                                xor     cx,cx +273F:9428  BA 0002                              mov     dx,2 +273F:942B  EB 71                                jmp     short loc_1834 +273F:942D                       loc_1824: +273F:942D  3C CB                                cmp     al,0CBh                 ; Left arrow? +273F:942F  75 07                                jne     loc_1825                ; Jump if not equal +273F:9431  B9 FFFC                              mov     cx,0FFFCh +273F:9434  33 D2                                xor     dx,dx +273F:9436  EB 66                                jmp     short loc_1834 +273F:9438                       loc_1825: +273F:9438  3C CD                                cmp     al,0CDh                 ; Right arrow? +273F:943A  75 07                                jne     loc_1826                ; Jump if not equal +273F:943C  B9 0004                              mov     cx,4 +273F:943F  33 D2                                xor     dx,dx +273F:9441  EB 5B                                jmp     short loc_1834 +273F:9443                       loc_1826: +273F:9443  3C C9                                cmp     al,0C9h +273F:9445  75 09                                jne     loc_1827                ; Jump if not equal +273F:9447  8B 0E 11D1                           mov     cx, mouse_x +273F:944B  BA 000A                              mov     dx,0Ah +273F:944E  EB 74                                jmp     short loc_1837          ; (94C4) +273F:9450                       loc_1827:                                       ;  xref 273F:9445 +273F:9450  3C D1                                cmp     al,0D1h +273F:9452  75 09                                jne     loc_1828                ; Jump if not equal +273F:9454  8B 0E 11D1                           mov     cx, mouse_x +273F:9458  BA 00BE                              mov     dx,0BEh +273F:945B  EB 67                                jmp     short loc_1837          ; (94C4) +273F:945D                       loc_1828:                                       ;  xref 273F:9452 +273F:945D  3C C7                                cmp     al,0C7h +273F:945F  75 09                                jne     loc_1829                ; Jump if not equal +273F:9461  B9 0008                              mov     cx,8 +273F:9464  8B 16 11D3                           mov     dx, mouse_y +273F:9468  EB 5A                                jmp     short loc_1837          ; (94C4) +273F:946A                       loc_1829:                                       ;  xref 273F:945F +273F:946A  3C CF                                cmp     al,0CFh +273F:946C  75 09                                jne     loc_1830                ; Jump if not equal +273F:946E  B9 0138                              mov     cx,138h +273F:9471  8B 16 11D3                           mov     dx, mouse_y +273F:9475  EB 4D                                jmp     short loc_1837          ; (94C4) +273F:9477                       loc_1830:                                       ;  xref 273F:946C +273F:9477  3C 20                                cmp     al,20h                  ; ' ' +273F:9479  75 0D                                jne     loc_1832                ; Jump if not equal +273F:947B                       loc_1831:                                       ;  xref 273F:948A +273F:947B  8B 0E 11D1                           mov     cx, mouse_x +273F:947F  8B 16 11D3                           mov     dx, mouse_y +273F:9483  BB 0001                              mov     bx,1 +273F:9486  EB 3E                                jmp     short loc_1838          ; (94C6) +273F:9488                       loc_1832:                                       ;  xref 273F:9479 +273F:9488  3C 1B                                cmp     al,1Bh +273F:948A  74 EF                                je      loc_1831                ; Jump if equal +273F:948C  3C 0D                                cmp     al,0Dh +273F:948E  75 0D                                jne     loc_ret_1833            ; Jump if not equal +273F:9490  8B 0E 11D1                           mov     cx, mouse_x +273F:9494  8B 16 11D3                           mov     dx, mouse_y +273F:9498  BB 0002                              mov     bx,2 +273F:949B  EB 29                                jmp     short loc_1838          ; (94C6) + +273F:949D                       loc_ret_1833:                                   ;  xref 273F:948E +273F:949D  C3                                   retn +273F:949E                       loc_1834:                                       ;  xref 273F:9420, 942B, 9436, 9441 +273F:949E  F7 06 55A1 0003                      test    data_836,3              ; (31E4:55A1=0) +273F:94A4  74 0E                                jz      loc_1835                ; Jump if zero +273F:94A6  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:94A8  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:94AA  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:94AC  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:94AE  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:94B0  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:94B2  D1 E2                                shl     dx,1                    ; Shift w/zeros fill +273F:94B4                       loc_1835:                                       ;  xref 273F:94A4 +273F:94B4  03 0E 11D1                           add     cx, mouse_x +273F:94B8  79 02                                jns     loc_1836                ; Jump if not sign +273F:94BA  33 C9                                xor     cx,cx                   ; Zero register +273F:94BC                       loc_1836:                                       ;  xref 273F:94B8 +273F:94BC  03 16 11D3                           add     dx, mouse_y +273F:94C0  79 02                                jns     loc_1837                ; Jump if not sign +273F:94C2  33 D2                                xor     dx,dx                   ; Zero register +273F:94C4                       loc_1837:                                       ;  xref 273F:944E, 945B, 9468, 9475 +                                                                                ;            94C0 +273F:94C4  33 DB                                xor     bx,bx                   ; Zero register +273F:94C6                       loc_1838:                                       ;  xref 273F:9486, 949B +273F:94C6  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:94C8  0E E8 8A1C                           callf   mouse_handler           ; (1EE8) +273F:94CC  83 3E 11D3 08                        cmp     mouse_y, 8 +273F:94D1  72 05                                jb      loc_1840                ; Jump if below +273F:94D3  C6 06 11D5 00                        mov     mouse_buttons, 0 +273F:94D8                       loc_1840:                                       ;  xref 273F:94D1 +273F:94D8  E9 FEED                              jmp     loc_1816                ; (93C8) +                       room_check_keypresses    endp + + +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ +                                ; +                                ;                       External Entry Point +                                ; +                                ;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ + +273F:94DB                    keyboard_handler   proc    far                     ;  xref 273F:0703 +273F:94DB  9C                                   pushf                           ; Push flags +                                                assume  ds:seg_code +273F:94DC  2E: FF 1E 04AE                       call    dword ptr cs:[old_kbd_int_proc] +273F:94E1  50                                   push    ax +273F:94E2  53                                   push    bx +273F:94E3  51                                   push    cx +273F:94E4  52                                   push    dx +273F:94E5  56                                   push    si +273F:94E6  57                                   push    di +273F:94E7  55                                   push    bp +273F:94E8  1E                                   push    ds +273F:94E9  06                                   push    es +273F:94EA  9C                                   pushf                           ; Push flags +273F:94EB  B8 31E4                              mov     ax,data_seg +273F:94EE  8E D8                                mov     ds,ax +273F:94F0  33 C0                                xor     ax,ax                   ; Zero register +273F:94F2  8E C0                                mov     es,ax +273F:94F4  26: A1 0417                          mov     ax,es:keybd_flags_1_    ; (0000:0417=0) +                                                assume  ds:data_seg +273F:94F8  A3 55A1                              mov     data_836,ax             ; (31E4:55A1=0) +273F:94FB  C6 06 55A0 01                        mov     byte ptr data_835,1     ; (31E4:55A0=0) +273F:9500  C7 06 F010 0000                      mov     timer_ticks, 0          ; (31E4:F010=0) +273F:9506  80 3E 1854 04                        cmp     cp_num_digits, 4 +273F:950B  72 08                                jb      loc_1841                ; Jump if below +273F:950D  C6 06 1854 01                        mov     cp_num_digits, 1 +273F:9512  E8 01A8                              call    sub_236                 ; (96BD) +273F:9515                       loc_1841:                                       ;  xref 273F:950B +273F:9515  9D                                   popf                            ; Pop flags +273F:9516  07                                   pop     es +273F:9517  1F                                   pop     ds +273F:9518  5D                                   pop     bp +273F:9519  5F                                   pop     di +273F:951A  5E                                   pop     si +273F:951B  5A                                   pop     dx +273F:951C  59                                   pop     cx +273F:951D  5B                                   pop     bx +273F:951E  58                                   pop     ax +273F:951F  CF                                   iret                            ; Interrupt return +                             keyboard_handler   endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1FA1, 3B84, 3B92, 3BAF, 6A79, 6D66, 9247 +                                ;                             93C8, 9D7B, AA0D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9520                 check_keypress        proc    near +273F:9520  B4 06                                mov     ah,6 +273F:9522  B2 FF                                mov     dl,0FFh +273F:9524  CD 21                                int     21h                     ; DOS Services  ah=function 06h +                                                                                ;  special char i/o, dl=subfunc +273F:9526  74 0D                                jz      loc_ret_1842            ; Jump if zero +273F:9528  0A C0                                or      al,al                   ; Zero ? +273F:952A  75 09                                jnz     loc_ret_1842            ; Jump if not zero +273F:952C  B4 06                                mov     ah,6 +273F:952E  B2 FF                                mov     dl,0FFh +273F:9530  CD 21                                int     21h                     ; DOS Services  ah=function 06h +                                                                                ;  special char i/o, dl=subfunc +273F:9532  0C 80                                or      al,80h +273F:9534  C3                                   retn + +273F:9535                       loc_ret_1842:                                   ;  xref 273F:9526, 952A +273F:9535  C3                                   retn +                          check_keypress        endp + +273F:9536  48                   data_419        db      48h                     ;  xref 273F:95B5 +273F:9537  95 E2 95 4F 95 F4                    db       95h,0E2h, 95h, 4Fh, 95h,0F4h +273F:953D  95 63 95 13 96 71                    db       95h, 63h, 95h, 13h, 96h, 71h +273F:9543  95 2C 96 00 00                       db       95h, 2Ch, 96h, 00h, 00h +273F:9548  3C 43 44 48 4E 3C                    db      '<CDHN<', 0 +273F:954E  00 +273F:954F  47 40 4F 4E 42 4A                    db      'G@ONBJ=<>FOJOC@RJH=', 0 +273F:9555  3D 3C 3E 46 4F 4A +273F:955B  4F 43 40 52 4A 48 +273F:9561  3D 00 +273F:9563  46 44 47 47 4F 43                    db      'FDGGOC@AP>F@M', 0 +273F:9569  40 41 50 3E 46 40 +273F:956F  4D 00 +273F:9571  40 3C 4E 40 42 4A                    db      '@<N@BJ?G@OOCDNRJMF' +273F:9577  3F 47 40 4F 4F 43 +273F:957D  44 4E 52 4A 4D 46 +273F:9583  00                                   db      0 +273F:9584  0000                 data_421        dw      0                       ;  xref 273F:958A, 959F, 95AE, 95D2 +273F:9586  0000                 data_422        dw      0                       ;  xref 273F:95A8, 95DB + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:93CD, 9D80 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9588                       sub_233         proc    near +273F:9588  2C 25                                sub     al,25h                  ; '%' +273F:958A  2E: 8B 1E 9584                       mov     bx,cs:data_421          ; (273F:9584=0) +273F:958F  0B DB                                or      bx,bx                   ; Zero ? +273F:9591  74 1B                                jz      loc_1844                ; Jump if zero +273F:9593  2E: 3A 07                            cmp     al,cs:[bx] +273F:9596  75 16                                jne     loc_1844                ; Jump if not equal +273F:9598  2E: F6 47 01 FF                      test    byte ptr cs:[bx+1],0FFh +273F:959D  74 09                                jz      loc_1843                ; Jump if zero +273F:959F  2E: 83 06 9584 01                    add     cs:data_421,1           ; (273F:9584=0) +273F:95A5  33 C0                                xor     ax,ax                   ; Zero register +273F:95A7  C3                                   retn +273F:95A8                       loc_1843:                                       ;  xref 273F:959D +273F:95A8  2E: A1 9586                          mov     ax,cs:data_422          ; (273F:9586=0) +273F:95AC  FF E0                                jmp     ax                      ;*Register jump +273F:95AE                       loc_1844:                                       ;  xref 273F:9591, 9596 +273F:95AE  2E: C7 06 9584 0000                  mov     cs:data_421,0           ; (273F:9584=0) +273F:95B5 úBE 9536                              mov     si,offset data_419      ; (273F:9536=48h) +273F:95B8                       loc_1845:                                       ;  xref 273F:95C7 +273F:95B8 ú2E: 8B 1C                            mov     bx,cs:[si] +273F:95BB  0B DB                                or      bx,bx                   ; Zero ? +273F:95BD  74 0A                                jz      loc_1846                ; Jump if zero +273F:95BF  2E: 3A 07                            cmp     al,cs:[bx] +273F:95C2  74 0B                                je      loc_1847                ; Jump if equal +273F:95C4  83 C6 04                             add     si,4 +273F:95C7  EB EF                                jmp     short loc_1845          ; (95B8) +273F:95C9                       loc_1846:                                       ;  xref 273F:95BD +273F:95C9  04 25                                add     al,25h                  ; '%' +273F:95CB  80 CC 01                             or      ah,1 +273F:95CE  C3                                   retn +273F:95CF                       loc_1847:                                       ;  xref 273F:95C2 +273F:95CF  83 C3 01                             add     bx,1 +273F:95D2  2E: 89 1E 9584                       mov     cs:data_421,bx          ; (273F:9584=0) +273F:95D7  2E: 8B 44 02                         mov     ax,cs:[si+2] +273F:95DB  2E: A3 9586                          mov     cs:data_422,ax          ; (273F:9586=0) +273F:95DF  33 C0                                xor     ax,ax                   ; Zero register +273F:95E1  C3                                   retn +                                sub_233         endp + +                                                                                ;* No entry point to code +273F:95E2  8B 1E 6CE8                           mov     bx,word ptr ds:[6CE8h]  ; (273F:6CE8=2507h) +273F:95E6  C7 47 F5 0004                        mov     word ptr [bx-0Bh],4 +273F:95EB  8B 47 D9                             mov     ax,[bx-27h] +273F:95EE  89 47 D7                             mov     [bx-29h],ax +273F:95F1  33 C0                                xor     ax,ax                   ; Zero register +273F:95F3  C3                                   retn +                                                                                ;* No entry point to code +273F:95F4  B8 0083                              mov     ax,83h +273F:95F7  E8 A83A                              call    sequence_execute +273F:95FA  E8 003C                              call    sub_234                 ; (9639) +273F:95FD  E8 0072                              call    switch_goewin_character +273F:9600  C7 06 BA17 03E8                      mov     current_hotspot, PLAYER_HOTSPOT_ID +273F:9606  BA 0026                              mov     dx, 26h +273F:9609  B9 0118                              mov     cx, 118h +273F:960C  BB 0118                              mov     bx, 118h +273F:960F  E8 ACD7                              call    character_change_room +273F:9612  C3                                   retn +                                                                                ;* No entry point to code +273F:9613  C7 06 BA99 0001                      mov     word ptr ds:data_489e,1 ; (273F:BA99=0) +273F:9619  C7 06 BA17 03E8                      mov     current_hotspot, PLAYER_HOTSPOT_ID +273F:961F  BA 0006                              mov     dx, 6 +273F:9622  B9 0104                              mov     cx, 104h +273F:9625  BB 00C8                              mov     bx, 0C8h +273F:9628  E8 ACBE                              call    character_change_room +273F:962B  C3                                   retn +                                                                                ;* No entry point to code +273F:962C  B8 0083                              mov     ax,83h +273F:962F  E8 A802                              call    sequence_execute +273F:9632  B8 2911                              mov     ax,2911h +273F:9635  E8 A7FC                              call    sequence_execute +273F:9638  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:95FA +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9639                       sub_234         proc    near +273F:9639  C7 06 70BF 001D                      mov     word ptr ds:[70BFh],1Dh ; (273F:70BF=0FF98h) +273F:963F  C7 06 711F 001D                      mov     word ptr ds:[711Fh],1Dh ; (273F:711F=5660h) +273F:9645  C7 06 70C6 0106                      mov     word ptr ds:[70C6h],106h ; (273F:70C6=0E899h) +273F:964B  C7 06 70C8 00E1                      mov     word ptr ds:[70C8h],0E1h ; (273F:70C8=9A34h) +273F:9651  8B 1E 70C4                           mov     bx,word ptr ds:[70C4h]  ; (273F:70C4=20E8h) +273F:9655  0B DB                                or      bx,bx                   ; Zero ? +273F:9657  75 0A                                jnz     loc_1848                ; Jump if not zero +273F:9659  BB 03E9                              mov     bx,3E9h +273F:965C  E8 7667                              call    animation_load_entry +273F:965F  8B 1E 70C4                           mov     bx,word ptr ds:[70C4h]  ; (273F:70C4=20E8h) +273F:9663                       loc_1848:                                       ;  xref 273F:9657 +273F:9663  C7 07 0106                           mov     word ptr [bx],106h +273F:9667  C7 47 02 00E1                        mov     word ptr [bx+2],0E1h +273F:966C  C7 47 0E 001D                        mov     word ptr [bx+0Eh],1Dh +273F:9671  C3                                   retn +                                sub_234         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:95FD +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                   switch_goewin_character      proc    near +273F:9672 úBE 7D21                              mov     si, offset goewin_hotspot_rec +273F:9675  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:9678  0B FF                                or      di, di +273F:967A  74 03                                jz      loc_1849                ; Skip if not an active anim +273F:967C  E8 7BF3                              call    animation_unload        ; Unload animation +273F:967F                       loc_1849: +273F:967F  C7 44 17 4F82                        mov     word ptr [si+HS_TICK_PROC], 4F82h +273F:9684  C7 44 21 5D28                        mov     word ptr [si+HS_PIXEL_OFFSET], 5D28h +273F:9689  81 0C 0800                           or      word ptr [si+HS_ACTIONS], 800h +273F:968D  BB 03EF                              mov     bx, 3EFh +273F:9690  E8 7633                              call    animation_load_entry +273F:9693 úBE 7D21                              mov     si, offset goewin_hotspot_rec +273F:9696  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:9699  C7 44 06 0026                        mov     word ptr [si+HS_ROOM_NUM], 38 +273F:969E  C7 45 0E 0026                        mov     word ptr [di+ANIM_ROOM_NUM], 38 +273F:96A3  C7 44 17 7C24                        mov     word ptr [si+HS_TICK_PROC], 7C24h +273F:96A8  C7 45 11 7C24                        mov     word ptr [di+ANIM_TICK_PROC], 7C24h +273F:96AD  C7 44 66 0026                        mov     word ptr [si+HS_FIRST_ACTION_OFFSET+CURRENT_ACTION_ROOM_NUM], 38 +273F:96B2  C7 44 64 4EBB                        mov     word ptr [si+HS_FIRST_ACTION_OFFSET+CURRENT_ACTION_SUPPORT_TABLE], 4EBBh +273F:96B7  C7 44 61 0000                        mov     word ptr [si+HS_ACTION_OFFSET],0 +273F:96BC  C3                                   retn +                   switch_goewin_character      endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:9512 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:96BD                       sub_236         proc    near +273F:96BD  8B EC                                mov     bp,sp +273F:96BF  8C C8                                mov     ax,cs +273F:96C1                       loc_1850:                                       ;  xref 273F:96DE +273F:96C1  81 7E 00 3BFF                        cmp     word ptr [bp],3BFFh +273F:96C6  72 13                                jb      loc_1851                ; Jump if below +273F:96C8  81 7E 00 3C13                        cmp     word ptr [bp],3C13h +273F:96CD  73 0C                                jae     loc_1851                ; Jump if above or = +273F:96CF  39 46 02                             cmp     [bp+2],ax +273F:96D2  75 07                                jne     loc_1851                ; Jump if not equal +273F:96D4  81 7E 06 3F8A                        cmp     word ptr [bp+6],3F8Ah +273F:96D9  74 0C                                je      loc_1852                ; Jump if equal +273F:96DB                       loc_1851:                                       ;  xref 273F:96C6, 96CD, 96D2 +273F:96DB  83 C5 02                             add     bp,2 +273F:96DE  73 E1                                jnc     loc_1850                ; Jump if carry=0 +273F:96E0  C7 06 1856 96FA                      mov     cp_proc, offset sub_237 +273F:96E6  C3                                   retn +273F:96E7                       loc_1852:                                       ;  xref 273F:96D9 +273F:96E7  55                                   push    bp +273F:96E8  E8 000F                              call    sub_237                 ; (96FA) +273F:96EB  5D                                   pop     bp +273F:96EC  72 06                                jc      loc_1853                ; Jump if carry Set +273F:96EE  C7 46 00 3C53                        mov     word ptr [bp],3C53h +273F:96F3  C3                                   retn +273F:96F4                       loc_1853:                                       ;  xref 273F:96EC +273F:96F4  C7 46 00 3C13                        mov     word ptr [bp],3C13h +273F:96F9  C3                                   retn +                                sub_236         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:96E8 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:96FA                       sub_237         proc    near +273F:96FA  A1 B156                              mov     ax,ds:data_449e         ; (273F:B156=0) +273F:96FD  33 D2                                xor     dx,dx                   ; Zero register +273F:96FF  F7 36 1837                           div     word ptr ds:[1837h]     ; (273F:1837=374h) ax,dxrem=dx:ax/data +273F:9703  8B F8                                mov     di,ax +273F:9705  A1 B1D1                              mov     ax,ds:data_453e         ; (273F:B1D1=0) +273F:9708  33 D2                                xor     dx,dx                   ; Zero register +273F:970A  F7 36 1849                           div     word ptr ds:[1849h]     ; (273F:1849=7465h) ax,dxrem=dx:ax/dat +273F:970E  B9 000A                              mov     cx,0Ah +273F:9711  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:9713  8B E8                                mov     bp,ax +273F:9715  A1 B1FA                              mov     ax,ds:data_454e         ; (273F:B1FA=0) +273F:9718  33 D2                                xor     dx,dx                   ; Zero register +273F:971A  F7 36 1849                           div     word ptr ds:[1849h]     ; (273F:1849=7465h) ax,dxrem=dx:ax/dat +273F:971E  03 C5                                add     ax,bp +273F:9720  3A 85 55A3                           cmp     al,byte ptr ds:[55A3h][di] ; (273F:55A3=0Dh) +273F:9724  75 34                                jne     loc_1854                ; Jump if not equal +273F:9726  A1 B17F                              mov     ax,ds:data_452e         ; (273F:B17F=29h) +273F:9729  33 D2                                xor     dx,dx                   ; Zero register +273F:972B  F7 36 1837                           div     word ptr ds:[1837h]     ; (273F:1837=374h) ax,dxrem=dx:ax/data +273F:972F  8B F8                                mov     di,ax +273F:9731  A1 B223                              mov     ax,ds:data_455e         ; (273F:B223=0) +273F:9734  33 D2                                xor     dx,dx                   ; Zero register +273F:9736  F7 36 1849                           div     word ptr ds:[1849h]     ; (273F:1849=7465h) ax,dxrem=dx:ax/dat +273F:973A  B9 000A                              mov     cx,0Ah +273F:973D  F7 E1                                mul     cx                      ; dx:ax = reg * ax +273F:973F  8B E8                                mov     bp,ax +273F:9741  A1 B24C                              mov     ax,ds:data_456e         ; (273F:B24C=0) +273F:9744  33 D2                                xor     dx,dx                   ; Zero register +273F:9746  F7 36 1849                           div     word ptr ds:[1849h]     ; (273F:1849=7465h) ax,dxrem=dx:ax/dat +273F:974A  03 C5                                add     ax,bp +273F:974C  3A 85 55A3                           cmp     al,byte ptr ds:[55A3h][di] ; (273F:55A3=0Dh) +273F:9750  75 08                                jne     loc_1854                ; Jump if not equal +273F:9752  C7 06 86DF 001C                      mov     word ptr ds:[86DFh],1Ch ; (273F:86DF=6C7h) +273F:9758  F8                                   clc                             ; Clear carry flag +273F:9759  C3                                   retn +273F:975A                       loc_1854:                                       ;  xref 273F:9724, 9750 +273F:975A  F9                                   stc                             ; Set carry flag +273F:975B  C3                                   retn +                                sub_237         endp + +273F:975C                       loc_1855:                                       ;  xref 273F:00F2, 9780 +273F:975C úE8 060B                              call    sub_244                 ; (9D6A) +273F:975F  E8 058B                              call    sub_243                 ; (9CED) +273F:9762  E8 AA31                              call    animation_tick +273F:9765  FF 16 0752                           call    [show_compressed_screen_proc] +273F:9769  E8 7DA2                              call    room_add_animations +273F:976C  E8 B0EB                              call    sequence_delay_check +273F:976F  FF 16 0744                           call    word ptr [show_screen_proc] +273F:9773  83 3E 6CE4 2A                        cmp     word ptr ds:[6CE4h],2Ah ; (273F:6CE4=0C18Bh) +273F:9778  74 08                                je      loc_1856                ; Jump if equal +273F:977A  B8 0004                              mov     ax,4 +273F:977D  E8 B269                              call    sleep                   ; (49E9) +273F:9780  EB DA                                jmp     short loc_1855          ; (975C) +273F:9782                       loc_1856:                                       ;  xref 273F:9778 +273F:9782  E9 6970                              jmp     loc_13                  ; (00F5) + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                               seq_method_17    proc    near +273F:9785  E8 002D                              call    sub_238                 ; (97B5) +273F:9788  C7 44 F9 975A                        mov     word ptr [si-7],975Ah +273F:978D  C7 44 D3 0445                        mov     word ptr [si-2Dh],445h +273F:9792  C7 44 0D 019A                        mov     word ptr [si+0Dh],19Ah +273F:9797  C7 44 DB 019A                        mov     word ptr [si-25h],19Ah +273F:979C  C7 05 019A                           mov     word ptr [di],19Ah +273F:97A0  C7 44 0F 0108                        mov     word ptr [si+0Fh],108h +273F:97A5  C7 44 DD 0108                        mov     word ptr [si-23h],108h +273F:97AA  C7 45 02 0108                        mov     word ptr [di+2],108h +273F:97AF  C6 06 B176 60                        mov     slot0_col_offset, 60h   ; Player's colour offset +273F:97B4  C3                                   retn +                               seq_method_17    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:9785 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:97B5                       sub_238         proc    near +273F:97B5  B8 0040                              mov     ax,40h +273F:97B8  8E C0                                mov     es,ax +273F:97BA  26: 80 0E 0017 20                    or      byte ptr es:keybd_flags_1,20h ; (0040:0017=0) ' ' +273F:97C0 úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:97C3  8B 7C 0B                             mov     di,[si+0Bh] +273F:97C6  C6 45 1D 00                          mov     byte ptr [di+1Dh],0 +273F:97CA  C6 45 28 10                          mov     byte ptr [di+28h],10h +273F:97CE  C7 45 11 98B6                        mov     word ptr [di+11h],98B6h +273F:97D3  C7 44 F5 0000                        mov     word ptr [si-0Bh],0 +273F:97D8  C7 44 21 55F6                        mov     word ptr [si+21h],55F6h +273F:97DD  C7 44 11 0030                        mov     word ptr [si+11h],30h +273F:97E2  C7 45 04 0030                        mov     word ptr [di+4],30h +273F:97E7  C7 44 13 0035                        mov     word ptr [si+13h],35h +273F:97EC  C7 45 06 0035                        mov     word ptr [di+6],35h +273F:97F1  C7 44 0D 0186                        mov     word ptr [si+0Dh],186h +273F:97F6  C7 44 DB 0186                        mov     word ptr [si-25h],186h +273F:97FB  C7 05 0186                           mov     word ptr [di],186h +273F:97FF  C7 44 0F 00DE                        mov     word ptr [si+0Fh],0DEh +273F:9804  C7 44 DD 00DE                        mov     word ptr [si-23h],0DEh +273F:9809  C7 45 02 00DE                        mov     word ptr [di+2],0DEh +273F:980E  C7 44 F7 0DC8                        mov     word ptr [si-9],0DC8h +273F:9813  C7 44 F9 96AD                        mov     word ptr [si-7],96ADh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 360 + +273F:9818  C3                                   retn +                                sub_238         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:98BE, 9A46, 9A98 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9819                       sub_239         proc    near +273F:9819  8B 44 DB                             mov     ax,[si-25h] +273F:981C  8B 4F DB                             mov     cx,[bx-25h] +273F:981F  3B C1                                cmp     ax,cx +273F:9821  73 01                                jae     loc_1857                ; Jump if above or = +273F:9823  91                                   xchg    cx,ax +273F:9824                       loc_1857:                                       ;  xref 273F:9821 +273F:9824  2B C1                                sub     ax,cx +273F:9826  25 FFF8                              and     ax,0FFF8h +273F:9829  89 44 EF                             mov     [si-11h],ax +273F:982C  C3                                   retn +                                sub_239         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             sub_unknown1       proc    near +273F:982D  B8 2273                              mov     ax, 2273h +273F:9830  8E C0                                mov     es, ax +273F:9832  8B 5C F9                             mov     bx, [si-7] +273F:9835  E8 E1 FF                             call    sub_239 +273F:9838  8B 5C F7                             mov     bx, [si-9] +273F:983B  0B DB                                or      bx, bx +273F:983D  75 3B                                jnz     loc_1858_2 +273F:983F  83 7C EF 20                          cmp     word ptr [si-11], 20h +273F:9843  75 3F                                jnz     loc_1859_2 +273F:9845  8B 44 F5                             mov     ax, [si-0Bh] +273F:9848  F7 64 E5                             mul     word ptr [SI-1Bh] +273F:984B  03 44 EB                             add     ax, [si-15h] +273F:984E  8B D8                                mov     bx, ax +273F:9850  A1 DC 6C                             mov     ax, [6CDCh] +273F:9853                       loc_1858:                                       ;  xref 273F:9860 +273F:9853  83 C3 04                             add     bx,4 +273F:9856  26: F7 07 FFFF                       test    word ptr es:[bx],0FFFFh +273F:985B  74 1F                                jz      loc_1859                ; Jump if zero +273F:985D  26: 3B 07                            cmp     ax,es:[bx] +273F:9860  75 F1                                jne     loc_1858                ; Jump if not equal +273F:9862  26: 8B 47 02                         mov     ax,es:[bx+2] +273F:9866  8B 5C E7                             mov     bx,[si-19h] +273F:9869  50                                   push    ax +273F:986A  E8 001F                              call    sub_240                 ; (988C) +273F:986D  5A                                   pop     dx +273F:986E  0B C0                                or      ax,ax                   ; Zero ? +273F:9870  74 0A                                jz      loc_1859                ; Jump if zero +273F:9872  3C FF                                cmp     al,0FFh +273F:9874  75 2F                                jne     loc_1860                ; Jump if not equal +273F:9876  8B C2                                mov     ax,dx +273F:9878  EB 2B                                jmp     short loc_1860          ; (98A5) +273F:987A                     loc_1858_2: +273F:987A  EB 66                                jmp     short loc_1863          ; (98E2) +273F:987C                       loc_1859:                                       ;  xref 273F:985B, 9870 +273F:987C  8B 5C E3                             mov     bx,[si-1Dh] +273F:987F  E8 000A                              call    sub_240                 ; (988C) +273F:9882  EB 21                                jmp     short loc_1860          ; (98A5) +273F:9884                     loc_1859_2:                                                                                ;* No entry point to code +273F:9884  8B 5C E9                             mov     bx,[si-17h] +273F:9887  E8 0002                              call    sub_240                 ; (988C) +273F:988A  EB 19                                jmp     short loc_1860          ; (98A5) +                             sub_unknown1       endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:986A, 987F, 9887 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:988C                       sub_240         proc    near +273F:988C  E8 ABDD                              call    random +273F:988F  BA 0020                              mov     dx,20h +273F:9892  F7 E2                                mul     dx                      ; dx:ax = reg * ax +273F:9894  8B 44 F5                             mov     ax,[si-0Bh] +273F:9897  B1 05                                mov     cl,5 +273F:9899  D3 E0                                shl     ax,cl                   ; Shift w/zeros fill +273F:989B  03 D8                                add     bx,ax +273F:989D  03 DA                                add     bx,dx +273F:989F  26: 8A 07                            mov     al,es:[bx] +273F:98A2  32 E4                                xor     ah,ah                   ; Zero register +273F:98A4  C3                                   retn +                                sub_240         endp + +273F:98A5                       loc_1860:                                       ;  xref 273F:9874, 9878, 9882, 988A +273F:98A5  89 44 ED                             mov     [si-13h],ax +273F:98A8  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:98AA  05 08B8                              add     ax,8B8h +273F:98AD  8B D8                                mov     bx,ax +273F:98AF  26: 8B 07                            mov     ax,es:[bx] +273F:98B2  89 44 F7                             mov     [si-9],ax + +273F:98B5                       loc_ret_1861:                                   ;  xref 273F:98D7 +273F:98B5  C3                                   retn +                                                                                ;* No entry point to code +273F:98B6  B8 435F                              mov     ax,seg_d +273F:98B9  8E C0                                mov     es,ax +273F:98BB  8B 5C F9                             mov     bx,[si-7] +273F:98BE  E8 FF58                              call    sub_239                 ; (9819) +273F:98C1  8B 5C F7                             mov     bx,[si-9] +273F:98C4  0B DB                                or      bx,bx                   ; Zero ? +273F:98C6  75 1A                                jnz     loc_1863                ; Jump if not zero +273F:98C8                       loc_1862:                                       ;  xref 273F:9A81 +273F:98C8 ú8B 44 F3                             mov     ax,[si-0Dh] +273F:98CB  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:98CD  05 0DAA                              add     ax, offset num_horiz_rects +273F:98D0  8B D8                                mov     bx,ax +273F:98D2  26: 8B 1F                            mov     bx,es:[bx] +273F:98D5  0B DB                                or      bx,bx                   ; Zero ? +273F:98D7  74 DC                                jz      loc_ret_1861            ; Jump if zero +273F:98D9  8B 44 F3                             mov     ax,[si-0Dh] +273F:98DC  89 44 ED                             mov     [si-13h],ax +273F:98DF  89 5C F7                             mov     [si-9],bx +273F:98E2                       loc_1863:                                       ;  xref 273F:987A, 98C6, 9958, 9B06 +                                                                                ;            9B21, 9B48, 9B5A, 9B62 +                                                                                ;            9B6E, 9B99, 9BFF, 9C03 +                                                                                ;            9C49, 9C53, 9C62, 9C76 +                                                                                ;            9CDE +273F:98E2 ú26: 8B 07                            mov     ax,es:[bx] +273F:98E5  83 C3 02                             add     bx,2 +273F:98E8  F6 C4 80                             test    ah,80h +273F:98EB  74 6D                                jz      loc_1864                ; Jump if zero +273F:98ED  3D FFFA                              cmp     ax,0FFFAh +273F:98F0  74 6A                                je      loc_1865                ; Jump if equal +273F:98F2  3D FFF9                              cmp     ax,0FFF9h +273F:98F5  74 68                                je      loc_1866                ; Jump if equal +273F:98F7  3D FFEB                              cmp     ax,0FFEBh +273F:98FA  74 66                                je      loc_1867                ; Jump if equal +273F:98FC  3D FFFB                              cmp     ax,0FFFBh +273F:98FF  74 64                                je      loc_1868                ; Jump if equal +273F:9901  3D FFF8                              cmp     ax,0FFF8h +273F:9904  74 62                                je      loc_1869                ; Jump if equal +273F:9906  3D FFFF                              cmp     ax,0FFFFh +273F:9909  74 60                                je      loc_1870                ; Jump if equal +273F:990B  3D FFFE                              cmp     ax,0FFFEh +273F:990E  74 5E                                je      loc_1871                ; Jump if equal +273F:9910  3D FFF7                              cmp     ax,0FFF7h +273F:9913  74 5C                                je      loc_1872                ; Jump if equal +273F:9915  3D FFF6                              cmp     ax,0FFF6h +273F:9918  74 5A                                je      loc_1873                ; Jump if equal +273F:991A  3D FFF4                              cmp     ax,0FFF4h +273F:991D  74 58                                je      loc_1874                ; Jump if equal +273F:991F  3D FFF2                              cmp     ax,0FFF2h +273F:9922  74 56                                je      loc_1875                ; Jump if equal +273F:9924  3D FFF1                              cmp     ax,0FFF1h +273F:9927  74 54                                je      loc_1876                ; Jump if equal +273F:9929  3D FFF0                              cmp     ax,0FFF0h +273F:992C  74 52                                je      loc_1877                ; Jump if equal +273F:992E  3D FFEF                              cmp     ax,0FFEFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 363 + +273F:9931  74 50                                je      loc_1878                ; Jump if equal +273F:9933  3D FFEE                              cmp     ax,0FFEEh +273F:9936  74 4E                                je      loc_1879                ; Jump if equal +273F:9938  3D FFED                              cmp     ax,0FFEDh +273F:993B  74 4C                                je      loc_1880                ; Jump if equal +273F:993D  3D FFEC                              cmp     ax,0FFECh +273F:9940  74 4A                                je      loc_1881                ; Jump if equal +273F:9942  3D FFEA                              cmp     ax,0FFEAh +273F:9945  74 00                                jz      $+2                     ; delay for I/O +273F:9947  53                                   push    bx +273F:9948  56                                   push    si +273F:9949  57                                   push    di +273F:994A  06                                   push    es +273F:994B  26: 8B 1F                            mov     bx,es:[bx] +273F:994E  E8 06AC                              call    play_sound                 ; (9FFD) +273F:9951  07                                   pop     es +273F:9952  5F                                   pop     di +273F:9953  5E                                   pop     si +273F:9954  5B                                   pop     bx +273F:9955  83 C3 02                             add     bx,2 +273F:9958  EB 88                                jmp     short loc_1863          ; (98E2) +273F:995A                       loc_1864:                                       ;  xref 273F:98EB +273F:995A  EB 33                                jmp     short loc_1882          ; (998F) +273F:995C                       loc_1865:                                       ;  xref 273F:98F0 +273F:995C  E9 00C3                              jmp     loc_1889                ; (9A22) +273F:995F                       loc_1866:                                       ;  xref 273F:98F5 +273F:995F  E9 0164                              jmp     loc_1897                ; (9AC6) +273F:9962                       loc_1867:                                       ;  xref 273F:98FA +273F:9962  E9 011F                              jmp     loc_1894                ; (9A84) +273F:9965                       loc_1868:                                       ;  xref 273F:98FF +273F:9965  E9 00A6                              jmp     loc_1887                ; (9A0E) +273F:9968                       loc_1869:                                       ;  xref 273F:9904 +273F:9968  E9 0198                              jmp     loc_1900                ; (9B03) +273F:996B                       loc_1870:                                       ;  xref 273F:9909 +273F:996B  E9 019B                              jmp     loc_1901                ; (9B09) +273F:996E                       loc_1871:                                       ;  xref 273F:990E +273F:996E  E9 01B3                              jmp     loc_1904                ; (9B24) +273F:9971                       loc_1872:                                       ;  xref 273F:9913 +273F:9971  E9 01C5                              jmp     loc_1905                ; (9B39) +273F:9974                       loc_1873:                                       ;  xref 273F:9918 +273F:9974  E9 01D4                              jmp     loc_1906                ; (9B4B) +273F:9977                       loc_1874:                                       ;  xref 273F:991D +273F:9977  E9 01E3                              jmp     loc_1907                ; (9B5D) +273F:997A                       loc_1875:                                       ;  xref 273F:9922 +273F:997A  E9 01E8                              jmp     loc_1908                ; (9B65) +273F:997D                       loc_1876:                                       ;  xref 273F:9927 +273F:997D  E9 01F1                              jmp     loc_1909                ; (9B71) +273F:9980                       loc_1877:                                       ;  xref 273F:992C +273F:9980  E9 0219                              jmp     loc_1911                ; (9B9C) +273F:9983                       loc_1878:                                       ;  xref 273F:9931 +273F:9983  E9 02D0                              jmp     loc_1916                ; (9C56) +273F:9986                       loc_1879:                                       ;  xref 273F:9936 +273F:9986  E9 02DC                              jmp     loc_1917                ; (9C65) +273F:9989                       loc_1880:                                       ;  xref 273F:993B +273F:9989  E9 0355                              jmp     loc_1920                ; (9CE1) +273F:998C                       loc_1881:                                       ;  xref 273F:9940 +273F:998C  E9 02EA                              jmp     loc_1918                ; (9C79) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 364 + +273F:998F                       loc_1882:                                       ;  xref 273F:995A +273F:998F  E8 0059                              call    sub_241                 ; (99EB) +273F:9992  26: 8B 07                            mov     ax,es:[bx] +273F:9995  03 44 0D                             add     ax,[si+0Dh] +273F:9998  3D 00A0                              cmp     ax,0A0h +273F:999B  73 05                                jae     loc_1883                ; Jump if above or = +273F:999D  B8 00A0                              mov     ax,0A0h +273F:99A0  EB 08                                jmp     short loc_1884          ; (99AA) +273F:99A2                       loc_1883:                                       ;  xref 273F:999B +273F:99A2  3D 0170                              cmp     ax,170h +273F:99A5  72 03                                jb      loc_1884                ; Jump if below +273F:99A7  B8 0170                              mov     ax,170h +273F:99AA                       loc_1884:                                       ;  xref 273F:99A0, 99A5 +273F:99AA  89 44 0D                             mov     [si+0Dh],ax +273F:99AD  89 05                                mov     [di],ax +273F:99AF  26: 8B 47 02                         mov     ax,es:[bx+2] +273F:99B3  01 44 0F                             add     [si+0Fh],ax +273F:99B6  01 45 02                             add     [di+2],ax +273F:99B9  8B 44 D3                             mov     ax,[si-2Dh] +273F:99BC  0B C0                                or      ax,ax                   ; Zero ? +273F:99BE  74 24                                jz      loc_1885                ; Jump if zero +273F:99C0  57                                   push    di +273F:99C1  56                                   push    si +273F:99C2  E8 7325                              call    get_room_resource_pointer2 +273F:99C5  8B 7C 0B                             mov     di,[si+0Bh] +273F:99C8  26: 8B 47 04                         mov     ax,es:[bx+4] +273F:99CC  E8 001C                              call    sub_241                 ; (99EB) +273F:99CF  5E                                   pop     si +273F:99D0  26: 8B 47 06                         mov     ax,es:[bx+6] +273F:99D4  03 44 0D                             add     ax,[si+0Dh] +273F:99D7  89 05                                mov     [di],ax +273F:99D9  26: 8B 47 08                         mov     ax,es:[bx+8] +273F:99DD  03 44 0F                             add     ax,[si+0Fh] +273F:99E0  89 45 02                             mov     [di+2],ax +273F:99E3  5F                                   pop     di +273F:99E4                       loc_1885:                                       ;  xref 273F:99BE +273F:99E4  83 C3 0A                             add     bx,0Ah +273F:99E7  89 5C F7                             mov     [si-9],bx +273F:99EA  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:998F, 99CC +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:99EB                       sub_241         proc    near +273F:99EB                       loc_1886:                                       ;  xref 273F:9A7E, 9AB4, 9AC0, 9B00 +273F:99EB ú53                                   push    bx +273F:99EC  8B 5C 21                             mov     bx,[si+21h] +273F:99EF  F7 67 07                             mul     word ptr [bx+7]         ; dx:ax = data * ax +273F:99F2  89 45 08                             mov     [di+8],ax +273F:99F5  5B                                   pop     bx +273F:99F6  C3                                   retn +                                sub_241         endp + + +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 365 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:9A5C, 9A84, 9AD9 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:99F7                       sub_242         proc    near +273F:99F7  56                                   push    si +273F:99F8  57                                   push    di +273F:99F9  8B 44 D3                             mov     ax,[si-2Dh] +273F:99FC  E8 72EB                              call    get_room_resource_pointer2 +273F:99FF  8B 7C 0B                             mov     di,[si+0Bh] +273F:9A02  C7 05 0060                           mov     word ptr [di],60h +273F:9A06  C7 45 02 0068                        mov     word ptr [di+2],68h +273F:9A0B  5F                                   pop     di +273F:9A0C  5E                                   pop     si +273F:9A0D  C3                                   retn +                                sub_242         endp + +273F:9A0E                       loc_1887:                                       ;  xref 273F:9965, 9A33, 9A5A, 9AC3 +273F:9A0E ú33 C0                                xor     ax,ax                   ; Zero register +273F:9A10  89 44 ED                             mov     [si-13h],ax +273F:9A13  89 44 F7                             mov     [si-9],ax +273F:9A16 ú81 FE 6CEF                           cmp     si, offset player_hotspot_rec +273F:9A1A  75 05                                jne     loc_ret_1888            ; Jump if not equal +273F:9A1C  C6 06 11D5 00                        mov     mouse_buttons, 0 + +273F:9A21                       loc_ret_1888:                                   ;  xref 273F:9A1A +273F:9A21  C3                                   retn +273F:9A22                       loc_1889:                                       ;  xref 273F:995C +273F:9A22  83 7C F3 05                          cmp     word ptr [si-0Dh],5 +273F:9A26  74 06                                je      loc_1890                ; Jump if equal +273F:9A28  83 7C F3 0A                          cmp     word ptr [si-0Dh],0Ah +273F:9A2C  75 53                                jne     loc_1893                ; Jump if not equal +273F:9A2E                       loc_1890:                                       ;  xref 273F:9A26 +273F:9A2E  81 7C 0D 00A0                        cmp     word ptr [si+0Dh],0A0h +273F:9A33  72 D9                                jb      loc_1887                ; Jump if below +273F:9A35  83 6C 0D 04                          sub     word ptr [si+0Dh],4 +273F:9A39  83 2D 04                             sub     word ptr [di],4 +273F:9A3C  8B 44 0D                             mov     ax,[si+0Dh] +273F:9A3F  89 44 DB                             mov     [si-25h],ax +273F:9A42  53                                   push    bx +273F:9A43  8B 5C F9                             mov     bx,[si-7] +273F:9A46  E8 FDD0                              call    sub_239                 ; (9819) +273F:9A49  5B                                   pop     bx +273F:9A4A  3D 0020                              cmp     ax,20h +273F:9A4D  73 0D                                jae     loc_1891                ; Jump if above or = +273F:9A4F  83 44 0D 04                          add     word ptr [si+0Dh],4 +273F:9A53  83 44 DB 04                          add     word ptr [si-25h],4 +273F:9A57  83 05 04                             add     word ptr [di],4 +273F:9A5A  EB B2                                jmp     short loc_1887          ; (9A0E) +273F:9A5C                       loc_1891:                                       ;  xref 273F:9A4D +273F:9A5C  E8 FF98                              call    sub_242                 ; (99F7) +273F:9A5F  8B 44 0D                             mov     ax,[si+0Dh] +273F:9A62  89 44 DB                             mov     [si-25h],ax +273F:9A65  8B 44 0F                             mov     ax,[si+0Fh] +273F:9A68  89 44 DD                             mov     [si-23h],ax +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 366 + +273F:9A6B  8B 44 F1                             mov     ax,[si-0Fh] +273F:9A6E  05 0001                              add     ax,1 +273F:9A71  3D 0008                              cmp     ax,8 +273F:9A74  75 02                                jne     loc_1892                ; Jump if not equal +273F:9A76  33 C0                                xor     ax,ax                   ; Zero register +273F:9A78                       loc_1892:                                       ;  xref 273F:9A74 +273F:9A78  89 44 F1                             mov     [si-0Fh],ax +273F:9A7B  89 5C F7                             mov     [si-9],bx +273F:9A7E  E9 FF6A                              jmp     loc_1886                ; (99EB) +273F:9A81                       loc_1893:                                       ;  xref 273F:9A2C, 9AD0 +273F:9A81  E9 FE44                              jmp     loc_1862                ; (98C8) +273F:9A84                       loc_1894:                                       ;  xref 273F:9962 +273F:9A84  E8 FF70                              call    sub_242                 ; (99F7) +273F:9A87  83 44 0D 04                          add     word ptr [si+0Dh],4 +273F:9A8B  83 05 04                             add     word ptr [di],4 +273F:9A8E  8B 44 0D                             mov     ax,[si+0Dh] +273F:9A91  89 44 DB                             mov     [si-25h],ax +273F:9A94  53                                   push    bx +273F:9A95  8B 5C F9                             mov     bx,[si-7] +273F:9A98  E8 FD7E                              call    sub_239                 ; (9819) +273F:9A9B  5B                                   pop     bx +273F:9A9C  3D 0020                              cmp     ax,20h +273F:9A9F  73 16                                jae     loc_1895                ; Jump if above or = +273F:9AA1  83 6C 0D 04                          sub     word ptr [si+0Dh],4 +273F:9AA5  83 2D 04                             sub     word ptr [di],4 +273F:9AA8  83 6C DB 04                          sub     word ptr [si-25h],4 +273F:9AAC  C7 44 F7 0000                        mov     word ptr [si-9],0 +273F:9AB1  B8 0008                              mov     ax,8 +273F:9AB4  E9 FF34                              jmp     loc_1886                ; (99EB) +273F:9AB7                       loc_1895:                                       ;  xref 273F:9A9F +273F:9AB7  26: 8B 07                            mov     ax,es:[bx] +273F:9ABA  83 C3 02                             add     bx,2 +273F:9ABD  89 5C F7                             mov     [si-9],bx +273F:9AC0  E9 FF28                              jmp     loc_1886                ; (99EB) Register jump +273F:9AC3                       loc_1896:                                       ;  xref 273F:9AD7 +273F:9AC3  E9 FF48                              jmp     loc_1887                ; (9A0E) +273F:9AC6                       loc_1897:                                       ;  xref 273F:995F +273F:9AC6  83 7C F3 09                          cmp     word ptr [si-0Dh],9 +273F:9ACA  74 06                                je      loc_1898                ; Jump if equal +273F:9ACC  83 7C F3 0E                          cmp     word ptr [si-0Dh],0Eh +273F:9AD0  75 AF                                jne     loc_1893                ; Jump if not equal +273F:9AD2                       loc_1898:                                       ;  xref 273F:9ACA +273F:9AD2  81 7C 0D 0170                        cmp     word ptr [si+0Dh],170h +273F:9AD7  73 EA                                jae     loc_1896                ; Jump if above or = +273F:9AD9  E8 FF1B                              call    sub_242                 ; (99F7) +273F:9ADC  83 44 0D 04                          add     word ptr [si+0Dh],4 +273F:9AE0  83 05 04                             add     word ptr [di],4 +273F:9AE3  8B 44 0D                             mov     ax,[si+0Dh] +273F:9AE6  89 44 DB                             mov     [si-25h],ax +273F:9AE9  8B 44 0F                             mov     ax,[si+0Fh] +273F:9AEC  89 44 DD                             mov     [si-23h],ax +273F:9AEF  8B 44 F1                             mov     ax,[si-0Fh] +273F:9AF2  2D 0001                              sub     ax,1 +273F:9AF5  73 03                                jnc     loc_1899                ; Jump if carry=0 +273F:9AF7  B8 0007                              mov     ax,7 +273F:9AFA                       loc_1899:                                       ;  xref 273F:9AF5 +273F:9AFA  89 44 F1                             mov     [si-0Fh],ax +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 367 + +273F:9AFD  89 5C F7                             mov     [si-9],bx +273F:9B00  E9 FEE8                              jmp     loc_1886                ; (99EB) +273F:9B03                       loc_1900:                                       ;  xref 273F:9968 +273F:9B03  26: 8B 1F                            mov     bx,es:[bx] +273F:9B06  E9 FDD9                              jmp     loc_1863                ; (98E2) +273F:9B09                       loc_1901:                                       ;  xref 273F:996B +273F:9B09  26: 8B 07                            mov     ax,es:[bx] +273F:9B0C  83 C3 02                             add     bx,2 +273F:9B0F  89 44 21                             mov     [si+21h],ax +273F:9B12                       loc_1902:                                       ;  xref 273F:9B37 +273F:9B12 ú53                                   push    bx +273F:9B13  8B D8                                mov     bx,ax +273F:9B15  8B 47 03                             mov     ax,[bx+3] +273F:9B18  5B                                   pop     bx +273F:9B19  89 45 0A                             mov     [di+0Ah],ax +273F:9B1C  C7 45 08 0000                        mov     word ptr [di+8],0 +273F:9B21                       loc_1903:                                       ;  xref 273F:9B42, 9B54, 9B85 +273F:9B21  E9 FDBE                              jmp     loc_1863                ; (98E2) +273F:9B24                       loc_1904:                                       ;  xref 273F:996E +273F:9B24  26: 8B 07                            mov     ax,es:[bx] +273F:9B27  83 C3 02                             add     bx,2 +273F:9B2A  D1 E0                                shl     ax,1                    ; Shift w/zeros fill +273F:9B2C  03 44 D1                             add     ax,[si-2Fh] +273F:9B2F  93                                   xchg    bx,ax +273F:9B30  26: 8B 1F                            mov     bx,es:[bx] +273F:9B33  89 5C 21                             mov     [si+21h],bx +273F:9B36  93                                   xchg    bx,ax +273F:9B37  EB D9                                jmp     short loc_1902          ; (9B12) +273F:9B39                       loc_1905:                                       ;  xref 273F:9971 +273F:9B39  26: 8B 07                            mov     ax,es:[bx] +273F:9B3C  83 C3 04                             add     bx,4 +273F:9B3F  3B 44 F3                             cmp     ax,[si-0Dh] +273F:9B42  75 DD                                jne     loc_1903                ; Jump if not equal +273F:9B44  26: 8B 5F FE                         mov     bx,es:[bx-2] +273F:9B48  E9 FD97                              jmp     loc_1863                ; (98E2) +273F:9B4B                       loc_1906:                                       ;  xref 273F:9974 +273F:9B4B  26: 8B 07                            mov     ax,es:[bx] +273F:9B4E  83 C3 04                             add     bx,4 +273F:9B51  3B 44 F3                             cmp     ax,[si-0Dh] +273F:9B54  74 CB                                je      loc_1903                ; Jump if equal +273F:9B56  26: 8B 5F FE                         mov     bx,es:[bx-2] +273F:9B5A  E9 FD85                              jmp     loc_1863                ; (98E2) +273F:9B5D                       loc_1907:                                       ;  xref 273F:9977 +273F:9B5D  C7 44 ED 0000                        mov     word ptr [si-13h],0 +273F:9B62  E9 FD7D                              jmp     loc_1863                ; (98E2) +273F:9B65                       loc_1908:                                       ;  xref 273F:997A +273F:9B65  26: 8B 07                            mov     ax,es:[bx] +273F:9B68  83 C3 02                             add     bx,2 +273F:9B6B  89 44 DF                             mov     [si-21h],ax +273F:9B6E  E9 FD71                              jmp     loc_1863                ; (98E2) +273F:9B71                       loc_1909:                                       ;  xref 273F:997D +273F:9B71  53                                   push    bx +273F:9B72  8B 5C F9                             mov     bx,[si-7] +273F:9B75  8B 57 DF                             mov     dx,[bx-21h] +273F:9B78  5B                                   pop     bx +273F:9B79  26: 8B 07                            mov     ax,es:[bx] +273F:9B7C  26: 8B 4F 02                         mov     cx,es:[bx+2] +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 368 + +273F:9B80  83 C3 04                             add     bx,4 +273F:9B83  3B C2                                cmp     ax,dx +273F:9B85  75 9A                                jne     loc_1903                ; Jump if not equal +273F:9B87  53                                   push    bx +273F:9B88  56                                   push    si +273F:9B89  57                                   push    di +273F:9B8A  51                                   push    cx +273F:9B8B  06                                   push    es +273F:9B8C  BB 002A                              mov     bx,2Ah +273F:9B8F  E8 046B                              call    play_sound                 ; (9FFD) +273F:9B92  07                                   pop     es +273F:9B93  59                                   pop     cx +273F:9B94  5F                                   pop     di +273F:9B95  5E                                   pop     si +273F:9B96  5B                                   pop     bx +273F:9B97  8B D9                                mov     bx,cx +273F:9B99                       loc_1910:                                       ;  xref 273F:9BA6 +273F:9B99  E9 FD46                              jmp     loc_1863                ; (98E2) +273F:9B9C                       loc_1911:                                       ;  xref 273F:9980 +273F:9B9C  26: 8B 07                            mov     ax,es:[bx] +273F:9B9F  83 C3 02                             add     bx,2 +273F:9BA2  83 7C EF 20                          cmp     word ptr [si-11h],20h +273F:9BA6  75 F1                                jne     loc_1910                ; Jump if not equal +273F:9BA8  81 7D 1B 03E8                        cmp     word ptr [di+1Bh], PLAYER_HOTSPOT_ID +273F:9BAD  74 57                                je      loc_1913                ; Jump if equal +273F:9BAF  53                                   push    bx +273F:9BB0  50                                   push    ax +273F:9BB1  53                                   push    bx +273F:9BB2  51                                   push    cx +273F:9BB3  52                                   push    dx +273F:9BB4  56                                   push    si +273F:9BB5  57                                   push    di +273F:9BB6  55                                   push    bp +273F:9BB7  1E                                   push    ds +273F:9BB8  06                                   push    es +273F:9BB9  9C                                   pushf                           ; Push flags +273F:9BBA  BB 0025                              mov     bx,25h +273F:9BBD  E8 043D                              call    play_sound                 ; (9FFD) +273F:9BC0  9D                                   popf                            ; Pop flags +273F:9BC1  07                                   pop     es +273F:9BC2  1F                                   pop     ds +273F:9BC3  5D                                   pop     bp +273F:9BC4  5F                                   pop     di +273F:9BC5  5E                                   pop     si +273F:9BC6  5A                                   pop     dx +273F:9BC7  59                                   pop     cx +273F:9BC8  5B                                   pop     bx +273F:9BC9  58                                   pop     ax +273F:9BCA  8B 5C F9                             mov     bx,[si-7] +273F:9BCD  89 47 F7                             mov     [bx-9],ax +273F:9BD0  83 47 F5 01                          add     word ptr [bx-0Bh],1 +273F:9BD4  83 7F F5 0A                          cmp     word ptr [bx-0Bh],0Ah +273F:9BD8  75 28                                jne     loc_1912                ; Jump if not equal +273F:9BDA  C7 44 F5 000A                        mov     word ptr [si-0Bh],0Ah +273F:9BDF  C7 47 F7 0F46                        mov     word ptr [bx-9],0F46h +273F:9BE4  50                                   push    ax +273F:9BE5  53                                   push    bx +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 369 + +273F:9BE6  51                                   push    cx +273F:9BE7  52                                   push    dx +273F:9BE8  56                                   push    si +273F:9BE9  57                                   push    di +273F:9BEA  55                                   push    bp +273F:9BEB  1E                                   push    ds +273F:9BEC  06                                   push    es +273F:9BED  9C                                   pushf                           ; Push flags +273F:9BEE  BB 0024                              mov     bx,24h +273F:9BF1  E8 0409                              call    play_sound                 ; (9FFD) +273F:9BF4  9D                                   popf                            ; Pop flags +273F:9BF5  07                                   pop     es +273F:9BF6  1F                                   pop     ds +273F:9BF7  5D                                   pop     bp +273F:9BF8  5F                                   pop     di +273F:9BF9  5E                                   pop     si +273F:9BFA  5A                                   pop     dx +273F:9BFB  59                                   pop     cx +273F:9BFC  5B                                   pop     bx +273F:9BFD  58                                   pop     ax +273F:9BFE  5B                                   pop     bx +273F:9BFF  E9 FCE0                              jmp     loc_1863                ; (98E2) +273F:9C02                       loc_1912:                                       ;  xref 273F:9BD8 +273F:9C02  5B                                   pop     bx +273F:9C03  E9 FCDC                              jmp     loc_1863                ; (98E2) +273F:9C06                       loc_1913:                                       ;  xref 273F:9BAD +273F:9C06  53                                   push    bx +273F:9C07  50                                   push    ax +273F:9C08  53                                   push    bx +273F:9C09  51                                   push    cx +273F:9C0A  52                                   push    dx +273F:9C0B  56                                   push    si +273F:9C0C  57                                   push    di +273F:9C0D  55                                   push    bp +273F:9C0E  1E                                   push    ds +273F:9C0F  06                                   push    es +273F:9C10  9C                                   pushf                           ; Push flags +273F:9C11  BB 0034                              mov     bx,34h +273F:9C14  E8 03E6                              call    play_sound                 ; (9FFD) +273F:9C17  9D                                   popf                            ; Pop flags +273F:9C18  07                                   pop     es +273F:9C19  1F                                   pop     ds +273F:9C1A  5D                                   pop     bp +273F:9C1B  5F                                   pop     di +273F:9C1C  5E                                   pop     si +273F:9C1D  5A                                   pop     dx +273F:9C1E  59                                   pop     cx +273F:9C1F  5B                                   pop     bx +273F:9C20  58                                   pop     ax +273F:9C21  8B 5C F9                             mov     bx,[si-7] +273F:9C24  83 7F F5 05                          cmp     word ptr [bx-0Bh],5 +273F:9C28  74 1E                                je      loc_1914                ; Jump if equal +273F:9C2A  89 47 F7                             mov     [bx-9],ax +273F:9C2D  83 47 D7 01                          add     word ptr [bx-29h],1 +273F:9C31  8B 47 D7                             mov     ax,[bx-29h] +273F:9C34  39 47 D9                             cmp     [bx-27h],ax +273F:9C37  73 0F                                jae     loc_1914                ; Jump if above or = +273F:9C39  C7 47 D7 0000                        mov     word ptr [bx-29h],0 +273F:9C3E  83 47 F5 01                          add     word ptr [bx-0Bh],1 +273F:9C42  83 7F F5 05                          cmp     word ptr [bx-0Bh],5 +273F:9C46  74 04                                je      loc_1915                ; Jump if equal +273F:9C48                       loc_1914:                                       ;  xref 273F:9C28, 9C37 +273F:9C48  5B                                   pop     bx +273F:9C49  E9 FC96                              jmp     loc_1863                ; (98E2) +273F:9C4C                       loc_1915:                                       ;  xref 273F:9C46 +273F:9C4C  8B 47 D5                             mov     ax,[bx-2Bh] +273F:9C4F  89 47 F7                             mov     [bx-9],ax +273F:9C52  5B                                   pop     bx +273F:9C53  E9 FC8C                              jmp     loc_1863                ; (98E2) +273F:9C56                       loc_1916:                                       ;  xref 273F:9983 +273F:9C56  8B 44 0D                             mov     ax,[si+0Dh] +273F:9C59  89 44 DB                             mov     [si-25h],ax +273F:9C5C  8B 44 0F                             mov     ax,[si+0Fh] +273F:9C5F  89 44 DD                             mov     [si-23h],ax +273F:9C62  E9 FC7D                              jmp     loc_1863                ; (98E2) +273F:9C65                       loc_1917:                                       ;  xref 273F:9986 +273F:9C65  8B 44 DB                             mov     ax,[si-25h] +273F:9C68  89 44 0D                             mov     [si+0Dh],ax +273F:9C6B  89 05                                mov     [di],ax +273F:9C6D  8B 44 DD                             mov     ax,[si-23h] +273F:9C70  89 44 0F                             mov     [si+0Fh],ax +273F:9C73  89 45 02                             mov     [di+2],ax +273F:9C76  E9 FC69                              jmp     loc_1863                ; (98E2) +273F:9C79                       loc_1918:                                       ;  xref 273F:998C +273F:9C79  56                                   push    si +273F:9C7A  57                                   push    di +273F:9C7B  53                                   push    bx +273F:9C7C úBE 6CEF                              mov     si, offset player_hotspot_rec +273F:9C7F  8B 7C 0B                             mov     di,[si+0Bh] +273F:9C82  C7 45 11 5E44                        mov     word ptr [di+11h], offset player_tick_proc +273F:9C87  C7 44 F5 002A                        mov     word ptr [si-0Bh],2Ah +273F:9C8C  C6 45 28 80                          mov     byte ptr [di+28h],80h +273F:9C90  C7 44 21 5C80                        mov     word ptr [si+21h],5C80h +273F:9C95 úBB 5C80                              mov     bx,5C80h                ; (273F:5C80=2Ah) +273F:9C98  8B 47 03                             mov     ax,[bx+3] +273F:9C9B  89 45 0A                             mov     [di+0Ah],ax +273F:9C9E  C7 44 11 0020                        mov     word ptr [si+11h],20h +273F:9CA3  C7 45 04 0020                        mov     word ptr [di+4],20h +273F:9CA8  C7 44 13 0030                        mov     word ptr [si+13h],30h +273F:9CAD  C7 45 06 0030                        mov     word ptr [di+6],30h +273F:9CB2  83 44 0F 05                          add     word ptr [si+0Fh],5 +273F:9CB6  83 45 02 05                          add     word ptr [di+2],5 +273F:9CBA  E8 A83E                              call    char_face_left +273F:9CBD  83 7C 06 06                          cmp     word ptr [si+6],6 +273F:9CC1  75 0E                                jne     loc_1919                ; Jump if not equal +273F:9CC3  06                                   push    es +273F:9CC4  BB 0C9F                              mov     bx,0C9Fh +273F:9CC7  E8 EBF2                              call    display_dialog +273F:9CCA  07                                   pop     es +273F:9CCB  BB 2738                              mov     bx,2738h +273F:9CCE  E8 01F8                              call    seq_add_item_to_inventory +273F:9CD1                       loc_1919:                                       ;  xref 273F:9CC1 +273F:9CD1  5B                                   pop     bx +273F:9CD2  5F                                   pop     di +273F:9CD3  5E                                   pop     si +273F:9CD4  C6 06 11D5 00                        mov     mouse_buttons, 0 +273F:9CD9  C6 06 11DA 00                        mov     mouse_buttons2, 0 +273F:9CDE  E9 FC01                              jmp     loc_1863                ; (98E2) +273F:9CE1                       loc_1920:                                       ;  xref 273F:9989 +273F:9CE1  C7 06 6CE4 002A                      mov     word ptr ds:[6CE4h],2Ah ; (273F:6CE4=0C18Bh) +273F:9CE7  80 0E 073D 50                        or      status_flags2, 50h +273F:9CEC  C3                                   retn + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:975F, 9DA5 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9CED                       sub_243         proc    near +273F:9CED  A1 6CCA                              mov     ax,word ptr ds:[6CCAh]  ; (273F:6CCA=6A26h) +273F:9CF0  05 FF84                              add     ax,0FF84h +273F:9CF3  3B 06 11D6                           cmp     ax, mouse_x2 +273F:9CF7  73 51                                jae     loc_1925                ; Jump if above or = +273F:9CF9  05 002C                              add     ax,2Ch +273F:9CFC  3B 06 11D6                           cmp     ax, mouse_x2 +273F:9D00  72 3D                                jb      loc_1924                ; Jump if below +273F:9D02  A1 6CFE                              mov     ax,word ptr ds:[6CFEh]  ; (273F:6CFE=76Eh) +273F:9D05  05 FF80                              add     ax,0FF80h +273F:9D08  3B 06 11D8                           cmp     ax, mouse_y2 +273F:9D0C  73 46                                jae     loc_1926                ; Jump if above or = +273F:9D0E  05 0018                              add     ax,18h +273F:9D11  3B 06 11D8                           cmp     ax, mouse_y2 +273F:9D15  73 48                                jae     loc_1927                ; Jump if above or = +273F:9D17  C7 06 11E1 0019                      mov     word ptr ds:[11E1h],19h ; (273F:11E1=3FBh) +273F:9D1D  B8 0003                              mov     ax,3 +273F:9D20                       loc_1921:                                       ;  xref 273F:9D48, 9D52, 9D5D, 9D68 +273F:9D20 ú80 3E 11D5 03                        cmp     mouse_buttons, 3 +273F:9D25  73 14                                jae     loc_1923                ; Jump if above or = +273F:9D27  F6 06 11D5 01                        test    mouse_buttons, 1 +273F:9D2C  74 03                                jz      loc_1922                ; Jump if zero +273F:9D2E  05 000A                              add     ax,0Ah +273F:9D31                       loc_1922:                                       ;  xref 273F:9D2C +273F:9D31  F6 06 11D5 02                        test    mouse_buttons, 2 +273F:9D36  74 03                                jz      loc_1923                ; Jump if zero +273F:9D38  05 0005                              add     ax,5 +273F:9D3B                       loc_1923:                                       ;  xref 273F:9D25, 9D36 +273F:9D3B  A3 6CE2                              mov     word ptr ds:[6CE2h],ax  ; (273F:6CE2=0CEBh) +273F:9D3E  C3                                   retn +273F:9D3F                       loc_1924:                                       ;  xref 273F:9D00 +273F:9D3F  C7 06 11E1 000E                      mov     word ptr ds:[11E1h],0Eh ; (273F:11E1=3FBh) +273F:9D45  B8 0004                              mov     ax,4 +273F:9D48  EB D6                                jmp     short loc_1921          ; (9D20) +273F:9D4A                       loc_1925:                                       ;  xref 273F:9CF7 +273F:9D4A  C7 06 11E1 000D                      mov     word ptr ds:[11E1h],0Dh ; (273F:11E1=3FBh) +273F:9D50  33 C0                                xor     ax,ax                   ; Zero register +273F:9D52  EB CC                                jmp     short loc_1921          ; (9D20) +273F:9D54                       loc_1926:                                       ;  xref 273F:9D0C +273F:9D54  C7 06 11E1 0017                      mov     word ptr ds:[11E1h],17h ; (273F:11E1=3FBh) +273F:9D5A  B8 0001                              mov     ax,1 +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 372 + +273F:9D5D  EB C1                                jmp     short loc_1921          ; (9D20) +273F:9D5F                       loc_1927:                                       ;  xref 273F:9D15 +273F:9D5F  C7 06 11E1 0018                      mov     word ptr ds:[11E1h],18h ; (273F:11E1=3FBh) +273F:9D65  B8 0002                              mov     ax,2 +273F:9D68  EB B6                                jmp     short loc_1921          ; (9D20) +                                sub_243         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:975C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9D6A                       sub_244         proc    near +273F:9D6A  F6 06 55A0 FF                        test    byte ptr ds:[55A0h],0FFh ; (273F:55A0=0C3h) +273F:9D6F  74 3B                                jz      loc_ret_1930            ; Jump if zero +273F:9D71  C6 06 11D5 00                        mov     mouse_buttons, 0 +273F:9D76  C6 06 55A0 00                        mov     byte ptr ds:[55A0h],0   ; (273F:55A0=0C3h) +273F:9D7B                       loc_1928:                                       ;  xref 273F:9DD0, 9DE9, 9E02, 9E1D +                                                                                ;            9E37, 9E51, 9E67, 9E7D +273F:9D7B úE8 F7A2                              call    check_keypress                 ; (9520) +273F:9D7E  74 25                                jz      loc_1929                ; Jump if zero +273F:9D80  E8 F805                              call    sub_233                 ; (9588) +273F:9D83  74 20                                jz      loc_1929                ; Jump if zero +273F:9D85  3C 37                                cmp     al,37h                  ; '7' +273F:9D87  74 2F                                je      loc_1935                ; Jump if equal +273F:9D89  3C 34                                cmp     al,34h                  ; '4' +273F:9D8B  74 45                                je      loc_1936                ; Jump if equal +273F:9D8D  3C 31                                cmp     al,31h                  ; '1' +273F:9D8F  74 5A                                je      loc_1937                ; Jump if equal +273F:9D91  3C 39                                cmp     al,39h                  ; '9' +273F:9D93  74 70                                je      loc_1938                ; Jump if equal +273F:9D95  3C 36                                cmp     al,36h                  ; '6' +273F:9D97  74 1D                                je      loc_1934                ; Jump if equal +273F:9D99  3C 33                                cmp     al,33h                  ; '3' +273F:9D9B  74 10                                je      loc_1931                ; Jump if equal +273F:9D9D  3C CB                                cmp     al,0CBh +273F:9D9F  74 0F                                je      loc_1932                ; Jump if equal +273F:9DA1  3C CD                                cmp     al,0CDh +273F:9DA3  74 0E                                je      loc_1933                ; Jump if equal +273F:9DA5                       loc_1929:                                       ;  xref 273F:9D7E, 9D83 +273F:9DA5  E8 FF45                              call    sub_243                 ; (9CED) +273F:9DA8  FF 16 075E                           call    [show_cursor_proc] + +273F:9DAC                       loc_ret_1930:                                   ;  xref 273F:9D6F +273F:9DAC  C3                                   retn +273F:9DAD                       loc_1931:                                       ;  xref 273F:9D9B +273F:9DAD  E9 008A                              jmp     loc_1940                ; (9E3A) +273F:9DB0                       loc_1932:                                       ;  xref 273F:9D9F +273F:9DB0  E9 00A1                              jmp     loc_1941                ; (9E54) +273F:9DB3                       loc_1933:                                       ;  xref 273F:9DA3 +273F:9DB3  E9 00B4                              jmp     loc_1942                ; (9E6A) +273F:9DB6                       loc_1934:                                       ;  xref 273F:9D97 +273F:9DB6  EB 68                                jmp     short loc_1939          ; (9E20) +273F:9DB8                       loc_1935:                                       ;  xref 273F:9D87 +273F:9DB8  8B 0E 6CCA                           mov     cx,word ptr ds:[6CCAh]  ; (273F:6CCA=6A26h) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 373 + +273F:9DBC  83 E9 64                             sub     cx,64h +273F:9DBF  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9DC3  81 EA 0088                           sub     dx,88h +273F:9DC7  BB 0001                              mov     bx,1 +273F:9DCA  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9DCC  0E E8 8118                           callf   mouse_handler           ; (1EE8) +273F:9DD0  EB A9                                jmp     short loc_1928          ; (9D7B) +273F:9DD2                       loc_1936:                                       ;  xref 273F:9D8B +273F:9DD2  8B 0E 6CCA                           mov     cx,word ptr ds:[6CCAh]  ; (273F:6CCA=6A26h) +273F:9DD6  83 E9 64                             sub     cx,64h +273F:9DD9  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9DDD  83 EA 70                             sub     dx,70h +273F:9DE0  BB 0001                              mov     bx,1 +273F:9DE3  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9DE5  0E E8 80FF                           callf   mouse_handler           ; (1EE8) +273F:9DE9  EB 90                                jmp     short loc_1928          ; (9D7B) +273F:9DEB                       loc_1937:                                       ;  xref 273F:9D8F +273F:9DEB  8B 0E 6CCA                           mov     cx,word ptr ds:[6CCAh]  ; (273F:6CCA=6A26h) +273F:9DEF  83 E9 64                             sub     cx,64h +273F:9DF2  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9DF6  83 EA 58                             sub     dx,58h +273F:9DF9  BB 0001                              mov     bx,1 +273F:9DFC  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9DFE  0E E8 80E6                           callf   mouse_handler           ; (1EE8) +273F:9E02  E9 FF76                              jmp     loc_1928                ; (9D7B) +273F:9E05                       loc_1938:                                       ;  xref 273F:9D93 +273F:9E05  8B 0E 6CCA                           mov     cx,word ptr ds:[6CCAh]  ; (273F:6CCA=6A26h) +273F:9E09  83 E9 64                             sub     cx,64h +273F:9E0C  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9E10  81 EA 0088                           sub     dx,88h +273F:9E14  BB 0002                              mov     bx,2 +273F:9E17  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9E19  0E E8 80CB                           callf   mouse_handler           ; (1EE8) +273F:9E1D  E9 FF5B                              jmp     loc_1928                ; (9D7B) +273F:9E20                       loc_1939:                                       ;  xref 273F:9DB6 +273F:9E20  8B 0E 6CCA                           mov     cx,word ptr ds:[6CCAh]  ; (273F:6CCA=6A26h) +273F:9E24  83 E9 64                             sub     cx,64h +273F:9E27  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9E2B  83 EA 70                             sub     dx,70h +273F:9E2E  BB 0002                              mov     bx,2 +273F:9E31  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9E33  0E E8 80B1                           callf   mouse_handler           ; (1EE8) +273F:9E37  E9 FF41                              jmp     loc_1928                ; (9D7B) +273F:9E3A                       loc_1940:                                       ;  xref 273F:9DAD +273F:9E3A  8B 0E 6CCA                           mov     cx,word ptr ds:[6CCAh]  ; (273F:6CCA=6A26h) +273F:9E3E  83 E9 64                             sub     cx,64h +273F:9E41  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9E45  83 EA 58                             sub     dx,58h +273F:9E48  BB 0002                              mov     bx,2 +273F:9E4B  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9E4D  0E E8 8097                           callf   mouse_handler           ; (1EE8) +273F:9E51  E9 FF27                              jmp     loc_1928                ; (9D7B) +273F:9E54                       loc_1941:                                       ;  xref 273F:9DB0 +273F:9E54  B9 0014                              mov     cx,14h +273F:9E57  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9E5B  83 EA 70                             sub     dx,70h +273F:9E5E  BB 0001                              mov     bx,1 +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 374 + +273F:9E61  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9E63  0E E8 8081                           callf   mouse_handler           ; (1EE8) +273F:9E67  E9 FF11                              jmp     loc_1928                ; (9D7B) +273F:9E6A                       loc_1942:                                       ;  xref 273F:9DB3 +273F:9E6A  B9 012C                              mov     cx,12Ch +273F:9E6D  8B 16 6CCC                           mov     dx,word ptr ds:[6CCCh]  ; (273F:6CCC=8B33h) +273F:9E71  83 EA 70                             sub     dx,70h +273F:9E74  BB 0001                              mov     bx,1 +273F:9E77  D1 E1                                shl     cx,1                    ; Shift w/zeros fill +273F:9E79  0E E8 806B                           callf   mouse_handler           ; (1EE8) +273F:9E7D  E9 FEFB                              jmp     loc_1928                ; (9D7B) +                                sub_244         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                       seq_get_door_blocked     proc    near +273F:9E80  8B C3                                mov     ax,bx +273F:9E82  E8 D369                              call    room_exit_hs_get_pointer +273F:9E85  8A 44 0C                             mov     al, [si+0Ch]            ; Get blocked status +273F:9E88  32 E4                                xor     ah, ah +273F:9E8A  A3 BA1F                              mov     general_val, ax          ; Store it in sequence field list +273F:9E8D  C3                                   retn +                       seq_get_door_blocked     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; bx = Hotspot Id +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                      seq_deactivate_hotspot    proc    near +273F:9E8E  E8 6E57                              call    get_room_resource_pointer +273F:9E91  81 FB 7530                           cmp     bx, 7530h               ; Non-visual hotspot? +273F:9E95  73 0A                                jae     loc_1943                ; Skip unloading +273F:9E97  8B 7C 0B                             mov     di,[si+HS_ANIM_OFFSET] +273F:9E9A  0B FF                                or      di,di                   ; Is hotspot active? +273F:9E9C  74 03                                jz      loc_1943                ; Jump if not +273F:9E9E  E8 73D1                              call    animation_unload        ; Unload hotspot +273F:9EA1                       loc_1943: +273F:9EA1  C7 44 06 FFFF                        mov     word ptr [si+HS_ROOM_NUM], 0FFFFh +273F:9EA6  80 4C 03 20                          or      byte ptr [si+HS_FLAGS], 20h +273F:9EAA  81 FB 7530                           cmp     bx,7530h +273F:9EAE  73 04                                jae     loc_ret_1944            ; Jump if above or = +273F:9EB0  C6 44 15 FF                          mov     byte ptr [si+HS_LAYER], 0FFh + +273F:9EB4                       loc_ret_1944:                                   ;  xref 273F:9EAE +273F:9EB4  C3                                   retn +                      seq_deactivate_hotspot    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:9CCE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         seq_disable_hotspot    proc    near +273F:9EB5  E8 6E30                              call    get_room_resource_pointer +273F:9EB8  80 4C 03 20                          or      byte ptr [si+3],20h     ; ' ' +273F:9EBC  C3                                   retn +                         seq_disable_hotspot    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:9CCE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         seq_enable_hotspot     proc    near +273F:9EBD  E8 6E28                              call    get_room_resource_pointer +273F:9EC0  80 4C 03 80                          or      byte ptr [si+3],80h +273F:9EC4  80 64 03 DF                          and     byte ptr [si+3],0DFh +273F:9EC8  C3                                   retn +                         seq_enable_hotspot     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:9CCE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                   seq_add_item_to_inventory    proc    near +273F:9EC9  E8 6E1C                              call    get_room_resource_pointer +273F:9ECC  C7 44 06 03E8                        mov     word ptr [si+HS_ROOM_NUM], PLAYER_HOTSPOT_ID +273F:9ED1  80 4C 03 80                          or      byte ptr [si+HS_FLAGS], 80h +273F:9ED5  83 06 9835 01                        add     num_inventory_items, 1 +273F:9EDA  8B 7C 0B                             mov     di, [si+HS_ANIM_OFFSET] +273F:9EDD  C3                                   retn +                   seq_add_item_to_inventory    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                     seq_check_dropped_desc     proc    near +273F:9EDE  C7 06 BA1D 0000                      mov     sequence_result, 0 +273F:9EE4  E8 6E01                              call    get_room_resource_pointer +273F:9EE7  3B 4C 06                             cmp     cx, [si+HSH_DESC_ID_2] +273F:9EEA  75 06                                jne     loc_ret_1945            ; Jump if not equal +273F:9EEC  C7 06 BA1D 0001                      mov     sequence_result, 1 +273F:9EF2                       loc_ret_1945:                                   ;  xref 273F:9EEA +273F:9EF2  C3                                   retn +                     seq_check_dropped_desc     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                     seq_set_support_offset     proc    near +273F:9EF3  E8 6DF2                              call    get_room_resource_pointer ; Get src from param #1 +273F:9EF6  8B C1                                mov     ax, cx                  ; Get param #2 +273F:9EF8 úBB 1380                              mov     bx, offset support_data_offset_list +273F:9EFB  D1 E0                                shl     ax, 1                   ; Convert to word index +273F:9EFD  03 D8                                add     bx, ax +273F:9EFF  8B 07                                mov     ax, [bx]                ; Get support record offset +273F:9F01  8B DE                                mov     bx, si +273F:9F03  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:9F06  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:9F09  89 47 01                             mov     [bx+CURRENT_ACTION_SUPPORT_TABLE], ax  ; Set support record +273F:9F0C  C6 07 02                             mov     byte ptr [bx], CHAR_ACTION_DISPATCH_ACTION +273F:9F0F  8B 44 06                             mov     ax, [si+HS_ROOM_NUM] +273F:9F12  89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax +273F:9F15  C3                                   retn +                     seq_set_support_offset     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                             seq_method_53      proc    near +273F:9F16  E8 6DCF                              call    get_room_resource_pointer +273F:9F19  8B DE                                mov     bx, si +273F:9F1B  03 5C 61                             add     bx, [si+HS_ACTION_OFFSET] +273F:9F1E  83 C3 63                             add     bx, HS_FIRST_ACTION_OFFSET +273F:9F21  A1 6CF5                              mov     ax, [player_hotspot_rec+HS_ROOM_NUM] +273F:9F24  3B 44 06                             cmp     ax, [si+HS_ROOM_NUM]    ; Hotspot in player's room? +273F:9F27  74 12                                je      loc_ret_1948            ; Jump if equal +273F:9F29 úBE 4F6F                              mov     si, 4F6Fh +273F:9F2C                       loc_1946: +273F:9F2C  3A 04                                cmp     al, [si] +273F:9F2E  74 0C                                je      loc_1949                ; Jump if equal +273F:9F30  83 C6 02                             add     si, 2 +273F:9F33  F6 04 FF                             test    byte ptr [si], 0FFh +273F:9F36  75 F4                                jnz     loc_1946                ; Jump if not zero +273F:9F38                       loc_1947: +273F:9F38 ú89 47 03                             mov     [bx+CURRENT_ACTION_ROOM_NUM], ax + +273F:9F3B                       loc_ret_1948: +273F:9F3B  C3                                   retn +273F:9F3C                       loc_1949: +273F:9F3C  8A 44 01                             mov     al, [si+1] +273F:9F3F  EB F7                                jmp     short loc_1947          ; (9F38) +                             seq_method_53      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +               seq_decrease_inventory_items     proc    near +273F:9F41  83 2E 9835 01                        sub     num_inventory_items, 1 +273F:9F46  C3                                   retn +               seq_decrease_inventory_items     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                      seq_random_to_general     proc    near +273F:9F47  51                                   push    cx +273F:9F48  2B D9                                sub     bx, cx +273F:9F4A  53                                   push    bx +273F:9F4B  E8 A51E                              call    random +273F:9F4E  5B                                   pop     bx +273F:9F4F  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:9F51  5B                                   pop     bx +273F:9F52  03 D3                                add     dx,bx +273F:9F54  89 16 BA1F                           mov     general_val, dx +273F:9F58  C3                                   retn +                      seq_random_to_general     endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +                           seq_add_actions      proc    near +273F:9F59  E8 6D8C                              call    get_room_resource_pointer +273F:9F5C  09 0C                                or      [si],cx +273F:9F5E  C3                                   retn +                           seq_add_actions      endp + +273F:9F5F  00                                   db      0 +273F:9F60  0000 0000            data_442        dd      00000h                  ;  xref 273F:A298, A318 + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7657 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9F64                       sub_246         proc    near +273F:9F64  B8 000B                              mov     ax,0Bh +                                                assume  ds:data_seg +273F:9F67  8B 0E 4D00                           mov     cx,buffer_segment       ; (31E4:4D00=0) +273F:9F6B  51                                   push    cx +273F:9F6C  33 D2                                xor     dx,dx                   ; Zero register +273F:9F6E  E8 63A3                              call    read_entry              ; (0314) +273F:9F71  5A                                   pop     dx +273F:9F72  33 C9                                xor     cx,cx                   ; Zero register +273F:9F74  B8 0004                              mov     ax,4 +273F:9F77  80 0E 5668 80                        or      note_flag, MUSIC_NOTE  ; Show music note on screen +273F:9F7C  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:9F80  72 26                                jc      loc_1950                ; Jump if carry Set +273F:9F82  B8 000C                              mov     ax,0Ch +273F:9F85  8B 0E 4D00                           mov     cx,buffer_segment       ; (31E4:4D00=0) +273F:9F89  51                                   push    cx +273F:9F8A  33 D2                                xor     dx,dx                   ; Zero register +273F:9F8C  E8 6385                              call    read_entry              ; (0314) +273F:9F8F  01 16 4D00                           add     buffer_segment, dx      ; (31E4:4D00=0) +273F:9F93  5A                                   pop     dx +273F:9F94  33 C9                                xor     cx,cx                   ; Zero register +273F:9F96  B8 0004                              mov     ax,4 +273F:9F99  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:9F9D  80 26 5668 7F                        and     note_flag, MUSIC_NOTE_OFF  +273F:9FA2  80 0E 5660 24                        or      music_status, 24h +273F:9FA7  C3                                   retn +273F:9FA8                       loc_1950:                                       ;  xref 273F:9F80 +273F:9FA8  B8 000D                              mov     ax,0Dh +273F:9FAB  8B 0E 4D00                           mov     cx,buffer_segment       ; (31E4:4D00=0) +273F:9FAF  33 D2                                xor     dx,dx                   ; Zero register +273F:9FB1  E8 6360                              call    read_entry              ; (0314) +273F:9FB4  52                                   push    dx +273F:9FB5  8B 16 4D00                           mov     dx,buffer_segment       ; (31E4:4D00=0) +273F:9FB9  33 C9                                xor     cx,cx                   ; Zero register +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 377 + +273F:9FBB  B8 0001                              mov     ax,1 +273F:9FBE  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:9FC2  5A                                   pop     dx +273F:9FC3  73 0B                                jnc     loc_1951 +273F:9FC5  80 26 5668 7F                        and     note_flag, MUSIC_NOTE_OFF +273F:9FCA  80 0E 5660 14                        or      music_status, 14h +273F:9FCF  C3                                   retn +273F:9FD0                       loc_1951:                                       ;  xref 273F:9FC3 +273F:9FD0  01 16 4D00                           add     buffer_segment, dx      ; (31E4:4D00=0) +273F:9FD4  80 26 5668 7F                        and     note_flag, MUSIC_NOTE_OFF +273F:9FD9  80 0E 5660 05                        or      music_status, 5 +273F:9FDE  C3                                   retn +                                sub_246         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:104D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:9FDF                       sub_247         proc    near +273F:9FDF  53                                   push    bx +273F:9FE0  E8 00FB                              call    sub_250                 ; (A0DE) +273F:9FE3  5B                                   pop     bx +273F:9FE4  83 FB 06                             cmp     bx,6 +273F:9FE7  74 14                                je      loc_1953                ; Jump if equal +273F:9FE9  53                                   push    bx +273F:9FEA  B8 0005                              mov     ax,5 +273F:9FED  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:9FEF  05 5671                              add     ax,5671h +273F:9FF2  8B F0                                mov     si,ax +273F:9FF4  8A 1C                                mov     bl,[si] +273F:9FF6  E8 0136                              call    sub_251                 ; (A12F) +273F:9FF9  5B                                   pop     bx +273F:9FFA  74 06                                jz      loc_1954                ; Jump if zero + +273F:9FFC                       loc_ret_1952:                                   ;  xref 273F:A011, A02F +273F:9FFC  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:49E0, 732A, 7F8D, 88A8, 994E, 9B8F, 9BBD +                                ;                             9BF1, 9C14, A187, A69C + +273F:9FFD                     play_sound: +273F:9FFD                       loc_1953:                                       ;  xref 273F:9FE7 +273F:9FFD  53                                   push    bx +273F:9FFE  E8 00DD                              call    sub_250                 ; (A0DE) +273F:A001  5B                                   pop     bx +273F:A002                       loc_1954:                                       ;  xref 273F:9FFA +273F:A002  B8 0005                              mov     ax,5 +273F:A005  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:A007  05 5671                              add     ax,5671h +273F:A00A  8B F0                                mov     si,ax +273F:A00C  F6 06 1926 FF                        test    data_669, 0FFh +273F:A011  75 E9                                jnz     loc_ret_1952            ; Jump if not zero +273F:A013  8A 4C 02                             mov     cl,[si+2] +273F:A016  F6 06 5660 11                        test    music_status, 11h +273F:A01B  74 0F                                jz      loc_1955                ; Jump if zero +273F:A01D  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A01F  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A021  F6 06 5660 10                        test    music_status, 10h +273F:A026  74 04                                jz      loc_1955                ; Jump if zero +273F:A028  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A02A  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A02C                       loc_1955:                                       ;  xref 273F:A01B, A026 +273F:A02C  80 E1 03                             and     cl,3 +273F:A02F  74 CB                                jz      loc_ret_1952            ; Jump if zero +273F:A031 úBF 5669                              mov     di,offset data_843      ; (31E4:5669=0) +273F:A034  33 DB                                xor     bx,bx                   ; Zero register +273F:A036                       loc_1956:                                       ;  xref 273F:A054 +273F:A036  F6 05 FF                             test    byte ptr [di],0FFh +273F:A039  75 09                                jnz     loc_1957                ; Jump if not zero +273F:A03B  80 C7 01                             add     bh,1 +273F:A03E  3A F9                                cmp     bh,cl +273F:A040  73 15                                jae     loc_1959                ; Jump if above or = +273F:A042  EB 09                                jmp     short loc_1958          ; (A04D) +273F:A044                       loc_1957:                                       ;  xref 273F:A039 +273F:A044  8B DF                                mov     bx,di +273F:A046  81 EB 5669                           sub     bx,5669h +273F:A04A  80 C3 01                             add     bl,1 +273F:A04D                       loc_1958:                                       ;  xref 273F:A042 +273F:A04D  83 C7 01                             add     di,1 +273F:A050  81 FF 5671                           cmp     di,5671h +273F:A054  72 E0                                jb      loc_1956                ; Jump if below +273F:A056  C3                                   retn +273F:A057                       loc_1959:                                       ;  xref 273F:A040 +273F:A057  32 FF                                xor     bh,bh                   ; Zero register +273F:A059  BF 5669                              mov     di,5669h +273F:A05C  03 FB                                add     di,bx + +273F:A05E                       locloop_1960:                                   ;  xref 273F:A064 +273F:A05E  C6 05 01                             mov     byte ptr [di],1 +273F:A061  83 C7 01                             add     di,1 +273F:A064  E2 F8                                loop    locloop_1960            ; Loop if cx > 0 + +273F:A066 úBF B9C7                              mov     di,offset data_1121     ; (31E4:B9C7=0) +273F:A069  B9 000A                              mov     cx,0Ah + +273F:A06C                       locloop_1961:                                   ;  xref 273F:A0B7 +273F:A06C  F6 45 02 FF                          test    byte ptr [di+2],0FFh +273F:A070  75 42                                jnz     loc_1963                ; Jump if not zero +273F:A072  8A 04                                mov     al,[si] +273F:A074  88 05                                mov     [di],al +273F:A076  88 5D 01                             mov     [di+1],bl +273F:A079  8A 4C 02                             mov     cl,[si+2] +273F:A07C  F6 06 5660 11                        test    music_status, 11h +273F:A081  74 0F                                jz      loc_1962                ; Jump if zero +273F:A083  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A085  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A087  F6 06 5660 10                        test    music_status, 10h +273F:A08C  74 04                                jz      loc_1962                ; Jump if zero +273F:A08E  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A090  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +273F:A092                       loc_1962:                                       ;  xref 273F:A081, A08C +273F:A092  80 E1 03                             and     cl,3 +273F:A095  88 4D 02                             mov     [di+2],cl +273F:A098  8A 4C 03                             mov     cl,[si+3] +273F:A09B  88 4D 03                             mov     [di+3],cl +273F:A09E  8A 4C 04                             mov     cl,[si+4] +273F:A0A1  88 4D 04                             mov     [di+4],cl +273F:A0A4  B4 01                                mov     ah,1 +273F:A0A6  32 FF                                xor     bh,bh                   ; Zero register +273F:A0A8  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A0AC  8A 4C 04                             mov     cl,[si+4] +273F:A0AF  8A 1C                                mov     bl,[si] +273F:A0B1  E9 00DD                              jmp     loc_1977                ; (A191) +273F:A0B4                       loc_1963:                                       ;  xref 273F:A070 +273F:A0B4  83 C7 05                             add     di,5 +273F:A0B7  E2 B3                                loop    locloop_1961            ; Loop if cx > 0 + +273F:A0B9  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:0071 + +273F:A0BA                       sub_249: +273F:A0BA  E8 0098                              call    sub_253                 ; (A155) +273F:A0BD úBE B9C7                              mov     si,offset data_1121     ; (31E4:B9C7=0) +273F:A0C0  B9 000A                              mov     cx,0Ah + +273F:A0C3                       locloop_1964:                                   ;  xref 273F:A0DC +273F:A0C3  F6 44 02 FF                          test    byte ptr [si+2],0FFh +273F:A0C7  74 10                                jz      loc_1965                ; Jump if zero +273F:A0C9  F6 44 03 01                          test    byte ptr [si+3],1 +273F:A0CD  74 0A                                jz      loc_1965                ; Jump if zero +273F:A0CF  B4 04                                mov     ah,4 +273F:A0D1  8A 04                                mov     al,[si] +273F:A0D3  24 7F                                and     al,7Fh +273F:A0D5  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A0D9                       loc_1965:                                       ;  xref 273F:A0C7, A0CD +273F:A0D9  83 C6 05                             add     si,5 +273F:A0DC  E2 E5                                loop    locloop_1964            ; Loop if cx > 0 + + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:9FE0, 9FFE, A11A + +273F:A0DE                       sub_250: +273F:A0DE úBE B9C7                              mov     si,data_458e            ; (273F:B9C7=0) +273F:A0E1  B9 000A                              mov     cx,0Ah + +273F:A0E4                       locloop_1966:                                   ;  xref 273F:A117 +273F:A0E4  F6 44 02 FF                          test    byte ptr [si+2],0FFh +273F:A0E8  74 2A                                jz      loc_1968                ; Jump if zero +273F:A0EA  B4 05                                mov     ah,5 +273F:A0EC  8A 04                                mov     al,[si] +273F:A0EE  24 7F                                and     al,7Fh +273F:A0F0  F9                                   stc                             ; Set carry flag +                                                assume  ds:seg_code +273F:A0F1  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A0F5  73 1D                                jnc     loc_1968                ; Jump if carry=0 +273F:A0F7  51                                   push    cx +273F:A0F8  8A 4C 02                             mov     cl,[si+2] +273F:A0FB  8A 44 01                             mov     al,[si+1] +273F:A0FE  32 E4                                xor     ah,ah                   ; Zero register +273F:A100  05 5669                              add     ax,5669h +273F:A103  8B F8                                mov     di,ax +273F:A105  32 ED                                xor     ch,ch                   ; Zero register + +273F:A107                       locloop_1967:                                   ;  xref 273F:A10D +273F:A107  C6 05 00                             mov     byte ptr [di],0 +273F:A10A  83 C7 01                             add     di,1 +273F:A10D  E2 F8                                loop    locloop_1967            ; Loop if cx > 0 + +273F:A10F  C6 44 02 00                          mov     byte ptr [si+2],0 +273F:A113  59                                   pop     cx +273F:A114                       loc_1968:                                       ;  xref 273F:A0E8, A0F5 +273F:A114  83 C6 05                             add     si,5 +273F:A117  E2 CB                                loop    locloop_1966            ; Loop if cx > 0 + +273F:A119  C3                                   retn +                                                                                ;* No entry point to code +273F:A11A  E8 FFC1                              call    sub_250                 ; (A0DE) +273F:A11D  C7 06 BA1F 0000                      mov     general_val, 0  +273F:A123  E8 0009                              call    sub_251                 ; (A12F) +273F:A126  74 06                                jz      loc_ret_1969            ; Jump if zero +273F:A128  C7 06 BA1F 0001                      mov     general_val, 1 + +273F:A12E                       loc_ret_1969:                                   ;  xref 273F:A126 +273F:A12E  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:9FF6, A123, A192 + +273F:A12F                       sub_251: +273F:A12F úBE B9C7                              mov     si,data_458e            ; (273F:B9C7=0) +273F:A132  B9 000A                              mov     cx,0Ah + +273F:A135                       locloop_1970:                                   ;  xref 273F:A142 +273F:A135  F6 44 02 FF                          test    byte ptr [si+2],0FFh +273F:A139  74 04                                jz      loc_1971                ; Jump if zero +273F:A13B  38 1C                                cmp     [si],bl +273F:A13D  74 08                                je      loc_1972                ; Jump if equal +273F:A13F                       loc_1971:                                       ;  xref 273F:A139 +273F:A13F  83 C6 05                             add     si,5 +273F:A142  E2 F1                                loop    locloop_1970            ; Loop if cx > 0 + +273F:A144  33 F6                                xor     si,si                   ; Zero register +273F:A146  C3                                   retn +273F:A147                       loc_1972:                                       ;  xref 273F:A13D +273F:A147  0B F6                                or      si,si                   ; Zero ? +273F:A149  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:A180, A18D + +273F:A14A                       sub_252: +273F:A14A  B4 04                                mov     ah,4 +273F:A14C  8A C3                                mov     al,bl +273F:A14E  24 7F                                and     al,7Fh +273F:A150  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A154  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:A0BA + +273F:A155                       sub_253: +273F:A155  A1 9832                              mov     ax, room_number +273F:A158  E8 6B8F                              call    get_room_resource_pointer2 +273F:A15B  8A 44 17                             mov     al, [si+17h] +273F:A15E  3A 06 BAB9                           cmp     al, script_val_88 +273F:A162  74 1F                                je      loc_ret_1975            ; Jump if equal +273F:A164  A2 BAB9                              mov     script_val_88, al +273F:A167  3C 01                                cmp     al,1 +273F:A169  72 12                                jb      loc_1974                ; Jump if below +273F:A16B  74 17                                jz      loc_1976                ; Jump if zero +273F:A16D  3C 03                                cmp     al,3 +273F:A16F  72 04                                jb      loc_1973                ; Jump if below +273F:A171  74 0A                                jz      loc_1974                ; Jump if zero +273F:A173  EB 08                                jmp     short loc_1974          ; (A17D) +273F:A175                       loc_1973:                                       ;  xref 273F:A16F +273F:A175  33 DB                                xor     bx, bx                  ; Zero register +273F:A177  B9 000F                              mov     cx, 0Fh +273F:A17A  E8 0014                              call    sub_254                 ; (A191) +273F:A17D                       loc_1974:                                       ;  xref 273F:A169, A171, A173 +273F:A17D  BB 0001                              mov     bx,1 +273F:A180  E8 FFC7                              call    sub_252                 ; (A14A) + +273F:A183                       loc_ret_1975:                                   ;  xref 273F:A162 +273F:A183  C3                                   retn +273F:A184                       loc_1976:                                       ;  xref 273F:A16B +273F:A184  BB 0002                              mov     bx,2 +273F:A187  E8 FE73                              call    play_sound                 ; (9FFD) +273F:A18A  BB 0021                              mov     bx,21h +273F:A18D  E8 FFBA                              call    sub_252                 ; (A14A) +273F:A190  C3                                   retn + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:A17A + +273F:A191                       sub_254: +273F:A191                       loc_1977:                                       ;  xref 273F:A0B1 +273F:A191  51                                   push    cx +273F:A192  E8 FF9A                              call    sub_251                 ; (A12F) +273F:A195  59                                   pop     cx +273F:A196  74 21                                jz      loc_ret_1979            ; Jump if zero +273F:A198  F6 06 5660 01                        test    music_status, 1 +273F:A19D  75 1A                                jnz     loc_ret_1979            ; Jump if not zero + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ; +                                ;         Called from:   273F:A259 + +273F:A19F                       sub_255: +273F:A19F  8A D9                                mov     bl,cl +273F:A1A1  8A 4C 02                             mov     cl,[si+2] +273F:A1A4  8A 44 01                             mov     al,[si+1] +273F:A1A7  32 ED                                xor     ch,ch                   ; Zero register + +273F:A1A9                       locloop_1978:                                   ;  xref 273F:A1B7 +273F:A1A9  B4 06                                mov     ah,6 +273F:A1AB  50                                   push    ax +273F:A1AC  53                                   push    bx +273F:A1AD  51                                   push    cx +                                                assume  ds:seg_code +273F:A1AE  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A1B2  59                                   pop     cx +273F:A1B3  5B                                   pop     bx +273F:A1B4  58                                   pop     ax +273F:A1B5  04 01                                add     al,1 +273F:A1B7  E2 F0                                loop    locloop_1978            ; Loop if cx > 0 + + +273F:A1B9                       loc_ret_1979:                                   ;  xref 273F:A196, A19D +273F:A1B9  C3                                   retn +                                sub_247         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A3CE, A5A3 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A1BA                       sub_256         proc    near +                                                assume  ds:data_seg +273F:A1BA  F6 06 5660 11                        test    music_status, 11h +273F:A1BF  75 1F                                jnz     loc_1982                ; Jump if not zero +273F:A1C1  33 C0                                xor     ax,ax                   ; Zero register +273F:A1C3  E8 A823                              call    sleep                   ; (49E9) +273F:A1C6  B1 40                                mov     cl,40h                  ; '@' +273F:A1C8                       loc_1980:                                       ;  xref 273F:A1DE +273F:A1C8  B8 0608                              mov     ax,608h +273F:A1CB  8A D9                                mov     bl,cl +273F:A1CD                       loc_1981:                                       ;  xref 273F:A1D5 +273F:A1CD  50                                   push    ax +273F:A1CE  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A1D2  58                                   pop     ax +273F:A1D3  2C 01                                sub     al,1 +273F:A1D5  73 F6                                jnc     loc_1981                ; Jump if carry=0 +273F:A1D7  8B C2                                mov     ax,dx +273F:A1D9  E8 A80D                              call    sleep                   ; (49E9) +273F:A1DC  D0 E9                                shr     cl,1                    ; Shift w/zeros fill +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 383 + +273F:A1DE  75 E8                                jnz     loc_1980                ; Jump if not zero +273F:A1E0                       loc_1982:                                       ;  xref 273F:A1BF +273F:A1E0  E8 0010                              call    sub_257                 ; (A1F3) +273F:A1E3  B8 0608                              mov     ax,608h +273F:A1E6  B3 80                                mov     bl,80h +273F:A1E8                       loc_1983:                                       ;  xref 273F:A1F0 +273F:A1E8  50                                   push    ax +273F:A1E9  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A1ED  58                                   pop     ax +273F:A1EE  2C 01                                sub     al,1 +273F:A1F0  73 F6                                jnc     loc_1983                ; Jump if carry=0 +273F:A1F2  C3                                   retn +                                sub_256         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:4067, 710D, 8F60, 9336, 9392, A1E0, A436 +                                ;                             A47D, A58F, A5AC, A654, A6D6, A8E6, A977 +                                ;                             A98D +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A1F3                       sub_257         proc    near +273F:A1F3  06                                   push    es +273F:A1F4  57                                   push    di +273F:A1F5  51                                   push    cx +273F:A1F6  B4 03                                mov     ah,3 +273F:A1F8  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A1FC úBF 5669                              mov     di,offset data_843      ; (31E4:5669=0) +273F:A1FF  1E                                   push    ds +273F:A200  07                                   pop     es +273F:A201  B9 0008                              mov     cx,8 +273F:A204  32 C0                                xor     al,al                   ; Zero register +273F:A206  F3/ AA                               rep     stosb                   ; Rep when cx >0 Store al to es:[di] +273F:A208  59                                   pop     cx +273F:A209  5F                                   pop     di +273F:A20A  07                                   pop     es +273F:A20B  C3                                   retn +                                sub_257         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:1061 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A20C                       sub_258         proc    near +273F:A20C  B8 0005                              mov     ax,5 +273F:A20F  F7 E3                                mul     bx                      ; dx:ax = reg * ax +273F:A211  05 5671                              add     ax,5671h +273F:A214  8B F0                                mov     si,ax +273F:A216  8A 04                                mov     al,[si] +273F:A218  24 7F                                and     al,7Fh +273F:A21A  B4 04                                mov     ah,4 +273F:A21C  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A220  C3                                   retn +                                sub_258         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8FE1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A221                       sub_259         proc    near +273F:A221 úBE B9C7                              mov     si,data_458e            ; (273F:B9C7=0) +273F:A224  B9 000A                              mov     cx,0Ah + +273F:A227                       locloop_1984:                                   ;  xref 273F:A260 +273F:A227  F6 44 02 FF                          test    byte ptr [si+2],0FFh +273F:A22B  74 30                                jz      loc_1986                ; Jump if zero +273F:A22D  F6 44 03 02                          test    byte ptr [si+3],2 +273F:A231  74 2A                                jz      loc_1986                ; Jump if zero +273F:A233  51                                   push    cx +273F:A234  8A 44 01                             mov     al,[si+1] +273F:A237  32 E4                                xor     ah,ah                   ; Zero register +273F:A239  05 5669                              add     ax,5669h +273F:A23C  8B F8                                mov     di,ax +273F:A23E  8A 4C 02                             mov     cl,[si+2] +273F:A241  32 ED                                xor     ch,ch                   ; Zero register + +273F:A243                       locloop_1985:                                   ;  xref 273F:A249 +273F:A243  C6 05 01                             mov     byte ptr [di],1 +273F:A246  83 C7 01                             add     di,1 +273F:A249  E2 F8                                loop    locloop_1985            ; Loop if cx > 0 + +273F:A24B  B4 01                                mov     ah,1 +273F:A24D  8A 04                                mov     al,[si] +273F:A24F  8A 5C 01                             mov     bl,[si+1] +273F:A252  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A256  8A 4C 04                             mov     cl,[si+4] +273F:A259  E8 FF43                              call    sub_255                 ; (A19F) +273F:A25C  59                                   pop     cx +273F:A25D                       loc_1986:                                       ;  xref 273F:A22B, A231 +273F:A25D  83 C6 05                             add     si,5 +273F:A260  E2 C5                                loop    locloop_1984            ; Loop if cx > 0 + +273F:A262  C3                                   retn +                                sub_259         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:8FE1 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                         music_proc_unknown     proc    far + +273F:A263  1E                                   push    ds +273F:A264  51                                   push    cx +273F:A265  2E: 8B 0E 9F62                       mov     cx,word ptr cs:data_442+2 ; (273F:9F62=0) +273F:A26A  8E D9                                mov     ds,cx +273F:A26C  04 01                                add     al,1 +273F:A26E  80 FC 01                             cmp     ah,1 +273F:A271  72 45                                jb      loc_1992                ; Jump if below +273F:A273  74 2A                                jz      loc_1989                ; Jump if zero +273F:A275  80 FC 03                             cmp     ah,3 +273F:A278  72 1E                                jb      loc_1988                ; Jump if below +273F:A27A  74 0F                                jz      loc_1987                ; Jump if zero +273F:A27C  80 FC 05                             cmp     ah,5 +273F:A27F  72 0A                                jb      loc_1987                ; Jump if below +273F:A281  75 35                                jnz     loc_1992                ; Jump if not zero +273F:A283  3A 06 0009                           cmp     al,byte ptr ds:data_4e+1 ; (0000:0009=0) +273F:A287  74 21                                je      loc_1990                ; Jump if equal +273F:A289  EB 2D                                jmp     short loc_1992          ; (A2B8) +273F:A28B                       loc_1987:                                       ;  xref 273F:A27A, A27F +273F:A28B  C6 06 000B FF                        mov     byte ptr ds:data_6e+1,0FFh ; (0000:000B=0C8h) +273F:A290  C7 06 0008 00FF                      mov     word ptr ds:data_4e,0FFh ; (0000:0008=30h) +273F:A296  EB 12                                jmp     short loc_1990          ; (A2AA) +273F:A298                       loc_1988:                                       ;  xref 273F:A278 +273F:A298  2E: FF 1E 9F60                       call    cs:data_442             ; (273F:9F60=0) +273F:A29D  EB 0B                                jmp     short loc_1990          ; (A2AA) +273F:A29F                       loc_1989:                                       ;  xref 273F:A273 +273F:A29F  80 E4 7F                             and     ah,7Fh +273F:A2A2  80 FF 01                             cmp     bh,1 +273F:A2A5  74 07                                je      loc_1991                ; Jump if equal +273F:A2A7  A2 000A                              mov     ds:data_6e,al           ; (0000:000A=0) +273F:A2AA                       loc_1990:                                       ;  xref 273F:A287, A296, A29D, A2B6 +273F:A2AA ú59                                   pop     cx +273F:A2AB  1F                                   pop     ds +273F:A2AC  F8                                   clc                             ; Clear carry flag +273F:A2AD  CB                                   retf                            ; Return far +273F:A2AE                       loc_1991:                                       ;  xref 273F:A2A5 +273F:A2AE  A2 0008                              mov     byte ptr ds:[8],al      ; (273F:0008=0B8h) +273F:A2B1  C6 06 0009 00                        mov     byte ptr ds:[9],0       ; (273F:0009=0FCh) +273F:A2B6  EB F2                                jmp     short loc_1990          ; (A2AA) +273F:A2B8                       loc_1992:                                       ;  xref 273F:A271, A281, A289 +273F:A2B8  59                                   pop     cx +273F:A2B9  1F                                   pop     ds +273F:A2BA  F9                                   stc                             ; Set carry flag +273F:A2BB  CB                                   retf                            ; Return far + +                         music_proc_unknown     endp +                          +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:7654 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A2BC                  show_introduction    proc    near +273F:A2BC  B8 0030                              mov     ax,30h                  ; Load MIDI entry #48 +273F:A2BF  E8 D8A5                              call    read_into_buffer_2 +                                                assume  ds:data_seg +273F:A2C2  A3 5782                              mov     misc_segment, ax        ; (31E4:5782=0) +273F:A2C5  8B D0                                mov     dx,ax +273F:A2C7  B8 0004                              mov     ax,4 +273F:A2CA  33 C9                                xor     cx,cx                   ; Zero register +273F:A2CC  80 0E 5668 80                        or      note_flag, MUSIC_NOTE  ; Show music note on screen +273F:A2D1  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A2D5  72 07                                jc      loc_1993                ; Jump if carry Set +273F:A2D7  80 0E 5660 24                        or      music_status, 24h +273F:A2DC  EB 57                                jmp     short loc_1995          ; (A335) +273F:A2DE                       loc_1993: +273F:A2DE  B8 0031                              mov     ax,31h                  ; Load MIDI entry #49 +273F:A2E1  8B 0E 5782                           mov     cx,misc_segment         ; (31E4:5782=0) +273F:A2E5  89 0E 4D00                           mov     buffer_segment, cx      ; (31E4:4D00=0) +273F:A2E9  E8 D87B                              call    read_into_buffer_2      ; (7B67) +273F:A2EC  8B D0                                mov     dx,ax +273F:A2EE  B8 0001                              mov     ax,1 +273F:A2F1  33 C9                                xor     cx,cx                   ; Zero register +273F:A2F3  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A2F7  73 37                                jnc     loc_1994                ; Jump if carry=0 + +273F:A2F9  8B 0E 5664                           mov     cx,word ptr play_music_proc+2 +273F:A2FD  33 D2                                xor     dx,dx                   ; Zero register +273F:A2FF  B8 000F                              mov     ax,0Fh +273F:A302  E8 600F                              call    read_entry              ; (0314) +273F:A305  03 16 5664                           add     dx,word ptr play_music_proc+2 +273F:A309  89 16 4D00                           mov     buffer_segment, dx      ; (31E4:4D00=0) +273F:A30D  89 16 5782                           mov     misc_segment, dx +273F:A311  A1 5664                              mov     ax,word ptr play_music_proc+2  ; (31E4:5664=273Fh) +273F:A314  2E: A3 9F62                          mov     word ptr cs:data_442+2,ax ; (273F:9F62=0) +273F:A318  2E: C7 06 9F60 0000                  mov     word ptr cs:data_442,0  ; (273F:9F60=0) +273F:A31F  C7 06 5662 A263                      mov     play_music_proc, offset music_proc_unknown +273F:A325  8C 0E 5664                           mov     word ptr play_music_proc+2,cs + +273F:A329  80 0E 5660 14                        or      music_status, 14h +273F:A32E  EB 05                                jmp     short loc_1995          ; (A335) +273F:A330                       loc_1994:                                        +273F:A330  80 0E 5660 05                        or      music_status, 5 +273F:A335                       loc_1995:                                       ;  xref 273F:A2DC, A32E +273F:A335  80 26 5668 7F                        and     note_flag, MUSIC_NOTE_OFF +273F:A33A  8B 0E 5782                           mov     cx,misc_segment         ; (31E4:5782=0) +273F:A33E  87 0E 4D00                           xchg    buffer_segment, cx      ; (31E4:4D00=0) +273F:A342  89 0E 5782                           mov     misc_segment, cx +273F:A346  89 0E 5780                           mov     palette_segment, cx + +273F:A34A  B8 0032                              mov     ax,32h                  ; Load set of sub-palettes +273F:A34D  33 D2                                xor     dx,dx                    +273F:A34F  E8 5FC2                              call    read_entry +273F:A352  01 16 5782                           add     misc_segment, dx + +; Here it uses a new method of displaying the picture. After having loaded +; Entry Id 32h into the buffer segment, the "Kingdom was at peace" screen will be +; decoded into memory and then copied onto the screen by the [copy_screen_proc] + +273F:A356  B8 0040                              mov     ax,40h                  ; "The kingdom was at peace" +273F:A359  E8 0457                              call    load_pic_with_animation +273F:A35C  FF 16 0766                           call    word ptr [fade_out_proc] + +273F:A360  B8 0100                              mov     ax,100h +273F:A363  BB 0100                              mov     bx,100h +273F:A366  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A36A  33 C0                                xor     ax,ax                   ; Zero register +273F:A36C  E8 0519                              call    pause_with_kbd_mouse_break +273F:A36F  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A373  33 C0                                xor     ax,ax                   ; Install sub-palette #0 +273F:A375  E8 04C1                              call    install_palette +273F:A378  E8 04F3                              call    screen_fade_in +273F:A37B  C6 06 55A0 00                        mov     byte ptr data_835,0     ; (31E4:55A0=0) +273F:A380  B8 035A                              mov     ax,35Ah +273F:A383  E8 0502                              call    pause_with_kbd_mouse_break +273F:A386  73 02                                jnc     loc_1996                ; Jump if full timeout occurred +273F:A388  74 76                                jz      loc_2005                ; Jump if Escape pressed +273F:A38A                       loc_1996:                                       ;  xref 273F:A386 + +; Loop for animation of showing peasants working in the field screen + +273F:A38A  B9 004C                              mov     cx,4Ch                  ; Number of animation frames + +273F:A38D                       locloop_1997:                                   ;  xref 273F:A3A2 +273F:A38D  B8 0007                              mov     ax,7 +273F:A390  E8 04F5                              call    pause_with_kbd_mouse_break +273F:A393  73 05                                jnc     loc_1998                ; Jump if full timeout occurred +273F:A395  75 0F                                jnz     loc_1999                ; Jump if Escape not pressed +273F:A397  E9 0202                              jmp     loc_2019 +273F:A39A                       loc_1998:                                       ;  xref 273F:A393 +273F:A39A  57                                   push    di +273F:A39B  51                                   push    cx +273F:A39C  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A3A0  59                                   pop     cx +273F:A3A1  5F                                   pop     di +273F:A3A2  E2 E9                                loop    locloop_1997            ; Loop if cx > 0 + +273F:A3A4  EB 15                                jmp     short loc_2001          ; (A3BB) +273F:A3A6                       loc_1999:                                       ;  xref 273F:A395 +273F:A3A6  E8 04B6                              call    fade_out + +273F:A3A9                       locloop_2000:                                   ;  xref 273F:A3AF +273F:A3A9  51                                   push    cx +273F:A3AA  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A3AE  59                                   pop     cx +273F:A3AF  E2 F8                                loop    locloop_2000            ; Loop if cx > 0 + +273F:A3B1  B8 0001                              mov     ax,1 +273F:A3B4  E8 0482                              call    install_palette +273F:A3B7  FF 16 0760                           call    word ptr [fade_in_proc] +273F:A3BB                       loc_2001:                                       ;  xref 273F:A3A4 +273F:A3BB  B8 0042                              mov     ax,42h                  ; Cliff overhang image +273F:A3BE  E8 03F2                              call    load_pic_with_animation                  +273F:A3C1  B8 0001                              mov     ax,1 +273F:A3C4  E8 0472                              call    install_palette +273F:A3C7  FF 16 0762                           call    [set_lower_palette_proc] +273F:A3CB  BA 0014                              mov     dx,14h +273F:A3CE  E8 FDE9                              call    sub_256                 ; (A1BA) +273F:A3D1  B8 0064                              mov     ax,64h +273F:A3D4  E8 04B1                              call    pause_with_kbd_mouse_break +273F:A3D7  73 02                                jnc     loc_2002                ; Jump if carry=0 +273F:A3D9  74 25                                jz      loc_2005                ; Jump if zero +273F:A3DB                       loc_2002:                                       ;  xref 273F:A3D7 +273F:A3DB  B8 0101                              mov     ax,101h +273F:A3DE  BB 0100                              mov     bx,100h +273F:A3E1  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A3E5  B8 00C8                              mov     ax,0C8h +273F:A3E8  E8 049D                              call    pause_with_kbd_mouse_break +273F:A3EB  73 02                                jnc     loc_2003                ; Jump if carry=0 +273F:A3ED  74 11                                jz      loc_2005                ; Jump if zero +273F:A3EF                       loc_2003:                                       ;  xref 273F:A3EB +273F:A3EF  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A3F3  B9 0064                              mov     cx,64h + +273F:A3F6                       locloop_2004:                                   ;  xref 273F:A409 +273F:A3F6  B8 0007                              mov     ax,7 +273F:A3F9  E8 048C                              call    pause_with_kbd_mouse_break +273F:A3FC  73 05                                jnc     loc_2006                ; Jump if carry=0 +273F:A3FE  75 0D                                jnz     loc_2007                ; Jump if not zero +273F:A400                       loc_2005:                                       ;  xref 273F:A388, A3D9, A3ED, A434 +273F:A400  E9 0199                              jmp     loc_2019                ; (A59C) +273F:A403                       loc_2006:                                       ;  xref 273F:A3FC +273F:A403  51                                   push    cx +273F:A404  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A408  59                                   pop     cx +273F:A409  E2 EB                                loop    locloop_2004            ; Loop if cx > 0 + +273F:A40B  EB 0F                                jmp     short loc_2009          ; (A41C) +273F:A40D                       loc_2007:                                       ;  xref 273F:A3FE +273F:A40D  E8 044F                              call    fade_out + +273F:A410                       locloop_2008:                                   ;  xref 273F:A416 +273F:A410  51                                   push    cx +273F:A411  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A415  59                                   pop     cx +273F:A416  E2 F8                                loop    locloop_2008            ; Loop if cx > 0 + +273F:A418  FF 16 0760                           call    word ptr [fade_in_proc] +273F:A41C                       loc_2009:                                       ;  xref 273F:A40B +273F:A41C  B8 0044                              mov     ax,44h +273F:A41F  E8 0391                              call    load_pic_with_animation +273F:A422  B8 0002                              mov     ax,2 +273F:A425  E8 0411                              call    install_palette +273F:A428  FF 16 0762                           call    [set_lower_palette_proc] +273F:A42C  B8 05FA                              mov     ax,5FAh +273F:A42F  E8 0456                              call    pause_with_kbd_mouse_break +273F:A432  73 02                                jnc     loc_2010                ; Jump if carry=0 +273F:A434  74 CA                                jz      loc_2005                ; Jump if zero +273F:A436                       loc_2010:                                       ;  xref 273F:A432 +273F:A436  E8 FDBA                              call    sub_257                 ; (A1F3) +273F:A439  B8 0102                              mov     ax,102h +273F:A43C  BB 0100                              mov     bx,100h +273F:A43F  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A443  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A447  B9 00F3                              mov     cx,0F3h + +273F:A44A                       locloop_2011:                                   ;  xref 273F:A45D +273F:A44A  B8 0004                              mov     ax,4 +273F:A44D  E8 0438                              call    pause_with_kbd_mouse_break +273F:A450  73 05                                jnc     loc_2012                ; Jump if carry=0 +273F:A452  75 0B                                jnz     loc_2013                ; Jump if not zero +273F:A454  E9 0145                              jmp     loc_2019                ; (A59C) +273F:A457                       loc_2012:                                       ;  xref 273F:A450 +273F:A457  51                                   push    cx +273F:A458  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A45C  59                                   pop     cx +273F:A45D  E2 EB                                loop    locloop_2011            ; Loop if cx > 0 + +273F:A45F                       loc_2013:                                       ;  xref 273F:A452 +273F:A45F  B8 0024                              mov     ax,24h +273F:A462  E8 034E                              call    load_pic_with_animation +273F:A465  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A469  33 C0                                xor     ax,ax                   ; Zero register +273F:A46B  E8 041A                              call    pause_with_kbd_mouse_break +273F:A46E  B8 0003                              mov     ax,3 +273F:A471  E8 03C5                              call    install_palette +273F:A474  E8 0404                              call    set_lower_palette +273F:A477  B8 0328                              mov     ax,328h +273F:A47A  E8 040B                              call    pause_with_kbd_mouse_break +273F:A47D  E8 FD73                              call    sub_257                 ; (A1F3) +273F:A480  B8 0103                              mov     ax,103h +273F:A483  BB 0100                              mov     bx,100h +273F:A486  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A48A  B8 0046                              mov     ax,46h +273F:A48D  E8 0323                              call    load_pic_with_animation +273F:A490  B8 031E                              mov     ax,31Eh +273F:A493  E8 03F2                              call    pause_with_kbd_mouse_break +273F:A496  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A49A  B9 007C                              mov     cx,7Ch + +273F:A49D                       locloop_2014:                                   ;  xref 273F:A4B0 +273F:A49D  B8 0007                              mov     ax,7 +273F:A4A0  E8 03E5                              call    pause_with_kbd_mouse_break +273F:A4A3  73 05                                jnc     loc_2015                ; Jump if carry=0 +273F:A4A5  75 0B                                jnz     loc_2016                ; Jump if not zero +273F:A4A7  E9 00F2                              jmp     loc_2019                ; (A59C) +273F:A4AA                       loc_2015:                                       ;  xref 273F:A4A3 +273F:A4AA  51                                   push    cx +273F:A4AB  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A4AF  59                                   pop     cx +273F:A4B0  E2 EB                                loop    locloop_2014            ; Loop if cx > 0 + +273F:A4B2                       loc_2016:                                       ;  xref 273F:A4A5 +273F:A4B2  B8 0048                              mov     ax,48h +273F:A4B5  E8 02FB                              call    load_pic_with_animation +273F:A4B8  E8 03A4                              call    fade_out +273F:A4BB  B8 0004                              mov     ax,4 +273F:A4BE  E8 0378                              call    install_palette +273F:A4C1  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A4C5  B8 0063                              mov     ax,63h +273F:A4C8  E8 03BD                              call    pause_with_kbd_mouse_break +273F:A4CB  E8 03AD                              call    set_lower_palette +273F:A4CE  B8 0054                              mov     ax,54h +273F:A4D1  E8 03B4                              call    pause_with_kbd_mouse_break +273F:A4D4  E8 0388                              call    fade_out +273F:A4D7  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A4DB  B8 005D                              mov     ax,5Dh +273F:A4DE  E8 03A7                              call    pause_with_kbd_mouse_break +273F:A4E1  E8 0397                              call    set_lower_palette +273F:A4E4  B8 0052                              mov     ax,52h +273F:A4E7  E8 039E                              call    pause_with_kbd_mouse_break +273F:A4EA  E8 0372                              call    fade_out +273F:A4ED  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A4F1  B8 003F                              mov     ax,3Fh +273F:A4F4  E8 0391                              call    pause_with_kbd_mouse_break +273F:A4F7  E8 0381                              call    set_lower_palette +273F:A4FA  B8 0057                              mov     ax,57h +273F:A4FD  E8 0388                              call    pause_with_kbd_mouse_break +273F:A500  E8 035C                              call    fade_out +273F:A503  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A507  B8 0059                              mov     ax,59h +273F:A50A  E8 037B                              call    pause_with_kbd_mouse_break +273F:A50D  E8 036B                              call    set_lower_palette +273F:A510  B8 005A                              mov     ax,5Ah +273F:A513  E8 0372                              call    pause_with_kbd_mouse_break +273F:A516  E8 0346                              call    fade_out +273F:A519  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A51D  B8 0035                              mov     ax,35h +273F:A520  E8 0365                              call    pause_with_kbd_mouse_break +273F:A523  E8 0355                              call    set_lower_palette +273F:A526  B8 0058                              mov     ax,58h +273F:A529  E8 035C                              call    pause_with_kbd_mouse_break +273F:A52C  E8 0330                              call    fade_out +273F:A52F  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A533  B8 005B                              mov     ax,5Bh +273F:A536  E8 034F                              call    pause_with_kbd_mouse_break +273F:A539  E8 033F                              call    set_lower_palette +273F:A53C  B8 0059                              mov     ax,59h +273F:A53F  E8 0346                              call    pause_with_kbd_mouse_break +273F:A542  FF 16 0766                           call    word ptr [fade_out_proc] + +273F:A546  B8 0021                              mov     ax,21h +273F:A549  E8 957B                              call    read_palette            ; (3AC7) +273F:A54C  B8 0022                              mov     ax,22h +273F:A54F  E8 0261                              call    load_pic_with_animation +273F:A552  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A556  B8 A000                              mov     ax, VGA_SEGMENT +273F:A559  8E C0                                mov     es,ax +273F:A55B úBF F000                              mov     di,data_1448e           ; (A000:F000=0) +273F:A55E  B9 0500                              mov     cx,500h +273F:A561  33 C0                                xor     ax,ax                   ; Zero register +273F:A563  F3/ AB                               rep     stosw                   ; Rep when cx >0 Store ax to es:[di] +273F:A565  FF 16 0760                           call    word ptr [fade_in_proc] +273F:A569  33 C0                                xor     ax,ax                   ; Zero register +273F:A56B  E8 031A                              call    pause_with_kbd_mouse_break +273F:A56E  B8 0384                              mov     ax,384h +273F:A571  E8 0314                              call    pause_with_kbd_mouse_break +273F:A574  72 19                                jc      loc_2018                ; Jump if carry Set +273F:A576  F6 06 5660 10                        test    music_status, 10h +273F:A57B  75 12                                jnz     loc_2018                ; Jump if not zero +273F:A57D                       loc_2017:                                       ;  xref 273F:A58D +273F:A57D  B8 0005                              mov     ax,5 +273F:A580  E8 0305                              call    pause_with_kbd_mouse_break +273F:A583  72 0A                                jc      loc_2018                ; Jump if carry Set +273F:A585  F9                                   stc                             ; Set carry flag +273F:A586  B8 0503                              mov     ax,503h +273F:A589  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A58D  73 EE                                jnc     loc_2017                ; Jump if carry=0 +273F:A58F                       loc_2018:                                       ;  xref 273F:A574, A57B, A583 +273F:A58F  E8 FC61                              call    sub_257                 ; (A1F3) +273F:A592  80 26 5660 FB                        and     music_status, 0FBh +273F:A597  FF 16 0766                           call    word ptr [fade_out_proc] +273F:A59B  C3                                   retn +273F:A59C                       loc_2019:                                       ;  xref 273F:A397, A400, A454, A4A7 +273F:A59C  FF 16 0766                           call    word ptr [fade_out_proc] +273F:A5A0  BA 0014                              mov     dx,14h +273F:A5A3  E8 FC14                              call    sub_256                 ; (A1BA) +273F:A5A6  80 26 5660 FB                        and     music_status, 0FBh +273F:A5AB  C3                                   retn +                           show_introduction    endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0033 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A5AC                       sub_261         proc    near +273F:A5AC  E8 FC44                              call    sub_257                 ; (A1F3) +273F:A5AF  A1 4CFE                              mov     ax, data_814 +273F:A5B2  A3 5782                              mov     misc_segment, ax +273F:A5B5  E8 79A7                              call    show_disk_cursor +273F:A5B8  B8 404C                              mov     ax,404Ch +273F:A5BB  E8 9509                              call    read_palette            ; (3AC7) +273F:A5BE  B8 404D                              mov     ax,404Dh +273F:A5C1  E8 01EF                              call    load_pic_with_animation +273F:A5C4  80 0E 11D0 01                        or      menubar_state, 1     ; (31E4:11D0=3) +273F:A5C9  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:A5CD  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A5D1  E8 029A                              call    sub_267                 ; (A86E) +273F:A5D4  53                                   push    bx +273F:A5D5  B8 0140                              mov     ax,140h +273F:A5D8  33 DB                                xor     bx,bx                   ; Zero register +273F:A5DA  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A5DE  5B                                   pop     bx +273F:A5DF  B9 0018                              mov     cx,18h + +273F:A5E2                       locloop_2020:                                   ;  xref 273F:A5EE +273F:A5E2  51                                   push    cx +273F:A5E3  B8 0006                              mov     ax,6 +273F:A5E6  E8 A400                              call    sleep                    +273F:A5E9  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A5ED  59                                   pop     cx +273F:A5EE  E2 F2                                loop    locloop_2020            ; Loop if cx > 0 + +273F:A5F0  B8 404F                              mov     ax,404Fh +273F:A5F3  E8 01BD                              call    load_pic_with_animation +273F:A5F6  FF 16 0764                           call    [empty_palette_proc] +273F:A5FA  B9 0004                              mov     cx,4 + +273F:A5FD                       locloop_2021:                                   ;  xref 273F:A620 +273F:A5FD  51                                   push    cx +273F:A5FE  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A602  59                                   pop     cx +273F:A603  83 F9 04                             cmp     cx,4 +273F:A606  75 05                                jne     loc_2022                ; Jump if not equal +273F:A608  51                                   push    cx +273F:A609  E8 0262                              call    sub_267                 ; (A86E) +273F:A60C  59                                   pop     cx +273F:A60D                       loc_2022:                                       ;  xref 273F:A606 +273F:A60D  51                                   push    cx +273F:A60E  B9 000B                              mov     cx,0Bh + +273F:A611                       locloop_2023:                                   ;  xref 273F:A61D +273F:A611  51                                   push    cx +273F:A612  B8 0005                              mov     ax,5 +273F:A615  E8 A3D1                              call    sleep                   ; (49E9) +273F:A618  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A61C  59                                   pop     cx +273F:A61D  E2 F2                                loop    locloop_2023            ; Loop if cx > 0 + +273F:A61F  59                                   pop     cx +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 392 + +273F:A620  E2 DB                                loop    locloop_2021            ; Loop if cx > 0 + +273F:A622  FF 16 0764                           call    [empty_palette_proc] +273F:A626  B8 4051                              mov     ax,4051h +273F:A629  E8 0187                              call    load_pic_with_animation +273F:A62C  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A630  E8 0248                              call    set_lower_palette +273F:A633  B9 0006                              mov     cx,6 + +273F:A636                       locloop_2024:                                   ;  xref 273F:A642 +273F:A636  51                                   push    cx +273F:A637  B8 0006                              mov     ax,6 +273F:A63A  E8 A3AC                              call    sleep                   ; (49E9) +273F:A63D  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A641  59                                   pop     cx +273F:A642  E2 F2                                loop    locloop_2024            ; Loop if cx > 0 + +273F:A644  FF 16 0766                           call    word ptr [fade_out_proc] +273F:A648  80 26 11D0 FE                        and     menubar_state, 0FEh  ; (31E4:11D0=3) +273F:A64D  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:A651  E8 D440                              call    load_resources +273F:A654  E8 FB9C                              call    sub_257                 ; (A1F3) +273F:A657  C6 06 BAB9 01                        mov     byte ptr script_val_88, 1 +273F:A65C  C3                                   retn +                                sub_261         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0153 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A65D                    skorl_knockout     proc    near +273F:A65D  FF 16 0766                           call    word ptr [fade_out_proc] +273F:A661  E8 78FB                              call    show_disk_cursor +273F:A664  A1 4CFE                              mov     ax, data_814  +273F:A667  A3 5782                              mov     misc_segment, ax +273F:A66A  B8 4060                              mov     ax,4060h +273F:A66D  E8 9457                              call    read_palette            ; (3AC7) +273F:A670  B8 4061                              mov     ax,4061h +273F:A673  E8 013D                              call    load_pic_with_animation +273F:A676  80 0E 11D0 01                        or      menubar_state, 1     ; (31E4:11D0=3) +273F:A67B  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:A67F  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A683  E8 01E8                              call    sub_267                 ; (A86E) +273F:A686  B9 0018                              mov     cx,18h + +273F:A689                       locloop_2025:                                   ;  xref 273F:A6A8 +273F:A689  51                                   push    cx +273F:A68A  B8 0004                              mov     ax,4 +273F:A68D  E8 A359                              call    sleep                   ; (49E9) +273F:A690  83 F9 0C                             cmp     cx,0Ch +273F:A693  75 0E                                jne     loc_2026                ; Jump if not equal +273F:A695  55                                   push    bp +273F:A696  56                                   push    si +273F:A697  52                                   push    dx +273F:A698  53                                   push    bx +273F:A699  BB 0033                              mov     bx,33h +273F:A69C  E8 F95E                              call    play_sound                 ; (9FFD) +273F:A69F  5B                                   pop     bx +273F:A6A0  5A                                   pop     dx +273F:A6A1  5E                                   pop     si +273F:A6A2  5D                                   pop     bp +273F:A6A3                       loc_2026:                                       ;  xref 273F:A693 +273F:A6A3  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A6A7  59                                   pop     cx +273F:A6A8  E2 DF                                loop    locloop_2025            ; Loop if cx > 0 + +273F:A6AA  FF 16 0766                           call    word ptr [fade_out_proc] +273F:A6AE  E8 D3E3                              call    load_resources +273F:A6B1  80 26 11D0 FE                        and     menubar_state, 0FEh  ; (31E4:11D0=3) +273F:A6B6  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:A6BA  C3                                   retn +                             skorl_knockout     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:0038 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                                sub_263         proc    near +273F:A6BB  A1 4CFE                              mov     ax, data_814 +273F:A6BE  A3 5782                              mov     misc_segment, ax +273F:A6C1  B8 E9F0                              mov     ax,0E9F0h +273F:A6C4  E8 9400                              call    read_palette            ; (3AC7) +273F:A6C7  B8 E9F1                              mov     ax,0E9F1h +273F:A6CA  E8 00E6                              call    load_pic_with_animation +273F:A6CD  80 0E 11D0 01                        or      menubar_state, 1     ; (31E4:11D0=3) +273F:A6D2  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:A6D6  E8 FB1A                              call    sub_257                 ; (A1F3) +273F:A6D9  B8 013B                              mov     ax,13Bh +273F:A6DC  33 DB                                xor     bx,bx                   ; Zero register +273F:A6DE  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A6E2  FF 16 077E                           call    word ptr [copy_screen_proc] +273F:A6E6  E8 0185                              call    sub_267                 ; (A86E) +273F:A6E9  B9 00B0                              mov     cx,0B0h + +273F:A6EC                       locloop_2027:                                   ;  xref 273F:A6F8 +273F:A6EC  51                                   push    cx +273F:A6ED  B8 0007                              mov     ax,7 +273F:A6F0  E8 A2F6                              call    sleep                   ; (49E9) +273F:A6F3  FF 16 0780                           call    word ptr [pic_decode_proc] +273F:A6F7  59                                   pop     cx +273F:A6F8  E2 F2                                loop    locloop_2027            ; Loop if cx > 0 + +273F:A6FA  C7 06 9832 002A                      mov     room_number, ROOMNUM_WINE_CELLAR +273F:A700  E8 D391                              call    load_resources +273F:A703  FF 16 0766                           call    word ptr [fade_out_proc] +273F:A707  80 26 11D0 FE                        and     menubar_state, 0FEh +273F:A70C  FF 16 075E                           call    word ptr [show_cursor_proc] +273F:A710  C3                                   retn +                                sub_263         endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [pic_decode_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                           vga_pic_decode       proc    near + +273F:A711  1E                                   push    ds +273F:A712  B8 A000                              mov     ax, VGA_SEGMENT +273F:A715  8E C0                                mov     es,ax +273F:A717  33 FF                                xor     di,di                   ; Zero register +273F:A719  8E DA                                mov     ds,dx +273F:A71B                       loc_2028: +273F:A71B  8A 0F                                mov     cl,[bx]                 ; Get repeating length +273F:A71D  32 ED                                xor     ch,ch +273F:A71F  83 C3 01                             add     bx,1 +273F:A722  0A C9                                or      cl,cl                   ; Was the repeat length 0? +273F:A724  75 05                                jnz     loc_2029 +273F:A726  8B 0F                                mov     cx,[bx]                 ; Yes, so get length from next 2 bytes +273F:A728  83 C3 02                             add     bx,2 +273F:A72B                       loc_2029: +273F:A72B  8E DD                                mov     ds,bp +273F:A72D  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:A72F  8E DA                                mov     ds,dx +273F:A731  8A 07                                mov     al,[bx]                 ; Get screen inc amount +273F:A733  32 E4                                xor     ah,ah +273F:A735  83 C3 01                             add     bx,1 +273F:A738  0A C0                                or      al,al                   ; Zero ? +273F:A73A  75 05                                jnz     loc_2030 +273F:A73C  8B 07                                mov     ax,[bx]                 ; Yes, so get inc from next 2 bytes +273F:A73E  83 C3 02                             add     bx,2 +273F:A741                       loc_2030: +273F:A741  03 F8                                add     di,ax +273F:A743  81 FF FA00                           cmp     di, 320*200             ; 0FA00h = full screen +273F:A747  72 D2                                jb      loc_2028                ; Jump if below +273F:A749  1F                                   pop     ds +273F:A74A  B1 04                                mov     cl,4 + +273F:A74C  8B C6                                mov     ax,si +273F:A74E  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:A750  03 E8                                add     bp,ax +273F:A752  83 E6 0F                             and     si,0Fh + +273F:A755  8B C3                                mov     ax,bx +273F:A757  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:A759  03 D0                                add     dx,ax +273F:A75B  83 E3 0F                             and     bx,0Fh +273F:A75E  C3                                   retn + +                           vga_pic_decode      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [pic_decode_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                           ega_pic_decode      endp + +273F:A75F  1E                                   push    ds +273F:A760  1E                                   push    ds +273F:A761  07                                   pop     es +273F:A762  8E DD                                mov     ds,bp +273F:A764  AC                                   lodsb                           ; String [si] to al +273F:A765  8A C8                                mov     cl,al +273F:A767                       loc_2031:                                       ;  xref 273F:A77D +273F:A767 ú80 E9 01                             sub     cl,1 +273F:A76A  72 13                                jc      loc_2032                ; Jump if carry Set +273F:A76C  AC                                   lodsb                           ; String [si] to al +273F:A76D  32 E4                                xor     ah,ah                   ; Zero register +273F:A76F  8B D8                                mov     bx,ax +273F:A771  26: C6 87 0790 01                    mov     byte ptr es:[hotspot_rects_list][bx],1 ; (273F:0790=1Fh) +273F:A777  26: C6 87 0890 01                    mov     byte ptr es:[hotspot_rects_list+100h][bx],1 ; (273F:0890=0BEh) +273F:A77D  EB E8                                jmp     short loc_2031          ; (A767) +273F:A77F                       loc_2032:                                       ;  xref 273F:A76A +273F:A77F  26: A1 4CE4                          mov     ax, es:data_segment2 +273F:A783  8E C0                                mov     es,ax +273F:A785  BF 0500                              mov     di, MENUBAR_BLOCK_SIZE/2 +273F:A788                       loc_2033:                                       ;  xref 273F:A797, A79D +273F:A788 úAC                                   lodsb                           ; String [si] to al +273F:A789  32 E4                                xor     ah,ah                   ; Zero register +273F:A78B  03 F8                                add     di,ax +273F:A78D ú81 FF 7D00                           cmp     di,data_1467e           ; (FF12:7D00=0C2h) +273F:A791  73 0C                                jae     loc_2034                ; Jump if above or = +273F:A793  AC                                   lodsb                           ; String [si] to al +273F:A794  25 00FF                              and     ax,0FFh +273F:A797  74 EF                                jz      loc_2033                ; Jump if zero +273F:A799  8B C8                                mov     cx,ax +273F:A79B  F3/ A4                               rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di] +273F:A79D  EB E9                                jmp     short loc_2033          ; (A788) +273F:A79F                       loc_2034:                                       ;  xref 273F:A791 +273F:A79F  1F                                   pop     ds +273F:A7A0  B1 04                                mov     cl,4 +273F:A7A2  8B C6                                mov     ax,si +273F:A7A4  D3 E8                                shr     ax,cl                   ; Shift w/zeros fill +273F:A7A6  03 E8                                add     bp,ax +273F:A7A8  83 E6 0F                             and     si,0Fh +273F:A7AB  55                                   push    bp +273F:A7AC  56                                   push    si +273F:A7AD  E8 78AC                              call    ega_show_menu +273F:A7B0  5E                                   pop     si +273F:A7B1  5D                                   pop     bp +273F:A7B2  C3                                   retn + +                           ega_pic_decode      endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A359, A3BE, A41F, A462, A48D, A4B5, A54F +                                ;                             A5C1, A5F3, A629, A673, A6CA, A91A, A9E3 +                                ;                             A9F3 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A7B3            load_pic_with_animation    proc    near +273F:A7B3  50                                   push    ax +273F:A7B4  E8 5C2F                              call    get_entry_size +273F:A7B7  8B 0E 4D02                           mov     cx,buffer_segment_end   ; (31E4:4D02=0) +273F:A7BB  2B CA                                sub     cx,dx +273F:A7BD  33 D2                                xor     dx,dx                   ; Zero register +273F:A7BF  51                                   push    cx +273F:A7C0  E8 5B51                              call    read_entry              ; (0314) +273F:A7C3  5A                                   pop     dx +273F:A7C4  83 EA 08                             sub     dx,8 +273F:A7C7  A1 5782                              mov     ax,misc_segment         ; (31E4:5782=0) +273F:A7CA  8E C0                                mov     es,ax +273F:A7CC  E8 91BB                              call    decode_file_entry       ; (398A) +273F:A7CF  89 16 5784                           mov     decoded_data_end_segment, dx +273F:A7D3  58                                   pop     ax +273F:A7D4  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:A7D9  74 0A                                je      loc_ret_2035            ; Jump if equal +273F:A7DB  8B CA                                mov     cx,dx +273F:A7DD  33 D2                                xor     dx,dx                   ; Zero register +273F:A7DF  05 0001                              add     ax,1 +273F:A7E2  E8 5B2F                              call    read_entry              ; (0314) + +273F:A7E5                       loc_ret_2035:                                   ;  xref 273F:A7D9 +273F:A7E5  C3                                   retn +                     load_pic_with_animation    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called indircetly via calls to word ptr [copy_screen_proc] +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                             vga_copy_screen    proc    near + +273F:A7E6  B8 A000                              mov     ax, VGA_SEGMENT +273F:A7E9  8E C0                                mov     es,ax +273F:A7EB  1E                                   push    ds +273F:A7EC  A1 5782                              mov     ax,misc_segment         ; (31E4:5782=0) +273F:A7EF  8E D8                                mov     ds,ax +273F:A7F1  33 F6                                xor     si,si                   ; Zero register +273F:A7F3  33 FF                                xor     di,di                   ; Zero register +273F:A7F5  B9 7D00                              mov     cx, 320*200/2           ; 7D00h +273F:A7F8  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:A7FA  1F                                   pop     ds +273F:A7FB  8B 2E 5782                           mov     bp,misc_segment         ; (31E4:5782=0) +273F:A7FF  81 C5 0FA0                           add     bp, 320*200/16          ; 0FA0h (segment incr amount) +273F:A803  8B 16 5784                           mov     dx, decoded_data_end_segment +273F:A807  33 F6                                xor     si,si                   ; Zero register for BP:SI return +273F:A809  33 DB                                xor     bx,bx                   ; Zero register for DX:BX return +273F:A80B  C3                                   retn + +                             vga_copy_screen    endp + +                             ega_copy_screen    proc    near + +                                                assume  ds:seg_code +273F:A80C  A1 5784                              mov     ax,data_354             ; (273F:5784=0A302h) +273F:A80F  A3 4CE4                              mov     data_segment2, ax +273F:A812  8E C0                                mov     es,ax +273F:A814  1E                                   push    ds +273F:A815  A1 5782                              mov     ax,data_353             ; (273F:5782=0C583h) +273F:A818  8E D8                                mov     ds,ax +273F:A81A  33 F6                                xor     si,si                   ; Zero register +273F:A81C úBF 0500                              mov     di,data_1450e           ; (A302:0500=0) +273F:A81F  B9 3C00                              mov     cx,3C00h +273F:A822  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] +273F:A824  1F                                   pop     ds +273F:A825  E8 6139                              call    clear_hotspot_rects +273F:A828  E8 C7DA                              call    menubar_clear_image +273F:A82B  E8 782E                              call    ega_show_menu +273F:A82E  8B 2E 5782                           mov     bp,data_353             ; (273F:5782=0C583h) +273F:A832  81 C5 0780                           add     bp,780h +273F:A836  33 F6                                xor     si,si                   ; Zero register +273F:A838  C3                                   retn + +                             ega_copy_screen    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A375, A3B4, A3C4, A425, A471, A4BE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A839               install_palette         proc    near +                                                assume  ds:data_seg +273F:A839  80 3E 0742 02                        cmp     video_style, VIDEO_STYLE_EGA +273F:A83E  74 1E                                je      loc_ret_2036            ; Jump if equal +273F:A840  56                                   push    si +273F:A841  57                                   push    di +273F:A842  52                                   push    dx +273F:A843  1E                                   push    ds + +273F:A844 úBE 00C0                              mov     si, 0C0h                ; 64 palette entries * 3 bytes +273F:A847  F7 E6                                mul     si                      ; dx:ax = reg * ax +273F:A849  8B F0                                mov     si,ax +273F:A84B úBF 1457                              mov     di,offset unprocessed_vga_palette +273F:A84E  1E                                   push    ds +273F:A84F  07                                   pop     es +273F:A850  A1 5780                              mov     ax, palette_segment +273F:A853  8E D8                                mov     ds,ax +273F:A855  B9 0060                              mov     cx, 0C0h/2              ; Copy palette data over +273F:A858  F3/ A5                               rep     movsw                   ; Rep when cx >0 Mov [si] to es:[di] + +273F:A85A  1F                                   pop     ds +273F:A85B  5A                                   pop     dx +273F:A85C  5F                                   pop     di +273F:A85D  5E                                   pop     si + +273F:A85E                       loc_ret_2036:                                   ;  xref 273F:A83E +273F:A85E  C3                                   retn +                        install_palette         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A3A6, A40D, A4B8, A4D4, A4EA, A500, A516 +                                ;                             A52C +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A85F                      fade_out         proc    near +273F:A85F  55                                   push    bp +273F:A860  56                                   push    si +273F:A861  52                                   push    dx +273F:A862  53                                   push    bx +273F:A863  51                                   push    cx +273F:A864  FF 16 0766                           call    word ptr [fade_out_proc] +273F:A868  59                                   pop     cx +273F:A869  5B                                   pop     bx +273F:A86A  5A                                   pop     dx +273F:A86B  5E                                   pop     si +273F:A86C  5D                                   pop     bp +273F:A86D  C3                                   retn +                               fade_out         endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A378, A5D1, A609, A683, A6E6, A932 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A86E                  screen_fade_in       proc    near +273F:A86E  55                                   push    bp +273F:A86F  56                                   push    si +273F:A870  52                                   push    dx +273F:A871  53                                   push    bx +273F:A872  FF 16 0760                           call    word ptr [fade_in_proc] +273F:A876  5B                                   pop     bx +273F:A877  5A                                   pop     dx +273F:A878  5E                                   pop     si +273F:A879  5D                                   pop     bp +273F:A87A  C3                                   retn +                           screen_fade_in       endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A474, A4CB, A4E1, A4F7, A50D, A523, A539 +                                ;                             A630 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A87B                 set_lower_palette     proc    near +273F:A87B  55                                   push    bp +273F:A87C  56                                   push    si +273F:A87D  52                                   push    dx +273F:A87E  53                                   push    bx +273F:A87F  FF 16 0762                           call    [set_lower_palette_proc] +273F:A883  5B                                   pop     bx +273F:A884  5A                                   pop     dx +273F:A885  5E                                   pop     si +273F:A886  5D                                   pop     bp +273F:A887  C3                                   retn +                          set_lower_palette     endp + + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ;         Called from:   273F:A36C, A383, A390, A3D4, A3E8, A3F9, A42F +                                ;                             A44D, A46B, A47A, A493, A4A0, A4C8, A4D1 +                                ;                             A4DE, A4E7, A4F4, A4FD, A50A, A513, A520 +                                ;                             A529, A536, A53F, A56B, A571, A580, A9E9 +                                ;                             A9F9 +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +273F:A888         pause_with_kbd_mouse_break    proc    near +273F:A888                       loc_2037:                                       ;  xref 273F:A89A, A8B8 +273F:A888 úF6 06 55A0 FF                        test    byte ptr data_835,0FFh  ; (31E4:55A0=0) +273F:A88D  75 15                                jnz     loc_2038                ; Jump if not zero +273F:A88F  F6 06 11D5 03                        test    byte ptr mouse_buttons, 3 +273F:A894  75 42                                jnz     loc_2043                ; Jump if not zero +273F:A896  39 06 38B1                           cmp     time_ctr, ax            ; (31E4:38B1=0) +273F:A89A  72 EC                                jb      loc_2037                ; Jump if below +273F:A89C  C7 06 38B1 0000                      mov     time_ctr, 0             ; (31E4:38B1=0) +273F:A8A2  F8                                   clc                             ; Clear carry flag +273F:A8A3  C3                                   retn +273F:A8A4                       loc_2038:                                       ;  xref 273F:A88D +273F:A8A4  C6 06 55A0 00                        mov     byte ptr data_835,0     ; (31E4:55A0=0) +273F:A8A9  52                                   push    dx +273F:A8AA  50                                   push    ax +273F:A8AB  A1 38B1                              mov     ax, time_ctr            ; (31E4:38B1=0) +273F:A8AE  B4 06                                mov     ah,6 +273F:A8B0  B2 FF                                mov     dl,0FFh +273F:A8B2  CD 21                                int     21h                     ; DOS Services  ah=function 06h +                                                                                ;  special char i/o, dl=subfunc +273F:A8B4  75 04                                jnz     loc_2040                ; Jump if not zero +273F:A8B6                       loc_2039:                                       ;  xref 273F:A8CA +273F:A8B6  58                                   pop     ax +273F:A8B7  5A                                   pop     dx +273F:A8B8  EB CE                                jmp     short loc_2037          ; (A888) +273F:A8BA                       loc_2040:                                       ;  xref 273F:A8B4 +273F:A8BA  50                                   push    ax +273F:A8BB                       loc_2041:                                       ;  xref 273F:A8C1 +273F:A8BB  B4 06                                mov     ah,6 +273F:A8BD  B2 FF                                mov     dl,0FFh +273F:A8BF  CD 21                                int     21h                     ; DOS Services  ah=function 06h +                                                                                ;  special char i/o, dl=subfunc +273F:A8C1  75 F8                                jnz     loc_2041                ; Jump if not zero +273F:A8C3  58                                   pop     ax +273F:A8C4  3C 20                                cmp     al,20h                  ; ' ' +273F:A8C6  74 04                                je      loc_2042                ; Jump if equal +273F:A8C8  3C 1B                                cmp     al,1Bh +273F:A8CA  75 EA                                jne     loc_2039                ; Jump if not equal +273F:A8CC                       loc_2042:                                       ;  xref 273F:A8C6 +273F:A8CC  C7 06 38B1 0000                      mov     time_ctr, 0             ; (31E4:38B1=0) +273F:A8D2  3C 1B                                cmp     al,1Bh +273F:A8D4  F9                                   stc                             ; Set carry flag +273F:A8D5  58                                   pop     ax +273F:A8D6  5A                                   pop     dx +273F:A8D7  C3                                   retn +273F:A8D8                       loc_2043:                                       ;  xref 273F:A894 +273F:A8D8  F6 06 11D5 01                        test    mouse_buttons, 1 +273F:A8DD  F9                                   stc                             ; Set carry flag +273F:A8DE  C3                                   retn +                  pause_with_kbd_mouse_break    endp + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ; +                                ; Starts ending sequence +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +                        seq_endgame_sequence    proc    near +273F:A8DF  FF 16 0766                           call    word ptr ds:[fade_out_proc] +273F:A8E3  E8 7679                              call    show_disk_cursor +273F:A8E6  E8 F90A                              call    sub_257                 ; (A1F3) +273F:A8E9  A1 4CFE                              mov     ax, data_814 +273F:A8EC  A3 5782                              mov     data_353, ax +273F:A8EF  F6 06 5660 20                        test    music_status, 20h +273F:A8F4  74 1B                                jz      loc_2044                ; Jump if zero +273F:A8F6  B8 FF10                              mov     ax,0FF10h +273F:A8F9  8B 0E 5782                           mov     cx,data_353             ; (273F:5782=0C583h) +273F:A8FD  51                                   push    cx +273F:A8FE  33 D2                                xor     dx,dx                   ; Zero register +273F:A900  E8 5A11                              call    read_entry              ; (0314) +273F:A903  01 16 5782                           add     data_353,dx             ; (273F:5782=0C583h) +273F:A907  B8 0004                              mov     ax,4 +273F:A90A  5A                                   pop     dx +273F:A90B  33 C9                                xor     cx,cx                   ; Zero register +273F:A90D  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A911                       loc_2044:                                       ;  xref 273F:A8F4 +273F:A911  B8 FF00                              mov     ax,0FF00h +273F:A914  E8 91B0                              call    read_palette            ; (3AC7) +273F:A917  B8 FF01                              mov     ax,0FF01h +273F:A91A  E8 FE96                              call    load_pic_with_animation +273F:A91D  03 16 5784                           add     dx,data_354             ; (273F:5784=0A302h) +273F:A921  89 16 5780                           mov     data_352,dx             ; (273F:5780=78Bh) +273F:A925  80 0E 11D0 01                        or      menubar_state, 1 +273F:A92A  FF 16 075E                           call    [show_cursor_proc] +273F:A92E  FF 16 077E                           call    word ptr ds:[77Eh]      ; (273F:077E=0C00Bh) +273F:A932  E8 FF39                              call    sub_267                 ; (A86E) +273F:A935 úBF 5786                              mov     di,offset data_355      ; (273F:5786=19h) +273F:A938                       loc_2045:                                       ;  xref 273F:A971 +273F:A938  8B 0D                                mov     cx,[di] +273F:A93A  57                                   push    di + +273F:A93B                       locloop_2046:                                   ;  xref 273F:A947 +273F:A93B  51                                   push    cx +273F:A93C  B8 0009                              mov     ax, 9 +273F:A93F  E8 A0A7                              call    sleep                   ; (49E9) +273F:A942  FF 16 0780                           call    word ptr ds:[780h]      ; (273F:0780=4574h) +273F:A946  59                                   pop     cx +273F:A947  E2 F2                                loop    locloop_2046            ; Loop if cx > 0 + +273F:A949  5F                                   pop     di +273F:A94A  55                                   push    bp +273F:A94B  56                                   push    si +273F:A94C  52                                   push    dx +273F:A94D  53                                   push    bx +273F:A94E  8B 45 02                             mov     ax,[di+2] +273F:A951  F6 06 5660 20                        test    music_status, 20h +273F:A956  74 03                                jz      loc_2047                ; Jump if zero +273F:A958  8B 45 04                             mov     ax,[di+4] +273F:A95B                       loc_2047:                                       ;  xref 273F:A956 +273F:A95B  0B C0                                or      ax,ax                   ; Zero ? +273F:A95D  74 07                                jz      loc_2048                ; Jump if zero +273F:A95F  8A 5D 06                             mov     bl, [di+6] +273F:A962  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A966                       loc_2048:                                       ;  xref 273F:A95D +273F:A966  5B                                   pop     bx +273F:A967  5A                                   pop     dx +273F:A968  5E                                   pop     si +273F:A969  5D                                   pop     bp +273F:A96A  83 C7 07                             add     di,7 +273F:A96D  F7 05 FFFF                           test    word ptr [di],0FFFFh +273F:A971  75 C5                                jnz     loc_2045                ; Jump if not zero +273F:A973  55                                   push    bp +273F:A974  56                                   push    si +273F:A975  52                                   push    dx +273F:A976  53                                   push    bx +273F:A977  E8 F879                              call    sub_257                 ; (A1F3) +273F:A97A  B8 0100                              mov     ax,100h +273F:A97D  33 DB                                xor     bx,bx                   ; Zero register +273F:A97F  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A983                       loc_2049:                                       ;  xref 273F:A98B +273F:A983  B8 0500                              mov     ax,500h +273F:A986  F9                                   stc                             ; Set carry flag +273F:A987  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A98B  73 F6                                jnc     loc_2049                ; Jump if carry=0 +273F:A98D  E8 F863                              call    sub_257                 ; (A1F3) +273F:A990  F6 06 5660 20                        test    music_status, 20h +273F:A995  74 0B                                jz      loc_2050                ; Jump if zero +273F:A997  B8 0106                              mov     ax,106h +273F:A99A  33 DB                                xor     bx,bx                   ; Zero register +273F:A99C  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A9A0  EB 3A                                jmp     short loc_2052          ; (A9DC) +273F:A9A2                       loc_2050:                                       ;  xref 273F:A995 +273F:A9A2  F6 06 5660 01                        test    music_status, 1 +273F:A9A7  74 2A                                jz      loc_2051                ; Jump if zero +273F:A9A9  B8 FF11                              mov     ax,0FF11h +273F:A9AC  8B 0E 4CFE                           mov     cx, data_814 +273F:A9B0  33 D2                                xor     dx,dx                   ; Zero register +273F:A9B2  51                                   push    cx +273F:A9B3  E8 595E                              call    read_entry              ; (0314) +273F:A9B6  03 16 4CFE                           add     dx, data_814 +273F:A9BA  89 16 5782                           mov     data_353,dx             ; (273F:5782=0C583h) +273F:A9BE  5A                                   pop     dx +273F:A9BF  33 C9                                xor     cx,cx                   ; Zero register +273F:A9C1  B8 0001                              mov     ax,1 +273F:A9C4  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A9C8  B8 0100                              mov     ax,100h +273F:A9CB  33 DB                                xor     bx,bx                   ; Zero register +273F:A9CD  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A9D1  EB 09                                jmp     short loc_2052          ; (A9DC) +273F:A9D3                       loc_2051:                                       ;  xref 273F:A9A7 +273F:A9D3  B8 0106                              mov     ax,106h +273F:A9D6  B7 01                                mov     bh,1 +273F:A9D8  FF 1E 5662                           call    dword ptr [play_music_proc] +273F:A9DC                       loc_2052:                                       ;  xref 273F:A9A0, A9D1 +273F:A9DC  5B                                   pop     bx +273F:A9DD  5A                                   pop     dx +273F:A9DE  5E                                   pop     si +273F:A9DF  5D                                   pop     bp +273F:A9E0  B8 FF03                              mov     ax,0FF03h +273F:A9E3  E8 FDCD                              call    load_pic_with_animation +273F:A9E6  B8 0096                              mov     ax,96h +273F:A9E9  E8 FE9C                              call    pause_with_kbd_mouse_break +273F:A9EC  FF 16 077E                           call    word ptr ds:[77Eh]      ; (273F:077E=0C00Bh) +273F:A9F0  B8 FF05                              mov     ax,0FF05h +273F:A9F3  E8 FDBD                              call    load_pic_with_animation +273F:A9F6  B8 05DC                              mov     ax,5DCh +273F:A9F9  E8 FE8C                              call    pause_with_kbd_mouse_break +273F:A9FC  FF 16 077E                           call    word ptr ds:[77Eh]      ; (273F:077E=0C00Bh) +273F:AA00  B8 05DC                              mov     ax,5DCh +273F:AA03  E8 9FE3                              call    sleep                   ; (49E9) +273F:AA06                       loc_2053:                                       ;  xref 273F:AA10 +273F:AA06  F6 06 11D5 FF                        test    mouse_buttons, 0FFh +273F:AA0B  75 05                                jnz     loc_2054                ; Jump if not zero +273F:AA0D  E8 EB10                              call    check_keypress                 ; (9520) +273F:AA10  74 F4                                jz      loc_2053                ; Jump if zero +273F:AA12                       loc_2054:                                       ;  xref 273F:AA0B +273F:AA12  FF 16 0766                           call    word ptr ds:[fade_out_proc] +273F:AA16  B8 0000                              mov     ax,0 +273F:AA19  B6 01                                mov     dh,1 +273F:AA1B  E8 9586                              call    display_message         ; (3FA4) +273F:AA1E  E8 5DAC                              call    sub_10                  ; (07CD) +273F:AA21  C7 06 86DF 001C                      mov     word ptr ds:[86DFh],1Ch ; (273F:86DF=6C7h) +273F:AA27  B4 3C                                mov     ah,3Ch                  ; '<' +273F:AA29  33 C9                                xor     cx,cx                   ; Zero register +273F:AA2B úBA 5D80                              mov     dx,5D80h                ; (273F:5D80=0E8h) +273F:AA2E  CD 21                                int     21h                     ; DOS Services  ah=function 3Ch +                                                                                ;  create/truncate file @ ds:dx +273F:AA30  72 16                                jc      loc_ret_2055            ; Jump if carry Set +273F:AA32  8B D8                                mov     bx,ax +273F:AA34  B4 40                                mov     ah,40h                  ; '@' +273F:AA36  B9 F010                              mov     cx, WRITE_BUFFER_SIZE +273F:AA39 úBA 5D90                              mov     dx, offset write_buffer ; (273F:5D90=47h) +273F:AA3C  2B CA                                sub     cx,dx +273F:AA3E  CD 21                                int     21h                     ; DOS Services  ah=function 40h +                                                                                ;  write file  bx=file handle +                                                                                ;   cx=bytes from ds:dx buffer +273F:AA40  72 06                                jc      loc_ret_2055            ; Jump if carry Set +273F:AA42  B4 3E                                mov     ah,3Eh +273F:AA44  CD 21                                int     21h                     ; DOS Services  ah=function 3Eh +                                                                                ;  close file, bx=file handle +273F:AA46  73 00                                jnc     loc_ret_2055            ; Jump if carry=0 + +273F:AA48                       loc_ret_2055:                                   ;  xref 273F:AA30, AA40, AA46 +273F:AA48  C3                                   retn +                        seq_endgame_sequence    endp + +273F:AA49  0007[00]                             db      7 dup (0) + +                                seg_code        ends + + + +                                ;------------------------------------------------------------  data_seg   ---- + +                                data_seg        segment byte public +                                                assume cs:data_seg  , ds:data_seg , ss:stack_seg_k + +31E4:0000  43 6F 70 79 72 69    copyright       db      'Copyright Revolution Software 1990-1992' +31E4:0006  67 68 74 20 52 65 +31E4:000C  76 6F 6C 75 74 69 +31E4:0012  6F 6E 20 53 6F 66 +31E4:0018  74 77 61 72 65 20 +31E4:001E  31 39 +31E4:0020  39 30 2D 31 39 39 +31E4:0026  32 +31E4:0027  20 20 20 53 79 73    data_519        db      '   System design and code: David' +31E4:002D  74 65 6D 20 64 65 +31E4:0033  73 69 67 6E 20 61 +31E4:0039  6E 64 20 63 6F 64 +31E4:003F  65 3A 20 44 61 76 +31E4:0045  69 64 +31E4:0047  20 53 79 6B 65 73                    db      ' Sykes and Tony Warriner. Some o' +31E4:004D  20 61 6E 64 20 54 +31E4:0053  6F 6E 79 20 57 61 +31E4:0059  72 72 69 6E 65 72 +31E4:005F  2E 20 53 6F 6D 65 +31E4:0065  20 6F +31E4:0067  74 68 65 72 20 70                    db      'ther people did the rest.   This' +31E4:006D  65 6F 70 6C 65 20 +31E4:0073  64 69 64 20 74 68 +31E4:0079  65 20 72 65 73 74 +31E4:007F  2E 20 20 20 54 68 +31E4:0085  69 73 +31E4:0087  20 76 65 72 73 69                    db      ' version assembled 15:16:59 on 0' +31E4:008D  6F 6E 20 61 73 73 +31E4:0093  65 6D 62 6C 65 64 +31E4:0099  20 31 35 3A 31 36 +31E4:009F  3A 35 39 20 6F 6E +31E4:00A5  20 30 +31E4:00A7  31 2F 31 30 2F 39                    db      '1/10/92' +31E4:00AD  32 +31E4:00AE  00 00                                db      0, 0 +31E4:00B0  00                   data_525        db      0                       ;  xref 273F:03D0 +31E4:00B1  01                   data_526        db      1                       ;  xref 273F:0C46 +31E4:00B2  0000                 data_527        dw      0                       ; Data table (indexed access) +31E4:00B4  FF                                   db      0FFh +31E4:00B5  FF                   data_528        db      0FFh + +31E4:00B6  0000                 file_offset_table dw    0 +31E4:00B8  00C8                                 dw      offset disk1vga +31E4:00BA  00D2                                 dw      offset disk2vga +31E4:00BC  00DC                                 dw      offset disk3vga +31E4:00BE  00E6                                 dw      offset disk4vga +31E4:00C0  00F0                                 dw      offset disk1ega +31E4:00C2  00FA                                 dw      offset disk2ega +31E4:00C4  0104                                 dw      offset disk3ega +31E4:00C6  010E                                 dw      offset disk4ega + +31E4:00C8  44 49 53 4B 31 2E    disk1vga        db      'DISK1.VGA', 0 +31E4:00CE  56 47 41 00 +31E4:00D2  44 49 53 4B 32 2E    disk2vga        db      'DISK2.VGA', 0 +31E4:00D8  56 47 41 00 +31E4:00DC  44 49 53 4B 33 2E    disk3vga        db      'DISK3.VGA', 0 +31E4:00E2  56 47 41 00 +31E4:00E6  44 49 53 4B 34 2E    disk4vga        db      'DISK4.VGA', 0 +31E4:00EC  56 47 41 00 +31E4:00F0  44 49 53 4B 31 2E    disk1ega        db      'DISK1.EGA', 0 +31E4:00F6  45 47 41 00 +31E4:00FA  44 49 53 4B 32 2E    disk2ega        db      'DISK2.EGA', 0 +31E4:0100  45 47 41 00 +31E4:0104  44 49 53 4B 33 2E    disk3ega        db      'DISK3.EGA', 0 +31E4:010A  45 47 41 00 +31E4:010E  44 49 53 4B 34 2E    disk4ega        db      'DISK4.EGA', 0 + +31E4:0118  00                   retry_count     db      0                       ;  xref 273F:039F, 273F:03A5 +                                                                                ;       273F:03AA, 273F:03B1 + +31E4:0119                       file_buffer     dw      0, 0, 0 +                                file_filenum    dw      0 +31E4:0121                       file_entries    db     5f8h dup (0)             ; space for the file entries table + +;***** - Old data block definitions +31E4:0119  0000                 data_535        dw      0                       ;  xref 273F:0351, 273F:8FA2 +31E4:011B  0000                 data_536        dw      0 +31E4:011D  0000                 data_537        dw      0 +31E4:011F  0000                 data_538        dw      0 +31E4:0121  0120[00]                             db      288 dup (0) +31E4:0241  0000                 data_539        dw      0                       ; Data table (indexed access) +                                                                                ;  xref 31E4:7E86 +31E4:0243  00C5[00]                             db      197 dup (0) +31E4:0308  0000                 data_540        dw      0                       ; Data table (indexed access) +                                                                                ;  xref 273F:8F4F +31E4:030A  00DC[00]                             db      220 dup (0) +31E4:03E6  0000                 data_541        dw      0                       ; Data table (indexed access) +                                                                                ;  xref 31E4:BCCD +31E4:03E8  0338[00]                             db      824 dup (0) +;***** ---------------------------- + + +31E4:0719  0007[00]                             db      7 dup (0) +31E4:0720  6F 6E 00 00 74 6F                    db       6Fh, 6Eh, 00h, 00h, 74h, 6Fh +31E4:0726  00                                   db       00h +31E4:0727  28 6E 6F 74 68 69                    db      '(nothing)' +31E4:072D  6E 67 29 +31E4:0730  00 66 6F 72 00 2E                    db       00h, 66h, 6Fh, 72h, 00h, 2Eh +31E4:0736  20 2E 20 2E 00                       db       20h, 2Eh, 20h, 2Eh, 00h +31E4:073B  00                   data_542        db      0                       ;  xref 273F:0745, 273F:4016 +                                                                                ;       273F:4088 +31E4:073C  00                   status_flags    db      0 +31E4:073D  00                  status_flags2    db      0 +31E4:073E  01            old_ctrl_break_flag    db      1                       ;  xref 273F:0725, 273F:402C +31E4:073F  01                   data_546        db      1                       ;  xref 273F:073E, 273F:4037 +31E4:0740  0000                 data_547        dw      0                       ;  xref 273F:07DE +31E4:0742  00                   video_style     db      0                       ;  1=VGA, 2=EGA +31E4:0743  00                   video_mode      db      0                       ;  xref 273F:04FF, 273F:05C0 +31E4:0744  0000             show_screen_proc    dw      0                       ;  xref 273F:0509, 273F:05CA +31E4:0746  0000                  screen_size    dw      0                       ;  xref 273F:0515, 273F:05D6 +31E4:0748  0000                 screen_width    dw      0                       ;  xref 273F:051B, 273F:05DC +31E4:074A  0000                   char_width    dw      0                       ;  xref 273F:050F, 273F:05D0 +31E4:074C  0000           menubar_block_size    dw      0                       ;  xref 273F:0521, 273F:05E2 +                                                                                ;       273F:700A, 273F:7ADB +31E4:074E  0000                 data_555        dw      0                       ;  xref 273F:0527, 273F:05E8 +31E4:0750  0000          segment_screen_proc    dw      0                       ;  xref 273F:052D, 273F:05EE +31E4:0752  0000  show_compressed_screen_proc    dw      0 +31E4:0754  0000          add_animation_proc     dw      0 + +31E4:0756  0000        draw_talk_dialog_proc    dw      0 +31E4:0758  0000             talk_dialog_proc    dw      0 +31E4:075A  0000      display2_character_proc    dw      0 +31E4:075C  0000                add_rect_proc    dw      0 + +31E4:075E  0000             show_cursor_proc    dw      0 +31E4:0760  0000                 fade_in_proc    dw      0 +31E4:0762  0000       set_lower_palette_proc    dw      0 +31E4:0764  0000           empty_palette_proc    dw      0 +31E4:0766  0000                fade_out_proc    dw      0 +31E4:0768  0000                 data_568        dw      0 +31E4:076A  0000       display_character_proc    dw      0 +31E4:076C  0000              menu_items_proc    dw      0          +31E4:076E  0000                 data_571        dw      0 +31E4:0770  0000                 data_572        dw      0                       ;  xref 273F:0587, 273F:064E +31E4:0772  0000   toggle_menu_highlight_proc    dw      0 +31E4:0774  0000                 data_574        dw      0                       ;  xref 273F:0593, 273F:065A +31E4:0776  0000                 data_575        dw      0                       ;  xref 273F:0599, 273F:0660 +31E4:0778  0000                 data_576        dw      0                       ;  xref 273F:059F, 273F:0666 +31E4:077A  0000             draw_dialog_proc    dw      0 +31E4:077C  0000           decode_entry_proc     dw      0 +31E4:077E  0000             copy_screen_proc    dw      0 +31E4:0780  0000              pic_decode_proc    dw      0 + +31E4:0782  0000                saved_mouse_x    dw      0 +31E4:0784  0000                saved_mouse_y    dw      0 +31E4:0786  00                  default_drive    db      0                       ;  xref 273F:0712, 273F:9345 +31E4:0787  0009[00]                             db      9 dup (0) + +31E4:0790  00           hotspot_rects_list      db      0                       ;  xref 273F:0963, 273F:0B61 +31E4:0791  0044[00]                             db      68 dup (0) +31E4:07D5  00                   data_584        db      0                       ; Data table (indexed access) +31E4:07D6  00 00 00 00 00 00                    db      0, 0, 0, 0, 0, 0 +31E4:07DC  0064[00]            display_mask     db      100 dup (0) +31E4:0890  0100[00]     hotspot_rects_list_2    db      256 dup (0) +31E4:0990  0000                 data_587        dw      0                       ;  xref 273F:2087 + +31E4:0992  0100[00]            rects_layer_0    db      256 dup (0) +31E4:0A92  0100[00]            rects_layer_1    db      256 dup (0) +31E4:0B92  0100[00]            rects_layer_2    db      256 dup (0) +31E4:0C92  0100[00]            rects_layer_3    db      256 dup (0) + + +31E4:0ADE  00                   data_593        db      0                       ;  xref 273F:09E7 +31E4:0ADF  0026[00]                             db      38 dup (0) +31E4:0B05  00                   data_594        db      0 +31E4:0B06  0015[00]                             db      21 dup (0) +31E4:0B1B  00                   data_595        db      0                       ; Data table (indexed access) +31E4:0B1C  00                                   db      0 +31E4:0B1D  00                   data_596        db      0                       ; Data table (indexed access) +31E4:0B1E  00 00 00                             db      0, 0, 0 +31E4:0B21  00                   data_597        db      0                       ; Data table (indexed access) +31E4:0B22  0016[00]                             db      22 dup (0) +31E4:0B38  00                   data_598        db      0                       ;  xref 273F:0AFE +31E4:0B39  00A5[00]                             db      165 dup (0) +31E4:0BDE  00                   data_599        db      0                       ;  xref 273F:09ED +31E4:0BDF  0048[00]                             db      72 dup (0) +31E4:0C27  00                   data_600        db      0 +31E4:0C28  00B6[00]                             db      182 dup (0) +31E4:0CDE  00                   data_601        db      0                       ;  xref 273F:09F3 +31E4:0CDF  00B3[00]                             db      179 dup (0) + +31E4:0D92  0010[00]             room_layers     dw      8 dup (0)               ; Resource Ids for layers in room display + +31E4:0DA2  0000               rectangle_size    dw      0 +31E4:0DA4  00             num_occupied_rects    db      0 +31E4:0DA5  00                  current_layer    db      0 +31E4:0DA6  0000                 rect_x_start    dw      0 +31E4:0DA8  0000                   rect_y_end    dw      0 +31E4:0DAA  0000              num_horiz_rects    dw      0 +31E4:0DAC  0000               num_vert_rects    dw      0 + +31E4:0DAE  00 00                                db      0, 0 +31E4:0DB0  A000            screen_start_seg     dw      0A000h          ; I think these two are used for page +31E4:0DB2  A200           screen_start_seg2     dw      0A200h          ; swapping for writing to a back buffer + +31E4:0DB4  00    talk_dialog_close_flag     db      0 + +31E4:0DB5             processed_vga_palette     db      300h dup (0)            ; Holds processed VGA palette + +31E4:10B5  4C 6F 6F 6B 20 61    look_at_str     db      'Look at ', 0           ;  xref 273F:136B +31E4:10BB  74 20 00 +31E4:10BE  0000         num_impinging_chars     dw      0 +31E4:10C0  0026[00]     impinging_char_list     db      38 dup (0) + +31E4:10E6  0000               char_rect_left    dw      0 +31E4:10E8  0000              char_rect_right    dw      0 +31E4:10EA  0000                char_rect_top    dw      0 +31E4:10EC  0000             char_rect_bottom    dw      0 +31E4:10EE  0000                    data_617     dw      0 +31E4:10F0  00               animation_table2    db      0                       ;  xref 273F:1556, 273F:1598 +                                                                                ;       273F:15C3 +31E4:10F1  00CF[00]                             db      207 dup (0) +31E4:11C0  0021              talk_dialog_top    dw      21h +31E4:11C2  0027             talk_dialog_left    dw      27h +31E4:11C4  0000            talk_dialog_width    dw      0 +31E4:11C6  0000           talk_dialog_height    dw      0 +31E4:11C8  0008[00]                             db      8 dup (0) + +31E4:11D0  03                menubar_state      db      3 +31E4:11D1  0000                 mouse_x         dw      0 +31E4:11D3  0000                 mouse_y         dw      0 +31E4:11D5  00                  mouse_buttons    db      0 +31E4:11D6  0000                 mouse_x2        dw      0 +31E4:11D8  0000                 mouse_y2        dw      0 +31E4:11DA  00                 mouse_buttons2    db      0 +31E4:11DB  0000                 char_dest_x     dw      0 +31E4:11DD  0000                 char_dest_y     dw      0 +31E4:11DF  0000              cursor_centroid    dw      0 +31E4:11E1  0000                 cursor_index    dw      0 +31E4:11E3  00               cursor_index_new    db      0 +31E4:11E4  0000             hotspot_name_id2    dw      0 +31E4:11E6  0000              hotspot_name_id    dw      0 +31E4:11E8  0000                 data_638        dw      0                       ;  xref 273F:2118, 273F:2AD2 +                                                                                ;       273F:2B31 +31E4:11EA  00                   data_639        db      0                       ;  xref 273F:2B21 +31E4:11EB  00                                   db      0 +31E4:11EC  0000                 data_640        dw      0                       ;  xref 273F:2123, 273F:2AF7 +31E4:11EE  00                   data_641        db      0                       ;  xref 273F:2B61 +31E4:11EF  00BF[00]                             db      191 dup (0) +31E4:12AE  00                   data_642        db      0                       ;  xref 273F:211B, 273F:2149 +31E4:12AF  0074[00]                             db      116 dup (0) +31E4:1323  0016[00]                             db      22 dup (0) +31E4:1339  001F[00]                             db      31 dup (0) +31E4:1358  0028[00]                             db      40 dup (0) + +31E4:1380  13C2     support_data_offset_list    dw       13C2h +31E4:1382  BB95                                 dw      0BB95h +31E4:1384  3617                                 dw       3617h +31E4:1386  365B                                 dw       365Bh +31E4:1388  7135                                 dw       7135h +31E4:138A  7AF5                                 dw       7AF5h +31E4:138C  7ACB                                 dw       7ACBh +31E4:138E  7DF9                                 dw       7DF9h +31E4:1390  7DA8                                 dw       7DA8h +31E4:1392  785C                                 dw       785Ch +31E4:1394  7248                                 dw       7248h +31E4:1396  726E                                 dw       726Eh +31E4:1398  728A                                 dw       728Ah +31E4:139A  709E                                 dw       709Eh +31E4:139C  3661                                 dw       3661h +31E4:139E  6F4F                                 dw       6F4Fh +31E4:13A0  6F77                                 dw       6F77h +31E4:13A2  6F9F                                 dw       6F9Fh +31E4:13A4  0000                                 dw       0 + +31E4:13A6  00 00 22                             db       00h, 00h, 22h +31E4:13A9  79 4A 79 72 79 00                    db       79h, 4Ah, 79h, 72h, 79h, 00h +31E4:13AF  00 00 00 2B 6F A6                    db       00h, 00h, 00h, 2Bh, 6Fh,0A6h +31E4:13B5  77 00 77 36 77 60                    db       77h, 00h, 77h, 36h, 77h, 60h +31E4:13BB  77 98 79 BD 7A 5D                    db       77h, 98h, 79h,0BDh, 7Ah, 5Dh +31E4:13C1  7A 20 00 1F 00 00                    db       7Ah, 20h, 00h, 1Fh, 00h, 00h +31E4:13C7  00 FA 7E                             db       00h,0FAh, 7Eh + + +31E4:13CA  13D2        hotspot_dealloc_table:   dw       offset unk_hotspot_list_1 +31E4:13CC  13E2                                 dw       offset unk_hotspot_list_2 +31E4:13CE  13F4                                 dw       offset unk_hotspot_list_3 +31E4:13D0  13F2                                 dw       offset unk_hotspot_list_4 + +31E4:13D2  13F2           unk_hotspot_list_1:   dw       13F2h +31E4:13D4  0418 2711 2712 040D                  dw       0418h, 2711h, 2712h, 040Dh +31E4:13DA  03EA 0411 0000                       dw       03EAh, 0411h, 0 + +31E4:13E2  2729           unk_hotspot_list_2:   dw       2729h +31E4:13E4  272A 272B 272C 272D                  dw       272Ah, 272Bh, 272Ch, 272Eh +31E4:13EC  272E 272F 0000                       dw       272Eh, 272Fh, 0 + +31E4:13F2  03EF           unk_hotspot_list_4:   dw       03EFh +31E4:13F4  03E9           unk_hotspot_list_3:   dw       03E9h +31E4:13F6  03EB 03EC 03ED 03EE                  dw       03EBh, 03ECh, 03EDh, 03EEh +31E4:13FE  03F0 03F1 0420 0429                  dw       03F0h, 03F1h, 0420h, 0429h +31E4:1406  0436 2715 2716 2717                  dw       0436h, 2715h, 2716h, 2717h +31E4:140E  2718 2719 271A 271E                  dw       2718h, 2719h, 271Ah, 271Eh +31E4:1416  271F 2720 2721 2722                  dw       271Fh, 2720h, 2721h, 2722h +31E4:141E  2725 2726 0000                       dw       2725h, 2726h, 0 + +31E4:1424  000C[00]                             db      12 dup (0) + +31E4:1430  10 58 BF 5C A0 58                    db       10h, 58h,0BFh, 5Ch,0A0h, 58h +31E4:1436  C4 58 CD                             db      0C4h, 58h,0CDh +31E4:1439  58 34 58                             db       58h, 34h, 58h + +31E4:143C  0008[00]                             db      8 dup (0) + +31E4:1444  79 00 59 00 04 06   ega_unknown_rec  db       79h, 00h, 59h, 00h, 04h, 06h +31E4:144A  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:1450  DC E2 DC FF E3 E2   vga_unknown_rec  db      0DCh,0E2h,0DCh,0FFh,0E3h,0E2h + +31E4:1456  FF               current_room_num    db      0FFh +31E4:1457  00        unprocessed_vga_palette    db       0 +31E4:1458  00 00 00 00 00 34                    db       00h, 00h, 00h, 00h, 00h, 34h +31E4:145E  34 2C 18 10 2C 24                    db       34h, 2Ch, 18h, 10h, 2Ch, 24h +31E4:1464  24 18 18 18 18 10                    db       24h, 18h, 18h, 18h, 18h, 10h +31E4:146A  10 10 08 08 08 3C                    db       10h, 10h, 08h, 08h, 08h, 3Ch +31E4:1470  2C 18 34 08 00 34                    db       2Ch, 18h, 34h, 08h, 00h, 34h +31E4:1476  24 18 2C 18 10 24                    db       24h, 18h, 2Ch, 18h, 10h, 24h +31E4:147C  10 08 18 08 00 10                    db       10h, 08h, 18h, 08h, 00h, 10h +31E4:1482  00 00 3C 30 20 26                    db       00h, 00h, 3Ch, 30h, 20h, 26h +31E4:1484  24 22 24 21 20 20                    db       24h, 22h, 24h, 21h, 20h, 20h +31E4:148E  1E 1C 1E 1B 1A 1A                    db       1Eh, 1Ch, 1Eh, 1Bh, 1Ah, 1Ah +31E4:1494  17 16 16 14 12 14                    db       17h, 16h, 16h, 14h, 12h, 14h +31E4:149A  12 10 12 10 0E 10                    db       12h, 10h, 12h, 10h, 0Eh, 10h +31E4:14A0  0E 0C 0E 0C 0A 0C                    db       0Eh, 0Ch, 0Eh, 0Ch, 0Ah, 0Ch +31E4:14A6  0A 09 0A 08 07                       db       0Ah, 09h, 0Ah, 08h, 07h +31E4:14AB  000C[00]                             db      12 dup (0) +31E4:14B7  3F 2D 1B 39 28 19                    db       3Fh, 2Dh, 1Bh, 39h, 28h, 19h +31E4:14BD  34 22 17 30 1E 13                    db       34h, 22h, 17h, 30h, 1Eh, 13h +31E4:14C3  2C 1A 0F 28 17 0B                    db       2Ch, 1Ah, 0Fh, 28h, 17h, 0Bh +31E4:14C9  25 15 08 22 12 05                    db       25h, 15h, 08h, 22h, 12h, 05h +31E4:14CF  1F 10 03 1B 0E 01                    db       1Fh, 10h, 03h, 1Bh, 0Eh, 01h +31E4:14D5  18 0C 00 16 0B 00                    db       18h, 0Ch, 00h, 16h, 0Bh, 00h +31E4:14DB  13 09 00 11 08 00                    db       13h, 09h, 00h, 11h, 08h, 00h +31E4:14E1  0F 07 00 0C 06                       db       0Fh, 07h, 00h, 0Ch, 06h +31E4:14E6  00F4[00]                             db      244 dup (0) +31E4:15DA  00         unprocessed_vga_palette2  db      0                       ;  xref 273F:3AB3 +31E4:15DB  00 00 2E 2C 28 0E                    db       00h, 00h, 2Eh, 2Ch, 28h, 0Eh +31E4:15E1  0E 14 24 23 20 1B                    db       0Eh, 14h, 24h, 23h, 20h, 1Bh +31E4:15E7  1A 17 12 11 0F 0A                    db       1Ah, 17h, 12h, 11h, 0Fh, 0Ah +31E4:15ED  0A 10 10 12 1A 37                    db       0Ah, 10h, 10h, 12h, 1Ah, 37h +31E4:15F3  24 1B 30 20 18 28                    db       24h, 1Bh, 30h, 20h, 18h, 28h +31E4:15F9  18 10 20 10 08 18                    db       18h, 10h, 20h, 10h, 08h, 18h +31E4:15FF  08                                   db      8 +31E4:1600  00                                   db      0 +31E4:1601  10 00 00 13 14 1E                    db       10h, 00h, 00h, 13h, 14h, 1Eh +31E4:1607  00 00 00 3F 2A 20                    db       00h, 00h, 00h, 3Fh, 2Ah, 20h +31E4:160D  1C 18 0C 24 20 20                    db       1Ch, 18h, 0Ch, 24h, 20h, 20h +31E4:1613  1C 18 18 14 10 10                    db       1Ch, 18h, 18h, 14h, 10h, 10h +31E4:1619  0C 08 08 0A 09 04                    db       0Ch, 08h, 08h, 0Ah, 09h, 04h +31E4:161F  10 12 08 30 20 18                    db       10h, 12h, 08h, 30h, 20h, 18h +31E4:1625  28 18 10 20 10 08                    db       28h, 18h, 10h, 20h, 10h, 08h +31E4:162B  18 08 00 10 00 00                    db       18h, 08h, 00h, 10h, 00h, 00h +31E4:1631  10 0E 05 00 00 00                    db       10h, 0Eh, 05h, 00h, 00h, 00h +31E4:1637  2F 2B 2B 34 26 1A                    db       2Fh, 2Bh, 2Bh, 34h, 26h, 1Ah +31E4:163D  26 21 21 1C 18 18                    db       26h, 21h, 21h, 1Ch, 18h, 18h +31E4:1643  14 10 10 0C 08 08                    db       14h, 10h, 10h, 0Ch, 08h, 08h +31E4:1649  08 0C 00 28 08 00                    db       08h, 0Ch, 00h, 28h, 08h, 00h +31E4:164F  30 20 18 28 18 10                    db       30h, 20h, 18h, 28h, 18h, 10h +31E4:1655  20 10 08 18 08 00                    db       20h, 10h, 08h, 18h, 08h, 00h +31E4:165B  10 00 00 14 18                       db       10h, 00h, 00h, 14h, 18h +31E4:1660  008B[00]                             db      139 dup (0) +31E4:16EB             unprocessed_vga_palette3  db       0Eh, 0Bh, 08h, 10h, 08h, 00h +31E4:16F1  14 0C 04 18 10 08                    db       14h, 0Ch, 04h, 18h, 10h, 08h +31E4:16F7  1C 14 0C 20 18 10                    db       1Ch, 14h, 0Ch, 20h, 18h, 10h +31E4:16FD  1F 1F 1F                             db       1Fh, 1Fh, 1Fh +31E4:1700  3F 3F 3F                             db       3Fh, 3Fh, 3Fh +31E4:1703  0024[00]                             db      36 dup (0) + +31E4:1727                upper_vga_palette      db      0Dh, 09h, 04h           ; colours for pallete +                                                db      12h, 0Dh, 06h           ; entries #F0h - FFh +                                                db      17h, 10h, 09h +                                                db      1Ch, 15h, 0Dh +                                                db      21h, 19h, 10h +                                                db      26h, 1Eh, 15h +                                                db      2Ch, 23h, 1Ah +                                                db      3Fh, 30h, 00h +                                                db      22h, 22h, 2Bh +                                                db      16h, 17h, 25h +                                                db      0Dh, 0Dh, 20h +                                                db      05h, 06h, 1Bh +                                                db      00h, 00h, 16h +                                                db      1Fh, 1Fh, 1Fh +                                                db      00h, 00h, 00h +                                                db      3Fh, 3Fh, 3Fh + +31E4:1757  00    replacement_vga_palette        db      0                       ; Replacement section of VGA palette +31E4:1758  00 00 2E 2C 28 0E                    db       00h, 00h, 2Eh, 2Ch, 28h, 0Eh +31E4:175E  0E 14 24 23 20 1B                    db       0Eh, 14h, 24h, 23h, 20h, 1Bh +31E4:1764  1A 17 12 11 0F 0A                    db       1Ah, 17h, 12h, 11h, 0Fh, 0Ah +31E4:176A  0A 10 10 12 1A 37                    db       0Ah, 10h, 10h, 12h, 1Ah, 37h +31E4:1770  24 1B 30 20 18 28                    db       24h, 1Bh, 30h, 20h, 18h, 28h +31E4:1776  18 10 20 10 08 18                    db       18h, 10h, 20h, 10h, 08h, 18h +31E4:177C  08 00 10 00 00 13                    db       08h, 00h, 10h, 00h, 00h, 13h +31E4:1782  14 1E 00 00 00 3F                    db       14h, 1Eh, 00h, 00h, 00h, 3Fh +31E4:1788  2A 20 1C 18 0C 24                    db       2Ah, 20h, 1Ch, 18h, 0Ch, 24h +31E4:178E  20 20 1C 18 18 14                    db       20h, 20h, 1Ch, 18h, 18h, 14h +31E4:1794  10 10 0C 08 08 0A                    db       10h, 10h, 0Ch, 08h, 08h, 0Ah +31E4:179A  09 04 10 12 08 30                    db       09h, 04h, 10h, 12h, 08h, 30h +31E4:17A0  20 18 28 18 10 20                    db       20h, 18h, 28h, 18h, 10h, 20h +31E4:17A6  10 08 18 08 00 10                    db       10h, 08h, 18h, 08h, 00h, 10h +31E4:17AC  00 00 10 0E 05 00                    db       00h, 00h, 10h, 0Eh, 05h, 00h +31E4:17B2  00 00 2F 2B 2B 34                    db       00h, 00h, 2Fh, 2Bh, 2Bh, 34h +31E4:17B8  26 1A 26 21 21 1C                    db       26h, 1Ah, 26h, 21h, 21h, 1Ch +31E4:17BE  18 18 14 10 10 0C                    db       18h, 18h, 14h, 10h, 10h, 0Ch +31E4:17C4  08 08 08 0C 00 28                    db       08h, 08h, 08h, 0Ch, 00h, 28h +31E4:17CA  08 00 30 20 18 28                    db       08h, 00h, 30h, 20h, 18h, 28h +31E4:17D0  18 10 20 10 08 18                    db       18h, 10h, 20h, 10h, 08h, 18h +31E4:17D6  08 00 10 00 00 14                    db       08h, 00h, 10h, 00h, 00h, 14h +31E4:17DC  18 00 00 00 00 32                    db       18h, 00h, 00h, 00h, 00h, 32h +31E4:17E2  20 1F 2A 1A 18 22                    db       20h, 1Fh, 2Ah, 1Ah, 18h, 22h +31E4:17E8  14 12 1A 0F 0D 12                    db       14h, 12h, 1Ah, 0Fh, 0Dh, 12h +31E4:17EE  0A 08 2F 04 00 26                    db       0Ah, 08h, 2Fh, 04h, 00h, 26h +31E4:17F4  00 1D 1C 00 16 12                    db       00h, 1Dh, 1Ch, 00h, 16h, 12h +31E4:17FA  00 0E 37 2A 00 2C                    db       00h, 0Eh, 37h, 2Ah, 00h, 2Ch +31E4:1800  21 00 22 19 00 18                    db       21h, 00h, 22h, 19h, 00h, 18h +31E4:1806  11 00 0E 0A 00                       db       11h, 00h, 0Eh, 0Ah, 00h +31E4:180B  0E        replacement_vga_ palette2  db       0Eh +31E4:180C  0B 08 10 08 00 14                    db       0Bh, 08h, 10h, 08h, 00h, 14h +31E4:1812  0C 04 18 10 08 1C                    db       0Ch, 04h, 18h, 10h, 08h, 1Ch +31E4:1818  14 0C 20 18 10 1F                    db       14h, 0Ch, 20h, 18h, 10h, 1Fh +31E4:181E  1F 1F                                db       1Fh, 1Fh +31E4:1820  3F 3F 3F                             db       3Fh, 3Fh, 3Fh + +31E4:1823  000D[00]                             db      13 dup (0) + +31E4:1830  413A             animation_rec_1     dw       413Ah    ; Disk resource Id +31E4:1832  12 00 00 00                          db       12h, 00h, 00h, 00h +31E4:1836  00 00 00                             db       00h, 00h, 00h +31E4:1839  413C             animation_rec_2     dw       413Ch +31E4:183B  12 00 00 00                          db       12h, 00h, 00h, 00h +31E4:183F  00 00 00                             db       00h, 00h, 00h +31E4:1842  413B             animation_rec_3     dw       413Bh +31E4:1844  12 00 00 00                          db       12h, 00h, 00h, 00h +31E4:1848  00 00 00                             db       00h, 00h, 00h + +31E4:184B  01                   data_657        db      1                       ;  xref 273F:3D25, 273F:3D36 +31E4:184C  79 12                                db       79h, 12h +31E4:184E  00 00                                db      0, 0 + +31E4:1850  00 00 00 00       anim_src_table     db      0, 0, 0, 0 +31E4:1854  00                 cp_num_digits     db      0 +31E4:1855  00                  cp_num_tries     db      0 +31E4:1856  3D0F                     cp_proc     dw      offset cp_proc_1 + +; Remaining entries of anim_src_table + +31E4:1858  E8 00 E0 00 20 00 30 00 +31E4:185E  30 00 33 01 E0 00 20 00 +31E4:1866  30 00 B9 00 A8 00 D0 00 +31E4:186E  28 00 0A 01 28 01 10 00 +31E4:1876  08 00 11 01 28 01 10 00 +31E4:187E  08 00 24 01 28 01 10 00 +31E4:1886  08 00 2B 01 28 01 10 00 +31E4:188E  08 00 F6 00 18 01 30 00 +31E4:1896  0E 00 28 01 18 01 30 00 + +; Below is unknown + +31e4:189E  0E 00                                dw      0E00h + +; The table below contains the offset for the code fragments to handle each of +; the possible opcodes in the simple instruction interpreter used by the game + +31E4:18A0  3F9F              sequence_table     dw      offset sequence_restore_sp   ; 00/01h opcode +31E4:18A2  3E72                                 dw      offset sequence_add          ; 02/03h opcode +31E4:18A4  3E7C                                 dw      offset sequence_subtract     ; 04/05h opcode +31E4:18A6  3E86                                 dw      offset sequence_multiply     ; 06/07h opcode +31E4:18A8  3E92                                 dw      offset sequence_divide       ; 08/09h opcode +31E4:18AA  3EA0                                 dw      offset sequence_not_equals   ; 05h opcode +31E4:18AC  3EBA                                 dw      offset sequence_equals       ; 06h opcode +31E4:18AE  3EC3                                 dw      offset sequence_greater      ; 0E/0Fh opcode +31E4:18B0  3ECC                                 dw      offset sequence_smaller      ; 10/11h opcode +31E4:18B2  3ED5                                 dw      offset sequence_smaller2     ; 12/13h opcode +31E4:18B4  3EDE                                 dw      offset sequence_greater2     ; 14/15h opcode +31E4:18B6  3EE7                                 dw      offset sequence_and          ; 16/17h opcode +31E4:18B8  3EF2                                 dw      offset sequence_or           ; 18/19h opcode +31E4:18BA  3EFD                                 dw      offset sequence_logical_and  ; 1A/1Bh opcode +31E4:18BC  3F0C                                 dw      offset sequence_logical_or   ; 1C/1Dh opcode +31E4:18BE  3F1B                                 dw      offset sequence_get_field    ; 1E/1Fh opcode +31E4:18C0  3F2D                                 dw      offset sequence_set_field    ; 20/21h opcode +31E4:18C2  3F46                                 dw      offset sequence_push_value   ; 22/23h opcode +31E4:18C4  3F4E                                 dw      offset sequence_subroutine   ; 24/25h opcode +31E4:18C6  3F58                                 dw      offset sequence_call_method  ; 26/27h opcode +31E4:18C8  3F9E                                 dw      offset sequence_end          ; 28/29h opcode +31E4:18CA  3F90                                 dw      offset sequence_cond_jump    ; 2A/2Bh opcode +31E4:18CC  3F99                                 dw      offset sequence_jump         ; 2C/2Dh opcode +31E4:18CE  3F9F                                 dw      offset sequence_restore_sp   ; 2E/2Fh opcode +31E4:18D0  3F9F                                 dw      offset sequence_restore_sp   ; 30/31h opcode +31E4:18D2  3F3F                                 dw      offset sequence_random       ; 32/33h opcode       + +31E4:18D4  003C[00]                             db      60 dup (0) +31E4:1910  0000                 current_sp      dw      0 + +31E4:1912  000E[00]                             db      14 dup (0) + +31E4:1920  0000        room_exit_hotspot_id     dw      0 +31E4:1922  0000               dest_room_num     dw      0 +31E4:1924  0000                hotspot_id       dw      0 +31E4:1926  00                   data_669        db      0                       ;  xref 273F:47F3, 273F:4829 +                                                                                ;       273F:A00C +31E4:1927  0000      active_animation_offset    dw      0 + +31E4:1929  96 00 24 81       exit_coord_list    db       96h, 00h, 24h, 81h +31E4:192D  02 00 00                             db       02h, 00h, 00h +31E4:1930  0051[00]                             db      81 dup (0) + +31E4:1981  E3 00 DA 80 01 00                    db      0E3h, 00h,0DAh, 80h, 01h, 00h +31E4:1987  44 01 DA 00 03 00                    db       44h, 01h,0DAh, 00h, 03h, 00h +31E4:198D  BA 01 FC 00 05 00                    db      0BAh, 01h,0FCh, 00h, 05h, 00h +31E4:1993  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:1999  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:199F  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:19A5  00 00 06 06                          db       0, 0, 6, 6 +31E4:19A9  0018[0C]                             db      24 dup (0Ch) +31E4:19C1  00 00 00 00 00 0C                    db       00h, 00h, 00h, 00h, 00h, 0Ch +31E4:19C7  0012[00]                             db      18 dup (0) +31E4:19D9  80 00 1B 01 02 00                    db       80h, 00h, 1Bh, 01h, 02h, 00h +31E4:19DF  B8 01 1B 01 04                       db      0B8h, 01h, 1Bh, 01h, 04h +31E4:19E4  001C[00]                             db      28 dup (0) +31E4:1A00  06                                   db      6 +31E4:1A01  0030[00]                             db      48 dup (0) +31E4:1A31  52 01 3C 01 03                       db       52h, 01h, 3Ch, 01h, 03h +31E4:1A36  0053[00]                             db      83 dup (0) +31E4:1A89  3A 01 DD 00 06 00                    db       3Ah, 01h,0DDh, 00h, 06h, 00h +31E4:1A8F  AA 01 0B 81 28 00                    db      0AAh, 01h, 0Bh, 81h, 28h, 00h +31E4:1A95  00                                   db       00h +31E4:1A96  003C[00]                             db      60 dup (0) +31E4:1AD2  06 06 06 06                          db      6, 6, 6, 6 +31E4:1AD6  000B[00]                             db      11 dup (0) +31E4:1AE1  AA 01 0B 01 05 00                    db      0AAh, 01h, 0Bh, 01h, 05h, 00h +31E4:1AE7  83 00 0B 01                          db       83h, 00h, 0Bh, 01h +31E4:1AEB  29                                   db      29h +31E4:1AEC  0041[00]                             db      65 dup (0) +31E4:1B2D  06                                   db      6 +31E4:1B2E  000B[00]                             db      11 dup (0) +31E4:1B39  9A 00 0A 01 08                       db       9Ah, 00h, 0Ah, 01h, 08h +31E4:1B3E  0053[00]                             db      83 dup (0) +31E4:1B91  17 01 4B 01 07 00                    db       17h, 01h, 4Bh, 01h, 07h, 00h +31E4:1B97  F2 00 FC 00                          db      0F2h, 00h,0FCh, 00h +31E4:1B9B  09                                   db      9 +31E4:1B9C  0021[00]                             db      33 dup (0) +31E4:1BBD  0018[06]                             db      24 dup (6) +31E4:1BD5  00 06 06 06                          db      0, 6, 6, 6 +31E4:1BD9  0010[00]                             db      16 dup (0) +31E4:1BE9  52 01 44 01 08 00                    db       52h, 01h, 44h, 01h, 08h, 00h +31E4:1BEF  81 00 19 01 0A 00                    db       81h, 00h, 19h, 01h, 0Ah, 00h +31E4:1BF5  0021[00]                             db      33 dup (0) +31E4:1C16  0017[06]                             db      23 dup (6) +31E4:1C2D  00 06 06 06                          db      0, 6, 6, 6 +31E4:1C31  0010[00]                             db      16 dup (0) +31E4:1C41  BF 01 09 01 09 00                    db      0BFh, 01h, 09h, 01h, 09h, 00h +31E4:1C47  B8 00 4B 01 0B 00                    db      0B8h, 00h, 4Bh, 01h, 0Bh, 00h +31E4:1C4D  7E 00 2B 01 0D 00                    db       7Eh, 00h, 2Bh, 01h, 0Dh, 00h +31E4:1C53  02 01 03 81 22 00                    db       02h, 01h, 03h, 81h, 22h, 00h +31E4:1C59  00                                   db       00h +31E4:1C5A  0015[00]                             db      21 dup (0) +31E4:1C6F  06 06                                db      6, 6 +31E4:1C71  0C                                   db      0Ch +31E4:1C72  0C 0C 0C 0C 0C 0C    data_691        db      0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch ;  xref 31E4:726C +31E4:1C78  0C +31E4:1C79  0C 0C 0C 0C                          db      0Ch, 0Ch, 0Ch, 0Ch +31E4:1C7D  0C                   data_692        db      0Ch                     ; Data table (indexed access) +31E4:1C7E  0C 0C 0C 0C 0C 0C                    db       0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch +31E4:1C84  06 00 12                             db       06h, 00h, 12h +31E4:1C87  0C 0C                                db       0Ch, 0Ch +31E4:1C89  0010[00]                             db      16 dup (0) +31E4:1C99  F2 00 FC 00 0A 00                    db      0F2h, 00h,0FCh, 00h, 0Ah, 00h +31E4:1C9F  0C 01 4B 01 1B 00                    db       0Ch, 01h, 4Bh, 01h, 1Bh, 00h +31E4:1CA5  0023[00]                             db      35 dup (0) +31E4:1CC8  06                                   db      6 +31E4:1CC9  000D[00]                             db      13 dup (0) +31E4:1CD6  06 00 00 00 00 00                    db      6, 0, 0, 0, 0, 0 +31E4:1CDC  06 00 00                             db      6, 0, 0 +31E4:1CDF  0012[00]                             db      18 dup (0) +31E4:1CF1  05 01 C4 00 14 00                    db       05h, 01h,0C4h, 00h, 14h, 00h +31E4:1CF7  6B 01 2C 01 1B 00                    db       6Bh, 01h, 2Ch, 01h, 1Bh, 00h +31E4:1CFD  A5 00 D4 80 20 00                    db      0A5h, 00h,0D4h, 80h, 20h, 00h +31E4:1D03  0018[00]                             db      24 dup (0) +31E4:1D1B  06 06 06 06 06                       db      6, 6, 6, 6, 6 +31E4:1D20  000F[00]                             db      15 dup (0) +31E4:1D2F  06 00 00 00 00 0C                    db       06h, 00h, 00h, 00h, 00h, 0Ch +31E4:1D35  00 06 00 00                          db       00h, 06h, 00h, 00h +31E4:1D39  0010[00]                             db      16 dup (0) +31E4:1D49  BF 01 26 01 0A 00                    db      0BFh, 01h, 26h, 01h, 0Ah, 00h +31E4:1D4F  80 00 35 01 0E 00                    db       80h, 00h, 35h, 01h, 0Eh, 00h +31E4:1D55  BC 00 43 01 14 00                    db      0BCh, 00h, 43h, 01h, 14h, 00h +31E4:1D5B  001D[00]                             db      29 dup (0) +31E4:1D78  0C 00 06 06 06 0C                    db       0Ch, 00h, 06h, 06h, 06h, 0Ch +31E4:1D7E  0C 06                                db       0Ch, 06h +31E4:1D80  0007[0C]                             db      7 dup (0Ch) +31E4:1D87  00 0C 0C 06 06 0C                    db       00h, 0Ch, 0Ch, 06h, 06h, 0Ch +31E4:1D8D  00 00 06 0C 00                       db       00h, 00h, 06h, 0Ch, 00h +31E4:1D92  000F[00]                             db      15 dup (0) +31E4:1DA1  BF 01 10 01 0D 00                    db      0BFh, 01h, 10h, 01h, 0Dh, 00h +31E4:1DA7  80 00 14 01 0F 00                    db       80h, 00h, 14h, 01h, 0Fh, 00h +31E4:1DAD  D2 00 46 01 13 00                    db      0D2h, 00h, 46h, 01h, 13h, 00h +31E4:1DB3  F1 00 E8 80 1F 00                    db      0F1h, 00h,0E8h, 80h, 1Fh, 00h +31E4:1DB9  001A[00]                             db      26 dup (0) +31E4:1DD3  06 06 0C 0C 0C 00                    db       06h, 06h, 0Ch, 0Ch, 0Ch, 00h +31E4:1DD9  0C 0C 0C 0C 0C 0C                    db       0Ch, 0Ch, 0Ch, 0Ch, 0Ch, 0Ch +31E4:1DDF  00 0C 0C 0C 12 00                    db       00h, 0Ch, 0Ch, 0Ch, 12h, 00h +31E4:1DE5  00 00 0C 00                          db       00h, 00h, 0Ch, 00h +31E4:1DE9  0010[00]                             db      16 dup (0) +31E4:1DF9  BF 01 24 01 0E 00                    db      0BFh, 01h, 24h, 01h, 0Eh, 00h +31E4:1DFF  FA 00 46 01 11 00                    db      0FAh, 00h, 46h, 01h, 11h, 00h +31E4:1E05  F4 00 F4 80 26 00                    db      0F4h, 00h,0F4h, 80h, 26h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 415 + +31E4:1E0B  00 00                                db       00h, 00h +31E4:1E0D  001F[00]                             db      31 dup (0) +31E4:1E2C  06 06 06 00 00 06                    db      6, 6, 6, 0, 0, 6 +31E4:1E32  06 06 06 00 00 00                    db      6, 6, 6, 0, 0, 0 +31E4:1E38  06 06 00                             db      6, 6, 0 +31E4:1E3B  0007[00]                             db      7 dup (0) +31E4:1E42  0C 00                                db       0Ch, 00h +31E4:1E44  000D[00]                             db      13 dup (0) +31E4:1E51  12 01 B4 00 0F 00                    db       12h, 01h,0B4h, 00h, 0Fh, 00h +31E4:1E57  0C 01 46 01 11 00                    db       0Ch, 01h, 46h, 01h, 11h, 00h +31E4:1E5D  0023[00]                             db      35 dup (0) +31E4:1E80  06 00 00 00 00 06                    db      6, 0, 0, 0, 0, 6 +31E4:1E86  06 06                                db      6, 6 +31E4:1E88  0007[06]                             db      7 dup (6) +31E4:1E8F  00 06 06 06 00 06                    db      0, 6, 6, 6, 0, 6 +31E4:1E95  00 00 06 06                          db      0, 0, 6, 6 +31E4:1E99  0010[00]                             db      16 dup (0) +31E4:1EA9  E1 00 EA 00 0F 00                    db      0E1h, 00h,0EAh, 00h, 0Fh, 00h +31E4:1EAF  B1 00 46 01 12 00                    db      0B1h, 00h, 46h, 01h, 12h, 00h +31E4:1EB5  BF 01 30 01 13 00                    db      0BFh, 01h, 30h, 01h, 13h, 00h +31E4:1EBB  80 00 32 01 15 00                    db       80h, 00h, 32h, 01h, 15h, 00h +31E4:1EC1  4B 01 05 81 1D                       db       4Bh, 01h, 05h, 81h, 1Dh +31E4:1EC6  000D[00]                             db      13 dup (0) +31E4:1ED3  0008[0C]                             db      8 dup (0Ch) +31E4:1EDB  00 00 00 06 0C 0C                    db       00h, 00h, 00h, 06h, 0Ch, 0Ch +31E4:1EE1  12 12 06 06 0C 0C                    db       12h, 12h, 06h, 06h, 0Ch, 0Ch +31E4:1EE7  0C 06 18 0C 0C 0C                    db       0Ch, 06h, 18h, 0Ch, 0Ch, 0Ch +31E4:1EED  00                                   db       00h +31E4:1EEE  0C 0C 0C                             db       0Ch, 0Ch, 0Ch +31E4:1EF1  0010[00]                             db      16 dup (0) +31E4:1F01  48 01 DD 00 11 00                    db       48h, 01h,0DDh, 00h, 11h, 00h +31E4:1F07  80 00 20 01 17 00                    db       80h, 00h, 20h, 01h, 17h, 00h +31E4:1F0D  BE 01 37 01 18 00                    db      0BEh, 01h, 37h, 01h, 18h, 00h +31E4:1F13  02 01 EB 00 1C                       db       02h, 01h,0EBh, 00h, 1Ch +31E4:1F18  0022[00]                             db      34 dup (0) +31E4:1F3A  06 06 0C 0C 00 00                    db       06h, 06h, 0Ch, 0Ch, 00h, 00h +31E4:1F40  12 00                                db       12h, 00h +31E4:1F42  0017[00]                             db      23 dup (0) +31E4:1F59  0F 01 EE 00 0E 00                    db       0Fh, 01h,0EEh, 00h, 0Eh, 00h +31E4:1F5F  80 00 1F 01 11 00                    db       80h, 00h, 1Fh, 01h, 11h, 00h +31E4:1F65  BE 01 24 01 14 00                    db      0BEh, 01h, 24h, 01h, 14h, 00h +31E4:1F6B  D7 00 42 01 19 00                    db      0D7h, 00h, 42h, 01h, 19h, 00h +31E4:1F71  72 01 EB 80 1E 00                    db       72h, 01h,0EBh, 80h, 1Eh, 00h +31E4:1F77  9C 00 ED 00                          db       9Ch, 00h,0EDh, 00h +31E4:1F7B  23                                   db      23h +31E4:1F7C  000C[00]                             db      12 dup (0) +31E4:1F88  0C 0C 00 00 06 06                    db       0Ch, 0Ch, 00h, 00h, 06h, 06h +31E4:1F8E  06 00 0C 06 06 06                    db       06h, 00h, 0Ch, 06h, 06h, 06h +31E4:1F94  12 12 0C 0C 06 06                    db       12h, 12h, 0Ch, 0Ch, 06h, 06h +31E4:1F9A  18 00 0C 00 00 1E                    db       18h, 00h, 0Ch, 00h, 00h, 1Eh +31E4:1FA0  0C 00                                db       0Ch, 00h +31E4:1FA2  000F[00]                             db      15 dup (0) +31E4:1FB1  D3 00 C0 00 0D 00                    db      0D3h, 00h,0C0h, 00h, 0Dh, 00h +31E4:1FB7  80 00 18 01 13 00                    db       80h, 00h, 18h, 01h, 13h, 00h +31E4:1FBD  66 01 41 01 0C 00                    db       66h, 01h, 41h, 01h, 0Ch, 00h +31E4:1FC3  42 01 E2 80 24 00                    db       42h, 01h,0E2h, 80h, 24h, 00h +31E4:1FC9  0017[00]                             db      23 dup (0) +31E4:1FE0  0C 00 00 06 06 06                    db       0Ch, 00h, 00h, 06h, 06h, 06h +31E4:1FE6  0008[06]                             db      8 dup (6) +31E4:1FEE  0C 0C 06 06 06 00                    db       0Ch, 0Ch, 06h, 06h, 06h, 00h +31E4:1FF4  0C 00 00 06 12 00                    db       0Ch, 00h, 00h, 06h, 12h, 00h +31E4:1FFA  00 00 00 00 00 00                    db      0, 0, 0, 0, 0, 0 +31E4:2000  00                   data_721        db      0                       ; Data table (indexed access) +31E4:2001  0008[00]                             db      8 dup (0) +31E4:2009  A2 01 07 01 11 00                    db      0A2h, 01h, 07h, 01h, 11h, 00h +31E4:200F  8F 00 03 01 16 00                    db       8Fh, 00h, 03h, 01h, 16h, 00h +31E4:2015  00                                   db       00h +31E4:2016  002C[00]                             db      44 dup (0) +31E4:2042  06 06                                db      6, 6 +31E4:2044  001D[00]                             db      29 dup (0) +31E4:2061  F2 00 FC 00 15 00                    db      0F2h, 00h,0FCh, 00h, 15h, 00h +31E4:2067  14 01 4B 01 17                       db       14h, 01h, 4Bh, 01h, 17h +31E4:206C  002A[00]                             db      42 dup (0) +31E4:2096  06 00 00 00 00 06                    db      6, 0, 0, 0, 0, 6 +31E4:209C  06 06 00 00 06                       db      6, 6, 0, 0, 6 +31E4:20A1  0018[00]                             db      24 dup (0) +31E4:20B9  A2 01 07 01 12 00                    db      0A2h, 01h, 07h, 01h, 12h, 00h +31E4:20BF  8F 00 03 01 16 00                    db       8Fh, 00h, 03h, 01h, 16h, 00h +31E4:20C5  00                                   db       00h +31E4:20C6  002B[00]                             db      43 dup (0) +31E4:20F1  06 06                                db      6, 6 +31E4:20F3  001E[00]                             db      30 dup (0) +31E4:2111  A2 01 07 01 19 00                    db      0A2h, 01h, 07h, 01h, 19h, 00h +31E4:2117  8F 00 03 01 12                       db       8Fh, 00h, 03h, 01h, 12h +31E4:211C  0027[00]                             db      39 dup (0) +31E4:2143  06 06 06 06 00 00                    db      6, 6, 6, 6, 0, 0 +31E4:2149  06 06 06 00 00 00                    db      6, 6, 6, 0, 0, 0 +31E4:214F  00 06 06 00                          db      0, 6, 6, 0 +31E4:2153  0016[00]                             db      22 dup (0) +31E4:2169  F2 00 FC 00 13 00                    db      0F2h, 00h,0FCh, 00h, 13h, 00h +31E4:216F  14 01 4B 01 18 00                    db       14h, 01h, 4Bh, 01h, 18h, 00h +31E4:2175  0029[00]                             db      41 dup (0) +31E4:219E  06 00 00 00 06 06                    db      6, 0, 0, 0, 6, 6 +31E4:21A4  06 00 00 00 06 00                    db      6, 0, 0, 0, 6, 0 +31E4:21AA  00                                   db      0 +31E4:21AB  0016[00]                             db      22 dup (0) +31E4:21C1  12 01 B4 00 14 00                    db       12h, 01h,0B4h, 00h, 14h, 00h +31E4:21C7  14 01 46 01                          db       14h, 01h, 46h, 01h +31E4:21CB  0C                                   db      0Ch +31E4:21CC  0023[00]                             db      35 dup (0) +31E4:21EF  06 06                                db      6, 6 +31E4:21F1  000E[00]                             db      14 dup (0) +31E4:21FF  06 00 00 00 00 06                    db      6, 0, 0, 0, 0, 6 +31E4:2205  00 00                                db      0, 0 +31E4:2207  0012[00]                             db      18 dup (0) +31E4:2219  A2 01 07 01 0B 00                    db      0A2h, 01h, 07h, 01h, 0Bh, 00h +31E4:221F  8F 00 03 01 0C 00                    db       8Fh, 00h, 03h, 01h, 0Ch, 00h +31E4:2225  0023[00]                             db      35 dup (0) +31E4:2248  06 00 00 00 06 06                    db      6, 0, 0, 0, 6, 6 +31E4:224E  06                                   db      6 +31E4:224F  0008[06]                             db      8 dup (6) +31E4:2257  00 06 06 06 00 06                    db      0, 6, 6, 6, 0, 6 +31E4:225D  00 00 06 06                          db      0, 0, 6, 6 +31E4:2261  0010[00]                             db      16 dup (0) +31E4:2271  02 01 EE 00 12                       db       02h, 01h,0EEh, 00h, 12h +31E4:2276  0053[00]                             db      83 dup (0) +31E4:22C9  9B 00 4A 81 11 00                    db       9Bh, 00h, 4Ah, 81h, 11h, 00h +31E4:22CF  0052[00]                             db      82 dup (0) +31E4:2321  C3 00 3B 81 13 00                    db      0C3h, 00h, 3Bh, 81h, 13h, 00h +31E4:2327  00                                   db       00h +31E4:2328  0051[00]                             db      81 dup (0) +31E4:2379  65 01 43 81 0E                       db       65h, 01h, 43h, 81h, 0Eh +31E4:237E  0053[00]                             db      83 dup (0) +31E4:23D1  AC 00 43 81 0C 00                    db      0ACh, 00h, 43h, 81h, 0Ch, 00h +31E4:23D7  0042[00]                             db      66 dup (0) +31E4:2419  00                   data_743        db      0 +31E4:241A  000F[00]                             db      15 dup (0) +31E4:2429  AC 00 43 01 0C 00                    db      0ACh, 00h, 43h, 01h, 0Ch, 00h +31E4:242F  0052[00]                             db      82 dup (0) +31E4:2481  C3 00 34 81 0A 00                    db      0C3h, 00h, 34h, 81h, 0Ah, 00h +31E4:2487  00                                   db       00h +31E4:2488  0051[00]                             db      81 dup (0) +31E4:24D9  4B 01 43 01 13 00                    db       4Bh, 01h, 43h, 01h, 13h, 00h +31E4:24DF  0052[00]                             db      82 dup (0) +31E4:2531  80 00 04 81 14 00                    db       80h, 00h, 04h, 81h, 14h, 00h +31E4:2537  00                                   db       00h +31E4:2538  0051[00]                             db      81 dup (0) +31E4:2589  AC 00 43 01 0C 00                    db      0ACh, 00h, 43h, 01h, 0Ch, 00h +31E4:258F  0052[00]                             db      82 dup (0) +31E4:25E1  42 01 45 81 0F 00                    db       42h, 01h, 45h, 81h, 0Fh, 00h +31E4:25E7  83 00 0B                             db       83h, 00h, 0Bh +31E4:25EA  41 27                                db       41h, 27h +31E4:25EC  003F[00]                             db      63 dup (0) +31E4:262B  06 06                                db      6, 6 +31E4:262D  000C[00]                             db      12 dup (0) +31E4:2639  AA 01 0B 81 26 00                    db      0AAh, 01h, 0Bh, 81h, 26h, 00h +31E4:263F  83 00 0B 41 28 00                    db       83h, 00h, 0Bh, 41h, 28h, 00h +31E4:2645  003F[00]                             db      63 dup (0) +31E4:2684  06                                   db      6 +31E4:2685  000C[00]                             db      12 dup (0) +31E4:2691  AA 01 0B 81 27 00                    db      0AAh, 01h, 0Bh, 81h, 27h, 00h +31E4:2697  83 00 0B 41 29 00                    db       83h, 00h, 0Bh, 41h, 29h, 00h +31E4:269D  0040[00]                             db      64 dup (0) +31E4:26DD  06                                   db      6 +31E4:26DE  000B[00]                             db      11 dup (0) +31E4:26E9  AA 01 0B 01 28                       db      0AAh, 01h, 0Bh, 01h, 28h +31E4:26EE  0029[00]                             db      41 dup (0) +31E4:2717  0000                 data_756        dw      0                       ; Data table (indexed access) +                                                                                ;  xref 31E4:BD21 +31E4:2719  0028[00]                             db      40 dup (0) +31E4:2741  BB 01 2B 01 2B                       db      0BBh, 01h, 2Bh, 01h, 2Bh +31E4:2746  0053[00]                             db      83 dup (0) +31E4:2799  7A 00 12 01 2A 00                    db       7Ah, 00h, 12h, 01h, 2Ah, 00h +31E4:279F  BA 01 11 01                          db      0BAh, 01h, 11h, 01h +31E4:27A3  2C                                   db      2Ch +31E4:27A4  0044[00]                             db      68 dup (0) +31E4:27E8  06 06 06 06 06 00                    db       06h, 06h, 06h, 06h, 06h, 00h +31E4:27EE  00 00 00 0C 01 48                    db       00h, 00h, 00h, 0Ch, 01h, 48h +31E4:27F4  01 2B 00 D1 00 F4                    db       01h, 2Bh, 00h,0D1h, 00h,0F4h +31E4:27FA  00 32 00 6C 01 DD                    db       00h, 32h, 00h, 6Ch, 01h,0DDh +31E4:2800  00                   data_759        db      0                       ;  xref 31E4:1895 +31E4:2801  2D 00 00                             db       2Dh, 00h, 00h +31E4:2804  003D[00]                             db      61 dup (0) +31E4:2841  0C 0C 00 0C 00 06                    db       0Ch, 0Ch, 00h, 0Ch, 00h, 06h +31E4:2847  06 00 94 00 C1 00                    db       06h, 00h, 94h, 00h,0C1h, 00h +31E4:284D  34 00 BF 01 C2 00                    db       34h, 00h,0BFh, 01h,0C2h, 00h +31E4:2853  33 00 7F 00 30 01                    db       33h, 00h, 7Fh, 00h, 30h, 01h +31E4:2859  2C 00 BF 01 23 01                    db       2Ch, 00h,0BFh, 01h, 23h, 01h +31E4:285F  2E 00 00                             db       2Eh, 00h, 00h +31E4:2862  0034[00]                             db      52 dup (0) +31E4:2896  0C 0C 0C 00 12 06                    db       0Ch, 0Ch, 0Ch, 00h, 12h, 06h +31E4:289C  12 00 00 06 00 7F                    db       12h, 00h, 00h, 06h, 00h, 7Fh +31E4:28A2  00 C1 00 32 00 06                    db       00h,0C1h, 00h, 32h, 00h, 06h +31E4:28A8  01 A8 00 2F 00 7F                    db       01h,0A8h, 00h, 2Fh, 00h, 7Fh +31E4:28AE  00 2F 01 2D 00 B1                    db       00h, 2Fh, 01h, 2Dh, 00h,0B1h +31E4:28B4  01 34 01                             db       01h, 34h, 01h +31E4:28B7  30                                   db      30h +31E4:28B8  0036[00]                             db      54 dup (0) +31E4:28EE  0C 0C 0C 0C 00 06                    db       0Ch, 0Ch, 0Ch, 0Ch, 00h, 06h +31E4:28F4  12 12 00 00 00 BB                    db       12h, 12h, 00h, 00h, 00h,0BBh +31E4:28FA  01 3A 01 2E 00 00                    db       01h, 3Ah, 01h, 2Eh, 00h, 00h +31E4:2900  0051[00]                             db      81 dup (0) +31E4:2951  8A 00 0A 01 2E                       db       8Ah, 00h, 0Ah, 01h, 2Eh +31E4:2956  0053[00]                             db      83 dup (0) +31E4:29A9  BB 01 3A 01 2E 00                    db      0BBh, 01h, 3Ah, 01h, 2Eh, 00h +31E4:29AF  7F 00 33 01 01                       db       7Fh, 00h, 33h, 01h, 01h +31E4:29B4  0019[00]                             db      25 dup (0) +31E4:29CD  06                                   db      6 +31E4:29CE  0033[00]                             db      51 dup (0) + +; The hotspot table contains a set of hotspot entries, each one being an Id +; following by four word parameters specifying the bounds of the hotspot; +; each coordinate being the position + 80h. The table is ended by an Id +; entry of 0 + +31E4:2A01  2716               hotspot_table     dw      2716h                 ;Id +                                                dw      99h, b8h, 112h, 147h  ;xs,xe,ys,ye +.... table contents removed.... + +31E4:2D5C  0000                                 dw       0         ; End of list specifier +31E4:2D5E  00                                   db       0 + +31E4:2D5F                      actions_list     dw       1 +                                                db       1, 'Get', 0 +31E4:2D66                                       dw       0 +                                                db       1, 'Drop', 0 +31E4:2D6E                                       dw       3 +                                                db       1, 'Push', 0 +31E4:2D76                                       dw       4 +                                                db       1, 'Pull', 0 +31E4:2D7E                                       dw       5 +                                                db       1, 'Operate', 0 +31E4:2D89                                       dw       6 +                                                db       1, 'Open', 0 +31E4:2D91                                       dw       7 +                                                db       1, 'Close', 0 +31E4:2D9A                                       dw       8 +                                                db       1, 'Lock', 0 +31E4:2DA2                                       dw       9 +                                                db       1, 'Unlock', 0 +31E4:2DAC                                       dw       10 +                                                db       1, 'Use', 0 +31E4:2DB3                                       dw       11 +                                                db       1, 'Give', 0 +31E4:2DBB                                       dw       12 +                                                db       1, 'Talk to', 0 +31E4:2DC6                                       dw       13 +                                                db       1, 'Tell', 0 +31E4:2DCE                                       dw       14 +                                                db       1, 'Buy', 0 +31E4:2DD5                                       dw       15 +                                                db       1, 'Look', 0 +31E4:2DDD                                       dw       16 +                                                db       1, 'Look at', 0 +31E4:2DE8                                       dw       17 +                                                db       1, 'Look through', 0 +31E4:2DF8                                       dw       18 +                                                db       1, 'Ask', 0 +31E4:2DFF                                       dw       0 +                                                db       1, 'Eat', 0 +31E4:2E06                                       dw       20 +                                                db       1, 'Drink', 0 +31E4:2E0F                                       dw       21 +                                                db       1, 'Status', 0 +31E4:2E19                                       dw       22 +                                                db       1, 'Go to', 0 +31E4:2E22                                       dw       23 +                                                db       1, 'Return', 0 +31E4:2E2C                                       dw       24 +                                                db       1, 'Bribe', 0 +31E4:2E35                                       dw       25 +                                                db       1, 'Examine', 0 + +31E4:2E40                                       db       02h +31E4:2E41                                       db       1, 'and then', 0 +31E4:2E4B                                       db       1, 'finish', 0 + +31E4:2E53  00 7D FF 7C                          db       00h, 7Dh,0FFh, 7Ch + +; This table contains a set of references of the room exit hotspots in +; the various rooms - it used by the NPC movement code +31E4:2E57  02 80 2712    room_exit_hotspots     db       02h, 80h, 2712h +31E4:2E5B  01 80 2711                           db       01h, 80h, 2711h +31E4:2E5F  11 80 2715                           db       11h, 80h, 2715h +31E4:2E63  1D 80 2716                           db       1Dh, 80h, 2716h +31E4:2E67  13 80 2717                           db       13h, 80h, 2717h +31E4:2E6B  1E 80 2718                           db       1Eh, 80h, 2718h +31E4:2E6F  0E 80 2719                           db       0Eh, 80h, 2719h +31E4:2E73  1F 80 271A                           db       1Fh, 80h, 271Ah +31E4:2E77  0F 80 271E                           db       0Fh, 80h, 271Eh +31E4:2E7B  0C 80 271F                           db       0Ch, 80h, 271Fh +31E4:2E7F  20 80 2720                           db       20h, 80h, 2720h +31E4:2E83  14 80 2721                           db       14h, 80h, 2721h +31E4:2E87  24 80 2722                           db       24h, 80h, 2722h +31E4:2E8B  0A 80 2725                           db       0Ah, 80h, 2725h +31E4:2E8F  22 80 2726                           db       22h, 80h, 2726h +31E4:2E93  26 80 2729                           db       26h, 80h, 2729h +31E4:2E97  26 40 272A                           db       26h, 40h, 272Ah +31E4:2E9B  27 80 272B                           db       27h, 80h, 272Bh +31E4:2E9F  27 40 272C                           db       27h, 40h, 272Ch +31E4:2EA3  28 80 272D                           db       28h, 80h, 272Dh +31E4:2EA7  28 40 272C                           db       28h, 40h, 272Ch +31E4:2EAB  29 80 272D                           db       29h, 80h, 272Dh +31E4:2EAF  00 00                                dw       0 + +; This table contains a set of rectangles indicating the main walkable areas +; of each room, and is used by the NPC code to choose random destinations for +; characters after bumping into each other + +31E4:2EB1  02              room_bounds_table    db       02h +31E4:2EB2  01 51 01 1D 01 38                    db       01h, 51h, 01h, 1Dh, 01h, 38h +31E4:2EB8  01 B2 00 6A 01 F9                    db       01h,0B2h, 00h, 6Ah, 01h,0F9h +31E4:2EBE  00 12 01 C1 00 63                    db       00h, 12h, 01h,0C1h, 00h, 63h +31E4:2EC4  01 12 01 2E 01 FF                    db       01h, 12h, 01h, 2Eh, 01h,0FFh +31E4:2ECA  00 7D 01 11 01 2E                    db       00h, 7Dh, 01h, 11h, 01h, 2Eh +31E4:2ED0  01 E2 00 53 01 02                    db       01h,0E2h, 00h, 53h, 01h, 02h +31E4:2ED6  01 1B 01 D0 00 5F                    db       01h, 1Bh, 01h,0D0h, 00h, 5Fh +31E4:2EDC  01 1A 01 3F 01 D6                    db       01h, 1Ah, 01h, 3Fh, 01h,0D6h +31E4:2EE2  00 69 01 F6 00 27                    db       00h, 69h, 01h,0F6h, 00h, 27h +31E4:2EE8  01 B7 00 82 01 19                    db       01h,0B7h, 00h, 82h, 01h, 19h +31E4:2EEE  01 41 01 A4 00 9F                    db       01h, 41h, 01h,0A4h, 00h, 9Fh +31E4:2EF4  01 1F 01 41 01 C6                    db       01h, 1Fh, 01h, 41h, 01h,0C6h +31E4:2EFA  00 9F 01 FF 00 38                    db       00h, 9Fh, 01h,0FFh, 00h, 38h +31E4:2F00  01 86 00 9F 01 07                    db       01h, 86h, 00h, 9Fh, 01h, 07h +31E4:2F06  01 38 01 9C 00 9F                    db       01h, 38h, 01h, 9Ch, 00h, 9Fh +31E4:2F0C  01 0D 01 38 01 9C                    db       01h, 0Dh, 01h, 38h, 01h, 9Ch +31E4:2F12  00 9F 01 F7                          db       00h, 9Fh, 01h,0F7h +31E4:2F16  00                                   db      0                        +31E4:2F17  38 01 CF 00 70 01                    db       38h, 01h,0CFh, 00h, 70h, 01h +31E4:2F1D  EF 00 28 01 9C 00                    db      0EFh, 00h, 28h, 01h, 9Ch, 00h +31E4:2F23  9F 01 0E 01 38 01                    db       9Fh, 01h, 0Eh, 01h, 38h, 01h +31E4:2F29  A9 00 90 01 EE 00                    db      0A9h, 00h, 90h, 01h,0EEh, 00h +31E4:2F2F  1D 01 DF 00 68 01                    db       1Dh, 01h,0DFh, 00h, 68h, 01h +31E4:2F35  0F 01 38 01 C7 00                    db       0Fh, 01h, 38h, 01h,0C7h, 00h +31E4:2F3B  78 01 01 01 38 01                    db       78h, 01h, 01h, 01h, 38h, 01h +31E4:2F41  AF 00 87 01 08 01                    db      0AFh, 00h, 87h, 01h, 08h, 01h +31E4:2F47  37 01 C4 00 60 01                    db       37h, 01h,0C4h, 00h, 60h, 01h +31E4:2F4D  EF 00 20 01 A0 00                    db      0EFh, 00h, 20h, 01h,0A0h, 00h +31E4:2F53  3D 01 E9 00 3D 01                    db       3Dh, 01h,0E9h, 00h, 3Dh, 01h +31E4:2F59  DA 00 7C 01 FC 00                    db      0DAh, 00h, 7Ch, 01h,0FCh, 00h +31E4:2F5F  1A 01                                db       1Ah, 01h + +; Room exits table + +31E4:2F61  0000            room_exits_table     dw      0 +31E4:2F63  353D                                 dw      offset room1_exits +31E4:2F65  354D                                 ... offset list +31E4:2F67  3579 +31E4:2F69  3597 +31E4:2F6B  2FE3 +31E4:2F6D  2FC5 +31E4:2F6F  35A7 +31E4:2F71  3501 +31E4:2F73  34E3 +31E4:2F75  34A9 +31E4:2F77  351F +31E4:2F79  347D +31E4:2F7B  3451 +31E4:2F7D  3417 +31E4:2F7F  33EB +31E4:2F81  33CD +31E4:2F83  3385 +31E4:2F85  334B +31E4:2F87  32F5 +31E4:2F89  32BB +31E4:2F8B  329D +31E4:2F8D  327F +31E4:2F8F  3261 +31E4:2F91  3243 +31E4:2F93  3225 +31E4:2F95  3207 +31E4:2F97  31E9 +31E4:2F99  31D9 +31E4:2F9B  31C9 +31E4:2F9D  31A9 +31E4:2F9F  31B9 +31E4:2FA1  3199 +31E4:2FA3  0000 +31E4:2FA5  313D +31E4:2FA7  30FF +31E4:2FA9  314D +31E4:2FAB  0000 +31E4:2FAD  315D +31E4:2FAF  317B +31E4:2FB1  311F +31E4:2FB3  310F +31E4:2FB5  30EF +31E4:2FB7  30D1 +31E4:2FB9  30A5 +31E4:2FBB  306B +31E4:2FBD  3031 +31E4:2FBF  3021 +31E4:2FC1  3001 +31E4:2FC3  3011 + +31E4:2FC5  91 01 BF 01                    db       11h, 30h, 91h, 01h,0BFh, 01h +31E4:2FC9  CE 00 0E 01 0E 00                    db      0CEh, 00h, 0Eh, 01h, 0Eh, 00h +31E4:2FCF  00 00 05 00 7F 00                    db       00h, 00h, 05h, 00h, 7Fh, 00h +31E4:2FD5  AC 00 D0 00 0E 01                    db      0ACh, 00h,0D0h, 00h, 0Eh, 01h +31E4:2FDB  0D 00 00 00 29 00                    db       0Dh, 00h, 00h, 00h, 29h, 00h +31E4:2FE1  00 00 36 01 56 01                    db       00h, 00h, 36h, 01h, 56h, 01h +31E4:2FE7  C6 00 FA 00 0B 00                    db      0C6h, 00h,0FAh, 00h, 0Bh, 00h +31E4:2FED  00 00 06 00 91 01                    db       00h, 00h, 06h, 00h, 91h, 01h +31E4:2FF3  BF 01 CE 00 0E 01                    db      0BFh, 01h,0CEh, 00h, 0Eh, 01h +31E4:2FF9  0E 00 2F 27 28 00                    db       0Eh, 00h, 2Fh, 27h, 28h, 00h +31E4:2FFF  00 00 77 00 C3 00                    db       00h, 00h, 77h, 00h,0C3h, 00h +31E4:3005  CF 00 15 01 0D 00                    db      0CFh, 00h, 15h, 01h, 0Dh, 00h +31E4:300B  00 00 2E 00 00 00                    db       00h, 00h, 2Eh, 00h, 00h, 00h +31E4:3011  7F 00 9B 00 EC 00                    db       7Fh, 00h, 9Bh, 00h,0ECh, 00h +31E4:3017  3E 01 0D 00 00 00                    db       3Eh, 01h, 0Dh, 00h, 00h, 00h +31E4:301D  01 00 00 00 AA 01                    db       01h, 00h, 00h, 00h,0AAh, 01h +31E4:3023  C2 01 D7 00 3E 01                    db      0C2h, 01h,0D7h, 00h, 3Eh, 01h +31E4:3029  0E 00 00 00 2E 00                    db       0Eh, 00h, 00h, 00h, 2Eh, 00h +31E4:302F  00 00 7F 00 94 00                    db       00h, 00h, 7Fh, 00h, 94h, 00h +31E4:3035  87 00 C8 00 0D 00                    db       87h, 00h,0C8h, 00h, 0Dh, 00h +31E4:303B  00 00 32 00 00 01                    db       00h, 00h, 32h, 00h, 00h, 01h +31E4:3041  22 01 7F 00 C1 00                    db       22h, 01h, 7Fh, 00h,0C1h, 00h +31E4:3047  0B 00 00 00 2F 00                    db       0Bh, 00h, 00h, 00h, 2Fh, 00h + +31E4:304D  7F 00 94 00 F5 00                    db       7Fh, 00h, 94h, 00h,0F5h, 00h +31E4:3053  47 01 0D 00 00 00                    db       47h, 01h, 0Dh, 00h, 00h, 00h +31E4:3059  2D 00 7F 01 96 01                    db       2Dh, 00h, 7Fh, 01h, 96h, 01h +31E4:305F  F4 00 3D 01 0E 00                    db      0F4h, 00h, 3Dh, 01h, 0Eh, 00h +31E4:3065  00 00 30 00 00 00                    db       00h, 00h, 30h, 00h, 00h, 00h +31E4:306B  7D 00 C7 00 87 00                    db       7Dh, 00h,0C7h, 00h, 87h, 00h +31E4:3071  CD 00 0D 00 00 00                    db      0CDh, 00h, 0Dh, 00h, 00h, 00h +31E4:3077  34 00 AB 01 BF 01                    db       34h, 00h,0ABh, 01h,0BFh, 01h +31E4:307D  87 00 CD 00 0E 00                    db       87h, 00h,0CDh, 00h, 0Eh, 00h +31E4:3083  00 00 33 00 7D 00                    db       00h, 00h, 33h, 00h, 7Dh, 00h +31E4:3089  A7 00 E7 00 3D 01                    db      0A7h, 00h,0E7h, 00h, 3Dh, 01h +31E4:308F  0D 00 00 00 2C 00                    db       0Dh, 00h, 00h, 00h, 2Ch, 00h +31E4:3095  AB 01 F4 01 F5 00                    db      0ABh, 01h,0F4h, 01h,0F5h, 00h +31E4:309B  47 01 0E 00 00 00                    db       47h, 01h, 0Eh, 00h, 00h, 00h +31E4:30A1  2E 00 00 00 04 01                    db       2Eh, 00h, 00h, 00h, 04h, 01h +31E4:30A7  44 01 39 01 47 01                    db       44h, 01h, 39h, 01h, 47h, 01h +31E4:30AD  0C 00 00 00 2B 00                    db       0Ch, 00h, 00h, 00h, 2Bh, 00h +31E4:30B3  CF 00 F3 00 BD 00                    db      0CFh, 00h,0F3h, 00h,0BDh, 00h +31E4:30B9  00 01 0B 00 00 00                    db       00h, 01h, 0Bh, 00h, 00h, 00h +31E4:30BF  32 00 67 01 8A 01                    db       32h, 00h, 67h, 01h, 8Ah, 01h +31E4:30C5  BE 00 01 01 0B 00                    db      0BEh, 00h, 01h, 01h, 0Bh, 00h +31E4:30CB  00 00 2D 00 00 00                    db       00h, 00h, 2Dh, 00h, 00h, 00h +31E4:30D1  7F 00 9A                             db       7Fh, 00h, 9Ah + +31E4:30D4  00 C6 00    hotspot_display_buffer   db       00h,0C6h, 00h +31E4:30D7  19 01 0D 00 00 00                    db       19h, 01h, 0Dh, 00h, 00h, 00h +31E4:30DD  2A 00 A7 01 BF 01                    db       2Ah, 00h,0A7h, 01h,0BFh, 01h +31E4:30E3  CF 00 21 01 0E 00                    db      0CFh, 00h, 21h, 01h, 0Eh, 00h +31E4:30E9  00 00 2C 00 00 00                    db       00h, 00h, 2Ch, 00h, 00h, 00h +31E4:30EF  A3 01 BF 01 C8 00                    db      0A3h, 01h,0BFh, 01h,0C8h, 00h +31E4:30F5  29 01 0E 00 00 00                    db       29h, 01h, 0Eh, 00h, 00h, 00h +31E4:30FB  2B 00 00 00                          db       2Bh, 00h, 00h, 00h +31E4:30FF  3F                                   db      3Fh +31E4:3100  01                   data_771        db      1 +31E4:3101  74 01 32 01 4A 01                    db       74h, 01h, 32h, 01h, 4Ah, 01h +31E4:3107  0C 00 00 00 13 00                    db       0Ch, 00h, 00h, 00h, 13h, 00h +31E4:310D  00 00 91 01 BF 01                    db       00h, 00h, 91h, 01h,0BFh, 01h +31E4:3113  CE 00 0E 01 0E 00                    db      0CEh, 00h, 0Eh, 01h, 0Eh, 00h +31E4:3119  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:311F  91 01 BF 01 CE 00                    db       91h, 01h,0BFh, 01h,0CEh, 00h +31E4:3125  0E 01 0E 00 2D 27                    db       0Eh, 01h, 0Eh, 00h, 2Dh, 27h +31E4:312B  27 00 7F 00 AC 00                    db       27h, 00h, 7Fh, 00h,0ACh, 00h +31E4:3131  D0 00 0E 01 0D 00                    db      0D0h, 00h, 0Eh, 01h, 0Dh, 00h +31E4:3137  2E 27 29 00 00 00                    db       2Eh, 27h, 29h, 00h, 00h, 00h +31E4:313D  C1 00 E0 00 1D 01                    db      0C1h, 00h,0E0h, 00h, 1Dh, 01h +31E4:3143  36 01 0C 00 26 27                    db       36h, 01h, 0Ch, 00h, 26h, 27h +31E4:3149  0A 00 00 00 7F 00                    db       0Ah, 00h, 00h, 00h, 7Fh, 00h +31E4:314F  94 00 C6 00 14 01                    db       94h, 00h,0C6h, 00h, 14h, 01h +31E4:3155  0D 00 22 27 14 00                    db       0Dh, 00h, 22h, 27h, 14h, 00h +31E4:315B  00 00 2E 01 62 01                    db       00h, 00h, 2Eh, 01h, 62h, 01h +31E4:3161  34 01 90 01 0C 00                    db       34h, 01h, 90h, 01h, 0Ch, 00h +31E4:3167  29 27 0F 00 7F 00                    db       29h, 27h, 0Fh, 00h, 7Fh, 00h +31E4:316D  AC 00 D0 00 0E 01                    db      0ACh, 00h,0D0h, 00h, 0Eh, 01h +31E4:3173  0D 00 2A 27 27 00                    db       0Dh, 00h, 2Ah, 27h, 27h, 00h +31E4:3179  00 00 91 01 BF 01                    db       00h, 00h, 91h, 01h,0BFh, 01h +31E4:317F  CE 00 0E 01 0E 00                    db      0CEh, 00h, 0Eh, 01h, 0Eh, 00h +31E4:3185  2B 27 26 00 7F 00                    db       2Bh, 27h, 26h, 00h, 7Fh, 00h +31E4:318B  AC 00 D0 00 0E 01                    db      0ACh, 00h,0D0h, 00h, 0Eh, 01h +31E4:3191  0D 00 2C 27 28 00                    db       0Dh, 00h, 2Ch, 27h, 28h, 00h + +31E4:3197  00 00 A3 00 CB 00                    db       00h, 00h,0A3h, 00h,0CBh, 00h +31E4:319D  36 01 4A 01 0C 00                    db       36h, 01h, 4Ah, 01h, 0Ch, 00h +31E4:31A3  20 27 0C 00 00 00                    db       20h, 27h, 0Ch, 00h, 00h, 00h +31E4:31A9  B9 00 E0 00 24 01                    db      0B9h, 00h,0E0h, 00h, 24h, 01h +31E4:31AF  4A 01 0C 00 18 27                    db       4Ah, 01h, 0Ch, 00h, 18h, 27h +31E4:31B5  13 00 00 00 63 01                    db       13h, 00h, 00h, 00h, 63h, 01h +31E4:31BB  83 01 39 01 90 01                    db       83h, 01h, 39h, 01h, 90h, 01h +31E4:31C1  0C 00 1A 27 0E 00                    db       0Ch, 00h, 1Ah, 27h, 0Eh, 00h +31E4:31C7  00 00 98 00 B9 00                    db       00h, 00h, 98h, 00h,0B9h, 00h +31E4:31CD  2E 01 48 01 0C 00                    db       2Eh, 01h, 48h, 01h, 0Ch, 00h +31E4:31D3  16 27 11 00 00 00                    db       16h, 27h, 11h, 00h, 00h, 00h +31E4:31D9  00 01 20 01 D5 00                    db       00h, 01h, 20h, 01h,0D5h, 00h +31E4:31DF  0F 01 0B 00 00                       db       0Fh, 01h, 0Bh, 00h, 00h + +; Popmenu entry list : The contents of the popup menu get constructed in this +; data block - first word is the number of entries, followed by the list of +; items in it; each one being a word giving the Item Id, followed by the text + +31E4:31E4  1200          popmenu_entry_count    dw       1200h      ; Number of entries +31E4:31E6             popmenu_entry_contents +                                                ... data + +31E4:31E9  7F 00                                db       7Fh, 00h +31E4:31EB  BC 00 BB 00 29 01                    db      0BCh, 00h,0BBh, 00h, 29h, 01h +31E4:31F1  0D 00 00 00 0C 00                    db       0Dh, 00h, 00h, 00h, 0Ch, 00h +31E4:31F7  7E 01 BF 01 BB 00                    db       7Eh, 01h,0BFh, 01h,0BBh, 00h +31E4:31FD  29 01 0E 00 00 00                    db       29h, 01h, 0Eh, 00h, 00h, 00h +31E4:3203  0B 00 00 00 D8 00                    db       0Bh, 00h, 00h, 00h,0D8h, 00h +31E4:3209  61 01 2D 01 90 01                    db       61h, 01h, 2Dh, 01h, 90h, 01h +31E4:320F  0C 00 00 00 0C 00                    db       0Ch, 00h, 00h, 00h, 0Ch, 00h +31E4:3215  08 01 33 01 90 00                    db       08h, 01h, 33h, 01h, 90h, 00h +31E4:321B  C8 00 0B 00 00 00                    db      0C8h, 00h, 0Bh, 00h, 00h, 00h +31E4:3221  14 00 00 00 CB 00                    db       14h, 00h, 00h, 00h,0CBh, 00h +31E4:3227  61 01 36 01 90 01                    db       61h, 01h, 36h, 01h, 90h, 01h +31E4:322D  0C 00 00 00 18 00                    db       0Ch, 00h, 00h, 00h, 18h, 00h +31E4:3233  EB 00 12 01 D6 00                    db      0EBh, 00h, 12h, 01h,0D6h, 00h +31E4:3239  07 01 0B 00 00 00                    db       07h, 01h, 0Bh, 00h, 00h, 00h +31E4:323F  13 00 00 00 7F 00                    db       13h, 00h, 00h, 00h, 7Fh, 00h +31E4:3245  BC 00 BB 00 29 01                    db      0BCh, 00h,0BBh, 00h, 29h, 01h +31E4:324B  0D 00 00 00 12 00                    db       0Dh, 00h, 00h, 00h, 12h, 00h +31E4:3251  7E 01 BF 01 BB 00                    db       7Eh, 01h,0BFh, 01h,0BBh, 00h +31E4:3257  29 01 0E 00 00 00                    db       29h, 01h, 0Eh, 00h, 00h, 00h +31E4:325D  19 00 00 00 7F 00                    db       19h, 00h, 00h, 00h, 7Fh, 00h +31E4:3263  BC 00 BB 00 29 01                    db      0BCh, 00h,0BBh, 00h, 29h, 01h +31E4:3269  0D 00 00 00 16 00                    db       0Dh, 00h, 00h, 00h, 16h, 00h +31E4:326F  7E 01 BF 01 BB 00                    db       7Eh, 01h,0BFh, 01h,0BBh, 00h +31E4:3275  29 01 0E 00 00 00                    db       29h, 01h, 0Eh, 00h, 00h, 00h +31E4:327B  12 00 00 00 D8 00                    db       12h, 00h, 00h, 00h,0D8h, 00h +31E4:3281  61 01 3D 01 90 01                    db       61h, 01h, 3Dh, 01h, 90h, 01h +31E4:3287  0C 00 00 00 17 00                    db       0Ch, 00h, 00h, 00h, 17h, 00h +31E4:328D  F2 00 12 01 DA 00                    db      0F2h, 00h, 12h, 01h,0DAh, 00h +31E4:3293  0D 01 0B 00 00 00                    db       0Dh, 01h, 0Bh, 00h, 00h, 00h +31E4:3299  15 00 00 00 7F 00                    db       15h, 00h, 00h, 00h, 7Fh, 00h +31E4:329F  BC 00 BB 00 29 01                    db      0BCh, 00h,0BBh, 00h, 29h, 01h +31E4:32A5  0D 00 00 00 16 00                    db       0Dh, 00h, 00h, 00h, 16h, 00h +31E4:32AB  7E 01 BF 01 BB 00                    db       7Eh, 01h,0BFh, 01h,0BBh, 00h +31E4:32B1  29 01 0E 00 00 00                    db       29h, 01h, 0Eh, 00h, 00h, 00h +31E4:32B7  11 00 00 00 7F 00                    db       11h, 00h, 00h, 00h, 7Fh, 00h +31E4:32BD  87 00 D5 00 54 01                    db       87h, 00h,0D5h, 00h, 54h, 01h +31E4:32C3  0D 00 00 00 13 00                    db       0Dh, 00h, 00h, 00h, 13h, 00h +31E4:32C9  C8 00 EF 00 AC 00                    db      0C8h, 00h,0EFh, 00h,0ACh, 00h +31E4:32CF  D4 00 0B 00 00 00                    db      0D4h, 00h, 0Bh, 00h, 00h, 00h +31E4:32D5  0D 00 5B 01 89 01                    db       0Dh, 00h, 5Bh, 01h, 89h, 01h +31E4:32DB  39 01 54 01 0C 00                    db       39h, 01h, 54h, 01h, 0Ch, 00h +31E4:32E1  00 00 1A 00 44 01                    db       00h, 00h, 1Ah, 00h, 44h, 01h +31E4:32E7  61 01 BB 00 F4 00                    db       61h, 01h,0BBh, 00h,0F4h, 00h + +31E4:32ED  0B 00 21 27 24 00                    db       0Bh, 00h, 21h, 27h, 24h, 00h +31E4:32F3  00 00 7F 00 87 00                    db       00h, 00h, 7Fh, 00h, 87h, 00h +31E4:32F9  07 01 2F 01 0D 00                    db       07h, 01h, 2Fh, 01h, 0Dh, 00h +31E4:32FF  00 00 11 00 FB 00                    db       00h, 00h, 11h, 00h,0FBh, 00h +31E4:3305  36 01 C0 00 F5 00                    db       36h, 01h,0C0h, 00h,0F5h, 00h +31E4:330B  0B 00 00 00 0E 00                    db       0Bh, 00h, 00h, 00h, 0Eh, 00h +31E4:3311  B0 01 BF 01 0C 01                    db      0B0h, 01h,0BFh, 01h, 0Ch, 01h +31E4:3317  4A 01 0E 00 00 00                    db       4Ah, 01h, 0Eh, 00h, 00h, 00h +31E4:331D  14 00 B9 00 FE 00                    db       14h, 00h,0B9h, 00h,0FEh, 00h +31E4:3323  39 01 47 01 0C 00                    db       39h, 01h, 47h, 01h, 0Ch, 00h +31E4:3329  00 00 19 00 6F 01                    db       00h, 00h, 19h, 00h, 6Fh, 01h +31E4:332F  88 01 D0 00 07 01                    db       88h, 01h,0D0h, 00h, 07h, 01h +31E4:3335  0B 00 17 27 1E 00                    db       0Bh, 00h, 17h, 27h, 1Eh, 00h +31E4:333B  98 00 B6 00 B8 00                    db       98h, 00h,0B6h, 00h,0B8h, 00h +31E4:3341  03 01 0B 00 00 00                    db       03h, 01h, 0Bh, 00h, 00h, 00h +31E4:3347  23 00 00 00 7F                       db       23h, 00h, 00h, 00h, 7Fh +31E4:334C  8700         popmenu_num_entries     dw       8700h +31E4:334D  00 02 01 47 01                       db       00h, 02h, 01h, 47h, 01h +31E4:3353  0D 00 00 00 17                       db       0Dh, 00h, 00h, 00h, 17h +31E4:3358  3B00                   data_3358     dw       3B00h +31E4:335A  01 7E 01 B5                          db       01h, 7Eh, 01h,0B5h +31E4:335E  EB00                   data_335E     dw      0EB00h +31E4:335F  00 0B                                db       00h, 0Bh +31E4:3362  0000       popmenu_current_index     dw       0 +31E4:3364  0100         popmenu_prior_index     dw       100h +31E4:3366  0000              mouse_y_change     dw       0 +31E4:3368  0000            menu_items_proc2     dw       0 + +31E4:336B  0F 01 47 01 0E 00                    db       0Fh, 01h, 47h, 01h, 0Eh, 00h +31E4:3371  00 00 18 00 0C 01                    db       00h, 00h, 18h, 00h, 0Ch, 01h +31E4:3377  2F 01 CB 00 F9 00                    db       2Fh, 01h,0CBh, 00h,0F9h, 00h +31E4:337D  0D 00 00                             db       0Dh, 00h, 00h + +31E4:3380  1C00                   data_3380     dw       1C00h +31E4:3382  00 00                  data_3382     dw       0 +31E4:3384  D400                   data_3384     dw      0D400h +31E4:3386  0B00                   data_3386     dw       0B00h +31E4:3388  01                                   db       01h +31E4:3389  BB 00 0A 01 0B 00                    db      0BBh, 00h, 0Ah, 01h, 0Bh, 00h +31E4:338F  00 00 10 00 9B 00                    db       00h, 00h, 10h, 00h, 9Bh, 00h +31E4:3395  DF 00 21 01 47 01                    db      0DFh, 00h, 21h, 01h, 47h, 01h +31E4:339B  0C 00 00 00 12 00                    db       0Ch, 00h, 00h, 00h, 12h, 00h +31E4:33A1  B0 01 C2 01 DB 00                    db      0B0h, 01h,0C2h, 01h,0DBh, 00h +31E4:33A7  47 01 0E 00 00 00                    db       47h, 01h, 0Eh, 00h, 00h, 00h +31E4:33AD  13 00 7F 00 87 00                    db       13h, 00h, 7Fh, 00h, 87h, 00h +31E4:33B3  0B 01 47 01 0D 00                    db       0Bh, 01h, 47h, 01h, 0Dh, 00h +31E4:33B9  00 00 15 00 4A 01                    db       00h, 00h, 15h, 00h, 4Ah, 01h +31E4:33BF  63 01 E5 00 18 01                    db       63h, 01h,0E5h, 00h, 18h, 01h +31E4:33C5  0B 00 15 27 1D 00                    db       0Bh, 00h, 15h, 27h, 1Dh, 00h +31E4:33CB  00 00 D8 00 61 01                    db       00h, 00h,0D8h, 00h, 61h, 01h +31E4:33D1  2D 01 90 01 0C 00                    db       2Dh, 01h, 90h, 01h, 0Ch, 00h +31E4:33D7  00 00 11 00 08 01                    db       00h, 00h, 11h, 00h, 08h, 01h +31E4:33DD  33 01 90 00 C8 00                    db       33h, 01h, 90h, 00h,0C8h, 00h +31E4:33E3  0B 00 00 00 0F 00                    db       0Bh, 00h, 00h, 00h, 0Fh, 00h +31E4:33E9  00 00 7F 00 73 01                    db       00h, 00h, 7Fh, 00h, 73h, 01h +31E4:33EF  3B 01 47 01 0C 00                    db       3Bh, 01h, 47h, 01h, 0Ch, 00h +31E4:33F5  00 00 10 00 B0 01                    db       00h, 00h, 10h, 00h,0B0h, 01h +31E4:33FB  C2 01 FD 00 46 01                    db      0C2h, 01h,0FDh, 00h, 46h, 01h +31E4:3401  0E 00 00 00 0E 00                    db       0Eh, 00h, 00h, 00h, 0Eh, 00h +31E4:3407  EA 00 29 01 B4 00                    db      0EAh, 00h, 29h, 01h,0B4h, 00h +31E4:340D  04 01 0B 00 1E 27                    db       04h, 01h, 0Bh, 00h, 1Eh, 27h +31E4:3413  26 00 00 00 7F 00                    db       26h, 00h, 00h, 00h, 7Fh, 00h +31E4:3419  87 00 F8 00 2A 01                    db       87h, 00h,0F8h, 00h, 2Ah, 01h +31E4:341F  0D 00 00 00 0F 00                    db       0Dh, 00h, 00h, 00h, 0Fh, 00h +31E4:3425  7F 00 15 01 39 01                    db       7Fh, 00h, 15h, 01h, 39h, 01h +31E4:342B  5E 01 0C 00 00 00                    db       5Eh, 01h, 0Ch, 00h, 00h, 00h +31E4:3431  13 00 B0 01 C2 01                    db       13h, 00h,0B0h, 01h,0C2h, 01h +31E4:3437  F3 00 2B 01 0E 00                    db      0F3h, 00h, 2Bh, 01h, 0Eh, 00h +31E4:343D  00 00 0D 00 F4 00                    db       00h, 00h, 0Dh, 00h,0F4h, 00h + +31E4:3443  0F 01 CB 00 FA 00                    db       0Fh, 01h,0CBh, 00h,0FAh, 00h +31E4:3449  0B 00 19 27 1F 00                    db       0Bh, 00h, 19h, 27h, 1Fh, 00h +31E4:344F  00 00 7F 00 8E 00                    db       00h, 00h, 7Fh, 00h, 8Eh, 00h +31E4:3455  E6 00 4A 01 0D 00                    db      0E6h, 00h, 4Ah, 01h, 0Dh, 00h +31E4:345B  00 00 0E 00 B1 01                    db       00h, 00h, 0Eh, 00h,0B1h, 01h +31E4:3461  C2 01 DF 00 5E 01                    db      0C2h, 01h,0DFh, 00h, 5Eh, 01h +31E4:3467  0E 00 00 00 0A 00                    db       0Eh, 00h, 00h, 00h, 0Ah, 00h +31E4:346D  9B 00 FE 00 3E 01                    db       9Bh, 00h,0FEh, 00h, 3Eh, 01h +31E4:3473  47 01 0C 00 00 00                    db       47h, 01h, 0Ch, 00h, 00h, 00h +31E4:3479  14 00 00 00 01 01                    db       14h, 00h, 00h, 00h, 01h, 01h +31E4:347F  24 01 85 00 D0 00                    db       24h, 01h, 85h, 00h,0D0h, 00h +31E4:3485  0B 00 00 00 1A 00                    db       0Bh, 00h, 00h, 00h, 1Ah, 00h +31E4:348B  4D 01 BF 01 13 01                    db       4Dh, 01h,0BFh, 01h, 13h, 01h +31E4:3491  47 01 0E 00 00 00                    db       47h, 01h, 0Eh, 00h, 00h, 00h +31E4:3497  1B 00 A2 00 C2 00                    db       1Bh, 00h,0A2h, 00h,0C2h, 00h +31E4:349D  AC 00 DE 00 0B 00                    db      0ACh, 00h,0DEh, 00h, 0Bh, 00h +31E4:34A3  1F 27 20 00 00 00                    db       1Fh, 27h, 20h, 00h, 00h, 00h +31E4:34A9  9A 01 C2 01 CC 00                    db       9Ah, 01h,0C2h, 01h,0CCh, 00h +31E4:34AF  14 01 0E 00 00 00                    db       14h, 01h, 0Eh, 00h, 00h, 00h +31E4:34B5  09 00 7F 00 87 00                    db       09h, 00h, 7Fh, 00h, 87h, 00h +31E4:34BB  F6 00 47 01 0D 00                    db      0F6h, 00h, 47h, 01h, 0Dh, 00h +31E4:34C1  00 00 0D 00 AF 00                    db       00h, 00h, 0Dh, 00h,0AFh, 00h +31E4:34C7  D4 00 39 01 4A 01                    db      0D4h, 00h, 39h, 01h, 4Ah, 01h +31E4:34CD  0C 00 00 00 0B 00                    db       0Ch, 00h, 00h, 00h, 0Bh, 00h +31E4:34D3  05 01 1E 01 DB 00                    db       05h, 01h, 1Eh, 01h,0DBh, 00h +31E4:34D9  0E 01 0B 00 25 27                    db       0Eh, 01h, 0Bh, 00h, 25h, 27h +31E4:34DF  22 00 00 00 7F 00                    db       22h, 00h, 00h, 00h, 7Fh, 00h +31E4:34E5  B2 00 E6 00 29 01                    db      0B2h, 00h,0E6h, 00h, 29h, 01h +31E4:34EB  0D 00 00 00 0A 00                    db       0Dh, 00h, 00h, 00h, 0Ah, 00h +31E4:34F1  E1 00 92 01 39 01                    db      0E1h, 00h, 92h, 01h, 39h, 01h +31E4:34F7  47 01 0C 00 00 00                    db       47h, 01h, 0Ch, 00h, 00h, 00h +31E4:34FD  08 00 00 00 D8 00                    db       08h, 00h, 00h, 00h,0D8h, 00h +31E4:3503  61 01 31 01 90 01                    db       61h, 01h, 31h, 01h, 90h, 01h +31E4:3509  0C 00 00 00 07 00                    db       0Ch, 00h, 00h, 00h, 07h, 00h +31E4:350F  EC 00 12 01 D5 00                    db      0ECh, 00h, 12h, 01h,0D5h, 00h +31E4:3515  09 01 0B 00 00 00                    db       09h, 01h, 0Bh, 00h, 00h, 00h +31E4:351B  09 00 00 00 D8 00                    db       09h, 00h, 00h, 00h,0D8h, 00h +31E4:3521  61 01 38 01 90 01                    db       61h, 01h, 38h, 01h, 90h, 01h +31E4:3527  0C 00 00 00 0C 00                    db       0Ch, 00h, 00h, 00h, 0Ch, 00h +31E4:352D  EC 00 12 01 D6 00                    db      0ECh, 00h, 12h, 01h,0D6h, 00h +31E4:3533  0D 01 0B 00 00 00                    db       0Dh, 01h, 0Bh, 00h, 00h, 00h +31E4:3539  0A 00 00 00 + +31E4:353D                       room1_exits     dw       7Fh +31E4:353F  E0 00 E8 00 29 01                    db      0E0h, 00h,0E8h, 00h, 29h, 01h +31E4:3545  0D                                   db      0Dh +31E4:3546  00                   data_772        db      0                       ; Data table (indexed access) +31E4:3547  11 27 02 00 00 00                    db       11h, 27h, 02h, 00h, 00h, 00h +31E4:354D  DE 00 FB 00 C8 00                    db      0DEh, 00h,0FBh, 00h,0C8h, 00h +31E4:3553  FA 00 0B 00 12 27                    db      0FAh, 00h, 0Bh, 00h, 12h, 27h +31E4:3559  01 00 3E 01 5B 01                    db       01h, 00h, 3Eh, 01h, 5Bh, 01h +31E4:355F  C8 00 FA 00 0B 00                    db      0C8h, 00h,0FAh, 00h, 0Bh, 00h +31E4:3565  00 00 03 00 94 01                    db       00h, 00h, 03h, 00h, 94h, 01h +31E4:356B  C2 01 D1 00 01 01                    db      0C2h, 01h,0D1h, 00h, 01h, 01h +31E4:3571  0E 00 14 27 05 00                    db       0Eh, 00h, 14h, 27h, 05h, 00h +31E4:3577  00 00 7F 00 A4 00                    db       00h, 00h, 7Fh, 00h,0A4h, 00h +31E4:357D  E5 00 20 01 0D 00                    db      0E5h, 00h, 20h, 01h, 0Dh, 00h +31E4:3583  00 00 02 00 84 01                    db       00h, 00h, 02h, 00h, 84h, 01h +31E4:3589  BE 01 E5 00 26 01                    db      0BEh, 01h,0E5h, 00h, 26h, 01h +31E4:358F  0E 00 00 00 04 00                    db       0Eh, 00h, 00h, 00h, 04h, 00h +31E4:3595  00 00 46 01 6B 01                    db       00h, 00h, 46h, 01h, 6Bh, 01h +31E4:359B  31 01 47 01 0C 00                    db       31h, 01h, 47h, 01h, 0Ch, 00h +31E4:35A1  00 00 03 00 00 00                    db       00h, 00h, 03h, 00h, 00h, 00h +31E4:35A7  7F 00 D2 00 DA 00                    db       7Fh, 00h,0D2h, 00h,0DAh, 00h + +31E4:35AD  1B 01 0D 00 00 00                    db       1Bh, 01h, 0Dh, 00h, 00h, 00h +31E4:35B3  08 00 00 00 1C 00                    db       08h, 00h, 00h, 00h, 1Ch, 00h +31E4:35B9  02 00 F7 35 1E 00                    db       02h, 00h,0F7h, 35h, 1Eh, 00h +31E4:35BF  58 1D 1E 00 16 2C                    db       58h, 1Dh, 1Eh, 00h, 16h, 2Ch +31E4:35C5  1F 00 23 00 1D 2C                    db       1Fh, 00h, 23h, 00h, 1Dh, 2Ch +31E4:35CB  C5 35 1C 00 01 00                    db      0C5h, 35h, 1Ch, 00h, 01h, 00h +31E4:35D1  F7 35 21 00 E7 03                    db      0F7h, 35h, 21h, 00h,0E7h, 03h +31E4:35D7  1E 00 0B 1D 1F 00                    db       1Eh, 00h, 0Bh, 1Dh, 1Fh, 00h +31E4:35DD  1E 00 0B 1D 1C 00                    db       1Eh, 00h, 0Bh, 1Dh, 1Ch, 00h +31E4:35E3  02 00 00 00 07 00                    db       02h, 00h, 00h, 00h, 07h, 00h +31E4:35E9  12 27 1F 00 1E 00                    db       12h, 27h, 1Fh, 00h, 1Eh, 00h +31E4:35EF  3A 2C 20 00 1E 00                    db       3Ah, 2Ch, 20h, 00h, 1Eh, 00h +31E4:35F5  58 1D 1C 00 04 00                    db       58h, 1Dh, 1Ch, 00h, 04h, 00h +31E4:35FB  00 00 05 00 10 04                    db       00h, 00h, 05h, 00h, 10h, 04h +31E4:3601  1E 00 58 1D 1C 00                    db       1Eh, 00h, 58h, 1Dh, 1Ch, 00h +31E4:3607  03 00 00 00 1E 00                    db       03h, 00h, 00h, 00h, 1Eh, 00h +31E4:360D  58 1D 1E 00 58 1D                    db       58h, 1Dh, 1Eh, 00h, 58h, 1Dh +31E4:3613  22 00 B7 35 21 00                    db       22h, 00h,0B7h, 35h, 21h, 00h +31E4:3619  18 04 1E 00 E9 12                    db       18h, 04h, 1Eh, 00h,0E9h, 12h +31E4:361F  21 00 11 27 21 00                    db       21h, 00h, 11h, 27h, 21h, 00h +31E4:3625  E8 03 20 00 20 00                    db      0E8h, 03h, 20h, 00h, 20h, 00h +31E4:362B  20 00 20 00 27 00                    db       20h, 00h, 20h, 00h, 27h, 00h +31E4:3631  CB 00 00 00 20 00                    db      0CBh, 00h, 00h, 00h, 20h, 00h +31E4:3637  20 00 20 00 20 00                    db       20h, 00h, 20h, 00h, 20h, 00h +31E4:363D  27 00 CC 00 00 00                    db       27h, 00h,0CCh, 00h, 00h, 00h +31E4:3643  20 00 20 00 20 00                    db       20h, 00h, 20h, 00h, 20h, 00h +31E4:3649  21 00 11 27 1E 00                    db       21h, 00h, 11h, 27h, 1Eh, 00h +31E4:364F  31 1D 27 00 8C 00                    db       31h, 1Dh, 27h, 00h, 8Ch, 00h +31E4:3655  00 00 22 00 27 36                    db       00h, 00h, 22h, 00h, 27h, 36h +31E4:365B  1C 00 02 00 27 36                    db       1Ch, 00h, 02h, 00h, 27h, 36h +31E4:3661  1E 00 42 1E 21 00                    db       1Eh, 00h, 42h, 1Eh, 21h, 00h +31E4:3667  E8 03 22 00 61 36                    db      0E8h, 03h, 22h, 00h, 61h, 36h +31E4:366D  00 00 00                             db       00h, 00h, 00h + +31E4:3670  0000                errormsg_list   dw   0                  ;Table used by display_message() to print errors +31E4:3672  368A                                dw   offset errormsg1 +31E4:3674  369E                                dw   offset errormsg2 +31E4:3676  36C2                                dw   offset errormsg3 +31E4:3678  36E0                                dw   offset errormsg4 +31E4:367A  36FB                                dw   offset errormsg5 +31E4:367C  3713                                dw   offset errormsg6 +31E4:367E  372B                                dw   offset errormsg7 +31E4:3680  3763                                dw   offset errormsg8 +31E4:3682  3788                                dw   offset errormsg9 +31E4:3684  379F                                dw   offset errormsga +31E4:3686  3743                                dw   offset errormsgb +31E4:3688  37C0                                dw   offset errormsgc + +31E4:368A                      errormsg1       db   6, '8Disk read error.$', 0 +31E4:369E                      errormsg2       db   'Game needs colour EGA/VGA monitor.$', 0 +31E4:36C2                      errormsg3       db   'Game needs DOS 2.0 or later.$', 0 +31E4:36E0                      errormsg4       db   11h, '8Please insert game disk$', 0 +31E4:36FB                      errormsg5       db   1Ch, '8Please insert disk A$', 0 +31E4:3713                      errormsg6       db   27h, '8Please insert disk B$', 0 +31E4:372B                      errormsg7       db   32h, '8Please insert disk C$', 0 +31E4:3743                      errormsgb       db   3Dh, '8Please insert Lure data disk$', 0 +31E4:3763                      errormsg8       db   'Not enough memory to play the game.$', 0 +31E4:3788                      errormsg9       db   'Data file is corrupt.$', 0 +31E4:379F                      errormsga       db   'Sorry - copy protection failed.$', 0 +31E4:37C0                      errormsgc       db   'Unknown error.$' + +31E4:37D0                      data_777        db   'Press a mouse button when ready.$', 0 +31E4:37F2                      data_778        db   'and press any key.$', 0 + +31E4:3806  09 09 15 05 0A                       db       09h, 09h, 15h, 05h, 0Ah +31E4:380B  0A B0 00 7A 00 00                    db       0Ah,0B0h, 00h, 7Ah, 00h, 00h +31E4:3811  09 09 15 05 0A 0A                    db       09h, 09h, 15h, 05h, 0Ah, 0Ah +31E4:3817  B0 00 78 00 00 09                    db      0B0h, 00h, 78h, 00h, 00h, 09h +31E4:381D  09 15 05 0A 0A B0                    db       09h, 15h, 05h, 0Ah, 0Ah,0B0h +31E4:3823  00 64 01 00 09 09                    db       00h, 64h, 01h, 00h, 09h, 09h +31E4:3829  15 05 0A 0A B0 00                    db       15h, 05h, 0Ah, 0Ah,0B0h, 00h +31E4:382F  65 01 00 09 09 15                    db       65h, 01h, 00h, 09h, 09h, 15h +31E4:3835  05 0A 0A B0 00 66                    db       05h, 0Ah, 0Ah,0B0h, 00h, 66h +31E4:383B  01 00 09 06 15 05                    db       01h, 00h, 09h, 06h, 15h, 05h +31E4:3841  0A 0A B0 00 56 01                    db       0Ah, 0Ah,0B0h, 00h, 56h, 01h +31E4:3847  00                                   db       00h +31E4:3848  0A 0D 24             data_779        db      0Ah, 0Dh, '$'           ;  xref 273F:4055, 273F:4094 +                                                                                ;       273F:40AB +31E4:384B  00 00 00 00 00                       db       00h, 00h, 00h, 00h, 00h + +31E4:3850  41D9            actions2_proc_list   dw       41D9h +                                                dw       offset get_proc        ; 1 = GET +                                                dw       0 +                                                dw       offset operate_proc +                                                dw       offset operate_proc +                                                dw       offset operate_proc    ; 5 +                                                dw       offset open_proc +                                                dw       offset close_proc +31E4:3860                                       dw       offset lock_unlock_proc  +                                                dw       offset lock_unlock_proc +                                                dw       offset use_proc         ; 10 = USE +                                                dw       offset give_proc +                                                dw       offset talk_to_proc +                                                dw       offset tell_proc +                                                dw       0 +                                                dw       offset look_proc        ; 15 = LOOK +31E4:3870                                       dw       offset look_at_proc +                                                dw       offset look_through_proc +                                                dw       offset ask_proc +                                                dw       0 +                                                dw       offset drink_proc       ; 20 = DRINK +                                                dw       offset status_proc +                                                dw       offset go_to_proc +                                                dw       offset return_proc +31E4:3880                                       dw       offset bribe_proc +                                                dw       offset examine_proc    ; 25 +                                                dw       0 +                                                dw       0 +                                                dw       offset npc_set_blocked_offset_proc +                                                dw       offset npc_unknown1 +                                                dw       offset npc_execute_script_proc ; 30 +                                                dw       offset npc_unknown_2 +                                                dw       offset npc_set_random_dest +                                                dw       offset npc_walking_check +                                                dw       offset npc_set_support_offset +                                                dw       offset npc_set_support_offset_conditional ; 35 +                                                dw       offset npc_dispatch_action +                                                dw       offset npc_unknown_3 +                                                dw       offset npc_unknown_4 +                                                dw       offset npc_start_talking +                                                dw       offset npc_jump_to_address    ; 40 + +31E4:38A2  0001                  random_v1      dw       1 +31E4:38A4  0000                  random_v2      dw       0 + +31E4:38A6  0B[00]                               db      11 dup (0) +31E4:38B0  01                   data_781        db      1                       ;  xref 273F:494F + +31E4:38B1  0000                 time_ctr        dw      0                       ;  xref 273F:4974, 273F:A896 +                                                                                ;       273F:A89C, 273F:A8AB +                                                                                ;       273F:A8CC +31E4:38B3  32                   data_783        db      32h                     ;  xref 273F:4956, 273F:4967 + +31E4:38B4  008D[00]                             db      140 dup (0) +31E4:3940  0000         pathfind_buffer_end     dw      0 +31E4:3942  0000                 pathfind_sp     dw      0 +31E4:3944  0000      pathfind_countdown_ctr     dw      0 +31E4:3946  0000        pathfind_in_progress     db      0 +31E4:3947  003C[00]                             db      60 dup (0) +31E4:3983  000A[00]    player_pathfind_data     dw      5 dup (0) + +........ +31E4:3E92  00                   data_785        db      0                       ;  xref 31E4:18A6 +31E4:3E93  01CD[00]                             db      461 dup (0) +31E4:4060 ú077D[00]                             db      1917 dup (0) +31E4:4227  000A[00]      chars_pathfind_data    dw      5 dup (0) + +........ +31E4:47DD  0000 0000            data_786        dd      00000h                  ; Data table (indexed access) +31E4:47E1  02EF[00]                             db      751 dup (0) + +; List of hotspots that don't to be walked to before being looked at +                         lookat_hotspot_list +31E4:4AD0  0411 0412 041F 0420                  dw      0411h, 0412h, 041Fh, 0420h +31E4:4AD8  0421 0422 0426 0427                  dw      0421h, 0422h, 0426h, 0427h +31E4:4AE0  0428 0429 0436 0437                  dw      0428h, 0429h, 0436h, 0437h +31E4:4AE8  0000                                 dw      0 + +31E4:4AEA  0421 0879      bribe_hotspot_list    dw      421h, 879h +31E4:4AEE  03E9 08C7                            dw      3E9h, 8C7h +31E4:4AF2  0429 08D1                            dw      429h, 8D1h +31E4:4AF6  0422 08D4                            dw      422h, 8D4h +31E4:4AFA  0420 08D6                            dw      420h, 8D6h +31E4:4AFE  042B 0956                            dw      42Bh, 956h +31E4:4B02  03F2 0BE6                            dw      3F2h,0BE6h +31E4:4B06  0000                                 dw      0 + +31E4:4B08  59 6F 75 20 61 72    carrying_str    db      'You are carrying ' +31E4:4B0E  65 20 63 61 72 72 +31E4:4B14  79 69 6E 67 20 +31E4:4B19  6E 6F 74 68 69 6E       items_str    dw      'nothing.', 0 +31E4:4B1F  67 2E 00 +31E4:4B22  59 6F 75 20 68 61       money_str    db      'You have ' +31E4:4B28  76 65 20 +31E4:4B2B  78                   s_num_groats    db      'x' +31E4:4B2C  20 67 72 6F 61 74                    db      ' groat' +31E4:4B32  73 00             s_groats_plural    db      's', 0 + +31E4:4B34  000C[00]                             db      13 dup (0) +31E4:4B40  00                   data_791        db      0 +31E4:4B41  00 00                data_792        dw      0 + +31E4:4B43  0050[00]             hotspot_name    db      80 dup (0) +31E4:4B93  005D[00]              action_name    db      93 dup (0) + +31E4:4BF0  00                   data_794        db      0                       ;  xref 273F:207A, 273F:7016 +31E4:4BF1  0000       menuitem_table_location   dw      0 + +31E4:4BF1  0007[00]                             db      7 dup (0) +31E4:4BF8  0000                    data_unk1    dw      0 +31E4:4BFA  00             mouse_buttons_temp    db      0 +31E4:4BFB  4C5A           menuitem_list_info    db      offset menuitem_credits_str +31E4:4BFD  7084                                 dw      offset menuitem_credits + +31E4:4BFF  67 4C          menuitem_list_file    db      offset menuitem_restart_str +31E4:4C01  70EA                                 dw      offset menuitem_restart +31E4:4C03  43 4C                                db      offset menuitem_save_str +31E4:4C05  8EB2                                 dw      offset menuitem_save +31E4:4C07  4D 4C                                db      offset menuitem_restore_str +31E4:4C09  8F4A                                 dw      offset menuitem_restore + +31E4:4C0B  0028        menuitem_table_info      dw       28h                         ; X start +31E4:4C0D  0057                                 dw       57h                         ; X end +31E4:4C0F  0003                                 dw       3 +31E4:4C11  0001                                 dw       1 +31E4:4C13  0007                                 dw       7                           ; Max characters width +31E4:4C15  0001                                 dw       1                           ; Num items +31E4:4C17  4BFB                                 dw       offset menuitem_list_info + +31E4:4C19              menuitem_table_file      dw       7Fh +31E4:4C1B  B3 00                                dw       0B3h +31E4:4C1D  0D 00                                dw       0Dh +31E4:4C1F  01 00                                dw       01h +31E4:4C21  0C 00                                dw       0Ch +31E4:4C23  03 00                                dw       03h +31E4:4C25  4BFF                                 dw       offset menuitem_list_file + +31E4:4C27              menuitem_table_info2     dw       0A0h +31E4:4C29                                       dw       0A6h +31E4:4C2B  06 00                                dw       6 +31E4:4C2D  01 00                                dw       1 +31E4:4C2F  05 00                                dw       5 +31E4:4C31  00 00                                dw       0 +31E4:4C33  FB 4B                                db       offset menuitem_list_info + +31E4:4C35  E0 00      menuitem_table_help       dw       0E0h +31E4:4C37  19 01                                dw       119h +31E4:4C39  1B 00                                dw       1Bh +31E4:4C3B  01 00                                dw       1 +31E4:4C3D  0A 00                                dw       0Ah +31E4:4C3F  03 00                                dw       03h +31E4:4C41  4C99                                 dw      offset menuitem_list_help + +31E4:4C43                  menuitem_save_str    db      'Save game', 0 +31E4:4C4D               menuitem_restore_str    db      'Restore game', 0 +31E4:4C5A               menuitem_credits_str    db      'Credits', 0 +31E4:4C62                  menuitem_quit_str    db      'Quit', 0 +31E4:4C67               menuitem_restart_str    db      'Restart game', 0 +31E4:4C74             menuitem_textspeed_str    db      'Slow text', 8Bh, 0 +31E4:4C7F               slowtext_slow_substr    db      'Slow' +31E4:4C83               slowtext_fast_substr    db      'Fast' +31E4:4C87                 menuitem_sound_str    db      'Sound on ', 0 +31E4:4C91                    sound_on_substr    db      'on ', 0 +31E4:4C95                   sound_off_substr    db      'off', 0 + +31E4:4C99  4C62               menu_list_help    dw       offset menuitem_quit_str +31E4:4C9B  7036                                 dw       offset menuitem_quit +31E4:4C9D  4C74                                 dw       offset menuitem_textspeed_str +31E4:4C9F  70F5                                 dw       offset menuitem_textspeed +31E4:4CA1  4C87                                 dw       offset menuitem_sound_str +31E4:4CA3  710D                                 dw       offset menuitem_sound + +31E4:4CA5  00                                   db       0 +31E4:4CA6  000A[00]                             db      10 dup (0) + +31E4:4CB0                 exit_hotspots_list    dw      2711h                   ; Cell door room #1 +                                                dw      2712h                   ; Cell door room #2 +                                                dw      2714h +                                                dw      2715h +                                                dw      2716h +                                                dw      2717h +                                                dw      2718h +                                                dw      2719h +                                                dw      271Ah +                                                dw      271Eh +                                                dw      271Fh +                                                dw      2720h +                                                dw      2721h +                                                dw      2722h +                                                dw      2725h +                                                dw      2726h +                                                dw      2729h +                                                dw      272Ah +                                                dw      272Bh +                                                dw      272Ch +                                                dw      272Dh +                                                dw      272Eh +                                                dw      272Fh +                                                dw      0 + +31E4:4CE0  0000         current_room_segment    dw      0 +31E4:4CE2  0000                 data_segment    dw      0 +31E4:4CE4  0000              data_segment2      dw      0 +31E4:4CE6  0000           talk_dialog_buffer    dw      0   +31E4:4CE8  0000              strings_segment    dw      0 +31E4:4CEA  0000            strings_segment_2    dw      0                       ;  xref 273F:7E16 +31E4:4CEC  0000            strings_segment_3    dw      0                       ;  xref 273F:7E22 +31E4:4CEE  0000                names_segment    dw      0 +31E4:4CF0  0000                font2_segment    dw      0 +31E4:4CF2  0000                 font_segment    dw      0 +31E4:4CF4  0000              cursors_segment    dw      0 +31E4:4CF6  0000                 data_810        dw      0                       ;  xref 273F:7AD8 +31E4:4CF8  0000                 data_811        dw      0                       ;  xref 273F:7AEA +31E4:4CFA  0000                 data_812        dw      0                       ;  xref 273F:79EF +31E4:4CFC  0000           largest_free_block    dw      0 +31E4:4CFE  0000                     data_814    dw      0        +31E4:4D00  0000               buffer_segment    dw      0 +31E4:4D02  0000           buffer_segment_end    dw      0 + +31E4:4D04  0000            anim_src_segment2    dw      0 +31E4:4D06  0000             anim_src_segment    dw      0 +31E4:4D08  0008[00]                             db      8 dup (0) +31E4:4D10  42 4E 1B 4E 63 4E                    db       42h, 4Eh, 1Bh, 4Eh, 63h, 4Eh +31E4:4D16  AC 4E 00 00 00 00                    db      0ACh, 4Eh, 00h, 00h, 00h, 00h +31E4:4D1C  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D22  C9 4E AC 4E AC 4E                    db      0C9h, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D28  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D2E  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D34  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D3A  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D40  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D46  AC 4E 62 4D AC 4E                    db      0ACh, 4Eh, 62h, 4Dh,0ACh, 4Eh +31E4:4D4C  AC 4E F0 4E AC 4E                    db      0ACh, 4Eh,0F0h, 4Eh,0ACh, 4Eh +31E4:4D52  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D58  AC 4E AC 4E AC 4E                    db      0ACh, 4Eh,0ACh, 4Eh,0ACh, 4Eh +31E4:4D5E  AC 4E AC 4E 08 01                    db      0ACh, 4Eh,0ACh, 4Eh, 08h, 01h +31E4:4D64  00 1E 00 42 1E 20                    db       00h, 1Eh, 00h, 42h, 1Eh, 20h +31E4:4D6A  00 00 00 FF FF 01                    db       00h, 00h, 00h,0FFh,0FFh, 01h +31E4:4D70  00 20 00 1F 00 00                    db       00h, 20h, 00h, 1Fh, 00h, 00h +31E4:4D76  00 FF FF 01 00 20                    db       00h,0FFh,0FFh, 01h, 00h, 20h +31E4:4D7C  00 1F 00 00 00 FF                    db       00h, 1Fh, 00h, 00h, 00h,0FFh +31E4:4D82  FF 03 00 24 00 20                    db      0FFh, 03h, 00h, 24h, 00h, 20h +31E4:4D88  04 A5 4D 25 00 20                    db       04h,0A5h, 4Dh, 25h, 00h, 20h +31E4:4D8E  04 02 08 00 00 04                    db       04h, 02h, 08h, 00h, 00h, 04h +31E4:4D94  08 00 00 25 00 20                    db       08h, 00h, 00h, 25h, 00h, 20h +31E4:4D9A  04 03 08 00 00 00                    db       04h, 03h, 08h, 00h, 00h, 00h +31E4:4DA0  00 00 00 20 00 00                    db       00h, 00h, 00h, 20h, 00h, 00h +31E4:4DA6  00 FF FF 01 00 20                    db       00h,0FFh,0FFh, 01h, 00h, 20h +31E4:4DAC  00 1F 00 00 00 FF                    db       00h, 1Fh, 00h, 00h, 00h,0FFh +31E4:4DB2  FF 01 00 20 00 1F                    db      0FFh, 01h, 00h, 20h, 00h, 1Fh +31E4:4DB8  00 00 00 FF FF 03                    db       00h, 00h, 00h,0FFh,0FFh, 03h +31E4:4DBE  00 24 00 20 04 A5                    db       00h, 24h, 00h, 20h, 04h,0A5h +31E4:4DC4  4D 25 00 20 04 02                    db       4Dh, 25h, 00h, 20h, 04h, 02h +31E4:4DCA  08 00 00 04 08 00                    db       08h, 00h, 00h, 04h, 08h, 00h +31E4:4DD0  00 25 00 20 04 94                    db       00h, 25h, 00h, 20h, 04h, 94h +31E4:4DD6  0B 00 00 95 0B 00                    db       0Bh, 00h, 00h, 95h, 0Bh, 00h +31E4:4DDC  00 25 00 20 04 96                    db       00h, 25h, 00h, 20h, 04h, 96h +31E4:4DE2  0B 0F 00 00 00 00                    db       0Bh, 0Fh, 00h, 00h, 00h, 00h +31E4:4DE8  00 20 00 00 00 FF                    db       00h, 20h, 00h, 00h, 00h,0FFh +31E4:4DEE  FF 03 00 25 00 2B                    db      0FFh, 03h, 00h, 25h, 00h, 2Bh +31E4:4DF4  04 DB 0A 00 00 DC                    db       04h,0DBh, 0Ah, 00h, 00h,0DCh +31E4:4DFA  0A 00 00 25 00 2B                    db       0Ah, 00h, 00h, 25h, 00h, 2Bh +31E4:4E00  04 DD 0A 00 00 DE                    db       04h,0DDh, 0Ah, 00h, 00h,0DEh +31E4:4E06  0A 0A 00 25 00 2B                    db       0Ah, 0Ah, 00h, 25h, 00h, 2Bh +31E4:4E0C  04 DF 0A 0F 00 E0                    db       04h,0DFh, 0Ah, 0Fh, 00h,0E0h +31E4:4E12  0A 00 00 1F 00 00                    db       0Ah, 00h, 00h, 1Fh, 00h, 00h +31E4:4E18  00 FF FF 02 01 00                    db       00h,0FFh,0FFh, 02h, 01h, 00h +31E4:4E1E  1E 00 42 1E 20 00                    db       1Eh, 00h, 42h, 1Eh, 20h, 00h +31E4:4E24  00 00 FF FF 01 00                    db       00h, 00h,0FFh,0FFh, 01h, 00h +31E4:4E2A  20 00 00 00 FF FF                    db       20h, 00h, 00h, 00h,0FFh,0FFh +31E4:4E30  01 00 FE FF 1C 00                    db       01h, 00h,0FEh,0FFh, 1Ch, 00h +31E4:4E36  03 00 00 00 20 00                    db       03h, 00h, 00h, 00h, 20h, 00h +31E4:4E3C  1F 00 00 00 FF FF                    db       1Fh, 00h, 00h, 00h,0FFh,0FFh +31E4:4E42  03 01 00 20 00 00                    db       03h, 01h, 00h, 20h, 00h, 00h +31E4:4E48  00 FF FF 01 00 11                    db       00h,0FFh,0FFh, 01h, 00h, 11h +31E4:4E4E  00 0C 04 1F 00 00                    db       00h, 0Ch, 04h, 1Fh, 00h, 00h +31E4:4E54  00 FF FF 01 00 1E                    db       00h,0FFh,0FFh, 01h, 00h, 1Eh +31E4:4E5A  00 42 1E 20 00 00                    db       00h, 42h, 1Eh, 20h, 00h, 00h +31E4:4E60  00 FF FF 05 01 00                    db       00h,0FFh,0FFh, 05h, 01h, 00h +31E4:4E66  1E 00 42 1E 20 00                    db       1Eh, 00h, 42h, 1Eh, 20h, 00h +31E4:4E6C  00 00 FF FF 01 00                    db       00h, 00h,0FFh,0FFh, 01h, 00h +31E4:4E72  20 00 00 00 FF FF                    db       20h, 00h, 00h, 00h,0FFh,0FFh +31E4:4E78  03 00 06 00 32 75                    db       03h, 00h, 06h, 00h, 32h, 75h +31E4:4E7E  00 00 FF FF 03 00                    db       00h, 00h,0FFh,0FFh, 03h, 00h +31E4:4E84  1D 00 54 E8 00 00                    db       1Dh, 00h, 54h,0E8h, 00h, 00h +31E4:4E8A  FF FF 03 00 1F 00                    db      0FFh,0FFh, 03h, 00h, 1Fh, 00h +31E4:4E90  11 00 30 75 1F 00                    db       11h, 00h, 30h, 75h, 1Fh, 00h +31E4:4E96  00 00 FF FF 01 00                    db       00h, 00h,0FFh,0FFh, 01h, 00h +31E4:4E9C  FE FF 1C 00 02 00                    db      0FEh,0FFh, 1Ch, 00h, 02h, 00h +31E4:4EA2  00 00 20 00 1F 00                    db       00h, 00h, 20h, 00h, 1Fh, 00h +31E4:4EA8  00 00 FF FF 03 01                    db       00h, 00h,0FFh,0FFh, 03h, 01h +31E4:4EAE  00 1E 00 42 1E 20                    db       00h, 1Eh, 00h, 42h, 1Eh, 20h +31E4:4EB4  00 00 00 FF FF 01                    db       00h, 00h, 00h,0FFh,0FFh, 01h +31E4:4EBA  00 1F 00 00 00 FF                    db       00h, 1Fh, 00h, 00h, 00h,0FFh +31E4:4EC0  FF 01 00 20 00 00                    db      0FFh, 01h, 00h, 20h, 00h, 00h +31E4:4EC6  00 FF FF 04 01 00                    db       00h,0FFh,0FFh, 04h, 01h, 00h +31E4:4ECC  1E 00 42 1E 20 00                    db       1Eh, 00h, 42h, 1Eh, 20h, 00h +31E4:4ED2  00 00 FF FF 03 00                    db       00h, 00h,0FFh,0FFh, 03h, 00h +31E4:4ED8  1D 00 62 E8 00 00                    db       1Dh, 00h, 62h,0E8h, 00h, 00h +31E4:4EDE  FF FF 01 00 1F 00                    db      0FFh,0FFh, 01h, 00h, 1Fh, 00h +31E4:4EE4  00 00 FF FF 01 00                    db       00h, 00h,0FFh,0FFh, 01h, 00h +31E4:4EEA  20 00 00 00 FF FF                    db       20h, 00h, 00h, 00h,0FFh,0FFh +31E4:4EF0  07 01 00 23 00 6C                    db       07h, 01h, 00h, 23h, 00h, 6Ch +31E4:4EF6  1E FF 4E 1E 00 42                    db       1Eh,0FFh, 4Eh, 1Eh, 00h, 42h +31E4:4EFC  1E 20 00 00 00 FF                    db       1Eh, 20h, 00h, 00h, 00h,0FFh +31E4:4F02  FF 03 00 25 00 29                    db      0FFh, 03h, 00h, 25h, 00h, 29h +31E4:4F08  04 9B 0B 00 00 9C                    db       04h, 9Bh, 0Bh, 00h, 00h, 9Ch +31E4:4F0E  0B 00 00 25 00 29                    db       0Bh, 00h, 00h, 25h, 00h, 29h +31E4:4F14  04 9D 0B 00 00 00                    db       04h, 9Dh, 0Bh, 00h, 00h, 00h +31E4:4F1A  00 00 00 20 00 00                    db       00h, 00h, 00h, 20h, 00h, 00h +31E4:4F20  00 FF FF 03 00 25                    db       00h,0FFh,0FFh, 03h, 00h, 25h +31E4:4F26  00 29 04 9E 0B 00                    db       00h, 29h, 04h, 9Eh, 0Bh, 00h +31E4:4F2C  00 9F 0B 00 00 25                    db       00h, 9Fh, 0Bh, 00h, 00h, 25h +31E4:4F32  00 29 04 A0 0B 00                    db       00h, 29h, 04h,0A0h, 0Bh, 00h +31E4:4F38  00 A2 0B 00 00 25                    db       00h,0A2h, 0Bh, 00h, 00h, 25h +31E4:4F3E  00 29 04 A1 0B 00                    db       00h, 29h, 04h,0A1h, 0Bh, 00h +31E4:4F44  00 00 00 00 00 20                    db       00h, 00h, 00h, 00h, 00h, 20h +31E4:4F4A  00 00 00 FF FF 01                    db       00h, 00h, 00h,0FFh,0FFh, 01h +31E4:4F50  00 1F 00 00 00 FF                    db       00h, 1Fh, 00h, 00h, 00h,0FFh +31E4:4F56  FF 01 00 20 00 00                    db      0FFh, 01h, 00h, 20h, 00h, 00h +31E4:4F5C  00 FF FF 01 00 1F                    db       00h,0FFh,0FFh, 01h, 00h, 1Fh +31E4:4F62  00 00 00 FF FF 01                    db       00h, 00h, 00h,0FFh,0FFh, 01h +31E4:4F68  00 20 00 00 00 FF                    db       00h, 20h, 00h, 00h, 00h,0FFh +31E4:4F6E  FF 1F 0E 1E 13 07                    db      0FFh, 1Fh, 0Eh, 1Eh, 13h, 07h +31E4:4F74  08 1C 12 26 0F 27                    db       08h, 1Ch, 12h, 26h, 0Fh, 27h +31E4:4F7A  0F 28 0F 29 0F 22                    db       0Fh, 28h, 0Fh, 29h, 0Fh, 22h +31E4:4F80  0A 23 13 24 14 31                    db       0Ah, 23h, 13h, 24h, 14h, 31h +31E4:4F86  2C 2F 2C 00                          db       2Ch, 2Fh, 2Ch, 00h +31E4:4F8A  00                   data_817        db      0                       ;  xref 273F:7778 +31E4:4F8B  00 00 00 00 00 61                    db       00h, 00h, 00h, 00h, 00h, 61h +31E4:4F91  00 61 6E 00                          db       00h, 61h, 6Eh, 00h +31E4:4F95  74 68 65                             db       74h, 68h, 65h +31E4:4F98  0008[00]                             db      8 dup (0) +31E4:4FA0  15 16 17 18 19 1A                    db       15h, 16h, 17h, 18h, 19h, 1Ah +31E4:4FA6  19 18 17 16 17 18                    db       19h, 18h, 17h, 16h, 17h, 18h +31E4:4FAC  19 1A 19 18 17 16                    db       19h, 1Ah, 19h, 18h, 17h, 16h +31E4:4FB2  15 00 0D 0E 0F 10                    db       15h, 00h, 0Dh, 0Eh, 0Fh, 10h +31E4:4FB8  11 12 11 12 11 10                    db       11h, 12h, 11h, 12h, 11h, 10h +31E4:4FBE  0F 13 14 00 0C 0D                    db       0Fh, 13h, 14h, 00h, 0Ch, 0Dh +31E4:4FC4  0E 0F 10 0F 10 0F                    db       0Eh, 0Fh, 10h, 0Fh, 10h, 0Fh +31E4:4FCA  10 0F 0E 0D 0C 00                    db       10h, 0Fh, 0Eh, 0Dh, 0Ch, 00h +31E4:4FD0  01 02 03 04 05 04                    db       01h, 02h, 03h, 04h, 05h, 04h +31E4:4FD6  05 04 03 02 06 07                    db       05h, 04h, 03h, 02h, 06h, 07h +31E4:4FDC  00 0D 0E 0F 10 11                    db       00h, 0Dh, 0Eh, 0Fh, 10h, 11h +31E4:4FE2  12 13 14 15 16 17                    db       12h, 13h, 14h, 15h, 16h, 17h +31E4:4FE8  18 19 1A 1B 00 1C                    db       18h, 19h, 1Ah, 1Bh, 00h, 1Ch +31E4:4FEE  1D 1E 1F                             db       1Dh, 1Eh, 1Fh +31E4:4FF1  20 21 22 23 24                       db      ' !"#$' +31E4:4FF6  25 26 27 28 29 2A                    db      '%&', 27h, '()*+,-./0(', 27h, '&%' +31E4:4FFC  2B 2C 2D 2E 2F 30 +31E4:5002  28 27 26 25 +31E4:5006  24                                   db      '$' +31E4:5007  23 22 21 20                          db      '#"! ' +31E4:500B  1F 1E 1D 1C 00 01                    db       1Fh, 1Eh, 1Dh, 1Ch, 00h, 01h +31E4:5011  02 03 04 05 06 07                    db       02h, 03h, 04h, 05h, 06h, 07h +31E4:5017  08 09 0A 0B 0C 0D                    db       08h, 09h, 0Ah, 0Bh, 0Ch, 0Dh +31E4:501D  0E 0F 10 11 12 13                    db       0Eh, 0Fh, 10h, 11h, 12h, 13h +31E4:5023  14 15 16 17 18 00                    db       14h, 15h, 16h, 17h, 18h, 00h +31E4:5029  00                                   db       0 + +31E4:502A  001D BB47            sub_211_list    dw       1Dh, 0BB47h +31E4:502E  0020 BB61                            dw       20h, 0BB61h +31E4:5032  0023 BB7B                            dw       23h, 0BB7Bh         + +31E4:5036  000A[00]                             db      10 dup (0) + +31E4:5040  09 08 15 05 0A 0A      look_info     db      09h, 08h, 15h, 05h, 0Ah, 0Ah +31E4:5046  B0 00                                db      0B0h, 00h, +31E4:5048  D2 00                                db      0D2h, 00h +31E4:504A  0006[00]                             db      6 dup (0) +31E4:5050  CF5E                 data_821        dw      0CF5Eh                  ; Data table (indexed access) +31E4:5052  14 CF 90 CF AA CF                    db       14h,0CFh, 90h,0CFh,0AAh,0CFh +31E4:5058  D0 CF F6 CF                          db      0D0h,0CFh,0F6h,0CFh + +; The following table consists of the set of hotspot Ids and offsets for character talk records. +; Following this is the individual talk records for the characters + +31E4:505C  03EA 5202             talk_table     db      03EAh, offset skorl_record +31E4:5060  0411 5206                            db      0411h, 5206h +31E4:5064  03E9 5426                            db      03E9h, 5426h +31E4:5068  0412 5478                            db      0412h, 5478h +31E4:506C  03EB 547C                            db      03EBh, 547Ch +31E4:5070  03EC 54B2                            db      03ECh, 54B2h +31E4:5074  03ED 52E2                            db      03EDh, 52E2h +31E4:5078  041F 52AC                            db      041Fh, 52ACh +31E4:507C  0421 53F0                            db      0421h, 53F0h +31E4:5080  0422 53BA                            db      0422h, 53BAh +31E4:5084  0426 545C                            db      0426h, 545Ch +31E4:5088  0428 545C                            db      0428h, 545Ch +31E4:508C  0427 5384                            db      0427h, 5384h +31E4:5090  03EF 5318                            db      03EFh, 5318h +31E4:5094  0420 534E                            db      0420h, 534Eh +31E4:5098  0429 520A                            db      0429h, 520Ah +31E4:509C  03EE 5196                            db      03EEh, 5196h +31E4:50A0  03F0 51CC                            db      03F0h, 51CCh +31E4:50A4  042B 5276                            db      042Bh, 5276h +31E4:50A8  042C 5240                            db      042Ch, 5240h +31E4:50AC  042D 5240                            db      042Dh, 5240h +31E4:50B0  0434 5504                            db      0434h, 5504h +31E4:50B4  0436 512A                            db      0436h, 512Ah +31E4:50B8  03F1 5160                            db      03F1h, 5160h +31E4:50BC  03F2 511C                            db      03F2h, 511Ch +31E4:50C0  0437 5102                            db      0437h, 5102h +31E4:50C4  0438 510E                            db      0438h, 510Eh +31E4:50C8  0442 50CC                            db      0442h, offset talk_442h_record + +31E4:50CC  10 D0 00 00 1E D0   talk_442h_record db      10h,0D0h, 00h, 00h, 1Eh,0D0h + +31E4:5202  0000                skorl_record     dw      0 +31E4:5204  EB24                                 dw      offset skorl_talk_0 +31E4:5206  0000 E022 + +;***** TALK RECORD DATA deleted ***** + +31E4:5504  002C[00]                             db      44 dup (0)              ; Start of final talk list +31E4:5530  EE EB 7A EC                          dw      0EBEEh, 0EC7Ah +31E4:5534  000C[00]                             db      12 dup (0) + + +31E4:5540  73 61 76 65 67 61  savegame_filename db      'savegame.dta', 0       ;  xref 273F:934F +31E4:5546  6D 65 2E 64 74 61 +31E4:554C  00 +31E4:554D  FFFF                 data_832        dw      0FFFFh                  ;  xref 273F:8F7C, 273F:8F86 +31E4:554F  00 00 00 00 00 20                    db       00h, 00h, 00h, 00h, 00h, 20h +31E4:5555  21 40 23 24                          db      '!@#$' +31E4:5559  25 5E 26 2A 28 29                    db      '%^&*()_+|-=\{}[]:;', 27h, '<>?,.' +31E4:555F  5F 2B 7C 2D 3D 5C +31E4:5565  7B 7D 5B 5D 3A 3B +31E4:556B  27 3C 3E 3F 2C 2E +31E4:5571  2F 60 7E 22 00                       db      '/`~"', 0 +31E4:5576  52 65 73 74 6F 72                    db      'Restore game', 0 +31E4:557C  65 20 67 61 6D 65 +31E4:5582  00 +31E4:5583  53 61 76 65 20 67                    db      'Save game', 0 +31E4:5589  61 6D 65 00 +31E4:558D  E0 E1 E1 E0 DE 01                    db      0E0h,0E1h,0E1h,0E0h,0DEh, 01h +31E4:5593  79 12                                db       79h, 12h +31E4:5595  000B[00]                             db      11 dup (0) +31E4:55A0  00                   data_835        db      0                       ;  xref 273F:94FB, 273F:A37B +                                                                                ;       273F:A888, 273F:A8A4 +31E4:55A1  0000                 data_836        dw      0                       ;  xref 273F:949E, 273F:94F8 +31E4:55A3  04 0A 10 16 05 0B                    db       04h, 0Ah, 10h, 16h, 05h, 0Bh +31E4:55A9  11 17 06 0C 12 07                    db       11h, 17h, 06h, 0Ch, 12h, 07h +31E4:55AF  0D 13 08 0E 14 09                    db       0Dh, 13h, 08h, 0Eh, 14h, 09h +31E4:55B5  0F 15 00 00                          db       0Fh, 15h, 00h, 00h +31E4:55B9  0007[00]                             db      7 dup (0) +31E4:55C0  10 63 12 00 00 00                    db       10h, 63h, 12h, 00h, 00h, 00h +31E4:55C6  00 00 00 11 63 12                    db       00h, 00h, 00h, 11h, 63h, 12h +31E4:55CC  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:55D2  12 63 12 00 00 00                    db       12h, 63h, 12h, 00h, 00h, 00h +31E4:55D8  00 00 00 13 63 12                    db       00h, 00h, 00h, 13h, 63h, 12h +31E4:55DE  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:55E4  14 63 12 00 00 00                    db       14h, 63h, 12h, 00h, 00h, 00h +31E4:55EA  00 00 00 15 63 12                    db       00h, 00h, 00h, 15h, 63h, 12h +31E4:55F0  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:55F6  16 63 12 00 00 00                    db       16h, 63h, 12h, 00h, 00h, 00h +31E4:55FC  00 00 00 17 63 12                    db       00h, 00h, 00h, 17h, 63h, 12h +31E4:5602  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5608  18 63 12 00 00 00                    db       18h, 63h, 12h, 00h, 00h, 00h +31E4:560E  00 00 00 19 63 12                    db       00h, 00h, 00h, 19h, 63h, 12h +31E4:5614  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:561A  20 63 12 00 00 00                    db       20h, 63h, 12h, 00h, 00h, 00h +31E4:5620  00 00 00 21 63 12                    db       00h, 00h, 00h, 21h, 63h, 12h +31E4:5626  00 00 00 00 00                       db       00h, 00h, 00h, 00h, 00h + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +31E4:562B                       sub_272         proc    near +31E4:562B  00 22                                add     [bp+si],ah +31E4:562D  63 12 00 00 00 00                    db       63h, 12h, 00h, 00h, 00h, 00h +31E4:5633  00 00 23 63 12 00                    db       00h, 00h, 23h, 63h, 12h, 00h +31E4:5639  00 00 00 00 00 24                    db       00h, 00h, 00h, 00h, 00h, 24h +31E4:563F  63 12 00 00 00 00                    db       63h, 12h, 00h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 444 + +31E4:5645  00 00 25 63 12 00                    db       00h, 00h, 25h, 63h, 12h, 00h +31E4:564B  00 00 00 00 00 26                    db       00h, 00h, 00h, 00h, 00h, 26h +31E4:5651  63 12                                db       63h, 12h +31E4:5653  000D[00]                             db      13 dup (0) +31E4:5660  00                   music_status    db      0                       ;  xref 273F:092D, 273F:493B +                                                                                ;       273F:4942, 273F:7619 +                                                                                ;       273F:93E0, 273F:93E4 +                                                                                ;       273F:9405, 273F:9FA2 +                                                                                ;       273F:9FCA, 273F:9FD9 +                                                                                ;       273F:A016, 273F:A021 +                                                                                ;       273F:A07C, 273F:A087 +                                                                                ;       273F:A198, 273F:A1BA +                                                                                ;       273F:A2D7, 273F:A329 +                                                                                ;       273F:A330, 273F:A576 +                                                                                ;       273F:A592, 273F:A5A6 +31E4:5661  00                                   db      0 +31E4:5662  0000 0000        play_music_proc     dw      0, 0                    ;  xref 273F:04BC, 273F:494B +                                                                                ;       273F:762D, 273F:933E +                                                                                ;       273F:9F7C, 273F:9F99 +                                                                                ;       273F:9FBE, 273F:A0A8 +                                                                                ;       273F:A0D5, 273F:A150 +                                                                                ;       273F:A1CE, 273F:A1E9 +                                                                                ;       273F:A1F8, 273F:A2D1 +                                                                                ;       273F:A2F3, 273F:A31F +                                                                                ;       273F:A366, 273F:A3E1 +                                                                                ;       273F:A43F, 273F:A486 +                                                                                ;       273F:A589, 273F:A5DA +                                                                                ;       273F:A6DE +31E4:5666  00 00                                db      0, 0 +31E4:5668  00                   note_flag       db      0                       ;  xref 273F:48E2, 273F:48E9 +                                                                                ;       273F:48F0, 273F:48F5 +                                                                                ;       273F:4908, 273F:4936 +                                                                                ;       273F:9F77, 273F:9F9D +                                                                                ;       273F:9FC5, 273F:9FD4 +                                                                                ;       273F:A2CC, 273F:A335 +31E4:5669  00                   data_843        db      0                       ;  xref 273F:A031, 273F:A1FC +31E4:566A  0007[00]                             db      7 dup (0) +31E4:5671  8A 1E 1A 03 80 00                    db       8Ah, 1Eh, 1Ah, 03h, 80h, 00h +31E4:5677  40 15 00 80 81 40                    db       40h, 15h, 00h, 80h, 81h, 40h +31E4:567D  02 02 C8 06 40 15                    db       02h, 02h,0C8h, 06h, 40h, 15h +31E4:5683  00 80 12 64 15 00                    db       00h, 80h, 12h, 64h, 15h, 00h +31E4:5689  80 13 40 15 00 80                    db       80h, 13h, 40h, 15h, 00h, 80h +31E4:568F  11 0A 15 00 40 18                    db       11h, 0Ah, 15h, 00h, 40h, 18h +31E4:5695  1E 15 00 80 97 1E                    db       1Eh, 15h, 00h, 80h, 97h, 1Eh +31E4:569B  19 03 C8 07 7E 15                    db       19h, 03h,0C8h, 07h, 7Eh, 15h +31E4:56A1  01 80 08 7E 15 01                    db       01h, 80h, 08h, 7Eh, 15h, 01h +31E4:56A7  80 00 40 15 00 0F                    db       80h, 00h, 40h, 15h, 00h, 0Fh +31E4:56AD  8A 40 1A 03 18 16                    db       8Ah, 40h, 1Ah, 03h, 18h, 16h +31E4:56B3  00 15 01 80 15 7F                    db       00h, 15h, 01h, 80h, 15h, 7Fh +31E4:56B9  06 01 80 8F 0A 11                    db       06h, 01h, 80h, 8Fh, 0Ah, 11h +31E4:56BF  03 1C 41 64 15 01                    db       03h, 1Ch, 41h, 64h, 15h, 01h +31E4:56C5  80 10 64 16 01 02                    db       80h, 10h, 64h, 16h, 01h, 02h +31E4:56CB  97 8C 19 03 08 99                    db       97h, 8Ch, 19h, 03h, 08h, 99h +31E4:56D1  6A 11 02 6A 2B 80                    db       6Ah, 11h, 02h, 6Ah, 2Bh, 80h +31E4:56D7  15 01 80 97 80 19                    db       15h, 01h, 80h, 97h, 80h, 19h +31E4:56DD  03 04 2A 80 15 01                    db       03h, 04h, 2Ah, 80h, 15h, 01h +31E4:56E3  C8 38 80 15 01 80                    db      0C8h, 38h, 80h, 15h, 01h, 80h +31E4:56E9  3A 80 05 00 80 36                    db       3Ah, 80h, 05h, 00h, 80h, 36h +31E4:56EF  80 15 00 80 35 80                    db       80h, 15h, 00h, 80h, 35h, 80h +31E4:56F5  15 00 80 18 1E 15                    db       15h, 00h, 80h, 18h, 1Eh, 15h +31E4:56FB  00 19 18 1E 15 00                    db       00h, 19h, 18h, 1Eh, 15h, 00h +31E4:5701  07 02 1E 15 00 80                    db       07h, 02h, 1Eh, 15h, 00h, 80h +31E4:5707  04 1E 05 00 80 05                    db       04h, 1Eh, 05h, 00h, 80h, 05h +31E4:570D  1E 05 00 80 09 1E                    db       1Eh, 05h, 00h, 80h, 09h, 1Eh +31E4:5713  15 00 80 0C 80 19                    db       15h, 00h, 80h, 0Ch, 80h, 19h +31E4:5719  02 80 83 80 19 00                    db       02h, 80h, 83h, 80h, 19h, 00h +31E4:571F  80 1A 80 15 00 80                    db       80h, 1Ah, 80h, 15h, 00h, 80h +31E4:5725  22 80 15 00 80 1B                    db       22h, 80h, 15h, 00h, 80h, 1Bh +31E4:572B  80 1D 00 80 9E 80                    db       80h, 1Dh, 00h, 80h, 9Eh, 80h +31E4:5731  19 01 80 9F 80 15                    db       19h, 01h, 80h, 9Fh, 80h, 15h +31E4:5737  01 80 21 80 05 01                    db       01h, 80h, 21h, 80h, 05h, 01h +31E4:573D  80 2D 80 15 01 80                    db       80h, 2Dh, 80h, 15h, 01h, 80h +31E4:5743  30 80 15 01 80 B4                    db       30h, 80h, 15h, 01h, 80h,0B4h +31E4:5749  80 15 01 80 23 80                    db       80h, 15h, 01h, 80h, 23h, 80h +31E4:574F  11 01 80 24 80 11                    db       11h, 01h, 80h, 24h, 80h, 11h +31E4:5755  01 80 25 80 11 01                    db       01h, 80h, 25h, 80h, 11h, 01h +31E4:575B  80 26 80 11 01 80                    db       80h, 26h, 80h, 11h, 01h, 80h +31E4:5761  27 80 11 01 80 28                    db       27h, 80h, 11h, 01h, 80h, 28h +31E4:5767  80 11 01 C8 42 64                    db       80h, 11h, 01h,0C8h, 42h, 64h +31E4:576D  15 01 80 29 80 15                    db       15h, 01h, 80h, 29h, 80h, 15h +31E4:5773  01 80 3F 80 15 01                    db       01h, 80h, 3Fh, 80h, 15h, 01h +31E4:5779  80 FF 00                             db       80h,0FFh, 00h +31E4:577C  00 00 00 00                          db      0, 0, 0, 0 +31E4:5780  0000              palette_segment    dw      0                       ;  xref 273F:A346, 273F:A850 +31E4:5782  0000                 misc_segment    dw      0                       ;  xref 273F:A2C2, 273F:A2E1 +                                                                                ;       273F:A30D, 273F:A33A +                                                                                ;       273F:A342, 273F:A352 +                                                                                ;       273F:A5B2, 273F:A667 +                                                                                ;       273F:A6BE, 273F:A7C7 +                                                                                ;       273F:A7EC, 273F:A7FB +31E4:5784  0000      decoded_data_end_segment   dw      0                       ;  xref 273F:A7CF, 273F:A803 + +31E4:5786  09 00 45 01 02 01                    db       09h, 00h, 45h, 01h, 02h, 01h +31E4:578C  00 1B 00 48 01 05                    db       00h, 1Bh, 00h, 48h, 01h, 05h +31E4:5792  01 00 18 00 46 01                    db       01h, 00h, 18h, 00h, 46h, 01h +31E4:5798  03 01 02 18 00 37                    db       03h, 01h, 02h, 18h, 00h, 37h +31E4:579E  01 01 01 00 03 00                    db       01h, 01h, 01h, 00h, 03h, 00h +31E4:57A4  37 01 01 01 01 03                    db       37h, 01h, 01h, 01h, 01h, 03h +31E4:57AA  00 37 01 01 01 02                    db       00h, 37h, 01h, 01h, 01h, 02h +31E4:57B0  03 00 37 01 01 01                    db       03h, 00h, 37h, 01h, 01h, 01h +31E4:57B6  03 03 00 37 01 01                    db       03h, 03h, 00h, 37h, 01h, 01h +31E4:57BC  01 04 04 00 37 01                    db       01h, 04h, 04h, 00h, 37h, 01h +31E4:57C2  01 01 05 07 00 47                    db       01h, 01h, 05h, 07h, 00h, 47h +31E4:57C8  01 04 01 06 1F 00                    db       01h, 04h, 01h, 06h, 1Fh, 00h +31E4:57CE  00 00 06 01 00                       db       00h, 00h, 06h, 01h, 00h +31E4:57D3  000D[00]                             db      13 dup (0) + +                  hotspot_script_master_list +31E4:57E0  F0 02 80 00 AE 0B                    db      0F0h, 02h, 80h, 00h,0AEh, 0Bh +31E4:57E6  84 0C B2 0C 08 0D                    db       84h, 0Ch,0B2h, 0Ch, 08h, 0Dh +31E4:57EC  00 04 1E 26 C2 26                    db       00h, 04h, 1Eh, 26h,0C2h, 26h +31E4:57F2  08 27 78 26 DA 09                    db       08h, 27h, 78h, 26h,0DAh, 09h +31E4:57F8  E0 09 4C 04 52 0F                    db      0E0h, 09h, 4Ch, 04h, 52h, 0Fh +31E4:57FE  F0 0A 00 00 00 00                    db      0F0h, 0Ah, 00h, 00h, 00h, 00h +31E4:5804  00 00 82 02 22 03                    db       00h, 00h, 82h, 02h, 22h, 03h +31E4:580A  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h + +; This animation pixel block is referenced by the pixel block for rooms + +31E4:5810  08 40 01     voice_anim_block        db       08h, 40h, 01h + +31E4:5813  0000         voice_pixel_segment     dw       0 +31E4:5815  0000                                 dw       0 +31E4:5817  0000          voice_frame_offset     dw       0 + +31E4:5819  10 43 12                             db       10h, 43h, 12h +31E4:581C  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5822  12 43 12 00 00 00                    db       12h, 43h, 12h, 00h, 00h, 00h +31E4:5828  00 00 00 13 43 12                    db       00h, 00h, 00h, 13h, 43h, 12h +31E4:582E  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5834  17 41 12 00 00 00                    db       17h, 41h, 12h, 00h, 00h, 00h +31E4:583A  00 00 00 11                          db       00h, 00h, 00h, 11h +31E4:583E  41                                   db      41h +31E4:583F  0007[00]                             db      7 dup (0) +31E4:5846  10 42 12 00 00 00                    db       10h, 42h, 12h, 00h, 00h, 00h +31E4:584C  00 00 00 12 41 12                    db       00h, 00h, 00h, 12h, 41h, 12h +31E4:5852  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5858  11 42 12 00 00 00                    db       11h, 42h, 12h, 00h, 00h, 00h +31E4:585E  00 00 00 10 91 12                    db       00h, 00h, 00h, 10h, 91h, 12h +31E4:5864  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:586A  10 9D 12 00 00 00                    db       10h, 9Dh, 12h, 00h, 00h, 00h +31E4:5870  00 00 00 11 9D 12                    db       00h, 00h, 00h, 11h, 9Dh, 12h +31E4:5876  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:587C  11 A0 12 00 00 00                    db       11h,0A0h, 12h, 00h, 00h, 00h +31E4:5882  00 00 00 10 8C 12                    db       00h, 00h, 00h, 10h, 8Ch, 12h +31E4:5888  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:588E  10 A0 12 00 00 00                    db       10h,0A0h, 12h, 00h, 00h, 00h +31E4:5894  00 00 00                             db       00h, 00h, 00h, +31E4:5897  4114               anim_entry_1:     dw       4114h                  ; Disk res for anim contents? +31E4:5899  12                                   db       12h +31E4:589A  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:58A0  11 44 04 00 00 00                    db       11h, 44h, 04h, 00h, 00h, 00h +31E4:58A6  00 00 00 12 42 12                    db       00h, 00h, 00h, 12h, 42h, 12h +31E4:58AC  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:58B2  11 87 12 00 00 00                    db       11h, 87h, 12h, 00h, 00h, 00h +31E4:58B8  00 00 00 10 87 12                    db       00h, 00h, 00h, 10h, 87h, 12h +31E4:58BE  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:58C4  13 41 12 00 00 00                    db       13h, 41h, 12h, 00h, 00h, 00h +31E4:58CA  00 00 00 15 41 12                    db       00h, 00h, 00h, 15h, 41h, 12h +31E4:58D0  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:58D6  12 44 12 00 00 00                    db       12h, 44h, 12h, 00h, 00h, 00h +31E4:58DC  00 00 00 16 41 12                    db       00h, 00h, 00h, 16h, 41h, 12h +31E4:58E2  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:58E8  10 9C 12 00 00 00                    db       10h, 9Ch, 12h, 00h, 00h, 00h +31E4:58EE  00 00 00 10 93 12                    db       00h, 00h, 00h, 10h, 93h, 12h +31E4:58F4  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:58FA  10 9E 12 00 00 00                    db       10h, 9Eh, 12h, 00h, 00h, 00h +31E4:5900  00 00 00 10 8E 12                    db       00h, 00h, 00h, 10h, 8Eh, 12h +31E4:5906  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:590C  10 9F 12 00 00 00                    db       10h, 9Fh, 12h, 00h, 00h, 00h +31E4:5912  00 00 00 11 9C 12                    db       00h, 00h, 00h, 11h, 9Ch, 12h +31E4:5918  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:591E  11 9F 12 00 00 00                    db       11h, 9Fh, 12h, 00h, 00h, 00h +31E4:5924  00 00 00 13 9E 12                    db       00h, 00h, 00h, 13h, 9Eh, 12h +31E4:592A  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5930  16 9E 12 00 00 00                    db       16h, 9Eh, 12h, 00h, 00h, 00h +31E4:5936  00 00 00 12 9C 12                    db       00h, 00h, 00h, 12h, 9Ch, 12h +31E4:593C  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5942  11 94 12 00 00 00                    db       11h, 94h, 12h, 00h, 00h, 00h +31E4:5948  00 00 00 12 A0 12                    db       00h, 00h, 00h, 12h,0A0h, 12h +31E4:594E  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5954  11 8C 12 00 00 00                    db       11h, 8Ch, 12h, 00h, 00h, 00h +31E4:595A  00 00 00 10 A4 12                    db       00h, 00h, 00h, 10h,0A4h, 12h +31E4:5960  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5966  10 94 12 00 00 00                    db       10h, 94h, 12h, 00h, 00h, 00h +31E4:596C  00 00 00 12 9F 12                    db       00h, 00h, 00h, 12h, 9Fh, 12h +31E4:5972  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5978  13 9F 12 00 00 00                    db       13h, 9Fh, 12h, 00h, 00h, 00h +31E4:597E  00 00 00 12 9E 12                    db       00h, 00h, 00h, 12h, 9Eh, 12h +31E4:5984  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:598A  10 8F 12 00 00 00                    db       10h, 8Fh, 12h, 00h, 00h, 00h +31E4:5990  00 00 00 12 9D 12                    db       00h, 00h, 00h, 12h, 9Dh, 12h +31E4:5996  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:599C  20 8A 12 00 00 00                    db       20h, 8Ah, 12h, 00h, 00h, 00h +31E4:59A2  00 00 00 10 A2 12                    db       00h, 00h, 00h, 10h,0A2h, 12h +31E4:59A8  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:59AE  12 66 12 00 00 00                    db       12h, 66h, 12h, 00h, 00h, 00h +31E4:59B4  00 00 00 10 66 12                    db       00h, 00h, 00h, 10h, 66h, 12h +31E4:59BA  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:59C0  11 66 12 00 00 00                    db       11h, 66h, 12h, 00h, 00h, 00h +31E4:59C6  00 00 00 13 66 12                    db       00h, 00h, 00h, 13h, 66h, 12h +31E4:59CC  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:59D2  10 69 12 00 00 00                    db       10h, 69h, 12h, 00h, 00h, 00h +31E4:59D8  00 00 00 04 ED 12                    db       00h, 00h, 00h, 04h,0EDh, 12h +31E4:59DE  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:59E4  10 A3 12 00 00 00                    db       10h,0A3h, 12h, 00h, 00h, 00h +31E4:59EA  00 00 00 11 A3 12                    db       00h, 00h, 00h, 11h,0A3h, 12h +31E4:59F0  00 00 00 00 00                       db       00h, 00h, 00h, 00h, 00h + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +31E4:59F5                       sub_273: +31E4:59F5  00 11                                add     [bx+di],dl +31E4:59F7  69 12 00 00 00 00                    db       69h, 12h, 00h, 00h, 00h, 00h +31E4:59FD  00 00 12 69 12 00                    db       00h, 00h, 12h, 69h, 12h, 00h +31E4:5A03  00 00 00 00 00 13                    db       00h, 00h, 00h, 00h, 00h, 13h +31E4:5A09  69 12 00 00 00 00                    db       69h, 12h, 00h, 00h, 00h, 00h +31E4:5A0F  00 00 14 69 12 00                    db       00h, 00h, 14h, 69h, 12h, 00h +31E4:5A15  00 00 00 00 00 16                    db       00h, 00h, 00h, 00h, 00h, 16h +31E4:5A1B  EF 12 00 00 00 00                    db      0EFh, 12h, 00h, 00h, 00h, 00h +31E4:5A21  00 00 10 EA 12 00                    db       00h, 00h, 10h,0EAh, 12h, 00h +31E4:5A27  00 00 00 00 00 15                    db       00h, 00h, 00h, 00h, 00h, 15h +31E4:5A2D  EF 12 00 00 00 00                    db      0EFh, 12h, 00h, 00h, 00h, 00h +31E4:5A33  00 00 14 EF 12 00                    db       00h, 00h, 14h,0EFh, 12h, 00h +31E4:5A39  00 00 00 00 00 13                    db       00h, 00h, 00h, 00h, 00h, 13h +31E4:5A3F  EF 12 00 00 00 00                    db      0EFh, 12h, 00h, 00h, 00h, 00h +31E4:5A45  00 00 11 EA 12 00                    db       00h, 00h, 11h,0EAh, 12h, 00h +31E4:5A4B  00 00 00 00 00 10                    db       00h, 00h, 00h, 00h, 00h, 10h +31E4:5A51  EF 12 00 00 00 00                    db      0EFh, 12h, 00h, 00h, 00h, 00h +31E4:5A57  00 00 11 EF 12 00                    db       00h, 00h, 11h,0EFh, 12h, 00h +31E4:5A5D  00 00 00 00 00 12                    db       00h, 00h, 00h, 00h, 00h, 12h +31E4:5A63  EF 12 00 00 00 00                    db      0EFh, 12h, 00h, 00h, 00h, 00h +31E4:5A69  00 00 17 63 12 00                    db       00h, 00h, 17h, 63h, 12h, 00h +31E4:5A6F  00 00 00 00 00 27                    db       00h, 00h, 00h, 00h, 00h, 27h +31E4:5A75  63 12 00 00 00 00                    db       63h, 12h, 00h, 00h, 00h, 00h +31E4:5A7B  00 00 28 63 12 00                    db       00h, 00h, 28h, 63h, 12h, 00h +31E4:5A81  00 00 00 00 00 17                    db       00h, 00h, 00h, 00h, 00h, 17h +31E4:5A87  EF 12 00 00 00 00                    db      0EFh, 12h, 00h, 00h, 00h, 00h +31E4:5A8D  00 00 12 8E 12 00                    db       00h, 00h, 12h, 8Eh, 12h, 00h +31E4:5A93  00 00 00 00 00 11                    db       00h, 00h, 00h, 00h, 00h, 11h +31E4:5A99  8E 12 00 00 00 00                    db       8Eh, 12h, 00h, 00h, 00h, 00h +31E4:5A9F  00 00 14 9D 12 00                    db       00h, 00h, 14h, 9Dh, 12h, 00h +31E4:5AA5  00 00 00 00 00 11                    db       00h, 00h, 00h, 00h, 00h, 11h +31E4:5AAB  A2 12 00 00 00 00                    db      0A2h, 12h, 00h, 00h, 00h, 00h +31E4:5AB1  00 00 13 9D 12 00                    db       00h, 00h, 13h, 9Dh, 12h, 00h +31E4:5AB7  00 00 00 00 00 06                    db       00h, 00h, 00h, 00h, 00h, 06h +31E4:5ABD  EB 12 00 00 00 00                    db      0EBh, 12h, 00h, 00h, 00h, 00h +31E4:5AC3  00 00 05 EB 12 00                    db       00h, 00h, 05h,0EBh, 12h, 00h +31E4:5AC9  00 00 00 00 00 02                    db       00h, 00h, 00h, 00h, 00h, 02h +31E4:5ACF  EB 12 00 00 00 00                    db      0EBh, 12h, 00h, 00h, 00h, 00h +31E4:5AD5  00 00 03 EB 12 00                    db       00h, 00h, 03h,0EBh, 12h, 00h +31E4:5ADB  00 00 00 00 00 04                    db       00h, 00h, 00h, 00h, 00h, 04h +31E4:5AE1  EB 12 00 00 00 00                    db      0EBh, 12h, 00h, 00h, 00h, 00h +31E4:5AE7  00 00 12 EA 12 00                    db       00h, 00h, 12h,0EAh, 12h, 00h +31E4:5AED  00 00 00 00 00 13                    db       00h, 00h, 00h, 00h, 00h, 13h +31E4:5AF3  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5AF9  00 00 14 EA 12 00                    db       00h, 00h, 14h,0EAh, 12h, 00h +31E4:5AFF  00 00 00 00 00 15                    db       00h, 00h, 00h, 00h, 00h, 15h +31E4:5B05  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5B0B  00 00 16 EA 12 00                    db       00h, 00h, 16h,0EAh, 12h, 00h +31E4:5B11  00 00 00 00 00 17                    db       00h, 00h, 00h, 00h, 00h, 17h +31E4:5B17  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5B1D  00 00 18 EA 12 00                    db       00h, 00h, 18h,0EAh, 12h, 00h +31E4:5B23  00 00 00 00 00 19                    db       00h, 00h, 00h, 00h, 00h, 19h +31E4:5B29  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5B2F  00 00 20 EA 12 00                    db       00h, 00h, 20h,0EAh, 12h, 00h +31E4:5B35  00 00 00 00 00 21                    db       00h, 00h, 00h, 00h, 00h, 21h +31E4:5B3B  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5B41  00 00 22 EA 12 00                    db       00h, 00h, 22h,0EAh, 12h, 00h +31E4:5B47  00 00 00 00 00 23                    db       00h, 00h, 00h, 00h, 00h, 23h +31E4:5B4D  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5B53  00 00 24 EA 12 00                    db       00h, 00h, 24h,0EAh, 12h, 00h +31E4:5B59  00 00 00 00 00 25                    db       00h, 00h, 00h, 00h, 00h, 25h +31E4:5B5F  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5B65  00 00 26 EA 12 00                    db       00h, 00h, 26h,0EAh, 12h, 00h +31E4:5B6B  00 00 00 00 00 27                    db       00h, 00h, 00h, 00h, 00h, 27h +31E4:5B71  EA 12 00 00 00 00                    db      0EAh, 12h, 00h, 00h, 00h, 00h +31E4:5B77  00 00 13 9C 12 00                    db       00h, 00h, 13h, 9Ch, 12h, 00h +31E4:5B7D  00 00 00 00 00 14                    db       00h, 00h, 00h, 00h, 00h, 14h +31E4:5B83  9C 12 00 00 00 00                    db       9Ch, 12h, 00h, 00h, 00h, 00h +31E4:5B89  00 00 0A 8D 12 00                    db       00h, 00h, 0Ah, 8Dh, 12h, 00h +31E4:5B8F  00 00 00 00 00 0B                    db       00h, 00h, 00h, 00h, 00h, 0Bh +31E4:5B95  8D 12 00 00 00 00                    db       8Dh, 12h, 00h, 00h, 00h, 00h +31E4:5B9B  00 00 0C 8D 12 00                    db       00h, 00h, 0Ch, 8Dh, 12h, 00h +31E4:5BA1  00 00 00 00 00 0D                    db       00h, 00h, 00h, 00h, 00h, 0Dh +31E4:5BA7  8D 12 00 00 00 00                    db       8Dh, 12h, 00h, 00h, 00h, 00h +31E4:5BAD  00 00 15 69 12 00                    db       00h, 00h, 15h, 69h, 12h, 00h +31E4:5BB3  00 00 00 00 00 0F                    db       00h, 00h, 00h, 00h, 00h, 0Fh +31E4:5BB9  00 FC FF 00 00 0E                    db       00h,0FCh,0FFh, 00h, 00h, 0Eh +31E4:5BBF  00 FC FF 00 00 0D                    db       00h,0FCh,0FFh, 00h, 00h, 0Dh +31E4:5BC5  00 FC FF 00 00 0C                    db       00h,0FCh,0FFh, 00h, 00h, 0Ch +31E4:5BCB  00 FC FF 00 00 0B                    db       00h,0FCh,0FFh, 00h, 00h, 0Bh +31E4:5BD1  00 FC FF 00 00 0A                    db       00h,0FCh,0FFh, 00h, 00h, 0Ah +31E4:5BD7  00 FC FF 00 00 09                    db       00h,0FCh,0FFh, 00h, 00h, 09h +31E4:5BDD  00 FC FF 00 00 08                    db       00h,0FCh,0FFh, 00h, 00h, 08h +31E4:5BE3  00 FC FF 00 00 FF                    db       00h,0FCh,0FFh, 00h, 00h,0FFh +31E4:5BE9  FF 00 00 04 00 00                    db      0FFh, 00h, 00h, 04h, 00h, 00h +31E4:5BEF  00 01 00 04 00 00                    db       00h, 01h, 00h, 04h, 00h, 00h +31E4:5BF5  00 02 00 04 00 00                    db       00h, 02h, 00h, 04h, 00h, 00h +31E4:5BFB  00 03 00 04 00 00                    db       00h, 03h, 00h, 04h, 00h, 00h +31E4:5C01  00 04 00 04 00 00                    db       00h, 04h, 00h, 04h, 00h, 00h +31E4:5C07  00 05 00 04 00 00                    db       00h, 05h, 00h, 04h, 00h, 00h +31E4:5C0D  00 06 00 04 00 00                    db       00h, 06h, 00h, 04h, 00h, 00h +31E4:5C13  00 07 00 04 00 00                    db       00h, 07h, 00h, 04h, 00h, 00h +31E4:5C19  00 FF FF 18 00 00                    db       00h,0FFh,0FFh, 18h, 00h, 00h +31E4:5C1F  00 FE FF 19 00 00                    db       00h,0FEh,0FFh, 19h, 00h, 00h +31E4:5C25  00 FE FF 1A 00 00                    db       00h,0FEh,0FFh, 1Ah, 00h, 00h +31E4:5C2B  00 FE FF 1B 00 00                    db       00h,0FEh,0FFh, 1Bh, 00h, 00h +31E4:5C31  00 FE FF 1C 00 00                    db       00h,0FEh,0FFh, 1Ch, 00h, 00h +31E4:5C37  00 FE FF 1D 00 00                    db       00h,0FEh,0FFh, 1Dh, 00h, 00h +31E4:5C3D  00 FE FF 1E 00 00                    db       00h,0FEh,0FFh, 1Eh, 00h, 00h +31E4:5C43  00 FE FF 1F 00 00                    db       00h,0FEh,0FFh, 1Fh, 00h, 00h +31E4:5C49  00 FE FF FF FF 10                    db       00h,0FEh,0FFh,0FFh,0FFh, 10h +31E4:5C4F  00 00 00 02 00 11                    db       00h, 00h, 00h, 02h, 00h, 11h +31E4:5C55  00 00 00 02 00 12                    db       00h, 00h, 00h, 02h, 00h, 12h +31E4:5C5B  00 00 00 02 00 13                    db       00h, 00h, 00h, 02h, 00h, 13h +31E4:5C61  00 00 00 02 00 14                    db       00h, 00h, 00h, 02h, 00h, 14h +31E4:5C67  00 00 00 02 00 15                    db       00h, 00h, 00h, 02h, 00h, 15h +31E4:5C6D  00 00 00 02 00 16                    db       00h, 00h, 00h, 02h, 00h, 16h +31E4:5C73  00 00 00 02 00 17                    db       00h, 00h, 00h, 02h, 00h, 17h +31E4:5C79  00 00 00 02 00 FF                    db       00h, 00h, 00h, 02h, 00h,0FFh +31E4:5C7F  FF                                   db      0FFh +31E4:5C80  20 41                                db       20h, 41h +31E4:5C82  0007[00]                             db      7 dup (0) +31E4:5C89  1C 5C 4E 5C B8 5B                    db       1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh +31E4:5C8F  EA 5B 23 22 21 20                    db      0EAh, 5Bh, 23h, 22h, 21h, 20h +31E4:5C95  21 41 00 00 00 00                    db       21h, 41h, 00h, 00h, 00h, 00h +31E4:5C9B  00 00 00 1C 5C 4E                    db       00h, 00h, 00h, 1Ch, 5Ch, 4Eh +31E4:5CA1  5C B8 5B EA 5B 23                    db       5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h +31E4:5CA7  22 21 20 17 9E                       db       22h, 21h, 20h, 17h, 9Eh +31E4:5CAC  0007[00]                             db      7 dup (0) +31E4:5CB3  1C 5C 4E 5C B8 5B                    db       1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh +31E4:5CB9  EA 5B 23 22 21 20                    db      0EAh, 5Bh, 23h, 22h, 21h, 20h +31E4:5CBF  11 43 00 00 00 00                    db       11h, 43h, 00h, 00h, 00h, 00h +31E4:5CC5  00 00 00 1C 5C 4E                    db       00h, 00h, 00h, 1Ch, 5Ch, 4Eh +31E4:5CCB  5C B8 5B EA 5B 23                    db       5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h +31E4:5CD1  22 21 20 10 44 00                    db       22h, 21h, 20h, 10h, 44h, 00h +31E4:5CD7  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5CDD  1C 5C 4E 5C B8 5B                    db       1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh +31E4:5CE3  EA 5B 23 22 21 20                    db      0EAh, 5Bh, 23h, 22h, 21h, 20h +31E4:5CE9  12 8A 00 00 00 00                    db       12h, 8Ah, 00h, 00h, 00h, 00h +31E4:5CEF  00 00 00 1C 5C 4E                    db       00h, 00h, 00h, 1Ch, 5Ch, 4Eh +31E4:5CF5  5C B8 5B EA 5B 23                    db       5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h +31E4:5CFB  22 21 20 13 8A 00                    db       22h, 21h, 20h, 13h, 8Ah, 00h +31E4:5D01  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5D07  1C 5C 4E 5C B8 5B                    db       1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh +31E4:5D0D  EA 5B 23 22 21 20                    db      0EAh, 5Bh, 23h, 22h, 21h, 20h +31E4:5D13  10 8A 00 00 00 00                    db       10h, 8Ah, 00h, 00h, 00h, 00h +31E4:5D19  00 00 00 1C 5C 4E                    db       00h, 00h, 00h, 1Ch, 5Ch, 4Eh +31E4:5D1F  5C B8 5B EA 5B 23                    db       5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h +31E4:5D25  22 21 20 14 9F                       db       22h, 21h, 20h, 14h, 9Fh +31E4:5D2A  0007[00]                             db      7 dup (0) +31E4:5D31  1C 5C 4E 5C B8 5B                    db       1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh +31E4:5D37  EA 5B 23 22 21 20                    db      0EAh, 5Bh, 23h, 22h, 21h, 20h +31E4:5D3D  14 A4                                db       14h,0A4h +31E4:5D3F  0007[00]                             db      7 dup (0) +31E4:5D46  1C 5C 4E 5C B8 5B                    db       1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh +31E4:5D4C  EA 5B 23 22 21 20                    db      0EAh, 5Bh, 23h, 22h, 21h, 20h +31E4:5D52  11 A4 00 00 00 00                    db       11h,0A4h, 00h, 00h, 00h, 00h +31E4:5D58  00 00 00 1C 5C 4E                    db       00h, 00h, 00h, 1Ch, 5Ch, 4Eh +31E4:5D5E  5C B8 5B EA 5B 23                    db       5Ch,0B8h, 5Bh,0EAh, 5Bh, 23h +31E4:5D64  22 21 20 18 EF                       db       22h, 21h, 20h, 18h,0EFh +31E4:5D69  0007[00]                             db      7 dup (0) +31E4:5D70  1C 5C 4E 5C B8 5B                    db       1Ch, 5Ch, 4Eh, 5Ch,0B8h, 5Bh +31E4:5D76  EA 5B 23 22 21 20                    db      0EAh, 5Bh, 23h, 22h, 21h, 20h +31E4:5D7C  00 00 00 00 52 00                    db       00h, 00h, 00h, 00h, 52h, 00h +31E4:5D82  000E[00]                             db      14 dup (0) + + +31E4:5D90  00                   write_buffer    db      0                       ;  xref 273F:8F8D +31E4:5D91  00 00 00 00 00 00                    db      0, 0, 0, 0, 0, 0 +31E4:5D97  00                                   db      0 + +31E4:5D98  EF                hotspot_table_2    db      0EFh +31E4:5D99  6C 47 00 00 00 00                    db       6Ch, 47h, 00h, 00h, 00h, 00h +31E4:5D9F  00 00 B9 70 F1 00                    db       00h, 00h,0B9h, 70h,0F1h, 00h +31E4:5DA5  33 01 00 00 03 67                    db       33h, 01h, 00h, 00h, 03h, 67h +31E4:5DAB  6D 49 00 E2 00 00                    db       6Dh, 49h, 00h,0E2h, 00h, 00h +31E4:5DB1  00 01 CE 72 7A 01                    db       00h, 01h,0CEh, 72h, 7Ah, 01h +31E4:5DB7  D0 08 00 00 02 C2                    db      0D0h, 08h, 00h, 00h, 02h,0C2h +31E4:5DBD  77 7A 01 D8 08 00                    db       77h, 7Ah, 01h,0D8h, 08h, 00h +31E4:5DC3  00 02 E1 79 7A 01                    db       00h, 02h,0E1h, 79h, 7Ah, 01h +31E4:5DC9  DC 08 00 00 02 1F                    db      0DCh, 08h, 00h, 00h, 02h, 1Fh +31E4:5DCF  7B 7A 01 12 0B 00                    db       7Bh, 7Ah, 01h, 12h, 0Bh, 00h +31E4:5DD5  00 02 21 7D 55 08                    db       00h, 02h, 21h, 7Dh, 55h, 08h +31E4:5DDB  56 08 00 00 06 18                    db       56h, 08h, 00h, 00h, 06h, 18h +31E4:5DE1  7C 7A 01 26 0B 00                    db       7Ch, 7Ah, 01h, 26h, 0Bh, 00h +31E4:5DE7  00 02 E6 6D 49 00                    db       00h, 02h,0E6h, 6Dh, 49h, 00h +31E4:5DED  FE 0B 00 00 02 50                    db      0FEh, 0Bh, 00h, 00h, 02h, 50h +31E4:5DF3  71 7A 01 A4 0F 00                    db       71h, 7Ah, 01h,0A4h, 0Fh, 00h +31E4:5DF9  00 08 E9 6F 49 00                    db       00h, 08h,0E9h, 6Fh, 49h, 00h +31E4:5DFF  DF 0F 00 00 00 FF                    db      0DFh, 0Fh, 00h, 00h, 00h,0FFh +31E4:5E05  FF 00 00 00 00 00                    db      0FFh, 00h, 00h, 00h, 00h, 00h +31E4:5E0B  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:5E11  00 00 00 00 00 FF                    db       00h, 00h, 00h, 00h, 00h,0FFh +31E4:5E17  FF 00 00 00 00 00                    db      0FFh, 00h, 00h, 00h, 00h, 00h +31E4:5E1D  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:5E23  00 00 00 00 00 FF                    db       00h, 00h, 00h, 00h, 00h,0FFh +31E4:5E29  FF 00 00 00 00 00                    db      0FFh, 00h, 00h, 00h, 00h, 00h +31E4:5E2F  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:5E35  00 00 00 00 00 FF                    db       00h, 00h, 00h, 00h, 00h,0FFh +31E4:5E3B  FF 00 00 00 00 00                    db      0FFh, 00h, 00h, 00h, 00h, 00h +31E4:5E41  00 00 FF                             db       00h, 00h,0FFh + +                                ;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß + +31E4:5E44                       sub_274: +31E4:5E44  FF 00                                inc     word ptr [bx+si] +31E4:5E46  00 00 00 00 00                       db      0, 0, 0, 0, 0 +31E4:5E4B                       loc_2130: +31E4:5E4B  00 FF                                add     bh,bh +31E4:5E4D  FF 00                                inc     word ptr [bx+si] +31E4:5E4F  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5E55  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:5E5B  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:5E61  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5E67  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:5E6D  00 00                                db       00h, 00h +31E4:5E6F                       loc_2131: +31E4:5E6F  00 FF                                add     bh,bh +31E4:5E71  FF 00                                inc     word ptr [bx+si] +31E4:5E73  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5E79  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:5E7F  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:5E85  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5E8B  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:5E91  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:5E97  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5E9D  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:5EA3  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:5EA9  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5EAF  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:5EB5  00 00 00                             db       00h, 00h, 00h +31E4:5EB8  07                hotspot_table_5    db      7                       ;  xref 273F:1CA1, 273F:1CEE +31E4:5EB9  7E 8B 40 AC 00 00                    db       7Eh, 8Bh, 40h,0ACh, 00h, 00h +31E4:5EBF  00 01 B0 81 8B 40                    db       00h, 01h,0B0h, 81h, 8Bh, 40h +31E4:5EC5  AC 00 00 00 01 DB                    db      0ACh, 00h, 00h, 00h, 01h,0DBh +31E4:5ECB  81 8B 40 AC 00 00                    db       81h, 8Bh, 40h,0ACh, 00h, 00h +31E4:5ED1  00 01                                db       00h, 01h +31E4:5ED3  0009[00]                             db      9 dup (0) +31E4:5EDC  EA 6A CD 40 5C 01                    db      0EAh, 6Ah,0CDh, 40h, 5Ch, 01h +31E4:5EE2  00 00 01 FB 83 EE                    db       00h, 00h, 01h,0FBh, 83h,0EEh +31E4:5EE8  40 EF 00 00 00 01                    db       40h,0EFh, 00h, 00h, 00h, 01h +31E4:5EEE  C6 7E 00 00 00 00                    db      0C6h, 7Eh, 00h, 00h, 00h, 00h +31E4:5EF4  00 00 00 D2 7F 8B                    db       00h, 00h, 00h,0D2h, 7Fh, 8Bh +31E4:5EFA  40 AC 00 00 00 01                    db       40h,0ACh, 00h, 00h, 00h, 01h +31E4:5F00  05 80 8F 20 E1 00                    db       05h, 80h, 8Fh, 20h,0E1h, 00h +31E4:5F06  00 00 01 37 80 48                    db       00h, 00h, 01h, 37h, 80h, 48h +31E4:5F0C  00 E0 00 00 00 01                    db       00h,0E0h, 00h, 00h, 00h, 01h +31E4:5F12  81 80 92 20 DA 00                    db       81h, 80h, 92h, 20h,0DAh, 00h +31E4:5F18  00 00 01 00                          db       00h, 00h, 01h, 00h +31E4:5F1C  001A[00]                             db      26 dup (0) +31E4:5F36  A7 7F 00 00 00 00                    db      0A7h, 7Fh, 00h, 00h, 00h, 00h +31E4:5F3C  00 00 00 7C 7F 35                    db       00h, 00h, 00h, 7Ch, 7Fh, 35h +31E4:5F42  21 36 01 00 00 02                    db       21h, 36h, 01h, 00h, 00h, 02h +31E4:5F48  F0 7E D3 40 23 01                    db      0F0h, 7Eh,0D3h, 40h, 23h, 01h +31E4:5F4E  00 00 01 06 82 D3                    db       00h, 00h, 01h, 06h, 82h,0D3h +31E4:5F54  40 D4 00 00 00 01                    db       40h,0D4h, 00h, 00h, 00h, 01h +31E4:5F5A  31 82 00 00 00 00                    db       31h, 82h, 00h, 00h, 00h, 00h +31E4:5F60  00 00 00 5C 82 D5                    db       00h, 00h, 00h, 5Ch, 82h,0D5h +31E4:5F66  00 D9 00 00 00 01                    db       00h,0D9h, 00h, 00h, 00h, 01h +31E4:5F6C  1F 7F 00 00 00 00                    db       1Fh, 7Fh, 00h, 00h, 00h, 00h +31E4:5F72  00 00 00 49 7F                       db       00h, 00h, 00h, 49h, 7Fh +31E4:5F77  0007[00]                             db      7 dup (0) +31E4:5F7E  3A 7E 8B 40 AC 00                    db       3Ah, 7Eh, 8Bh, 40h,0ACh, 00h +31E4:5F84  00 00 01 55 88 7A                    db       00h, 00h, 01h, 55h, 88h, 7Ah +31E4:5F8A  01 A6 08 00 00 02                    db       01h,0A6h, 08h, 00h, 00h, 02h +31E4:5F90  D1 80 7A 01 8E 08                    db      0D1h, 80h, 7Ah, 01h, 8Eh, 08h +31E4:5F96  00 00 02 05 8C 7A                    db       00h, 00h, 02h, 05h, 8Ch, 7Ah +31E4:5F9C  01 CD 08 00 00 02                    db       01h,0CDh, 08h, 00h, 00h, 02h +31E4:5FA2  71 8D 7A 01 66 08                    db       71h, 8Dh, 7Ah, 01h, 66h, 08h +31E4:5FA8  00 00 02 85 8E 00                    db       00h, 00h, 02h, 85h, 8Eh, 00h +31E4:5FAE  00 00 00 00 00 02                    db       00h, 00h, 00h, 00h, 00h, 02h +31E4:5FB4  70 7E 4E 48 4F 08                    db       70h, 7Eh, 4Eh, 48h, 4Fh, 08h +31E4:5FBA  00 00 02 9B 7E 00                    db       00h, 00h, 02h, 9Bh, 7Eh, 00h +31E4:5FC0  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:5FC6  B6 8D 49 00 7A 0C                    db      0B6h, 8Dh, 49h, 00h, 7Ah, 0Ch +31E4:5FCC  00 00 02 40 8E 49                    db       00h, 00h, 02h, 40h, 8Eh, 49h +31E4:5FD2  00 8A 08 00 00 02                    db       00h, 8Ah, 08h, 00h, 00h, 02h +31E4:5FD8                       loc_2132: +31E4:5FD8  FB                                   sti                             ; Enable interrupts +31E4:5FD9  8D 49 00                             lea     cx,[bx+di+0]            ; Load effective addr +31E4:5FDC  7B 0C                                jnp     loc_2133                ; Jump if not parity +31E4:5FDE  00 00                                add     [bx+si],al +31E4:5FE0  02 1E 7A81                           add     bl,ds:data_54e          ; (0000:7A81=0D1h) +31E4:5FE4  01 A5 0008                           add     ds:data_4e[di],sp       ; (0000:0008=30h) +31E4:5FE8  00 02                                add     [bp+si],al +31E4:5FEA                       loc_2133:                                       ;  xref 31E4:5FDC +31E4:5FEA  8C 82 090B                           mov     [bp+si+90Bh],es +31E4:5FEE  0C 09                                or      al,9 +31E4:5FF0  00 00                                add     [bx+si],al +31E4:5FF2  02 55 8C                             add     dl,[di-74h] +31E4:5FF5  7A 01                                jp      loc_2134                ; Jump if parity=1 +31E4:5FF7  54                                   push    sp +31E4:5FF8                       loc_2134:                                       ;  xref 31E4:5FF5 +31E4:5FF8  09 00                                or      [bx+si],ax +31E4:5FFA  00 02                                add     [bp+si],al +31E4:5FFC  E7 8C                                out     8Ch,ax                  ; port 8Ch ??I/O Non-standard +31E4:5FFE  96                                   xchg    si,ax +31E4:5FFF  09 A6 000A                           or      [bp+0Ah],sp +31E4:6003  00 02                                add     [bp+si],al +31E4:6005  2C 8D                                sub     al,8Dh +31E4:6007  96                                   xchg    si,ax +31E4:6008  09 A6 000A                           or      [bp+0Ah],sp +31E4:600C  00 02                                add     [bp+si],al +31E4:600E  C2 D482                              retn    0D482h +                                sub_272         endp + +31E4:6011  29 06 0C 00 00 04                    db       29h, 06h, 0Ch, 00h, 00h, 04h +31E4:6017  F8 82 D3 29 06 0C                    db      0F8h, 82h,0D3h, 29h, 06h, 0Ch +31E4:601D  00 00 04 2E 83 D4                    db       00h, 00h, 04h, 2Eh, 83h,0D4h +31E4:6023  29 06 0C 00 00 04                    db       29h, 06h, 0Ch, 00h, 00h, 04h +31E4:6029  64 83 D3 29 06 0C                    db       64h, 83h,0D3h, 29h, 06h, 0Ch +31E4:602F  00 00 04 9A 83 D4                    db       00h, 00h, 04h, 9Ah, 83h,0D4h +31E4:6035  29 06 0C 00 00 04                    db       29h, 06h, 0Ch, 00h, 00h, 04h +31E4:603B  D0 83 D3 29 06 0C                    db      0D0h, 83h,0D3h, 29h, 06h, 0Ch +31E4:6041  00 00 04 B5 8E 0D                    db       00h, 00h, 04h,0B5h, 8Eh, 0Dh +31E4:6047  0A 93 0B 00 00 04                    db       0Ah, 93h, 0Bh, 00h, 00h, 04h +31E4:604D  02 98 00 00 00 00                    db       02h, 98h, 00h, 00h, 00h, 00h +31E4:6053  00 00 00 6B 81 7A                    db       00h, 00h, 00h, 6Bh, 81h, 7Ah +31E4:6059  01 83 0A 00 00 02                    db       01h, 83h, 0Ah, 00h, 00h, 02h +31E4:605F  25 8F 49 00 DF 0F                    db       25h, 8Fh, 49h, 00h,0DFh, 0Fh +31E4:6065  00 00 08 6A 8F 49                    db       00h, 00h, 08h, 6Ah, 8Fh, 49h +31E4:606B  00 DF 0F 00 00 08                    db       00h,0DFh, 0Fh, 00h, 00h, 08h +31E4:6071  AF 8F 00 00 00 00                    db      0AFh, 8Fh, 00h, 00h, 00h, 00h +31E4:6077  00 00 08 CB 95 E8                    db       00h, 00h, 08h,0CBh, 95h,0E8h +31E4:607D  0F E9 0F 00 00 08                    db       0Fh,0E9h, 0Fh, 00h, 00h, 08h +31E4:6083  F5 95 00 00 00 00                    db      0F5h, 95h, 00h, 00h, 00h, 00h +31E4:6089  00 00 08 1F 96 00                    db       00h, 00h, 08h, 1Fh, 96h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 453 + +31E4:608F  00 00 00 00 00 08                    db       00h, 00h, 00h, 00h, 00h, 08h +31E4:6095  54 96 EA 0F EB 0F                    db       54h, 96h,0EAh, 0Fh,0EBh, 0Fh +31E4:609B  00 00 08 D8 97 00                    db       00h, 00h, 08h,0D8h, 97h, 00h +31E4:60A1  00 00 00 00 00 08                    db       00h, 00h, 00h, 00h, 00h, 08h +31E4:60A7  AD 96                                db      0ADh, 96h +31E4:60A9  0007[00]                             db      7 dup (0) +31E4:60B0  D7 96                                db      0D7h, 96h +31E4:60B2  0007[00]                             db      7 dup (0) +31E4:60B9  01 97 00 00 00 00                    db       01h, 97h, 00h, 00h, 00h, 00h +31E4:60BF  00 00 00 A2 8C 7A                    db       00h, 00h, 00h,0A2h, 8Ch, 7Ah +31E4:60C5  01 0A 0C 00 00 02                    db       01h, 0Ah, 0Ch, 00h, 00h, 02h +31E4:60CB  DA 8F 00 00 00 00                    db      0DAh, 8Fh, 00h, 00h, 00h, 00h +31E4:60D1  00 00 02 5A 97                       db       00h, 00h, 02h, 5Ah, 97h +31E4:60D6  0007[00]                             db      7 dup (0) +31E4:60DD  84 97 00 00 00 00                    db       84h, 97h, 00h, 00h, 00h, 00h +31E4:60E3  00 00 00 AE 97 00                    db       00h, 00h, 00h,0AEh, 97h, 00h +31E4:60E9  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:60EF  05 90 00 00 00 00                    db       05h, 90h, 00h, 00h, 00h, 00h +31E4:60F5  00 00 08 30 90 00                    db       00h, 00h, 08h, 30h, 90h, 00h +31E4:60FB  00 00 00 00 00 08                    db       00h, 00h, 00h, 00h, 00h, 08h +31E4:6101  5B 90 00 00 00 00                    db       5Bh, 90h, 00h, 00h, 00h, 00h +31E4:6107  00 00 08 86 90 00                    db       00h, 00h, 08h, 86h, 90h, 00h +31E4:610D  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:6113  B1 90 00 00 00 00                    db      0B1h, 90h, 00h, 00h, 00h, 00h +31E4:6119  00 00 00 DC 90                       db       00h, 00h, 00h,0DCh, 90h +31E4:611E  0007[00]                             db      7 dup (0) +31E4:6125  07 91                                db       07h, 91h +31E4:6127  0007[00]                             db      7 dup (0) +31E4:612E  32 91 00 00 00 00                    db       32h, 91h, 00h, 00h, 00h, 00h +31E4:6134  00 00 00 5D 91                       db       00h, 00h, 00h, 5Dh, 91h +31E4:6139  0007[00]                             db      7 dup (0) +31E4:6140  88 91 00 00 00 00                    db       88h, 91h, 00h, 00h, 00h, 00h +31E4:6146  00 00 00 B3 91 00                    db       00h, 00h, 00h,0B3h, 91h, 00h +31E4:614C  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:6152  DE 91                                db      0DEh, 91h +31E4:6154  0007[00]                             db      7 dup (0) +31E4:615B  09 92 00 00 00 00                    db       09h, 92h, 00h, 00h, 00h, 00h +31E4:6161  00 00 00 34 92                       db       00h, 00h, 00h, 34h, 92h +31E4:6166  0007[00]                             db      7 dup (0) +31E4:616D  5F 92                                db       5Fh, 92h +31E4:616F  0007[00]                             db      7 dup (0) +31E4:6176  8A 92 00 00 00 00                    db       8Ah, 92h, 00h, 00h, 00h, 00h +31E4:617C  00 00 00 61 93                       db       00h, 00h, 00h, 61h, 93h +31E4:6181  0007[00]                             db      7 dup (0) +31E4:6188  B5 92                                db      0B5h, 92h +31E4:618A  0007[00]                             db      7 dup (0) +31E4:6191  E0 92                                db      0E0h, 92h +31E4:6193  0007[00]                             db      7 dup (0) +31E4:619A  0B 93 00 00 00 00                    db       0Bh, 93h, 00h, 00h, 00h, 00h +31E4:61A0  00 00 00 36 93 00                    db       00h, 00h, 00h, 36h, 93h, 00h +31E4:61A6  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:61AC  8C 93 00 00 00 00                    db       8Ch, 93h, 00h, 00h, 00h, 00h +31E4:61B2  00 00 00 B7 93 00                    db       00h, 00h, 00h,0B7h, 93h, 00h +31E4:61B8  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:61BE  E2 93                                db      0E2h, 93h +31E4:61C0  0007[00]                             db      7 dup (0) +31E4:61C7  0D 94 00 00 00 00                    db       0Dh, 94h, 00h, 00h, 00h, 00h +31E4:61CD  00 00 00 38 94                       db       00h, 00h, 00h, 38h, 94h +31E4:61D2  0007[00]                             db      7 dup (0) +31E4:61D9  63 94                                db       63h, 94h +31E4:61DB  0007[00]                             db      7 dup (0) +31E4:61E2  8E 94 00 00 00 00                    db       8Eh, 94h, 00h, 00h, 00h, 00h +31E4:61E8  00 00 00 B9 94 A7                    db       00h, 00h, 00h,0B9h, 94h,0A7h +31E4:61EE  0C A8 0C 00 00 00                    db       0Ch,0A8h, 0Ch, 00h, 00h, 00h +31E4:61F4  EC 94 A9 0C AA 0C                    db      0ECh, 94h,0A9h, 0Ch,0AAh, 0Ch +31E4:61FA  00 00 02 17 95                       db       00h, 00h, 02h, 17h, 95h +31E4:61FF  0007[00]                             db      7 dup (0) +31E4:6206  42 95                                db       42h, 95h +31E4:6208  0007[00]                             db      7 dup (0) +31E4:620F  6D 95                                db       6Dh, 95h +31E4:6211  0010[00]                             db      16 dup (0) +31E4:6221  98 95                                db       98h, 95h +31E4:6223  0007[00]                             db      7 dup (0) +31E4:622A  FA 8E 00 00 00 00                    db      0FAh, 8Eh, 00h, 00h, 00h, 00h +31E4:6230  00 00 00 D4                          db       00h, 00h, 00h,0D4h +31E4:6234  6A                                   db      6Ah +31E4:6235  0007[00]                             db      7 dup (0) +31E4:623C  FF FF                                db      0FFh,0FFh +31E4:623E  39                hotspot_table_3    db      39h + +31E4:623F  84 6C 40 E7 00 DC                    db       84h, 6Ch, 40h,0E7h, 00h,0DCh +31E4:6245  00 0F 38 87 6D 20                    db       00h, 0Fh, 38h, 87h, 6Dh, 20h +31E4:624B  AD 00 00 00 01 70                    db      0ADh, 00h, 00h, 00h, 01h, 70h +31E4:6251  87 6D 20 E5 00 00                    db       87h, 6Dh, 20h,0E5h, 00h, 00h +31E4:6257  00 01 6E 84 90 40                    db       00h, 01h, 6Eh, 84h, 90h, 40h +31E4:625D  E4 00 DD 00 0F AE                    db      0E4h, 00h,0DDh, 00h, 0Fh,0AEh +31E4:6263  87 91 20 DB 00 00                    db       87h, 91h, 20h,0DBh, 00h, 00h +31E4:6269  00 01 E6 87 DD 47                    db       00h, 01h,0E6h, 87h,0DDh, 47h +31E4:626F  7B 08 00 00 02 1B                    db       7Bh, 08h, 00h, 00h, 02h, 1Bh +31E4:6275  88 DD 47 7B 08 00                    db       88h,0DDh, 47h, 7Bh, 08h, 00h +31E4:627B  00 02 AE 88 DD 47                    db       00h, 02h,0AEh, 88h,0DDh, 47h +31E4:6281  31 08 00 00 02 D8                    db       31h, 08h, 00h, 00h, 02h,0D8h +31E4:6287  88 DD 47 7B 08 00                    db       88h,0DDh, 47h, 7Bh, 08h, 00h +31E4:628D  00 02 10 89 DD 47                    db       00h, 02h, 10h, 89h,0DDh, 47h +31E4:6293  7B 08 00 00 02 69                    db       7Bh, 08h, 00h, 00h, 02h, 69h +31E4:6299  8A DD 47 7B 08 00                    db       8Ah,0DDh, 47h, 7Bh, 08h, 00h +31E4:629F  00 02 98 84 49 41                    db       00h, 02h, 98h, 84h, 49h, 41h +31E4:62A5  5B 01 00 00 0F D9                    db       5Bh, 01h, 00h, 00h, 0Fh,0D9h +31E4:62AB  86 80 41 81 01 00                    db       86h, 80h, 41h, 81h, 01h, 00h +31E4:62B1  00 0F 0E 87 7D 41                    db       00h, 0Fh, 0Eh, 87h, 7Dh, 41h +31E4:62B7  62 01 00 00 0F A4                    db       62h, 01h, 00h, 00h, 0Fh,0A4h +31E4:62BD  8A DD 47 05 0C 00                    db       8Ah,0DDh, 47h, 05h, 0Ch, 00h +31E4:62C3  00 02 4B 89 DD 47                    db       00h, 02h, 4Bh, 89h,0DDh, 47h +31E4:62C9  7B 08 00 00 02 75                    db       7Bh, 08h, 00h, 00h, 02h, 75h +31E4:62CF  89 DD 47 7B 08 00                    db       89h,0DDh, 47h, 7Bh, 08h, 00h +31E4:62D5  00 02 B0 89 DD 47                    db       00h, 02h,0B0h, 89h,0DDh, 47h +31E4:62DB  7B 08 00 00 02 DA                    db       7Bh, 08h, 00h, 00h, 02h,0DAh +31E4:62E1  89 DD 47 7B 08 00                    db       89h,0DDh, 47h, 7Bh, 08h, 00h +31E4:62E7  00 02 C7 84 F3 48                    db       00h, 02h,0C7h, 84h,0F3h, 48h +31E4:62ED  F4                                   db      0F4h +31E4:62EE                       loc_2135: +31E4:62EE  08 00                                or      [bx+si],al +31E4:62F0  00 0F                                add     [bx],cl +31E4:62F2  56                                   push    si +31E4:62F3  86 7B 41                             xchg    [bp+di+41h],bh +31E4:62F6  7C 01                ;*              jl      loc_2136                ;*Jump if < +31E4:62F6  7C 01                                db       7Ch, 01h +31E4:62F8  00 00                                add     [bx+si],al +31E4:62FA  0F                   ;*              pop     cs                      ; Dangerous-8088 only +31E4:62FA  0F                                   db      0Fh +31E4:62FB  15 DD8A                              adc     ax,0DD8Ah +31E4:62FE  47                                   inc     di +31E4:62FF  7B 08                ;*              jnp     loc_2137                ;*Jump if not parity +31E4:62FF  7B 08                                db       7Bh, 08h +31E4:6301  00 00                                add     [bx+si],al +31E4:6303  02 3F                                add     bh,[bx] +31E4:6305  8A DD                                mov     bl,ch +31E4:6307  47                                   inc     di +31E4:6308  7B 08                                jnp     loc_2138                ; Jump if not parity +31E4:630A  00 00                                add     [bx+si],al +31E4:630C  02 80 5086                           add     al,data_822[bx+si]      ; (31E4:5086=5Ch) +31E4:6310  41                                   inc     cx +31E4:6311  53                                   push    bx +31E4:6312                       loc_2138:                                       ;  xref 31E4:6308 +31E4:6312  01 00                                add     [bx+si],ax +31E4:6314  00 0F                                add     [bx],cl +31E4:6316  AF                                   scasw                           ; Scan es:[di] for ax +31E4:6317  86 51 41                             xchg    [bx+di+41h],dl +31E4:631A  52                                   push    dx +31E4:631B  01 00                                add     [bx+si],ax +31E4:631D  00 0F                                add     [bx],cl +31E4:631F  CE                                   into                            ; Int 4 on overflow +31E4:6320  8A DD                                mov     bl,ch +31E4:6322  47                                   inc     di +31E4:6323  7B 08                                jnp     $+0Ah                   ; Jump if not parity +31E4:6325  00 00                                add     [bx+si],al +31E4:6327  04 09                                add     al,9 +31E4:6329  8B DD                                mov     bx,bp +31E4:632B  47                                   inc     di +31E4:632C  07                                   pop     es +31E4:632D  0C 00                                or      al,0 +31E4:632F  00 04                                add     [si],al +31E4:6331  33 8B 47DD                           xor     cx,[bp+di+47DDh] +31E4:6335  07                                   pop     es +31E4:6336  0C 00                                or      al,0 +31E4:6338  00 04                                add     [si],al +31E4:633A  5D                                   pop     bp +31E4:633B  8B DD                                mov     bx,bp +31E4:633D  47                                   inc     di +31E4:633E  07                                   pop     es +31E4:633F  0C 00                                or      al,0 +31E4:6341  00 04                                add     [si],al +31E4:6343  87 8B 47DD                           xchg    [bp+di+47DDh],cx +31E4:6347  07                                   pop     es +31E4:6348  0C 00                                or      al,0 +31E4:634A  00 04                                add     [si],al +31E4:634C  B1 8B                                mov     cl,8Bh +31E4:634E  DD 47 07                             fld     qword ptr [bx+7]        ; Push onto stack +31E4:6351  0C 00                                or      al,0 +31E4:6353  00 04                                add     [si],al +31E4:6355  DB 8B DD 47 07 0C                    db      0DBh, 8Bh,0DDh, 47h, 07h, 0Ch +31E4:635B  00 00 04 F1 84 5D                    db       00h, 00h, 04h,0F1h, 84h, 5Dh +31E4:6361  41 5E 01 00 00 0F                    db       41h, 5Eh, 01h, 00h, 00h, 0Fh +31E4:6367  1B 85 4E 4B 4D 0B                    db       1Bh, 85h, 4Eh, 4Bh, 4Dh, 0Bh +31E4:636D  00 00 0F 45 85 65                    db       00h, 00h, 0Fh, 45h, 85h, 65h +31E4:6373  0B 66 0B 00 00 0F                    db       0Bh, 66h, 0Bh, 00h, 00h, 0Fh +31E4:6379  6F 85 67 0B 68 0B                    db       6Fh, 85h, 67h, 0Bh, 68h, 0Bh +31E4:637F  00 00 0F 99 85 7E                    db       00h, 00h, 0Fh, 99h, 85h, 7Eh +31E4:6385  41 7F 01 00 00 0F                    db       41h, 7Fh, 01h, 00h, 00h, 0Fh +31E4:638B  C8 85 FE 2F 15 10                    db      0C8h, 85h,0FEh, 2Fh, 15h, 10h +31E4:6391  14 10 0F F2 85 FF                    db       14h, 10h, 0Fh,0F2h, 85h,0FFh +31E4:6397  2F 00 10 00 00 08                    db       2Fh, 00h, 10h, 00h, 00h, 08h +31E4:639D  27 86 6B 21 6C 01                    db       27h, 86h, 6Bh, 21h, 6Ch, 01h +31E4:63A3  00 00 0F 1C 86 74                    db       00h, 00h, 0Fh, 1Ch, 86h, 74h +31E4:63A9  81 75 01 00 00 0F                    db       81h, 75h, 01h, 00h, 00h, 0Fh +31E4:63AF  FF FF                                db      0FFh,0FFh + +31E4:63B1  A3              hotspot_table_4      db      0A3h + +31E4:63B2  6C 86 40 9A 00 00                    db       6Ch, 86h, 40h, 9Ah, 00h, 00h +31E4:63B8  00 01 6F 6C EA 40                    db       00h, 01h, 6Fh, 6Ch,0EAh, 40h +31E4:63BE  EB 00 00 00 01 89                    db      0EBh, 00h, 00h, 00h, 01h, 89h +31E4:63C4  6C E8 40 E9 00 00                    db       6Ch,0E8h, 40h,0E9h, 00h, 00h +31E4:63CA  00 01 65 6C 04 41                    db       00h, 01h, 65h, 6Ch, 04h, 41h +31E4:63D0  05 01 00 00 01 56                    db       05h, 01h, 00h, 00h, 01h, 56h +31E4:63D6  6C 06 21 07 01 00                    db       6Ch, 06h, 21h, 07h, 01h, 00h +31E4:63DC  00 01 44 6C 1A 21                    db       00h, 01h, 44h, 6Ch, 1Ah, 21h +31E4:63E2  1B 01 00 00 01 35                    db       1Bh, 01h, 00h, 00h, 01h, 35h +31E4:63E8  6C 10 21 0D 01 00                    db       6Ch, 10h, 21h, 0Dh, 01h, 00h +31E4:63EE  00 01 26 6C 0F 21                    db       00h, 01h, 26h, 6Ch, 0Fh, 21h +31E4:63F4  0E 01 00 00 01 0D                    db       0Eh, 01h, 00h, 00h, 01h, 0Dh +31E4:63FA  6C 24 21 25 01 00                    db       6Ch, 24h, 21h, 25h, 01h, 00h +31E4:6400  00 01 1C 6C 11 21                    db       00h, 01h, 1Ch, 6Ch, 11h, 21h +31E4:6406  12 01 00 00 01 FB                    db       12h, 01h, 00h, 00h, 01h,0FBh +31E4:640C  6B 21 21 22 01 00                    db       6Bh, 21h, 21h, 22h, 01h, 00h +31E4:6412  00 01 E9 6B EC 27                    db       00h, 01h,0E9h, 6Bh,0ECh, 27h +31E4:6418  ED 07 00 00 02 D7                    db      0EDh, 07h, 00h, 00h, 02h,0D7h +31E4:641E  6B 33 48 32 08 00                    db       6Bh, 33h, 48h, 32h, 08h, 00h +31E4:6424  00 02 C4 6B EA 40                    db       00h, 02h,0C4h, 6Bh,0EAh, 40h +31E4:642A  61 08 00 00 02 BA                    db       61h, 08h, 00h, 00h, 02h,0BAh +31E4:6430  6B 2F 08 2D 08 00                    db       6Bh, 2Fh, 08h, 2Dh, 08h, 00h +31E4:6436  00 02 B0 6B 2F 08                    db       00h, 02h,0B0h, 6Bh, 2Fh, 08h +31E4:643C  74 08 00 00 02 A6                    db       74h, 08h, 00h, 00h, 02h,0A6h +31E4:6442  6B 71 48 7E 08 00                    db       6Bh, 71h, 48h, 7Eh, 08h, 00h +31E4:6448  00 02 A6 6B 71 08                    db       00h, 02h,0A6h, 6Bh, 71h, 08h +31E4:644E  7E 08 00 00 02 9C                    db       7Eh, 08h, 00h, 00h, 02h, 9Ch +31E4:6454  6B 7F 08 68 08 00                    db       6Bh, 7Fh, 08h, 68h, 08h, 00h +31E4:645A  00 02 88 6B 7F 08                    db       00h, 02h, 88h, 6Bh, 7Fh, 08h +31E4:6460  82 08 00 00 02 92                    db       82h, 08h, 00h, 00h, 02h, 92h +31E4:6466  6B 83 08 6E 08 00                    db       6Bh, 83h, 08h, 6Eh, 08h, 00h +31E4:646C  00 02 7E 6B 71 08                    db       00h, 02h, 7Eh, 6Bh, 71h, 08h +31E4:6472  85 08 00 00 02 74                    db       85h, 08h, 00h, 00h, 02h, 74h +31E4:6478  6B 83 08 87 08 00                    db       6Bh, 83h, 08h, 87h, 08h, 00h +31E4:647E  00 02 6A 6B 83 08                    db       00h, 02h, 6Ah, 6Bh, 83h, 08h +31E4:6484  89 08 00 00 02 60                    db       89h, 08h, 00h, 00h, 02h, 60h +31E4:648A  6B 30 08 65 08 00                    db       6Bh, 30h, 08h, 65h, 08h, 00h +31E4:6490  00 02 56 6B 30 08                    db       00h, 02h, 56h, 6Bh, 30h, 08h +31E4:6496  2E 08 00 00 02                       db       2Eh, 08h, 00h, 00h, 02h +31E4:649B  4C 6B                                db       4Ch, 6Bh +31E4:649D  0009[00]                             db      9 dup (0) +31E4:64A6  C8 09 C9 09 00 00                    db      0C8h, 09h,0C9h, 09h, 00h, 00h +31E4:64AC  00 B4 6C 2F 08 FB                    db       00h,0B4h, 6Ch, 2Fh, 08h,0FBh +31E4:64B2  0B 00 00 02 14 6B                    db       0Bh, 00h, 00h, 02h, 14h, 6Bh +31E4:64B8  E0 4F E3 0F 00 00                    db      0E0h, 4Fh,0E3h, 0Fh, 00h, 00h +31E4:64BE  08 3D 6B E1 0F E2                    db       08h, 3Dh, 6Bh,0E1h, 0Fh,0E2h +31E4:64C4  0F 00 00 08 29 6B                    db       0Fh, 00h, 00h, 08h, 29h, 6Bh +31E4:64CA  E1 0F E6 0F 00 00                    db      0E1h, 0Fh,0E6h, 0Fh, 00h, 00h +31E4:64D0  08 29 6B E1 0F E6                    db       08h, 29h, 6Bh,0E1h, 0Fh,0E6h +31E4:64D6  0F 00 00 08 29 6B                    db       0Fh, 00h, 00h, 08h, 29h, 6Bh +31E4:64DC  E1 0F E6 0F 00 00                    db      0E1h, 0Fh,0E6h, 0Fh, 00h, 00h +31E4:64E2  08 29 6B E1 0F E6                    db       08h, 29h, 6Bh,0E1h, 0Fh,0E6h +31E4:64E8  0F 00 00 08 29 6B                    db       0Fh, 00h, 00h, 08h, 29h, 6Bh +31E4:64EE  E1 0F E6 0F 00 00                    db      0E1h, 0Fh,0E6h, 0Fh, 00h, 00h +31E4:64F4  08 33 6B E1 0F E6                    db       08h, 33h, 6Bh,0E1h, 0Fh,0E6h +31E4:64FA  0F 00 00 08 33 6B                    db       0Fh, 00h, 00h, 08h, 33h, 6Bh +31E4:6500  E1 0F E6 0F 00 00                    db      0E1h, 0Fh,0E6h, 0Fh, 00h, 00h +31E4:6506  08 33 6B E1 0F E6                    db       08h, 33h, 6Bh,0E1h, 0Fh,0E6h +31E4:650C  0F 00 00 08 A4 6A                    db       0Fh, 00h, 00h, 08h,0A4h, 6Ah +31E4:6512  DD 47 7B 08 00 00                    db      0DDh, 47h, 7Bh, 08h, 00h, 00h +31E4:6518  01 C2 6A A7 0B A3                    db       01h,0C2h, 6Ah,0A7h, 0Bh,0A3h +31E4:651E                       loc_2139: +31E4:651E  0B 00                                or      ax,[bx+si] +31E4:6520  00 02                                add     [bp+si],al +31E4:6522  C2 A76A                              retn    0A76Ah +                                                                                ;* No entry point to code +31E4:6525  0B A4 000B                           or      sp,word ptr copyright+0Bh[si] ; (31E4:000B=7665h) +31E4:6529  00 02                                add     [bp+si],al +31E4:652B  B8 A86A                              mov     ax,0A86Ah +31E4:652E  0B A5 000B                           or      sp,word ptr copyright+0Bh[di] ; (31E4:000B=7665h) +31E4:6532  00 02                                add     [bp+si],al +31E4:6534  B8 A86A                              mov     ax,0A86Ah +31E4:6537  0B A6 000B                           or      sp,[bp+0Bh] +31E4:653B  00 02                                add     [bp+si],al +31E4:653D  AE                                   scasb                           ; Scan es:[di] for al +31E4:653E  6A 83 08 FF 0B 00                    db       6Ah, 83h, 08h,0FFh, 0Bh, 00h +31E4:6544  00 00 9A 6A DD 47                    db       00h, 00h, 9Ah, 6Ah,0DDh, 47h +31E4:654A  7B 08 00 00 00 7F                    db       7Bh, 08h, 00h, 00h, 00h, 7Fh +31E4:6550  6A 85 40 AE 00 00                    db       6Ah, 85h, 40h,0AEh, 00h, 00h +31E4:6556  00 01 70 6A 54 0C                    db       00h, 01h, 70h, 6Ah, 54h, 0Ch +31E4:655C  55 0C 00 00 02 5E                    db       55h, 0Ch, 00h, 00h, 02h, 5Eh +31E4:6562  6A 58 0C 79 0C 00                    db       6Ah, 58h, 0Ch, 79h, 0Ch, 00h +31E4:6568  00 02 54 6A EE 40                    db       00h, 02h, 54h, 6Ah,0EEh, 40h +31E4:656E  61 0C 00 00 02 54                    db       61h, 0Ch, 00h, 00h, 02h, 54h +31E4:6574  6A 7D 0C 60 0C 00                    db       6Ah, 7Dh, 0Ch, 60h, 0Ch, 00h +31E4:657A  00 02 54 6A 7E 0C                    db       00h, 02h, 54h, 6Ah, 7Eh, 0Ch +31E4:6580  5F 0C 00 00 02 54                    db       5Fh, 0Ch, 00h, 00h, 02h, 54h +31E4:6586  6A 7F 0C 5E 0C 00                    db       6Ah, 7Fh, 0Ch, 5Eh, 0Ch, 00h +31E4:658C  00 02 54 6A 80 0C                    db       00h, 02h, 54h, 6Ah, 80h, 0Ch +31E4:6592  5C 0C 00 00 02 45                    db       5Ch, 0Ch, 00h, 00h, 02h, 45h +31E4:6598  6A FC 0F FD 0F 00                    db       6Ah,0FCh, 0Fh,0FDh, 0Fh, 00h +31E4:659E  00 08 3B 6A 02 30                    db       00h, 08h, 3Bh, 6Ah, 02h, 30h +31E4:65A4  03 10 00 00 08 31                    db       03h, 10h, 00h, 00h, 08h, 31h +31E4:65AA  6A 04 30 05 10 00                    db       6Ah, 04h, 30h, 05h, 10h, 00h +31E4:65B0  00 08 27 6A 90 20                    db       00h, 08h, 27h, 6Ah, 90h, 20h +31E4:65B6  06 10 00 00 08 27                    db       06h, 10h, 00h, 00h, 08h, 27h +31E4:65BC  6A 07 10 08 10 00                    db       6Ah, 07h, 10h, 08h, 10h, 00h +31E4:65C2  00 08 27 6A 09 10                    db       00h, 08h, 27h, 6Ah, 09h, 10h +31E4:65C8  0A 10 00 00 08 27                    db       0Ah, 10h, 00h, 00h, 08h, 27h +31E4:65CE  6A 0B 10 0C 10 00                    db       6Ah, 0Bh, 10h, 0Ch, 10h, 00h +31E4:65D4  00 08 27 6A 0D 10                    db       00h, 08h, 27h, 6Ah, 0Dh, 10h +31E4:65DA  0E 10 00 00 02 13                    db       0Eh, 10h, 00h, 00h, 02h, 13h +31E4:65E0  6A 19 10 1A 10 00                    db       6Ah, 19h, 10h, 1Ah, 10h, 00h +31E4:65E6  00 08 1D 6A F3 08                    db       00h, 08h, 1Dh, 6Ah,0F3h, 08h +31E4:65EC  B8 0C 00 00 02 FF                    db      0B8h, 0Ch, 00h, 00h, 02h,0FFh +31E4:65F2  FF                                   db      0FFh +              player_action_support_record: +31E4:65F3  03E0[00]                             db      992 dup (0) + +31E4:69D3  20 00                                db       20h, 00h +31E4:69D5  0042[00]                             db      66 dup (0) +31E4:6A17  57 6D 2D 00 00 00                    db       57h, 6Dh, 2Dh, 00h, 00h, 00h +31E4:6A1D  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:6A23  24 00 00 00 00 00                    db       24h, 00h, 00h, 00h, 00h, 00h +31E4:6A29  00 00 57 6D 2B 00                    db       00h, 00h, 57h, 6Dh, 2Bh, 00h +31E4:6A2F  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:6A35  57 6D 2B 00 00 00                    db       57h, 6Dh, 2Bh, 00h, 00h, 00h +31E4:6A3B  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:6A41  2B 00 00 00 00 00                    db       2Bh, 00h, 00h, 00h, 00h, 00h +31E4:6A47  00 00 4F 6A 2B 00                    db       00h, 00h, 4Fh, 6Ah, 2Bh, 00h +31E4:6A4D  00 00 01 00 10 BD                    db       00h, 00h, 01h, 00h, 10h,0BDh +31E4:6A53  12 00 00 00 00 57                    db       12h, 00h, 00h, 00h, 00h, 57h +31E4:6A59  6D 22 00 00 00 00                    db       6Dh, 22h, 00h, 00h, 00h, 00h +31E4:6A5F  00 00 00 57 6D 09                    db       00h, 00h, 00h, 57h, 6Dh, 09h +31E4:6A65  00 00 00 02 00 01                    db       00h, 00h, 00h, 02h, 00h, 01h +31E4:6A6B  0B 80 10 2F 0E 01                    db       0Bh, 80h, 10h, 2Fh, 0Eh, 01h +31E4:6A71  02 00 00 68 6A 1E                    db       02h, 00h, 00h, 68h, 6Ah, 1Eh +31E4:6A77  00 01 00 01 00 11                    db       00h, 01h, 00h, 01h, 00h, 11h +31E4:6A7D  1F 02 00 00 01 00                    db       1Fh, 02h, 00h, 00h, 01h, 00h +31E4:6A83  7A 6A 01 00 03 00                    db       7Ah, 6Ah, 01h, 00h, 03h, 00h +31E4:6A89  05 00 01 10 80 06                    db       05h, 00h, 01h, 10h, 80h, 06h +31E4:6A8F  06 80 07 07 00 08                    db       06h, 80h, 07h, 07h, 00h, 08h +31E4:6A95  36 09 09 36 09 E1                    db       36h, 09h, 09h, 36h, 09h,0E1h +31E4:6A9B  03 00 00 89 6A 0C                    db       03h, 00h, 00h, 89h, 6Ah, 0Ch +31E4:6AA1  00 00 00 E0 01 00                    db       00h, 00h, 00h,0E0h, 01h, 00h +31E4:6AA7  00 89 6A 04                          db       00h, 89h, 6Ah, 04h +31E4:6AAB  0007[00]                             db      7 dup (0) +31E4:6AB2  57 6D 0C 00 00 00                    db       57h, 6Dh, 0Ch, 00h, 00h, 00h +31E4:6AB8  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:6ABE  23 00 00 00 00 00                    db       23h, 00h, 00h, 00h, 00h, 00h +31E4:6AC4  00 00 57 6D 13 00                    db       00h, 00h, 57h, 6Dh, 13h, 00h +31E4:6ACA  00 00 02 00 0A 66                    db       00h, 00h, 02h, 00h, 0Ah, 66h +31E4:6AD0  12 01 0B 80                          db       12h, 01h, 0Bh, 80h + +; Hotspot entry 46Bh contains a loading routine offset for the copy protection check + +31E4:6AD4  39 41 00 00 CC 6A                    db       39h, 41h, 00h, 00h, 0cch, 6ah +31E4:6ADA  FF FF 00                             db      0FFh,0FFh, 00h +31E4:6ADD  3AFE                                 dw       offset copy_protection_check +31E4:6ADF  00 00 64                             db       00h, 00h, 64h +31E4:6AE2  00 64 00 10 00 01                    db       00h, 64h, 00h, 10h, 00h, 01h +31E4:6AE8  00 03 01 02 00 40                    db       00h, 03h, 01h, 02h, 00h, 40h +31E4:6AEE  CC 6A 02 00 00 72                    db      0CCh, 6Ah, 02h, 00h, 00h, 72h +31E4:6AF4  71 00 00 64 00 64                    db       71h, 00h, 00h, 64h, 00h, 64h +31E4:6AFA  00 10 00 01 00 03                    db       00h, 10h, 00h, 01h, 00h, 03h +31E4:6B00  00 BD 41 02 00 02                    db       00h,0BDh, 41h, 02h, 00h, 02h +31E4:6B06  00 02 00 00 00 A9                    db       00h, 02h, 00h, 00h, 00h,0A9h +31E4:6B0C  58 00 00 00 00 00                    db       58h, 00h, 00h, 00h, 00h, 00h +31E4:6B12  00 00 09 02 00 40                    db       00h, 00h, 09h, 02h, 00h, 40h +31E4:6B18  1E 6B 2A 00 02 00                    db       1Eh, 6Bh, 2Ah, 00h, 02h, 00h +31E4:6B1E  03 00 0A 50 04 04                    db       03h, 00h, 0Ah, 50h, 04h, 04h +31E4:6B24  30 04 01 30 04 00                    db       30h, 04h, 01h, 30h, 04h, 00h +31E4:6B2A  00 00 00 57 6D 2A                    db       00h, 00h, 00h, 57h, 6Dh, 2Ah +31E4:6B30  00 02 00 00 00 00                    db       00h, 02h, 00h, 00h, 00h, 00h +31E4:6B36  00 57 6D 2A 00 03                    db       00h, 57h, 6Dh, 2Ah, 00h, 03h +31E4:6B3C  00 00 00 00 00 47                    db       00h, 00h, 00h, 00h, 00h, 47h +31E4:6B42  6B 2A 00 02 00 01                    db       6Bh, 2Ah, 00h, 02h, 00h, 01h +31E4:6B48  00 10 B6 12 00 00                    db       00h, 10h,0B6h, 12h, 00h, 00h +31E4:6B4E  00 00 57 6D 22 00                    db       00h, 00h, 57h, 6Dh, 22h, 00h +31E4:6B54  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +31E4:6B5A  57 6D 0A 00 03 00                    db       57h, 6Dh, 0Ah, 00h, 03h, 00h +31E4:6B60  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:6B66  0C 00 00 00 00 00                    db       0Ch, 00h, 00h, 00h, 00h, 00h +31E4:6B6C  00 00 57 6D 1D 00                    db       00h, 00h, 57h, 6Dh, 1Dh, 00h +31E4:6B72  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:6B78  57 6D 1C 00 00 00                    db       57h, 6Dh, 1Ch, 00h, 00h, 00h +31E4:6B7E  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:6B84  14 00 00 00 00 00                    db       14h, 00h, 00h, 00h, 00h, 00h +31E4:6B8A  00 00 57 6D 11 00                    db       00h, 00h, 57h, 6Dh, 11h, 00h +31E4:6B90  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:6B96  57 6D 11 00 00 00                    db       57h, 6Dh, 11h, 00h, 00h, 00h +31E4:6B9C  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:6BA2  0E                                   db       0Eh +31E4:6BA3  0007[00]                             db      7 dup (0) +31E4:6BAA  57 6D 09 00 00 00                    db       57h, 6Dh, 09h, 00h, 00h, 00h +31E4:6BB0  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:6BB6  13 00 00 00 00 00                    db       13h, 00h, 00h, 00h, 00h, 00h +31E4:6BBC  00 00 57 6D 0A 00                    db       00h, 00h, 57h, 6Dh, 0Ah, 00h +31E4:6BC2  00 00 00 02 00 50                    db       00h, 00h, 00h, 02h, 00h, 50h +31E4:6BC8  CE 6B 1E 00 01 00                    db      0CEh, 6Bh, 1Eh, 00h, 01h, 00h +31E4:6BCE  02 00 0A 4F 0B 01                    db       02h, 00h, 0Ah, 4Fh, 0Bh, 01h +31E4:6BD4  00 0B 80 01 02 00                    db       00h, 0Bh, 80h, 01h, 02h, 00h +31E4:6BDA  40 E1 6B 13 00 00                    db       40h,0E1h, 6Bh, 13h, 00h, 00h +31E4:6BE0  00 02 00 0A 81 09                    db       00h, 02h, 00h, 0Ah, 81h, 09h +31E4:6BE6  01 0B 80 01 02 00                    db       01h, 0Bh, 80h, 01h, 02h, 00h +31E4:6BEC  00 F3 6B 1C 00 01                    db       00h,0F3h, 6Bh, 1Ch, 00h, 01h +31E4:6BF2  00 02 00 01 50 0D                    db       00h, 02h, 00h, 01h, 50h, 0Dh +31E4:6BF8  05 FB 08 10 00 00                    db       05h,0FBh, 08h, 10h, 00h, 00h +31E4:6BFE  00 05                                db       00h, 05h +31E4:6C00  6C                   data_891        db      6Ch +31E4:6C01  04 00 03 00 02 00                    db       04h, 00h, 03h, 00h, 02h, 00h +31E4:6C07  01 12 80 05 21 80                    db       01h, 12h, 80h, 05h, 21h, 80h +31E4:6C0D  01 02 00 00 17 6C                    db       01h, 02h, 00h, 00h, 17h, 6Ch +31E4:6C13  01 00 00 00 01 00                    db       01h, 00h, 00h, 00h, 01h, 00h +31E4:6C19  01 1F 80 00 00 00                    db       01h, 1Fh, 80h, 00h, 00h, 00h +31E4:6C1F  00 57 6D 03 00 01                    db       00h, 57h, 6Dh, 03h, 00h, 01h +31E4:6C25  00 00 00 00 00 30                    db       00h, 00h, 00h, 00h, 00h, 30h +31E4:6C2B  6C 03 00 00 00 01                    db       6Ch, 03h, 00h, 00h, 00h, 01h +31E4:6C31  00 01 19 80 00 00                    db       00h, 01h, 19h, 80h, 00h, 00h +31E4:6C37  00 00 3F 6C 03 00                    db       00h, 00h, 3Fh, 6Ch, 03h, 00h +31E4:6C3D  03 00 01 00 01 19                    db       03h, 00h, 01h, 00h, 01h, 19h +31E4:6C43  80 01 02 00 00 4E                    db       80h, 01h, 02h, 00h, 00h, 4Eh +31E4:6C49  6C 04 00 01 00 02                    db       6Ch, 04h, 00h, 01h, 00h, 02h +31E4:6C4F  00 0A AD 07 01 0B                    db       00h, 0Ah,0ADh, 07h, 01h, 0Bh +31E4:6C55  80 00 00 00 00 60                    db       80h, 00h, 00h, 00h, 00h, 60h +31E4:6C5B  6C 03 00 00 00 01                    db       6Ch, 03h, 00h, 00h, 00h, 01h +31E4:6C61  00 01 12 80 00 00                    db       00h, 01h, 12h, 80h, 00h, 00h +31E4:6C67  00 00 4E 6C 02 00                    db       00h, 00h, 4Eh, 6Ch, 02h, 00h +31E4:6C6D  00 00 70 02 00 40                    db       00h, 00h, 70h, 02h, 00h, 40h +31E4:6C73  78 6C 03 00 00 05                    db       78h, 6Ch, 03h, 00h, 00h, 05h +31E4:6C79  00 06 41 2C 05 41                    db       00h, 06h, 41h, 2Ch, 05h, 41h +31E4:6C7F  2C 07 03 80 0A F8                    db       2Ch, 07h, 03h, 80h, 0Ah,0F8h +31E4:6C85  07 01 0B 80 2D 02                    db       07h, 01h, 0Bh, 80h, 2Dh, 02h +31E4:6C8B  00 00 92 6C 03 00                    db       00h, 00h, 92h, 6Ch, 03h, 00h +31E4:6C91  00 05 00 01 10 80                    db       00h, 05h, 00h, 01h, 10h, 80h +31E4:6C97  04 13 80 03 13 80                    db       04h, 13h, 80h, 03h, 13h, 80h +31E4:6C9D  06 14 80 10 AF 12                    db       06h, 14h, 80h, 10h,0AFh, 12h + +31E4:6CA3  00 00 01 00 AC 6C                    db       00h, 00h, 01h, 00h,0ACh, 6Ch +31E4:6CA9  03 00 00 02 00 01                    db       03h, 00h, 00h, 02h, 00h, 01h +31E4:6CAF  0B 80 11 21 05 00                    db       0Bh, 80h, 11h, 21h, 05h, 00h +31E4:6CB5  00 01 00 BD 6C 13                    db       00h, 01h, 00h,0BDh, 6Ch, 13h +31E4:6CBB  00 00 01 00 11 3C                    db       00h, 00h, 01h, 00h, 11h, 3Ch +31E4:6CC1  02 40 04                             db       02h, 40h, 04h +31E4:6CC4  0020[00]                             db      32 dup (0) +31E4:6CE4  0001                 data_893        dw      1 +31E4:6CE6  0009[00]                             db      9 dup (0) + +; This is the hotspot resource that represents the player character, and is returned +; when a call to get_room_resource_pointer is done with id = 3e8h + +31E4:6CEF  00             player_hotspot_rec    db      0 +31E4:6CF0  00 00 40 57 6D                       db       00h, 00h, 40h, 57h, 6Dh +31E4:6CF5  0001           player_room_number    dw      1 +31E4:6CF7  00 67 71                             db       00h, 67h, 71h +31E4:6CFA  0000                 data_897        dw      0 +31E4:6CFC  0110                 data_898        dw      110h +31E4:6CFE  00FA                 data_899        dw      0FAh +31E4:6D00  20 00 30 00 01 01                    db       20h, 00h, 30h, 00h, 01h, 01h +31E4:6D06  5E44          player_tick_handler    dw      offset player_tick_proc +31E4:6D08  20 00 30 00 08 00                    db       20h, 00h, 30h, 00h, 08h, 00h +31E4:6D0E  00 00 80 5C 80 00                    db       00h, 00h, 80h, 5Ch, 80h, 00h +31E4:6D14  0010[00]                             db      16 dup (0) +31E4:6D24  F8 04 00                             db      0F8h, 04h, 00h +31E4:6D27  0022[00]                             db      34 dup (0) + +.... +31E4:6D31  0000                 data_6D31       dw      0 +31E4:6D33  00                   data_900        db      0 +.... +31E4:6D49  73 66                                db       73h, 66h +31E4:6D4B  0007[00]                             db      7 dup (0) +31E4:6D52  00            player_action_state    db      0 +31E4:6D53  F3 65 00 00 00 00                    db      0F3h, 65h, 00h, 00h, 00h, 00h +31E4:6D59  04 00 0B 88 17 12                    db       04h, 00h, 0Bh, 88h, 17h, 12h +31E4:6D5F  8C 1B 0D B0 1C 0C                    db       8Ch, 1Bh, 0Dh,0B0h, 1Ch, 0Ch +31E4:6D65  43 15                                db       43h, 15h + +31E4:6D67  00 0C 82 00     skorl_hotspot_rec    db       00h, 0Ch, 82h, 00h +31E4:6D6B  59 6D 03 00 00 67                    db       59h, 6Dh, 03h, 00h, 00h, 67h +31E4:6D71  71 00 00 32 01 E8                    db       71h, 00h, 00h, 32h, 01h,0E8h +31E4:6D77  00 20 00 30 00 01                    db       00h, 20h, 00h, 30h, 00h, 01h +31E4:6D7D  01 FA 7E 20 00 30                    db       01h,0FAh, 7Eh, 20h, 00h, 30h +31E4:6D83  00 08 00 00 00 BF                    db       00h, 08h, 00h, 00h, 00h,0BFh +31E4:6D89  5C 9E                                db       5Ch, 9Eh +31E4:6D8B  0009[00]                             db      9 dup (0) +31E4:6D94  C2 15 00 00 2C 01                    db      0C2h, 15h, 00h, 00h, 2Ch, 01h +31E4:6D9A  00 00 00 04 00                       db       00h, 00h, 00h, 04h, 00h +31E4:6D9F  000D[00]                             db      13 dup (0) +31E4:6DAC  C2 14 00                             db      0C2h, 14h, 00h +31E4:6DAF  0012[00]                             db      18 dup (0) +31E4:6DC1  F3 66                                db      0F3h, 66h +31E4:6DC3  0007[00]                             db      7 dup (0) +31E4:6DCA  02 B7 35 03                          db       02h,0B7h, 35h, 03h +31E4:6DCE  0010[00]                             db      16 dup (0) +31E4:6DDE  02 00 0B 88 17 12                    db       02h, 00h, 0Bh, 88h, 17h, 12h +31E4:6DE4  8C 1B                                db       8Ch, 1Bh + +                  village_skorl_hotspot_rec: +31E4:6DE6  00 0C 82 00                          db       00h, 0Ch, 82h, 00h +31E4:6DEA  DE 6D 13 00 00 67                    db      0DEh, 6Dh, 13h, 00h, 00h, 67h +31E4:6DF0  71 00 00 39 01 F3                    db       71h, 00h, 00h, 39h, 01h,0F3h +31E4:6DF6  00 20 00 30 00 01                    db       00h, 20h, 00h, 30h, 00h, 01h +31E4:6DFC  01 82 4F 20 00 30                    db       01h, 82h, 4Fh, 20h, 00h, 30h +31E4:6E02  00 08 00 00 00 BF                    db       00h, 08h, 00h, 00h, 00h,0BFh +31E4:6E08  5C 9E                                db       5Ch, 9Eh +31E4:6E0A  0009[00]                             db      9 dup (0) +31E4:6E13  15 15 00 00 64 00                    db       15h, 15h, 00h, 00h, 64h, 00h +31E4:6E19  00 00 00 04 28 00                    db       00h, 00h, 00h, 04h, 28h, 00h +31E4:6E1F  00 00 00 50 0B                       db       00h, 00h, 00h, 50h, 0Bh +31E4:6E24  0007[00]                             db      7 dup (0) +31E4:6E2B  D9 14                                db      0D9h, 14h +31E4:6E2D  0013[00]                             db      19 dup (0) +31E4:6E40  33 69 00 00 00 00                    db       33h, 69h, 00h, 00h, 00h, 00h +31E4:6E46  00 00 00 02 5D 6E                    db       00h, 00h, 00h, 02h, 5Dh, 6Eh +31E4:6E4C  13 00                                db       13h, 00h +31E4:6E4E  000F[00]                             db      15 dup (0) +31E4:6E5D  1C 00 13 00 00 00                    db       1Ch, 00h, 13h, 00h, 00h, 00h +31E4:6E63  23 00 D1 1D FB 6E                    db       23h, 00h,0D1h, 1Dh,0FBh, 6Eh +31E4:6E69  21 00 4C 75 1F 00                    db       21h, 00h, 4Ch, 75h, 1Fh, 00h +31E4:6E6F  23 00 E2 1D FB 6E                    db       23h, 00h,0E2h, 1Dh,0FBh, 6Eh +31E4:6E75  1C 00 23 00 FB 6E                    db       1Ch, 00h, 23h, 00h,0FBh, 6Eh +31E4:6E7B  24 00 36 04 FB 6E                    db       24h, 00h, 36h, 04h,0FBh, 6Eh +31E4:6E81  23 00 E2 1D EF 6E                    db       23h, 00h,0E2h, 1Dh,0EFh, 6Eh +31E4:6E87  1E 00 B9 2A 25 00                    db       1Eh, 00h,0B9h, 2Ah, 25h, 00h +31E4:6E8D  36 04 AF 0A 00 00                    db       36h, 04h,0AFh, 0Ah, 00h, 00h +31E4:6E93  B0 0A 11 00 23 00                    db      0B0h, 0Ah, 11h, 00h, 23h, 00h +31E4:6E99  E2 1D EF 6E 25 00                    db      0E2h, 1Dh,0EFh, 6Eh, 25h, 00h +31E4:6E9F  36 04 B1 0A 11 00                    db       36h, 04h,0B1h, 0Ah, 11h, 00h +31E4:6EA5  B2 0A 1E 00 23 00                    db      0B2h, 0Ah, 1Eh, 00h, 23h, 00h +31E4:6EAB  E2 1D EF 6E 25 00                    db      0E2h, 1Dh,0EFh, 6Eh, 25h, 00h +31E4:6EB1  36 04 B3 0A 50 00                    db       36h, 04h,0B3h, 0Ah, 50h, 00h +31E4:6EB7  B4 0A 0A 00 23 00                    db      0B4h, 0Ah, 0Ah, 00h, 23h, 00h +31E4:6EBD  E2 1D EF 6E 25 00                    db      0E2h, 1Dh,0EFh, 6Eh, 25h, 00h +31E4:6EC3  36 04 B5 0A 00 00                    db       36h, 04h,0B5h, 0Ah, 00h, 00h +31E4:6EC9  B6 0A 37 00 23 00                    db      0B6h, 0Ah, 37h, 00h, 23h, 00h +31E4:6ECF  E2 1D EF 6E 25 00                    db      0E2h, 1Dh,0EFh, 6Eh, 25h, 00h +31E4:6ED5  36 04 B7 0A 14 00                    db       36h, 04h,0B7h, 0Ah, 14h, 00h +31E4:6EDB  B8 0A 32 00 1F 00                    db      0B8h, 0Ah, 32h, 00h, 1Fh, 00h +31E4:6EE1  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:6EE7  28 00 BE 87 22 00                    db       28h, 00h,0BEh, 87h, 22h, 00h +31E4:6EED  FB 6E 25 00 36 04                    db      0FBh, 6Eh, 25h, 00h, 36h, 04h +31E4:6EF3  AD 0A 00 00 AE 0A                    db      0ADh, 0Ah, 00h, 00h,0AEh, 0Ah +31E4:6EF9  00 00 1E 00 C0 2A                    db       00h, 00h, 1Eh, 00h,0C0h, 2Ah +31E4:6EFF  1C 00 12 00 00 00                    db       1Ch, 00h, 12h, 00h, 00h, 00h +31E4:6F05  1C 00 16 00 00 00                    db       1Ch, 00h, 16h, 00h, 00h, 00h +31E4:6F0B  1C 00 13 00 00 00                    db       1Ch, 00h, 13h, 00h, 00h, 00h +31E4:6F11  23 00 7D 1E 2B 6F                    db       23h, 00h, 7Dh, 1Eh, 2Bh, 6Fh +31E4:6F17  1C 00 1E 00 00 00                    db       1Ch, 00h, 1Eh, 00h, 00h, 00h +31E4:6F1D  1E 00 8A 1E 1C 00                    db       1Eh, 00h, 8Ah, 1Eh, 1Ch, 00h +31E4:6F23  13 00 00 00 07 00                    db       13h, 00h, 00h, 00h, 07h, 00h +31E4:6F29  17 27 1C 00 14 00                    db       17h, 27h, 1Ch, 00h, 14h, 00h +31E4:6F2F  00 00 1C 00 1B 00                    db       00h, 00h, 1Ch, 00h, 1Bh, 00h +31E4:6F35  00 00 1C 00 09 00                    db       00h, 00h, 1Ch, 00h, 09h, 00h +31E4:6F3B  00 00 20 00 1C 00                    db       00h, 00h, 20h, 00h, 1Ch, 00h +31E4:6F41  20 00 C3 6F 24 00                    db       20h, 00h,0C3h, 6Fh, 24h, 00h +31E4:6F47  29 04 C3 6F 1E 00                    db       29h, 04h,0C3h, 6Fh, 1Eh, 00h +31E4:6F4D  F4 1E 25 00 29 04                    db      0F4h, 1Eh, 25h, 00h, 29h, 04h +31E4:6F53  F2 0A 00 00 AB 0C                    db      0F2h, 0Ah, 00h, 00h,0ABh, 0Ch +31E4:6F59  00 00 25 00 29 04                    db       00h, 00h, 25h, 00h, 29h, 04h +31E4:6F5F  F4 0A 00 00 F5 0A                    db      0F4h, 0Ah, 00h, 00h,0F5h, 0Ah +31E4:6F65  00 00 25 00 29 04                    db       00h, 00h, 25h, 00h, 29h, 04h +31E4:6F6B  F6 0A 00 00 00 00                    db      0F6h, 0Ah, 00h, 00h, 00h, 00h +31E4:6F71  00 00 22 00 C3 6F                    db       00h, 00h, 22h, 00h,0C3h, 6Fh +31E4:6F77  25 00 29 04 CB 0B                    db       25h, 00h, 29h, 04h,0CBh, 0Bh +31E4:6F7D  00 00 CC 0B 00 00                    db       00h, 00h,0CCh, 0Bh, 00h, 00h +31E4:6F83  25 00 29 04 CD 0B                    db       25h, 00h, 29h, 04h,0CDh, 0Bh +31E4:6F89  00 00 CE 0B 00 00                    db       00h, 00h,0CEh, 0Bh, 00h, 00h +31E4:6F8F  25 00 29 04 CF 0B                    db       25h, 00h, 29h, 04h,0CFh, 0Bh +31E4:6F95  00 00 D0 0B 00 00                    db       00h, 00h,0D0h, 0Bh, 00h, 00h +31E4:6F9B  22 00 C3 6F 25 00                    db       22h, 00h,0C3h, 6Fh, 25h, 00h +31E4:6FA1  29 04 D1 0B 00 00                    db       29h, 04h,0D1h, 0Bh, 00h, 00h +31E4:6FA7  D2 0B 00 00 25 00                    db      0D2h, 0Bh, 00h, 00h, 25h, 00h +31E4:6FAD  29 04 D3 0B 00 00                    db       29h, 04h,0D3h, 0Bh, 00h, 00h +31E4:6FB3  D4 0B 00 00 25 00                    db      0D4h, 0Bh, 00h, 00h, 25h, 00h +31E4:6FB9  29 04 D5 0B 00 00                    db       29h, 04h,0D5h, 0Bh, 00h, 00h +31E4:6FBF  00 00 00 00 1C 00                    db       00h, 00h, 00h, 00h, 1Ch, 00h +31E4:6FC5  13 00 00 00 21 00                    db       13h, 00h, 00h, 00h, 21h, 00h +31E4:6FCB  17 27 23 00 E4 1E                    db       17h, 27h, 23h, 00h,0E4h, 1Eh +31E4:6FD1  17 6F 1C 00 0E 00                    db       17h, 6Fh, 1Ch, 00h, 0Eh, 00h +31E4:6FD7  00 00 1C 00 0A 00                    db       00h, 00h, 1Ch, 00h, 0Ah, 00h +31E4:6FDD  00 00 1C 00 0C 00                    db       00h, 00h, 1Ch, 00h, 0Ch, 00h +31E4:6FE3  00 00 22 00 5D 6E                    db       00h, 00h, 22h, 00h, 5Dh, 6Eh +31E4:6FE9  00 0C 82 00                          db       00h, 0Ch, 82h, 00h +31E4:6FED  59 6D                                db       59h, 6Dh +31E4:6FEF  0063                 data_914        dw      63h +31E4:6FF1  00 67 71 00 00 71                    db       00h, 67h, 71h, 00h, 00h, 71h +31E4:6FF7  01 18 01 20 00 30                    db       01h, 18h, 01h, 20h, 00h, 30h +31E4:6FFD  00 01 01 02 7F 20                    db       00h, 01h, 01h, 02h, 7Fh, 20h +31E4:7003  00 30 00 08 00 00                    db       00h, 30h, 00h, 08h, 00h, 00h +31E4:7009  00 BF 5C 9E                          db       00h,0BFh, 5Ch, 9Eh +31E4:700D  0009[00]                             db      9 dup (0) +31E4:7016  02 16 00 00 64 00                    db       02h, 16h, 00h, 00h, 64h, 00h +31E4:701C  00 00 00 04                          db       00h, 00h, 00h, 04h +31E4:7020  000E[00]                             db      14 dup (0) +31E4:702E  AB 14 00                             db      0ABh, 14h, 00h +31E4:7031  0012[00]                             db      18 dup (0) +31E4:7043  33 69 00 00 00 00                    db       33h, 69h, 00h, 00h, 00h, 00h +31E4:7049  00 00 00 02                          db       00h, 00h, 00h, 02h +31E4:704D  60 70 2D                             db       60h, 70h, 2Dh +31E4:7050  0010[00]                             db      16 dup (0) +31E4:7060  28 00 1C 88 21 00                    db       28h, 00h, 1Ch, 88h, 21h, 00h +31E4:7066  E8 03 21 00 E8 03                    db      0E8h, 03h, 21h, 00h,0E8h, 03h +31E4:706C  1C 00 2C 00 00 00                    db       1Ch, 00h, 2Ch, 00h, 00h, 00h +31E4:7072  21 00 E8 03 21 00                    db       21h, 00h,0E8h, 03h, 21h, 00h +31E4:7078  E8 03 1C 00 2B 00                    db      0E8h, 03h, 1Ch, 00h, 2Bh, 00h +31E4:707E  00 00 21 00 E8 03                    db       00h, 00h, 21h, 00h,0E8h, 03h +31E4:7084  21 00 E8 03 1C 00                    db       21h, 00h,0E8h, 03h, 1Ch, 00h +31E4:708A  2A 00 00 00 21 00                    db       2Ah, 00h, 00h, 00h, 21h, 00h +31E4:7090  E8 03 21 00 4E 75                    db      0E8h, 03h, 21h, 00h, 4Eh, 75h +31E4:7096  1E 00 49 1E 21 00                    db       1Eh, 00h, 49h, 1Eh, 21h, 00h +31E4:709C  E8 03 1E 00 42 1E                    db      0E8h, 03h, 1Eh, 00h, 42h, 1Eh +31E4:70A2  21 00 E8 03 20 00                    db       21h, 00h,0E8h, 03h, 20h, 00h +31E4:70A8  22 00 9E 70 03 00                    db       22h, 00h, 9Eh, 70h, 03h, 00h +31E4:70AE  0B 33 18 12 32 1C                    db       0Bh, 33h, 18h, 12h, 32h, 1Ch +31E4:70B4  0D B0 1C 00 00                       db       0Dh,0B0h, 1Ch, 00h, 00h +31E4:70B9  1C00                 data_919        dw      1C00h +31E4:70BB  0082                 data_920        dw      82h +31E4:70BD  AC 70                                db      0ACh, 70h +31E4:70BF  0005                 data_921        dw      5 +31E4:70C1  00 67 71 00 00 B4                    db       00h, 67h, 71h, 00h, 00h,0B4h +31E4:70C7  00 E9 00 20 00 30                    db       00h,0E9h, 00h, 20h, 00h, 30h +31E4:70CD  00 01 01 14 7C 20                    db       00h, 01h, 01h, 14h, 7Ch, 20h +31E4:70D3  00 30 00 08 00 00                    db       00h, 30h, 00h, 08h, 00h, 00h +31E4:70D9  00 D4 5C AD                          db       00h,0D4h, 5Ch,0ADh +31E4:70DD  0009[00]                             db      9 dup (0) +31E4:70E6  55 16 00 00 96 00                    db       55h, 16h, 00h, 00h, 96h, 00h +31E4:70EC  00 00 F6 0A 28 00                    db       00h, 00h,0F6h, 0Ah, 28h, 00h +31E4:70F2  E8                                   db      0E8h +31E4:70F3                       loc_2141: +31E4:70F3  03 00                                add     ax,[bx+si] +31E4:70F5  9C                                   pushf                           ; Push flags +31E4:70F6  00 00 00 00 00                       db      0, 0, 0, 0, 0 +31E4:70FB  002A                 data_923        dw      2Ah +31E4:70FD  05                   data_924        db      5 +31E4:70FE  F9 12 00                             db      0F9h, 12h, 00h +31E4:7101  0012[00]                             db      18 dup (0) +31E4:7113  33 67 73 67 00 00                    db       33h, 67h, 73h, 67h, 00h, 00h +31E4:7119  00 00 00 02 D3 69                    db       00h, 00h, 00h, 02h,0D3h, 69h +31E4:711F  04                                   db       04h +31E4:7120  0015[00]                             db      21 dup (0) +31E4:7135  1C 00 07 00 00 00                    db       1Ch, 00h, 07h, 00h, 00h, 00h +31E4:713B  20 00 1F 00 1E 00                    db       20h, 00h, 1Fh, 00h, 1Eh, 00h +31E4:7141  97 16 00 00 03 00                    db       97h, 16h, 00h, 00h, 03h, 00h +31E4:7147  0B 88 17 12 8C 1B                    db       0Bh, 88h, 17h, 12h, 8Ch, 1Bh +31E4:714D  0D BD 1C 00 0C 02                    db       0Dh,0BDh, 1Ch, 00h, 0Ch, 02h +31E4:7153  00 45 71 2C 00 00                    db       00h, 45h, 71h, 2Ch, 00h, 00h +31E4:7159  67 71 00 00 4A 01                    db       67h, 71h, 00h, 00h, 4Ah, 01h +31E4:715F  02 01 20 00 30 00                    db       02h, 01h, 20h, 00h, 30h, 00h +31E4:7165  01 01 82 4F 20 00                    db       01h, 01h, 82h, 4Fh, 20h, 00h +31E4:716B  30 00 08 00 00 00                    db       30h, 00h, 08h, 00h, 00h, 00h +31E4:7171  67 5D 80 00 00                       db       67h, 5Dh, 80h, 00h, 00h +31E4:7176  0007[00]                             db      7 dup (0) +31E4:717D  7B 15 00 00 96 00                    db       7Bh, 15h, 00h, 00h, 96h, 00h +31E4:7183  00 00 F8 09 00                       db       00h, 00h,0F8h, 09h, 00h +31E4:7188  000D[00]                             db      13 dup (0) +31E4:7195  88 14                                db       88h, 14h +31E4:7197  0013[00]                             db      19 dup (0) +31E4:71AA  73 69 B3 69 00 00                    db       73h, 69h,0B3h, 69h, 00h, 00h +31E4:71B0  00 00 00 02 CC                       db       00h, 00h, 00h, 02h,0CCh +31E4:71B5  71 2C                                db       71h, 2Ch +31E4:71B7  0015[00]                             db      21 dup (0) +31E4:71CC  20 00 1C 00 2A 00                    db       20h, 00h, 1Ch, 00h, 2Ah, 00h +31E4:71D2  00 00 21 00 4E 75                    db       00h, 00h, 21h, 00h, 4Eh, 75h +31E4:71D8  1F 00 1C 00 2D 00                    db       1Fh, 00h, 1Ch, 00h, 2Dh, 00h +31E4:71DE  00 00 25 00 37 04                    db       00h, 00h, 25h, 00h, 37h, 04h +31E4:71E4  A5 0F 00 00 A6 0F                    db      0A5h, 0Fh, 00h, 00h,0A6h, 0Fh +31E4:71EA  00 00 25 00 37 04                    db       00h, 00h, 25h, 00h, 37h, 04h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 464 + +31E4:71F0  A7 0F 00 00 A8 0F                    db      0A7h, 0Fh, 00h, 00h,0A8h, 0Fh +31E4:71F6  00 00 1C 00 2A 00                    db       00h, 00h, 1Ch, 00h, 2Ah, 00h +31E4:71FC  00 00 20 00 1C 00                    db       00h, 00h, 20h, 00h, 1Ch, 00h +31E4:7202  2D 00 00 00 25 00                    db       2Dh, 00h, 00h, 00h, 25h, 00h +31E4:7208  37 04 A9 0F 00 00                    db       37h, 04h,0A9h, 0Fh, 00h, 00h +31E4:720E  AA 0F 00 00 25 00                    db      0AAh, 0Fh, 00h, 00h, 25h, 00h +31E4:7214  37 04 AB 0F 00 00                    db       37h, 04h,0ABh, 0Fh, 00h, 00h +31E4:721A  AC 0F 00 00 1C 00                    db      0ACh, 0Fh, 00h, 00h, 1Ch, 00h +31E4:7220  2A 00 00 00 20 00                    db       2Ah, 00h, 00h, 00h, 20h, 00h +31E4:7226  1C 00 2D 00 00 00                    db       1Ch, 00h, 2Dh, 00h, 00h, 00h +31E4:722C  25 00 37 04 AD 0F                    db       25h, 00h, 37h, 04h,0ADh, 0Fh +31E4:7232  00 00 AE 0F 00 00                    db       00h, 00h,0AEh, 0Fh, 00h, 00h +31E4:7238  25 00 37 04 AF 0F                    db       25h, 00h, 37h, 04h,0AFh, 0Fh +31E4:723E  00 00 B0 0F 00 00                    db       00h, 00h,0B0h, 0Fh, 00h, 00h +31E4:7244  22 00 CE 71 1C 00                    db       22h, 00h,0CEh, 71h, 1Ch, 00h +31E4:724A  2D 00 00 00 25 00                    db       2Dh, 00h, 00h, 00h, 25h, 00h +31E4:7250  37 04 C9 0F 00 00                    db       37h, 04h,0C9h, 0Fh, 00h, 00h +31E4:7256  CA 0F 00 00 25 00                    db      0CAh, 0Fh, 00h, 00h, 25h, 00h +31E4:725C  37 04 CB 0F 00 00                    db       37h, 04h,0CBh, 0Fh, 00h, 00h +31E4:7262  CC 0F 00                             db      0CCh, 0Fh, 00h +31E4:7265                       loc_2142: +31E4:7265  00 1E FF00                           add     ds:data_1202e,bl        ; (31E4:FF00=2Fh) +31E4:7269  1D 0022                              sbb     ax,22h +31E4:726C  A2 1C72                              mov     byte ptr data_691,al    ; (31E4:1C72='           ') +31E4:726F  00 2D                                add     [di],ch +31E4:7271  00 00                                add     [bx+si],al +31E4:7273  00 25                                add     [di],ah +31E4:7275  00 37                                add     [bx],dh +31E4:7277  04 CD                                add     al,0CDh +31E4:7279  0F                   ;*              pop     cs                      ; Dangerous-8088 only +31E4:7279  0F                                   db      0Fh +31E4:727A  00 00                                add     [bx+si],al +31E4:727C  CE                                   into                            ; Int 4 on overflow +31E4:727D  0F                   ;*              pop     cs                      ; Dangerous-8088 only +31E4:727D  0F                                   db      0Fh +31E4:727E  00 00                                add     [bx+si],al +31E4:7280  1E                                   push    ds +31E4:7281  00 BE 1F20                           add     [bp+1F20h],bh +31E4:7285  00 22                                add     [bp+si],ah +31E4:7287  00 CE                                add     dh,cl +31E4:7289  71 1C                ;*              jno     loc_2143                ;*Jump if not overflw +31E4:7289  71 1C                                db       71h, 1Ch +31E4:728B  00 2D                                add     [di],ch +31E4:728D  00 00                                add     [bx+si],al +31E4:728F  00 25                                add     [di],ah +31E4:7291  00 37                                add     [bx],dh +31E4:7293  04 CF                                add     al,0CFh +31E4:7295  0F                   ;*              pop     cs                      ; Dangerous-8088 only +31E4:7295  0F                                   db      0Fh +31E4:7296  00 00                                add     [bx+si],al +31E4:7298  D0 0F                                ror     byte ptr [bx],1         ; Rotate +31E4:729A  00 00                                add     [bx+si],al +31E4:729C  1F                                   pop     ds +31E4:729D  00 1E FF00                           add     ds:data_1202e,bl        ; (31E4:FF00=2Fh) +31E4:72A1  1D 0020                              sbb     ax,20h +31E4:72A4  1F                                   pop     ds +31E4:72A5  00 1E 4200                           add     ds:data_62e,bl          ; (0002:4200=0C4h) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 465 + +31E4:72A9  1E                                   push    ds +31E4:72AA  20 00                                and     [bx+si],al +31E4:72AC  1F                                   pop     ds +31E4:72AD  00 20                                add     [bx+si],ah +31E4:72AF  00 1F                                add     [bx],bl +31E4:72B1  00 20                                add     [bx+si],ah +31E4:72B3  00 1F                                add     [bx],bl +31E4:72B5  00 20                                add     [bx+si],ah +31E4:72B7  00 1F                                add     [bx],bl +31E4:72B9  00 20                                add     [bx+si],ah +31E4:72BB  00 1F                                add     [bx],bl +31E4:72BD  00 20                                add     [bx+si],ah +31E4:72BF  00 1F                                add     [bx],bl +31E4:72C1  00 22                                add     [bp+si],ah +31E4:72C3  00 A2 0272                           add     [bp+si+272h],ah +31E4:72C7  00 0B                                add     [bp+di],cl +31E4:72C9  D9 17                                fst     dword ptr [bx]          ; Store st to memory +31E4:72CB  12 8C 001B                           adc     cl,ds:data_61e[si]      ; (0002:001B=0C8h) +31E4:72CF  0C 82                                or      al,82h +31E4:72D1  00 C6                                add     dh,al +31E4:72D3  72 17                ;*              jc      loc_2144                ;*Jump if carry Set +31E4:72D3  72 17                                db       72h, 17h +31E4:72D5  00 00                                add     [bx+si],al +31E4:72D7  67 71 00 00 16 01                    db       67h, 71h, 00h, 00h, 16h, 01h +31E4:72DD  F8 00 20 00 30 00                    db      0F8h, 00h, 20h, 00h, 30h, 00h +31E4:72E3  01 01 82 4F 20 00                    db       01h, 01h, 82h, 4Fh, 20h, 00h +31E4:72E9  30 00                                db       30h, 00h +31E4:72EB  08                                   db      8 +31E4:72EC  00 00 00 E9 5C 9E                    db       00h, 00h, 00h,0E9h, 5Ch, 9Eh +31E4:72F2  0009[00]                             db      9 dup (0) +31E4:72FB  54 15 00 00 96 00                    db       54h, 15h, 00h, 00h, 96h, 00h +31E4:7301  00 00 F8 04 28 00                    db       00h, 00h,0F8h, 04h, 28h, 00h +31E4:7307  00 00 00 50 0B                       db       00h, 00h, 00h, 50h, 0Bh +31E4:730C  0007[00]                             db      7 dup (0) +31E4:7313  54 13 00                             db       54h, 13h, 00h +31E4:7316  0012[00]                             db      18 dup (0) +31E4:7328  93 67                                db       93h, 67h +31E4:732A  0007[00]                             db      7 dup (0) +31E4:7331  02 4A 73 17                          db       02h, 4Ah, 73h, 17h +31E4:7335  0015[00]                             db      21 dup (0) +31E4:734A  1C 00 1C 00 00 00                    db       1Ch, 00h, 1Ch, 00h, 00h, 00h +31E4:7350  21 00 3B 75 21 00                    db       21h, 00h, 3Bh, 75h, 21h, 00h +31E4:7356  E5 03 1F 00 05 00                    db      0E5h, 03h, 1Fh, 00h, 05h, 00h +31E4:735C  3B 75 05 00 3B 75                    db       3Bh, 75h, 05h, 00h, 3Bh, 75h +31E4:7362  05 00 3B 75 05 00                    db       05h, 00h, 3Bh, 75h, 05h, 00h +31E4:7368  3B 75 05 00 3B 75                    db       3Bh, 75h, 05h, 00h, 3Bh, 75h +31E4:736E  21 00                                db       21h, 00h +31E4:7370                       loc_2145: +31E4:7370  3B 75 21                             cmp     si,[di+21h] +31E4:7373  00 E5                                add     ch,ah +31E4:7375  03 1F                                add     bx,[bx] +31E4:7377  00 05                                add     [di],al +31E4:7379  00 3B                                add     [bp+di],bh +31E4:737B  75 05                ;*              jnz     loc_2146                ;*Jump if not zero +31E4:737B  75 05                                db       75h, 05h +31E4:737D  00 3B                                add     [bp+di],bh +31E4:737F  75 05                ;*              jnz     loc_2147                ;*Jump if not zero +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 466 + +31E4:737F  75 05                                db       75h, 05h +31E4:7381  00 3B                                add     [bp+di],bh +31E4:7383  75 05                ;*              jnz     loc_2148                ;*Jump if not zero +31E4:7383  75 05                                db       75h, 05h +31E4:7385  00 3B                                add     [bp+di],bh +31E4:7387  75 05                ;*              jnz     loc_2149                ;*Jump if not zero +31E4:7387  75 05                                db       75h, 05h +31E4:7389  00 3B                                add     [bp+di],bh +31E4:738B  75 21                ;*              jnz     loc_2156                ;*Jump if not zero +31E4:738B  75 21                                db       75h, 21h +31E4:738D  00 3B                                add     [bp+di],bh +31E4:738F  75 21                ;*              jnz     loc_2157                ;*Jump if not zero +31E4:738F  75 21                                db       75h, 21h +31E4:7391  00 E5                                add     ch,ah +31E4:7393  03 1F                                add     bx,[bx] +31E4:7395  00 05                                add     [di],al +31E4:7397  00 3B                                add     [bp+di],bh +31E4:7399  75 05                ;*              jnz     loc_2152                ;*Jump if not zero +31E4:7399  75 05                                db       75h, 05h +31E4:739B  00 3B                                add     [bp+di],bh +31E4:739D  75 05                ;*              jnz     loc_2153                ;*Jump if not zero +31E4:739D  75 05                                db       75h, 05h +31E4:739F  00 3B                                add     [bp+di],bh +31E4:73A1  75 05                ;*              jnz     loc_2154                ;*Jump if not zero +31E4:73A1  75 05                                db       75h, 05h +31E4:73A3  00 3B                                add     [bp+di],bh +31E4:73A5  75 05                ;*              jnz     loc_2155                ;*Jump if not zero +31E4:73A5  75 05                                db       75h, 05h +31E4:73A7  00 3B                                add     [bp+di],bh +31E4:73A9  75 21                ;*              jnz     loc_2162                ;*Jump if not zero +31E4:73A9  75 21                                db       75h, 21h +31E4:73AB  00 3B                                add     [bp+di],bh +31E4:73AD  75 21                ;*              jnz     loc_2163                ;*Jump if not zero +31E4:73AD  75 21                                db       75h, 21h +31E4:73AF  00 E5                                add     ch,ah +31E4:73B1  03 1F                                add     bx,[bx] +31E4:73B3  00 05                                add     [di],al +31E4:73B5  00 3B                                add     [bp+di],bh +31E4:73B7  75 05                ;*              jnz     loc_2158                ;*Jump if not zero +31E4:73B7  75 05                                db       75h, 05h +31E4:73B9  00 3B                                add     [bp+di],bh +31E4:73BB  75 05                ;*              jnz     loc_2159                ;*Jump if not zero +31E4:73BB  75 05                                db       75h, 05h +31E4:73BD  00 3B                                add     [bp+di],bh +31E4:73BF  75 05                ;*              jnz     loc_2160                ;*Jump if not zero +31E4:73BF  75 05                                db       75h, 05h +31E4:73C1  00 3B                                add     [bp+di],bh +31E4:73C3  75 05                ;*              jnz     loc_2161                ;*Jump if not zero +31E4:73C3  75 05                                db       75h, 05h +31E4:73C5  00 3B                                add     [bp+di],bh +31E4:73C7  75 21                ;*              jnz     loc_2167                ;*Jump if not zero +31E4:73C7  75 21                                db       75h, 21h +31E4:73C9  00 E5                                add     ch,ah +31E4:73CB  03 1F                                add     bx,[bx] +31E4:73CD  00 05                                add     [di],al +31E4:73CF  00 3B                                add     [bp+di],bh +31E4:73D1  75 05                ;*              jnz     loc_2164                ;*Jump if not zero +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 467 + +31E4:73D1  75 05                                db       75h, 05h +31E4:73D3  00 3B                                add     [bp+di],bh +31E4:73D5  75 20                                jnz     loc_2168                ; Jump if not zero +31E4:73D7  00 05                                add     [di],al +31E4:73D9  00 3B                                add     [bp+di],bh +31E4:73DB  75 05                ;*              jnz     loc_2165                ;*Jump if not zero +31E4:73DB  75 05                                db       75h, 05h +31E4:73DD  00 3B                                add     [bp+di],bh +31E4:73DF  75 05                ;*              jnz     loc_2166                ;*Jump if not zero +31E4:73DF  75 05                                db       75h, 05h +31E4:73E1  00 3B                                add     [bp+di],bh +31E4:73E3  75 05                ;*              jnz     loc_2167                ;*Jump if not zero +31E4:73E3  75 05                                db       75h, 05h +31E4:73E5  00 3B                                add     [bp+di],bh +31E4:73E7  75 21                ;*              jnz     loc_2174                ;*Jump if not zero +31E4:73E7  75 21                                db       75h, 21h +31E4:73E9  00 E5                                add     ch,ah +31E4:73EB  03 1F                                add     bx,[bx] +31E4:73ED  00 05                                add     [di],al +31E4:73EF  00 3B                                add     [bp+di],bh +31E4:73F1  75 05                ;*              jnz     loc_2169                ;*Jump if not zero +31E4:73F1  75 05                                db       75h, 05h +31E4:73F3  00 3B                                add     [bp+di],bh +31E4:73F5  75 05                ;*              jnz     loc_2170                ;*Jump if not zero +31E4:73F5  75 05                                db       75h, 05h +31E4:73F7                       loc_2168:                                       ;  xref 31E4:73D5 +31E4:73F7  00 3B                                add     [bp+di],bh +31E4:73F9  75 05                ;*              jnz     loc_2171                ;*Jump if not zero +31E4:73F9  75 05                                db       75h, 05h +31E4:73FB  00 3B                                add     [bp+di],bh +31E4:73FD  75 05                ;*              jnz     loc_2172                ;*Jump if not zero +31E4:73FD  75 05                                db       75h, 05h +31E4:73FF  00 3B                                add     [bp+di],bh +31E4:7401  75 05                ;*              jnz     loc_2173                ;*Jump if not zero +31E4:7401  75 05                                db       75h, 05h +31E4:7403  00 3B                                add     [bp+di],bh +31E4:7405  75 05                ;*              jnz     loc_2175                ;*Jump if not zero +31E4:7405  75 05                                db       75h, 05h +31E4:7407  00 3B                                add     [bp+di],bh +31E4:7409  75 05                ;*              jnz     loc_2176                ;*Jump if not zero +31E4:7409  75 05                                db       75h, 05h +31E4:740B  00 3B                                add     [bp+di],bh +31E4:740D  75 1C                                jnz     loc_2177                ; Jump if not zero +31E4:740F  00 12                                add     [bp+si],dl +31E4:7411  00 4A 73                             add     [bp+si+73h],cl +31E4:7414  20 00                                and     [bx+si],al +31E4:7416  1F                                   pop     ds +31E4:7417  00 1F                                add     [bx],bl +31E4:7419  00 1F                                add     [bx],bl +31E4:741B  00 1C                                add     [si],bl +31E4:741D  00 1C                                add     [si],bl +31E4:741F  00 EC                                add     ah,ch +31E4:7421  76 21                ;*              jbe     loc_2182                ;*Jump if below or = +31E4:7421  76 21                                db       76h, 21h +31E4:7423  00 3B                                add     [bp+di],bh +31E4:7425  75 21                ;*              jnz     loc_2184                ;*Jump if not zero +31E4:7425  75 21                                db       75h, 21h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 468 + +31E4:7427  00 E5                                add     ch,ah +31E4:7429  03 1F                                add     bx,[bx] +31E4:742B                       loc_2177:                                       ;  xref 31E4:740D +31E4:742B  00 05                                add     [di],al +31E4:742D  00 3B                                add     [bp+di],bh +31E4:742F  75 05                ;*              jnz     loc_2178                ;*Jump if not zero +31E4:742F  75 05                                db       75h, 05h +31E4:7431  00 3B                                add     [bp+di],bh +31E4:7433  75 05                ;*              jnz     loc_2179                ;*Jump if not zero +31E4:7433  75 05                                db       75h, 05h +31E4:7435  00 3B                                add     [bp+di],bh +31E4:7437  75 05                ;*              jnz     loc_2180                ;*Jump if not zero +31E4:7437  75 05                                db       75h, 05h +31E4:7439  00 3B                                add     [bp+di],bh +31E4:743B  75 05                ;*              jnz     loc_2181                ;*Jump if not zero +31E4:743B  75 05                                db       75h, 05h +31E4:743D  00 3B                                add     [bp+di],bh +31E4:743F  75 05                ;*              jnz     loc_2183                ;*Jump if not zero +31E4:743F  75 05                                db       75h, 05h +31E4:7441  00 3B                                add     [bp+di],bh +31E4:7443  75 21                ;*              jnz     loc_2190                ;*Jump if not zero +31E4:7443  75 21                                db       75h, 21h +31E4:7445  00 E5                                add     ch,ah +31E4:7447  03 1F                                add     bx,[bx] +31E4:7449  00 05                                add     [di],al +31E4:744B  00 3B                                add     [bp+di],bh +31E4:744D  75 05                ;*              jnz     loc_2185                ;*Jump if not zero +31E4:744D  75 05                                db       75h, 05h +31E4:744F  00 3B                                add     [bp+di],bh +31E4:7451  75 05                ;*              jnz     loc_2186                ;*Jump if not zero +31E4:7451  75 05                                db       75h, 05h +31E4:7453  00 3B                                add     [bp+di],bh +31E4:7455  75 05                ;*              jnz     loc_2187                ;*Jump if not zero +31E4:7455  75 05                                db       75h, 05h +31E4:7457  00 3B                                add     [bp+di],bh +31E4:7459  75 05                ;*              jnz     loc_2188                ;*Jump if not zero +31E4:7459  75 05                                db       75h, 05h +31E4:745B  00 3B                                add     [bp+di],bh +31E4:745D  75 05                ;*              jnz     loc_2189                ;*Jump if not zero +31E4:745D  75 05                                db       75h, 05h +31E4:745F  00 3B                                add     [bp+di],bh +31E4:7461  75 21                ;*              jnz     loc_2196                ;*Jump if not zero +31E4:7461  75 21                                db       75h, 21h +31E4:7463  00 E5                                add     ch,ah +31E4:7465  03 1F                                add     bx,[bx] +31E4:7467  00 05                                add     [di],al +31E4:7469  00 3B                                add     [bp+di],bh +31E4:746B  75 05                ;*              jnz     loc_2191                ;*Jump if not zero +31E4:746B  75 05                                db       75h, 05h +31E4:746D  00 3B                                add     [bp+di],bh +31E4:746F  75 05                ;*              jnz     loc_2192                ;*Jump if not zero +31E4:746F  75 05                                db       75h, 05h +31E4:7471  00 3B                                add     [bp+di],bh +31E4:7473  75 05                ;*              jnz     loc_2193                ;*Jump if not zero +31E4:7473  75 05                                db       75h, 05h +31E4:7475  00 3B                                add     [bp+di],bh +31E4:7477  75 05                ;*              jnz     loc_2194                ;*Jump if not zero +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 469 + +31E4:7477  75 05                                db       75h, 05h +31E4:7479  00 3B                                add     [bp+di],bh +31E4:747B  75 05                ;*              jnz     loc_2195                ;*Jump if not zero +31E4:747B  75 05                                db       75h, 05h +31E4:747D  00 3B                                add     [bp+di],bh +31E4:747F  75 1C                                jnz     loc_2198                ; Jump if not zero +31E4:7481  00 1C                                add     [si],bl +31E4:7483  00 00                                add     [bx+si],al +31E4:7485  00 21                                add     [bx+di],ah +31E4:7487  00 3B                                add     [bp+di],bh +31E4:7489  75 21                ;*              jnz     loc_2202                ;*Jump if not zero +31E4:7489  75 21                                db       75h, 21h +31E4:748B  00 E5                                add     ch,ah +31E4:748D  03 1F                                add     bx,[bx] +31E4:748F  00 05                                add     [di],al +31E4:7491  00 3B                                add     [bp+di],bh +31E4:7493  75 05                ;*              jnz     loc_2197                ;*Jump if not zero +31E4:7493  75 05                                db       75h, 05h +31E4:7495  00 3B                                add     [bp+di],bh +31E4:7497  75 05                ;*              jnz     loc_2199                ;*Jump if not zero +31E4:7497  75 05                                db       75h, 05h +31E4:7499  00 3B                                add     [bp+di],bh +31E4:749B  75 05                ;*              jnz     loc_2200                ;*Jump if not zero +31E4:749B  75 05                                db       75h, 05h +31E4:749D                       loc_2198:                                       ;  xref 31E4:747F +31E4:749D  00 3B                                add     [bp+di],bh +31E4:749F  75 05                ;*              jnz     loc_2201                ;*Jump if not zero +31E4:749F  75 05                                db       75h, 05h +31E4:74A1  00 3B                                add     [bp+di],bh +31E4:74A3  75 21                ;*              jnz     loc_2207                ;*Jump if not zero +31E4:74A3  75 21                                db       75h, 21h +31E4:74A5  00 3B                                add     [bp+di],bh +31E4:74A7  75 21                ;*              jnz     loc_2208                ;*Jump if not zero +31E4:74A7  75 21                                db       75h, 21h +31E4:74A9  00 E5                                add     ch,ah +31E4:74AB  03 1F                                add     bx,[bx] +31E4:74AD  00 05                                add     [di],al +31E4:74AF  00 3B                                add     [bp+di],bh +31E4:74B1  75 05                ;*              jnz     loc_2203                ;*Jump if not zero +31E4:74B1  75 05                                db       75h, 05h +31E4:74B3  00 3B                                add     [bp+di],bh +31E4:74B5  75 05                ;*              jnz     loc_2204                ;*Jump if not zero +31E4:74B5  75 05                                db       75h, 05h +31E4:74B7  00 3B                                add     [bp+di],bh +31E4:74B9  75 05                ;*              jnz     loc_2205                ;*Jump if not zero +31E4:74B9  75 05                                db       75h, 05h +31E4:74BB  00 3B                                add     [bp+di],bh +31E4:74BD  75 05                ;*              jnz     loc_2206                ;*Jump if not zero +31E4:74BD  75 05                                db       75h, 05h +31E4:74BF  00 3B                                add     [bp+di],bh +31E4:74C1  75 21                ;*              jnz     loc_2213                ;*Jump if not zero +31E4:74C1  75 21                                db       75h, 21h +31E4:74C3  00 3B                                add     [bp+di],bh +31E4:74C5  75 21                ;*              jnz     loc_2214                ;*Jump if not zero +31E4:74C5  75 21                                db       75h, 21h +31E4:74C7  00 E5                                add     ch,ah +31E4:74C9  03 1F                                add     bx,[bx] +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 470 + +31E4:74CB  00 05                                add     [di],al +31E4:74CD  00 3B                                add     [bp+di],bh +31E4:74CF  75 05                ;*              jnz     loc_2209                ;*Jump if not zero +31E4:74CF  75 05                                db       75h, 05h +31E4:74D1  00 3B                                add     [bp+di],bh +31E4:74D3  75 05                ;*              jnz     loc_2210                ;*Jump if not zero +31E4:74D3  75 05                                db       75h, 05h +31E4:74D5  00 3B                                add     [bp+di],bh +31E4:74D7  75 05                ;*              jnz     loc_2211                ;*Jump if not zero +31E4:74D7  75 05                                db       75h, 05h +31E4:74D9  00 3B                                add     [bp+di],bh +31E4:74DB  75 05                ;*              jnz     loc_2212                ;*Jump if not zero +31E4:74DB  75 05                                db       75h, 05h +31E4:74DD  00 3B                                add     [bp+di],bh +31E4:74DF  75 21                ;*              jnz     loc_2219                ;*Jump if not zero +31E4:74DF  75 21                                db       75h, 21h +31E4:74E1  00 3B                                add     [bp+di],bh +31E4:74E3  75 21                ;*              jnz     loc_2220                ;*Jump if not zero +31E4:74E3  75 21                                db       75h, 21h +31E4:74E5  00 E5                                add     ch,ah +31E4:74E7  03 1F                                add     bx,[bx] +31E4:74E9  00 05                                add     [di],al +31E4:74EB  00 3B                                add     [bp+di],bh +31E4:74ED  75 05                ;*              jnz     loc_2215                ;*Jump if not zero +31E4:74ED  75 05                                db       75h, 05h +31E4:74EF  00 3B                                add     [bp+di],bh +31E4:74F1  75 05                ;*              jnz     loc_2216                ;*Jump if not zero +31E4:74F1  75 05                                db       75h, 05h +31E4:74F3  00 3B                                add     [bp+di],bh +31E4:74F5  75 05                ;*              jnz     loc_2217                ;*Jump if not zero +31E4:74F5  75 05                                db       75h, 05h +31E4:74F7  00 3B                                add     [bp+di],bh +31E4:74F9  75 05                ;*              jnz     loc_2218                ;*Jump if not zero +31E4:74F9  75 05                                db       75h, 05h +31E4:74FB  00 3B                                add     [bp+di],bh +31E4:74FD  75 21                ;*              jnz     loc_2224                ;*Jump if not zero +31E4:74FD  75 21                                db       75h, 21h +31E4:74FF  00 E5                                add     ch,ah +31E4:7501  03 1F                                add     bx,[bx] +31E4:7503  00 05                                add     [di],al +31E4:7505  00 3B                                add     [bp+di],bh +31E4:7507  75 05                ;*              jnz     loc_2221                ;*Jump if not zero +31E4:7507  75 05                                db       75h, 05h +31E4:7509  00 3B                                add     [bp+di],bh +31E4:750B  75 20                                jnz     loc_2225                ; Jump if not zero +31E4:750D  00 05                                add     [di],al +31E4:750F  00 3B                                add     [bp+di],bh +31E4:7511  75 05                ;*              jnz     loc_2222                ;*Jump if not zero +31E4:7511  75 05                                db       75h, 05h +31E4:7513  00 3B                                add     [bp+di],bh +31E4:7515  75 05                ;*              jnz     loc_2223                ;*Jump if not zero +31E4:7515  75 05                                db       75h, 05h +31E4:7517  00 3B                                add     [bp+di],bh +31E4:7519  75 05                ;*              jnz     loc_2224                ;*Jump if not zero +31E4:7519  75 05                                db       75h, 05h +31E4:751B  00 3B                                add     [bp+di],bh +31E4:751D  75 21                ;*              jnz     loc_2231                ;*Jump if not zero +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 471 + +31E4:751D  75 21                                db       75h, 21h +31E4:751F  00 E5                                add     ch,ah +31E4:7521  03 1F                                add     bx,[bx] +31E4:7523  00 05                                add     [di],al +31E4:7525  00 3B                                add     [bp+di],bh +31E4:7527  75 05                ;*              jnz     loc_2226                ;*Jump if not zero +31E4:7527  75 05                                db       75h, 05h +31E4:7529  00 3B                                add     [bp+di],bh +31E4:752B  75 05                ;*              jnz     loc_2227                ;*Jump if not zero +31E4:752B  75 05                                db       75h, 05h +31E4:752D                       loc_2225:                                       ;  xref 31E4:750B +31E4:752D  00 3B                                add     [bp+di],bh +31E4:752F  75 05                ;*              jnz     loc_2228                ;*Jump if not zero +31E4:752F  75 05                                db       75h, 05h +31E4:7531  00 3B                                add     [bp+di],bh +31E4:7533  75 05                ;*              jnz     loc_2229                ;*Jump if not zero +31E4:7533  75 05                                db       75h, 05h +31E4:7535  00 3B                                add     [bp+di],bh +31E4:7537  75 05                ;*              jnz     loc_2230                ;*Jump if not zero +31E4:7537  75 05                                db       75h, 05h +31E4:7539  00 3B                                add     [bp+di],bh +31E4:753B  75 05                ;*              jnz     loc_2232                ;*Jump if not zero +31E4:753B  75 05                                db       75h, 05h +31E4:753D  00 3B                                add     [bp+di],bh +31E4:753F  75 05                ;*              jnz     loc_2233                ;*Jump if not zero +31E4:753F  75 05                                db       75h, 05h +31E4:7541  00 3B                                add     [bp+di],bh +31E4:7543  75 1C                                jnz     loc_2234                ; Jump if not zero +31E4:7545  00 12                                add     [bp+si],dl +31E4:7547  00 4A 73                             add     [bp+si+73h],cl +31E4:754A  20 00                                and     [bx+si],al +31E4:754C  1F                                   pop     ds +31E4:754D  00 1F                                add     [bx],bl +31E4:754F  00 1F                                add     [bx],bl +31E4:7551  00 1C                                add     [si],bl +31E4:7553  00 1C                                add     [si],bl +31E4:7555  00 EC                                add     ah,ch +31E4:7557  76 21                ;*              jbe     loc_2239                ;*Jump if below or = +31E4:7557  76 21                                db       76h, 21h +31E4:7559  00 3B                                add     [bp+di],bh +31E4:755B  75 21                ;*              jnz     loc_2241                ;*Jump if not zero +31E4:755B  75 21                                db       75h, 21h +31E4:755D  00 E5                                add     ch,ah +31E4:755F  03 1F                                add     bx,[bx] +31E4:7561                       loc_2234:                                       ;  xref 31E4:7543 +31E4:7561  00 05                                add     [di],al +31E4:7563  00 3B                                add     [bp+di],bh +31E4:7565  75 05                ;*              jnz     loc_2235                ;*Jump if not zero +31E4:7565  75 05                                db       75h, 05h +31E4:7567  00 3B                                add     [bp+di],bh +31E4:7569  75 05                ;*              jnz     loc_2236                ;*Jump if not zero +31E4:7569  75 05                                db       75h, 05h +31E4:756B  00 3B                                add     [bp+di],bh +31E4:756D  75 05                ;*              jnz     loc_2237                ;*Jump if not zero +31E4:756D  75 05                                db       75h, 05h +31E4:756F  00 3B                                add     [bp+di],bh +31E4:7571  75 05                ;*              jnz     loc_2238                ;*Jump if not zero +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 472 + +31E4:7571  75 05                                db       75h, 05h +31E4:7573  00 3B                                add     [bp+di],bh +31E4:7575  75 05                ;*              jnz     loc_2240                ;*Jump if not zero +31E4:7575  75 05                                db       75h, 05h +31E4:7577  00 3B                                add     [bp+di],bh +31E4:7579  75 21                ;*              jnz     loc_2247                ;*Jump if not zero +31E4:7579  75 21                                db       75h, 21h +31E4:757B  00 E5                                add     ch,ah +31E4:757D  03 1F                                add     bx,[bx] +31E4:757F  00 05                                add     [di],al +31E4:7581  00 3B                                add     [bp+di],bh +31E4:7583  75 05                ;*              jnz     loc_2242                ;*Jump if not zero +31E4:7583  75 05                                db       75h, 05h +31E4:7585  00 3B                                add     [bp+di],bh +31E4:7587  75 05                ;*              jnz     loc_2243                ;*Jump if not zero +31E4:7587  75 05                                db       75h, 05h +31E4:7589  00 3B                                add     [bp+di],bh +31E4:758B  75 05                ;*              jnz     loc_2244                ;*Jump if not zero +31E4:758B  75 05                                db       75h, 05h +31E4:758D  00 3B                                add     [bp+di],bh +31E4:758F  75 05                ;*              jnz     loc_2245                ;*Jump if not zero +31E4:758F  75 05                                db       75h, 05h +31E4:7591  00 3B                                add     [bp+di],bh +31E4:7593  75 05                ;*              jnz     loc_2246                ;*Jump if not zero +31E4:7593  75 05                                db       75h, 05h +31E4:7595  00 3B                                add     [bp+di],bh +31E4:7597  75 21                ;*              jnz     loc_2253                ;*Jump if not zero +31E4:7597  75 21                                db       75h, 21h +31E4:7599  00 E5                                add     ch,ah +31E4:759B  03 1F                                add     bx,[bx] +31E4:759D  00 05                                add     [di],al +31E4:759F  00 3B                                add     [bp+di],bh +31E4:75A1  75 05                ;*              jnz     loc_2248                ;*Jump if not zero +31E4:75A1  75 05                                db       75h, 05h +31E4:75A3  00 3B                                add     [bp+di],bh +31E4:75A5  75 05                ;*              jnz     loc_2249                ;*Jump if not zero +31E4:75A5  75 05                                db       75h, 05h +31E4:75A7  00 3B                                add     [bp+di],bh +31E4:75A9  75 05                ;*              jnz     loc_2250                ;*Jump if not zero +31E4:75A9  75 05                                db       75h, 05h +31E4:75AB  00 3B                                add     [bp+di],bh +31E4:75AD  75 05                ;*              jnz     loc_2251                ;*Jump if not zero +31E4:75AD  75 05                                db       75h, 05h +31E4:75AF  00 3B                                add     [bp+di],bh +31E4:75B1  75 05                ;*              jnz     loc_2252                ;*Jump if not zero +31E4:75B1  75 05                                db       75h, 05h +31E4:75B3  00 3B                                add     [bp+di],bh +31E4:75B5  75 1C                                jnz     loc_2255                ; Jump if not zero +31E4:75B7  00 1C                                add     [si],bl +31E4:75B9  00 00                                add     [bx+si],al +31E4:75BB  00 21                                add     [bx+di],ah +31E4:75BD  00 3B                                add     [bp+di],bh +31E4:75BF  75 21                ;*              jnz     loc_2259                ;*Jump if not zero +31E4:75BF  75 21                                db       75h, 21h +31E4:75C1  00 E5                                add     ch,ah +31E4:75C3  03 1F                                add     bx,[bx] +31E4:75C5  00 05                                add     [di],al +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 473 + +31E4:75C7  00 3B                                add     [bp+di],bh +31E4:75C9  75 05                ;*              jnz     loc_2254                ;*Jump if not zero +31E4:75C9  75 05                                db       75h, 05h +31E4:75CB  00 3B                                add     [bp+di],bh +31E4:75CD  75 05                ;*              jnz     loc_2256                ;*Jump if not zero +31E4:75CD  75 05                                db       75h, 05h +31E4:75CF  00 3B                                add     [bp+di],bh +31E4:75D1  75 05                ;*              jnz     loc_2257                ;*Jump if not zero +31E4:75D1  75 05                                db       75h, 05h +31E4:75D3                       loc_2255:                                       ;  xref 31E4:75B5 +31E4:75D3  00 3B                                add     [bp+di],bh +31E4:75D5  75 05                ;*              jnz     loc_2258                ;*Jump if not zero +31E4:75D5  75 05                                db       75h, 05h +31E4:75D7  00 3B                                add     [bp+di],bh +31E4:75D9  75 21                ;*              jnz     loc_2264                ;*Jump if not zero +31E4:75D9  75 21                                db       75h, 21h +31E4:75DB  00 3B                                add     [bp+di],bh +31E4:75DD  75 21                ;*              jnz     loc_2265                ;*Jump if not zero +31E4:75DD  75 21                                db       75h, 21h +31E4:75DF  00 E5                                add     ch,ah +31E4:75E1  03 1F                                add     bx,[bx] +31E4:75E3  00 05                                add     [di],al +31E4:75E5  00 3B                                add     [bp+di],bh +31E4:75E7  75 05                ;*              jnz     loc_2260                ;*Jump if not zero +31E4:75E7  75 05                                db       75h, 05h +31E4:75E9  00 3B                                add     [bp+di],bh +31E4:75EB  75 05                ;*              jnz     loc_2261                ;*Jump if not zero +31E4:75EB  75 05                                db       75h, 05h +31E4:75ED  00 3B                                add     [bp+di],bh +31E4:75EF  75 05                ;*              jnz     loc_2262                ;*Jump if not zero +31E4:75EF  75 05                                db       75h, 05h +31E4:75F1  00 3B                                add     [bp+di],bh +31E4:75F3  75 05                ;*              jnz     loc_2263                ;*Jump if not zero +31E4:75F3  75 05                                db       75h, 05h +31E4:75F5  00 3B                                add     [bp+di],bh +31E4:75F7  75 21                ;*              jnz     loc_2270                ;*Jump if not zero +31E4:75F7  75 21                                db       75h, 21h +31E4:75F9  00 3B                                add     [bp+di],bh +31E4:75FB  75 21                ;*              jnz     loc_2271                ;*Jump if not zero +31E4:75FB  75 21                                db       75h, 21h +31E4:75FD  00 E5                                add     ch,ah +31E4:75FF  03 1F                                add     bx,[bx] +31E4:7601  00 05                                add     [di],al +31E4:7603  00 3B                                add     [bp+di],bh +31E4:7605  75 05                ;*              jnz     loc_2266                ;*Jump if not zero +31E4:7605  75 05                                db       75h, 05h +31E4:7607  00 3B                                add     [bp+di],bh +31E4:7609  75 05                ;*              jnz     loc_2267                ;*Jump if not zero +31E4:7609  75 05                                db       75h, 05h +31E4:760B  00 3B                                add     [bp+di],bh +31E4:760D  75 05                ;*              jnz     loc_2268                ;*Jump if not zero +31E4:760D  75 05                                db       75h, 05h +31E4:760F  00 3B                                add     [bp+di],bh +31E4:7611  75 05                ;*              jnz     loc_2269                ;*Jump if not zero +31E4:7611  75 05                                db       75h, 05h +31E4:7613  00 3B                                add     [bp+di],bh +31E4:7615  75 21                ;*              jnz     loc_2276                ;*Jump if not zero +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 474 + +31E4:7615  75 21                                db       75h, 21h +31E4:7617  00 3B                                add     [bp+di],bh +31E4:7619  75 21                ;*              jnz     loc_2277                ;*Jump if not zero +31E4:7619  75 21                                db       75h, 21h +31E4:761B  00 E5                                add     ch,ah +31E4:761D  03 1F                                add     bx,[bx] +31E4:761F  00 05                                add     [di],al +31E4:7621  00 3B                                add     [bp+di],bh +31E4:7623  75 05                ;*              jnz     loc_2272                ;*Jump if not zero +31E4:7623  75 05                                db       75h, 05h +31E4:7625  00 3B                                add     [bp+di],bh +31E4:7627  75 05                ;*              jnz     loc_2273                ;*Jump if not zero +31E4:7627  75 05                                db       75h, 05h +31E4:7629  00 3B                                add     [bp+di],bh +31E4:762B  75 05                ;*              jnz     loc_2274                ;*Jump if not zero +31E4:762B  75 05                                db       75h, 05h +31E4:762D  00 3B                                add     [bp+di],bh +31E4:762F  75 05                ;*              jnz     loc_2275                ;*Jump if not zero +31E4:762F  75 05                                db       75h, 05h +31E4:7631  00 3B                                add     [bp+di],bh +31E4:7633  75 21                ;*              jnz     loc_2281                ;*Jump if not zero +31E4:7633  75 21                                db       75h, 21h +31E4:7635  00 E5                                add     ch,ah +31E4:7637  03 1F                                add     bx,[bx] +31E4:7639  00 05                                add     [di],al +31E4:763B  00 3B                                add     [bp+di],bh +31E4:763D  75 05                ;*              jnz     loc_2278                ;*Jump if not zero +31E4:763D  75 05                                db       75h, 05h +31E4:763F  00 3B                                add     [bp+di],bh +31E4:7641  75 20                                jnz     loc_2282                ; Jump if not zero +31E4:7643  00 05                                add     [di],al +31E4:7645  00 3B                                add     [bp+di],bh +31E4:7647  75 05                ;*              jnz     loc_2279                ;*Jump if not zero +31E4:7647  75 05                                db       75h, 05h +31E4:7649  00 3B                                add     [bp+di],bh +31E4:764B  75 05                ;*              jnz     loc_2280                ;*Jump if not zero +31E4:764B  75 05                                db       75h, 05h +31E4:764D  00 3B                                add     [bp+di],bh +31E4:764F  75 05                ;*              jnz     loc_2281                ;*Jump if not zero +31E4:764F  75 05                                db       75h, 05h +31E4:7651  00 3B                                add     [bp+di],bh +31E4:7653  75 21                ;*              jnz     loc_2288                ;*Jump if not zero +31E4:7653  75 21                                db       75h, 21h +31E4:7655  00 E5                                add     ch,ah +31E4:7657  03 1F                                add     bx,[bx] +31E4:7659  00 05                                add     [di],al +31E4:765B  00 3B                                add     [bp+di],bh +31E4:765D  75 05                ;*              jnz     loc_2283                ;*Jump if not zero +31E4:765D  75 05                                db       75h, 05h +31E4:765F  00 3B                                add     [bp+di],bh +31E4:7661  75 05                ;*              jnz     loc_2284                ;*Jump if not zero +31E4:7661  75 05                                db       75h, 05h +31E4:7663                       loc_2282:                                       ;  xref 31E4:7641 +31E4:7663  00 3B                                add     [bp+di],bh +31E4:7665  75 05                ;*              jnz     loc_2285                ;*Jump if not zero +31E4:7665  75 05                                db       75h, 05h +31E4:7667  00 3B                                add     [bp+di],bh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 475 + +31E4:7669  75 05                ;*              jnz     loc_2286                ;*Jump if not zero +31E4:7669  75 05                                db       75h, 05h +31E4:766B  00 3B                                add     [bp+di],bh +31E4:766D  75 05                ;*              jnz     loc_2287                ;*Jump if not zero +31E4:766D  75 05                                db       75h, 05h +31E4:766F  00 3B                                add     [bp+di],bh +31E4:7671  75 05                ;*              jnz     loc_2289                ;*Jump if not zero +31E4:7671  75 05                                db       75h, 05h +31E4:7673  00 3B                                add     [bp+di],bh +31E4:7675  75 05                ;*              jnz     loc_2290                ;*Jump if not zero +31E4:7675  75 05                                db       75h, 05h +31E4:7677  00 3B                                add     [bp+di],bh +31E4:7679  75 1C                                jnz     loc_2291                ; Jump if not zero +31E4:767B  00 12                                add     [bp+si],dl +31E4:767D  00 4A 73                             add     [bp+si+73h],cl +31E4:7680  20 00                                and     [bx+si],al +31E4:7682  1F                                   pop     ds +31E4:7683  00 1F                                add     [bx],bl +31E4:7685  00 1F                                add     [bx],bl +31E4:7687  00 1C                                add     [si],bl +31E4:7689  00 1C                                add     [si],bl +31E4:768B  00 EC                                add     ah,ch +31E4:768D  76 21                ;*              jbe     loc_2296                ;*Jump if below or = +31E4:768D  76 21                                db       76h, 21h +31E4:768F  00 3B                                add     [bp+di],bh +31E4:7691  75 21                ;*              jnz     loc_2298                ;*Jump if not zero +31E4:7691  75 21                                db       75h, 21h +31E4:7693  00 E5                                add     ch,ah +31E4:7695  03 1F                                add     bx,[bx] +31E4:7697                       loc_2291:                                       ;  xref 31E4:7679 +31E4:7697  00 05                                add     [di],al +31E4:7699  00 3B                                add     [bp+di],bh +31E4:769B  75 05                ;*              jnz     loc_2292                ;*Jump if not zero +31E4:769B  75 05                                db       75h, 05h +31E4:769D  00 3B                                add     [bp+di],bh +31E4:769F  75 05                ;*              jnz     loc_2293                ;*Jump if not zero +31E4:769F  75 05                                db       75h, 05h +31E4:76A1  00 3B                                add     [bp+di],bh +31E4:76A3  75 05                ;*              jnz     loc_2294                ;*Jump if not zero +31E4:76A3  75 05                                db       75h, 05h +31E4:76A5  00 3B                                add     [bp+di],bh +31E4:76A7  75 05                ;*              jnz     loc_2295                ;*Jump if not zero +31E4:76A7  75 05                                db       75h, 05h +31E4:76A9  00 3B                                add     [bp+di],bh +31E4:76AB  75 05                ;*              jnz     loc_2297                ;*Jump if not zero +31E4:76AB  75 05                                db       75h, 05h +31E4:76AD  00 3B                                add     [bp+di],bh +31E4:76AF  75 21                ;*              jnz     loc_2304                ;*Jump if not zero +31E4:76AF  75 21                                db       75h, 21h +31E4:76B1  00 E5                                add     ch,ah +31E4:76B3  03 1F                                add     bx,[bx] +31E4:76B5  00 05                                add     [di],al +31E4:76B7  00 3B                                add     [bp+di],bh +31E4:76B9  75 05                ;*              jnz     loc_2299                ;*Jump if not zero +31E4:76B9  75 05                                db       75h, 05h +31E4:76BB  00 3B                                add     [bp+di],bh +31E4:76BD  75 05                ;*              jnz     loc_2300                ;*Jump if not zero +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 476 + +31E4:76BD  75 05                                db       75h, 05h +31E4:76BF  00 3B                                add     [bp+di],bh +31E4:76C1  75 05                ;*              jnz     loc_2301                ;*Jump if not zero +31E4:76C1  75 05                                db       75h, 05h +31E4:76C3  00 3B                                add     [bp+di],bh +31E4:76C5  75 05                ;*              jnz     loc_2302                ;*Jump if not zero +31E4:76C5  75 05                                db       75h, 05h +31E4:76C7  00 3B                                add     [bp+di],bh +31E4:76C9  75 05                ;*              jnz     loc_2303                ;*Jump if not zero +31E4:76C9  75 05                                db       75h, 05h +31E4:76CB  00 3B                                add     [bp+di],bh +31E4:76CD  75 21                ;*              jnz     loc_2310                ;*Jump if not zero +31E4:76CD  75 21                                db       75h, 21h +31E4:76CF  00 E5                                add     ch,ah +31E4:76D1  03 1F                                add     bx,[bx] +31E4:76D3  00 05                                add     [di],al +31E4:76D5  00 3B                                add     [bp+di],bh +31E4:76D7  75 05                ;*              jnz     loc_2305                ;*Jump if not zero +31E4:76D7  75 05                                db       75h, 05h +31E4:76D9  00 3B                                add     [bp+di],bh +31E4:76DB  75 05                ;*              jnz     loc_2306                ;*Jump if not zero +31E4:76DB  75 05                                db       75h, 05h +31E4:76DD  00 3B                                add     [bp+di],bh +31E4:76DF  75 05                ;*              jnz     loc_2307                ;*Jump if not zero +31E4:76DF  75 05                                db       75h, 05h +31E4:76E1  00 3B                                add     [bp+di],bh +31E4:76E3  75 05                ;*              jnz     loc_2308                ;*Jump if not zero +31E4:76E3  75 05                                db       75h, 05h +31E4:76E5  00 3B                                add     [bp+di],bh +31E4:76E7  75 05                ;*              jnz     loc_2309                ;*Jump if not zero +31E4:76E7  75 05                                db       75h, 05h +31E4:76E9  00 3B                                add     [bp+di],bh +31E4:76EB  75 1C                ;*              jnz     loc_2311                ;*Jump if not zero +31E4:76EB  75 1C                                db       75h, 1Ch +31E4:76ED  00 1D                                add     [di],bl +31E4:76EF  00 86 0777                           add     [bp+777h],al +31E4:76F3  00 16 2427                           add     ds:data_34e,dl          ; (0000:2427=8Bh) +31E4:76F7  00 20                                add     [bx+si],ah +31E4:76F9  04 86                                add     al,86h +31E4:76FB  77 1E                                ja      loc_2312                ; Jump if above +31E4:76FD  00 1C                                add     [si],bl +31E4:76FF  1F                                   pop     ds +31E4:7700  25 2000                              and     ax,2000h +31E4:7703  04 05                                add     al,5 +31E4:7705  08 00                                or      [bx+si],al +31E4:7707  00 00                                db      0, 0 +31E4:7709  00 00 00 25 00 20                    db       00h, 00h, 00h, 25h, 00h, 20h +31E4:770F  04 00 00 00 00 D9                    db       04h, 00h, 00h, 00h, 00h,0D9h +31E4:7715  08 00 00 25 00                       db       08h, 00h, 00h, 25h, 00h +31E4:771A  20                                   db      20h +31E4:771B                       loc_2312:                                       ;  xref 31E4:76FB +31E4:771B  04 06                                add     al,6 +31E4:771D  08 00                                or      [bx+si],al +31E4:771F  00 00 00 00 00 25                    db       00h, 00h, 00h, 00h, 00h, 25h +31E4:7725  00 20 04 07 08 00                    db       00h, 20h, 04h, 07h, 08h, 00h +31E4:772B  00 00 00 00 00 1F                    db       00h, 00h, 00h, 00h, 00h, 1Fh +31E4:7731  00 22 00 86 77 25                    db       00h, 22h, 00h, 86h, 77h, 25h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 477 + +31E4:7737  00 20 04 F0 0B 00                    db       00h, 20h, 04h,0F0h, 0Bh, 00h +31E4:773D  00 F1 0B 00 00 25                    db       00h,0F1h, 0Bh, 00h, 00h, 25h +31E4:7743  00 20 04 F2 0B 00                    db       00h, 20h, 04h,0F2h, 0Bh, 00h +31E4:7749  00 F3 0B 14 00 25                    db       00h,0F3h, 0Bh, 14h, 00h, 25h +31E4:774F  00 20 04 F4 0B 14                    db       00h, 20h, 04h,0F4h, 0Bh, 14h +31E4:7755  00 00 00 00 00 1F                    db       00h, 00h, 00h, 00h, 00h, 1Fh +31E4:775B  00 22 00 86 77 25                    db       00h, 22h, 00h, 86h, 77h, 25h +31E4:7761  00 20 04 F5 0B 00                    db       00h, 20h, 04h,0F5h, 0Bh, 00h +31E4:7767  00 F6 0B 00 00 25                    db       00h,0F6h, 0Bh, 00h, 00h, 25h +31E4:776D  00 20 04 F7 0B 00                    db       00h, 20h, 04h,0F7h, 0Bh, 00h +31E4:7773  00 F8                                db       00h,0F8h +31E4:7775  000B                 data_936        dw      0Bh                     ;  xref 31E4:BCFE +31E4:7777  00 25 00 20 04 F9                    db       00h, 25h, 00h, 20h, 04h,0F9h +31E4:777D  0B 00 00 FA 0B 00                    db       0Bh, 00h, 00h,0FAh, 0Bh, 00h +31E4:7783  00 1F 00 1C 00 11                    db       00h, 1Fh, 00h, 1Ch, 00h, 11h +31E4:7789  00 00 00 07 00 15                    db       00h, 00h, 00h, 07h, 00h, 15h +31E4:778F  27 1C 00 14 00 00                    db       27h, 1Ch, 00h, 14h, 00h, 00h +31E4:7795  00 1C 00 0D 00 00                    db       00h, 1Ch, 00h, 0Dh, 00h, 00h +31E4:779B  00 1C 00 0F 00 00                    db       00h, 1Ch, 00h, 0Fh, 00h, 00h +31E4:77A1  00 22 00 4A 73 1C                    db       00h, 22h, 00h, 4Ah, 73h, 1Ch +31E4:77A7  00 1C 00 EC 76 20                    db       00h, 1Ch, 00h,0ECh, 76h, 20h +31E4:77AD  00 1F 00 1F 00 1F                    db       00h, 1Fh, 00h, 1Fh, 00h, 1Fh +31E4:77B3  00 1F 00 22 00 EC                    db       00h, 1Fh, 00h, 22h, 00h,0ECh +31E4:77B9  76 02 00 0B F7 16                    db       76h, 02h, 00h, 0Bh,0F7h, 16h +31E4:77BF  12 8C 1B 00 0C 82                    db       12h, 8Ch, 1Bh, 00h, 0Ch, 82h +31E4:77C5  00 BA 77 0A 00 00                    db       00h,0BAh, 77h, 0Ah, 00h, 00h +31E4:77CB  67 71 00 00 21 01                    db       67h, 71h, 00h, 00h, 21h, 01h +31E4:77D1  06 01 20 00 30 00                    db       06h, 01h, 20h, 00h, 30h, 00h +31E4:77D7  01 01 82 4F 20 00                    db       01h, 01h, 82h, 4Fh, 20h, 00h +31E4:77DD  30 00 08 00 00 00                    db       30h, 00h, 08h, 00h, 00h, 00h +31E4:77E3  13 5D 9E                             db       13h, 5Dh, 9Eh +31E4:77E6  0009[00]                             db      9 dup (0) +31E4:77EF  54 15 00 00 96 00                    db       54h, 15h, 00h, 00h, 96h, 00h +31E4:77F5  00 00 F8 04 00                       db       00h, 00h,0F8h, 04h, 00h +31E4:77FA  000D[00]                             db      13 dup (0) +31E4:7807  9F 13 00                             db       9Fh, 13h, 00h +31E4:780A  0012[00]                             db      18 dup (0) +31E4:781C  D3 67 00 00 00 00                    db      0D3h, 67h, 00h, 00h, 00h, 00h +31E4:7822  00 00 00 02 AC                       db       00h, 00h, 00h, 02h,0ACh +31E4:7827  78 0A                                db       78h, 0Ah +31E4:7829  0015[00]                             db      21 dup (0) +31E4:783E  23 00 00 00 5C 78                    db       23h, 00h, 00h, 00h, 5Ch, 78h +31E4:7844  25 00 ED 03 A8 0A                    db       25h, 00h,0EDh, 03h,0A8h, 0Ah +31E4:784A  00 00 A9 0A 00 00                    db       00h, 00h,0A9h, 0Ah, 00h, 00h +31E4:7850  25 00 ED 03 AA 0A                    db       25h, 00h,0EDh, 03h,0AAh, 0Ah +31E4:7856  00 00 AB 0A 00 00                    db       00h, 00h,0ABh, 0Ah, 00h, 00h +31E4:785C  1C 00 0E 00 00 00                    db       1Ch, 00h, 0Eh, 00h, 00h, 00h +31E4:7862  1C 00 13 00 00 00                    db       1Ch, 00h, 13h, 00h, 00h, 00h +31E4:7868  1C 00 20 00 A6 78                    db       1Ch, 00h, 20h, 00h,0A6h, 78h +31E4:786E  07 00 20 27 24 00                    db       07h, 00h, 20h, 27h, 24h, 00h +31E4:7874  29 04                                db       29h, 04h +31E4:7876                       loc_2313: +31E4:7876  9C                                   pushf                           ; Push flags +31E4:7877  78 25                                js      loc_2314                ; Jump if sign=1 +31E4:7879  00 29                                add     [bx+di],ch +31E4:787B  04 72                                add     al,72h                  ; 'r' +31E4:787D  09 00                                or      [bx+si],ax +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 478 + +31E4:787F  00 73 09                             add     [bp+di+9],dh +31E4:7882  00 00                                add     [bx+si],al +31E4:7884  25 2900                              and     ax,2900h +31E4:7887  04 74                                add     al,74h                  ; 't' +31E4:7889  09 00                                or      [bx+si],ax +31E4:788B  00 00 00 00 00 25                    db       00h, 00h, 00h, 00h, 00h, 25h +31E4:7891  00 29 04 75 09 00                    db       00h, 29h, 04h, 75h, 09h, 00h +31E4:7897  00 00 00 00 00 1C                    db       00h, 00h, 00h, 00h, 00h, 1Ch +31E4:789D  00                                   db       00h +31E4:789E                       loc_2314:                                       ;  xref 31E4:7877 +31E4:789E  0C 00                                or      al,0 +31E4:78A0  00 00                                add     [bx+si],al +31E4:78A2  07                                   pop     es +31E4:78A3  00 1F                                add     [bx],bl +31E4:78A5  27                                   daa                             ; Decimal adjust +31E4:78A6  1C 00                                sbb     al,0 +31E4:78A8  0A 00                                or      al,[bx+si] +31E4:78AA  00 00                                add     [bx+si],al +31E4:78AC  1C 00                                sbb     al,0 +31E4:78AE  0E                                   push    cs +31E4:78AF  00 00                                add     [bx+si],al +31E4:78B1  00 1C                                add     [si],bl +31E4:78B3  00 13                                add     [bp+di],dl +31E4:78B5  00 00                                add     [bx+si],al +31E4:78B7  00 1C                                add     [si],bl +31E4:78B9  00 20                                add     [bx+si],ah +31E4:78BB  00 FC                                add     ah,bh +31E4:78BD  78 07                                js      loc_2315                ; Jump if sign=1 +31E4:78BF  00 20                                add     [bx+si],ah +31E4:78C1  27                                   daa                             ; Decimal adjust +31E4:78C2  24 00                                and     al,0 +31E4:78C4  29 04                                sub     [si],ax +31E4:78C6                       loc_2315:                                       ;  xref 31E4:78BD +31E4:78C6  F2 78 25 00 29 04                    db      0F2h, 78h, 25h, 00h, 29h, 04h +31E4:78CC  97 0B 00 00 98 0B                    db       97h, 0Bh, 00h, 00h, 98h, 0Bh +31E4:78D2  00 00 25 00 29 04                    db       00h, 00h, 25h, 00h, 29h, 04h +31E4:78D8  99 0B 00 00 00 00                    db       99h, 0Bh, 00h, 00h, 00h, 00h +31E4:78DE  00 00 25 00 29 04                    db       00h, 00h, 25h, 00h, 29h, 04h +31E4:78E4  9A 0B 1E 00 00 00                    db       9Ah, 0Bh, 1Eh, 00h, 00h, 00h +31E4:78EA  00 00 1F 00 1F 00                    db       00h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:78F0  1F 00 1C 00 0C 00                    db       1Fh, 00h, 1Ch, 00h, 0Ch, 00h +31E4:78F6  00 00 07 00 1F 27                    db       00h, 00h, 07h, 00h, 1Fh, 27h +31E4:78FC  1C 00 0A 00 00 00                    db       1Ch, 00h, 0Ah, 00h, 00h, 00h +31E4:7902  1C 00 0E 00 00 00                    db       1Ch, 00h, 0Eh, 00h, 00h, 00h +31E4:7908  1C 00 13 00 00 00                    db       1Ch, 00h, 13h, 00h, 00h, 00h +31E4:790E  1E 00 6C 1F 1C 00                    db       1Eh, 00h, 6Ch, 1Fh, 1Ch, 00h +31E4:7914  23 00 98 79 24 00                    db       23h, 00h, 98h, 79h, 24h, 00h +31E4:791A  36 04 96 79 1E 00                    db       36h, 04h, 96h, 79h, 1Eh, 00h +31E4:7920  44 1F 25 00 36 04                    db       44h, 1Fh, 25h, 00h, 36h, 04h +31E4:7926  D6 0B 00 00 D7 0B                    db      0D6h, 0Bh, 00h, 00h,0D7h, 0Bh +31E4:792C  00 00 25 00 36 04                    db       00h, 00h, 25h, 00h, 36h, 04h +31E4:7932  D8 0B 00 00 D9 0B                    db      0D8h, 0Bh, 00h, 00h,0D9h, 0Bh +31E4:7938  00 00 25 00                          db       00h, 00h, 25h, 00h +31E4:793C  36                                   db      36h +31E4:793D                       loc_2316: +31E4:793D  04 DA                                add     al,0DAh +31E4:793F  0B 00                                or      ax,[bx+si] +31E4:7941  00 00 00 00 00 22                    db       00h, 00h, 00h, 00h, 00h, 22h +31E4:7947  00 96 79 25 00 36                    db       00h, 96h, 79h, 25h, 00h, 36h +31E4:794D  04 DB 0B 00 00 DC                    db       04h,0DBh, 0Bh, 00h, 00h,0DCh +31E4:7953  0B 00 00 25 00 36                    db       0Bh, 00h, 00h, 25h, 00h, 36h +31E4:7959  04 DD 0B 00 00 DE                    db       04h,0DDh, 0Bh, 00h, 00h,0DEh +31E4:795F  0B 00 00 25 00 36                    db       0Bh, 00h, 00h, 25h, 00h, 36h +31E4:7965  04 DF 0B 00 00 E0                    db       04h,0DFh, 0Bh, 00h, 00h,0E0h +31E4:796B  0B 00 00 22 00 96                    db       0Bh, 00h, 00h, 22h, 00h, 96h +31E4:7971  79 25 00 36 04 E1                    db       79h, 25h, 00h, 36h, 04h,0E1h +31E4:7977  0B 00 00 E2 0B 00                    db       0Bh, 00h, 00h,0E2h, 0Bh, 00h +31E4:797D  00 25 00 36 04 E3                    db       00h, 25h, 00h, 36h, 04h,0E3h +31E4:7983  0B 00 00 E4 0B 00                    db       0Bh, 00h, 00h,0E4h, 0Bh, 00h +31E4:7989  00 25 00 36 04 E5                    db       00h, 25h, 00h, 36h, 04h,0E5h +31E4:798F  0B 00 00 00 00 00                    db       0Bh, 00h, 00h, 00h, 00h, 00h +31E4:7995  00 1F 00 1C 00 0C                    db       00h, 1Fh, 00h, 1Ch, 00h, 0Ch +31E4:799B  00 00 00 1C 00 0A                    db       00h, 00h, 00h, 1Ch, 00h, 0Ah +31E4:79A1  00 00 00 22 00 5C                    db       00h, 00h, 00h, 22h, 00h, 5Ch +31E4:79A7  78 1C 00 0F 00 00                    db       78h, 1Ch, 00h, 0Fh, 00h, 00h +31E4:79AD  00 21 00 E6 03 1F                    db       00h, 21h, 00h,0E6h, 03h, 1Fh +31E4:79B3  00 1F 00 1F 00 1F                    db       00h, 1Fh, 00h, 1Fh, 00h, 1Fh +31E4:79B9  00 1F 00 1F 00 1F                    db       00h, 1Fh, 00h, 1Fh, 00h, 1Fh +31E4:79BF  00 1F 00 1F 00 1F                    db       00h, 1Fh, 00h, 1Fh, 00h, 1Fh +31E4:79C5  00 1F 00 1F 00 1F                    db       00h, 1Fh, 00h, 1Fh, 00h, 1Fh +31E4:79CB  00 1F 00 1E 00 31                    db       00h, 1Fh, 00h, 1Eh, 00h, 31h +31E4:79D1  27 22 00 5C 78 03                    db       27h, 22h, 00h, 5Ch, 78h, 03h +31E4:79D7  00 0B D1 16 12 8C                    db       00h, 0Bh,0D1h, 16h, 12h, 8Ch +31E4:79DD  1B 18 81 1D 00 0C                    db       1Bh, 18h, 81h, 1Dh, 00h, 0Ch +31E4:79E3  82 00 D6 79 0A 00                    db       82h, 00h,0D6h, 79h, 0Ah, 00h +31E4:79E9  00 67 71 00 00 75                    db       00h, 67h, 71h, 00h, 00h, 75h +31E4:79EF  01 E5 00 20 00 30                    db       01h,0E5h, 00h, 20h, 00h, 30h +31E4:79F5  00 01 01 82 4F 20                    db       00h, 01h, 01h, 82h, 4Fh, 20h +31E4:79FB  00 30 00 08 00 00                    db       00h, 30h, 00h, 08h, 00h, 00h +31E4:7A01  00 FE 5C 8F 00                       db       00h,0FEh, 5Ch, 8Fh, 00h +31E4:7A06  0008[00]                             db      8 dup (0) +31E4:7A0E  15 16 00 00 96 00                    db       15h, 16h, 00h, 00h, 96h, 00h +31E4:7A14  00 00 F8 04 28 00                    db       00h, 00h,0F8h, 04h, 28h, 00h +31E4:7A1A  00 00 00 50 0B                       db       00h, 00h, 00h, 50h, 0Bh +31E4:7A1F  0007[00]                             db      7 dup (0) +31E4:7A26  DA 13                                db      0DAh, 13h +31E4:7A28  0013[00]                             db      19 dup (0) +31E4:7A3B  13 68 00 00 00 00                    db       13h, 68h, 00h, 00h, 00h, 00h +31E4:7A41  00 00 00 02 5D 7A                    db       00h, 00h, 00h, 02h, 5Dh, 7Ah +31E4:7A47  0F                                   db       0Fh +31E4:7A48  0015[00]                             db      21 dup (0) +31E4:7A5D  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7A63  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7A69  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7A6F  1C 00 15 00 00 00                    db       1Ch, 00h, 15h, 00h, 00h, 00h +31E4:7A75  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7A7B  1F 00 1C 00 12 00                    db       1Fh, 00h, 1Ch, 00h, 12h, 00h +31E4:7A81  00 00 1C 00 19 00                    db       00h, 00h, 1Ch, 00h, 19h, 00h +31E4:7A87  00 00 20 00 1F 00                    db       00h, 00h, 20h, 00h, 1Fh, 00h +31E4:7A8D  1F 00 1F 00 1C 00                    db       1Fh, 00h, 1Fh, 00h, 1Ch, 00h +31E4:7A93  17 00 00 00 20 00                    db       17h, 00h, 00h, 00h, 20h, 00h +31E4:7A99  1F 00 1C 00 15 00                    db       1Fh, 00h, 1Ch, 00h, 15h, 00h +31E4:7A9F  00 00 1C 00 14 00                    db       00h, 00h, 1Ch, 00h, 14h, 00h +31E4:7AA5  00 00 1C 00 0D 00                    db       00h, 00h, 1Ch, 00h, 0Dh, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 480 + +31E4:7AAB  00 00 1E 00 80 1F                    db       00h, 00h, 1Eh, 00h, 80h, 1Fh +31E4:7AB1  1C 00 0F 00 00 00                    db       1Ch, 00h, 0Fh, 00h, 00h, 00h +31E4:7AB7  20 00 22 00 5D 7A                    db       20h, 00h, 22h, 00h, 5Dh, 7Ah +31E4:7ABD  1C 00 09 00 00 00                    db       1Ch, 00h, 09h, 00h, 00h, 00h +31E4:7AC3  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7AC9  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7ACF  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7AD5  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7ADB  1C 00 07 00 00 00                    db       1Ch, 00h, 07h, 00h, 00h, 00h +31E4:7AE1  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7AE7  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7AED  1E 00 94 1F 22 00                    db       1Eh, 00h, 94h, 1Fh, 22h, 00h +31E4:7AF3  BD 7A 1C 00 1D 00                    db      0BDh, 7Ah, 1Ch, 00h, 1Dh, 00h +31E4:7AF9  15 7B 07 00 16 27                    db       15h, 7Bh, 07h, 00h, 16h, 27h +31E4:7AFF  24 00 20 04 15 7B                    db       24h, 00h, 20h, 04h, 15h, 7Bh +31E4:7B05  25 00 20 04 51 0B                    db       25h, 00h, 20h, 04h, 51h, 0Bh +31E4:7B0B  00 00 52 0B 00 00                    db       00h, 00h, 52h, 0Bh, 00h, 00h +31E4:7B11  1F 00 1F 00 00 00                    db       1Fh, 00h, 1Fh, 00h, 00h, 00h +31E4:7B17  02 00 0B F7 19 12                    db       02h, 00h, 0Bh,0F7h, 19h, 12h +31E4:7B1D  8C 1B 00 0C 82 00                    db       8Ch, 1Bh, 00h, 0Ch, 82h, 00h +31E4:7B23  17 7B 24 00 00 67                    db       17h, 7Bh, 24h, 00h, 00h, 67h +31E4:7B29  71 00 00 6B 01 07                    db       71h, 00h, 00h, 6Bh, 01h, 07h +31E4:7B2F  01 20 00 30 00 01                    db       01h, 20h, 00h, 30h, 00h, 01h +31E4:7B35  01 82 4F 20 00 30                    db       01h, 82h, 4Fh, 20h, 00h, 30h +31E4:7B3B  00 08 00 00 00 3D                    db       00h, 08h, 00h, 00h, 00h, 3Dh +31E4:7B41  5D 9E                                db       5Dh, 9Eh +31E4:7B43  0009[00]                             db      9 dup (0) +31E4:7B4C  A8 15 00 00 96 00                    db      0A8h, 15h, 00h, 00h, 96h, 00h +31E4:7B52  00 00 F8 04 28 00                    db       00h, 00h,0F8h, 04h, 28h, 00h +31E4:7B58  00 00 00 50 0B                       db       00h, 00h, 00h, 50h, 0Bh +31E4:7B5D  0007[00]                             db      7 dup (0) +31E4:7B64  07 15 00 00                          db       07h, 15h, 00h, 00h +31E4:7B68  0011[00]                             db      17 dup (0) +31E4:7B79  53 68                                db       53h, 68h +31E4:7B7B  0007[00]                             db      7 dup (0) +31E4:7B82  02 9B 7B 24                          db       02h, 9Bh, 7Bh, 24h +31E4:7B86  0015[00]                             db      21 dup (0) +31E4:7B9B  1C 00 14 00 00 00                    db       1Ch, 00h, 14h, 00h, 00h, 00h +31E4:7BA1  07 00 21 27 1C 00                    db       07h, 00h, 21h, 27h, 1Ch, 00h +31E4:7BA7  0F 00 00 00 1C 00                    db       0Fh, 00h, 00h, 00h, 1Ch, 00h +31E4:7BAD  11 00 00 00 1C 00                    db       11h, 00h, 00h, 00h, 1Ch, 00h +31E4:7BB3  0A 00 00 00 1C 00                    db       0Ah, 00h, 00h, 00h, 1Ch, 00h +31E4:7BB9  0C 00 00 00 1C 00                    db       0Ch, 00h, 00h, 00h, 1Ch, 00h +31E4:7BBF  14 00 00 00 1C 00                    db       14h, 00h, 00h, 00h, 1Ch, 00h +31E4:7BC5  24 00 9B 7B 07 00                    db       24h, 00h, 9Bh, 7Bh, 07h, 00h +31E4:7BCB  22 27 20 00 1F 00                    db       22h, 27h, 20h, 00h, 1Fh, 00h +31E4:7BD1  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7BD7  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7BDD  1F 00 1F 00 20 00                    db       1Fh, 00h, 1Fh, 00h, 20h, 00h +31E4:7BE3  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7BE9  1F 00 20 00 1F 00                    db       1Fh, 00h, 20h, 00h, 1Fh, 00h +31E4:7BEF  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7BF5  20 00 1F 00 1F 00                    db       20h, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7BFB  1F 00 1F 00 20 00                    db       1Fh, 00h, 1Fh, 00h, 20h, 00h +31E4:7C01  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7C07  1F 00 22 00 9B 7B                    db       1Fh, 00h, 22h, 00h, 9Bh, 7Bh +31E4:7C0D  03 00 0B 3B 1A 12                    db       03h, 00h, 0Bh, 3Bh, 1Ah, 12h +31E4:7C13  8C 1B 0D B0 1C 00                    db       8Ch, 1Bh, 0Dh,0B0h, 1Ch, 00h +31E4:7C19  0C 82 00 0D 7C 24                    db       0Ch, 82h, 00h, 0Dh, 7Ch, 24h +31E4:7C1F  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:7C25  F7 00 FD 00 20 00                    db      0F7h, 00h,0FDh, 00h, 20h, 00h +31E4:7C2B  30 00 01 01 82 4F                    db       30h, 00h, 01h, 01h, 82h, 4Fh +31E4:7C31  20 00 30 00 08 00                    db       20h, 00h, 30h, 00h, 08h, 00h +31E4:7C37  00 00 52 5D 9E                       db       00h, 00h, 52h, 5Dh, 9Eh +31E4:7C3C  0009[00]                             db      9 dup (0) +31E4:7C45  A8 15 00 00 96 00                    db      0A8h, 15h, 00h, 00h, 96h, 00h +31E4:7C4B  00 00 F8 04 00                       db       00h, 00h,0F8h, 04h, 00h +31E4:7C50  000D[00]                             db      13 dup (0) +31E4:7C5D  07 15 00 00                          db       07h, 15h, 00h, 00h +31E4:7C61  0011[00]                             db      17 dup (0) +31E4:7C72  F3 68                                db      0F3h, 68h +31E4:7C74  0007[00]                             db      7 dup (0) +31E4:7C7B  02 94 7C 24                          db       02h, 94h, 7Ch, 24h +31E4:7C7F  0015[00]                             db      21 dup (0) +31E4:7C94  1C 00 14 00 00 00                    db       1Ch, 00h, 14h, 00h, 00h, 00h +31E4:7C9A  22 00 AC 7C 1F 00                    db       22h, 00h,0ACh, 7Ch, 1Fh, 00h +31E4:7CA0  1F 00 1C 00 14 00                    db       1Fh, 00h, 1Ch, 00h, 14h, 00h +31E4:7CA6  00 00 07 00 21 27                    db       00h, 00h, 07h, 00h, 21h, 27h +31E4:7CAC  1C 00 0F 00 00 00                    db       1Ch, 00h, 0Fh, 00h, 00h, 00h +31E4:7CB2  1C 00 11 00 00 00                    db       1Ch, 00h, 11h, 00h, 00h, 00h +31E4:7CB8  1C 00 0A 00 00 00                    db       1Ch, 00h, 0Ah, 00h, 00h, 00h +31E4:7CBE  1C 00 0C 00 00 00                    db       1Ch, 00h, 0Ch, 00h, 00h, 00h +31E4:7CC4  1C 00 14 00 00 00                    db       1Ch, 00h, 14h, 00h, 00h, 00h +31E4:7CCA  1C 00 24 00 9E 7C                    db       1Ch, 00h, 24h, 00h, 9Eh, 7Ch +31E4:7CD0  07 00 22 27 20 00                    db       07h, 00h, 22h, 27h, 20h, 00h +31E4:7CD6  1F 00                                db       1Fh, 00h +31E4:7CD8                       loc_2317: +31E4:7CD8  1F                                   pop     ds +31E4:7CD9  00 1F                                add     [bx],bl +31E4:7CDB  00 1F                                add     [bx],bl +31E4:7CDD  00 20                                add     [bx+si],ah +31E4:7CDF  00 1F                                add     [bx],bl +31E4:7CE1  00 1F                                add     [bx],bl +31E4:7CE3  00 1F                                add     [bx],bl +31E4:7CE5  00 1F                                add     [bx],bl +31E4:7CE7  00 20                                add     [bx+si],ah +31E4:7CE9  00 1F                                add     [bx],bl +31E4:7CEB  00 1F                                add     [bx],bl +31E4:7CED  00 1F                                add     [bx],bl +31E4:7CEF  00 1F                                add     [bx],bl +31E4:7CF1  00 20                                add     [bx+si],ah +31E4:7CF3  00 1F                                add     [bx],bl +31E4:7CF5  00 1F                                add     [bx],bl +31E4:7CF7  00 1F                                add     [bx],bl +31E4:7CF9  00 1F                                add     [bx],bl +31E4:7CFB  00 20                                add     [bx+si],ah +31E4:7CFD  00 1F                                add     [bx],bl +31E4:7CFF  00 1F                                add     [bx],bl +31E4:7D01  00 1F                                add     [bx],bl +31E4:7D03  00 1F                                add     [bx],bl +31E4:7D05  00 20                                add     [bx+si],ah +31E4:7D07  00 1F                                add     [bx],bl +31E4:7D09  00 1F                                add     [bx],bl +31E4:7D0B  00 1F                                add     [bx],bl +31E4:7D0D  00 1F                                add     [bx],bl +31E4:7D0F  00 22                                add     [bp+si],ah +31E4:7D11  00 9E 037C                           add     [bp+37Ch],bl +31E4:7D15  00 0B                                add     [bp+di],cl +31E4:7D17  CB                                   retf                            ; Return far +31E4:7D18  25 0D CA 1C 12 8C                    db       25h, 0Dh,0CAh, 1Ch, 12h, 8Ch +31E4:7D1E  1B 00 00                             db       1Bh, 00h, 00h + +31E4:7D21                goewin_hotspot_rec: +31E4:7D21  00 00 00                             db       00h, 00h, 00h +31E4:7D24  00 14 7D 1F 00 00                    db       00h, 14h, 7Dh, 1Fh, 00h, 00h +31E4:7D2A  67 71 00 00 11 01                    db       67h, 71h, 00h, 00h, 11h, 01h +31E4:7D30  E6 00 20 00 30 00                    db      0E6h, 00h, 20h, 00h, 30h, 00h +31E4:7D36  01 01 80 81 20 00                    db       01h, 01h, 80h, 81h, 20h, 00h +31E4:7D3C  30 00 08 00 00 00                    db       30h, 00h, 08h, 00h, 00h, 00h +31E4:7D42  1E 59 9E 3A 04                       db       1Eh, 59h, 9Eh, 3Ah, 04h +31E4:7D47  0007[00]                             db      7 dup (0) +31E4:7D4E  5B 15 00 00 96 00                    db       5Bh, 15h, 00h, 00h, 96h, 00h +31E4:7D54  00 00 F8 04 00                       db       00h, 00h,0F8h, 04h, 00h +31E4:7D59  000D[00]                             db      13 dup (0) +31E4:7D66  2D 14 00                             db       2Dh, 14h, 00h +31E4:7D69  0012[00]                             db      18 dup (0) +31E4:7D7B  93 68 D3 68 00 00                    db       93h, 68h,0D3h, 68h, 00h, 00h +31E4:7D81  00 00 00 02 9D 7D                    db       00h, 00h, 00h, 02h, 9Dh, 7Dh +31E4:7D87  0E                                   db       0Eh +31E4:7D88  0015[00]                             db      21 dup (0) +31E4:7D9D  1C 00 22 00 00 00                    db       1Ch, 00h, 22h, 00h, 00h, 00h +31E4:7DA3  21 00 4A 75 1E 00                    db       21h, 00h, 4Ah, 75h, 1Eh, 00h +31E4:7DA9  CD 1D 1C 00 0A 00                    db      0CDh, 1Dh, 1Ch, 00h, 0Ah, 00h +31E4:7DAF  00 00 07 00 25 27                    db       00h, 00h, 07h, 00h, 25h, 27h +31E4:7DB5  1C 00 14 00 00 00                    db       1Ch, 00h, 14h, 00h, 00h, 00h +31E4:7DBB  1C 00 11 00 00 00                    db       1Ch, 00h, 11h, 00h, 00h, 00h +31E4:7DC1  1C 00 0F 00 00 00                    db       1Ch, 00h, 0Fh, 00h, 00h, 00h +31E4:7DC7  22 00 9D 7D 1C 00                    db       22h, 00h, 9Dh, 7Dh, 1Ch, 00h +31E4:7DCD  0F 00 00 00 21 00                    db       0Fh, 00h, 00h, 00h, 21h, 00h +31E4:7DD3  E6 03 1F 00 1F 00                    db      0E6h, 03h, 1Fh, 00h, 1Fh, 00h +31E4:7DD9  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7DDF  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7DE5  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7DEB  1F 00 1F 00 1F 00                    db       1Fh, 00h, 1Fh, 00h, 1Fh, 00h +31E4:7DF1  1E 00 31 27 22 00                    db       1Eh, 00h, 31h, 27h, 22h, 00h +31E4:7DF7  9D 7D 1C 00 26 00                    db       9Dh, 7Dh, 1Ch, 00h, 26h, 00h +31E4:7DFD  F9 7D 20 00 20 00                    db      0F9h, 7Dh, 20h, 00h, 20h, 00h +31E4:7E03  22 00 01 7E 09 02                    db       22h, 00h, 01h, 7Eh, 09h, 02h +31E4:7E09  00 10 32 7E 02 00                    db       00h, 10h, 32h, 7Eh, 02h, 00h +31E4:7E0F  00                                   db       00h +31E4:7E10                       loc_2318: +31E4:7E10  72 71                                jc      loc_2322                ; Jump if carry Set +31E4:7E12  00 00                                add     [bx+si],al +31E4:7E14  08 01                                or      [bx+di],al +31E4:7E16                       loc_2320: +31E4:7E16  C7 00 0010                           mov     word ptr [bx+si],10h +31E4:7E1A  0B 00                                or      ax,[bx+si] +31E4:7E1C  03 01                                add     ax,[bx+di] +31E4:7E1E  3A 7F 08                             cmp     bh,[bx+8] +31E4:7E21  00 2F                                add     [bx],ch +31E4:7E23  00 02                                add     [bp+si],al +31E4:7E25  00 00                                add     [bx+si],al +31E4:7E27  00 3D                                add     [di],bh +31E4:7E29  58                                   pop     ax +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 483 + +31E4:7E2A  00 58 06                             add     [bx+si+6],bl +31E4:7E2D  00 00 00 00 00 02                    db       00h, 00h, 00h, 00h, 00h, 02h +31E4:7E33  00 01 0B 80 04 0B                    db       00h, 01h, 0Bh, 80h, 04h, 0Bh +31E4:7E39  80 09 02 00 10 32                    db       80h, 09h, 02h, 00h, 10h, 32h +31E4:7E3F  7E 02 00 00 72 71                    db       7Eh, 02h, 00h, 00h, 72h, 71h +31E4:7E45  00 00 2C 01 C7 00                    db       00h, 00h, 2Ch, 01h,0C7h, 00h +31E4:7E4B  10 00 0B 00 03 01                    db       10h, 00h, 0Bh, 00h, 03h, 01h +31E4:7E51  3A 7F 08 00 2F 00                    db       3Ah, 7Fh, 08h, 00h, 2Fh, 00h +31E4:7E57  02 00 00 00 3D 58                    db       02h, 00h, 00h, 00h, 3Dh, 58h +31E4:7E5D  00 4E 06 00 00 00                    db       00h, 4Eh, 06h, 00h, 00h, 00h +31E4:7E63  00 06 03 00 01 0B                    db       00h, 06h, 03h, 00h, 01h, 0Bh +31E4:7E69  80 10 20 0A 0A 37                    db       80h, 10h, 20h, 0Ah, 0Ah, 37h +31E4:7E6F  0A                                   db       0Ah + +                   oil_burner_hotspot_rec: +31E4:7E70  01 02 00 50 65                       db       01h, 02h, 00h, 50h, 65h +31E4:7E75  7E 1E 00 00 72 71                    db       7Eh, 1Eh, 00h, 00h, 72h, 71h +31E4:7E7B  00 00 78 00 05 01                    db       00h, 00h, 78h, 00h, 05h, 01h +31E4:7E81  10 00                                db       10h, 00h +31E4:7E83                       loc_2322:                                       ;  xref 31E4:7E10 +31E4:7E83  06                                   push    es +31E4:7E84  00 02                                add     [bp+si],al +31E4:7E86  01 BD 0241                           add     data_539[di],di         ; (31E4:0241=0) +31E4:7E8A  00 46 00                             add     [bp],al +31E4:7E8D  02 00                                add     al,[bx+si] +31E4:7E8F  00 00                                add     [bx+si],al +31E4:7E91  27                                   daa                             ; Decimal adjust +31E4:7E92  59                                   pop     cx +31E4:7E93  00 1C                                add     [si],bl +31E4:7E95  06                                   push    es +31E4:7E96  0008[00]                             db      8 dup (0) +31E4:7E9E  20 57 6D A8 01 00                    db       20h, 57h, 6Dh,0A8h, 01h, 00h +31E4:7EA4  67 71 00 00 78 00                    db       67h, 71h, 00h, 00h, 78h, 00h +31E4:7EAA  05 01 30 00 44 00                    db       05h, 01h, 30h, 00h, 44h, 00h +31E4:7EB0  01 01 C6 80 2F 00                    db       01h, 01h,0C6h, 80h, 2Fh, 00h +31E4:7EB6  44 00 02 00 00 00                    db       44h, 00h, 02h, 00h, 00h, 00h +31E4:7EBC  30 59                                db       30h, 59h +31E4:7EBE  000B[00]                             db      11 dup (0) +31E4:7EC9  20 57 6D 01 80 00                    db       20h, 57h, 6Dh, 01h, 80h, 00h +31E4:7ECF  72 71 00 00 47 01                    db       72h, 71h, 00h, 00h, 47h, 01h +31E4:7ED5  F2 00 10 00 19 00                    db      0F2h, 00h, 10h, 00h, 19h, 00h +31E4:7EDB  03 01 69 7F 10 00                    db       03h, 01h, 69h, 7Fh, 10h, 00h +31E4:7EE1  19 00 04 00 00 00                    db       19h, 00h, 04h, 00h, 00h, 00h +31E4:7EE7  C4 58 00 84 01 00                    db      0C4h, 58h, 00h, 84h, 01h, 00h +31E4:7EED  00 00 00 01 02 00                    db       00h, 00h, 00h, 01h, 02h, 00h +31E4:7EF3  50 1A 7F 01 00 00                    db       50h, 1Ah, 7Fh, 01h, 00h, 00h +31E4:7EF9  BD 41 00 00 38 01                    db      0BDh, 41h, 00h, 00h, 38h, 01h +31E4:7EFF  E8 00 20 00 3D 00                    db      0E8h, 00h, 20h, 00h, 3Dh, 00h +31E4:7F05  03 01 09 80 20 00                    db       03h, 01h, 09h, 80h, 20h, 00h +31E4:7F0B  35 00 04 00 00 00                    db       35h, 00h, 04h, 00h, 00h, 00h +31E4:7F11  CD 58 00 82 02 00                    db      0CDh, 58h, 00h, 82h, 02h, 00h +31E4:7F17  00 00 00 01 00 01                    db       00h, 00h, 00h, 01h, 00h, 01h +31E4:7F1D  1D 80 00 00 00 20                    db       1Dh, 80h, 00h, 00h, 00h, 20h +31E4:7F23  57 6D 01 00 00 BD                    db       57h, 6Dh, 01h, 00h, 00h,0BDh +31E4:7F29  41 00 00 40 01 64                    db       41h, 00h, 00h, 40h, 01h, 64h +31E4:7F2F  00 20 00 0C 00 03                    db       00h, 20h, 00h, 0Ch, 00h, 03h +31E4:7F35  01 3A 7F 14 00 0C                    db       01h, 3Ah, 7Fh, 14h, 00h, 0Ch +31E4:7F3B  00 04 00 14 00 34                    db       00h, 04h, 00h, 14h, 00h, 34h +31E4:7F41  58 00 26 02 00 00                    db       58h, 00h, 26h, 02h, 00h, 00h +31E4:7F47  00 00 00 00 00 20                    db       00h, 00h, 00h, 00h, 00h, 20h +31E4:7F4D  57 6D 04 00 00 72                    db       57h, 6Dh, 04h, 00h, 00h, 72h +31E4:7F53  71 00 00 C2 00 0F                    db       71h, 00h, 00h,0C2h, 00h, 0Fh +31E4:7F59  01 20 00 0C 00 03                    db       01h, 20h, 00h, 0Ch, 00h, 03h +31E4:7F5F  01 54 7F 14 00 0C                    db       01h, 54h, 7Fh, 14h, 00h, 0Ch +31E4:7F65  00 04 00 0A 00 34                    db       00h, 04h, 00h, 0Ah, 00h, 34h +31E4:7F6B  58 00 A4 01 00 00                    db       58h, 00h,0A4h, 01h, 00h, 00h +31E4:7F71  00 00 00 02 00 0A                    db       00h, 00h, 00h, 02h, 00h, 0Ah +31E4:7F77  B7 0A 01 23 80 01                    db      0B7h, 0Ah, 01h, 23h, 80h, 01h +31E4:7F7D  02 00 00 74 7F 07                    db       02h, 00h, 00h, 74h, 7Fh, 07h +31E4:7F83  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:7F89  19 01 C9 00 10 00                    db       19h, 01h,0C9h, 00h, 10h, 00h +31E4:7F8F  37 00 03 00 3A 7F                    db       37h, 00h, 03h, 00h, 3Ah, 7Fh +31E4:7F95  0E 00 37 00 01 00                    db       0Eh, 00h, 37h, 00h, 01h, 00h +31E4:7F9B  00 00 BB 58 00 9E                    db       00h, 00h,0BBh, 58h, 00h, 9Eh +31E4:7FA1  02 00                                db       02h, 00h +31E4:7FA3  0007[00]                             db      7 dup (0) +31E4:7FAA  20 57 6D 07 00 00                    db       20h, 57h, 6Dh, 07h, 00h, 00h +31E4:7FB0  72 71 00 00 1C 01                    db       72h, 71h, 00h, 00h, 1Ch, 01h +31E4:7FB6  CA 00 20 00 30 00                    db      0CAh, 00h, 20h, 00h, 30h, 00h +31E4:7FBC  01 01 A1 7F 10 00                    db       01h, 01h,0A1h, 7Fh, 10h, 00h +31E4:7FC2  30 00 04 00 00 00                    db       30h, 00h, 04h, 00h, 00h, 00h +31E4:7FC8  B2 58 80 A8 02 00                    db      0B2h, 58h, 80h,0A8h, 02h, 00h +31E4:7FCE  00 00 00 00 09 02                    db       00h, 00h, 00h, 00h, 09h, 02h +31E4:7FD4  00 10 FD 7F 01 00                    db       00h, 10h,0FDh, 7Fh, 01h, 00h +31E4:7FDA  00 AC 88 00 00 4D                    db       00h,0ACh, 88h, 00h, 00h, 4Dh +31E4:7FE0  01 EB 00 10 00 18                    db       01h,0EBh, 00h, 10h, 00h, 18h +31E4:7FE6  00 03 01 3A 7F 0B                    db       00h, 03h, 01h, 3Ah, 7Fh, 0Bh +31E4:7FEC  00 3B 00 02 00 00                    db       00h, 3Bh, 00h, 02h, 00h, 00h +31E4:7FF2  00 97 58 00 4E 06                    db       00h, 97h, 58h, 00h, 4Eh, 06h +31E4:7FF8  00 00 00 00 00 02                    db       00h, 00h, 00h, 00h, 00h, 02h +31E4:7FFE  00 01                                db       00h, 01h +31E4:8000  E4                   data_962        db      0E4h +31E4:8001  03 04 E4 03 11 02                    db       03h, 04h,0E4h, 03h, 11h, 02h +31E4:8007  00 00 2F 80 04 00                    db       00h, 00h, 2Fh, 80h, 04h, 00h +31E4:800D  00 72 71 00 00 F2                    db       00h, 72h, 71h, 00h, 00h,0F2h +31E4:8013  00 0C 01 30 00 10                    db       00h, 0Ch, 01h, 30h, 00h, 10h +31E4:8019  00 00 00 BD 41 08                    db       00h, 00h, 00h,0BDh, 41h, 08h +31E4:801F  00 20 00 10 00 00                    db       00h, 20h, 00h, 10h, 00h, 00h +31E4:8025  00                                   db       00h +31E4:8026  3D 58                                db       3Dh, 58h +31E4:8028  0007[00]                             db      7 dup (0) +31E4:802F  02 00 01 10 80 05                    db       02h, 00h, 01h, 10h, 80h, 05h +31E4:8035  0A 07 00 08 00 00                    db       0Ah, 07h, 00h, 08h, 00h, 00h +31E4:803B  7C 80 04 00 00 67                    db       7Ch, 80h, 04h, 00h, 00h, 67h +31E4:8041  71 00 00 AA 00 0C                    db       71h, 00h, 00h,0AAh, 00h, 0Ch +31E4:8047  01 50 00 0E 00 01                    db       01h, 50h, 00h, 0Eh, 00h, 01h +31E4:804D  01 2A 88 49 00 1E                    db       01h, 2Ah, 88h, 49h, 00h, 1Eh +31E4:8053  00 02 00 00 00 A0                    db       00h, 02h, 00h, 00h, 00h,0A0h +31E4:8059  58 AD                                db       58h,0ADh +31E4:805B  000D[00]                             db      13 dup (0) +31E4:8068  96 00 00 00 0A                       db       96h, 00h, 00h, 00h, 0Ah +31E4:806D  000F[00]                             db      15 dup (0) +31E4:807C  01 00 0C 93 1A 00                    db       01h, 00h, 0Ch, 93h, 1Ah, 00h +31E4:8082  0C 00 00 C6 80 02                    db       0Ch, 00h, 00h,0C6h, 80h, 02h +31E4:8088  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:808E  AA 00 CF 00 10 00                    db      0AAh, 00h,0CFh, 00h, 10h, 00h +31E4:8094  10 00 03 01 B3 81                    db       10h, 00h, 03h, 01h,0B3h, 81h +31E4:809A  08 00 3E 00 02 00                    db       08h, 00h, 3Eh, 00h, 02h, 00h +31E4:80A0  00 00 A9 58 00 E0                    db       00h, 00h,0A9h, 58h, 00h,0E0h +31E4:80A6  03                                   db       03h +31E4:80A7  000B[00]                             db      11 dup (0) +31E4:80B2  96 00 00 00 F8 06                    db       96h, 00h, 00h, 00h,0F8h, 06h +31E4:80B8  000E[00]                             db      14 dup (0) +31E4:80C6  03 00 0C B7 1A 0B                    db       03h, 00h, 0Ch,0B7h, 1Ah, 0Bh +31E4:80CC  D4 1A 10 CB 12 00                    db      0D4h, 1Ah, 10h,0CBh, 12h, 00h +31E4:80D2  0C 82 00 45 88 1D                    db       0Ch, 82h, 00h, 45h, 88h, 1Dh +31E4:80D8  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:80DE  10 01 C2 00 20 00                    db       10h, 01h,0C2h, 00h, 20h, 00h +31E4:80E4  16 00 03 01 A0 82                    db       16h, 00h, 03h, 01h,0A0h, 82h +31E4:80EA  20 00 16 00 02 00                    db       20h, 00h, 16h, 00h, 02h, 00h +31E4:80F0  00 00                                db       00h, 00h +31E4:80F2  73 58                                db       73h, 58h +31E4:80F4  000E[00]                             db      14 dup (0) +31E4:8102  96 00 00 00 F4 06                    db       96h, 00h, 00h, 00h,0F4h, 06h +31E4:8108  28 00 00 00 00 50                    db       28h, 00h, 00h, 00h, 00h, 50h +31E4:810E  0B                                   db       0Bh +31E4:810F  0007[00]                             db      7 dup (0) +31E4:8116  02 00 0B 49 17 12                    db       02h, 00h, 0Bh, 49h, 17h, 12h +31E4:811C  8C 1B 00 0C 82 00                    db       8Ch, 1Bh, 00h, 0Ch, 82h, 00h +31E4:8122  16 81 20 00 00 67                    db       16h, 81h, 20h, 00h, 00h, 67h +31E4:8128  71 00 00 10 01 C4                    db       71h, 00h, 00h, 10h, 01h,0C4h +31E4:812E  00 20 00 16 00 03                    db       00h, 20h, 00h, 16h, 00h, 03h +31E4:8134  01 A0 82 20 00 16                    db       01h,0A0h, 82h, 20h, 00h, 16h +31E4:813A  00 02 00 00 00                       db       00h, 02h, 00h, 00h, 00h +31E4:813F  7C 58                                db       7Ch, 58h +31E4:8141  000E[00]                             db      14 dup (0) +31E4:814F  96 00 00 00 F2 06                    db       96h, 00h, 00h, 00h,0F2h, 06h +31E4:8155  28 00 00 00 00 50                    db       28h, 00h, 00h, 00h, 00h, 50h +31E4:815B  0B                                   db       0Bh +31E4:815C  0007[00]                             db      7 dup (0) +31E4:8163  02 00 0B 9F 18 12                    db       02h, 00h, 0Bh, 9Fh, 18h, 12h +31E4:8169  8C 1B 00 0C 82 00                    db       8Ch, 1Bh, 00h, 0Ch, 82h, 00h +31E4:816F  63 81 23 00 00 67                    db       63h, 81h, 23h, 00h, 00h, 67h +31E4:8175  71 00 00 02 01 D8                    db       71h, 00h, 00h, 02h, 01h,0D8h +31E4:817B  00 10 00 17 00 03                    db       00h, 10h, 00h, 17h, 00h, 03h +31E4:8181  01 A0 82 10 00 17                    db       01h,0A0h, 82h, 10h, 00h, 17h +31E4:8187  00 02 00 00 00 E4                    db       00h, 02h, 00h, 00h, 00h,0E4h +31E4:818D  59                                   db      59h +31E4:818E  000E[00]                             db      14 dup (0) +31E4:819C  96 00 00 00 F0 06                    db       96h, 00h, 00h, 00h,0F0h, 06h +31E4:81A2  28 00 00 00 00 50                    db       28h, 00h, 00h, 00h, 00h, 50h +31E4:81A8  0B                                   db       0Bh +31E4:81A9  0007[00]                             db      7 dup (0) +31E4:81B0  09 02 00 10 32 7E                    db       09h, 02h, 00h, 10h, 32h, 7Eh +31E4:81B6  03 00 00 72 71 00                    db       03h, 00h, 00h, 72h, 71h, 00h +31E4:81BC  00 62 01 DF 00 10                    db       00h, 62h, 01h,0DFh, 00h, 10h +31E4:81C2  00 0B 00 03 01 3A                    db       00h, 0Bh, 00h, 03h, 01h, 3Ah +31E4:81C8  7F 08 00 2F 00 02                    db       7Fh, 08h, 00h, 2Fh, 00h, 02h +31E4:81CE  00 00 00 3D 58 00                    db       00h, 00h, 00h, 3Dh, 58h, 00h +31E4:81D4  4E 06 00 00 00 00                    db       4Eh, 06h, 00h, 00h, 00h, 00h +31E4:81DA  00 09 02 00 10 32                    db       00h, 09h, 02h, 00h, 10h, 32h +31E4:81E0  7E 04 00 00 72 71                    db       7Eh, 04h, 00h, 00h, 72h, 71h +31E4:81E6  00 00 DC 00 DD 00                    db       00h, 00h,0DCh, 00h,0DDh, 00h +31E4:81EC  10 00 0B 00 01 01                    db       10h, 00h, 0Bh, 00h, 01h, 01h +31E4:81F2  3A 7F 08 00 2F 00                    db       3Ah, 7Fh, 08h, 00h, 2Fh, 00h +31E4:81F8  02 00 00 00 3D 58                    db       02h, 00h, 00h, 00h, 3Dh, 58h +31E4:81FE  00 4E 06                             db       00h, 4Eh, 06h +31E4:8201  0009[00]                             db      9 dup (0) +31E4:820A  1A 7F 04 00 00 72                    db       1Ah, 7Fh, 04h, 00h, 00h, 72h +31E4:8210  71 00 00 12 01 F4                    db       71h, 00h, 00h, 12h, 01h,0F4h +31E4:8216  00 10 00 1B 00 03                    db       00h, 10h, 00h, 1Bh, 00h, 03h +31E4:821C  01 3A 7F 10 00 1B                    db       01h, 3Ah, 7Fh, 10h, 00h, 1Bh +31E4:8222  00 02 00 00 00 D6                    db       00h, 02h, 00h, 00h, 00h,0D6h +31E4:8228  58 00 4E 06                          db       58h, 00h, 4Eh, 06h +31E4:822C  0008[00]                             db      8 dup (0) +31E4:8234  20 57 6D 01 00 00                    db       20h, 57h, 6Dh, 01h, 00h, 00h +31E4:823A  72 71 00 00 58 01                    db       72h, 71h, 00h, 00h, 58h, 01h +31E4:8240  BC 00 10 00 0A 00                    db      0BCh, 00h, 10h, 00h, 0Ah, 00h +31E4:8246  01 01 3A 7F 0F 00                    db       01h, 01h, 3Ah, 7Fh, 0Fh, 00h +31E4:824C  0A 00 02 00 00 00                    db       0Ah, 00h, 02h, 00h, 00h, 00h +31E4:8252  DF 58 00 1C 01 00                    db      0DFh, 58h, 00h, 1Ch, 01h, 00h +31E4:8258  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:825E  01 00 87 82 01 00                    db       01h, 00h, 87h, 82h, 01h, 00h +31E4:8264  00 67 71 00 00 18                    db       00h, 67h, 71h, 00h, 00h, 18h +31E4:826A  01 58 00 10 00 10                    db       01h, 58h, 00h, 10h, 00h, 10h +31E4:8270  00 01 01 BD 41 10                    db       00h, 01h, 01h,0BDh, 41h, 10h +31E4:8276  00 10 00 02 00 00                    db       00h, 10h, 00h, 02h, 00h, 00h +31E4:827C  00                                   db       00h +31E4:827D  34 58                                db       34h, 58h +31E4:827F  0008[00]                             db      8 dup (0) +31E4:8287  01 00 11 1A 80 00                    db       01h, 00h, 11h, 1Ah, 80h, 00h +31E4:828D  00 00 00 57 6D 14                    db       00h, 00h, 00h, 57h, 6Dh, 14h +31E4:8293  00 00 17 86 00 00                    db       00h, 00h, 17h, 86h, 00h, 00h +31E4:8299  75 01 64 00 10 00                    db       75h, 01h, 64h, 00h, 10h, 00h +31E4:829F  10 00 03 01 BD 41                    db       10h, 00h, 03h, 01h,0BDh, 41h +31E4:82A5  10 00 10 00 02 00                    db       10h, 00h, 10h, 00h, 02h, 00h +31E4:82AB  00 00                                db       00h, 00h +31E4:82AD  42 59                                db       42h, 59h +31E4:82AF  0008[00]                             db      8 dup (0) +31E4:82B7  03 00 01 10 80 04                    db       03h, 00h, 01h, 10h, 80h, 04h +31E4:82BD  E5 0F 03 35 10 0D                    db      0E5h, 0Fh, 03h, 35h, 10h, 0Dh +31E4:82C3  02 00 10 B7 82 26                    db       02h, 00h, 10h,0B7h, 82h, 26h +31E4:82C9  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:82CF  4C 01 C6 00 10 00                    db       4Ch, 01h,0C6h, 00h, 10h, 00h +31E4:82D5  0A 00 03 01 FA 86                    db       0Ah, 00h, 03h, 01h,0FAh, 86h +31E4:82DB  09 00 0A 00 02 00                    db       09h, 00h, 0Ah, 00h, 02h, 00h +31E4:82E1  00 00 C9                             db       00h, 00h,0C9h +31E4:82E4  59                                   db      59h +31E4:82E5  0008[00]                             db      8 dup (0) +31E4:82ED  03 00 01 10 80 04                    db       03h, 00h, 01h, 10h, 80h, 04h +31E4:82F3  6F 0F 03 BF 0F 0D                    db       6Fh, 0Fh, 03h,0BFh, 0Fh, 0Dh +31E4:82F9  02 00 10 ED 82 26                    db       02h, 00h, 10h,0EDh, 82h, 26h +31E4:82FF  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:8305  E3 00 C6 00 10 00                    db      0E3h, 00h,0C6h, 00h, 10h, 00h +31E4:830B  0A 00 03 01 FF 86                    db       0Ah, 00h, 03h, 01h,0FFh, 86h +31E4:8311  09 00 0A 00 02 00                    db       09h, 00h, 0Ah, 00h, 02h, 00h +31E4:8317  00 00 C9                             db       00h, 00h,0C9h +31E4:831A  59                                   db      59h +31E4:831B  0008[00]                             db      8 dup (0) +31E4:8323  03 00 01 10 80 03                    db       03h, 00h, 01h, 10h, 80h, 03h +31E4:8329  21 11 04 D1 10 0D                    db       21h, 11h, 04h,0D1h, 10h, 0Dh +31E4:832F  02 00 10 23 83 27                    db       02h, 00h, 10h, 23h, 83h, 27h +31E4:8335  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:833B  4C 01 C6 00 10 00                    db       4Ch, 01h,0C6h, 00h, 10h, 00h +31E4:8341  0A 00 03 01 3D 87                    db       0Ah, 00h, 03h, 01h, 3Dh, 87h +31E4:8347  09 00 0A 00 02 00                    db       09h, 00h, 0Ah, 00h, 02h, 00h +31E4:834D  00 00 C9                             db       00h, 00h,0C9h +31E4:8350  59                                   db      59h +31E4:8351  0008[00]                             db      8 dup (0) +31E4:8359  03 00 01 10 80 03                    db       03h, 00h, 01h, 10h, 80h, 03h +31E4:835F  AB 10 04 5B 10 0D                    db      0ABh, 10h, 04h, 5Bh, 10h, 0Dh +31E4:8365  02 00 10 59 83 27                    db       02h, 00h, 10h, 59h, 83h, 27h +31E4:836B  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:8371  E3 00 C6 00 10 00                    db      0E3h, 00h,0C6h, 00h, 10h, 00h +31E4:8377  0A 00 03 01 1E 87                    db       0Ah, 00h, 03h, 01h, 1Eh, 87h +31E4:837D  09 00 0A 00 02 00                    db       09h, 00h, 0Ah, 00h, 02h, 00h +31E4:8383  00 00 C9                             db       00h, 00h,0C9h +31E4:8386  59                                   db      59h +31E4:8387  0008[00]                             db      8 dup (0) +31E4:838F  03 00 01 10 80 03                    db       03h, 00h, 01h, 10h, 80h, 03h +31E4:8395  07 12 04 BD 11 0D                    db       07h, 12h, 04h,0BDh, 11h, 0Dh +31E4:839B  02 00 10 8F 83 28                    db       02h, 00h, 10h, 8Fh, 83h, 28h +31E4:83A1  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:83A7  52 01 C6 00 10 00                    db       52h, 01h,0C6h, 00h, 10h, 00h +31E4:83AD  0A 00 03 00 47 87                    db       0Ah, 00h, 03h, 00h, 47h, 87h +31E4:83B3  09 00 0A 00 02 00                    db       09h, 00h, 0Ah, 00h, 02h, 00h +31E4:83B9  00 00 C9                             db       00h, 00h,0C9h +31E4:83BC  59                                   db      59h +31E4:83BD  0008[00]                             db      8 dup (0) +31E4:83C5  03 00 01 10 80 03                    db       03h, 00h, 01h, 10h, 80h, 03h +31E4:83CB  97 11 04 47 11 0D                    db       97h, 11h, 04h, 47h, 11h, 0Dh +31E4:83D1  02 00 10 C5 83 28                    db       02h, 00h, 10h,0C5h, 83h, 28h +31E4:83D7  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:83DD  E9 00 C6 00 10 00                    db      0E9h, 00h,0C6h, 00h, 10h, 00h +31E4:83E3  0A 00 03 00 42 87                    db       0Ah, 00h, 03h, 00h, 42h, 87h +31E4:83E9  09 00 0A 00 02 00                    db       09h, 00h, 0Ah, 00h, 02h, 00h +31E4:83EF  00 00 C9                             db       00h, 00h,0C9h +31E4:83F2  59                                   db      59h +31E4:83F3  0008[00]                             db      8 dup (0) + +                           sack_hotspot_rec +31E4:83FB  2D 02 00 00 25 84                    db       2Dh, 02h, 00h, 00h, 25h, 84h +31E4:8401  03 00 00 67 71                       db       03h, 00h, 00h, 67h, 71h +31E4:8406  0000                   data_8406     dw       0 +31E4:8408  015E                                 dw       015Eh +31E4:840A  0064                   data_840a     dw       64h +31E4:840C  20                                   db       20h +31E4:840D  00 0E 00 03 00 BD                    db       00h, 0Eh, 00h, 03h, 00h,0BDh +31E4:8413  41 1B 00 18 00 02                    db       41h, 1Bh, 00h, 18h, 00h, 02h +31E4:8419  00 00 00 2B 58 40                    db       00h, 00h, 00h, 2Bh, 58h, 40h +31E4:841F  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:8425  06 00 10 84 08 06                    db       06h, 00h, 10h, 84h, 08h, 06h +31E4:842B  E4 08 01 10 80 04                    db      0E4h, 08h, 01h, 10h, 80h, 04h +31E4:8431  10 80 03 10 80 0A                    db       10h, 80h, 03h, 10h, 80h, 0Ah +31E4:8437  44 08 01 02 00 00                    db       44h, 08h, 01h, 02h, 00h, 00h +31E4:843D  63 84 03 00 00 72                    db       63h, 84h, 03h, 00h, 00h, 72h +31E4:8443  71 00 00 64 01 09                    db       71h, 00h, 00h, 64h, 01h, 09h +31E4:8449  01 10 00 0C 00 01                    db       01h, 10h, 00h, 0Ch, 00h, 01h +31E4:844F  01 BD 41 04 00 0D                    db       01h,0BDh, 41h, 04h, 00h, 0Dh +31E4:8455  00 04 00 00 00 19                    db       00h, 04h, 00h, 00h, 00h, 19h +31E4:845B  58 70 00 00 00 00                    db       58h, 70h, 00h, 00h, 00h, 00h +31E4:8461  00 00 03 00 19 D2                    db       00h, 00h, 03h, 00h, 19h,0D2h +31E4:8467  12 10 D2 12 14 0E                    db       12h, 10h,0D2h, 12h, 14h, 0Eh +31E4:846D  00                                   db       00h + +31E4:846E  01 02 00 00 57      hotspot_2713     db       01h, 02h, 00h, 00h, 57h +31E4:8473  6D 03 00 00 72 71                    db       6Dh, 03h, 00h, 00h, 72h, 71h +31E4:8479  00 00 BF 00 FB 00                    db       00h, 00h,0BFh, 00h,0FBh, 00h +31E4:847F  10 00 03 00 01 01                    db       10h, 00h, 03h, 00h, 01h, 01h +31E4:8485  BD 41 10 00 1E 00                    db      0BDh, 41h, 10h, 00h, 1Eh, 00h +31E4:848B  04 00 00 00 22 58                    db       04h, 00h, 00h, 00h, 22h, 58h +31E4:8491  70 00 00 00 00 00                    db       70h, 00h, 00h, 00h, 00h, 00h +31E4:8497  00 01 02 00 00 57                    db       00h, 01h, 02h, 00h, 00h, 57h +31E4:849D  6D 02 01 00 72 71                    db       6Dh, 02h, 01h, 00h, 72h, 71h +31E4:84A3  00 00 1D 01 07 01                    db       00h, 00h, 1Dh, 01h, 07h, 01h +31E4:84A9  10 00 03 00 01 01                    db       10h, 00h, 03h, 00h, 01h, 01h +31E4:84AF  BD 41 06 00 03 00                    db      0BDh, 41h, 06h, 00h, 03h, 00h +31E4:84B5  02                                   db       02h +31E4:84B6  000C[00]                             db      12 dup (0) +31E4:84C2  01 00 19 F1 0D 01                    db       01h, 00h, 19h,0F1h, 0Dh, 01h +31E4:84C8  02 00 00 C2 84                       db       02h, 00h, 00h,0C2h, 84h + +31E4:84CD  0102           hotspot_2713_hs5e     dw       0102h +31E4:84CF  00 72 71 00 00                       db       00h, 72h, 71h, 00h, 00h +31E4:84D4  1D 01 07 01 10 00                    db       1Dh, 01h, 07h, 01h, 10h, 00h +31E4:84DA  0F 00 01 01 BD 41                    db       0Fh, 00h, 01h, 01h,0BDh, 41h +31E4:84E0  0F 00 0F 00 02                       db       0Fh, 00h, 0Fh, 00h, 02h +31E4:84E5  000C[00]                             db      12 dup (0) +31E4:84F1  01 02 00 00 57 6D                    db       01h, 02h, 00h, 00h, 57h, 6Dh +31E4:84F7  02 01 00 72 71 00                    db       02h, 01h, 00h, 72h, 71h, 00h +31E4:84FD  00 1D 01 07 01 10                    db       00h, 1Dh, 01h, 07h, 01h, 10h +31E4:8503  00 0F 00 01 01 BD                    db       00h, 0Fh, 00h, 01h, 01h,0BDh +31E4:8509  41 0F 00 0F 00 02                    db       41h, 0Fh, 00h, 0Fh, 00h, 02h +31E4:850F  000C[00]                             db      12 dup (0) +31E4:851B  01 02 00 00 57 6D                    db       01h, 02h, 00h, 00h, 57h, 6Dh +31E4:8521  02 01 00 72 71 00                    db       02h, 01h, 00h, 72h, 71h, 00h +31E4:8527  00 1D 01 07 01 10                    db       00h, 1Dh, 01h, 07h, 01h, 10h +31E4:852D  00 0F 00 01 01 BD                    db       00h, 0Fh, 00h, 01h, 01h,0BDh +31E4:8533  41 0F 00 0F 00 02                    db       41h, 0Fh, 00h, 0Fh, 00h, 02h +31E4:8539  000C[00]                             db      12 dup (0) +31E4:8545  01 02 00 20 57 6D                    db       01h, 02h, 00h, 20h, 57h, 6Dh +31E4:854B  12 00 00 72 71 00                    db       12h, 00h, 00h, 72h, 71h, 00h +31E4:8551  00 BC 00 EF 00 10                    db       00h,0BCh, 00h,0EFh, 00h, 10h +31E4:8557  00 08 00 01 01 BD                    db       00h, 08h, 00h, 01h, 01h,0BDh +31E4:855D  41 08 00 08 00 02                    db       41h, 08h, 00h, 08h, 00h, 02h +31E4:8563  00 00 00 8F 5A 00                    db       00h, 00h, 00h, 8Fh, 5Ah, 00h +31E4:8569  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:856F  01 02 00 20 57 6D                    db       01h, 02h, 00h, 20h, 57h, 6Dh +31E4:8575  0E 00 00 72 71 00                    db       0Eh, 00h, 00h, 72h, 71h, 00h +31E4:857B  00 8C 01 FE 00 10                    db       00h, 8Ch, 01h,0FEh, 00h, 10h +31E4:8581  00 06 00 01 01 BD                    db       00h, 06h, 00h, 01h, 01h,0BDh +31E4:8587  41 0A 00 06 00 02                    db       41h, 0Ah, 00h, 06h, 00h, 02h +31E4:858D  00 00 00 98 5A 00                    db       00h, 00h, 00h, 98h, 5Ah, 00h +31E4:8593  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:8599  01 02 00 00 57 6D                    db       01h, 02h, 00h, 00h, 57h, 6Dh +31E4:859F  02 01 00 72 71 00                    db       02h, 01h, 00h, 72h, 71h, 00h +31E4:85A5  00 1D 01 07 01 10                    db       00h, 1Dh, 01h, 07h, 01h, 10h +31E4:85AB  00 0F 00 01 01 BD                    db       00h, 0Fh, 00h, 01h, 01h,0BDh +31E4:85B1  41 0F 00 0F 00 02                    db       41h, 0Fh, 00h, 0Fh, 00h, 02h +31E4:85B7  000C[00]                             db      12 dup (0) +31E4:85C3  01 00 01 13 04 01                    db       01h, 00h, 01h, 13h, 04h, 01h +31E4:85C9  02 00 40 C3 85 2B                    db       02h, 00h, 40h,0C3h, 85h, 2Bh +31E4:85CF  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:85D5  F3 00 F0 00 10 00                    db      0F3h, 00h,0F0h, 00h, 10h, 00h +31E4:85DB  0D 00 03 01 BD 41                    db       0Dh, 00h, 03h, 01h,0BDh, 41h +31E4:85E1  0F 00 0F 00 02 00                    db       0Fh, 00h, 0Fh, 00h, 02h, 00h +31E4:85E7  00 00 BC 5A 00 00                    db       00h, 00h,0BCh, 5Ah, 00h, 00h +31E4:85ED  00 00 00 00 00 01                    db       00h, 00h, 00h, 00h, 00h, 01h +31E4:85F3  02 00 00 57 6D 2B                    db       02h, 00h, 00h, 57h, 6Dh, 2Bh +31E4:85F9  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:85FF  0E 01 F0 00 10 00                    db       0Eh, 01h,0F0h, 00h, 10h, 00h +31E4:8605  0D 00 03 01 BD 41                    db       0Dh, 00h, 03h, 01h,0BDh, 41h +31E4:860B  0F 00 0F 00 02 00                    db       0Fh, 00h, 0Fh, 00h, 02h, 00h +31E4:8611  00 00 C5                             db       00h, 00h,0C5h +31E4:8614  5A                                   db      5Ah +31E4:8615  0007[00]                             db      7 dup (0) +31E4:861C  01 02 00 00 57 6D                    db       01h, 02h, 00h, 00h, 57h, 6Dh +31E4:8622  BB 01 00 72 71 01                    db      0BBh, 01h, 00h, 72h, 71h, 01h +31E4:8628  02 00 00 57 6D BB                    db       02h, 00h, 00h, 57h, 6Dh,0BBh +31E4:862E  01 00 72 71 00 00                    db       01h, 00h, 72h, 71h, 00h, 00h +31E4:8634  0E 01 F0 00 10 00                    db       0Eh, 01h,0F0h, 00h, 10h, 00h +31E4:863A  0D 00 03 01 BD 41                    db       0Dh, 00h, 03h, 01h,0BDh, 41h +31E4:8640  0F 00 0F 00 02 00                    db       0Fh, 00h, 0Fh, 00h, 02h, 00h +31E4:8646  00 00 C5                             db       00h, 00h,0C5h +31E4:8649  5A                                   db      5Ah +31E4:864A  0007[00]                             db      7 dup (0) +31E4:8651  01 00 19 FE 0D 01                    db       01h, 00h, 19h,0FEh, 0Dh, 01h +31E4:8657  02 00 00 51 86 63                    db       02h, 00h, 00h, 51h, 86h, 63h +31E4:865D  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:8663  F3 00 F6 00 10 00                    db      0F3h, 00h,0F6h, 00h, 10h, 00h +31E4:8669  07 00 01 01 BD 41                    db       07h, 00h, 01h, 01h,0BDh, 41h +31E4:866F  0F 00 07 00 02                       db       0Fh, 00h, 07h, 00h, 02h +31E4:8674  000C[00]                             db      12 dup (0) +31E4:8680  01 02 00 00 57 6D                    db       01h, 02h, 00h, 00h, 57h, 6Dh +31E4:8686  00 01 00 72 71 00                    db       00h, 01h, 00h, 72h, 71h, 00h +31E4:868C  00 F3 00 F6 00 10                    db       00h,0F3h, 00h,0F6h, 00h, 10h +31E4:8692  00 0F 00 01 01 BD                    db       00h, 0Fh, 00h, 01h, 01h,0BDh +31E4:8698  41 08 00 0F 00 02                    db       41h, 08h, 00h, 0Fh, 00h, 02h +31E4:869E  000C[00]                             db      12 dup (0) +31E4:86AA  01 00 14 2E 80 01                    db       01h, 00h, 14h, 2Eh, 80h, 01h +31E4:86B0  02 00 00 AA 86 00                    db       02h, 00h, 00h,0AAh, 86h, 00h +31E4:86B6  01 00 72 71 00 00                    db       01h, 00h, 72h, 71h, 00h, 00h +31E4:86BC  F3 00 F6 00 10 00                    db      0F3h, 00h,0F6h, 00h, 10h, 00h +31E4:86C2  07 00 01 01 BD 41                    db       07h, 00h, 01h, 01h,0BDh, 41h +31E4:86C8  05 00 07 00 02                       db       05h, 00h, 07h, 00h, 02h +31E4:86CD  000C[00]                             db      12 dup (0) +31E4:86D9  01 02 00 00 57 6D                    db       01h, 02h, 00h, 00h, 57h, 6Dh +31E4:86DF  00 00 00 72 71 00                    db       00h, 00h, 00h, 72h, 71h, 00h +31E4:86E5  00 3A 01 3A 01 10                    db       00h, 3Ah, 01h, 3Ah, 01h, 10h +31E4:86EB  00 03 00 01 01 BD                    db       00h, 03h, 00h, 01h, 01h,0BDh +31E4:86F1  41 06 00 04 00 02                    db       41h, 06h, 00h, 04h, 00h, 02h +31E4:86F7  00 00 00                             db       00h, 00h, 00h +31E4:86FA  39 59                                db       39h, 59h +31E4:86FC  0007[00]                             db      7 dup (0) +31E4:8703  03 00 10 C7 09 19                    db       03h, 00h, 10h,0C7h, 09h, 19h +31E4:8709  C7 09 14 B4 0B 01                    db      0C7h, 09h, 14h,0B4h, 0Bh, 01h +31E4:870F  02 00 00 03 87 E7                    db       02h, 00h, 00h, 03h, 87h,0E7h +31E4:8715  03 00 72 71 00 00                    db       03h, 00h, 72h, 71h, 00h, 00h +31E4:871B  E9 00 F3 00 10 00                    db      0E9h, 00h,0F3h, 00h, 10h, 00h +31E4:8721  09 00 01 01 BD 41                    db       09h, 00h, 01h, 01h,0BDh, 41h +31E4:8727  06 00 09 00 02                       db       06h, 00h, 09h, 00h, 02h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 490 + +31E4:872C  000C[00]                             db      12 dup (0) +31E4:8738  E0 01 00 10 62 87                    db      0E0h, 01h, 00h, 10h, 62h, 87h +31E4:873E  01 00 00 67 71 00                    db       01h, 00h, 00h, 67h, 71h, 00h +31E4:8744  00 D1 00 F6 00 10                    db       00h,0D1h, 00h,0F6h, 00h, 10h +31E4:874A  00 35 00 03 00 07                    db       00h, 35h, 00h, 03h, 00h, 07h +31E4:8750  72 0B 00 35 00 08                    db       72h, 0Bh, 00h, 35h, 00h, 08h +31E4:8756  00 00 00                             db       00h, 00h, 00h +31E4:8759  4F 58                                db       4Fh, 58h +31E4:875B  0007[00]                             db      7 dup (0) +31E4:8762  04 00 01 10 80 06                    db       04h, 00h, 01h, 10h, 80h, 06h +31E4:8768  59 02 08 CE 02 09                    db       59h, 02h, 08h,0CEh, 02h, 09h +31E4:876E  CE 02 E0 01 00 10                    db      0CEh, 02h,0E0h, 01h, 00h, 10h +31E4:8774  9A 87 02 00 00 67                    db       9Ah, 87h, 02h, 00h, 00h, 67h +31E4:877A  71 00 00 E0 00 C8                    db       71h, 00h, 00h,0E0h, 00h,0C8h +31E4:8780  00 20 00 30 00 03                    db       00h, 20h, 00h, 30h, 00h, 03h +31E4:8786  01 07 72 20 00 30                    db       01h, 07h, 72h, 20h, 00h, 30h +31E4:878C  00 04 00 00 00                       db       00h, 04h, 00h, 00h, 00h +31E4:8791  58 58                                db       58h, 58h +31E4:8793  0007[00]                             db      7 dup (0) +31E4:879A  06 00 10 CA 08 06                    db       06h, 00h, 10h,0CAh, 08h, 06h +31E4:87A0  86 02 07 B7 02 08                    db       86h, 02h, 07h,0B7h, 02h, 08h +31E4:87A6  F8 02 09 25 03 01                    db      0F8h, 02h, 09h, 25h, 03h, 01h +31E4:87AC  10 80 0D 02 00 40                    db       10h, 80h, 0Dh, 02h, 00h, 40h +31E4:87B2  D8 87 02 00 00 67                    db      0D8h, 87h, 02h, 00h, 00h, 67h +31E4:87B8  71 00 00 88 01 D0                    db       71h, 00h, 00h, 88h, 01h,0D0h +31E4:87BE  00 20 00 40 00 03                    db       00h, 20h, 00h, 40h, 00h, 03h +31E4:87C4  01 07 72 20 00 35                    db       01h, 07h, 72h, 20h, 00h, 35h +31E4:87CA  00 08 00 00 00 46                    db       00h, 08h, 00h, 00h, 00h, 46h +31E4:87D0  58 10 00 00 00 00                    db       58h, 10h, 00h, 00h, 00h, 00h +31E4:87D6  00 00 04 00 06 07                    db       00h, 00h, 04h, 00h, 06h, 07h +31E4:87DC  00 03 04 05 04 04                    db       00h, 03h, 04h, 05h, 04h, 04h +31E4:87E2  05 01 12 80 61 02                    db       05h, 01h, 12h, 80h, 61h, 02h +31E4:87E8  00 10 10 88 11 00                    db       00h, 10h, 10h, 88h, 11h, 00h +31E4:87EE  00 67 71 00 00 49                    db       00h, 67h, 71h, 00h, 00h, 49h +31E4:87F4  01 E5 00 20 00 39                    db       01h,0E5h, 00h, 20h, 00h, 39h +31E4:87FA  00 03 01 07 72 20                    db       00h, 03h, 01h, 07h, 72h, 20h +31E4:8800  00 34 00 08 00 00                    db       00h, 34h, 00h, 08h, 00h, 00h +31E4:8806  00                                   db       00h +31E4:8807  61 58                                db       61h, 58h +31E4:8809  0007[00]                             db      7 dup (0) +31E4:8810  03 00 06 73 0D 07                    db       03h, 00h, 06h, 73h, 0Dh, 07h +31E4:8816  7A 0D 01 0B 80 61                    db       7Ah, 0Dh, 01h, 0Bh, 80h, 61h +31E4:881C  02 00 10 10 88 1D                    db       02h, 00h, 10h, 10h, 88h, 1Dh +31E4:8822  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8828  98 00 1E 01 60 00                    db       98h, 00h, 1Eh, 01h, 60h, 00h +31E4:882E  28 00 03 01 07 72                    db       28h, 00h, 03h, 01h, 07h, 72h +31E4:8834  20 00 2C 00 08 00                    db       20h, 00h, 2Ch, 00h, 08h, 00h +31E4:883A  00 00                                db       00h, 00h +31E4:883C  6A 58                                db       6Ah, 58h +31E4:883E  0007[00]                             db      7 dup (0) +31E4:8845  02 00 0B 88 17 12                    db       02h, 00h, 0Bh, 88h, 17h, 12h +31E4:884B  8C 1B 02 00 0B F6                    db       8Ch, 1Bh, 02h, 00h, 0Bh,0F6h +31E4:8851  1B 12 D0 1B 00 0C                    db       1Bh, 12h,0D0h, 1Bh, 00h, 0Ch +31E4:8857  82 00 4D 88 1C 00                    db       82h, 00h, 4Dh, 88h, 1Ch, 00h +31E4:885D  00 72 71 00 00 CE                    db       00h, 72h, 71h, 00h, 00h,0CEh +31E4:8863  00 13 01 30 00 2F                    db       00h, 13h, 01h, 30h, 00h, 2Fh +31E4:8869  00 01 01 F3 81 27                    db       00h, 01h, 01h,0F3h, 81h, 27h +31E4:886F  00 43 00 02 00 00                    db       00h, 43h, 00h, 02h, 00h, 00h +31E4:8875  00 E8 58 00 EC 00                    db       00h,0E8h, 58h, 00h,0ECh, 00h +31E4:887B  00 00 00 00 05 00                    db       00h, 00h, 00h, 00h, 05h, 00h +31E4:8881  00 00 00 00 00 96                    db       00h, 00h, 00h, 00h, 00h, 96h +31E4:8887  00 00 00 02 06                       db       00h, 00h, 00h, 02h, 06h +31E4:888C  000E[00]                             db      14 dup (0) +31E4:889A  06 00 08 36 09 09                    db       06h, 00h, 08h, 36h, 09h, 09h +31E4:88A0  36 09 06 05 09 07                    db       36h, 09h, 06h, 05h, 09h, 07h +31E4:88A6  1F 09 01 10 80 10                    db       1Fh, 09h, 01h, 10h, 80h, 10h +31E4:88AC  C4 12 E1 03 00 10                    db      0C4h, 12h,0E1h, 03h, 00h, 10h +31E4:88B2  9A 88 13 00 00 67                    db       9Ah, 88h, 13h, 00h, 00h, 67h +31E4:88B8  71 00 00 6D 01 D1                    db       71h, 00h, 00h, 6Dh, 01h,0D1h +31E4:88BE  00 20 00 39 00 03                    db       00h, 20h, 00h, 39h, 00h, 03h +31E4:88C4  01 07 72 20 00 37                    db       01h, 07h, 72h, 20h, 00h, 37h +31E4:88CA  00 08 00 00 00 F1                    db       00h, 08h, 00h, 00h, 00h,0F1h +31E4:88D0  58                                   db      58h +31E4:88D1  0007[00]                             db      7 dup (0) +31E4:88D8  61 02 00 10 10 88                    db       61h, 02h, 00h, 10h, 10h, 88h +31E4:88DE  1E 00 00 67 71 00                    db       1Eh, 00h, 00h, 67h, 71h, 00h +31E4:88E4  00 C2 00 05 01 60                    db       00h,0C2h, 00h, 05h, 01h, 60h +31E4:88EA  00 28 00 03 01 07                    db       00h, 28h, 00h, 03h, 01h, 07h +31E4:88F0  72 20 00 30 00 04                    db       72h, 20h, 00h, 30h, 00h, 04h +31E4:88F6  00 00 00 FA 58 20                    db       00h, 00h, 00h,0FAh, 58h, 20h +31E4:88FC  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:8902  04 00 08 D1 0C 09                    db       04h, 00h, 08h,0D1h, 0Ch, 09h +31E4:8908  D1 0C 06 D1 0C 01                    db      0D1h, 0Ch, 06h,0D1h, 0Ch, 01h +31E4:890E  10 80 E1 03 00 10                    db       10h, 80h,0E1h, 03h, 00h, 10h +31E4:8914  02 89 0E 00 00 67                    db       02h, 89h, 0Eh, 00h, 00h, 67h +31E4:891A  71 00 00 F6 00 CC                    db       71h, 00h, 00h,0F6h, 00h,0CCh +31E4:8920  00 20 00 31 00 03                    db       00h, 20h, 00h, 31h, 00h, 03h +31E4:8926  01 07 72 20 00 31                    db       01h, 07h, 72h, 20h, 00h, 31h +31E4:892C  00 04 00 00 00 03                    db       00h, 04h, 00h, 00h, 00h, 03h +31E4:8932  59 50 00 00 00 00                    db       59h, 50h, 00h, 00h, 00h, 00h +31E4:8938  00 00 05 00 01 10                    db       00h, 00h, 05h, 00h, 01h, 10h +31E4:893E  80 06 00 00 07 00                    db       80h, 06h, 00h, 00h, 07h, 00h +31E4:8944  00                                   db       00h +31E4:8945  08 36 09 09 36                       db       08h, 36h, 09h, 09h, 36h +31E4:894A                       loc_2325: +31E4:894A  09 61 02                             or      [bx+di+2],sp +31E4:894D  00 10                                add     [bx+si],dl +31E4:894F  3A 89 000C                           cmp     cl,byte ptr copyright+0Ch[bx+di] ; (31E4:000C='vo') +31E4:8953  00 67 71                             add     [bx+71h],ah +31E4:8956  00 00                                add     [bx+si],al +31E4:8958  A8 00                                test    al,0 +31E4:895A  AA                                   stosb                           ; Store al to es:[di] +31E4:895B  00 20                                add     [bx+si],ah +31E4:895D  00 3B                                add     [bp+di],bh +31E4:895F  00 03                                add     [bp+di],al +31E4:8961  01 07                                add     [bx],ax +31E4:8963  72 20                                jc      loc_2326                ; Jump if carry Set +31E4:8965  00 3B                                add     [bp+di],bh +31E4:8967  00 04                                add     [si],al +31E4:8969  00 00                                add     [bx+si],al +31E4:896B  00 54 59                             add     [si+59h],dl +31E4:896E  0007[00]                             db      7 dup (0) +31E4:8975  61 02 00 10 3A 89                    db       61h, 02h, 00h, 10h, 3Ah, 89h +31E4:897B  20 00 00 67 71 00                    db       20h, 00h, 00h, 67h, 71h, 00h +31E4:8981  00 AC 00 17                          db       00h,0ACh, 00h, 17h +31E4:8985                       loc_2326:                                       ;  xref 31E4:8963 +31E4:8985  01 50 00             ;*              add     [bx+si+0],dx +31E4:8985  01 50 00                             db       01h, 50h, 00h +31E4:8988  30 00 03 01 07 72                    db       30h, 00h, 03h, 01h, 07h, 72h +31E4:898E  20 00 36 00 04 00                    db       20h, 00h, 36h, 00h, 04h, 00h +31E4:8994  00 00                                db       00h, 00h +31E4:8996  4B 59                                db       4Bh, 59h +31E4:8998  0007[00]                             db      7 dup (0) +31E4:899F  05 00 01 10 80 06                    db       05h, 00h, 01h, 10h, 80h, 06h +31E4:89A5  81 0D 07 00 00 08                    db       81h, 0Dh, 07h, 00h, 00h, 08h +31E4:89AB  36 09 09 36 09 E1                    db       36h, 09h, 09h, 36h, 09h,0E1h +31E4:89B1  03 00 10 9F 89 14                    db       03h, 00h, 10h, 9Fh, 89h, 14h +31E4:89B7  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:89BD  41 01 BC 00 20 00                    db       41h, 01h,0BCh, 00h, 20h, 00h +31E4:89C3  38 00 03 01 07 72                    db       38h, 00h, 03h, 01h, 07h, 72h +31E4:89C9  20 00 38 00 04 00                    db       20h, 00h, 38h, 00h, 04h, 00h +31E4:89CF  00 00                                db       00h, 00h +31E4:89D1  66 59                                db       66h, 59h +31E4:89D3  0007[00]                             db      7 dup (0) +31E4:89DA  61 02 00 10 3A 89                    db       61h, 02h, 00h, 10h, 3Ah, 89h +31E4:89E0  24 00 00 67 71 00                    db       24h, 00h, 00h, 67h, 71h, 00h +31E4:89E6  00 93 00 E1 00 70                    db       00h, 93h, 00h,0E1h, 00h, 70h +31E4:89EC  00 30 00 03 01 07                    db       00h, 30h, 00h, 03h, 01h, 07h +31E4:89F2  72 08 00 1E 00 04                    db       72h, 08h, 00h, 1Eh, 00h, 04h +31E4:89F8  00 00 00 5D 59 50                    db       00h, 00h, 00h, 5Dh, 59h, 50h +31E4:89FE  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:8A04  05 00 01 10 80 06                    db       05h, 00h, 01h, 10h, 80h, 06h +31E4:8A0A  5B 0E 07 00 00 08                    db       5Bh, 0Eh, 07h, 00h, 00h, 08h +31E4:8A10  36 09 09 36 09 61                    db       36h, 09h, 09h, 36h, 09h, 61h +31E4:8A16  02 00 10 04 8A 0A                    db       02h, 00h, 10h, 04h, 8Ah, 0Ah +31E4:8A1C  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8A22  06 01 DB 00 20 00                    db       06h, 01h,0DBh, 00h, 20h, 00h +31E4:8A28  36 00 01 01 07 72                    db       36h, 00h, 01h, 01h, 07h, 72h +31E4:8A2E  1A 00 36 00 04 00                    db       1Ah, 00h, 36h, 00h, 04h, 00h +31E4:8A34  00 00 9C 59 00 00                    db       00h, 00h, 9Ch, 59h, 00h, 00h +31E4:8A3A  00 00 00 00 00 61                    db       00h, 00h, 00h, 00h, 00h, 61h +31E4:8A40  02 00 10 3A 89 22                    db       02h, 00h, 10h, 3Ah, 89h, 22h +31E4:8A46  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8A4C  B6 00 F3 00 30 00                    db      0B6h, 00h,0F3h, 00h, 30h, 00h +31E4:8A52  39 00 03 01 07 72                    db       39h, 00h, 03h, 01h, 07h, 72h +31E4:8A58  28 00 39 00 04 00                    db       28h, 00h, 39h, 00h, 04h, 00h +31E4:8A5E  00 00 A5 59 00 00                    db       00h, 00h,0A5h, 59h, 00h, 00h +31E4:8A64  00 00 00 00 00 61                    db       00h, 00h, 00h, 00h, 00h, 61h +31E4:8A6A  02 00 10 10 88 1F                    db       02h, 00h, 10h, 10h, 88h, 1Fh +31E4:8A70  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8A76  41 01 15 01 40 00                    db       41h, 01h, 15h, 01h, 40h, 00h +31E4:8A7C  22 00 03 01 07                       db       22h, 00h, 03h, 01h, 07h +31E4:8A81                       loc_2327: +31E4:8A81  72 20                                jc      $+22h                   ; Jump if carry Set +31E4:8A83  00 4A 00             ;*              add     [bp+si+0],cl +31E4:8A83  00 4A 00                             db       00h, 4Ah, 00h +31E4:8A86  04 00 00 00 0C 59                    db       04h, 00h, 00h, 00h, 0Ch, 59h +31E4:8A8C  0007[00]                             db      7 dup (0) +31E4:8A93  05 00 01 10 80 06                    db       05h, 00h, 01h, 10h, 80h, 06h +31E4:8A99  06 80 07 10 80 08                    db       06h, 80h, 07h, 10h, 80h, 08h +31E4:8A9F  36 09 09 36 09 E1                    db       36h, 09h, 09h, 36h, 09h,0E1h +31E4:8AA5  03 00 10 93 8A 0F                    db       03h, 00h, 10h, 93h, 8Ah, 0Fh +31E4:8AAB  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8AB1  E3 00 A8 00 40 00                    db      0E3h, 00h,0A8h, 00h, 40h, 00h +31E4:8AB7  61 00 03 01 07 72                    db       61h, 00h, 03h, 01h, 07h, 72h +31E4:8ABD  3D 00 5D 00 04 00                    db       3Dh, 00h, 5Dh, 00h, 04h, 00h +31E4:8AC3  00 00 8A 59 00 00                    db       00h, 00h, 8Ah, 59h, 00h, 00h +31E4:8AC9  00 00 00 00 00 E1                    db       00h, 00h, 00h, 00h, 00h,0E1h +31E4:8ACF  03 00 10 93 8A 26                    db       03h, 00h, 10h, 93h, 8Ah, 26h +31E4:8AD5  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8ADB  32 01 14 01 40 00                    db       32h, 01h, 14h, 01h, 40h, 00h +31E4:8AE1  35 00 03 01 07 72                    db       35h, 00h, 03h, 01h, 07h, 72h +31E4:8AE7  35 00 35 00 04 00                    db       35h, 00h, 35h, 00h, 04h, 00h +31E4:8AED  00 00 AE 59 00 00                    db       00h, 00h,0AEh, 59h, 00h, 00h +31E4:8AF3  00 00 00 00 00 05                    db       00h, 00h, 00h, 00h, 00h, 05h +31E4:8AF9  00 01 10 80 06 06                    db       00h, 01h, 10h, 80h, 06h, 06h +31E4:8AFF  80 07 10 80 08 36                    db       80h, 07h, 10h, 80h, 08h, 36h +31E4:8B05  09 09 36 09 E1 03                    db       09h, 09h, 36h, 09h,0E1h, 03h +31E4:8B0B  00 10 F8 8A 26 00                    db       00h, 10h,0F8h, 8Ah, 26h, 00h +31E4:8B11  00 67 71 00 00 91                    db       00h, 67h, 71h, 00h, 00h, 91h +31E4:8B17  00 CD 00 30 00 42                    db       00h,0CDh, 00h, 30h, 00h, 42h +31E4:8B1D  00 03 01 07 72 18                    db       00h, 03h, 01h, 07h, 72h, 18h +31E4:8B23  00 42 00 04 00 00                    db       00h, 42h, 00h, 04h, 00h, 00h +31E4:8B29  00 B7                                db       00h,0B7h +31E4:8B2B  59                                   db      59h +31E4:8B2C  0007[00]                             db      7 dup (0) +31E4:8B33  E1 03 00 10 F8 8A                    db      0E1h, 03h, 00h, 10h,0F8h, 8Ah +31E4:8B39  27 00                                db       27h, 00h +31E4:8B3B                       loc_2328: +31E4:8B3B  00 67 71                             add     [bx+71h],ah +31E4:8B3E  00 00                                add     [bx+si],al +31E4:8B40  81 01 00CD                           add     word ptr [bx+di],0CDh +31E4:8B44  30 00                                xor     [bx+si],al +31E4:8B46  42                                   inc     dx +31E4:8B47  00 03                                add     [bp+di],al +31E4:8B49  01 07                                add     [bx],ax +31E4:8B4B  72 30                                jc      loc_2329                ; Jump if carry Set +31E4:8B4D  00 42 00             ;*              add     [bp+si+0],al +31E4:8B4D  00 42 00                             db       00h, 42h, 00h +31E4:8B50  04 00 00 00 C0 59                    db       04h, 00h, 00h, 00h,0C0h, 59h +31E4:8B56  0007[00]                             db      7 dup (0) +31E4:8B5D  E1 03 00 10 F8 8A                    db      0E1h, 03h, 00h, 10h,0F8h, 8Ah +31E4:8B63  27 00 00 67 71 00                    db       27h, 00h, 00h, 67h, 71h, 00h +31E4:8B69  00 91 00 CD 00 30                    db       00h, 91h, 00h,0CDh, 00h, 30h +31E4:8B6F  00 42 00 03 01 07                    db       00h, 42h, 00h, 03h, 01h, 07h +31E4:8B75  72 18 00 42 00 04                    db       72h, 18h, 00h, 42h, 00h, 04h +31E4:8B7B  00 00                                db       00h, 00h +31E4:8B7D                       loc_2329:                                       ;  xref 31E4:8B4B +31E4:8B7D  00 B7 0059                           add     byte ptr data_519+32h[bx],dh ; (31E4:0059='rriner. Some oth') +31E4:8B81  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:8B87  E1 03 00 10 F8 8A                    db      0E1h, 03h, 00h, 10h,0F8h, 8Ah +31E4:8B8D  28 00 00 67 71 00                    db       28h, 00h, 00h, 67h, 71h, 00h +31E4:8B93  00 81 01 CD 00 30                    db       00h, 81h, 01h,0CDh, 00h, 30h +31E4:8B99  00 42 00 03 01 07                    db       00h, 42h, 00h, 03h, 01h, 07h +31E4:8B9F  72 30 00 42 00 04                    db       72h, 30h, 00h, 42h, 00h, 04h +31E4:8BA5  00 00 00 C0                          db       00h, 00h, 00h,0C0h +31E4:8BA9  59                                   db      59h +31E4:8BAA  0007[00]                             db      7 dup (0) +31E4:8BB1  E1 03 00 10 F8 8A                    db      0E1h, 03h, 00h, 10h,0F8h, 8Ah +31E4:8BB7  28 00 00 67 71 00                    db       28h, 00h, 00h, 67h, 71h, 00h +31E4:8BBD  00 91 00 CD 00 30                    db       00h, 91h, 00h,0CDh, 00h, 30h +31E4:8BC3  00 42 00 03 01 07                    db       00h, 42h, 00h, 03h, 01h, 07h +31E4:8BC9  72 18 00 42 00 04                    db       72h, 18h, 00h, 42h, 00h, 04h +31E4:8BCF  00 00 00 B7                          db       00h, 00h, 00h,0B7h +31E4:8BD3  59                                   db      59h +31E4:8BD4  0007[00]                             db      7 dup (0) +31E4:8BDB  E1 03 00 10 F8 8A                    db      0E1h, 03h, 00h, 10h,0F8h, 8Ah +31E4:8BE1  05 00 00 67 71 00                    db       05h, 00h, 00h, 67h, 71h, 00h +31E4:8BE7  00 81 01 CD 00 30                    db       00h, 81h, 01h,0CDh, 00h, 30h +31E4:8BED  00 42 00 03 01 07                    db       00h, 42h, 00h, 03h, 01h, 07h +31E4:8BF3  72 30 00 42 00 04                    db       72h, 30h, 00h, 42h, 00h, 04h +31E4:8BF9  00 00 00 C0                          db       00h, 00h, 00h,0C0h +31E4:8BFD  59                                   db      59h +31E4:8BFE  0008[00]                             db      8 dup (0) +31E4:8C06  0C 82 00 4A 8C 20                    db       0Ch, 82h, 00h, 4Ah, 8Ch, 20h +31E4:8C0C  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8C12  28 01 F4 00 20 00                    db       28h, 01h,0F4h, 00h, 20h, 00h +31E4:8C18  16 00 01 01 0E 82                    db       16h, 00h, 01h, 01h, 0Eh, 82h +31E4:8C1E  18 00 28 00 02 00                    db       18h, 00h, 28h, 00h, 02h, 00h +31E4:8C24  00 00 8E 58 00                       db       00h, 00h, 8Eh, 58h, 00h +31E4:8C29  000D[00]                             db      13 dup (0) +31E4:8C36  96 00 00 00 F6 04                    db       96h, 00h, 00h, 00h,0F6h, 04h +31E4:8C3C  00                                   db       00h +31E4:8C3D  000D[00]                             db      13 dup (0) +31E4:8C4A  03 00 18 8B 1D 0B                    db       03h, 00h, 18h, 8Bh, 1Dh, 0Bh +31E4:8C50  13 19 12 0A 80 00                    db       13h, 19h, 12h, 0Ah, 80h, 00h +31E4:8C56  0C 82 00 45 88 1D                    db       0Ch, 82h, 00h, 45h, 88h, 1Dh +31E4:8C5C  00 00 67 71 00 00                    db       00h, 00h, 67h, 71h, 00h, 00h +31E4:8C62  BE 00 EA 00 20 00                    db      0BEh, 00h,0EAh, 00h, 20h, 00h +31E4:8C68  19 00 01 01 37 7F                    db       19h, 00h, 01h, 01h, 37h, 7Fh +31E4:8C6E  10 00 29 00 02 00                    db       10h, 00h, 29h, 00h, 02h, 00h +31E4:8C74  00 00 93 59 00 6A                    db       00h, 00h, 93h, 59h, 00h, 6Ah +31E4:8C7A  06                                   db       06h +31E4:8C7B  000B[00]                             db      11 dup (0) +31E4:8C86  96 00 00 00 F8 02                    db       96h, 00h, 00h, 00h,0F8h, 02h +31E4:8C8C  00                                   db       00h +31E4:8C8D  000D[00]                             db      13 dup (0) +31E4:8C9A  02 00 0B AB 16 12                    db       02h, 00h, 0Bh,0ABh, 16h, 12h +31E4:8CA0  8C 1B 00 0C 82 00                    db       8Ch, 1Bh, 00h, 0Ch, 82h, 00h +31E4:8CA6  9A 8C 1D 00 00 72                    db       9Ah, 8Ch, 1Dh, 00h, 00h, 72h +31E4:8CAC  71 00 00 4C 01 FD                    db       71h, 00h, 00h, 4Ch, 01h,0FDh +31E4:8CB2  00 20 00 2D 00 01                    db       00h, 20h, 00h, 2Dh, 00h, 01h +31E4:8CB8  01 37 7F 10 00 2D                    db       01h, 37h, 7Fh, 10h, 00h, 2Dh +31E4:8CBE  00 02 00 00 00 B3                    db       00h, 02h, 00h, 00h, 00h,0B3h +31E4:8CC4  5A 00 E4 06                          db       5Ah, 00h,0E4h, 06h +31E4:8CC8  000B[00]                             db      11 dup (0) +31E4:8CD3  96 00 00 00 FE 06                    db       96h, 00h, 00h, 00h,0FEh, 06h +31E4:8CD9  000E[00]                             db      14 dup (0) +31E4:8CE7  0000                  data_8ce7      dw      0 +31E4:8CE9  0000                                 dw      0 +31E4:8CEB  57 6D 0F 00 00 72                    db       57h, 6Dh, 0Fh, 00h, 00h, 72h +31E4:8CF1  71 00 00 3F 01 64                    db       71h, 00h, 00h, 3Fh, 01h, 64h +31E4:8CF7  00 10 00 02 00 01                    db       00h, 10h, 00h, 02h, 00h, 01h +31E4:8CFD  00 2D 86 01 00 02                    db       00h, 2Dh, 86h, 01h, 00h, 02h +31E4:8D03  00 02 00 00 00 80                    db       00h, 02h, 00h, 00h, 00h, 80h +31E4:8D09  5C 00                                db       5Ch, 00h +31E4:8D0B  000D[00]                             db      13 dup (0) +31E4:8D18  96 00 00 00 00 68                    db       96h, 00h, 00h, 00h, 00h, 68h +31E4:8D1E  00                                   db       00h +31E4:8D1F  000D[00]                             db      13 dup (0) +31E4:8D2C  0000                  data_8d2c      dw       0 +31E4:8D2E  0000                                 dw       0 +31E4:8D30  57 6D 0F 00 00 72                    db       57h, 6Dh, 0Fh, 00h, 00h, 72h +31E4:8D36  71 00 00 DB 00 64                    db       71h, 00h, 00h,0DBh, 00h, 64h +31E4:8D3C  00 10 00 02 00 01                    db       00h, 10h, 00h, 02h, 00h, 01h +31E4:8D42  00 2D 86 01 00 02                    db       00h, 2Dh, 86h, 01h, 00h, 02h +31E4:8D48  00 02 00 00 00 80                    db       00h, 02h, 00h, 00h, 00h, 80h +31E4:8D4E  5C 00                                db       5Ch, 00h +31E4:8D50  000D[00]                             db      13 dup (0) +31E4:8D5D  96 00 00 00 00 68                    db       96h, 00h, 00h, 00h, 00h, 68h +31E4:8D63  00                                   db       00h +31E4:8D64  000E[00]                             db      14 dup (0) +31E4:8D72  0C 82 00 45 88 0C                    db       0Ch, 82h, 00h, 45h, 88h, 0Ch +31E4:8D78  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:8D7E  0F 01 F1 00 10 00                    db       0Fh, 01h,0F1h, 00h, 10h, 00h +31E4:8D84  08 00 01 01 41 82                    db       08h, 00h, 01h, 01h, 41h, 82h +31E4:8D8A  18 00 18 00 02 00                    db       18h, 00h, 18h, 00h, 02h, 00h +31E4:8D90  00 00 85 58 00                       db       00h, 00h, 85h, 58h, 00h +31E4:8D95  000D[00]                             db      13 dup (0) +31E4:8DA2  96 00 00 00 F4 06                    db       96h, 00h, 00h, 00h,0F4h, 06h +31E4:8DA8  000F[00]                             db      15 dup (0) +31E4:8DB7  08 00 00 57 6D 1F                    db       08h, 00h, 00h, 57h, 6Dh, 1Fh +31E4:8DBD  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:8DC3  2A 01 E3 00 20 00                    db       2Ah, 01h,0E3h, 00h, 20h, 00h +31E4:8DC9  30 00 01 01 CE 85                    db       30h, 00h, 01h, 01h,0CEh, 85h +31E4:8DCF  20 00 30 00 02 00                    db       20h, 00h, 30h, 00h, 02h, 00h +31E4:8DD5  00 00 6F 59 9E                       db       00h, 00h, 6Fh, 59h, 9Eh +31E4:8DDA  000D[00]                             db      13 dup (0) +31E4:8DE7  96 00 00 00 02 06                    db       96h, 00h, 00h, 00h, 02h, 06h +31E4:8DED  000F[00]                             db      15 dup (0) +31E4:8DFC  08 00 00 57 6D 1F                    db       08h, 00h, 00h, 57h, 6Dh, 1Fh +31E4:8E02  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:8E08  EA 00 E3 00 20 00                    db      0EAh, 00h,0E3h, 00h, 20h, 00h +31E4:8E0E  30 00 01 01 CE 85                    db       30h, 00h, 01h, 01h,0CEh, 85h +31E4:8E14  20 00 30 00 02 00                    db       20h, 00h, 30h, 00h, 02h, 00h +31E4:8E1A  00 00 78 59 9E                       db       00h, 00h, 78h, 59h, 9Eh +31E4:8E1F  000D[00]                             db      13 dup (0) +31E4:8E2C  96 00 00 00 02 06                    db       96h, 00h, 00h, 00h, 02h, 06h +31E4:8E32  000F[00]                             db      15 dup (0) +31E4:8E41  0C 82 00 45 88 0E                    db       0Ch, 82h, 00h, 45h, 88h, 0Eh +31E4:8E47  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:8E4D  11 01 CF 00 20 00                    db       11h, 01h,0CFh, 00h, 20h, 00h +31E4:8E53  30 00 01 01 CE 85                    db       30h, 00h, 01h, 01h,0CEh, 85h +31E4:8E59  20 00 30 00 02 00                    db       20h, 00h, 30h, 00h, 02h, 00h +31E4:8E5F  00 00 6F 59 9E 00                    db       00h, 00h, 6Fh, 59h, 9Eh, 00h +31E4:8E65  00 00 00 00 00 01                    db       00h, 00h, 00h, 00h, 00h, 01h +31E4:8E6B  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:8E71  96 00 00 00 02 06                    db       96h, 00h, 00h, 00h, 02h, 06h +31E4:8E77  0011[00]                             db      17 dup (0) +31E4:8E88  20 00 00 1E 00 00                    db       20h, 00h, 00h, 1Eh, 00h, 00h +31E4:8E8E  72 71 00 00 11 01                    db       72h, 71h, 00h, 00h, 11h, 01h +31E4:8E94  E6 00 30 00 20 00                    db      0E6h, 00h, 30h, 00h, 20h, 00h +31E4:8E9A  02 01 3F 81 26 00                    db       02h, 01h, 3Fh, 81h, 26h, 00h +31E4:8EA0  40 00 02 00 00 00                    db       40h, 00h, 02h, 00h, 00h, 00h +31E4:8EA6  81 59 00 DA 09 00                    db       81h, 59h, 00h,0DAh, 09h, 00h +31E4:8EAC  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +31E4:8EB2  0A 2D 12 00 0A 00                    db       0Ah, 2Dh, 12h, 00h, 0Ah, 00h +31E4:8EB8  00 B0 8E 29 00 00                    db       00h,0B0h, 8Eh, 29h, 00h, 00h +31E4:8EBE  72 71 00 00 C7 00                    db       72h, 71h, 00h, 00h,0C7h, 00h +31E4:8EC4  E7 00 10 00 08 00                    db      0E7h, 00h, 10h, 00h, 08h, 00h +31E4:8ECA  03 01 37 7F 0E 00                    db       03h, 01h, 37h, 7Fh, 0Eh, 00h +31E4:8ED0  08 00 04 00 00 00                    db       08h, 00h, 04h, 00h, 00h, 00h +31E4:8ED6  D2 59 00 88 0B 00                    db      0D2h, 59h, 00h, 88h, 0Bh, 00h +31E4:8EDC  00                                   db       00h +31E4:8EDD  0009[00]                             db      9 dup (0) +31E4:8EE6  96 00 00 00 0A 12                    db       96h, 00h, 00h, 00h, 0Ah, 12h +31E4:8EEC  00                                   db       00h +31E4:8EED  0010[00]                             db      16 dup (0) +31E4:8EFD  20 B0 8E 29 00 00                    db       20h,0B0h, 8Eh, 29h, 00h, 00h +31E4:8F03  72 71 00 00 AA 00                    db       72h, 71h, 00h, 00h,0AAh, 00h +31E4:8F09  07 01 70 00 1F 00                    db       07h, 01h, 70h, 00h, 1Fh, 00h +31E4:8F0F  03 00 3A 7F 6F 00                    db       03h, 00h, 3Ah, 7Fh, 6Fh, 00h +31E4:8F15  1F 00 04 00 00 00                    db       1Fh, 00h, 04h, 00h, 00h, 00h +31E4:8F1B  AF 5B 00 BC 0B 00                    db      0AFh, 5Bh, 00h,0BCh, 0Bh, 00h +31E4:8F21  00 00 00 00 00 08                    db       00h, 00h, 00h, 00h, 00h, 08h +31E4:8F27  00 00 57 6D 2D 00                    db       00h, 00h, 57h, 6Dh, 2Dh, 00h +31E4:8F2D  00 67 71 00 00 7A                    db       00h, 67h, 71h, 00h, 00h, 7Ah +31E4:8F33  01 14 01 30 00 33                    db       01h, 14h, 01h, 30h, 00h, 33h +31E4:8F39  00 02 01 EC 87 20                    db       00h, 02h, 01h,0ECh, 87h, 20h +31E4:8F3F  00 33 00 04 00 00                    db       00h, 33h, 00h, 04h, 00h, 00h +31E4:8F45  00 DB 59 9E EA 0B                    db       00h,0DBh, 59h, 9Eh,0EAh, 0Bh +31E4:8F4B  00 00 00                             db       00h, 00h, 00h +31E4:8F4E  0008[00]                             db      8 dup (0) +31E4:8F56  96 00 00 00 02 0A                    db       96h, 00h, 00h, 00h, 02h, 0Ah +31E4:8F5C  00                                   db       00h +31E4:8F5D  000E[00]                             db      14 dup (0) +31E4:8F6B  08 00 00 57 6D 2A                    db       08h, 00h, 00h, 57h, 6Dh, 2Ah +31E4:8F71  80 00 67 71 00 00                    db       80h, 00h, 67h, 71h, 00h, 00h +31E4:8F77  99 00 16 01 40 00                    db       99h, 00h, 16h, 01h, 40h, 00h +31E4:8F7D  28 00 01 01 EC 87                    db       28h, 00h, 01h, 01h,0ECh, 87h +31E4:8F83  3F 00 28 00 04 00                    db       3Fh, 00h, 28h, 00h, 04h, 00h +31E4:8F89  00 00 23 5A 9E A2                    db       00h, 00h, 23h, 5Ah, 9Eh,0A2h +31E4:8F8F  0C 00                                db       0Ch, 00h +31E4:8F91  000A[00]                             db      10 dup (0) +31E4:8F9B  96 00 00 00 0A 12                    db       96h, 00h, 00h, 00h, 0Ah, 12h +31E4:8FA1  00                                   db       00h +31E4:8FA2  0010[00]                             db      16 dup (0) +31E4:8FB2  20 57 6D 2A 80 00                    db       20h, 57h, 6Dh, 2Ah, 80h, 00h +31E4:8FB8  67 71 00 00 99 00                    db       67h, 71h, 00h, 00h, 99h, 00h +31E4:8FBE  16 01 20 00 25 00                    db       16h, 01h, 20h, 00h, 25h, 00h +31E4:8FC4  02 01 3A 7F 1B 00                    db       02h, 01h, 3Ah, 7Fh, 1Bh, 00h +31E4:8FCA  25 00 04 00 00 00                    db       25h, 00h, 04h, 00h, 00h, 00h +31E4:8FD0  47 5A 00 EC 0C 00                    db       47h, 5Ah, 00h,0ECh, 0Ch, 00h +31E4:8FD6  0007[00]                             db      7 dup (0) +31E4:8FDD  20 57 6D 1D 00 00                    db       20h, 57h, 6Dh, 1Dh, 00h, 00h +31E4:8FE3  72 71 00 00 7B 01                    db       72h, 71h, 00h, 00h, 7Bh, 01h +31E4:8FE9  E9 00 20 00 27 00                    db      0E9h, 00h, 20h, 00h, 27h, 00h +31E4:8FEF  03 00 3A 7F 14 00                    db       03h, 00h, 3Ah, 7Fh, 14h, 00h +31E4:8FF5  27 00 04 00 00 00                    db       27h, 00h, 04h, 00h, 00h, 00h +31E4:8FFB  A1 5A 20 14                          db      0A1h, 5Ah, 20h, 14h +31E4:8FFF  0D                                   db      0Dh +31E4:9000  0008[00]                             db      8 dup (0) +31E4:9008  20 57 6D 2B 00 00                    db       20h, 57h, 6Dh, 2Bh, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 497 + +31E4:900E  72 71 00 00 7D 01                    db       72h, 71h, 00h, 00h, 7Dh, 01h +31E4:9014  F9                                   db      0F9h +31E4:9015                       loc_2330: +31E4:9015  00 30                                add     [bx+si],dh +31E4:9017  00 29                                add     [bx+di],ch +31E4:9019  00 03                                add     [bp+di],al +31E4:901B  00 3A                                add     [bp+si],bh +31E4:901D  7F 14                                jg      loc_2331                ; Jump if > +31E4:901F  00 27                                add     [bx],ah +31E4:9021  00 04                                add     [si],al +31E4:9023  00 00                                add     [bx+si],al +31E4:9025  00 CE                                add     dh,cl +31E4:9027  5A                                   pop     dx +31E4:9028  40                                   inc     ax +31E4:9029  2E 0D 00 00 00 00                    db       2Eh, 0Dh, 00h, 00h, 00h, 00h +31E4:902F  00 00 00 00                          db       00h, 00h, 00h, 00h +31E4:9033                       loc_2331:                                       ;  xref 31E4:901D +31E4:9033  20 57 6D                             and     [bx+6Dh],dl +31E4:9036  2B 00                                sub     ax,[bx+si] +31E4:9038  00 72 71                             add     [bp+si+71h],dh +31E4:903B  00 00                                add     [bx+si],al +31E4:903D  70 01                ;*              jo      loc_2332                ;*Jump if overflow=1 +31E4:903D  70 01                                db       70h, 01h +31E4:903F  E1 00                                loopz   locloop_2333            ; Loop if zf=1, cx>0 + + +31E4:9041                       locloop_2333:                                   ;  xref 31E4:903F +31E4:9041  30 00                                xor     [bx+si],al +31E4:9043  11 00                                adc     [bx+si],ax +31E4:9045  03 00                                add     ax,[bx+si] +31E4:9047  3A 7F 14                             cmp     bh,[bx+14h] +31E4:904A  00 27                                add     [bx],ah +31E4:904C  00 04                                add     [si],al +31E4:904E  00 00                                add     [bx+si],al +31E4:9050  00 D7                                add     bh,dl +31E4:9052  5A                                   pop     dx +31E4:9053  40                                   inc     ax +31E4:9054  4E                                   dec     si +31E4:9055  0D 0000                              or      ax,0 +31E4:9058  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:905E  20 57 6D 2B 00 00                    db       20h, 57h, 6Dh, 2Bh, 00h, 00h +31E4:9064  72 71 00 00 7D 01                    db       72h, 71h, 00h, 00h, 7Dh, 01h +31E4:906A  D6 00 10 00 05 00                    db      0D6h, 00h, 10h, 00h, 05h, 00h +31E4:9070  03 00 3A 7F 14 00                    db       03h, 00h, 3Ah, 7Fh, 14h, 00h +31E4:9076  27 00 04 00 00 00                    db       27h, 00h, 04h, 00h, 00h, 00h +31E4:907C  E0 5A 00                             db      0E0h, 5Ah, 00h +31E4:907F  6E 0D                                db       6Eh, 0Dh +31E4:9081  0008[00]                             db      8 dup (0) +31E4:9089                       loc_2334: +31E4:9089  20 57 6D                             and     [bx+6Dh],dl +31E4:908C  2D 0000                              sub     ax,0 +31E4:908F  72 71                ;*              jc      loc_2337                ;*Jump if carry Set +31E4:908F  72 71                                db       72h, 71h +31E4:9091  00 00                                add     [bx+si],al +31E4:9093  35 E401                              xor     ax,0E401h +31E4:9096  00 10                                add     [bx+si],dl +31E4:9098  00 0B                                add     [bp+di],cl +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 498 + +31E4:909A  00 03                                add     [bp+di],al +31E4:909C  01 3A                                add     [bp+si],di +31E4:909E  7F 14                                jg      loc_2335                ; Jump if > +31E4:90A0  00 27                                add     [bx],ah +31E4:90A2  00 04                                add     [si],al +31E4:90A4  00 00                                add     [bx+si],al +31E4:90A6  00 E9                                add     cl,ch +31E4:90A8  5A                                   pop     dx +31E4:90A9  00 92 000D                           add     [bp+si+0Dh],dl +31E4:90AD  00 00 00 00 00 00                    db      0, 0, 0, 0, 0, 0 +31E4:90B3  00                                   db      0 +31E4:90B4                       loc_2335:                                       ;  xref 31E4:909E +31E4:90B4  20 57 6D                             and     [bx+6Dh],dl +31E4:90B7  2E: 00 00                            add     cs:[bx+si],al +31E4:90BA  72 71                ;*              jc      loc_2339                ;*Jump if carry Set +31E4:90BA  72 71                                db       72h, 71h +31E4:90BC  00 00                                add     [bx+si],al +31E4:90BE  80 00 E4                             add     byte ptr [bx+si],0E4h +31E4:90C1  00 10                                add     [bx+si],dl +31E4:90C3  00 0B                                add     [bp+di],cl +31E4:90C5  00 03                                add     [bp+di],al +31E4:90C7  01 3A                                add     [bp+si],di +31E4:90C9  7F 14                                jg      loc_2336                ; Jump if > +31E4:90CB  00 27                                add     [bx],ah +31E4:90CD  00 04                                add     [si],al +31E4:90CF  00 00                                add     [bx+si],al +31E4:90D1  00 E9                                add     cl,ch +31E4:90D3  5A                                   pop     dx +31E4:90D4  00 92 000D                           add     [bp+si+0Dh],dl +31E4:90D8  00 00 00 00 00 00                    db      0, 0, 0, 0, 0, 0 +31E4:90DE  00                                   db      0 +31E4:90DF                       loc_2336:                                       ;  xref 31E4:90C9 +31E4:90DF  20 57 6D                             and     [bx+6Dh],dl +31E4:90E2  30 00                                xor     [bx+si],al +31E4:90E4  00 72 71                             add     [bp+si+71h],dh +31E4:90E7  00 00                                add     [bx+si],al +31E4:90E9  A1 E500                              mov     ax,data_1185            ; (31E4:E500=8000h) +31E4:90EC  00 10                                add     [bx+si],dl +31E4:90EE  00 0B                                add     [bp+di],cl +31E4:90F0  00 02                                add     [bp+si],al +31E4:90F2  01 3A                                add     [bp+si],di +31E4:90F4  7F 14                                jg      loc_2338                ; Jump if > +31E4:90F6  00 27                                add     [bx],ah +31E4:90F8  00 04                                add     [si],al +31E4:90FA  00 00                                add     [bx+si],al +31E4:90FC  00 E9                                add     cl,ch +31E4:90FE  5A                                   pop     dx +31E4:90FF  00 92 000D                           add     [bp+si+0Dh],dl +31E4:9103  00 00 00 00 00 00                    db      0, 0, 0, 0, 0, 0 +31E4:9109  00                                   db      0 +31E4:910A                       loc_2338:                                       ;  xref 31E4:90F4 +31E4:910A  20 57 6D                             and     [bx+6Dh],dl +31E4:910D  2C 00                                sub     al,0 +31E4:910F  00 72 71                             add     [bp+si+71h],dh +31E4:9112  00 00                                add     [bx+si],al +31E4:9114  1B 01                                sbb     ax,[bx+di] +31E4:9116  C4 00                                les     ax,dword ptr [bx+si]    ; Load seg:offset ptr +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 499 + +31E4:9118  10 00                                adc     [bx+si],al +31E4:911A  12 00                                adc     al,[bx+si] +31E4:911C  03 01                                add     ax,[bx+di] +31E4:911E  3A 7F 14                             cmp     bh,[bx+14h] +31E4:9121  00 27                                add     [bx],ah +31E4:9123  00 04                                add     [si],al +31E4:9125  00 00                                add     [bx+si],al +31E4:9127  00 F2                                add     dl,dh +31E4:9129  5A                                   pop     dx +31E4:912A  00 AE 000D                           add     [bp+0Dh],ch +31E4:912E  0007[00]                             db      7 dup (0) +31E4:9135  20 57 6D 2C 00 00                    db       20h, 57h, 6Dh, 2Ch, 00h, 00h +31E4:913B  72 71 00 00 32 01                    db       72h, 71h, 00h, 00h, 32h, 01h +31E4:9141  A8 00 30 00 08 00                    db      0A8h, 00h, 30h, 00h, 08h, 00h +31E4:9147  03 01 3A 7F 14 00                    db       03h, 01h, 3Ah, 7Fh, 14h, 00h +31E4:914D  27 00 04 00 00 00                    db       27h, 00h, 04h, 00h, 00h, 00h +31E4:9153  FB 5A 00 C8 0D 00                    db      0FBh, 5Ah, 00h,0C8h, 0Dh, 00h +31E4:9159  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:915F  00 20 57 6D 2D 00                    db       00h, 20h, 57h, 6Dh, 2Dh, 00h +31E4:9165  00 72 71 00 00 BF                    db       00h, 72h, 71h, 00h, 00h,0BFh +31E4:916B  00 08 01 20 00 1E                    db       00h, 08h, 01h, 20h, 00h, 1Eh +31E4:9171  00 03 00 3A 7F 14                    db       00h, 03h, 00h, 3Ah, 7Fh, 14h +31E4:9177  00 27 00 04 00 00                    db       00h, 27h, 00h, 04h, 00h, 00h +31E4:917D  00 04 5B 00 D4 0D                    db       00h, 04h, 5Bh, 00h,0D4h, 0Dh +31E4:9183  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:9189  00 00                                db       00h, 00h +31E4:918B                       loc_2340: +31E4:918B  20 57 6D                             and     [bx+6Dh],dl +31E4:918E  2D 0000                              sub     ax,0 +31E4:9191  72 71                ;*              jc      loc_2341                ;*Jump if carry Set +31E4:9191  72 71                                db       72h, 71h +31E4:9193  00 00                                add     [bx+si],al +31E4:9195  2E 01 FB 00 10 00                    db       2Eh, 01h,0FBh, 00h, 10h, 00h +31E4:919B  10 00 03 00 3A 7F                    db       10h, 00h, 03h, 00h, 3Ah, 7Fh +31E4:91A1  10 00 10 00 04 00                    db       10h, 00h, 10h, 00h, 04h, 00h +31E4:91A7  00 00 0D 5B 00 04                    db       00h, 00h, 0Dh, 5Bh, 00h, 04h +31E4:91AD  0E                                   db       0Eh +31E4:91AE  0008[00]                             db      8 dup (0) +31E4:91B6  20 57 6D 2D 00 00                    db       20h, 57h, 6Dh, 2Dh, 00h, 00h +31E4:91BC  72 71 00 00 5E 01                    db       72h, 71h, 00h, 00h, 5Eh, 01h +31E4:91C2  07 01 10 00 10 00                    db       07h, 01h, 10h, 00h, 10h, 00h +31E4:91C8  03 00 3A 7F 10 00                    db       03h, 00h, 3Ah, 7Fh, 10h, 00h +31E4:91CE  10 00 04 00 8C 00                    db       10h, 00h, 04h, 00h, 8Ch, 00h +31E4:91D4  16 5B 00 40 0E                       db       16h, 5Bh, 00h, 40h, 0Eh +31E4:91D9  0008[00]                             db      8 dup (0) +31E4:91E1  20 57 6D 2D 00 00                    db       20h, 57h, 6Dh, 2Dh, 00h, 00h +31E4:91E7  72 71 00 00 A0 01                    db       72h, 71h, 00h, 00h,0A0h, 01h +31E4:91ED  0E 01 10 00 10 00                    db       0Eh, 01h, 10h, 00h, 10h, 00h +31E4:91F3  02 01 3A 7F 10 00                    db       02h, 01h, 3Ah, 7Fh, 10h, 00h +31E4:91F9  10 00 04 00 28 00                    db       10h, 00h, 04h, 00h, 28h, 00h +31E4:91FF  1F 5B 00 8C 0E                       db       1Fh, 5Bh, 00h, 8Ch, 0Eh +31E4:9204  00                                   db      0 +31E4:9205  0007[00]                             db      7 dup (0) +31E4:920C  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:9212  72 71 00 00 80 00                    db       72h, 71h, 00h, 00h, 80h, 00h +31E4:9218  09 01 20 00 2E 00                    db       09h, 01h, 20h, 00h, 2Eh, 00h +31E4:921E  02 01 3A 7F 19 00                    db       02h, 01h, 3Ah, 7Fh, 19h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 500 + +31E4:9224  2E 00 04 00 00 00                    db       2Eh, 00h, 04h, 00h, 00h, 00h +31E4:922A  28 5B 00 E6 0E                       db       28h, 5Bh, 00h,0E6h, 0Eh +31E4:922F  0008[00]                             db      8 dup (0) +31E4:9237  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:923D  72 71 00 00 C7 00                    db       72h, 71h, 00h, 00h,0C7h, 00h +31E4:9243  0E 01 10 00 18 00                    db       0Eh, 01h, 10h, 00h, 18h, 00h +31E4:9249  02 00 3A 7F 10 00                    db       02h, 00h, 3Ah, 7Fh, 10h, 00h +31E4:924F  18 00 04 00 00 00                    db       18h, 00h, 04h, 00h, 00h, 00h +31E4:9255  31 5B 00 BC 0F 00                    db       31h, 5Bh, 00h,0BCh, 0Fh, 00h +31E4:925B  0007[00]                             db      7 dup (0) +31E4:9262  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:9268  72 71 00 00 9A 00                    db       72h, 71h, 00h, 00h, 9Ah, 00h +31E4:926E  07 01 10 00 10 00                    db       07h, 01h, 10h, 00h, 10h, 00h +31E4:9274  02 00 3A 7F 10 00                    db       02h, 00h, 3Ah, 7Fh, 10h, 00h +31E4:927A  10 00 04 00 00 00                    db       10h, 00h, 04h, 00h, 00h, 00h +31E4:9280  3A 5B 00 EC 0F                       db       3Ah, 5Bh, 00h,0ECh, 0Fh +31E4:9285  0008[00]                             db      8 dup (0) +31E4:928D  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:9293  72 71 00 00 F4 00                    db       72h, 71h, 00h, 00h,0F4h, 00h +31E4:9299  12 01 20 00 21 00                    db       12h, 01h, 20h, 00h, 21h, 00h +31E4:929F  02 01 3A 7F 13 00                    db       02h, 01h, 3Ah, 7Fh, 13h, 00h +31E4:92A5  21 00 04 00 00 00                    db       21h, 00h, 04h, 00h, 00h, 00h +31E4:92AB  43 5B 00 38 10 00                    db       43h, 5Bh, 00h, 38h, 10h, 00h +31E4:92B1  0007[00]                             db      7 dup (0) +31E4:92B8  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:92BE  72 71 00 00 29 01                    db       72h, 71h, 00h, 00h, 29h, 01h +31E4:92C4  FA 00 20 00 14 00                    db      0FAh, 00h, 20h, 00h, 14h, 00h +31E4:92CA  03 00 3A 7F 15 00                    db       03h, 00h, 3Ah, 7Fh, 15h, 00h +31E4:92D0  14 00 04 00 00 00                    db       14h, 00h, 04h, 00h, 00h, 00h +31E4:92D6  55 5B 00 82 10 00                    db       55h, 5Bh, 00h, 82h, 10h, 00h +31E4:92DC  0007[00]                             db      7 dup (0) +31E4:92E3  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:92E9  72 71 00 00 48 01                    db       72h, 71h, 00h, 00h, 48h, 01h +31E4:92EF  14 01 10 00 0F 00                    db       14h, 01h, 10h, 00h, 0Fh, 00h +31E4:92F5  03 00 3A 7F 0B 00                    db       03h, 00h, 3Ah, 7Fh, 0Bh, 00h +31E4:92FB  0F 00 04 00 00 00                    db       0Fh, 00h, 04h, 00h, 00h, 00h +31E4:9301  5E 5B 50 3E 11 00                    db       5Eh, 5Bh, 50h, 3Eh, 11h, 00h +31E4:9307  0007[00]                             db      7 dup (0) +31E4:930E  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:9314  72 71 00 00 23 01                    db       72h, 71h, 00h, 00h, 23h, 01h +31E4:931A  19 01 10 00 0B 00                    db       19h, 01h, 10h, 00h, 0Bh, 00h +31E4:9320  03 00 3A 7F 0F 00                    db       03h, 00h, 3Ah, 7Fh, 0Fh, 00h +31E4:9326  0B 00 04 00 00 00                    db       0Bh, 00h, 04h, 00h, 00h, 00h +31E4:932C  67 5B 00 80 11 00                    db       67h, 5Bh, 00h, 80h, 11h, 00h +31E4:9332  0007[00]                             db      7 dup (0) +31E4:9339  20 57 6D 2E 00 00                    db       20h, 57h, 6Dh, 2Eh, 00h, 00h +31E4:933F  72 71 00 00 32 01                    db       72h, 71h, 00h, 00h, 32h, 01h +31E4:9345  18 01 20 00 14 00                    db       18h, 01h, 20h, 00h, 14h, 00h +31E4:934B  03 00 3A 7F 0F 00                    db       03h, 00h, 3Ah, 7Fh, 0Fh, 00h +31E4:9351  0B 00 04 00 00 00                    db       0Bh, 00h, 04h, 00h, 00h, 00h +31E4:9357  70 5B 00 A4 11 00                    db       70h, 5Bh, 00h,0A4h, 11h, 00h +31E4:935D  0007[00]                             db      7 dup (0) +31E4:9364  20 57 6D 2A 00 00                    db       20h, 57h, 6Dh, 2Ah, 00h, 00h +31E4:936A  72 71 00 00 03 01                    db       72h, 71h, 00h, 00h, 03h, 01h +31E4:9370  F6 00 20 00 0C 00                    db      0F6h, 00h, 20h, 00h, 0Ch, 00h +31E4:9376  01 01 3A 7F 13 00                    db       01h, 01h, 3Ah, 7Fh, 13h, 00h +31E4:937C  0C 00 04 00 00 00                    db       0Ch, 00h, 04h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 501 + +31E4:9382  4C 5B 00 14 12 00                    db       4Ch, 5Bh, 00h, 14h, 12h, 00h +31E4:9388  0007[00]                             db      7 dup (0)               ; Data table (indexed access) +31E4:938F  20 57 6D 2A 00 00                    db       20h, 57h, 6Dh, 2Ah, 00h, 00h +31E4:9395  72 71 00 00 15 01                    db       72h, 71h, 00h, 00h, 15h, 01h +31E4:939B  12 01 20 00 0C 00                    db       12h, 01h, 20h, 00h, 0Ch, 00h +31E4:93A1  01 01 3A 7F 13 00                    db       01h, 01h, 3Ah, 7Fh, 13h, 00h +31E4:93A7  0C 00 04 00 00 00                    db       0Ch, 00h, 04h, 00h, 00h, 00h +31E4:93AD  4C 5B 00 4E 12                       db       4Ch, 5Bh, 00h, 4Eh, 12h +31E4:93B2  0008[00]                             db      8 dup (0) +31E4:93BA  20 57 6D 2A 00 00                    db       20h, 57h, 6Dh, 2Ah, 00h, 00h +31E4:93C0  72 71 00 00 42 01                    db       72h, 71h, 00h, 00h, 42h, 01h +31E4:93C6  18 01 20 00 0C 00                    db       18h, 01h, 20h, 00h, 0Ch, 00h +31E4:93CC  01 01 3A 7F 13 00                    db       01h, 01h, 3Ah, 7Fh, 13h, 00h +31E4:93D2  0C 00 04 00 00 00                    db       0Ch, 00h, 04h, 00h, 00h, 00h +31E4:93D8  4C 5B 00 E8 12 00                    db       4Ch, 5Bh, 00h,0E8h, 12h, 00h +31E4:93DE  0007[00]                             db      7 dup (0) +31E4:93E5  20 57 6D 2B 00 00                    db       20h, 57h, 6Dh, 2Bh, 00h, 00h +31E4:93EB  72 71 00 00 92 00                    db       72h, 71h, 00h, 00h, 92h, 00h +31E4:93F1  0D 01 20 00 0C 00                    db       0Dh, 01h, 20h, 00h, 0Ch, 00h +31E4:93F7  01 01 3A 7F 13 00                    db       01h, 01h, 3Ah, 7Fh, 13h, 00h +31E4:93FD  0C 00 04 00 00 00                    db       0Ch, 00h, 04h, 00h, 00h, 00h +31E4:9403  4C 5B 00 26 14 00                    db       4Ch, 5Bh, 00h, 26h, 14h, 00h +31E4:9409  0007[00]                             db      7 dup (0) +31E4:9410  20 57 6D 2B 00 00                    db       20h, 57h, 6Dh, 2Bh, 00h, 00h +31E4:9416  72 71 00 00 87 00                    db       72h, 71h, 00h, 00h, 87h, 00h +31E4:941C  22 01 20 00 0C 00                    db       22h, 01h, 20h, 00h, 0Ch, 00h +31E4:9422  01 01 3A 7F 13 00                    db       01h, 01h, 3Ah, 7Fh, 13h, 00h +31E4:9428  0C 00 04 00 00 00                    db       0Ch, 00h, 04h, 00h, 00h, 00h +31E4:942E  4C 5B 00 7C 14                       db       4Ch, 5Bh, 00h, 7Ch, 14h +31E4:9433  0008[00]                             db      8 dup (0) +31E4:943B  20 57 6D 2C 00 00                    db       20h, 57h, 6Dh, 2Ch, 00h, 00h +31E4:9441  72 71 00 00 0E 01                    db       72h, 71h, 00h, 00h, 0Eh, 01h +31E4:9447  3D 01 20 00 0C 00                    db       3Dh, 01h, 20h, 00h, 0Ch, 00h +31E4:944D  01 01 3A 7F 13 00                    db       01h, 01h, 3Ah, 7Fh, 13h, 00h +31E4:9453  0C 00 04 00 00 00                    db       0Ch, 00h, 04h, 00h, 00h, 00h +31E4:9459  4C 5B 00 20 15 00                    db       4Ch, 5Bh, 00h, 20h, 15h, 00h +31E4:945F  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:9465  00 20 57 6D 1C 00                    db       00h, 20h, 57h, 6Dh, 1Ch, 00h +31E4:946B  00 72 71 00 00 F1                    db       00h, 72h, 71h, 00h, 00h,0F1h +31E4:9471  00 1E 01 50 00 0B                    db       00h, 1Eh, 01h, 50h, 00h, 0Bh +31E4:9477  00 03 00 3A 7F 48                    db       00h, 03h, 00h, 3Ah, 7Fh, 48h +31E4:947D  00 0B 00 04 00 00                    db       00h, 0Bh, 00h, 04h, 00h, 00h +31E4:9483  00 79 5B 00 AA 15                    db       00h, 79h, 5Bh, 00h,0AAh, 15h +31E4:9489  00                                   db       00h +31E4:948A  0007[00]                             db      7 dup (0) +31E4:9491  20 57 6D 1C 00 00                    db       20h, 57h, 6Dh, 1Ch, 00h, 00h +31E4:9497  72 71 00 00 62 01                    db       72h, 71h, 00h, 00h, 62h, 01h +31E4:949D  F0 00 20 00 2B 00                    db      0F0h, 00h, 20h, 00h, 2Bh, 00h +31E4:94A3  03 00 3A 7F 14 00                    db       03h, 00h, 3Ah, 7Fh, 14h, 00h +31E4:94A9  2A 00 04 00 00 00                    db       2Ah, 00h, 04h, 00h, 00h, 00h +31E4:94AF  82 5B 00 AA 15 00                    db       82h, 5Bh, 00h,0AAh, 15h, 00h +31E4:94B5  00                                   db       00h +31E4:94B6  0007[00]                             db      7 dup (0) +31E4:94BD  57 6D 0D 00 00 72                    db       57h, 6Dh, 0Dh, 00h, 00h, 72h +31E4:94C3  71 00 00 7C 01 23                    db       71h, 00h, 00h, 7Ch, 01h, 23h +31E4:94C9  01 20 00 1C 00 02                    db       01h, 20h, 00h, 1Ch, 00h, 02h +31E4:94CF  01 3A 7F 18 00 1C                    db       01h, 3Ah, 7Fh, 18h, 00h, 1Ch +31E4:94D5  00 04 00 00 00 8B                    db       00h, 04h, 00h, 00h, 00h, 8Bh +31E4:94DB  5B 10 E6 15 00 00                    db       5Bh, 10h,0E6h, 15h, 00h, 00h +31E4:94E1  00 00 00 02 00 0A                    db       00h, 00h, 00h, 02h, 00h, 0Ah +31E4:94E7  03 0B 01 2F 80 01                    db       03h, 0Bh, 01h, 2Fh, 80h, 01h +31E4:94ED  02 00 00 E4 94 0D                    db       02h, 00h, 00h,0E4h, 94h, 0Dh +31E4:94F3  00 00 72 71 00 00                    db       00h, 00h, 72h, 71h, 00h, 00h +31E4:94F9  D5 00 FE 00 10 00                    db      0D5h, 00h,0FEh, 00h, 10h, 00h +31E4:94FF  0A 00 03 01 3A 7F                    db       0Ah, 00h, 03h, 01h, 3Ah, 7Fh +31E4:9505  07 00 08 00 04 00                    db       07h, 00h, 08h, 00h, 04h, 00h +31E4:950B  00 00 94 5B 30 1A                    db       00h, 00h, 94h, 5Bh, 30h, 1Ah +31E4:9511  16 00 00 00 00 00                    db       16h, 00h, 00h, 00h, 00h, 00h +31E4:9517  00 00 00 20 57 6D                    db       00h, 00h, 00h, 20h, 57h, 6Dh +31E4:951D  09 00 00 72 71 00                    db       09h, 00h, 00h, 72h, 71h, 00h +31E4:9523  00 80 00 88 00 10                    db       00h, 80h, 00h, 88h, 00h, 10h +31E4:9529  00 14 00 02 01 3A                    db       00h, 14h, 00h, 02h, 01h, 3Ah +31E4:952F  7F 0F 00 14 00 04                    db       7Fh, 0Fh, 00h, 14h, 00h, 04h +31E4:9535  00 00 00 A6 5B 00                    db       00h, 00h, 00h,0A6h, 5Bh, 00h +31E4:953B  46 16                                db       46h, 16h +31E4:953D  0008[00]                             db      8 dup (0) +31E4:9545  20 57 6D 09 00 00                    db       20h, 57h, 6Dh, 09h, 00h, 00h +31E4:954B  72 71 00 00 80 00                    db       72h, 71h, 00h, 00h, 80h, 00h +31E4:9551  88 00 10 00 14 00                    db       88h, 00h, 10h, 00h, 14h, 00h +31E4:9557  02 01 3A 7F 0F 00                    db       02h, 01h, 3Ah, 7Fh, 0Fh, 00h +31E4:955D  14 00 04 00 00 00                    db       14h, 00h, 04h, 00h, 00h, 00h +31E4:9563  A6 5B 00 8A 19                       db      0A6h, 5Bh, 00h, 8Ah, 19h +31E4:9568  0008[00]                             db      8 dup (0) +31E4:9570  20 57 6D 09 00 00                    db       20h, 57h, 6Dh, 09h, 00h, 00h +31E4:9576  72 71 00 00 80 00                    db       72h, 71h, 00h, 00h, 80h, 00h +31E4:957C  88 00 10 00 14 00                    db       88h, 00h, 10h, 00h, 14h, 00h +31E4:9582  02 01 3A 7F 0F 00                    db       02h, 01h, 3Ah, 7Fh, 0Fh, 00h +31E4:9588  14 00 04 00 00 00                    db       14h, 00h, 04h, 00h, 00h, 00h +31E4:958E  A6 5B 00 92 1E                       db      0A6h, 5Bh, 00h, 92h, 1Eh +31E4:9593  0008[00]                             db      8 dup (0) +31E4:959B  20 57 6D 0F 00 00                    db       20h, 57h, 6Dh, 0Fh, 00h, 00h +31E4:95A1  72 71 00 00 B1 01                    db       72h, 71h, 00h, 00h,0B1h, 01h +31E4:95A7  B5 00 10 00 08 00                    db      0B5h, 00h, 10h, 00h, 08h, 00h +31E4:95AD  01 01 3A 7F 0B 00                    db       01h, 01h, 3Ah, 7Fh, 0Bh, 00h +31E4:95B3  08 00 04 00 00 00                    db       08h, 00h, 04h, 00h, 00h, 00h +31E4:95B9  9D 5B 00 06 26 00                    db       9Dh, 5Bh, 00h, 06h, 26h, 00h +31E4:95BF  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +31E4:95C5  01 10 80 05 F2 05                    db       01h, 10h, 80h, 05h,0F2h, 05h +31E4:95CB  11 02 00 00 C3 95                    db       11h, 02h, 00h, 00h,0C3h, 95h +31E4:95D1  30 00 00 72 71 00                    db       30h, 00h, 00h, 72h, 71h, 00h +31E4:95D7  00 21 01 EB 00 60                    db       00h, 21h, 01h,0EBh, 00h, 60h +31E4:95DD  00 40 00 01 01 3A                    db       00h, 40h, 00h, 01h, 01h, 3Ah +31E4:95E3  7F 5C 00 40 00 04                    db       7Fh, 5Ch, 00h, 40h, 00h, 04h +31E4:95E9  00 00 00 2C 5A 00                    db       00h, 00h, 00h, 2Ch, 5Ah, 00h +31E4:95EF  72 26                                db       72h, 26h +31E4:95F1  0007[00]                             db      7 dup (0) +31E4:95F8  20 C3 95 30 00 00                    db       20h,0C3h, 95h, 30h, 00h, 00h +31E4:95FE  72 71 00 00 61 01                    db       72h, 71h, 00h, 00h, 61h, 01h +31E4:9604  85                   data_1064       db      85h +31E4:9605  00 10 00 7D 00 01                    db       00h, 10h, 00h, 7Dh, 00h, 01h +31E4:960B  01 3A 7F 03 00 7D                    db       01h, 3Ah, 7Fh, 03h, 00h, 7Dh +31E4:9611  00 01 00 00 00 35                    db       00h, 01h, 00h, 00h, 00h, 35h +31E4:9617  5A 00                                db       5Ah, 00h +31E4:9619  72 26                                db       72h, 26h +31E4:961B  0007[00]                             db      7 dup (0) +31E4:9622  20 C3 95 30 00 00                    db       20h,0C3h, 95h, 30h, 00h, 00h +31E4:9628  72 71 00 00 81 01                    db       72h, 71h, 00h, 00h, 81h, 01h +31E4:962E  85 00 10 00 8D 00                    db       85h, 00h, 10h, 00h, 8Dh, 00h +31E4:9634  01 01 3A 7F 03 00                    db       01h, 01h, 3Ah, 7Fh, 03h, 00h +31E4:963A  8D 00 01 00 00 00                    db       8Dh, 00h, 01h, 00h, 00h, 00h +31E4:9640  3E 5A 00 72 26 00                    db       3Eh, 5Ah, 00h, 72h, 26h, 00h +31E4:9646  00 00 00 03 00 0A                    db       00h, 00h, 00h, 03h, 00h, 0Ah +31E4:964C  59 06 04 8F 06 01                    db       59h, 06h, 04h, 8Fh, 06h, 01h +31E4:9652  10 80 09 02 00 00                    db       10h, 80h, 09h, 02h, 00h, 00h +31E4:9658  49 96 30 00 00 72                    db       49h, 96h, 30h, 00h, 00h, 72h +31E4:965E  71 00 00 06 01 07                    db       71h, 00h, 00h, 06h, 01h, 07h +31E4:9664  01 50 00 25 00 01                    db       01h, 50h, 00h, 25h, 00h, 01h +31E4:966A  01 3A 7F 50 00 25                    db       01h, 3Ah, 7Fh, 50h, 00h, 25h +31E4:9670  00 01 00 00 00 50                    db       00h, 01h, 00h, 00h, 00h, 50h +31E4:9676  5A 00 BC 26 00 00                    db       5Ah, 00h,0BCh, 26h, 00h, 00h +31E4:967C  00 00 00 00 41 04                    db       00h, 00h, 00h, 00h, 41h, 04h +31E4:9682  92 10 00 00 03                       db       92h, 10h, 00h, 00h, 03h +31E4:9687  0007[00]                             db      7 dup (0) +31E4:968E  F4 0C 94 0B 08 00                    db      0F4h, 0Ch, 94h, 0Bh, 08h, 00h +31E4:9694  34 0A D4 08 06 0D                    db       34h, 0Ah,0D4h, 08h, 06h, 0Dh +31E4:969A  00                                   db       00h +31E4:969B  0009[00]                             db      9 dup (0) +31E4:96A4  DC 0D EF 6C                          db      0DCh, 0Dh,0EFh, 6Ch +31E4:96A8  0008[00]                             db      8 dup (0) +31E4:96B0  20 57 6D 06 00 00                    db       20h, 57h, 6Dh, 06h, 00h, 00h +31E4:96B6  72 71 00 00 C8 00                    db       72h, 71h, 00h, 00h,0C8h, 00h +31E4:96BC  D3 00 40 00 3E 00                    db      0D3h, 00h, 40h, 00h, 3Eh, 00h +31E4:96C2  01 01 2D 98 30 00                    db       01h, 01h, 2Dh, 98h, 30h, 00h +31E4:96C8  3E 00 01 00 00 00                    db       3Eh, 00h, 01h, 00h, 00h, 00h +31E4:96CE  6B 5A 20 00                          db       6Bh, 5Ah, 20h, 00h +31E4:96D2  0008[00]                             db      8 dup (0) +31E4:96DA  20 57 6D 06 00 00                    db       20h, 57h, 6Dh, 06h, 00h, 00h +31E4:96E0  72 71 00 00 60 00                    db       72h, 71h, 00h, 00h, 60h, 00h +31E4:96E6  68 00 20 00 20 00                    db       68h, 00h, 20h, 00h, 20h, 00h +31E4:96EC  01 01 BD 41 20 00                    db       01h, 01h,0BDh, 41h, 20h, 00h +31E4:96F2  20 00 01 00 00 00                    db       20h, 00h, 01h, 00h, 00h, 00h +31E4:96F8  74 5A 10 00                          db       74h, 5Ah, 10h, 00h +31E4:96FC  0008[00]                             db      8 dup (0) +31E4:9704  20 57 6D 06 00 00                    db       20h, 57h, 6Dh, 06h, 00h, 00h +31E4:970A  72 71 00 00 60 00                    db       72h, 71h, 00h, 00h, 60h, 00h +31E4:9710  68 00 20 00 20 00                    db       68h, 00h, 20h, 00h, 20h, 00h +31E4:9716  01 01 BD 41 20 00                    db       01h, 01h,0BDh, 41h, 20h, 00h +31E4:971C  20 00 01 00 00 00                    db       20h, 00h, 01h, 00h, 00h, 00h +31E4:9722  7D 5A 20 00                          db       7Dh, 5Ah, 20h, 00h +31E4:9726  0007[00]                             db      7 dup (0) +31E4:972D  46 04 92 10 00 00                    db       46h, 04h, 92h, 10h, 00h, 00h +31E4:9733  03                                   db       03h +31E4:9734  0007[00]                             db      7 dup (0) +31E4:973B  F4 0C 94 0B 08 00                    db      0F4h, 0Ch, 94h, 0Bh, 08h, 00h +31E4:9741  34 0A D4 08 06 0D                    db       34h, 0Ah,0D4h, 08h, 06h, 0Dh +31E4:9747  00                                   db       00h +31E4:9748  0009[00]                             db      9 dup (0) +31E4:9751  DC 0D EF 6C                          db      0DCh, 0Dh,0EFh, 6Ch +31E4:9755  0008[00]                             db      8 dup (0) +31E4:975D  20 57 6D 31 00 00                    db       20h, 57h, 6Dh, 31h, 00h, 00h +31E4:9763  72 71 00 00 C8 00                    db       72h, 71h, 00h, 00h,0C8h, 00h +31E4:9769  FC 00 40 00 3E 00                    db      0FCh, 00h, 40h, 00h, 3Eh, 00h +31E4:976F  01 01 2D 98 30 00                    db       01h, 01h, 2Dh, 98h, 30h, 00h +31E4:9775  3E 00 01 00 00 00                    db       3Eh, 00h, 01h, 00h, 00h, 00h +31E4:977B  6B 5A 70 00                          db       6Bh, 5Ah, 70h, 00h +31E4:977F  0008[00]                             db      8 dup (0) +31E4:9787  20 57 6D 31 00 00                    db       20h, 57h, 6Dh, 31h, 00h, 00h +31E4:978D  72 71 00 00 60 00                    db       72h, 71h, 00h, 00h, 60h, 00h +31E4:9793  68 00 20 00 20 00                    db       68h, 00h, 20h, 00h, 20h, 00h +31E4:9799  01 01 BD 41 20 00                    db       01h, 01h,0BDh, 41h, 20h, 00h +31E4:979F  20 00 01 00 00 00                    db       20h, 00h, 01h, 00h, 00h, 00h +31E4:97A5  74 5A                                db       74h, 5Ah +31E4:97A7  000A[00]                             db      10 dup (0) +31E4:97B1  20 57 6D 31 00 00                    db       20h, 57h, 6Dh, 31h, 00h, 00h +31E4:97B7  72 71 00 00 60 00                    db       72h, 71h, 00h, 00h, 60h, 00h +31E4:97BD  68 00 20 00 20 00                    db       68h, 00h, 20h, 00h, 20h, 00h +31E4:97C3  01 01 BD 41 20 00                    db       01h, 01h,0BDh, 41h, 20h, 00h +31E4:97C9  20 00 01 00 00 00                    db       20h, 00h, 01h, 00h, 00h, 00h +31E4:97CF  7D 5A                                db       7Dh, 5Ah +31E4:97D1  000A[00]                             db      10 dup (0) +31E4:97DB  20 00 00 2D 00 00                    db       20h, 00h, 00h, 2Dh, 00h, 00h +31E4:97E1  72 71 00 00 70 01                    db       72h, 71h, 00h, 00h, 70h, 01h +31E4:97E7  1B 01 20 00 25 00                    db       1Bh, 01h, 20h, 00h, 25h, 00h +31E4:97ED  01 01 BD 41 18 00                    db       01h, 01h,0BDh, 41h, 18h, 00h +31E4:97F3  25 00 01 00 00 00                    db       25h, 00h, 01h, 00h, 00h, 00h +31E4:97F9  86 5A 00                             db       86h, 5Ah, 00h +31E4:97FC  0009[00]                             db      9 dup (0) +31E4:9805  20 57 6D 29 00 00                    db       20h, 57h, 6Dh, 29h, 00h, 00h +31E4:980B  BD 41 00 00 A3 00                    db      0BDh, 41h, 00h, 00h,0A3h, 00h +31E4:9811  C9 00 D0 00 59 00                    db      0C9h, 00h,0D0h, 00h, 59h, 00h +31E4:9817  02 00 B3 87 14 00                    db       02h, 00h,0B3h, 87h, 14h, 00h +31E4:981D  0C 00 04 00 00 00                    db       0Ch, 00h, 04h, 00h, 00h, 00h +31E4:9823  F6 59 00                             db      0F6h, 59h, 00h +31E4:9826  4E 27                                db       4Eh, 27h +31E4:9828  00 00 00 00                          db      0, 0, 0, 0 +31E4:982C  0000            new_room_number_2    dw      0                       ;  xref 273F:60AB +31E4:982E  0000                   new_room_x    dw      0                       ;  xref 273F:6093 +31E4:9830  0000                   new_room_y    dw      0                       ;  xref 273F:609F +31E4:9832  0001                  room_number    dw      1 +31E4:9834  00                      data_1084    db      0                       ;  xref 273F:12AF, 273F:12BE +                                                                                ;       273F:12C5, 273F:132F +                                                                                ;       273F:140B, 273F:1C4B +                                                                                ;       273F:1C52, 273F:1C70 +                                                                                ;       273F:5588 +31E4:9835  00            num_inventory_items    db      0                       ;  xref 273F:59DB, 273F:5A03 +31E4:9836  01                   data_1085       db      1 +31E4:9837  00             talk_dialog_active    db      0 +31E4:9838  0000                 data_1087       dw      0 +31E4:983A  00                   data_1088       db      0 +31E4:983B  03E8            talk_character_id    dw      PLAYER_HOTSPOT_ID +31E4:983D  6B 00                                db      6Bh, 00h +31E4:983F  03EA                 data_1090       dw      3EAh                    ;  xref 273F:1FC8 +31E4:9841  0000                 data_1091       dw      0                       ;  xref 273F:1489 +31E4:9843  00 00 00 00                          db      0, 0, 0, 0 +31E4:9847  0000                 data_1093       dw      0                       ;  xref 273F:62B6 + +31E4:9849  00                  pathfind_data    db      00             ; Set of entries each 120 bytes +31E4:984A  A5 C4 00 00 00      pathfind_data2   db       00h,0A5h,0C4h, 00h, 00h, 00h +31E4:984F  96 75 5A AD 93 A0                    db       96h, 75h, 5Ah,0ADh, 93h,0A0h +31E4:9855  74 C9 24 44 8F C4                    db       74h,0C9h, 24h, 44h, 8Fh,0C4h +31E4:985B  A9 88 93 3C 15 86                    db      0A9h, 88h, 93h, 3Ch, 15h, 86h +31E4:9861  24 A8 1B 44 7E E0                    db       24h,0A8h, 1Bh, 44h, 7Eh,0E0h +31E4:9867  69 C2 D4 CC C4 4C                    db       69h,0C2h,0D4h,0CCh,0C4h, 4Ch +31E4:986D  FB F4 86 E2 2E 6F                    db      0FBh,0F4h, 86h,0E2h, 2Eh, 6Fh +31E4:9873  D6 C6 B8 D5 FF FC                    db      0D6h,0C6h,0B8h,0D5h,0FFh,0FCh +31E4:9879  1E 80 9C 00 05 4C                    db       1Eh, 80h, 9Ch, 00h, 05h, 4Ch +31E4:987F  CC 56 00 05 22 11                    db      0CCh, 56h, 00h, 05h, 22h, 11h +31E4:9885  56 00 05 62 98 5C                    db       56h, 00h, 05h, 62h, 98h, 5Ch +31E4:988B  00 04 A1 45 12 00                    db       00h, 04h,0A1h, 45h, 12h, 00h +31E4:9891  04 00 09 46 00 07                    db       04h, 00h, 09h, 46h, 00h, 07h +31E4:9897  EF 74 96 00 05 00                    db      0EFh, 74h, 96h, 00h, 05h, 00h +31E4:989D  02 36 00 07 FF E9                    db       02h, 36h, 00h, 07h,0FFh,0E9h +31E4:98A3  D0 03 F8 01 FF F2                    db      0D0h, 03h,0F8h, 01h,0FFh,0F2h +31E4:98A9  00 20 00 0B D6 00                    db       00h, 20h, 00h, 0Bh,0D6h, 00h +31E4:98AF  20 00 06 16 EF E0                    db       20h, 00h, 06h, 16h,0EFh,0E0h +31E4:98B5  00 01 EE 20 E0 00                    db       00h, 01h,0EEh, 20h,0E0h, 00h +31E4:98BB  01 3A B7 7F FF FE                    db       01h, 3Ah,0B7h, 7Fh,0FFh,0FEh +31E4:98C1  C6 00 80 24 01 00                    db      0C6h, 00h, 80h, 24h, 01h, 00h +31E4:98C7  50 80 24 01 00 8E                    db       50h, 80h, 24h, 01h, 00h, 8Eh +31E4:98CD  80 24 01 00 82 80                    db       80h, 24h, 01h, 00h, 82h, 80h +31E4:98D3  24 01 00 16 80 24                    db       24h, 01h, 00h, 16h, 80h, 24h +31E4:98D9  01 00 90 80 24 01                    db       01h, 00h, 90h, 80h, 24h, 01h +31E4:98DF  00 A6 80 24 01 FF                    db       00h,0A6h, 80h, 24h, 01h,0FFh +31E4:98E5  04 80 24 01 00 46                    db       04h, 80h, 24h, 01h, 00h, 46h +31E4:98EB  80 E7 01 00 62 90                    db       80h,0E7h, 01h, 00h, 62h, 90h +31E4:98F1  81 09 00 44 90 81                    db       81h, 09h, 00h, 44h, 90h, 81h +31E4:98F7  09 00 5E 90 81 09                    db       09h, 00h, 5Eh, 90h, 81h, 09h +31E4:98FD  00 36 90 81 09 00                    db       00h, 36h, 90h, 81h, 09h, 00h +31E4:9903  59 FF FF 0F E0 96                    db       59h,0FFh,0FFh, 0Fh,0E0h, 96h +31E4:9909  00 00 00 10 88 00                    db       00h, 00h, 00h, 10h, 88h, 00h +31E4:990F  00 00 08 C8 00 7E                    db       00h, 00h, 08h,0C8h, 00h, 7Eh +31E4:9915  00 0C 30 00 00 00                    db       00h, 0Ch, 30h, 00h, 00h, 00h +31E4:991B  0C C0 00 00 00 0C                    db       0Ch,0C0h, 00h, 00h, 00h, 0Ch +31E4:9921  FF FF FF FF FF 80                    db      0FFh,0FFh,0FFh,0FFh,0FFh, 80h +31E4:9927  0A 94 D0 82 BD 4D                    db       0Ah, 94h,0D0h, 82h,0BDh, 4Dh +31E4:992D  31 4E 08 DF 4E 6C                    db       31h, 4Eh, 08h,0DFh, 4Eh, 6Ch +31E4:9933  8E B6 0A 45 00 A2                    db       8Eh,0B6h, 0Ah, 45h, 00h,0A2h +31E4:9939  BE 02 95 44 58 80                    db      0BEh, 02h, 95h, 44h, 58h, 80h +31E4:993F  BA 80 16 26 FC B6                    db      0BAh, 80h, 16h, 26h,0FCh,0B6h +31E4:9945  97 00 22 8A A6 C4                    db       97h, 00h, 22h, 8Ah,0A6h,0C4h +31E4:994B  30 E8 88 7A 6C 45                    db       30h,0E8h, 88h, 7Ah, 6Ch, 45h +31E4:9951  0A B2 72 87 87 C6                    db       0Ah,0B2h, 72h, 87h, 87h,0C6h +31E4:9957  83 8E 8A 66 06 BC                    db       83h, 8Eh, 8Ah, 66h, 06h,0BCh +31E4:995D  FE 92 C6 E6 81 03                    db      0FEh, 92h,0C6h,0E6h, 81h, 03h +31E4:9963  02 16 0E FF 03 7F                    db       02h, 16h, 0Eh,0FFh, 03h, 7Fh +31E4:9969  F7 58 80 02 00 00                    db      0F7h, 58h, 80h, 02h, 00h, 00h +31E4:996F  00 80 02 00 00 00                    db       00h, 80h, 02h, 00h, 00h, 00h +31E4:9975  80 02 00 00 00 80                    db       80h, 02h, 00h, 00h, 00h, 80h +31E4:997B  02 00 00 00 80 02                    db       02h, 00h, 00h, 00h, 80h, 02h +31E4:9981  00 00 00 80 03 FF                    db       00h, 00h, 00h, 80h, 03h,0FFh +31E4:9987  FF FF 80 03 FF FF                    db      0FFh,0FFh, 80h, 03h,0FFh,0FFh +31E4:998D  FF 80 0F C0 00 00                    db      0FFh, 80h, 0Fh,0C0h, 00h, 00h +31E4:9993  70 00 00 00 00 00                    db       70h, 00h, 00h, 00h, 00h, 00h +31E4:9999  38 00 1F F0 1F 10                    db       38h, 00h, 1Fh,0F0h, 1Fh, 10h +31E4:999F  00 00 00 14 30 00                    db       00h, 00h, 00h, 14h, 30h, 00h +31E4:99A5  00 00 16 FF FF FF                    db       00h, 00h, 16h,0FFh,0FFh,0FFh +31E4:99AB  FF FF E9 FF 9B 32                    db      0FFh,0FFh,0E9h,0FFh, 9Bh, 32h +31E4:99B1  FF 02 80 36 22 AE                    db      0FFh, 02h, 80h, 36h, 22h,0AEh +31E4:99B7  FE AA A5 36 E9 A2                    db      0FEh,0AAh,0A5h, 36h,0E9h,0A2h +31E4:99BD  BF 80 CE 8C 86 D2                    db      0BFh, 80h,0CEh, 8Ch, 86h,0D2h +31E4:99C3  D6 16 E2 36 C0 3D                    db      0D6h, 16h,0E2h, 36h,0C0h, 3Dh +31E4:99C9  D6 9C 4A AE 88 A6                    db      0D6h, 9Ch, 4Ah,0AEh, 88h,0A6h +31E4:99CF  B4 BA B5 10 FD 9D                    db      0B4h,0BAh,0B5h, 10h,0FDh, 9Dh +31E4:99D5  93 BE 57 2B E1 02                    db       93h,0BEh, 57h, 2Bh,0E1h, 02h +31E4:99DB  65 CE 6E BB FF FF                    db       65h,0CEh, 6Eh,0BBh,0FFh,0FFh +31E4:99E1  FF FF D5 02 00 00                    db      0FFh,0FFh,0D5h, 02h, 00h, 00h +31E4:99E7  00 80 02 00 00 00                    db       00h, 80h, 02h, 00h, 00h, 00h +31E4:99ED  80 02 00 00 00 80                    db       80h, 02h, 00h, 00h, 00h, 80h +31E4:99F3  02 00 00 00 80 02                    db       02h, 00h, 00h, 00h, 80h, 02h +31E4:99F9  00 00 00 80 02 00                    db       00h, 00h, 00h, 80h, 02h, 00h +31E4:99FF  00 00 80 07 FF FF                    db       00h, 00h, 80h, 07h,0FFh,0FFh +31E4:9A05  FF C0 08 00 00 00                    db      0FFh,0C0h, 08h, 00h, 00h, 00h +31E4:9A0B  20 10 00 00 00 10                    db       20h, 10h, 00h, 00h, 00h, 10h +31E4:9A11  3F FF 00 00 0C 40                    db       3Fh,0FFh, 00h, 00h, 0Ch, 40h +31E4:9A17  00 00 00 04 FF FF                    db       00h, 00h, 00h, 04h,0FFh,0FFh +31E4:9A1D  FF 83 FF B0 00 00                    db      0FFh, 83h,0FFh,0B0h, 00h, 00h +31E4:9A23  02 00 F0 00 00 00                    db       02h, 00h,0F0h, 00h, 00h, 00h +31E4:9A29  00 11 22 00 00 30                    db       00h, 11h, 22h, 00h, 00h, 30h +31E4:9A2F  60 08 A0 C8 C4 C5                    db       60h, 08h,0A0h,0C8h,0C4h,0C5h +31E4:9A35  82 20 62 8C 88 2F                    db       82h, 20h, 62h, 8Ch, 88h, 2Fh +31E4:9A3B  20 22 A0 32 10 22                    db       20h, 22h,0A0h, 32h, 10h, 22h +31E4:9A41  D7 48 87 64 0C 00                    db      0D7h, 48h, 87h, 64h, 0Ch, 00h +31E4:9A47  74 34 1A 63 F1 10                    db       74h, 34h, 1Ah, 63h,0F1h, 10h +31E4:9A4D  A4 64 9A 11 34 81                    db      0A4h, 64h, 9Ah, 11h, 34h, 81h +31E4:9A53  09 02 10 64 31 92                    db       09h, 02h, 10h, 64h, 31h, 92h +31E4:9A59  A2 15 AA A0 41 AE                    db      0A2h, 15h,0AAh,0A0h, 41h,0AEh +31E4:9A5F  10 10 05 5A 22 10                    db       10h, 10h, 05h, 5Ah, 22h, 10h +31E4:9A65  00 88 B0 04 08 84                    db       00h, 88h,0B0h, 04h, 08h, 84h +31E4:9A6B  18 B8 64 04 6E 40                    db       18h,0B8h, 64h, 04h, 6Eh, 40h +31E4:9A71  26 C4 02 00 B0 55                    db       26h,0C4h, 02h, 00h,0B0h, 55h +31E4:9A77  C8 03 FF 05 28 10                    db      0C8h, 03h,0FFh, 05h, 28h, 10h +31E4:9A7D  00 FC 08 19 98 00                    db       00h,0FCh, 08h, 19h, 98h, 00h +31E4:9A83  3F 93 E0 06 00 40                    db       3Fh, 93h,0E0h, 06h, 00h, 40h +31E4:9A89  30 18 61 0F 81 00                    db       30h, 18h, 61h, 0Fh, 81h, 00h +31E4:9A8F  51 36 B0 0C A2 42                    db       51h, 36h,0B0h, 0Ch,0A2h, 42h +31E4:9A95  10 43 F1 86 02 6C                    db       10h, 43h,0F1h, 86h, 02h, 6Ch +31E4:9A9B  1E 00 44 A8                          db       1Eh, 00h, 44h,0A8h +31E4:9A9F  B1                   data_1094       db      0B1h +31E4:9AA0  F5 A7 00 00 00 00                    db      0F5h,0A7h, 00h, 00h, 00h, 00h +31E4:9AA6  00 FD 55 65 72 D7                    db       00h,0FDh, 55h, 65h, 72h,0D7h +31E4:9AAC  03 5D A9 75 40 4B                    db       03h, 5Dh,0A9h, 75h, 40h, 4Bh +31E4:9AB2  4C 99 44 5B 2E 94                    db       4Ch, 99h, 44h, 5Bh, 2Eh, 94h +31E4:9AB8  98 AA A5 81 25 92                    db       98h,0AAh,0A5h, 81h, 25h, 92h +31E4:9ABE  4A CD EA 40 00 09                    db       4Ah,0CDh,0EAh, 40h, 00h, 09h +31E4:9AC4  72 00 19 52 A0 06                    db       72h, 00h, 19h, 52h,0A0h, 06h +31E4:9ACA  AC 39 54 51 42 80                    db      0ACh, 39h, 54h, 51h, 42h, 80h +31E4:9AD0  00 AA 29 22 52 B2                    db       00h,0AAh, 29h, 22h, 52h,0B2h +31E4:9AD6  00 02 44 00 16 4C                    db       00h, 02h, 44h, 00h, 16h, 4Ch +31E4:9ADC  90 00 56 87 EB BB                    db       90h, 00h, 56h, 87h,0EBh,0BBh +31E4:9AE2  76 83 B3 00 00 20                    db       76h, 83h,0B3h, 00h, 00h, 20h +31E4:9AE8  BC 02 CF FF 1E 00                    db      0BCh, 02h,0CFh,0FFh, 1Eh, 00h +31E4:9AEE  FF F0 00 80 FF 00                    db      0FFh,0F0h, 00h, 80h,0FFh, 00h +31E4:9AF4  00 00 FF 00 00 00                    db       00h, 00h,0FFh, 00h, 00h, 00h +31E4:9AFA  00 00 FC 00 00 00                    db       00h, 00h,0FCh, 00h, 00h, 00h +31E4:9B00  7F 82 00 00 00 58                    db       7Fh, 82h, 00h, 00h, 00h, 58h +31E4:9B06  B9 00 00 01 9F 96                    db      0B9h, 00h, 00h, 01h, 9Fh, 96h +31E4:9B0C  80 00 06 60 8A 40                    db       80h, 00h, 06h, 60h, 8Ah, 40h +31E4:9B12  00 F9 C0 56 3F FF                    db       00h,0F9h,0C0h, 56h, 3Fh,0FFh +31E4:9B18  3A 13 FF E0 20 40                    db       3Ah, 13h,0FFh,0E0h, 20h, 40h +31E4:9B1E  80 FF FB 56 19 90                    db       80h,0FFh,0FBh, 56h, 19h, 90h +31E4:9B24  FF EF 64 44 24 FF                    db      0FFh,0EFh, 64h, 44h, 24h,0FFh +31E4:9B2A  E0 20 08 30 FF FD                    db      0E0h, 20h, 08h, 30h,0FFh,0FDh +31E4:9B30  EA 69 90 FF F2 F4                    db      0EAh, 69h, 90h,0FFh,0F2h,0F4h +31E4:9B36  02 81 FF E1 4B 01                    db       02h, 81h,0FFh,0E1h, 4Bh, 01h +31E4:9B3C  28 FF FA 50 AB 26                    db       28h,0FFh,0FAh, 50h,0ABh, 26h +31E4:9B42  00 09 E0 91 1E 00                    db       00h, 09h,0E0h, 91h, 1Eh, 00h +31E4:9B48  09 53 84 B0 00 08                    db       09h, 53h, 84h,0B0h, 00h, 08h +31E4:9B4E  2F 2D A0 00 09 43                    db       2Fh, 2Dh,0A0h, 00h, 09h, 43h +31E4:9B54  1C E3 00 09 38 85                    db       1Ch,0E3h, 00h, 09h, 38h, 85h +31E4:9B5A  39 00 09 8D 57 DE                    db       39h, 00h, 09h, 8Dh, 57h,0DEh +31E4:9B60  00 09 FF 28 19 00                    db       00h, 09h,0FFh, 28h, 19h, 00h +31E4:9B66  FE 00 9D 81 00 00                    db      0FEh, 00h, 9Dh, 81h, 00h, 00h +31E4:9B6C  00 67 69 03 C0 00                    db       00h, 67h, 69h, 03h,0C0h, 00h +31E4:9B72  15 18 00 40 00 09                    db       15h, 18h, 00h, 40h, 00h, 09h +31E4:9B78  6B FF FF FF FB 85                    db       6Bh,0FFh,0FFh,0FFh,0FBh, 85h +31E4:9B7E  D7 44 02 FA F5 FB                    db      0D7h, 44h, 02h,0FAh,0F5h,0FBh +31E4:9B84  31 A8 63 FF C0 16                    db       31h,0A8h, 63h,0FFh,0C0h, 16h +31E4:9B8A  BD A4 FE 15 21 22                    db      0BDh,0A4h,0FEh, 15h, 21h, 22h +31E4:9B90  78 70 05 23 88 82                    db       78h, 70h, 05h, 23h, 88h, 82h +31E4:9B96  74 D4 D5 4B 5F AA                    db       74h,0D4h,0D5h, 4Bh, 5Fh,0AAh +31E4:9B9C  00 09 9A 9B 22 CD                    db       00h, 09h, 9Ah, 9Bh, 22h,0CDh +31E4:9BA2  4F 55 9A 8A 05 C0                    db       4Fh, 55h, 9Ah, 8Ah, 05h,0C0h +31E4:9BA8  A8 FE FC 01 07 56                    db      0A8h,0FEh,0FCh, 01h, 07h, 56h +31E4:9BAE  E2 16 92 B8 FE 33                    db      0E2h, 16h, 92h,0B8h,0FEh, 33h +31E4:9BB4  5F E7 42 06 2C CF                    db       5Fh,0E7h, 42h, 06h, 2Ch,0CFh +31E4:9BBA  42 17 E5 A7 F2 9D                    db       42h, 17h,0E5h,0A7h,0F2h, 9Dh +31E4:9BC0  64 24 39 F3 A4 34                    db       64h, 24h, 39h,0F3h,0A4h, 34h +31E4:9BC6  2F 20 CB 92 A4 22                    db       2Fh, 20h,0CBh, 92h,0A4h, 22h +31E4:9BCC  0B 26 E1 B4 24 03                    db       0Bh, 26h,0E1h,0B4h, 24h, 03h +31E4:9BD2  AD 9C A4 23 3A 00                    db      0ADh, 9Ch,0A4h, 23h, 3Ah, 00h +31E4:9BD8  00 E4 37 DD AB 24                    db       00h,0E4h, 37h,0DDh,0ABh, 24h +31E4:9BDE  44 20 00 B1 C6 CC                    db       44h, 20h, 00h,0B1h,0C6h,0CCh +31E4:9BE4  3F 87 9B 01 D0 07                    db       3Fh, 87h, 9Bh, 01h,0D0h, 07h +31E4:9BEA  C8 1A 28 60 01 E7                    db      0C8h, 1Ah, 28h, 60h, 01h,0E7h +31E4:9BF0  A3 D7 A0 00 12 BB                    db      0A3h,0D7h,0A0h, 00h, 12h,0BBh +31E4:9BF6  D4 A0 00 11 20 59                    db      0D4h,0A0h, 00h, 11h, 20h, 59h +31E4:9BFC  C0 00 0F 25 1B 40                    db      0C0h, 00h, 0Fh, 25h, 1Bh, 40h +31E4:9C02  00 09 57 EE 40 00                    db       00h, 09h, 57h,0EEh, 40h, 00h +31E4:9C08  08 A8 5E C4 7A 68                    db       08h,0A8h, 5Eh,0C4h, 7Ah, 68h +31E4:9C0E  00 D3 9D 90 2E DB                    db       00h,0D3h, 9Dh, 90h, 2Eh,0DBh +31E4:9C14  91 77 D6 BB 25 A4                    db       91h, 77h,0D6h,0BBh, 25h,0A4h +31E4:9C1A  EC 09 7F 5E 00 BE                    db      0ECh, 09h, 7Fh, 5Eh, 00h,0BEh +31E4:9C20  D7 B6 00 A6 4C ED                    db      0D7h,0B6h, 00h,0A6h, 4Ch,0EDh +31E4:9C26  FD 09 0B A5 94 38                    db      0FDh, 09h, 0Bh,0A5h, 94h, 38h +31E4:9C2C  F5 A4 FE BC ED 03                    db      0F5h,0A4h,0FEh,0BCh,0EDh, 03h +31E4:9C32  A0 FC CE AE FB 57                    db      0A0h,0FCh,0CEh,0AEh,0FBh, 57h +31E4:9C38  EE 73 2A 09 99 EE                    db      0EEh, 73h, 2Ah, 09h, 99h,0EEh +31E4:9C3E  6F A4 94 E7 EC 55                    db       6Fh,0A4h, 94h,0E7h,0ECh, 55h +31E4:9C44  6B 2C 3F FC 00 7A                    db       6Bh, 2Ch, 3Fh,0FCh, 00h, 7Ah +31E4:9C4A  1B B5 7D FF A8 2C                    db       1Bh,0B5h, 7Dh,0FFh,0A8h, 2Ch +31E4:9C50  DD FE 00 68 A4 4E                    db      0DDh,0FEh, 00h, 68h,0A4h, 4Eh +31E4:9C56  C4 00 2B 02 FF F8                    db      0C4h, 00h, 2Bh, 02h,0FFh,0F8h +31E4:9C5C  00 1F F4 00 00 00                    db       00h, 1Fh,0F4h, 00h, 00h, 00h +31E4:9C62  00 13 00 00 00 00                    db       00h, 13h, 00h, 00h, 00h, 00h +31E4:9C68  12 00 00 00 00 12                    db       12h, 00h, 00h, 00h, 00h, 12h +31E4:9C6E  FC 00 00 00 17 04                    db      0FCh, 00h, 00h, 00h, 17h, 04h +31E4:9C74  00 00 00 16 04 00                    db       00h, 00h, 00h, 16h, 04h, 00h +31E4:9C7A  00 00 12 07 FC 00                    db       00h, 00h, 12h, 07h,0FCh, 00h +31E4:9C80  00 7A FF E7 48 84                    db       00h, 7Ah,0FFh,0E7h, 48h, 84h +31E4:9C86  20 BC 1F DF BD AE                    db       20h,0BCh, 1Fh,0DFh,0BDh,0AEh +31E4:9C8C  CD C7 9A 84 70 EB                    db      0CDh,0C7h, 9Ah, 84h, 70h,0EBh +31E4:9C92  CB 34 D7 9B 8B 93                    db      0CBh, 34h,0D7h, 9Bh, 8Bh, 93h +31E4:9C98  2F 32 3A 5D D8 EE                    db       2Fh, 32h, 3Ah, 5Dh,0D8h,0EEh +31E4:9C9E  E6 CE 9B 13 79 9D                    db      0E6h,0CEh, 9Bh, 13h, 79h, 9Dh +31E4:9CA4  54 72 D3 C1 00 3A                    db       54h, 72h,0D3h,0C1h, 00h, 3Ah +31E4:9CAA  6F FB 5D 94 2A 1A                    db       6Fh,0FBh, 5Dh, 94h, 2Ah, 1Ah +31E4:9CB0  AC 45 9A D6 6B CF                    db      0ACh, 45h, 9Ah,0D6h, 6Bh,0CFh +31E4:9CB6  F9 8D 4C 4B EF 0B                    db      0F9h, 8Dh, 4Ch, 4Bh,0EFh, 0Bh +31E4:9CBC  B8 62 6F 67 0C 3B                    db      0B8h, 62h, 6Fh, 67h, 0Ch, 3Bh +31E4:9CC2  6E 85 EF 0F 40 1C                    db       6Eh, 85h,0EFh, 0Fh, 40h, 1Ch +31E4:9CC8  7E FF 08 DF EC EF                    db       7Eh,0FFh, 08h,0DFh,0ECh,0EFh +31E4:9CCE  FD 09 E0 1F FF ED                    db      0FDh, 09h,0E0h, 1Fh,0FFh,0EDh +31E4:9CD4  EE 00 00 17 5F 00                    db      0EEh, 00h, 00h, 17h, 5Fh, 00h +31E4:9CDA  00 01 FF E0 00 00                    db       00h, 01h,0FFh,0E0h, 00h, 00h +31E4:9CE0  07 00 00 00 00 19                    db       07h, 00h, 00h, 00h, 00h, 19h +31E4:9CE6  00 00 00 00 6E 00                    db       00h, 00h, 00h, 00h, 6Eh, 00h +31E4:9CEC  00 00 00 9B 00 00                    db       00h, 00h, 00h, 9Bh, 00h, 00h +31E4:9CF2  00 07 E7 FE 1F FF                    db       00h, 07h,0E7h,0FEh, 1Fh,0FFh +31E4:9CF8  F9 DC 4E 46 C0 C1                    db      0F9h,0DCh, 4Eh, 46h,0C0h,0C1h +31E4:9CFE  4C FF FB DA 2D 50                    db       4Ch,0FFh,0FBh,0DAh, 2Dh, 50h +31E4:9D04  7A BB 53 C6 22 FF                    db       7Ah,0BBh, 53h,0C6h, 22h,0FFh +31E4:9D0A  B7 66 8F 02 39 97                    db      0B7h, 66h, 8Fh, 02h, 39h, 97h +31E4:9D10  DF 28 78 DB 46 FC                    db      0DFh, 28h, 78h,0DBh, 46h,0FCh +31E4:9D16  2C 86 7A FD EE AE                    db       2Ch, 86h, 7Ah,0FDh,0EEh,0AEh +31E4:9D1C  D2 DF 78 31 35 9C                    db      0D2h,0DFh, 78h, 31h, 35h, 9Ch +31E4:9D22  FB FF E9 AC AC FD                    db      0FBh,0FFh,0E9h,0ACh,0ACh,0FDh +31E4:9D28  FC 2D C6 4E D7 DC                    db      0FCh, 2Dh,0C6h, 4Eh,0D7h,0DCh +31E4:9D2E  2E AB A5 AF BC 21                    db       2Eh,0ABh,0A5h,0AFh,0BCh, 21h +31E4:9D34  2F EC 9F BC 2C C6                    db       2Fh,0ECh, 9Fh,0BCh, 2Ch,0C6h +31E4:9D3A  7E DF FC 29 FA A6                    db       7Eh,0DFh,0FCh, 29h,0FAh,0A6h +31E4:9D40  FA EC 3E 3F EF F6                    db      0FAh,0ECh, 3Eh, 3Fh,0EFh,0F6h +31E4:9D46  FC 2B D7 7D BB AC                    db      0FCh, 2Bh,0D7h, 7Dh,0BBh,0ACh +31E4:9D4C  3F 2D D9 F7 F0 03                    db       3Fh, 2Dh,0D9h,0F7h,0F0h, 03h +31E4:9D52  55 BF F6 A0 00 C5                    db       55h,0BFh,0F6h,0A0h, 00h,0C5h +31E4:9D58  67 7F C0 00 2C DE                    db       67h, 7Fh,0C0h, 00h, 2Ch,0DEh +31E4:9D5E  EE C0 00 12 BA 97                    db      0EEh,0C0h, 00h, 12h,0BAh, 97h +31E4:9D64  C0 00 12 AF BE C0                    db      0C0h, 00h, 12h,0AFh,0BEh,0C0h +31E4:9D6A  00 13 BD FF C0 00                    db       00h, 13h,0BDh,0FFh,0C0h, 00h +31E4:9D70  15 B2 F9 CF E0 84                    db       15h,0B2h,0F9h,0CFh,0E0h, 84h +31E4:9D76  21 EF 3E 44 9D A8                    db       21h,0EFh, 3Eh, 44h, 9Dh,0A8h +31E4:9D7C  C0 18 0E A0 25 DF                    db      0C0h, 18h, 0Eh,0A0h, 25h,0DFh +31E4:9D82  EA FA 80 22 50 6B                    db      0EAh,0FAh, 80h, 22h, 50h, 6Bh +31E4:9D88  0A 9D 24 50 6B FC                    db       0Ah, 9Dh, 24h, 50h, 6Bh,0FCh +31E4:9D8E  A0 08 50 4B FE AA                    db      0A0h, 08h, 50h, 4Bh,0FEh,0AAh +31E4:9D94  D8 D0 79 0A 80 06                    db      0D8h,0D0h, 79h, 0Ah, 80h, 06h +31E4:9D9A  50 59 0A B5 42 D0                    db       50h, 59h, 0Ah,0B5h, 42h,0D0h +31E4:9DA0  49 08 AD 34 70 7F                    db       49h, 08h,0ADh, 34h, 70h, 7Fh +31E4:9DA6  0C 80 06 FF 80 03                    db       0Ch, 80h, 06h,0FFh, 80h, 03h +31E4:9DAC  FE 42 F8 00 00 03                    db      0FEh, 42h,0F8h, 00h, 00h, 03h +31E4:9DB2  7E 78 00 40 01 80                    db       7Eh, 78h, 00h, 40h, 01h, 80h +31E4:9DB8  F8 00 F8 00 7F D8                    db      0F8h, 00h,0F8h, 00h, 7Fh,0D8h +31E4:9DBE  01 FC 00 7F E8 00                    db       01h,0FCh, 00h, 7Fh,0E8h, 00h +31E4:9DC4  00 00 7F E8 00 00                    db       00h, 00h, 7Fh,0E8h, 00h, 00h +31E4:9DCA  00 FF F4 00 00 01                    db       00h,0FFh,0F4h, 00h, 00h, 01h +31E4:9DD0  FF B2 00 00 07 FF                    db      0FFh,0B2h, 00h, 00h, 07h,0FFh +31E4:9DD6  ED 00 00 00 7F BE                    db      0EDh, 00h, 00h, 00h, 7Fh,0BEh +31E4:9DDC  80 00 FF FF 0D 60                    db       80h, 00h,0FFh,0FFh, 0Dh, 60h +31E4:9DE2  0F FF FF FB DF FF                    db       0Fh,0FFh,0FFh,0FBh,0DFh,0FFh +31E4:9DE8  FF FF 08 1B 61 08                    db      0FFh,0FFh, 08h, 1Bh, 61h, 08h +31E4:9DEE  46 BE 7F 7D DE 7B                    db       46h,0BEh, 7Fh, 7Dh,0DEh, 7Bh +31E4:9DF4  94 D5 9F FF F6 01                    db       94h,0D5h, 9Fh,0FFh,0F6h, 01h +31E4:9DFA  AF 42 BF D9 77 56                    db      0AFh, 42h,0BFh,0D9h, 77h, 56h +31E4:9E00  FD 3B 56 86 76 C3                    db      0FDh, 3Bh, 56h, 86h, 76h,0C3h +31E4:9E06  F3 CA 24 F9 BB ED                    db      0F3h,0CAh, 24h,0F9h,0BBh,0EDh +31E4:9E0C  C7 3D 75 B0 6E 96                    db      0C7h, 3Dh, 75h,0B0h, 6Eh, 96h +31E4:9E12  4F 6A 0F DD AA 03                    db       4Fh, 6Ah, 0Fh,0DDh,0AAh, 03h +31E4:9E18  71 6E 7F 57 CE E5                    db       71h, 6Eh, 7Fh, 57h,0CEh,0E5h +31E4:9E1E  4F D2 FF 11 9A D1                    db       4Fh,0D2h,0FFh, 11h, 9Ah,0D1h +31E4:9E24  B7 5A 6C D5 BD C7                    db      0B7h, 5Ah, 6Ch,0D5h,0BDh,0C7h +31E4:9E2A  7C 3F 3E 2D BF F7                    db       7Ch, 3Fh, 3Eh, 2Dh,0BFh,0F7h +31E4:9E30  E4 B0 C9 41 7E 4C                    db      0E4h,0B0h,0C9h, 41h, 7Eh, 4Ch +31E4:9E36  1D F2 67 FD FC D7                    db       1Dh,0F2h, 67h,0FDh,0FCh,0D7h +31E4:9E3C  F7 EB 7E 7A 6D 55                    db      0F7h,0EBh, 7Eh, 7Ah, 6Dh, 55h +31E4:9E42  FF 80 5F FF FE 00                    db      0FFh, 80h, 5Fh,0FFh,0FEh, 00h +31E4:9E48  00 E0                                db       00h,0E0h +31E4:9E4A  0008[00]                             db      8 dup (0) +31E4:9E52  FF 00 00 00 0F 3E                    db      0FFh, 00h, 00h, 00h, 0Fh, 3Eh +31E4:9E58  00 00 01 F3 FA 00                    db       00h, 00h, 01h,0F3h,0FAh, 00h +31E4:9E5E  00 06 7C BC AF FD                    db       00h, 06h, 7Ch,0BCh,0AFh,0FDh +31E4:9E64  F5 6A 74 F7 BD F7                    db      0F5h, 6Ah, 74h,0F7h,0BDh,0F7h +31E4:9E6A  58 07 DA DB B3 FD                    db       58h, 07h,0DAh,0DBh,0B3h,0FDh +31E4:9E70  FD 41 FB F5 AB 5D                    db      0FDh, 41h,0FBh,0F5h,0ABh, 5Dh +31E4:9E76  6F FF FF 6F BF 9E                    db       6Fh,0FFh,0FFh, 6Fh,0BFh, 9Eh +31E4:9E7C  98 7B F9 D6 33 77                    db       98h, 7Bh,0F9h,0D6h, 33h, 77h +31E4:9E82  EF 6F 56 FE D4 2F                    db      0EFh, 6Fh, 56h,0FEh,0D4h, 2Fh +31E4:9E88  BF FD E9 B4 2B 5D                    db      0BFh,0FDh,0E9h,0B4h, 2Bh, 5Dh +31E4:9E8E  BF 0A F4 2F F3 FF                    db      0BFh, 0Ah,0F4h, 2Fh,0F3h,0FFh +31E4:9E94  E5 F4 29 77 9F A3                    db      0E5h,0F4h, 29h, 77h, 9Fh,0A3h +31E4:9E9A  D4 2F D7 7F 17 54                    db      0D4h, 2Fh,0D7h, 7Fh, 17h, 54h +31E4:9EA0  29 FD FF CF F4 2A                    db       29h,0FDh,0FFh,0CFh,0F4h, 2Ah +31E4:9EA6  9D FF 62 D7 FF FE                    db       9Dh,0FFh, 62h,0D7h,0FFh,0FEh +31E4:9EAC  00 1E 88 00 00 00                    db       00h, 1Eh, 88h, 00h, 00h, 00h +31E4:9EB2  FF F8                                db      0FFh,0F8h +31E4:9EB4  000D[00]                             db      13 dup (0) +31E4:9EC1  FF 80 00 0F FF F0                    db      0FFh, 80h, 00h, 0Fh,0FFh,0F0h +31E4:9EC7  00 03 F3 FB 00 00                    db       00h, 03h,0F3h,0FBh, 00h, 00h +31E4:9ECD  1D 7F FB 00 00 2F                    db       1Dh, 7Fh,0FBh, 00h, 00h, 2Fh +31E4:9ED3  C3 5F 00 00 4F 3E                    db      0C3h, 5Fh, 00h, 00h, 4Fh, 3Eh +31E4:9ED9  AD FB 94 FE 84 26                    db      0ADh,0FBh, 94h,0FEh, 84h, 26h +31E4:9EDF  F4 FB FB 76 EF FF                    db      0F4h,0FBh,0FBh, 76h,0EFh,0FFh +31E4:9EE5  6D E2 D4 AF C8 3D                    db       6Dh,0E2h,0D4h,0AFh,0C8h, 3Dh +31E4:9EEB  FE EE C6 D7 BE DA                    db      0FEh,0EEh,0C6h,0D7h,0BEh,0DAh +31E4:9EF1  DE BD 3B 7F FD FD                    db      0DEh,0BDh, 3Bh, 7Fh,0FDh,0FDh +31E4:9EF7  45 CB 6F FF 9B 77                    db       45h,0CBh, 6Fh,0FFh, 9Bh, 77h +31E4:9EFD  1F BF FD                             db       1Fh,0BFh,0FDh +31E4:9F00  56                   data_1097       db      56h                     ;  xref 31E4:189D +31E4:9F01  92 4F 78 07 FA 97                    db       92h, 4Fh, 78h, 07h,0FAh, 97h +31E4:9F07  66 78 06 9F 27 F2                    db       66h, 78h, 06h, 9Fh, 27h,0F2h +31E4:9F0D  F8 05 FC A4 92 E8                    db      0F8h, 05h,0FCh,0A4h, 92h,0E8h +31E4:9F13  05 3F AF FF 38 07                    db       05h, 3Fh,0AFh,0FFh, 38h, 07h +31E4:9F19  35 D6 33 E8 05 B7                    db       35h,0D6h, 33h,0E8h, 05h,0B7h +31E4:9F1F  FF BF F8 04 FE BF                    db      0FFh,0BFh,0F8h, 04h,0FEh,0BFh +31E4:9F25  78 FF E7 FF FF FF                    db       78h,0FFh,0E7h,0FFh,0FFh,0FFh +31E4:9F2B  F8 00 FF FF 80 F8                    db      0F8h, 00h,0FFh,0FFh, 80h,0F8h +31E4:9F31  00 00 00 80 00 00                    db       00h, 00h, 00h, 80h, 00h, 00h +31E4:9F37  00 00 80 00 00 00                    db       00h, 00h, 80h, 00h, 00h, 00h +31E4:9F3D  00 80 00 00 00 00                    db       00h, 80h, 00h, 00h, 00h, 00h +31E4:9F43  80 00 00 00 3F 80                    db       80h, 00h, 00h, 00h, 3Fh, 80h +31E4:9F49  00 00 03 CE 80 00                    db       00h, 00h, 03h,0CEh, 80h, 00h +31E4:9F4F  00 04 7F 00 00 42                    db       00h, 04h, 7Fh, 00h, 00h, 42h +31E4:9F55  10 84 00 00 42 00                    db       10h, 84h, 00h, 00h, 42h, 00h +31E4:9F5B  00 00 00 42 00 04                    db       00h, 00h, 00h, 42h, 00h, 04h +31E4:9F61  00 00 42 00 00 00                    db       00h, 00h, 42h, 00h, 00h, 00h +31E4:9F67  00 42 00 00 00 00                    db       00h, 42h, 00h, 00h, 00h, 00h +31E4:9F6D  42 00 00 00 00 42                    db       42h, 00h, 00h, 00h, 00h, 42h +31E4:9F73  00 00 00 00 C3 00                    db       00h, 00h, 00h, 00h,0C3h, 00h +31E4:9F79  00 00 00 81 00 00                    db       00h, 00h, 00h, 81h, 00h, 00h +31E4:9F7F  00 01 00 80 00 00                    db       00h, 01h, 00h, 80h, 00h, 00h +31E4:9F85  01 00 80 00                          db       01h, 00h, 80h, 00h +31E4:9F89                       loc_2342:                                       ;  xref 31E4:9FCA +31E4:9F89  00 01                                add     [bx+di],al +31E4:9F8B  00 80 0000                           add     byte ptr copyright[bx+si],al ; (31E4:0000='Copyright Revolu') +31E4:9F8F  02 00                                add     al,[bx+si] +31E4:9F91  40                                   inc     ax +31E4:9F92  00 00                                add     [bx+si],al +31E4:9F94  02 00                                add     al,[bx+si] +31E4:9F96  40                                   inc     ax +31E4:9F97  00 00                                add     [bx+si],al +31E4:9F99  04 00                                add     al,0 +31E4:9F9B  40                                   inc     ax +31E4:9F9C  00 00                                add     [bx+si],al +31E4:9F9E  04 00                                add     al,0 +31E4:9FA0  20 00                                and     [bx+si],al +31E4:9FA2  00 04                                add     [si],al +31E4:9FA4  00 20                                add     [bx+si],ah +31E4:9FA6  00 00                                add     [bx+si],al +31E4:9FA8  08 00                                or      [bx+si],al +31E4:9FAA  10 00                                adc     [bx+si],al +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 511 + +31E4:9FAC  00 08                                add     [bx+si],cl +31E4:9FAE  00 10                                add     [bx+si],dl +31E4:9FB0  00 00                                add     [bx+si],al +31E4:9FB2  10 00                                adc     [bx+si],al +31E4:9FB4  08 00                                or      [bx+si],al +31E4:9FB6  00 10                                add     [bx+si],dl +31E4:9FB8  00 08                                add     [bx+si],cl +31E4:9FBA  00 00                                add     [bx+si],al +31E4:9FBC  20 00                                and     [bx+si],al +31E4:9FBE  0C 00                                or      al,0 +31E4:9FC0  00 20                                add     [bx+si],ah +31E4:9FC2  00 04                                add     [si],al +31E4:9FC4  00 00                                add     [bx+si],al +31E4:9FC6  20 00                                and     [bx+si],al +31E4:9FC8  04 00                                add     al,0 +31E4:9FCA  78 BD                                js      loc_2342                ; Jump if sign=1 +31E4:9FCC  95                                   xchg    bp,ax +31E4:9FCD  F9                                   stc                             ; Set carry flag +31E4:9FCE  7F D9                ;*              jg      loc_2343                ;*Jump if > +31E4:9FCE  7F D9                                db       7Fh,0D9h +31E4:9FD0  9A F627:7FAE         ;*              call    far ptr sub_281         ;*(F627:7FAE) +31E4:9FD0  9A                                   db      9Ah +31E4:9FD1  7FAE F627                            dw      7FAEh, 0F627h +31E4:9FD5  B3 BF                                mov     bl,0BFh +31E4:9FD7  4E                                   dec     si +31E4:9FD8  7F 75                                jg      $+77h                   ; Jump if > +31E4:9FDA  F5                                   cmc                             ; Complement carry +31E4:9FDB  55                                   push    bp +31E4:9FDC  FD                                   std                             ; Set direction flag +31E4:9FDD  C9 DD FD 7F E7 8D                    db      0C9h,0DDh,0FDh, 7Fh,0E7h, 8Dh +31E4:9FE3  77 FF ED 1D BB DF                    db       77h,0FFh,0EDh, 1Dh,0BBh,0DFh +31E4:9FE9  E0 6F FD 77 37 E0                    db      0E0h, 6Fh,0FDh, 77h, 37h,0E0h +31E4:9FEF  7E D4 34 6D E0 57                    db       7Eh,0D4h, 34h, 6Dh,0E0h, 57h +31E4:9FF5  7F BD DF E0 5F AF                    db       7Fh,0BDh,0DFh,0E0h, 5Fh,0AFh +31E4:9FFB  7F BF E0 4F F7 6B                    db       7Fh,0BFh,0E0h, 4Fh,0F7h, 6Bh +31E4:A001  E7 E0 43 FF BB 7F                    db      0E7h,0E0h, 43h,0FFh,0BBh, 7Fh +31E4:A007  E0 43 FF CF FF 60                    db      0E0h, 43h,0FFh,0CFh,0FFh, 60h +31E4:A00D  43 87 F6 F7 E0 23                    db       43h, 87h,0F6h,0F7h,0E0h, 23h +31E4:A013  FC A7 BE A0 13 87                    db      0FCh,0A7h,0BEh,0A0h, 13h, 87h +31E4:A019  98 BD A0 0B 85 FF                    db       98h,0BDh,0A0h, 0Bh, 85h,0FFh +31E4:A01F  EF 40 05 FC FF FD                    db      0EFh, 40h, 05h,0FCh,0FFh,0FDh +31E4:A025  80 03 83 1F FE 00                    db       80h, 03h, 83h, 1Fh,0FEh, 00h +31E4:A02B  00 00 7F 00                          db       00h, 00h, 7Fh, 00h +31E4:A02F  000E[00]                             db      14 dup (0) +31E4:A03D  FC 3F FF FF FF DB                    db      0FCh, 3Fh,0FFh,0FFh,0FFh,0DBh +31E4:A043  FB F9 F3 D6 FD DA                    db      0FBh,0F9h,0F3h,0D6h,0FDh,0DAh +31E4:A049  AF 7F F7 C6 DB B7                    db      0AFh, 7Fh,0F7h,0C6h,0DBh,0B7h +31E4:A04F  FF FA E6 FB EF FF                    db      0FFh,0FAh,0E6h,0FBh,0EFh,0FFh +31E4:A055  FD 34 AE FB 00 F5                    db      0FDh, 34h,0AEh,0FBh, 00h,0F5h +31E4:A05B  AF D7 F7 00 FD DD                    db      0AFh,0D7h,0F7h, 00h,0FDh,0DDh +31E4:A061  EE D7 00 B1 B7 ED                    db      0EEh,0D7h, 00h,0B1h,0B7h,0EDh +31E4:A067  FF 00 AF 9E 67 6B                    db      0FFh, 00h,0AFh, 9Eh, 67h, 6Bh +31E4:A06D  00 FB E9 EE 9F 00                    db       00h,0FBh,0E9h,0EEh, 9Fh, 00h +31E4:A073  F4 65 7F EF 00 FB                    db      0F4h, 65h, 7Fh,0EFh, 00h,0FBh +31E4:A079  8E FB FF 00 FA 7B                    db       8Eh,0FBh,0FFh, 00h,0FAh, 7Bh +31E4:A07F  BF 00 00 BF FF FF                    db      0BFh, 00h, 00h,0BFh,0FFh,0FFh +31E4:A085  F8 00 EB FF FF F8                    db      0F8h, 00h,0EBh,0FFh,0FFh,0F8h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 512 + +31E4:A08B  00 B7 FF FF F8 00                    db       00h,0B7h,0FFh,0FFh,0F8h, 00h +31E4:A091  AB FF E0 00 00 B1                    db      0ABh,0FFh,0E0h, 00h, 00h,0B1h +31E4:A097  FF 80 00 00 FF 00                    db      0FFh, 80h, 00h, 00h,0FFh, 00h +31E4:A09D  0009[00]                             db      9 dup (0) +31E4:A0A6  FF FF E0 00 00 FF                    db      0FFh,0FFh,0E0h, 00h, 00h,0FFh +31E4:A0AC  BF 7F C0 00 FF 77                    db      0BFh, 7Fh,0C0h, 00h,0FFh, 77h +31E4:A0B2  EB FF FF AD B6 A6                    db      0EBh,0FFh,0FFh,0ADh,0B6h,0A6h +31E4:A0B8  F3 DD 7D 66 A9 2E                    db      0F3h,0DDh, 7Dh, 66h,0A9h, 2Eh +31E4:A0BE  E4 DD 3F 97 CF FE                    db      0E4h,0DDh, 3Fh, 97h,0CFh,0FEh +31E4:A0C4  CB 53 DF 7E CA 3A                    db      0CBh, 53h,0DFh, 7Eh,0CAh, 3Ah +31E4:A0CA  1A EF A8 6B A1 DF                    db       1Ah,0EFh,0A8h, 6Bh,0A1h,0DFh +31E4:A0D0  F3 7F 7F 9D FB DF                    db      0F3h, 7Fh, 7Fh, 9Dh,0FBh,0DFh +31E4:A0D6  86 4D FE 5F FA BE                    db       86h, 4Dh,0FEh, 5Fh,0FAh,0BEh +31E4:A0DC  BD 7F F7 FF BB 9A                    db      0BDh, 7Fh,0F7h,0FFh,0BBh, 9Ah +31E4:A0E2  C1 D5 01 37 E3 C1                    db      0C1h,0D5h, 01h, 37h,0E3h,0C1h +31E4:A0E8  7D 01 FC 2F C1 FF                    db       7Dh, 01h,0FCh, 2Fh,0C1h,0FFh +31E4:A0EE  01 DC 31 C1 9B 01                    db       01h,0DCh, 31h,0C1h, 9Bh, 01h +31E4:A0F4  FC 2E C1 DF 01 4C                    db      0FCh, 2Eh,0C1h,0DFh, 01h, 4Ch +31E4:A0FA  23 C1 FD 01 7C 3C                    db       23h,0C1h,0FDh, 01h, 7Ch, 3Ch +31E4:A100  C1 3F 01 F4 39 21                    db      0C1h, 3Fh, 01h,0F4h, 39h, 21h +31E4:A106  C0 00 0F B7 E0 00                    db      0C0h, 00h, 0Fh,0B7h,0E0h, 00h +31E4:A10C  00 00 0F                             db       00h, 00h, 0Fh +31E4:A10F  000F[00]                             db      15 dup (0) +31E4:A11E  80 00 00 00 00 F0                    db       80h, 00h, 00h, 00h, 00h,0F0h +31E4:A124  00 00 00 00 FF 00                    db       00h, 00h, 00h, 00h,0FFh, 00h +31E4:A12A  00 00 01 FF C3 FF                    db       00h, 00h, 01h,0FFh,0C3h,0FFh +31E4:A130  FF FF 00 02 F7 FF                    db      0FFh,0FFh, 00h, 02h,0F7h,0FFh +31E4:A136  F4 00 03 FB 76 FF                    db      0F4h, 00h, 03h,0FBh, 76h,0FFh +31E4:A13C  00 03 FE EC DF 00                    db       00h, 03h,0FEh,0ECh,0DFh, 00h +31E4:A142  02 EB FB AF 00 03                    db       02h,0EBh,0FBh,0AFh, 00h, 03h +31E4:A148  FF FE F7 00 03 D3                    db      0FFh,0FEh,0F7h, 00h, 03h,0D3h +31E4:A14E  7D 7F 00 03 82 FA                    db       7Dh, 7Fh, 00h, 03h, 82h,0FAh +31E4:A154  5F 00 03 EF FB FE                    db       5Fh, 00h, 03h,0EFh,0FBh,0FEh +31E4:A15A  00 03 9F FF 9E 0F                    db       00h, 03h, 9Fh,0FFh, 9Eh, 0Fh +31E4:A160  C3 B9 FE FD F0 03                    db      0C3h,0B9h,0FEh,0FDh,0F0h, 03h +31E4:A166  4F FF EF 00 03 FF                    db       4Fh,0FFh,0EFh, 00h, 03h,0FFh +31E4:A16C  04 FE 00 07 F7 07                    db       04h,0FEh, 00h, 07h,0F7h, 07h +31E4:A172  E1 00 03 FB F7 DD                    db      0E1h, 00h, 03h,0FBh,0F7h,0DDh +31E4:A178  00 03 E5 00 2F 00                    db       00h, 03h,0E5h, 00h, 2Fh, 00h +31E4:A17E  00 1D 00 17 00 00                    db       00h, 1Dh, 00h, 17h, 00h, 00h +31E4:A184  0F F0 0B 00 00 0F                    db       0Fh,0F0h, 0Bh, 00h, 00h, 0Fh +31E4:A18A  F0 07 00 00 00 00                    db      0F0h, 07h, 00h, 00h, 00h, 00h +31E4:A190  1F 00 00 00 00 2F                    db       1Fh, 00h, 00h, 00h, 00h, 2Fh +31E4:A196  00 00 00 00 5F 00                    db       00h, 00h, 00h, 00h, 5Fh, 00h +31E4:A19C  00 00 00 5F 00 00                    db       00h, 00h, 00h, 5Fh, 00h, 00h +31E4:A1A2  00 00 5F FF FF FF                    db       00h, 00h, 5Fh,0FFh,0FFh,0FFh +31E4:A1A8  F0 57 6E AF DB F5                    db      0F0h, 57h, 6Eh,0AFh,0DBh,0F5h +31E4:A1AE  55 FF FA DF D7 6A                    db       55h,0FFh,0FAh,0DFh,0D7h, 6Ah +31E4:A1B4  F5 EB F9 D4 01 E6                    db      0F5h,0EBh,0F9h,0D4h, 01h,0E6h +31E4:A1BA  EE 82 77 FF BF E0                    db      0EEh, 82h, 77h,0FFh,0BFh,0E0h +31E4:A1C0  9B 55 00 DC F9 76                    db       9Bh, 55h, 00h,0DCh,0F9h, 76h +31E4:A1C6  7D 77 E5 FC 1F AF                    db       7Dh, 77h,0E5h,0FCh, 1Fh,0AFh +31E4:A1CC  7E FF E7 AB BC 00                    db       7Eh,0FFh,0E7h,0ABh,0BCh, 00h +31E4:A1D2  00 3C B6 2C 00 00                    db       00h, 3Ch,0B6h, 2Ch, 00h, 00h +31E4:A1D8  22 DB 6C 00 00 2F                    db       22h,0DBh, 6Ch, 00h, 00h, 2Fh +31E4:A1DE  ED 7C 00 00 3E FB                    db      0EDh, 7Ch, 00h, 00h, 3Eh,0FBh +31E4:A1E4  E4 00 00 3F FF FC                    db      0E4h, 00h, 00h, 3Fh,0FFh,0FCh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 513 + +31E4:A1EA  00 00 40 00 02 00                    db       00h, 00h, 40h, 00h, 02h, 00h +31E4:A1F0  0F 80 00 01 F8 00                    db       0Fh, 80h, 00h, 01h,0F8h, 00h +31E4:A1F6  00 00 00 00 0E 00                    db       00h, 00h, 00h, 00h, 0Eh, 00h +31E4:A1FC  00 00 78 0A 00 00                    db       00h, 00h, 78h, 0Ah, 00h, 00h +31E4:A202  00 68 FE 00 00 00                    db       00h, 68h,0FEh, 00h, 00h, 00h +31E4:A208  7F FE 00 00 00 76                    db       7Fh,0FEh, 00h, 00h, 00h, 76h +31E4:A20E  FF FF FF FF FA CF                    db      0FFh,0FFh,0FFh,0FFh,0FAh,0CFh +31E4:A214  FF FF BE 6B 56 BE                    db      0FFh,0FFh,0BEh, 6Bh, 56h,0BEh +31E4:A21A  DA F6 DB DF 54 99                    db      0DAh,0F6h,0DBh,0DFh, 54h, 99h +31E4:A220  4F FF AB F2 BE 2D                    db       4Fh,0FFh,0ABh,0F2h,0BEh, 2Dh +31E4:A226  18 CF BD FF 94 95                    db       18h,0CFh,0BDh,0FFh, 94h, 95h +31E4:A22C  AB D5 FF AA C9 FF                    db      0ABh,0D5h,0FFh,0AAh,0C9h,0FFh +31E4:A232  6A AF 69 EA AB 3E                    db       6Ah,0AFh, 69h,0EAh,0ABh, 3Eh +31E4:A238  BE C5 AD D2 AA C7                    db      0BEh,0C5h,0ADh,0D2h,0AAh,0C7h +31E4:A23E  D6 E9 B2 AD 6F ED                    db      0D6h,0E9h,0B2h,0ADh, 6Fh,0EDh +31E4:A244  AA D7 DF 6F 25 39                    db      0AAh,0D7h,0DFh, 6Fh, 25h, 39h +31E4:A24A  EF 77 F0 E8 A5 B7                    db      0EFh, 77h,0F0h,0E8h,0A5h,0B7h +31E4:A250  7C 16 EB 7D EA DC                    db       7Ch, 16h,0EBh, 7Dh,0EAh,0DCh +31E4:A256  17 97 5D E7 74 13                    db       17h, 97h, 5Dh,0E7h, 74h, 13h +31E4:A25C  ED 77 D5 DC 1F                       db      0EDh, 77h,0D5h,0DCh, 1Fh +31E4:A261  49                                   db      49h +31E4:A262 úBF E3 BC 1F                          db      0BFh,0E3h,0BCh, 1Fh +31E4:A266 ú03 CF FF FC 1D FD                    db       03h,0CFh,0FFh,0FCh, 1Dh,0FDh +31E4:A26C  37 B5 FC 17 BF 26                    db       37h,0B5h,0FCh, 17h,0BFh, 26h +31E4:A272  FF FC 1F BC F7 FB                    db      0FFh,0FCh, 1Fh,0BCh,0F7h,0FBh +31E4:A278  D0 07 D2 F7 FF A0                    db      0D0h, 07h,0D2h,0F7h,0FFh,0A0h +31E4:A27E  01 FF 7D DA A0 00                    db       01h,0FFh, 7Dh,0DAh,0A0h, 00h +31E4:A284  1E EB DF A0 00 1D                    db       1Eh,0EBh,0DFh,0A0h, 00h, 1Dh +31E4:A28A  7F EA C0 00 0D 67                    db       7Fh,0EAh,0C0h, 00h, 0Dh, 67h +31E4:A290  DE C0 00 0E EF D5                    db      0DEh,0C0h, 00h, 0Eh,0EFh,0D5h +31E4:A296  40 00 0A FA DE FF                    db       40h, 00h, 0Ah,0FAh,0DEh,0FFh +31E4:A29C  FF 6A F4 F3 E9 52                    db      0FFh, 6Ah,0F4h,0F3h,0E9h, 52h +31E4:A2A2  D6 BB BF F8 D6 7E                    db      0D6h,0BBh,0BFh,0F8h,0D6h, 7Eh +31E4:A2A8  07 FF F7 D3 FE F8                    db       07h,0FFh,0F7h,0D3h,0FEh,0F8h +31E4:A2AE  BD 78 E9 5E 1D 8E                    db      0BDh, 78h,0E9h, 5Eh, 1Dh, 8Eh +31E4:A2B4  6F BE BE E2 FA E9                    db       6Fh,0BEh,0BEh,0E2h,0FAh,0E9h +31E4:A2BA  3D 6F F8 CE DF 7B                    db       3Dh, 6Fh,0F8h,0CEh,0DFh, 7Bh +31E4:A2C0  FE 00 00 60 BA FE                    db      0FEh, 00h, 00h, 60h,0BAh,0FEh +31E4:A2C6  00 00 79 96 B6 00                    db       00h, 00h, 79h, 96h,0B6h, 00h +31E4:A2CC  00 75 63 66 00 00                    db       00h, 75h, 63h, 66h, 00h, 00h +31E4:A2D2  4B 65 D6 00 00 3F                    db       4Bh, 65h,0D6h, 00h, 00h, 3Fh +31E4:A2D8  FF FC 00 00 40 00                    db      0FFh,0FCh, 00h, 00h, 40h, 00h +31E4:A2DE  02 00 0F 80 00 01                    db       02h, 00h, 0Fh, 80h, 00h, 01h +31E4:A2E4  C0 00 00 00 00 00                    db      0C0h, 00h, 00h, 00h, 00h, 00h +31E4:A2EA  0E 00 00 00 70 0E                    db       0Eh, 00h, 00h, 00h, 70h, 0Eh +31E4:A2F0  00 00 00 50 FE 00                    db       00h, 00h, 00h, 50h,0FEh, 00h +31E4:A2F6  00 00 7F AE 00 00                    db       00h, 00h, 7Fh,0AEh, 00h, 00h +31E4:A2FC  00 7F BF FF FF FF                    db       00h, 7Fh,0BFh,0FFh,0FFh,0FFh +31E4:A302  FF EE DF BD FF FF                    db      0FFh,0EEh,0DFh,0BDh,0FFh,0FFh +31E4:A308  FA BA A9 FA 7F DC                    db      0FAh,0BAh,0A9h,0FAh, 7Fh,0DCh +31E4:A30E  FE 5E DF AF BA EF                    db      0FEh, 5Eh,0DFh,0AFh,0BAh,0EFh +31E4:A314  DE B7 3C AA 6E 7B                    db      0DEh,0B7h, 3Ch,0AAh, 6Eh, 7Bh +31E4:A31A  FE 96 FD 74 0D 76                    db      0FEh, 96h,0FDh, 74h, 0Dh, 76h +31E4:A320  FB 65 F4 BE FF BB                    db      0FBh, 65h,0F4h,0BEh,0FFh,0BBh +31E4:A326  A7 6E F2 FB 77 6A                    db      0A7h, 6Eh,0F2h,0FBh, 77h, 6Ah +31E4:A32C  E3 B7 6F D9 AB FE                    db      0E3h,0B7h, 6Fh,0D9h,0ABh,0FEh +31E4:A332  95 F7 FE FD FB FD                    db       95h,0F7h,0FEh,0FDh,0FBh,0FDh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 514 + +31E4:A338  7E 00 00 20 07 C2                    db       7Eh, 00h, 00h, 20h, 07h,0C2h +31E4:A33E  00 00 20 00 02 00                    db       00h, 00h, 20h, 00h, 02h, 00h +31E4:A344  00 20 00 02 00 00                    db       00h, 20h, 00h, 02h, 00h, 00h +31E4:A34A  20 00 02 00 00 3F                    db       20h, 00h, 02h, 00h, 00h, 3Fh +31E4:A350  FF FE 00 00 40 00                    db      0FFh,0FEh, 00h, 00h, 40h, 00h +31E4:A356  02 00 07 80 00 01                    db       02h, 00h, 07h, 80h, 00h, 01h +31E4:A35C  F0 00 00 00 00 00                    db      0F0h, 00h, 00h, 00h, 00h, 00h +31E4:A362  0E 00                                db       0Eh, 00h +31E4:A364  00 00 70 0E 00 00                    db       00h, 00h, 70h, 0Eh, 00h, 00h +31E4:A36A  00 70 FA 00 00 00                    db       00h, 70h,0FAh, 00h, 00h, 00h +31E4:A370  7F F6 00 00 00 6F                    db       7Fh,0F6h, 00h, 00h, 00h, 6Fh +31E4:A376  FB                                   db      0FBh +31E4:A377  0007[FF]                             db      7 dup (0FFh) +31E4:A37E  FD B7 AF DB 3E FF                    db      0FDh,0B7h,0AFh,0DBh, 3Eh,0FFh +31E4:A384  7F 08 00 00 00 00                    db       7Fh, 08h, 00h, 00h, 00h, 00h +31E4:A38A  AE D5 56 5E DB 9D                    db      0AEh,0D5h, 56h, 5Eh,0DBh, 9Dh +31E4:A390  5A 8E EE 9D AA 0B                    db       5Ah, 8Eh,0EEh, 9Dh,0AAh, 0Bh +31E4:A396  1E 95 55 25 B0 F3                    db       1Eh, 95h, 55h, 25h,0B0h,0F3h +31E4:A39C  D5 B7 9A 01 BD 5D                    db      0D5h,0B7h, 9Ah, 01h,0BDh, 5Dh +31E4:A3A2  F9 9D 95 E1 BD 75                    db      0F9h, 9Dh, 95h,0E1h,0BDh, 75h +31E4:A3A8  BE 56 DF F9 2B 12                    db      0BEh, 56h,0DFh,0F9h, 2Bh, 12h +31E4:A3AE  87 F6 43 67 D8 D4                    db       87h,0F6h, 43h, 67h,0D8h,0D4h +31E4:A3B4  17 BE 91 A4 E4 1B                    db       17h,0BEh, 91h,0A4h,0E4h, 1Bh +31E4:A3BA  4D FA C9 9C 1B 3D                    db       4Dh,0FAh,0C9h, 9Ch, 1Bh, 3Dh +31E4:A3C0  B5 55 CC 1A 91 1D                    db      0B5h, 55h,0CCh, 1Ah, 91h, 1Dh +31E4:A3C6  8B 3C 1A 16 A9 9A                    db       8Bh, 3Ch, 1Ah, 16h,0A9h, 9Ah +31E4:A3CC  D4 1B 69 BF B5 9C                    db      0D4h, 1Bh, 69h,0BFh,0B5h, 9Ch +31E4:A3D2  18 45 D5 2C 64 1E                    db       18h, 45h,0D5h, 2Ch, 64h, 1Eh +31E4:A3D8  C9 5D F7 4C 3E 20                    db      0C9h, 5Dh,0F7h, 4Ch, 3Eh, 20h +31E4:A3DE  33 80 D0 03 CD 98                    db       33h, 80h,0D0h, 03h,0CDh, 98h +31E4:A3E4  6F A0 00 E3 AE A9                    db       6Fh,0A0h, 00h,0E3h,0AEh,0A9h +31E4:A3EA  A0 00 1E 77 F5 C0                    db      0A0h, 00h, 1Eh, 77h,0F5h,0C0h +31E4:A3F0  00 16 43 3F C0 00                    db       00h, 16h, 43h, 3Fh,0C0h, 00h +31E4:A3F6  12 D4 ED 40 00 15                    db       12h,0D4h,0EDh, 40h, 00h, 15h +31E4:A3FC  5E 0B 40 00 17 6C                    db       5Eh, 0Bh, 40h, 00h, 17h, 6Ch +31E4:A402  00 00 42 84 20 00                    db       00h, 00h, 42h, 84h, 20h, 00h +31E4:A408  00 42 00 00 00 00                    db       00h, 42h, 00h, 00h, 00h, 00h +31E4:A40E  42 84 20 00 00 42                    db       42h, 84h, 20h, 00h, 00h, 42h +31E4:A414  84 00 00 00 42 00                    db       84h, 00h, 00h, 00h, 42h, 00h +31E4:A41A  00 00 00 42 00 00                    db       00h, 00h, 00h, 42h, 00h, 00h +31E4:A420  00 00 42 00 00 00                    db       00h, 00h, 42h, 00h, 00h, 00h +31E4:A426  00 42 00 00 00 00                    db       00h, 42h, 00h, 00h, 00h, 00h +31E4:A42C  81 00 00 00 01 00                    db       81h, 00h, 00h, 00h, 01h, 00h +31E4:A432  80 00 00 01 00 80                    db       80h, 00h, 00h, 01h, 00h, 80h +31E4:A438  00 00 02 00 40 00                    db       00h, 00h, 02h, 00h, 40h, 00h +31E4:A43E  00 02 00 40 00 00                    db       00h, 02h, 00h, 40h, 00h, 00h +31E4:A444  02 00 20 00 00 04                    db       02h, 00h, 20h, 00h, 00h, 04h +31E4:A44A  00 20 00 00 04 00                    db       00h, 20h, 00h, 00h, 04h, 00h +31E4:A450  20 00 00 08 00 10                    db       20h, 00h, 00h, 08h, 00h, 10h +31E4:A456  00 00 08 00 10 00                    db       00h, 00h, 08h, 00h, 10h, 00h +31E4:A45C  00 10 00 10 00 00                    db       00h, 10h, 00h, 10h, 00h, 00h +31E4:A462  10 00 08 00 00 10                    db       10h, 00h, 08h, 00h, 00h, 10h +31E4:A468  00 08 00 00 20 00                    db       00h, 08h, 00h, 00h, 20h, 00h +31E4:A46E  04 00 00 20 00 04                    db       04h, 00h, 00h, 20h, 00h, 04h +31E4:A474  00 00 40 00 02 00                    db       00h, 00h, 40h, 00h, 02h, 00h +31E4:A47A  D3 D6 A4 EA 0A E5                    db      0D3h,0D6h,0A4h,0EAh, 0Ah,0E5h +31E4:A480  70 00 23 A0 B7 C0                    db       70h, 00h, 23h,0A0h,0B7h,0C0h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 515 + +31E4:A486  84 2A BE A0 CD C4                    db       84h, 2Ah,0BEh,0A0h,0CDh,0C4h +31E4:A48C  5B 00 E7 C0 80 3F                    db       5Bh, 00h,0E7h,0C0h, 80h, 3Fh +31E4:A492  12 29 5C 94 82 CA                    db       12h, 29h, 5Ch, 94h, 82h,0CAh +31E4:A498  9D 46 D6 BF 00 FF                    db       9Dh, 46h,0D6h,0BFh, 00h,0FFh +31E4:A49E  C0 00 03 57 00 40                    db      0C0h, 00h, 03h, 57h, 00h, 40h +31E4:A4A4  00 02 00 00 40 00                    db       00h, 02h, 00h, 00h, 40h, 00h +31E4:A4AA  02 00 00 40 00 02                    db       02h, 00h, 00h, 40h, 00h, 02h +31E4:A4B0  00 00 40 00 02 00                    db       00h, 00h, 40h, 00h, 02h, 00h +31E4:A4B6  00 3F FF FC 00 00                    db       00h, 3Fh,0FFh,0FCh, 00h, 00h +31E4:A4BC  40 00 02 00 07 80                    db       40h, 00h, 02h, 00h, 07h, 80h +31E4:A4C2  00 01 F0 00 00 00                    db       00h, 01h,0F0h, 00h, 00h, 00h +31E4:A4C8  00 00 0E 00 00 00                    db       00h, 00h, 0Eh, 00h, 00h, 00h +31E4:A4CE  70 0A 00 00 00 40                    db       70h, 0Ah, 00h, 00h, 00h, 40h +31E4:A4D4  FE 00 00 00 40 BA                    db      0FEh, 00h, 00h, 00h, 40h,0BAh +31E4:A4DA  00 00 00 40 53 FF                    db       00h, 00h, 00h, 40h, 53h,0FFh +31E4:A4E0  FF FF                                db      0FFh,0FFh +31E4:A4E2 úFF 3A FD 77 67 7E                    db      0FFh, 3Ah,0FDh, 77h, 67h, 7Eh +31E4:A4E8  63 A5 7F F7 C5 FF                    db       63h,0A5h, 7Fh,0F7h,0C5h,0FFh +31E4:A4EE  E6 7B 7E ED 20 00                    db      0E6h, 7Bh, 7Eh,0EDh, 20h, 00h +31E4:A4F4  01 05 34 BE 4F 92                    db       01h, 05h, 34h,0BEh, 4Fh, 92h +31E4:A4FA  AA 02 E9 B4 89 44                    db      0AAh, 02h,0E9h,0B4h, 89h, 44h +31E4:A500  5A 8B D8 98 A6 B6                    db       5Ah, 8Bh,0D8h, 98h,0A6h,0B6h +31E4:A506  96 1A 99 00 0B 40                    db       96h, 1Ah, 99h, 00h, 0Bh, 40h +31E4:A50C  32 A5 77 FB 66 9D                    db       32h,0A5h, 77h,0FBh, 66h, 9Dh +31E4:A512  59 04 77 CA 00 E9                    db       59h, 04h, 77h,0CAh, 00h,0E9h +31E4:A518  39 7A 8B 4B 02 2E                    db       39h, 7Ah, 8Bh, 4Bh, 02h, 2Eh +31E4:A51E  7B D4 25 FB D4 E0                    db       7Bh,0D4h, 25h,0FBh,0D4h,0E0h +31E4:A524  2A E7 0F 38 E7 FE                    db       2Ah,0E7h, 0Fh, 38h,0E7h,0FEh +31E4:A52A  CB 0A 0A 5B 3F 17                    db      0CBh, 0Ah, 0Ah, 5Bh, 3Fh, 17h +31E4:A530  09 46 EE EB AD 0D                    db       09h, 46h,0EEh,0EBh,0ADh, 0Dh +31E4:A536  22 2E EB 75 09 4B                    db       22h, 2Eh,0EBh, 75h, 09h, 4Bh +31E4:A53C  E5 6B F9 08 07 53                    db      0E5h, 6Bh,0F9h, 08h, 07h, 53h +31E4:A542  B7 D7 0F EC A9 DD                    db      0B7h,0D7h, 0Fh,0ECh,0A9h,0DDh +31E4:A548  E8 00 12 C4 6F D0                    db      0E8h, 00h, 12h,0C4h, 6Fh,0D0h +31E4:A54E  00 0B 7D FF A0 01                    db       00h, 0Bh, 7Dh,0FFh,0A0h, 01h +31E4:A554  85 88 D7 40 00 02                    db       85h, 88h,0D7h, 40h, 00h, 02h +31E4:A55A  F5 BE 9C 00 01 5E                    db      0F5h,0BEh, 9Ch, 00h, 01h, 5Eh +31E4:A560  ED 04 00 78 AF D9                    db      0EDh, 04h, 00h, 78h,0AFh,0D9h +31E4:A566  04 00 40 AB 33 52                    db       04h, 00h, 40h,0ABh, 33h, 52h +31E4:A56C  B2 AA 66 93 45 12                    db      0B2h,0AAh, 66h, 93h, 45h, 12h +31E4:A572  01 12 52 48 00 50                    db       01h, 12h, 52h, 48h, 00h, 50h +31E4:A578  91 84 22 92 D5 9F                    db       91h, 84h, 22h, 92h,0D5h, 9Fh +31E4:A57E  A7 B5 A2 82 BB B3                    db      0A7h,0B5h,0A2h, 82h,0BBh,0B3h +31E4:A584  01 52 46 49 12 97                    db       01h, 52h, 46h, 49h, 12h, 97h +31E4:A58A  A9 56 1A F7 B4 10                    db      0A9h, 56h, 1Ah,0F7h,0B4h, 10h +31E4:A590  09 A7 99 1C A1 28                    db       09h,0A7h, 99h, 1Ch,0A1h, 28h +31E4:A596  99 D7 AA 92 DD 32                    db       99h,0D7h,0AAh, 92h,0DDh, 32h +31E4:A59C  6A 64 A0 21 B5 B5                    db       6Ah, 64h,0A0h, 21h,0B5h,0B5h +31E4:A5A2  4B 2D 95 57 F3 BF                    db       4Bh, 2Dh, 95h, 57h,0F3h,0BFh +31E4:A5A8  FF F8 00 D6 C0 00                    db      0FFh,0F8h, 00h,0D6h,0C0h, 00h +31E4:A5AE  05 54 73 40 00 04                    db       05h, 54h, 73h, 40h, 00h, 04h +31E4:A5B4  EB BF 40 00 02 F3                    db      0EBh,0BFh, 40h, 00h, 02h,0F3h +31E4:A5BA  7E F0 00 01 2D 9F                    db       7Eh,0F0h, 00h, 01h, 2Dh, 9Fh +31E4:A5C0  E0 00 30 92 D3 C0                    db      0E0h, 00h, 30h, 92h,0D3h,0C0h +31E4:A5C6  00 18 5B 87 C0 01                    db       00h, 18h, 5Bh, 87h,0C0h, 01h +31E4:A5CC  F8 27 B8 00 01 F0                    db      0F8h, 27h,0B8h, 00h, 01h,0F0h +31E4:A5D2  13 A0 00 00 F0 08                    db       13h,0A0h, 00h, 00h,0F0h, 08h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 516 + +31E4:A5D8  A0 00 00 00 06 BF                    db      0A0h, 00h, 00h, 00h, 06h,0BFh +31E4:A5DE  00 00 00 01 73 6D                    db       00h, 00h, 00h, 01h, 73h, 6Dh +31E4:A5E4  BB EE 73 F6 5A 9F                    db      0BBh,0EEh, 73h,0F6h, 5Ah, 9Fh +31E4:A5EA  F7 35 E5 25 56 AA                    db      0F7h, 35h,0E5h, 25h, 56h,0AAh +31E4:A5F0  ED B7 9A 54 B1 3B                    db      0EDh,0B7h, 9Ah, 54h,0B1h, 3Bh +31E4:A5F6  F3 DB 57 6F FD FD                    db      0F3h,0DBh, 57h, 6Fh,0FDh,0FDh +31E4:A5FC  4F 9B 55 5F BD DD                    db       4Fh, 9Bh, 55h, 5Fh,0BDh,0DDh +31E4:A602  DB 76 FD 5A 6A 4A                    db      0DBh, 76h,0FDh, 5Ah, 6Ah, 4Ah +31E4:A608  A4 DF B7 FE BE 36                    db      0A4h,0DFh,0B7h,0FEh,0BEh, 36h +31E4:A60E  BF F3 BC 97 6C BF                    db      0BFh,0F3h,0BCh, 97h, 6Ch,0BFh +31E4:A614  FF D3 F9 B5 77 DB                    db      0FFh,0D3h,0F9h,0B5h, 77h,0DBh +31E4:A61A  FA D5 B5 7F FF C0                    db      0FAh,0D5h,0B5h, 7Fh,0FFh,0C0h +31E4:A620  00 1D D9 87 DF FF                    db       00h, 1Dh,0D9h, 87h,0DFh,0FFh +31E4:A626  D6 EF DB 20 00 25                    db      0D6h,0EFh,0DBh, 20h, 00h, 25h +31E4:A62C  EF F2                                db      0EFh,0F2h +31E4:A62E  40                                   db      40h + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +31E4:A62F                       sub_275         proc    near +31E4:A62F  00 13                                add     [bp+di],dl +31E4:A631  B7 B6                                mov     bh,0B6h +31E4:A633  80 00 0B                             add     byte ptr [bx+si],0Bh +31E4:A636  3D 00DD                              cmp     ax,0DDh +31E4:A639  00 05                                add     [di],al +31E4:A63B  EF                                   out     dx,ax                   ; port 8300h ??I/O Non-standard +31E4:A63C  DA 00                                fiadd   dword ptr [bx+si]       ; st = st + memory +31E4:A63E  00 02                                add     [bp+si],al +31E4:A640  F0> B4 00                                       lock mov     ah,0 +31E4:A643  7F FF FF 74 00 40                    db       7Fh,0FFh,0FFh, 74h, 00h, 40h +31E4:A649  01 AE FF FF FE 03                    db       01h,0AEh,0FFh,0FFh,0FEh, 03h +31E4:A64F  A9 BC 00 49 FA AA                    db      0A9h,0BCh, 00h, 49h,0FAh,0AAh +31E4:A655  64 00 7E F3 B7 7C                    db       64h, 00h, 7Eh,0F3h,0B7h, 7Ch +31E4:A65B  00 E6 DD 74 8F 7A                    db       00h,0E6h,0DDh, 74h, 8Fh, 7Ah +31E4:A661  B5 4D 72 FD B5 99                    db      0B5h, 4Dh, 72h,0FDh,0B5h, 99h +31E4:A667  A5 D6 BD 29 85 49                    db      0A5h,0D6h,0BDh, 29h, 85h, 49h +31E4:A66D  AD FA 69 F3 6B 6D                    db      0ADh,0FAh, 69h,0F3h, 6Bh, 6Dh +31E4:A673  5E 58 A9 51 DA FF                    db       5Eh, 58h,0A9h, 51h,0DAh,0FFh +31E4:A679  BB 7E 9E B7 FE AD                    db      0BBh, 7Eh, 9Eh,0B7h,0FEh,0ADh +31E4:A67F  2B 4A D7 E5 7B F3                    db       2Bh, 4Ah,0D7h,0E5h, 7Bh,0F3h +31E4:A685  6E 7F E7 AD EE DD                    db       6Eh, 7Fh,0E7h,0ADh,0EEh,0DDh +31E4:A68B  79 FF BB B6 D5 AF                    db       79h,0FFh,0BBh,0B6h,0D5h,0AFh +31E4:A691  FB B7 6D 5A FB EF                    db      0FBh,0B7h, 6Dh, 5Ah,0FBh,0EFh +31E4:A697  F5 CD F7 BB FE F5                    db      0F5h,0CDh,0F7h,0BBh,0FEh,0F5h +31E4:A69D  AA 94 DD FA FF FB                    db      0AAh, 94h,0DDh,0FAh,0FFh,0FBh +31E4:A6A3  EF FD BB FF FF FE                    db      0EFh,0FDh,0BBh,0FFh,0FFh,0FEh +31E4:A6A9  6F B4 02 30 81 9E                    db       6Fh,0B4h, 02h, 30h, 81h, 9Eh +31E4:A6AF  E8 03 83 80 4F 90                    db      0E8h, 03h, 83h, 80h, 4Fh, 90h +31E4:A6B5  00 00 00 2D 20 00                    db       00h, 00h, 00h, 2Dh, 20h, 00h +31E4:A6BB  00 00 17 40 00 FE                    db       00h, 00h, 17h, 40h, 00h,0FEh +31E4:A6C1  00 0B 80 00 82 00                    db       00h, 0Bh, 80h, 00h, 82h, 00h +31E4:A6C7  04 FF FF FF F0 FF                    db       04h,0FFh,0FFh,0FFh,0F0h,0FFh +31E4:A6CD  00 00 00 10 80 FE                    db       00h, 00h, 00h, 10h, 80h,0FEh +31E4:A6D3  B6 F7 DF 9E FD 37                    db      0B6h,0F7h,0DFh, 9Eh,0FDh, 37h +31E4:A6D9  5E DD ED A9 AD DD                    db       5Eh,0DDh,0EDh,0A9h,0ADh,0DDh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 517 + +31E4:A6DF  AFFF                                 dw      0AFFFh                  ; Data table (indexed access) +31E4:A6E1  FB 7B 5E DB B7 7F                    db      0FBh, 7Bh, 5Eh,0DBh,0B7h, 7Fh +31E4:A6E7  69 6D EE EF B6 83                    db       69h, 6Dh,0EEh,0EFh,0B6h, 83h +31E4:A6ED  F1 59 37 DC FC AD                    db      0F1h, 59h, 37h,0DCh,0FCh,0ADh +31E4:A6F3  DA D7 FF 6E B5 5B                    db      0DAh,0D7h,0FFh, 6Eh,0B5h, 5Bh +31E4:A6F9  ED F5 FF                             db      0EDh,0F5h,0FFh +31E4:A6FC                       loc_2345:                                       ;  xref 31E4:A6FF +31E4:A6FC úAD                                   lodsw                           ; String [si] to ax +31E4:A6FD  AB                                   stosw                           ; Store ax to es:[di] +31E4:A6FE  2F                                   das                             ; Decimal adjust +31E4:A6FF  EB FB                                jmp     short loc_2345          ; (A6FC) +                                sub_275         endp + +31E4:A701  ED 7D BB EC EB 5B                    db      0EDh, 7Dh,0BBh,0ECh,0EBh, 5Bh +31E4:A707  FF FF BF FF 52 00                    db      0FFh,0FFh,0BFh,0FFh, 52h, 00h +31E4:A70D  0F FD BF FE FF 6C                    db       0Fh,0FDh,0BFh,0FEh,0FFh, 6Ch +31E4:A713  BE FF FF C0 00 FF                    db      0BEh,0FFh,0FFh,0C0h, 00h,0FFh +31E4:A719  FC 00 3E AA FF 00                    db      0FCh, 00h, 3Eh,0AAh,0FFh, 00h +31E4:A71F  00 01 00 BE 00 00                    db       00h, 01h, 00h,0BEh, 00h, 00h +31E4:A725  00 80 F4 00 00 00                    db       00h, 80h,0F4h, 00h, 00h, 00h +31E4:A72B  40 E8 00 FF 00 20                    db       40h,0E8h, 00h,0FFh, 00h, 20h +31E4:A731  D0 00 FF 00 10 A0                    db      0D0h, 00h,0FFh, 00h, 10h,0A0h +31E4:A737  00 00 00 08 40 00                    db       00h, 00h, 00h, 08h, 40h, 00h +31E4:A73D  00 00 04 80 00 00                    db       00h, 00h, 04h, 80h, 00h, 00h +31E4:A743  00 02 F8 3F FF FF                    db       00h, 02h,0F8h, 3Fh,0FFh,0FFh +31E4:A749  FE 2D 2B 34 62 15                    db      0FEh, 2Dh, 2Bh, 34h, 62h, 15h +31E4:A74F  18 66 6B 2A C3 2B                    db       18h, 66h, 6Bh, 2Ah,0C3h, 2Bh +31E4:A755  A4 26 23 09 96 41                    db      0A4h, 26h, 23h, 09h, 96h, 41h +31E4:A75B  27 28 30 4A 2B 1C                    db       27h, 28h, 30h, 4Ah, 2Bh, 1Ch +31E4:A761  2A                                   db      2Ah +31E4:A762                       loc_2346: +31E4:A762  2E 93 34 36 DA 14                    db       2Eh, 93h, 34h, 36h,0DAh, 14h +31E4:A768  16 54 32 2D 16 12                    db       16h, 54h, 32h, 2Dh, 16h, 12h +31E4:A76E  9A 66 2A 12 13 17                    db       9Ah, 66h, 2Ah, 12h, 13h, 17h +31E4:A774  19 2F 7F 55 28 5F                    db       19h, 2Fh, 7Fh, 55h, 28h, 5Fh +31E4:A77A  96 94 93 69 96                       db       96h, 94h, 93h, 69h, 96h +31E4:A77F  57 4B 3D 3D 44 2B                    db      'WK==D+V0' +31E4:A785  56 30 +31E4:A787  91 B6 AB 98 A2 96                    db       91h,0B6h,0ABh, 98h,0A2h, 96h +31E4:A78D  3A 99 71 91 48 7F                    db       3Ah, 99h, 71h, 91h, 48h, 7Fh +31E4:A793  66 7A 55 64 63 5D                    db      'fzUdc]hIO' +31E4:A799  68 49 4F +31E4:A79C  13 34 3A 35 99 35                    db       13h, 34h, 3Ah, 35h, 99h, 35h +31E4:A7A2  91 9A 97 78 93 98                    db       91h, 9Ah, 97h, 78h, 93h, 98h +31E4:A7A8  91 9F 91 2E 13 58                    db       91h, 9Fh, 91h, 2Eh, 13h, 58h +31E4:A7AE  AD 14 92 98 A2 9F                    db      0ADh, 14h, 92h, 98h,0A2h, 9Fh +31E4:A7B4  9A 12 91 16 2F 58                    db       9Ah, 12h, 91h, 16h, 2Fh, 58h +31E4:A7BA  77 71 96 5F 92 92                    db       77h, 71h, 96h, 5Fh, 92h, 92h +31E4:A7C0  AB C5 02 AE BE B7                    db      0ABh,0C5h, 02h,0AEh,0BEh,0B7h +31E4:A7C6  EA BF DC EE E7 EF                    db      0EAh,0BFh,0DCh,0EEh,0E7h,0EFh +31E4:A7CC  CB FE 6E D5 F7 FF                    db      0CBh,0FEh, 6Eh,0D5h,0F7h,0FFh +31E4:A7D2  6B F3 2E 7B CB 72                    db       6Bh,0F3h, 2Eh, 7Bh,0CBh, 72h +31E4:A7D8  6D 5D BF EF 00 0D                    db       6Dh, 5Dh,0BFh,0EFh, 00h, 0Dh +31E4:A7DE  6E DE AA 77 FB 5D                    db       6Eh,0DEh,0AAh, 77h,0FBh, 5Dh +31E4:A7E4  5F DB 6E 67 75 BA                    db       5Fh,0DBh, 6Eh, 67h, 75h,0BAh +31E4:A7EA  D9 FD 5E D5 D7 ED                    db      0D9h,0FDh, 5Eh,0D5h,0D7h,0EDh +31E4:A7F0  AE EF DD 77 DF F4                    db      0AEh,0EFh,0DDh, 77h,0DFh,0F4h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 518 + +31E4:A7F6  CF 65 EB BB D6 DB                    db      0CFh, 65h,0EBh,0BBh,0D6h,0DBh +31E4:A7FC  7F FF F5 FF D6 FE                    db       7Fh,0FFh,0F5h,0FFh,0D6h,0FEh +31E4:A802  DF FD 5F FF FB 78                    db      0DFh,0FDh, 5Fh,0FFh,0FBh, 78h +31E4:A808  46 A0 00 04 EB 3B                    db       46h,0A0h, 00h, 04h,0EBh, 3Bh +31E4:A80E  40 0F FE DF DF 80                    db       40h, 0Fh,0FEh,0DFh,0DFh, 80h +31E4:A814  00 02 52 DD 00 00                    db       00h, 02h, 52h,0DDh, 00h, 00h +31E4:A81A  01 7F DA 00 00 00                    db       01h, 7Fh,0DAh, 00h, 00h, 00h +31E4:A820  BD 74 00 00 00 48                    db      0BDh, 74h, 00h, 00h, 00h, 48h +31E4:A826  FF EF FF FF FF DB                    db      0FFh,0EFh,0FFh,0FFh,0FFh,0DBh +31E4:A82C  0F FF B7 3F BD 0F                    db       0Fh,0FFh,0B7h, 3Fh,0BDh, 0Fh +31E4:A832  F3 AB FF BD 0E FF                    db      0F3h,0ABh,0FFh,0BDh, 0Eh,0FFh +31E4:A838  9A BF ED 55 B7 6A                    db       9Ah,0BFh,0EDh, 55h,0B7h, 6Ah +31E4:A83E  04 FF 6E CB D5 EE                    db       04h,0FFh, 6Eh,0CBh,0D5h,0EEh +31E4:A844  ED FD 67 D6 FE BD                    db      0EDh,0FDh, 67h,0D6h,0FEh,0BDh +31E4:A84A  FD AD DD EF FA B7                    db      0FDh,0ADh,0DDh,0EFh,0FAh,0B7h +31E4:A850  F7 BD 9F FF 6F BA                    db      0F7h,0BDh, 9Fh,0FFh, 6Fh,0BAh +31E4:A856  BA FD EA EB 6F DF                    db      0BAh,0FDh,0EAh,0EBh, 6Fh,0DFh +31E4:A85C  FF DF BB BB 7F FB                    db      0FFh,0DFh,0BBh,0BBh, 7Fh,0FBh +31E4:A862  F6 F5 6F BA F5 FD                    db      0F6h,0F5h, 6Fh,0BAh,0F5h,0FDh +31E4:A868  9E CA 95 6D F6 DB                    db       9Eh,0CAh, 95h, 6Dh,0F6h,0DBh +31E4:A86E  6D 5C FF EF B4 6A                    db       6Dh, 5Ch,0FFh,0EFh,0B4h, 6Ah +31E4:A874  B6 DF FD BF B7 7F                    db      0B6h,0DFh,0FDh,0BFh,0B7h, 7Fh +31E4:A87A  FF FD 77 77 AD AD                    db      0FFh,0FDh, 77h, 77h,0ADh,0ADh +31E4:A880  AB FD F8 7D DB DA                    db      0ABh,0FDh,0F8h, 7Dh,0DBh,0DAh +31E4:A886  FF FF 5F 7F FC 80                    db      0FFh,0FFh, 5Fh, 7Fh,0FCh, 80h +31E4:A88C  06 BD FE 21 00 00                    db       06h,0BDh,0FEh, 21h, 00h, 00h +31E4:A892  FF FF C6 00 00 1C                    db      0FFh,0FFh,0C6h, 00h, 00h, 1Ch +31E4:A898  00 E8 00 00 03 FF                    db       00h,0E8h, 00h, 00h, 03h,0FFh +31E4:A89E  EF 00 00 00 00 B0                    db      0EFh, 00h, 00h, 00h, 00h,0B0h +31E4:A8A4  C0 00 00 00 1D BF                    db      0C0h, 00h, 00h, 00h, 1Dh,0BFh +31E4:A8AA  00 03 FF 00 7F FF                    db       00h, 03h,0FFh, 00h, 7Fh,0FFh +31E4:A8B0  02 00 B6 8A 9A EE                    db       02h, 00h,0B6h, 8Ah, 9Ah,0EEh +31E4:A8B6  83 9E 5C B6 54 B5                    db       83h, 9Eh, 5Ch,0B6h, 54h,0B5h +31E4:A8BC  EA 8C 92 B5 5F FD                    db      0EAh, 8Ch, 92h,0B5h, 5Fh,0FDh +31E4:A8C2  3C E7 6F 5D D5 55                    db       3Ch,0E7h, 6Fh, 5Dh,0D5h, 55h +31E4:A8C8  FF EA FB DD 7F FB                    db      0FFh,0EAh,0FBh,0DDh, 7Fh,0FBh +31E4:A8CE  BE F5 DF 99 A6 F7                    db      0BEh,0F5h,0DFh, 99h,0A6h,0F7h +31E4:A8D4  BF DA AA FE BE E7                    db      0BFh,0DAh,0AAh,0FEh,0BEh,0E7h +31E4:A8DA  F7 7A 95 49 3F F7                    db      0F7h, 7Ah, 95h, 49h, 3Fh,0F7h +31E4:A8E0  D7 6B 37 B5 FF 7F                    db      0D7h, 6Bh, 37h,0B5h,0FFh, 7Fh +31E4:A8E6  2A FF DF ED B5 EA                    db       2Ah,0FFh,0DFh,0EDh,0B5h,0EAh +31E4:A8EC  EC AD EB F7 7F FF                    db      0ECh,0ADh,0EBh,0F7h, 7Fh,0FFh +31E4:A8F2  FF 43 FF FF F8 AB                    db      0FFh, 43h,0FFh,0FFh,0F8h,0ABh +31E4:A8F8  FC 00 00 65 FF 00                    db      0FCh, 00h, 00h, 65h,0FFh, 00h +31E4:A8FE  00 00 02 FF E0 00                    db       00h, 00h, 02h,0FFh,0E0h, 00h +31E4:A904  00 01 BD 20 00 00                    db       00h, 01h,0BDh, 20h, 00h, 00h +31E4:A90A  00 5F 40 00 03 80                    db       00h, 5Fh, 40h, 00h, 03h, 80h +31E4:A910  2F 80 00 27 E0 17                    db       2Fh, 80h, 00h, 27h,0E0h, 17h +31E4:A916  80 00 0C 10 0B 80                    db       80h, 00h, 0Ch, 10h, 0Bh, 80h +31E4:A91C  00 07 40 05 80 00                    db       00h, 07h, 40h, 05h, 80h, 00h +31E4:A922  00 00 02 80 00 00                    db       00h, 00h, 02h, 80h, 00h, 00h +31E4:A928  00 01 00 00 00                       db       00h, 01h, 00h, 00h, 00h +31E4:A92D  00 00 FE FE FE FE                    db       00h, 00h,0FEh,0FEh,0FEh,0FEh +31E4:A933  FE 00                                db      0FEh, 00h +31E4:A935  001A[00]                             db      26 dup (0) +31E4:A94F  FE FE FE FE FE 00                    db      0FEh,0FEh,0FEh,0FEh,0FEh, 00h +31E4:A955  0008[00]                             db      8 dup (0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 519 + +31E4:A95D  FE FE FF FF FF FF                    db      0FEh,0FEh,0FFh,0FFh,0FFh,0FFh +31E4:A963  FF FE FE 00 00 00                    db      0FFh,0FEh,0FEh, 00h, 00h, 00h +31E4:A969  00 00 00 FE FF FF                    db       00h, 00h, 00h,0FEh,0FFh,0FFh +31E4:A96F  FE 00 FE 00 FE FF                    db      0FEh, 00h,0FEh, 00h,0FEh,0FFh +31E4:A975  FF FE 00 00 00 00                    db      0FFh,0FEh, 00h, 00h, 00h, 00h +31E4:A97B  FE FF 00 FE 00 FE                    db      0FEh,0FFh, 00h,0FEh, 00h,0FEh +31E4:A981  00 FE 00 FE 00 FF                    db       00h,0FEh, 00h,0FEh, 00h,0FFh +31E4:A987  FE 00 00 00 FE FF                    db      0FEh, 00h, 00h, 00h,0FEh,0FFh +31E4:A98D  FE FF FE 00 FE 00                    db      0FEh,0FFh,0FEh, 00h,0FEh, 00h +31E4:A993  FE 00 FE FF FE 00                    db      0FEh, 00h,0FEh,0FFh,0FEh, 00h +31E4:A999  00 FE FF FE 00 FE                    db       00h,0FEh,0FFh,0FEh, 00h,0FEh +31E4:A99F  FF FE 00 ED F6 6B                    db      0FFh,0FEh, 00h,0EDh,0F6h, 6Bh +31E4:A9A5  68 0B CE AB 55 53                    db       68h, 0Bh,0CEh,0ABh, 55h, 53h +31E4:A9AB  79 EA 76 B6 96 B7                    db       79h,0EAh, 76h,0B6h, 96h,0B7h +31E4:A9B1  AC CA 96 9E 59 CD                    db      0ACh,0CAh, 96h, 9Eh, 59h,0CDh +31E4:A9B7  4F 6B F5 6F 9A FF                    db       4Fh, 6Bh,0F5h, 6Fh, 9Ah,0FFh +31E4:A9BD  75 49 B7 DB CD 53                    db       75h, 49h,0B7h,0DBh,0CDh, 53h +31E4:A9C3  6A EF FF AE EA DA                    db       6Ah,0EFh,0FFh,0AEh,0EAh,0DAh +31E4:A9C9  FB F6 FB A7 CF FF                    db      0FBh,0F6h,0FBh,0A7h,0CFh,0FFh +31E4:A9CF  BF FF 5E DF 67 EF                    db      0BFh,0FFh, 5Eh,0DFh, 67h,0EFh +31E4:A9D5  BB F7 FB B5 7F FF                    db      0BBh,0F7h,0FBh,0B5h, 7Fh,0FFh +31E4:A9DB  FF FF BF EB C0 00                    db      0FFh,0FFh,0BFh,0EBh,0C0h, 00h +31E4:A9E1  00 7F D7 C0 00 00                    db       00h, 7Fh,0D7h,0C0h, 00h, 00h +31E4:A9E7  10 D7 40 00 00 1F                    db       10h,0D7h, 40h, 00h, 00h, 1Fh +31E4:A9ED  FF C0 00 00 01 38                    db      0FFh,0C0h, 00h, 00h, 01h, 38h +31E4:A9F3  00 00 00 01 FF 00                    db       00h, 00h, 00h, 01h,0FFh, 00h +31E4:A9F9  00 00 01 FD 00 00                    db       00h, 00h, 01h,0FDh, 00h, 00h +31E4:A9FF  00 01 BF 80 00 00                    db       00h, 01h,0BFh, 80h, 00h, 00h +31E4:AA05  01 DF C0 00 00 01                    db       01h,0DFh,0C0h, 00h, 00h, 01h +31E4:AA0B  CF 60 00 00 01 DD                    db      0CFh, 60h, 00h, 00h, 01h,0DDh +31E4:AA11  DF F8 00 01 CC B6                    db      0DFh,0F8h, 00h, 01h,0CCh,0B6h +31E4:AA17  D7 F7 FF E8 DE EE                    db      0D7h,0F7h,0FFh,0E8h,0DEh,0EEh +31E4:AA1D  FB AE FB 6A B7 E4                    db      0FBh,0AEh,0FBh, 6Ah,0B7h,0E4h +31E4:AA23  99 65 B2 B5 6A 99                    db       99h, 65h,0B2h,0B5h, 6Ah, 99h +31E4:AA29  FB 6D 49 67 4E E9                    db      0FBh, 6Dh, 49h, 67h, 4Eh,0E9h +31E4:AA2F  96 B5 D7 B5 F3 73                    db       96h,0B5h,0D7h,0B5h,0F3h, 73h +31E4:AA35  58 D4 BB 7D 9A FE                    db       58h,0D4h,0BBh, 7Dh, 9Ah,0FEh +31E4:AA3B  BE EA AC 56 A2 44                    db      0BEh,0EAh,0ACh, 56h,0A2h, 44h +31E4:AA41  C9 F6 6D 5F 7C BD                    db      0C9h,0F6h, 6Dh, 5Fh, 7Ch,0BDh +31E4:AA47  FF FF DA AD B5 DF                    db      0FFh,0FFh,0DAh,0ADh,0B5h,0DFh +31E4:AA4D  DF BB 5A FD 9F FB                    db      0DFh,0BBh, 5Ah,0FDh, 9Fh,0FBh +31E4:AA53  FE ED 6F FF 7F FF                    db      0FEh,0EDh, 6Fh,0FFh, 7Fh,0FFh +31E4:AA59  F7 FB F2 80 00                       db      0F7h,0FBh,0F2h, 80h, 00h +31E4:AA5E ú0D C3 FE 80 00 0E                    db       0Dh,0C3h,0FEh, 80h, 00h, 0Eh +31E4:AA64  7F FF 80 00 01 FF                    db       7Fh,0FFh, 80h, 00h, 01h,0FFh +31E4:AA6A  38 00 00 00 FC FE                    db       38h, 00h, 00h, 00h,0FCh,0FEh +31E4:AA70  00 00 00 7F F2 00                    db       00h, 00h, 00h, 7Fh,0F2h, 00h +31E4:AA76  00 00 7D EB 00 00                    db       00h, 00h, 7Dh,0EBh, 00h, 00h +31E4:AA7C  00 5F F5 80 00 00                    db       00h, 5Fh,0F5h, 80h, 00h, 00h +31E4:AA82  77 6E C0 00 03 ED                    db       77h, 6Eh,0C0h, 00h, 03h,0EDh +31E4:AA88  9B 60 00 04 DF FE                    db       9Bh, 60h, 00h, 04h,0DFh,0FEh +31E4:AA8E  FF FF FD 9F BB 36                    db      0FFh,0FFh,0FDh, 9Fh,0BBh, 36h +31E4:AA94  A0 0B FE BF 54 AF                    db      0A0h, 0Bh,0FEh,0BFh, 54h,0AFh +31E4:AA9A  F5 BB BC AF 2D 5D                    db      0F5h,0BBh,0BCh,0AFh, 2Dh, 5Dh +31E4:AAA0  9E BA B4 B3 77 DB                    db       9Eh,0BAh,0B4h,0B3h, 77h,0DBh +31E4:AAA6  AD D9 6B BD BB BD                    db      0ADh,0D9h, 6Bh,0BDh,0BBh,0BDh +31E4:AAAC  AA CB 95 93 B5 55                    db      0AAh,0CBh, 95h, 93h,0B5h, 55h +31E4:AAB2  96 FB 59 EB A7 75                    db       96h,0FBh, 59h,0EBh,0A7h, 75h +31E4:AAB8  5A F6 BE 95 77 6F                    db       5Ah,0F6h,0BEh, 95h, 77h, 6Fh +31E4:AABE  66 CA BE 6E AE B7                    db       66h,0CAh,0BEh, 6Eh,0AEh,0B7h +31E4:AAC4  AA 9A FF 73 DF 7D                    db      0AAh, 9Ah,0FFh, 73h,0DFh, 7Dh +31E4:AACA  FF FF FF 7F C1 38                    db      0FFh,0FFh,0FFh, 7Fh,0C1h, 38h +31E4:AAD0  00 00 DD FE 60 00                    db       00h, 00h,0DDh,0FEh, 60h, 00h +31E4:AAD6  00 FE 1C C0 00 00                    db       00h,0FEh, 1Ch,0C0h, 00h, 00h +31E4:AADC  BF FF 80 00 00 FF                    db      0BFh,0FFh, 80h, 00h, 00h,0FFh +31E4:AAE2  38 00 00 00 FC F8                    db       38h, 00h, 00h, 00h,0FCh,0F8h +31E4:AAE8  00 00 00 7F E8 00                    db       00h, 00h, 00h, 7Fh,0E8h, 00h +31E4:AAEE  00 00 FF EC 00 00                    db       00h, 00h,0FFh,0ECh, 00h, 00h +31E4:AAF4  01 FB D7 F8 00 07                    db       01h,0FBh,0D7h,0F8h, 00h, 07h +31E4:AAFA  E7 7F FF FF FD 3B                    db      0E7h, 7Fh,0FFh,0FFh,0FDh, 3Bh +31E4:AB00  DF FF DB 7E E7 E7                    db      0DFh,0FFh,0DBh, 7Eh,0E7h,0E7h +31E4:AB06  FE FD EE BD A5 59                    db      0FEh,0FDh,0EEh,0BDh,0A5h, 59h +31E4:AB0C  9A A9 26 8D 15 FD                    db       9Ah,0A9h, 26h, 8Dh, 15h,0FDh +31E4:AB12  D6                                   db      0D6h +31E4:AB13                       loc_2348: +31E4:AB13  54                                   push    sp +31E4:AB14  F2 49 2B 3C 53 F5                    db      0F2h, 49h, 2Bh, 3Ch, 53h,0F5h +31E4:AB1A  A9 50 5F DB BB FF                    db      0A9h, 50h, 5Fh,0DBh,0BBh,0FFh +31E4:AB20  63 6F 83 BF F7 BF                    db       63h, 6Fh, 83h,0BFh,0F7h,0BFh +31E4:AB26  74 37 B6 A6 6A 7E                    db       74h, 37h,0B6h,0A6h, 6Ah, 7Eh +31E4:AB2C  9D BB E5 92 BF 5A                    db       9Dh,0BBh,0E5h, 92h,0BFh, 5Ah +31E4:AB32  55 67 74 B0 AF 5F                    db       55h, 67h, 74h,0B0h,0AFh, 5Fh +31E4:AB38  FC A6 D9 53 55 BB                    db      0FCh,0A6h,0D9h, 53h, 55h,0BBh +31E4:AB3E  A2 35 B4 7A AA 00                    db      0A2h, 35h,0B4h, 7Ah,0AAh, 00h +31E4:AB44  05                                   db       05h +31E4:AB45                       loc_2349: +31E4:AB45  3C F2                                cmp     al,0F2h +31E4:AB47  98                                   cbw                             ; Convrt byte to word +31E4:AB48  0F                   ;*              pop     cs                      ; Dangerous-8088 only +31E4:AB48  0F                                   db      0Fh +31E4:AB49  F3 7B EF 5D F0 0E                    db      0F3h, 7Bh,0EFh, 5Dh,0F0h, 0Eh +31E4:AB4F  7C F4 9D 00 03 72                    db       7Ch,0F4h, 9Dh, 00h, 03h, 72h +31E4:AB55  F7 6B 00 01 FF E2                    db      0F7h, 6Bh, 00h, 01h,0FFh,0E2h +31E4:AB5B  5E 00 00 00 BD 34                    db       5Eh, 00h, 00h, 00h,0BDh, 34h +31E4:AB61  00 00 FF C8 C8 00                    db       00h, 00h,0FFh,0C8h,0C8h, 00h +31E4:AB67  01 93 AE F8 00 07                    db       01h, 93h,0AEh,0F8h, 00h, 07h +31E4:AB6D  9B 40 D0 00 00 4B                    db       9Bh, 40h,0D0h, 00h, 00h, 4Bh +31E4:AB73  9E 5E 00 00 29 B2                    db       9Eh, 5Eh, 00h, 00h, 29h,0B2h +31E4:AB79  B1 00 00 AE BA DE                    db      0B1h, 00h, 00h,0AEh,0BAh,0DEh +31E4:AB7F  FF FF 32 0D 26 29                    db      0FFh,0FFh, 32h, 0Dh, 26h, 29h +31E4:AB85  EE 28 65 00 4B D3                    db      0EEh, 28h, 65h, 00h, 4Bh,0D3h +31E4:AB8B  EB A2 5A 9A 20 03                    db      0EBh,0A2h, 5Ah, 9Ah, 20h, 03h +31E4:AB91  EC 16 C8 99 55 19                    db      0ECh, 16h,0C8h, 99h, 55h, 19h +31E4:AB97  A0 C5 A3 B3 0C 57                    db      0A0h,0C5h,0A3h,0B3h, 0Ch, 57h +31E4:AB9D  AE E8 F9 B4 86 6B                    db      0AEh,0E8h,0F9h,0B4h, 86h, 6Bh +31E4:ABA3  A9 93                                db      0A9h, 93h +31E4:ABA5                       loc_2350: +31E4:ABA5  55                                   push    bp +31E4:ABA6  19 4C 72                             sbb     [si+72h],cx +31E4:ABA9  29 6A CC                             sub     [bp+si-34h],bp +31E4:ABAC  4A                                   dec     dx +31E4:ABAD  EA 966B:DBED         ;*              jmp     far ptr loc_2376        ;*(966B:DBED) +31E4:ABAD  EA                                   db      0EAh +31E4:ABAE  DBED 966B                            dw      0DBEDh, 966Bh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 521 + +                                                                                ;* No entry point to code +31E4:ABB2  D2 7B D6                             sar     byte ptr [bp+di-2Ah],cl ; Shift w/sign fill +31E4:ABB5  CF                                   iret                            ; Interrupt return +                                                                                ;* No entry point to code +31E4:ABB6  54                                   push    sp +31E4:ABB7  CB                                   retf +                                                                                ;* No entry point to code +31E4:ABB8  9F                                   lahf                            ; Load ah from flags +31E4:ABB9  BA 55A5                              mov     dx,55A5h +31E4:ABBC  FF C9                                dec     cx +31E4:ABBE  5A                                   pop     dx +31E4:ABBF úBF FFE7                              mov     di,data_1203e           ; (31E4:FFE7=0) +31E4:ABC2  19 DF                                sbb     di,bx +31E4:ABC4  7F FF FE 4D D4 80                    db       7Fh,0FFh,0FEh, 4Dh,0D4h, 80h +31E4:ABCA  00 01 43 F9 04 00                    db       00h, 01h, 43h,0F9h, 04h, 00h +31E4:ABD0  81 B5 B2 00 00 01                    db       81h,0B5h,0B2h, 00h, 00h, 01h +31E4:ABD6  C9 E4 00 00 00 7A                    db      0C9h,0E4h, 00h, 00h, 00h, 7Ah +31E4:ABDC  C8 00 00 00 36 90                    db      0C8h, 00h, 00h, 00h, 36h, 90h +31E4:ABE2  18 00 30 3F 20 00                    db       18h, 00h, 30h, 3Fh, 20h, 00h +31E4:ABE8  00 00 00 40 00 00                    db       00h, 00h, 00h, 40h, 00h, 00h +31E4:ABEE  00 01 80 00 00 00                    db       00h, 01h, 80h, 00h, 00h, 00h +31E4:ABF4  01 FF FF FF FF FF                    db       01h,0FFh,0FFh,0FFh,0FFh,0FFh +31E4:ABFA  AD E5 3B FD FC F3                    db      0ADh,0E5h, 3Bh,0FDh,0FCh,0F3h +31E4:AC00  B2 A5 3D EB F3 BB                    db      0B2h,0A5h, 3Dh,0EBh,0F3h,0BBh +31E4:AC06  9B BD 67 F7 6A B9                    db       9Bh,0BDh, 67h,0F7h, 6Ah,0B9h +31E4:AC0C  2D 2F D6 C7 3D BD                    db       2Dh, 2Fh,0D6h,0C7h, 3Dh,0BDh +31E4:AC12  95 FA B5 32 8A 48                    db       95h,0FAh,0B5h, 32h, 8Ah, 48h +31E4:AC18  72 A5 55 6C 5B 7F                    db       72h,0A5h, 55h, 6Ch, 5Bh, 7Fh +31E4:AC1E  B8 EC A4 97 DD 72                    db      0B8h,0ECh,0A4h, 97h,0DDh, 72h +31E4:AC24  D6 D5 27 BF 53 6A                    db      0D6h,0D5h, 27h,0BFh, 53h, 6Ah +31E4:AC2A  95 2B F4 EA DD 55                    db       95h, 2Bh,0F4h,0EAh,0DDh, 55h +31E4:AC30  D5 F5 8D D2 ED 7F                    db      0D5h,0F5h, 8Dh,0D2h,0EDh, 7Fh +31E4:AC36  7B FF 6F AE BB 85                    db       7Bh,0FFh, 6Fh,0AEh,0BBh, 85h +31E4:AC3C  FF FE 79 9F EA 00                    db      0FFh,0FEh, 79h, 9Fh,0EAh, 00h +31E4:AC42  01 7A BF 07 FF FF                    db       01h, 7Ah,0BFh, 07h,0FFh,0FFh +31E4:AC48  FF F8 F8 00 00 00                    db      0FFh,0F8h,0F8h, 00h, 00h, 00h +31E4:AC4E  07 00 00 00 00 00                    db       07h, 00h, 00h, 00h, 00h, 00h +31E4:AC54  80 00 00 00 01 80                    db       80h, 00h, 00h, 00h, 01h, 80h +31E4:AC5A  00 00 00 01 FF FF                    db       00h, 00h, 00h, 01h,0FFh,0FFh +31E4:AC60  FF FF FF 00                          db      0FFh,0FFh,0FFh, 00h +31E4:AC64  000E[00]                             db      14 dup (0) +31E4:AC72  D6 E7 66 EF F6 13                    db      0D6h,0E7h, 66h,0EFh,0F6h, 13h +31E4:AC78  6F ED B2 AB B5 37                    db       6Fh,0EDh,0B2h,0ABh,0B5h, 37h +31E4:AC7E  EB 3B 35 DB 46 CF                    db      0EBh, 3Bh, 35h,0DBh, 46h,0CFh +31E4:AC84  2A 56 EB 6B BB 73                    db       2Ah, 56h,0EBh, 6Bh,0BBh, 73h +31E4:AC8A  A5 FD 7B B7 EA E5                    db      0A5h,0FDh, 7Bh,0B7h,0EAh,0E5h +31E4:AC90  93 7F FE FF FD 9F                    db       93h, 7Fh,0FEh,0FFh,0FDh, 9Fh +31E4:AC96  43 BF F8 7F FB 43                    db       43h,0BFh,0F8h, 7Fh,0FBh, 43h +31E4:AC9C  E7 F8 5E AB C3 FF                    db      0E7h,0F8h, 5Eh,0ABh,0C3h,0FFh +31E4:ACA2  78 51 DF C2 E9 F8                    db       78h, 51h,0DFh,0C2h,0E9h,0F8h +31E4:ACA8  5B AB C3 69 E8 50                    db       5Bh,0ABh,0C3h, 69h,0E8h, 50h +31E4:ACAE  D7 C3 5D D8 5D FF                    db      0D7h,0C3h, 5Dh,0D8h, 5Dh,0FFh +31E4:ACB4  C2 AF B8 79 BF C2                    db      0C2h,0AFh,0B8h, 79h,0BFh,0C2h +31E4:ACBA  FB F8 52 8F C3 FF                    db      0FBh,0F8h, 52h, 8Fh,0C3h,0FFh +31E4:ACC0  C0 77 A8 C0 00 00                    db      0C0h, 77h,0A8h,0C0h, 00h, 00h +31E4:ACC6  12 5B 40 00 00 15                    db       12h, 5Bh, 40h, 00h, 00h, 15h +31E4:ACCC  E7 C0 00 00 29 FA                    db      0E7h,0C0h, 00h, 00h, 29h,0FAh +31E4:ACD2  00 00 00 4B FF 80                    db       00h, 00h, 00h, 4Bh,0FFh, 80h +31E4:ACD8  00 00 B4 FF F8 00                    db       00h, 00h,0B4h,0FFh,0F8h, 00h +31E4:ACDE  01 6B DE C6 00 02                    db       01h, 6Bh,0DEh,0C6h, 00h, 02h +31E4:ACE4  C8 EB 39 87 FD BF                    db      0C8h,0EBh, 39h, 87h,0FDh,0BFh +31E4:ACEA  08 C5 69 9B 6E 40                    db       08h,0C5h, 69h, 9Bh, 6Eh, 40h +31E4:ACF0  80 00 00 00 40 68                    db       80h, 00h, 00h, 00h, 40h, 68h +31E4:ACF6  91 22 A0 46 AA E8                    db       91h, 22h,0A0h, 46h,0AAh,0E8h +31E4:ACFC  8A 4B AD 34 A5 93                    db       8Ah, 4Bh,0ADh, 34h,0A5h, 93h +31E4:AD02  6A 2F D7 AD 3A AA                    db       6Ah, 2Fh,0D7h,0ADh, 3Ah,0AAh +31E4:AD08  FF FF FF FF FF 00                    db      0FFh,0FFh,0FFh,0FFh,0FFh, 00h +31E4:AD0E  00 00 00 00 FC 00                    db       00h, 00h, 00h, 00h,0FCh, 00h +31E4:AD14  00 00 00 03 FF FF                    db       00h, 00h, 00h, 03h,0FFh,0FFh +31E4:AD1A  FF FF 98 00 06 52                    db      0FFh,0FFh, 98h, 00h, 06h, 52h +31E4:AD20  9B A8 AB A9 92 95                    db       9Bh,0A8h,0ABh,0A9h, 92h, 95h +31E4:AD26  A4                                   db      0A4h +31E4:AD27                       loc_2351:                                       ;  xref 31E4:AD38 +31E4:AD27  A6                                   cmpsb                           ; Cmp [si] to es:[di] +31E4:AD28  35 4D55                              xor     ax,4D55h +31E4:AD2B  AA                                   stosb                           ; Store al to es:[di] +31E4:AD2C  A4                                   movsb                           ; Mov [si] to es:[di] +31E4:AD2D  A9 6962                              test    ax,6962h +31E4:AD30  E6 A9                                out     0A9h,al                 ; port 0A9h ??I/O Non-standard +31E4:AD32  4E                                   dec     si +31E4:AD33  59                                   pop     cx +31E4:AD34  2B EB                                sub     bp,bx +31E4:AD36  55                                   push    bp +31E4:AD37  9F                                   lahf                            ; Load ah from flags +31E4:AD38  7F ED                                jg      loc_2351                ; Jump if > +31E4:AD3A  9A FFFF:FF7F         ;*              call    far ptr sub_283         ;*(FFFF:FF7F) +31E4:AD3A  9A                                   db      9Ah +31E4:AD3B  FF7F FFFF                            dw      0FF7Fh, 0FFFFh +31E4:AD3F  A6                                   cmpsb                           ; Cmp [si] to es:[di] +31E4:AD40  80 87 0080 DD                        add     byte ptr data_519+59h[bx],0DDh ; (31E4:0080='   This ') +31E4:AD45  07                                   pop     es +31E4:AD46  06                                   push    es +31E4:AD47  00 00                                add     [bx+si],al +31E4:AD49  EF                                   out     dx,ax                   ; port 0, DMA-1 bas&add ch 0 +31E4:AD4A  F8                                   clc                             ; Clear carry flag +31E4:AD4B  00 00                                add     [bx+si],al +31E4:AD4D  00 FC                                add     ah,bh +31E4:AD4F  00 60 02                             add     [bx+si+2],ah +31E4:AD52  00 00 00 00 00 3F                    db       00h, 00h, 00h, 00h, 00h, 3Fh +31E4:AD58  C0 00 00 03 FF 40                    db      0C0h, 00h, 00h, 03h,0FFh, 40h +31E4:AD5E  00 00 00                             db       00h, 00h, 00h +31E4:AD61  3F                                   db      3Fh +31E4:AD62  0007[FF]                             db      7 dup (0FFh) +31E4:AD69  0F FF FF FF FF 0F                    db       0Fh,0FFh,0FFh,0FFh,0FFh, 0Fh +31E4:AD6F  FF FF FF FF 0F FF                    db      0FFh,0FFh,0FFh,0FFh, 0Fh,0FFh +31E4:AD75  FF FF FF 0F FF FF                    db      0FFh,0FFh,0FFh, 0Fh,0FFh,0FFh +31E4:AD7B  FF FF 0F FF FF FF                    db      0FFh,0FFh, 0Fh,0FFh,0FFh,0FFh +31E4:AD81  FF 0F F0 00 00 00                    db      0FFh, 0Fh,0F0h, 00h, 00h, 00h +31E4:AD87  00 08 00 00 00 00                    db       00h, 08h, 00h, 00h, 00h, 00h +31E4:AD8D  08 00 FF FF FF F0                    db       08h, 00h,0FFh,0FFh,0FFh,0F0h +31E4:AD93  00 FF FF FF F0 00                    db       00h,0FFh,0FFh,0FFh,0F0h, 00h +31E4:AD99  FF FF FF F0 00 FF                    db      0FFh,0FFh,0FFh,0F0h, 00h,0FFh +31E4:AD9F  FF FF F0 00 FF FF                    db      0FFh,0FFh,0F0h, 00h,0FFh,0FFh +31E4:ADA5  FF F0 00 FF FF FF                    db      0FFh,0F0h, 00h,0FFh,0FFh,0FFh +31E4:ADAB  F0 00 FF FF FF F0                    db      0F0h, 00h,0FFh,0FFh,0FFh,0F0h +31E4:ADB1  00 FF FF FF F0 00                    db       00h,0FFh,0FFh,0FFh,0F0h, 00h +31E4:ADB7  00 00 1F F0 00 00                    db       00h, 00h, 1Fh,0F0h, 00h, 00h +31E4:ADBD  00 1F F0 00 30 06                    db       00h, 1Fh,0F0h, 00h, 30h, 06h +31E4:ADC3  00 08 00 00 00 00                    db       00h, 08h, 00h, 00h, 00h, 00h +31E4:ADC9  07 FF 20 02 00 00                    db       07h,0FFh, 20h, 02h, 00h, 00h +31E4:ADCF  00 FF FC 00 00 3F                    db       00h,0FFh,0FCh, 00h, 00h, 3Fh +31E4:ADD5  FF FE 08 00 1F                       db      0FFh,0FEh, 08h, 00h, 1Fh +31E4:ADDA  004E[00]                             db      78 dup (0) +31E4:AE28  0F FF 00 00 00 0F                    db       0Fh,0FFh, 00h, 00h, 00h, 0Fh +31E4:AE2E  FF 00 00 00 0F FF                    db      0FFh, 00h, 00h, 00h, 0Fh,0FFh +31E4:AE34  00 00 00 0F FF 00                    db       00h, 00h, 00h, 0Fh,0FFh, 00h +31E4:AE3A  00 00 0F FF 00 00                    db       00h, 00h, 0Fh,0FFh, 00h, 00h +31E4:AE40  00 0F FF 00 00 00                    db       00h, 0Fh,0FFh, 00h, 00h, 00h +31E4:AE46  0F C0 00 00 00 0F                    db       0Fh,0C0h, 00h, 00h, 00h, 0Fh +31E4:AE4C  C0 00 00 00 0F FF                    db      0C0h, 00h, 00h, 00h, 0Fh,0FFh +31E4:AE52  00                                   db       00h +31E4:AE53  0028[00]                             db      40 dup (0) +31E4:AE7B  20 04 00 00 01 11                    db       20h, 04h, 00h, 00h, 01h, 11h +31E4:AE81  00 81 00 8A 08 13                    db       00h, 81h, 00h, 8Ah, 08h, 13h +31E4:AE87  64 A3 28 47 19 52                    db       64h,0A3h, 28h, 47h, 19h, 52h +31E4:AE8D  2B 96 A8 78 48 85                    db       2Bh, 96h,0A8h, 78h, 48h, 85h +31E4:AE93  06 B5 0A D6 A1 00                    db       06h,0B5h, 0Ah,0D6h,0A1h, 00h +31E4:AE99  7F FF E5 16 FF 80                    db       7Fh,0FFh,0E5h, 16h,0FFh, 80h +31E4:AE9F  00 1F 00 00 00 07                    db       00h, 1Fh, 00h, 00h, 00h, 07h +31E4:AEA5  FC 90 FE 00 06 02                    db      0FCh, 90h,0FEh, 00h, 06h, 02h +31E4:AEAB  6A 02 00 07 01 62                    db       6Ah, 02h, 00h, 07h, 01h, 62h +31E4:AEB1  07 80 07 0F CC 09                    db       07h, 80h, 07h, 0Fh,0CCh, 09h +31E4:AEB7  00 3F F0 24 12 00                    db       00h, 3Fh,0F0h, 24h, 12h, 00h +31E4:AEBD  00 00 10 3E 00 00                    db       00h, 00h, 10h, 3Eh, 00h, 00h +31E4:AEC3  00 08 1F FF FF FF                    db       00h, 08h, 1Fh,0FFh,0FFh,0FFh +31E4:AEC9  F8                                   db      0F8h +31E4:AECA  0038[00]                             db      56 dup (0) +31E4:AF02  01 54 00 03 65 A6                    db       01h, 54h, 00h, 03h, 65h,0A6h +31E4:AF08  00 90 BC 34 AA 2A                    db       00h, 90h,0BCh, 34h,0AAh, 2Ah +31E4:AF0E  5A 9B AA 94 91 52                    db       5Ah, 9Bh,0AAh, 94h, 91h, 52h +31E4:AF14  85 94 A9 9C A2 66                    db       85h, 94h,0A9h, 9Ch,0A2h, 66h +31E4:AF1A  F5 67 21 48 A6 E6                    db      0F5h, 67h, 21h, 48h,0A6h,0E6h +31E4:AF20  D4 A9 72 EF DB A6                    db      0D4h,0A9h, 72h,0EFh,0DBh,0A6h +31E4:AF26  59 17 37 57 DA F7                    db       59h, 17h, 37h, 57h,0DAh,0F7h +31E4:AF2C  FB 7F FF FF FF FF                    db      0FBh, 7Fh,0FFh,0FFh,0FFh,0FFh +31E4:AF32  FF 00                                db      0FFh, 00h +31E4:AF34  0009[00]                             db      9 dup (0) +31E4:AF3D  FF FF FF FF FF                       db      0FFh,0FFh,0FFh,0FFh,0FFh + +31E4:AF42  0168[00]       talk_string_buffer    db      360 dup (0) +31E4:B0AA  0000                game_time_ctr    dw      0 +31E4:B0AC  0000              game_time_ctr_2    dw      0 + +31E4:B0AE  00A0[00]      hotspot_action_list    db      160 dup (0) + +; Animation table - this contains the list of active hotspots + +31E4:B14E  0011[00]         animation_table     db      17 dup (0) +31E4:B15F  0000             slot0_tick_proc     dw      0                       ; Tick handler +31E4:B161  0011[00]                             db      17 dup (0) +31E4:B172  0000                 data_1116       dw      0                       ; Offset 24h in slot +                                                dw      0 +31E4:B176  00              slot0_col_offset     db      0 +31E4:B177  070C[00]                             db      1804 dup (0)            ; Remaining slots + + +31E4:B883  00           animation_block_list    db      0   +31E4:B884  0027[00]                             db      39 dup (0) + +31E4:B8AB  0000                seq_timer_ctr    dw      0                       ;  xref 273F:485A, 273F:495D +31E4:B8AD  0000              seq_timer_ctr_2    dw      0                       ;  xref 273F:485E, 273F:4962 + +31E4:B8AF  0118[00]     sequence_delay_table    db      280 dup (0) + +31E4:B9C7  00                      data_1121    db      0                       ;  xref 273F:A066, 273F:A0BD +31E4:B9C8  0031[00]                             db      49 dup (0) + +31E4:B9F9  0000              talk_speech_ptr    dw      0 +31E4:B9FB  0000                    data_b9fb    dw      0 +31E4:B9FD  0000                    data_1122    dw      0 +31E4:B9FF  0000          talk_buffer_segment    dw      0 +31E4:BA01  0000           talk_buffer_offset    dw      0 +31E4:BA03  0000         talk_buffer_offset_2    dw      0 +31E4:BA05  00                                   db      0 +31E4:BA06  00                      data_ba06    db      0 +31E4:BA07  0000           talk_string_offset    dw      0 +31E4:BA09  000C[00]                             db      12 dup (0) + +; All variables below are placed together to be accessible from the sequence +; executor GET_FIELD and SET_FIELD opcodes + +31E4:BA15  0000               room_number_2     dw      0 +31E4:BA17  0000             current_hotspot     dw      0 +31E4:BA19  0000              use_hotspot_id     dw      0 +31E4:BA1B  0000           active_hotspot_id     dw      0 +31E4:BA1D  0000             sequence_result     dw      0 +31E4:BA1F  0000                 general_val     dw      0 +31E4:BA21  0000                 data_1127       dw      0 +31E4:BA23  0000             new_room_number     dw      0    +31E4:BA25  0000             old_room_number     dw      0 +31E4:BA27  0000                script_val_1     dw      0 +31E4:BA29  0000                  torch_hide     dw      0                       ; #10 +31E4:BA2B  0000                 data_1130       dw      0 +31E4:BA2D  0000                                 dw      0 +31E4:BA2F  0000                                 dw      0 +31E4:BA31  0000                                 dw      0 +31E4:BA33  0000               prisoner_dead     dw      0 +31E4:BA35  0000                                 dw      0 +31E4:BA37  0000                                 dw      0 +31E4:BA39  0000               bottle_filled     dw      0 +31E4:BA3B  0000           talk_record_index     dw      0                       ;  xref 273F:2035, 273F:5C96 +31E4:BA3D  0000                    sack_cut     dw      0                       ; #20 +31E4:BA3F  0000                                 dw      0 +31E4:BA41  0000                                 dw      0 +31E4:BA43  0000                                 dw      0 +31E4:BA45  0000                                 dw      0 +31E4:BA47  0000                                 dw      0 +31E4:BA49  0000                                 dw      0 +31E4:BA4B  0000                                 dw      0 +31E4:BA4D  0000                                 dw      0 +31E4:BA4F  0000               script_val_29     dw      0 +31E4:BA51  0000                                 dw      0                       ; #30 +31E4:BA53  0000                                 dw      0 +31E4:BA55  0000                                 dw      0 +31E4:BA57  0000                                 dw      0 +31E4:BA59  0000                                 dw      0 +31E4:BA5B  0000                                 dw      0 +31E4:BA5D  0000                                 dw      0 +31E4:BA5F  0000               script_val_37     dw      0 +31E4:BA61  0000                                 dw      0 +31E4:BA63  0000                                 dw      0 +31E4:BA65  0000                                 dw      0                       ; #40 +31E4:BA67  0000                                 dw      0 +31E4:BA69  0000                                 dw      0 +31E4:BA6B  0000                                 dw      0 +31E4:BA6D  0000                                 dw      0 +31E4:BA6F  0000                                 dw      0 +31E4:BA71  0000                                 dw      0 +31E4:BA73  0000                                 dw      0 +31E4:BA75  0000                                 dw      0                       ; #50 +31E4:BA77  0000                                 dw      0 +31E4:BA79  0000                                 dw      0 +31E4:BA7B  0000                                 dw      0 +31E4:BA7D  0000                                 dw      0 +31E4:BA7F  0000                                 dw      0 +31E4:BA81  0000                                 dw      0 +31E4:BA83  0000                                 dw      0 +31E4:BA85  0000                                 dw      0                       ; #60 +31E4:BA87  0000                                 dw      0 +31E4:BA89  0000                                 dw      0 +31E4:BA8B  0000                                 dw      0 +31E4:BA8D  0000                                 dw      0 +31E4:BA8F  0000                                 dw      0 +31E4:BA91  0000                                 dw      0 +31E4:BA93  0000                                 dw      0 +31E4:BA95  0000                                 dw      0                       ; #70 +31E4:BA97  0000                                 dw      0 +31E4:BA99  0000                                 dw      0 +31E4:BA9B  0000               script_val_73     db      0 +31E4:BA9D  0000                                 dw      0 +31E4:BA9F  0000                                 dw      0 +31E4:BAA1  0000                                 dw      0 +31E4:BAA3  0000                                 dw      0 +31E4:BAA5  0000                                 dw      0 +31E4:BAA7  0000                                 dw      0 +31E4:BAA9  0000               script_val_80     dw      0                       ; #80 +31E4:BAAB  0000                                 dw      0 +31E4:BAAD  0000               script_val_82     dw      0 +31E4:BAAF  0000                                 dw      0 +31E4:BAB1  0000                                 dw      0 +31E4:BAB3  0000                                 dw      0 +31E4:BAB5  0000                                 dw      0 +31E4:BAB7  0000               script_val_87     dw      0 +31E4:BAB9  0000               script_val_88     dw      0 +31E4:BABB  0000                                 dw      0 +31E4:BABD  0000                                 dw      0 + +31E4:BABF  0CC6          sequence_method_list   dw      offset animation_load_entry +                                                dw      offset sequence_set_hotspot_script +                                                dw      offset sub_247 +                                                dw      offset seq_method_3 +                                                dw      offset sequence_delay_list_init +                                                dw      offset seq_deactivate_hotspot_set +                                                dw      offset seq_deactivate_hotspot +                                                dw      offset sub_124 +31E4:BACF                                       dw      offset add_sequence_delay +                                                dw      offset sub_252 +                                                dw      offset seq_character_in_room ; #10 +                                                dw      offset seq_set_actions_offset +                                                dw      offset seq_set_hotspot_name +                                                dw      offset play_sound +                                                dw      offset seq_endgame_sequence +                                                dw      offset sub_238 +31E4:BADF                                       dw      offset display_dialog +                                                dw      offset seq_method_17 +                                                dw      offset seq_room_remote_view_setup +                                                dw      offset sub_139 +                                                dw      offset seq_check_cell_door_2 ; #20 +                                                dw      offset sub_258 +                                                dw      offset seq_get_door_blocked +                                                dw      offset seq_is_skorl_in_cell +31E4:BAEF                                       dw      8022h +                                                dw      offset sub_92 +                                                dw      7eeeh +                                                dw      offset seq_set_blocking_hotspot_script +                                                dw      offset seq_decrease_inventory_items +                                                dw      offset talk_setup +                                                dw      offset seq_set_frame_number ; #30 +                                                dw      offset seq_converse +31E4:BAFF                                       dw      offset seq_disable_hotspot +                                                dw      offset seq_cut_sack +                                                dw      offset seq_increase_groats +                                                dw      offset seq_enable_hotspot +                                                dw      offset display_message_dialog_4 +                                                dw      offset seq_method_37 +                                                dw      offset seq_transform_player +                                                dw      offset seq_room_14_door_close +31E4:BB0F                                       dw      offset seq_check_dropped_desc ; #40 +                                                dw      8782h +                                                dw      offset seq_door_close +                                                dw      offset seq_method_43 +                                                dw      offset seq_door_open +                                                dw      offset seq_method_45 +                                                dw      2035h +                                                dw      offset display_message_dialog +31E4:BB1F                                       dw      offset seq_set_new_dispatch_action +                                                dw      offset seq_set_support_offset +                                                dw      offset seq_add_item_to_inventory ; #50 +                                                dw      offset seq_decrase_groats +                                                dw      8630h +                                                dw      offset seq_method_53 +                                                dw      offset set_village_skorl_tick_proc +                                                dw      offset seq_method_55 +31E4:BB2F                                       dw      offset seq_method_56 +                                                dw      offset get_num_groats +                                                dw      offset seq_method_58 +                                                dw      86d9h +                                                dw      8697h                   ; #60 +                                                dw      offset seq_kill_player +                                                dw      offset animation_load +                                                dw      offset seq_add_actions +31E4:BB3F                                       dw      offset seq_random_to_general +31E4:BB41                                       dw      offset seq_check_cell_door + +31E4:BB43  1A +31E4:BB44  A1                                   db      0A1h +31E4:BB45  0000          current_action_num     dw       0 +31E4:BB47  0012[00]                             db      18 dup (0) +31E4:BB59  20 04 A0 4F B4 4F                    db       20h, 04h,0A0h, 4Fh,0B4h, 4Fh +31E4:BB5F  0D 00 00                             db       0Dh, 00h, 00h +31E4:BB62  0011[00]                             db      17 dup (0) +31E4:BB73  29 04 C2 4F D0 4F                    db       29h, 04h,0C2h, 4Fh,0D0h, 4Fh +31E4:BB79  0E                                   db       0Eh +31E4:BB7A  0013[00]                             db      19 dup (0) +31E4:BB8D  36 04 DD 4F DD 4F                    db       36h, 04h,0DDh, 4Fh,0DDh, 4Fh +31E4:BB93  10 00                                db       10h, 00h + +; Following is a support data offset set indexed both by the script index list, +; as well as directly by the program code + +31E4:BB95  06 00 00 00   support_data_rec_bb95  db       06h, 00h, 00h, 00h +31E4:BB99  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BB9F  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBA5  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBAB  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBB1  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBB7  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBBD  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBC3  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBC9  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBCF  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBD5  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBDB  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBE1  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBE7  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBED  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBF3  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBF9  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +31E4:BBFF  00                                   db       00h +31E4:BC00  00                   data_1143       db      0 +31E4:BC01  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC07  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC0D  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC13  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC19  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC1F  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC25  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC2B  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC31  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC37  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC3D  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC43  06 00 00 00 00 00                    db       06h, 00h, 00h, 00h, 00h, 00h +31E4:BC49  00 00                 num_groats     dw       0 + +                        hotspot_walkto_list +31E4:BC4B  0418 0143 8123                       dw       418h, 143h, 8123h +31E4:BC51  2721 0144 80FB +31E4:BC57  2722 0095 8105 +31E4:BC5D  271F 00AC 80EB +31E4:BC63  2720 00AE 813A +31E4:BC69  271E 00ED 810C +31E4:BC6F  75#C 016D 010E +31E4:BC75  0421 0112 0112 +31E4:BC7B  0422 00F0 010A +31E4:BC81  753B 012A 811B +31E4:BC87  041F 00E6 0131 +31E4:BC8D  2716 009C 813A +31E4:BC93  2711 00E5 0125 +31E4:BC99  2712 00E4 00FA +...more... + +31E4:BC9E  5E 75                             add     [bp+75h],bl +31E4:BCA1  59                                   pop     cx +31E4:BCA2  01 31                                add     [bx+di],si +31E4:BCA4                       loc_2354:                                       ;  xref 31E4:BCE8 +31E4:BCA4  01 0F                                add     [bx],cx +31E4:BCA6  04 42                                add     al,42h                  ; 'B' +31E4:BCA8  01 25                                add     [di],sp +31E4:BCAA  01 10                                add     [bx+si],dx +31E4:BCAC  04 EF                                add     al,0EFh +31E4:BCAE  00 1C                                add     [si],bl +31E4:BCB0  81 35 EF75                           xor     word ptr [di],0EF75h +31E4:BCB4  00 1A                                add     [bp+si],bl +31E4:BCB6  01 14                                add     [si],dx +31E4:BCB8  27                                   daa                             ; Decimal adjust +31E4:BCB9  82 01 04                             add     byte ptr [bx+di],4 +31E4:BCBC  01 1B                                add     [bp+di],bx +31E4:BCBE  04 1A                                add     al,1Ah +31E4:BCC0  01 1A                                add     [bp+si],bx +31E4:BCC2  01 4A 75                             add     [bp+si+75h],cx +31E4:BCC5  35 FC01                              xor     ax,0FC01h +31E4:BCC8  00 4C 75                             add     [si+75h],cl +31E4:BCCB  D4 00                ;*              aam     0                       ; undocumented inst +31E4:BCCB  D4 00                                db      0D4h, 00h +31E4:BCCD  03 81 03E6                           add     ax,data_541[bx+di]      ; (31E4:03E6=0) +31E4:BCD1  FC                                   cld                             ; Clear direction +31E4:BCD2  00 29                                add     [bx+di],ch +31E4:BCD4  01 E7                                add     di,sp +31E4:BCD6  03 CE                                add     cx,si +31E4:BCD8  00 22                                add     [bp+si],ah +31E4:BCDA  01 30                                add     [bx+si],si +31E4:BCDC  75 E1                ;*              jnz     loc_2356                ;*Jump if not zero +31E4:BCDC  75 E1                                db       75h,0E1h +31E4:BCDE  00 12                                add     [bp+si],dl +31E4:BCE0  01 31                                add     [bx+di],si +31E4:BCE2  75 BA                                jnz     loc_2353                ; Jump if not zero +31E4:BCE4  00 1B                                add     [bp+di],bl +31E4:BCE6  01 32                                add     [bp+si],si +31E4:BCE8  75 BA                                jnz     loc_2354                ; Jump if not zero +31E4:BCEA  00 1B                                add     [bp+di],bl +31E4:BCEC  01 0D                                add     [di],cx +31E4:BCEE  04 67                                add     al,67h                  ; 'g' +31E4:BCF0  01 14                                add     [si],dx +31E4:BCF2  01 33                                add     [bp+di],si +31E4:BCF4  75 12                                jnz     loc_2357                ; Jump if not zero +31E4:BCF6  01 11                                add     [bx+di],dx +31E4:BCF8  01 34                                add     [si],si +31E4:BCFA  75 1E                                jnz     loc_2358                ; Jump if not zero +31E4:BCFC  01 14                                add     [si],dx +31E4:BCFE  01 36 7775                           add     data_936,si             ; (31E4:7775=0Bh) +31E4:BD02  01 1D                                add     [di],bx +31E4:BD04  01 37                                add     [bx],si +31E4:BD06  75 A9                ;*              jnz     loc_2355                ;*Jump if not zero +31E4:BD06  75 A9                                db       75h,0A9h +31E4:BD08                       loc_2357:                                       ;  xref 31E4:BCF4 +31E4:BD08  00 1C                                add     [si],bl +31E4:BD0A  01 38                                add     [bx+si],di +31E4:BD0C  75 43                ;*              jnz     loc_2359                ;*Jump if not zero +31E4:BD0C  75 43                                db       75h, 43h +31E4:BD0E  01 2B                                add     [bp+di],bp +31E4:BD10  01 39                                add     [bx+di],di +31E4:BD12  75 31                                jnz     $+33h                   ; Jump if not zero +31E4:BD14  01 1B                                add     [bp+di],bx +31E4:BD16  01 3A                                add     [bp+si],di +31E4:BD18  75 7B                ;*              jnz     loc_2361                ;*Jump if not zero +31E4:BD18  75 7B                                db       75h, 7Bh +31E4:BD1A                       loc_2358:                                       ;  xref 31E4:BCFA +31E4:BD1A  01 25                                add     [di],sp +31E4:BD1C  01 18                                add     [bx+si],bx +31E4:BD1E  27                                   daa                             ; Decimal adjust +31E4:BD1F  C4 00                                les     ax,dword ptr [bx+si]    ; Load seg:offset ptr +31E4:BD21  23 81 2717                           and     ax,data_756[bx+di]      ; (31E4:2717=0) +31E4:BD25  72 01                                jc      $+3                     ; Jump if carry Set +31E4:BD27  0E                                   push    cs +31E4:BD28  01 1A                                add     [bp+si],bx +31E4:BD2A  27                                   daa                             ; Decimal adjust +31E4:BD2B  64 01 2E 81 24 04                    db       64h, 01h, 2Eh, 81h, 24h, 04h +31E4:BD31  0D 01 1C 01 3D 75                    db       0Dh, 01h, 1Ch, 01h, 3Dh, 75h +31E4:BD37  2E 01 1C 01 5F 75                    db       2Eh, 01h, 1Ch, 01h, 5Fh, 75h +31E4:BD3D  1E 01 1C 01 3E 75                    db       1Eh, 01h, 1Ch, 01h, 3Eh, 75h +31E4:BD43  55 01 15 01 3F 75                    db       55h, 01h, 15h, 01h, 3Fh, 75h +31E4:BD49  8F 01 15 01 40 75                    db       8Fh, 01h, 15h, 01h, 40h, 75h +31E4:BD4F  CC 00                                db      0CCh, 00h +31E4:BD51                       loc_2359:                                       ;  xref 31E4:BD0C +31E4:BD51  19 01                                sbb     [bx+di],ax +31E4:BD53  41                                   inc     cx +31E4:BD54                       loc_2360:                                       ;  xref 31E4:BD7E +31E4:BD54  75 63                                jnz     $+65h                   ; Jump if not zero +31E4:BD56  01 1E 4201                           add     word ptr ds:[4201h],bx  ; (31E4:4201=0) +31E4:BD5A  75 83                                jnz     $-7Bh                   ; Jump if not zero +31E4:BD5C  01 FC                                add     sp,di +31E4:BD5E  00 43 75                             add     [bp+di+75h],al +31E4:BD61  12 01                                adc     al,[bx+di] +31E4:BD63  38 01                                cmp     [bx+di],al +31E4:BD65  44                                   inc     sp +31E4:BD66  75 4D                                jnz     $+4Fh                   ; Jump if not zero +31E4:BD68  01 1E 4501                           add     word ptr ds:[4501h],bx  ; (31E4:4501=0) +31E4:BD6C  75 FB                                jnz     $-3                     ; Jump if not zero +31E4:BD6E  00 14                                add     [si],dl + +                                ;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß +                                ;                              SUBROUTINE +                                ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ + +31E4:BD70                       sub_276         proc    near +31E4:BD70  01 46 75                             add     [bp+75h],ax +31E4:BD73  31 01                                xor     [bx+di],ax +31E4:BD75  13 01                                adc     ax,[bx+di] +31E4:BD77  17                                   pop     ss +31E4:BD78  04 18                                add     al,18h +31E4:BD7A  01 06 4701                           add     ds:data_45e,ax          ; (0000:4701=800Fh) +31E4:BD7E  75 D4                                jnz     loc_2360                ; Jump if not zero +31E4:BD80  00 F3                                add     bl,dh +31E4:BD82  00 48 75                             add     [bx+si+75h],cl +31E4:BD85  AC                                   lodsb                           ; String [si] to al +31E4:BD86  00 13                                add     [bp+di],dl +31E4:BD88  01 2A                                add     [bp+si],bp +31E4:BD8A  04 72                                add     al,72h                  ; 'r' +31E4:BD8C  01 06 2B01                           add     ds:data_38e,ax          ; (0000:2B01=663Eh) +31E4:BD90  04 D4                                add     al,0D4h +31E4:BD92  00 1C                                add     [si],bl +31E4:BD94  81 49 75 00C8                        or      word ptr [bx+di+75h],0C8h +31E4:BD99  2B 01                                sub     ax,[bx+di] +31E4:BD9B  FF FF 33 01 0A 01                    db      0FFh,0FFh, 33h, 01h, 0Ah, 01h +31E4:BDA1  2C 04 40 01 22 01                    db       2Ch, 04h, 40h, 01h, 22h, 01h +31E4:BDA7  2D 04 C6 00 29 01                    db       2Dh, 04h,0C6h, 00h, 29h, 01h +31E4:BDAD  4B 75 1C 01 20 01                    db       4Bh, 75h, 1Ch, 01h, 20h, 01h +31E4:BDB3  25 27 01 01 15 81                    db       25h, 27h, 01h, 01h, 15h, 81h +31E4:BDB9  26 27 C5 00 1C 81                    db       26h, 27h,0C5h, 00h, 1Ch, 81h +31E4:BDBF  29 27 42 01 36 81                    db       29h, 27h, 42h, 01h, 36h, 81h +31E4:BDC5  2A 27 BF 00 0C 81                    db       2Ah, 27h,0BFh, 00h, 0Ch, 81h +31E4:BDCB  2B 27 67 01 0C 81                    db       2Bh, 27h, 67h, 01h, 0Ch, 81h +31E4:BDD1  2C 27 BF 00 0C 81                    db       2Ch, 27h,0BFh, 00h, 0Ch, 81h +31E4:BDD7  2D 27 67 01 0C 81                    db       2Dh, 27h, 67h, 01h, 0Ch, 81h +31E4:BDDD  2E 27 BF 00 0C 81                    db       2Eh, 27h,0BFh, 00h, 0Ch, 81h +31E4:BDE3  1C 27 2C 01 34 01                    db       1Ch, 27h, 2Ch, 01h, 34h, 01h +31E4:BDE9  2F 27 67 01 0C 81                    db       2Fh, 27h, 67h, 01h, 0Ch, 81h +31E4:BDEF  2E 04 49 01 F1 00                    db       2Eh, 04h, 49h, 01h,0F1h, 00h +31E4:BDF5  2F 04 E3 00 F1 00                    db       2Fh, 04h,0E3h, 00h,0F1h, 00h +31E4:BDFB  30 04 3A 01 F1 00                    db       30h, 04h, 3Ah, 01h,0F1h, 00h +31E4:BE01  31 04 E3 00 F1 00                    db       31h, 04h,0E3h, 00h,0F1h, 00h +31E4:BE07  32 04 49 01 F1 00                    db       32h, 04h, 49h, 01h,0F1h, 00h +31E4:BE0D  33 04 E3 00 F1 00                    db       33h, 04h,0E3h, 00h,0F1h, 00h +31E4:BE13  34 04 0E 01 16 01                    db       34h, 04h, 0Eh, 01h, 16h, 01h +31E4:BE19  37 04 7A 01 30 01                    db       37h, 04h, 7Ah, 01h, 30h, 01h +31E4:BE1F  4D 75 99 00 30 01                    db       4Dh, 75h, 99h, 00h, 30h, 01h +31E4:BE25  4E 75 99 00 30 01                    db       4Eh, 75h, 99h, 00h, 30h, 01h +31E4:BE2B  4F 75 A9 00 28 01                    db       4Fh, 75h,0A9h, 00h, 28h, 01h +31E4:BE31  50 75 A9 00 28 01                    db       50h, 75h,0A9h, 00h, 28h, 01h +31E4:BE37  51 75 C4 00 11 01                    db       51h, 75h,0C4h, 00h, 11h, 01h +31E4:BE3D  52 75 C4 00 11 01                    db       52h, 75h,0C4h, 00h, 11h, 01h +31E4:BE43  53 75 C4 00 11 01                    db       53h, 75h,0C4h, 00h, 11h, 01h +31E4:BE49  54 75 55 01 0C 01                    db       54h, 75h, 55h, 01h, 0Ch, 01h +31E4:BE4F  55 75 55 01 0C 01                    db       55h, 75h, 55h, 01h, 0Ch, 01h +31E4:BE55  56 75 55 01 0C 01                    db       56h, 75h, 55h, 01h, 0Ch, 01h +31E4:BE5B  38 04 AE 00 28 01                    db       38h, 04h,0AEh, 00h, 28h, 01h +31E4:BE61  3A 04 22 01 02 01                    db       3Ah, 04h, 22h, 01h, 02h, 01h +31E4:BE67  3D 04 0D 01 20 81                    db       3Dh, 04h, 0Dh, 01h, 20h, 81h +31E4:BE6D  12 04 AD 00 0D 81                    db       12h, 04h,0ADh, 00h, 0Dh, 81h +31E4:BE73  0C 04 AD 00 0D 81                    db       0Ch, 04h,0ADh, 00h, 0Dh, 81h +31E4:BE79  32 27 A9 00 19 01                    db       32h, 27h,0A9h, 00h, 19h, 01h +31E4:BE7F  58 75 8C 00 1F 01                    db       58h, 75h, 8Ch, 00h, 1Fh, 01h +31E4:BE85  59 75 DF 00 14 01                    db       59h, 75h,0DFh, 00h, 14h, 01h +31E4:BE8B  5A 75 BA 00 26 01                    db       5Ah, 75h,0BAh, 00h, 26h, 01h +31E4:BE91  5B 75 64 01 2A 01                    db       5Bh, 75h, 64h, 01h, 2Ah, 01h +31E4:BE97  5C 75 6B 01 FC 00                    db       5Ch, 75h, 6Bh, 01h,0FCh, 00h +31E4:BE9D  5D 75 6B 01 FC 00                    db       5Dh, 75h, 6Bh, 01h,0FCh, 00h +31E4:BEA3  42 04 59 01 32 01                    db       42h, 04h, 59h, 01h, 32h, 01h +31E4:BEA9  60 75 17 01 0A 01                    db       60h, 75h, 17h, 01h, 0Ah, 01h +31E4:BEAF  61 75 C5 00 1A 01                    db       61h, 75h,0C5h, 00h, 1Ah, 01h +31E4:BEB5  62 75 3F 01 19 01                    db       62h, 75h, 3Fh, 01h, 19h, 01h +31E4:BEBB  63 75 29 01 15 01                    db       63h, 75h, 29h, 01h, 15h, 01h +31E4:BEC1  64 75 29 01 15 01                    db       64h, 75h, 29h, 01h, 15h, 01h +31E4:BEC7  65 75 C5 00 1A 01                    db       65h, 75h,0C5h, 00h, 1Ah, 01h +31E4:BECD  66 75 E1 00 0B 01                    db       66h, 75h,0E1h, 00h, 0Bh, 01h +31E4:BED3  35 27 E1 00 0B 01                    db       35h, 27h,0E1h, 00h, 0Bh, 01h +31E4:BED9  36 27 0A 01 0C 01                    db       36h, 27h, 0Ah, 01h, 0Ch, 01h +31E4:BEDF  67 75 7A 01 0B 01                    db       67h, 75h, 7Ah, 01h, 0Bh, 01h +31E4:BEE5  68 75 51 01 0B 01                    db       68h, 75h, 51h, 01h, 0Bh, 01h +31E4:BEEB  69 75 3B 01 0B 01                    db       69h, 75h, 3Bh, 01h, 0Bh, 01h +31E4:BEF1  6A 75 4B 01 14 01                    db       6Ah, 75h, 4Bh, 01h, 14h, 01h +31E4:BEF7  6B 75 60 01 14 01                    db       6Bh, 75h, 60h, 01h, 14h, 01h +31E4:BEFD  6C 75 69 01 14 01                    db       6Ch, 75h, 69h, 01h, 14h, 01h +31E4:BF03  6D 75 4C 01 0B 01                    db       6Dh, 75h, 4Ch, 01h, 0Bh, 01h +31E4:BF09  13 27 BA 00 1A 01                    db       13h, 27h,0BAh, 00h, 1Ah, 01h +31E4:BF0F  E5 03 29 01 12 81                    db      0E5h, 03h, 29h, 01h, 12h, 81h +31E4:BF15  6E 75 6A 01 C3 00                    db       6Eh, 75h, 6Ah, 01h,0C3h, 00h +31E4:BF1B  63 04 64 01 24 01                    db       63h, 04h, 64h, 01h, 24h, 01h +31E4:BF21  64 04 CF 00 23 01                    db       64h, 04h,0CFh, 00h, 23h, 01h +31E4:BF27  57 75 51 01 12 01                    db       57h, 75h, 51h, 01h, 12h, 01h +31E4:BF2D  6F 75 43 01 02 01                    db       6Fh, 75h, 43h, 01h, 02h, 01h +31E4:BF33  15 27 4C 01 1F 01                    db       15h, 27h, 4Ch, 01h, 1Fh, 01h +31E4:BF39  00                                   db       00h +31E4:BF3A  00 00 00 00 00 00                    db       0, 0, 0, 0, 0, 0 + +31E4:BF40  0000          room_info_table        dw       0 +31E4:BF42  0007[00]                             db       7 dup (0) + +31E4:BF49  0D C1 01 00 84 00                    db       0Dh,0C1h, 01h, 00h, 84h, 00h +31E4:BF4F  00 00 01 3C C1 02                    db       00h, 00h, 01h, 3Ch,0C1h, 02h +31E4:BF55  00 71 00 00 00 01                    db       00h, 71h, 00h, 00h, 00h, 01h +31E4:BF5B  85 C1 03 00 DE 00                    db       85h,0C1h, 03h, 00h,0DEh, 00h +31E4:BF61  00 00 01 C4 C1 04                    db       00h, 00h, 01h,0C4h,0C1h, 04h +31E4:BF67  00 DF 00 00 00 01                    db       00h,0DFh, 00h, 00h, 00h, 01h +31E4:BF6D  FD C9 09 0C CA 0B                    db      0FDh,0C9h, 09h, 0Ch,0CAh, 0Bh +31E4:BF73  00 00 00 3C CA 09                    db       00h, 00h, 00h, 3Ch,0CAh, 09h +31E4:BF79  0C CA 0B 00 00 00                    db       0Ch,0CAh, 0Bh, 00h, 00h, 00h +31E4:BF7F  FD C1 07 00 7D 08                    db      0FDh,0C1h, 07h, 00h, 7Dh, 08h +31E4:BF85  00 00 02 2C C2 08                    db       00h, 00h, 02h, 2Ch,0C2h, 08h +31E4:BF8B  00 7C 08 00 00 02                    db       00h, 7Ch, 08h, 00h, 00h, 02h +31E4:BF91  6B C2 09 00 62 08                    db       6Bh,0C2h, 09h, 00h, 62h, 08h +31E4:BF97  00 00 02 AA C2 0A                    db       00h, 00h, 02h,0AAh,0C2h, 0Ah +31E4:BF9D  00 63 08 00 00 02                    db       00h, 63h, 08h, 00h, 00h, 02h +31E4:BFA3  09 C3 0B 00 7C 08                    db       09h,0C3h, 0Bh, 00h, 7Ch, 08h +31E4:BFA9  00 00 02 48 C3 0C                    db       00h, 00h, 02h, 48h,0C3h, 0Ch +31E4:BFAF  00 64 08 00 00 02                    db       00h, 64h, 08h, 00h, 00h, 02h +31E4:BFB5  97 C3 0D 00 72 08                    db       97h,0C3h, 0Dh, 00h, 72h, 08h +31E4:BFBB  00 00 02 E6 C3 0E                    db       00h, 00h, 02h,0E6h,0C3h, 0Eh +31E4:BFC1  00 67 08 00 00 02                    db       00h, 67h, 08h, 00h, 00h, 02h +31E4:BFC7  59 C4 0F 00 73 08                    db       59h,0C4h, 0Fh, 00h, 73h, 08h +31E4:BFCD  00 00 02 00                          db       00h, 00h, 02h, 00h +31E4:BFD1  0008[00]                             db      8 dup (0) +31E4:BFD9  A8 C4 11 00 6D 08                    db      0A8h,0C4h, 11h, 00h, 6Dh, 08h +31E4:BFDF  00 00 02 17 C5 12                    db       00h, 00h, 02h, 17h,0C5h, 12h +31E4:BFE5  00 74 0B 00 00 02                    db       00h, 74h, 0Bh, 00h, 00h, 02h +31E4:BFEB  76 C5 13 00 6F 08                    db       76h,0C5h, 13h, 00h, 6Fh, 08h +31E4:BFF1  00 00 02 F5 C5 14                    db       00h, 00h, 02h,0F5h,0C5h, 14h +31E4:BFF7  00 84 08 00 00 02                    db       00h, 84h, 08h, 00h, 00h, 02h +31E4:BFFD  54 C6 15 00 7C 08                    db       54h,0C6h, 15h, 00h, 7Ch, 08h +31E4:C003  00 00 02 93 C6 16                    db       00h, 00h, 02h, 93h,0C6h, 16h +31E4:C009  00 7C 08 00 00 02                    db       00h, 7Ch, 08h, 00h, 00h, 02h +31E4:C00F  D2 C6 17 00 7C 08                    db      0D2h,0C6h, 17h, 00h, 7Ch, 08h +31E4:C015  00 00 02 11 C7 18                    db       00h, 00h, 02h, 11h,0C7h, 18h +31E4:C01B  00 7C 08 00 00 02                    db       00h, 7Ch, 08h, 00h, 00h, 02h +31E4:C021  50 C7 19 00 7C 08                    db       50h,0C7h, 19h, 00h, 7Ch, 08h +31E4:C027  00 00 02 00 00 1A                    db       00h, 00h, 02h, 00h, 00h, 1Ah +31E4:C02D  00 7C 08 00 00 02                    db       00h, 7Ch, 08h, 00h, 00h, 02h +31E4:C033  8F C7 1B 00 7C 08                    db       8Fh,0C7h, 1Bh, 00h, 7Ch, 08h +31E4:C039  00 00 02 CE C7 1C                    db       00h, 00h, 02h,0CEh,0C7h, 1Ch +31E4:C03F  00 86 08 00 00 02                    db       00h, 86h, 08h, 00h, 00h, 02h +31E4:C045  FD C7 1D 00 88 08                    db      0FDh,0C7h, 1Dh, 00h, 88h, 08h +31E4:C04B  00 00 02 2C C8 1E                    db       00h, 00h, 02h, 2Ch,0C8h, 1Eh +31E4:C051  00 4D 08 00 00 02                    db       00h, 4Dh, 08h, 00h, 00h, 02h +31E4:C057  5B C8 1F 00 70 08                    db       5Bh,0C8h, 1Fh, 00h, 70h, 08h +31E4:C05D  00 00 02 B9 C8 20                    db       00h, 00h, 02h,0B9h,0C8h, 20h +31E4:C063  00 8C 08 00 00 02                    db       00h, 8Ch, 08h, 00h, 00h, 02h +31E4:C069  00 00 21 00 00 00                    db       00h, 00h, 21h, 00h, 00h, 00h +31E4:C06F  00 00 02 E8 C8 22                    db       00h, 00h, 02h,0E8h,0C8h, 22h +31E4:C075  00 CE 00 00 00 02                    db       00h,0CEh, 00h, 00h, 00h, 02h +31E4:C07B  17 C9 23 00 9B 0C                    db       17h,0C9h, 23h, 00h, 9Bh, 0Ch +31E4:C081  00 00 02 8A C8 24                    db       00h, 00h, 02h, 8Ah,0C8h, 24h +31E4:C087  00 EA 08 00 00 02                    db       00h,0EAh, 08h, 00h, 00h, 02h +31E4:C08D  00 00 25 00 00 00                    db       00h, 00h, 25h, 00h, 00h, 00h +31E4:C093  00 00 02 46 C9 26                    db       00h, 00h, 02h, 46h,0C9h, 26h +31E4:C099  00 CA 0B 00 00 04                    db       00h,0CAh, 0Bh, 00h, 00h, 04h +31E4:C09F  7F C9 27 00 CA 0B                    db       7Fh,0C9h, 27h, 00h,0CAh, 0Bh +31E4:C0A5  00 00 04 BE C9 28                    db       00h, 00h, 04h,0BEh,0C9h, 28h +31E4:C0AB  00 CA 0B 00 00 04                    db       00h,0CAh, 0Bh, 00h, 00h, 04h +31E4:C0B1  7B CA 29 00 F1 0A                    db       7Bh,0CAh, 29h, 00h,0F1h, 0Ah +31E4:C0B7  00 00 04 AA CA 2A                    db       00h, 00h, 04h,0AAh,0CAh, 2Ah +31E4:C0BD  00 A0 0F 00 00 08                    db       00h,0A0h, 0Fh, 00h, 00h, 08h +31E4:C0C3  D9 CA 2B 00 A1 0F                    db      0D9h,0CAh, 2Bh, 00h,0A1h, 0Fh +31E4:C0C9  00 00 08 18 CB 2C                    db       00h, 00h, 08h, 18h,0CBh, 2Ch +31E4:C0CF  00 F3 0F 00 00 08                    db       00h,0F3h, 0Fh, 00h, 00h, 08h +31E4:C0D5  67 CB 2D 00 A2 0F                    db       67h,0CBh, 2Dh, 00h,0A2h, 0Fh +31E4:C0DB  00 00 08 D0 CB 2E                    db       00h, 00h, 08h,0D0h,0CBh, 2Eh +31E4:C0E1  00 A2 0F 00 00 08                    db       00h,0A2h, 0Fh, 00h, 00h, 08h +31E4:C0E7  29 CC 2F 00 18 10                    db       29h,0CCh, 2Fh, 00h, 18h, 10h +31E4:C0ED  00 00 08 68 CC 30                    db       00h, 00h, 08h, 68h,0CCh, 30h +31E4:C0F3  00 17 10 00 00 08                    db       00h, 17h, 10h, 00h, 00h, 08h +31E4:C0F9  97 CC 2F 00 18 10                    db       97h,0CCh, 2Fh, 00h, 18h, 10h +31E4:C0FF  00 00 08 C0 CC                       db       00h, 00h, 08h,0C0h,0CCh +31E4:C104  0007[00]                             db      7 dup (0) +31E4:C10B  FF FF                                db      0FFh,0FFh + +; Start of room information data for initial cell room +31E4:C10D  0000                                 dw      0000h +31E4:C10F  8020                                 dw      8020h +31E4:C111  6D57                                 dw      6D57h +31E4:C113  1430                                 dw      1430h   ; Offset for auto-load pixel blocks +31E4:C115  02                                   db      2       ; Default number of screns +31E4:C116  4100                                 dw      4100h   ; Layer Id - Background +31E4:C118  4101                                 dw      4101h   ; Layer Id - Front part of door +31E4:C11A  4102                                 dw      4102h   ; Layer Id - cell window overlay + +31E4:C11C  00                                   db       00h +31E4:C11D  00                                   db       00h +31E4:C11E  3B                                   db      3Bh +31E4:C11F  0007[00]                             db      7 dup (0) + +31E4:C126  00CD                                 dw      0CDh         ; X start +31E4:C128  0000                                 dw      0            ; X end +31E4:C12A  00A8                                 dw      0A8h +31E4:C12C  D0 00 1F 01 26 01                    db      0D0h, 00h, 1Fh, 01h, 26h, 01h +31E4:C132  FF FF 02 40 E4 00                    db      0FFh,0FFh, 02h, 40h,0E4h, 00h +31E4:C138  00 01 FF FF 00 00                    db       00h, 01h,0FFh,0FFh, 00h, 00h +31E4:C13E  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:C144  02 01 42 02 42 00                    db       02h, 01h, 42h, 02h, 42h, 00h +31E4:C14A  00 00 00 E8 2B 00                    db       00h, 00h, 00h,0E8h, 2Bh, 00h +31E4:C150  0009[00]                             db      9 dup (0) +31E4:C159  E0 00 FC 00 EE 00                    db      0E0h, 00h,0FCh, 00h,0EEh, 00h +31E4:C15F  F8 00 FF FF 01 10                    db      0F8h, 00h,0FFh,0FFh, 01h, 10h +31E4:C165  C6 00 28 01 3C 01                    db      0C6h, 00h, 28h, 01h, 3Ch, 01h +31E4:C16B  6E 01 E8 00 FC 00                    db       6Eh, 01h,0E8h, 00h,0FCh, 00h +31E4:C171  FF FF 03 10 90 00                    db      0FFh,0FFh, 03h, 10h, 90h, 00h +31E4:C177  20 01 AA 01 B8 01                    db       20h, 01h,0AAh, 01h,0B8h, 01h +31E4:C17D  E6 00 18 01 55 05                    db      0E6h, 00h, 18h, 01h, 55h, 05h +31E4:C183  FF FF 00 00 20 00                    db      0FFh,0FFh, 00h, 00h, 20h, 00h +31E4:C189  57 6D 3C 14 02 01                    db       57h, 6Dh, 3Ch, 14h, 02h, 01h +31E4:C18F  43 02 43 00 00 00                    db       43h, 02h, 43h, 00h, 00h, 00h +31E4:C195  00 EC 2B 00 00 00                    db       00h,0ECh, 2Bh, 00h, 00h, 00h +31E4:C19B  00 00 02 9F 00 81                    db       00h, 00h, 02h, 9Fh, 00h, 81h +31E4:C1A1  01 8A 00 98 00 1A                    db       01h, 8Ah, 00h, 98h, 00h, 1Ah +31E4:C1A7  01 24 01 FF FF 02                    db       01h, 24h, 01h,0FFh,0FFh, 02h +31E4:C1AD  40 44 01 00 01 A4                    db       40h, 44h, 01h, 00h, 01h,0A4h +31E4:C1B3  01 C0 01 1A 01 24                    db       01h,0C0h, 01h, 1Ah, 01h, 24h +31E4:C1B9  01 FF FF 04 80 4F                    db       01h,0FFh,0FFh, 04h, 80h, 4Fh +31E4:C1BF  01 3A 01 FF FF 00                    db       01h, 3Ah, 01h,0FFh,0FFh, 00h +31E4:C1C5  00 20 00 57 6D 3C                    db       00h, 20h, 00h, 57h, 6Dh, 3Ch +31E4:C1CB  14 03 00 44 01 44                    db       14h, 03h, 00h, 44h, 01h, 44h +31E4:C1D1  02 44 03 44 F3 2B                    db       02h, 44h, 03h, 44h,0F3h, 2Bh +31E4:C1D7  00 00 00 00 00 03                    db       00h, 00h, 00h, 00h, 00h, 03h +31E4:C1DD  00 00 00 00 4C 01                    db       00h, 00h, 00h, 00h, 4Ch, 01h +31E4:C1E3  6D 01 39 01 40 01                    db       6Dh, 01h, 39h, 01h, 40h, 01h +31E4:C1E9  FF FF 03 20 80 01                    db      0FFh,0FFh, 03h, 20h, 80h, 01h +31E4:C1EF  20 01 50 01 69 01                    db       20h, 01h, 50h, 01h, 69h, 01h +31E4:C1F5  21 01 30 01 C6 05                    db       21h, 01h, 30h, 01h,0C6h, 05h +31E4:C1FB  FF FF 00 00 20 00                    db      0FFh,0FFh, 00h, 00h, 20h, 00h +31E4:C201  57 6D 3C 14 02 00                    db       57h, 6Dh, 3Ch, 14h, 02h, 00h +31E4:C207  87 01 87 00 00 00                    db       87h, 01h, 87h, 00h, 00h, 00h +31E4:C20D  00 83 00 FF FF 0F                    db       00h, 83h, 00h,0FFh,0FFh, 0Fh +31E4:C213  00 01 04 DE 00 00                    db       00h, 01h, 04h,0DEh, 00h, 00h +31E4:C219  00 A5 00 D5 00 EF                    db       00h,0A5h, 00h,0D5h, 00h,0EFh +31E4:C21F  00 2C 01 FF FF 08                    db       00h, 2Ch, 01h,0FFh,0FFh, 08h +31E4:C225  80 10 01 40 01 FF                    db       80h, 10h, 01h, 40h, 01h,0FFh +31E4:C22B  FF 00 00 00 20 57                    db      0FFh, 00h, 00h, 00h, 20h, 57h +31E4:C231  6D 3C 14 01 00 88                    db       6Dh, 3Ch, 14h, 01h, 00h, 88h +31E4:C237  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:C23D  FA 2B 00 00 00 00                    db      0FAh, 2Bh, 00h, 00h, 00h, 00h +31E4:C243  01 05 00 00 00 00                    db       01h, 05h, 00h, 00h, 00h, 00h +31E4:C249  C7 00 6F 01 3F 01                    db      0C7h, 00h, 6Fh, 01h, 3Fh, 01h +31E4:C24F  47 01 FF FF 07 10                    db       47h, 01h,0FFh,0FFh, 07h, 10h +31E4:C255  D1 00 11 01 ED 00                    db      0D1h, 00h, 11h, 01h,0EDh, 00h +31E4:C25B  12 01 FA 00 09 01                    db       12h, 01h,0FAh, 00h, 09h, 01h +31E4:C261  FF FF 09 00 50 01                    db      0FFh,0FFh, 09h, 00h, 50h, 01h +31E4:C267  40 01 FF FF 00 00                    db       40h, 01h,0FFh,0FFh, 00h, 00h +31E4:C26D  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:C273  02 00 89 01 89 00                    db       02h, 00h, 89h, 01h, 89h, 00h +31E4:C279  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:C27F  00 00 00 01 06 00                    db       00h, 00h, 00h, 01h, 06h, 00h +31E4:C285  00 00 00 DD 00 8D                    db       00h, 00h, 00h,0DDh, 00h, 8Dh +31E4:C28B  01 40 01 90 01 FF                    db       01h, 40h, 01h, 90h, 01h,0FFh +31E4:C291  FF 08 40 F2 00 16                    db      0FFh, 08h, 40h,0F2h, 00h, 16h +31E4:C297  01 81 00 B2 00 E6                    db       01h, 81h, 00h,0B2h, 00h,0E6h +31E4:C29D  00 29 01 FF FF 0A                    db       00h, 29h, 01h,0FFh,0FFh, 0Ah +31E4:C2A3  20 A4 01 10 01 FF                    db       20h,0A4h, 01h, 10h, 01h,0FFh +31E4:C2A9  FF 00 00 20 00 57                    db      0FFh, 00h, 00h, 20h, 00h, 57h +31E4:C2AF  6D 3C 14 02 00 8A                    db       6Dh, 3Ch, 14h, 02h, 00h, 8Ah +31E4:C2B5  01 8A 00 00 00 00                    db       01h, 8Ah, 00h, 00h, 00h, 00h +31E4:C2BB  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:C2C1  01 07 00 00 B5 01                    db       01h, 07h, 00h, 00h,0B5h, 01h +31E4:C2C7  C0 01 00 02 01 01                    db      0C0h, 01h, 00h, 02h, 01h, 01h +31E4:C2CD  16 01 FF FF 09 00                    db       16h, 01h,0FFh,0FFh, 09h, 00h +31E4:C2D3  A9 00 21 01 AC 00                    db      0A9h, 00h, 21h, 01h,0ACh, 00h +31E4:C2D9  DB 00 44 01 4A 01                    db      0DBh, 00h, 44h, 01h, 4Ah, 01h +31E4:C2DF  FF FF 0B 00 F2 00                    db      0FFh,0FFh, 0Bh, 00h,0F2h, 00h +31E4:C2E5  16 01 50 00 7A 00                    db       16h, 01h, 50h, 00h, 7Ah, 00h +31E4:C2EB  F6 00 46 01 FF FF                    db      0F6h, 00h, 46h, 01h,0FFh,0FFh +31E4:C2F1  0D 00 A4 01 2B 01                    db       0Dh, 00h,0A4h, 01h, 2Bh, 01h +31E4:C2F7  01 01 20 01 FC 00                    db       01h, 01h, 20h, 01h,0FCh, 00h +31E4:C2FD  0A 01 FF FF 22 00                    db       0Ah, 01h,0FFh,0FFh, 22h, 00h +31E4:C303  C5 00 2F 01 FF FF                    db      0C5h, 00h, 2Fh, 01h,0FFh,0FFh +31E4:C309  00 00 00 20 57 6D                    db       00h, 00h, 00h, 20h, 57h, 6Dh +31E4:C30F  3C 14 01 00 88 00                    db       3Ch, 14h, 01h, 00h, 88h, 00h +31E4:C315  00 00 00 00 00 FF                    db       00h, 00h, 00h, 00h, 00h,0FFh +31E4:C31B  FF 00 00 00 00 01                    db      0FFh, 00h, 00h, 00h, 00h, 01h +31E4:C321  05 00 00 00 00 C7                    db       05h, 00h, 00h, 00h, 00h,0C7h +31E4:C327  00 6F 01 3F 01 47                    db       00h, 6Fh, 01h, 3Fh, 01h, 47h +31E4:C32D  01 FF FF 1B 20 77                    db       01h,0FFh,0FFh, 1Bh, 20h, 77h +31E4:C333  01 0B 01 ED 00 12                    db       01h, 0Bh, 01h,0EDh, 00h, 12h +31E4:C339  01 FA 00 09 01 FF                    db       01h,0FAh, 00h, 09h, 01h,0FFh +31E4:C33F  FF 0A 00 BE 00 46                    db      0FFh, 0Ah, 00h,0BEh, 00h, 46h +31E4:C345  01 FF FF 00 00 20                    db       01h,0FFh,0FFh, 00h, 00h, 20h +31E4:C34B  00 57 6D 3C 14 03                    db       00h, 57h, 6Dh, 3Ch, 14h, 03h +31E4:C351  00 8C 01 8C 02 8C                    db       00h, 8Ch, 01h, 8Ch, 02h, 8Ch +31E4:C357  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:C35D  00 00 01 0F 00 00                    db       00h, 00h, 01h, 0Fh, 00h, 00h +31E4:C363  00 00 03 01 22 01                    db       00h, 00h, 03h, 01h, 22h, 01h +31E4:C369  BD 00 D8 00 FF FF                    db      0BDh, 00h,0D8h, 00h,0FFh,0FFh +31E4:C36F  14 00 65 01 44 01                    db       14h, 00h, 65h, 01h, 44h, 01h +31E4:C375  6C 01 89 01 26 01                    db       6Ch, 01h, 89h, 01h, 26h, 01h +31E4:C37B  3B 01 FF FF 1B 00                    db       3Bh, 01h,0FFh,0FFh, 1Bh, 00h +31E4:C381  AD 00 0B 01 A2 00                    db      0ADh, 00h, 0Bh, 01h,0A2h, 00h +31E4:C387  C3 00 C6 00 E0 00                    db      0C3h, 00h,0C6h, 00h,0E0h, 00h +31E4:C38D  FF FF 20 00 AC 00                    db      0FFh,0FFh, 20h, 00h,0ACh, 00h +31E4:C393  40 01 FF FF 00 00                    db       40h, 01h,0FFh,0FFh, 00h, 00h +31E4:C399  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:C39F  02 00 8D 01 8D 02                    db       02h, 00h, 8Dh, 01h, 8Dh, 02h +31E4:C3A5  8D 00 00 01 2C 00                    db       8Dh, 00h, 00h, 01h, 2Ch, 00h +31E4:C3AB  00 00 00 01 08 00                    db       00h, 00h, 00h, 01h, 08h, 00h +31E4:C3B1  00 00 00 50 00 7A                    db       00h, 00h, 00h, 50h, 00h, 7Ah +31E4:C3B7  00 1A 01 46 01 FF                    db       00h, 1Ah, 01h, 46h, 01h,0FFh +31E4:C3BD  FF 0E 00 A8 01 1F                    db      0FFh, 0Eh, 00h,0A8h, 01h, 1Fh +31E4:C3C3  01 C6 01 E0 01 10                    db       01h,0C6h, 01h,0E0h, 01h, 10h +31E4:C3C9  01 46 01 FF FF 0A                    db       01h, 46h, 01h,0FFh,0FFh, 0Ah +31E4:C3CF  00 7A 00 30 01 9F                    db       00h, 7Ah, 00h, 30h, 01h, 9Fh +31E4:C3D5  00 0E 01 44 01 4A                    db       00h, 0Eh, 01h, 44h, 01h, 4Ah +31E4:C3DB  01 FF FF 14 00 D4                    db       01h,0FFh,0FFh, 14h, 00h,0D4h +31E4:C3E1  00 D8 00 FF FF 00                    db       00h,0D8h, 00h,0FFh,0FFh, 00h +31E4:C3E7  00 20 00 57 6D 3C                    db       00h, 20h, 00h, 57h, 6Dh, 3Ch +31E4:C3ED  14 02 00 8E 01 8E                    db       14h, 02h, 00h, 8Eh, 01h, 8Eh +31E4:C3F3  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +31E4:C3F9  00 00 00 00 01 09                    db       00h, 00h, 00h, 00h, 01h, 09h +31E4:C3FF  00 00 00 00 50 00                    db       00h, 00h, 00h, 00h, 50h, 00h +31E4:C405  7A 00 11 01 26 01                    db       7Ah, 00h, 11h, 01h, 26h, 01h +31E4:C40B  FF FF 0F 00 A4 01                    db      0FFh,0FFh, 0Fh, 00h,0A4h, 01h +31E4:C411  2B 01 80 00 0E 01                    db       2Bh, 01h, 80h, 00h, 0Eh, 01h +31E4:C417  3D 01 4A 01 FF FF                    db       3Dh, 01h, 4Ah, 01h,0FFh,0FFh +31E4:C41D  13 00 04 01 02 01                    db       13h, 00h, 04h, 01h, 02h, 01h +31E4:C423  C6 01 E0 01 FC 00                    db      0C6h, 01h,0E0h, 01h,0FCh, 00h +31E4:C429  28 01 FF FF 0D 00                    db       28h, 01h,0FFh,0FFh, 0Dh, 00h +31E4:C42F  7A 00 35 01 F7 00                    db       7Ah, 00h, 35h, 01h,0F7h, 00h +31E4:C435  12 01 E8 00 F8 00                    db       12h, 01h,0E8h, 00h,0F8h, 00h +31E4:C43B  FF FF 1F 00 67 01                    db      0FFh,0FFh, 1Fh, 00h, 67h, 01h +31E4:C441  3B 01 E8 00 54 01                    db       3Bh, 01h,0E8h, 00h, 54h, 01h +31E4:C447  09 01 17 01 39 0D                    db       09h, 01h, 17h, 01h, 39h, 0Dh +31E4:C44D  35 01 4A 01 FC 00                    db       35h, 01h, 4Ah, 01h,0FCh, 00h +31E4:C453  0B 01 39 0D FF FF                    db       0Bh, 01h, 39h, 0Dh,0FFh,0FFh +31E4:C459  00 00 20 00 57 6D                    db       00h, 00h, 20h, 00h, 57h, 6Dh +31E4:C45F  3C 14 02 00 8F 01                    db       3Ch, 14h, 02h, 00h, 8Fh, 01h +31E4:C465  8F 00 00 00 00 0D                    db       8Fh, 00h, 00h, 00h, 00h, 0Dh +31E4:C46B  0F 00 00 00 00 01                    db       0Fh, 00h, 00h, 00h, 00h, 01h +31E4:C471  0A 00 00 00 00 7F                    db       0Ah, 00h, 00h, 00h, 00h, 7Fh +31E4:C477  00 73 01 3D 01 48                    db       00h, 73h, 01h, 3Dh, 01h, 48h +31E4:C47D  01 FF FF 11 00 E3                    db       01h,0FFh,0FFh, 11h, 00h,0E3h +31E4:C483  00 0E 01 B2 01 C2                    db       00h, 0Eh, 01h,0B2h, 01h,0C2h +31E4:C489  01 11 01 3C 01 FF                    db       01h, 11h, 01h, 3Ch, 01h,0FFh +31E4:C48F  FF 0E 00 7A 00 1D                    db      0FFh, 0Eh, 00h, 7Ah, 00h, 1Dh +31E4:C495  01 EC 00 23 01 F0                    db       01h,0ECh, 00h, 23h, 01h,0F0h +31E4:C49B  00 FA 00 FF FF 26                    db       00h,0FAh, 00h,0FFh,0FFh, 26h +31E4:C4A1  00 42 01 46 01 FF                    db       00h, 42h, 01h, 46h, 01h,0FFh +31E4:C4A7  FF 00 00 20 00 57                    db      0FFh, 00h, 00h, 20h, 00h, 57h +31E4:C4AD  6D 3C 14 03 00 91                    db       6Dh, 3Ch, 14h, 03h, 00h, 91h +31E4:C4B3  01 91 02 91 00 00                    db       01h, 91h, 02h, 91h, 00h, 00h +31E4:C4B9  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:C4BF  01 0B 00 00 00 00                    db       01h, 0Bh, 00h, 00h, 00h, 00h +31E4:C4C5  50 00 7A 00 0B 01                    db       50h, 00h, 7Ah, 00h, 0Bh, 01h +31E4:C4CB  47 01 FF FF 15 00                    db       47h, 01h,0FFh,0FFh, 15h, 00h +31E4:C4D1  77 01 0B 01 D2 00                    db       77h, 01h, 0Bh, 01h,0D2h, 00h +31E4:C4D7  0C 01 CE 00 F5 00                    db       0Ch, 01h,0CEh, 00h,0F5h, 00h +31E4:C4DD  FF FF 0F 00 FC 00                    db      0FFh,0FFh, 0Fh, 00h,0FCh, 00h +31E4:C4E3  46 01 C6 01 E0 01                    db       46h, 01h,0C6h, 01h,0E0h, 01h +31E4:C4E9  1C 01 47 01 FF FF                    db       1Ch, 01h, 47h, 01h,0FFh,0FFh +31E4:C4EF  13 00 78 00 21 01                    db       13h, 00h, 78h, 00h, 21h, 01h +31E4:C4F5  9F 00 11 01 40 01                    db       9Fh, 00h, 11h, 01h, 40h, 01h +31E4:C4FB  48 01 FF FF 12 00                    db       48h, 01h,0FFh,0FFh, 12h, 00h +31E4:C501  4D 01 F0 00 4A 01                    db       4Dh, 01h,0F0h, 00h, 4Ah, 01h +31E4:C507  63 01 0A 01 14 01                    db       63h, 01h, 0Ah, 01h, 14h, 01h +31E4:C50D  FF FF 1D 00 99 00                    db      0FFh,0FFh, 1Dh, 00h, 99h, 00h +31E4:C513  40 01 FF FF 00 00                    db       40h, 01h,0FFh,0FFh, 00h, 00h +31E4:C519  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:C51F  02 00 92 01 92 00                    db       02h, 00h, 92h, 01h, 92h, 00h +31E4:C525  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:C52B  00 00 00 01 0C 00                    db       00h, 00h, 00h, 01h, 0Ch, 00h +31E4:C531  00 00 00 50 00 7A                    db       00h, 00h, 00h, 50h, 00h, 7Ah +31E4:C537  00 13 01 3C 01 FF                    db       00h, 13h, 01h, 3Ch, 01h,0FFh +31E4:C53D  FF 17 00 77 01 0B                    db      0FFh, 17h, 00h, 77h, 01h, 0Bh +31E4:C543  01 3B 01 7E 01 DD                    db       01h, 3Bh, 01h, 7Eh, 01h,0DDh +31E4:C549  00 EB 00 FF FF 11                    db       00h,0EBh, 00h,0FFh,0FFh, 11h +31E4:C54F  00 B1 00 42 01 C6                    db       00h,0B1h, 00h, 42h, 01h,0C6h +31E4:C555  01 E0 01 0F 01 47                    db       01h,0E0h, 01h, 0Fh, 01h, 47h +31E4:C55B  01 FF FF 18 00 AD                    db       01h,0FFh,0FFh, 18h, 00h,0ADh +31E4:C561  00 0B 01 FF 00 19                    db       00h, 0Bh, 01h,0FFh, 00h, 19h +31E4:C567  01 DB 00 EF 00 FF                    db       01h,0DBh, 00h,0EFh, 00h,0FFh +31E4:C56D  FF 1C 40 01 01 10                    db      0FFh, 1Ch, 40h, 01h, 01h, 10h +31E4:C573  01 FF FF 00 00 20                    db       01h,0FFh,0FFh, 00h, 00h, 20h +31E4:C579  00 57 6D 3C 14 03                    db       00h, 57h, 6Dh, 3Ch, 14h, 03h +31E4:C57F  00 93 01 93 02 93                    db       00h, 93h, 01h, 93h, 02h, 93h +31E4:C585  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:C58B  00 00 01 0E 00 00                    db       00h, 00h, 01h, 0Eh, 00h, 00h +31E4:C591  00 00 50 00 7A 00                    db       00h, 00h, 50h, 00h, 7Ah, 00h +31E4:C597  0C 01 2E 01 FF FF                    db       0Ch, 01h, 2Eh, 01h,0FFh,0FFh +31E4:C59D  11 00 AD 01 3B 01                    db       11h, 00h,0ADh, 01h, 3Bh, 01h +31E4:C5A3  F7 00 36 01 E6 00                    db      0F7h, 00h, 36h, 01h,0E6h, 00h +31E4:C5A9  F8 00 FF FF 0E 00                    db      0F8h, 00h,0FFh,0FFh, 0Eh, 00h +31E4:C5AF  B1 00 46 01 C6 01                    db      0B1h, 00h, 46h, 01h,0C6h, 01h +31E4:C5B5  E0 01 11 01 43 01                    db      0E0h, 01h, 11h, 01h, 43h, 01h +31E4:C5BB  FF FF 14 00 7C 00                    db      0FFh,0FFh, 14h, 00h, 7Ch, 00h +31E4:C5C1  26 01 BC 00 FE 00                    db       26h, 01h,0BCh, 00h,0FEh, 00h +31E4:C5C7  40 01 48 01 FF FF                    db       40h, 01h, 48h, 01h,0FFh,0FFh +31E4:C5CD  19 00 F2 00 16 01                    db       19h, 00h,0F2h, 00h, 16h, 01h +31E4:C5D3  6F 01 90 01 F7 00                    db       6Fh, 01h, 90h, 01h,0F7h, 00h +31E4:C5D9  04 01 FF FF 1E 00                    db       04h, 01h,0FFh,0FFh, 1Eh, 00h +31E4:C5DF  C1 00 29 01 95 00                    db      0C1h, 00h, 29h, 01h, 95h, 00h +31E4:C5E5  BA 00 F5 00 FF 00                    db      0BAh, 00h,0F5h, 00h,0FFh, 00h +31E4:C5EB  FF FF 23 00 4C 01                    db      0FFh,0FFh, 23h, 00h, 4Ch, 01h +31E4:C5F1  43 01 FF FF 00 00                    db       43h, 01h,0FFh,0FFh, 00h, 00h +31E4:C5F7  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:C5FD  03 00 94 01 94 02                    db       03h, 00h, 94h, 01h, 94h, 02h +31E4:C603  94 00 00 FF FF 00                    db       94h, 00h, 00h,0FFh,0FFh, 00h +31E4:C609  00 00 00 01 14 00                    db       00h, 00h, 00h, 01h, 14h, 00h +31E4:C60F  00 00 00 50 00 7A                    db       00h, 00h, 00h, 50h, 00h, 7Ah +31E4:C615  00 0E 01 33 01 FF                    db       00h, 0Eh, 01h, 33h, 01h,0FFh +31E4:C61B  FF 13 00 AE 01 2C                    db      0FFh, 13h, 00h,0AEh, 01h, 2Ch +31E4:C621  01 D1 00 ED 00 CA                    db       01h,0D1h, 00h,0EDh, 00h,0CAh +31E4:C627  00 D4 00 FF FF 0D                    db       00h,0D4h, 00h,0FFh,0FFh, 0Dh +31E4:C62D  00 BC 00 40 01 FE                    db       00h,0BCh, 00h, 40h, 01h,0FEh +31E4:C633  00 82 01 43 01 47                    db       00h, 82h, 01h, 43h, 01h, 47h +31E4:C639  01 FF FF 0C 00 01                    db       01h,0FFh,0FFh, 0Ch, 00h, 01h +31E4:C63F  01 E0 00 40 01 5D                    db       01h,0E0h, 00h, 40h, 01h, 5Dh +31E4:C645  01 E8 00 F3 00 FF                    db       01h,0E8h, 00h,0F3h, 00h,0FFh +31E4:C64B  FF 24 10 85 00 0E                    db      0FFh, 24h, 10h, 85h, 00h, 0Eh +31E4:C651  01 FF FF 00 00 00                    db       01h,0FFh,0FFh, 00h, 00h, 00h +31E4:C657  20 57 6D 3C 14 02                    db       20h, 57h, 6Dh, 3Ch, 14h, 02h +31E4:C65D  10 88 11 88 00 00                    db       10h, 88h, 11h, 88h, 00h, 00h +31E4:C663  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:C669  00 00 01 0D BA 00                    db       00h, 00h, 01h, 0Dh,0BAh, 00h +31E4:C66F  86 01 90 00 B2 00                    db       86h, 01h, 90h, 00h,0B2h, 00h +31E4:C675  FB 00 0D 01 FF FF                    db      0FBh, 00h, 0Dh, 01h,0FFh,0FFh +31E4:C67B  16 40 F2 00 16 01                    db       16h, 40h,0F2h, 00h, 16h, 01h +31E4:C681  8C 01 AA 01 FB 00                    db       8Ch, 01h,0AAh, 01h,0FBh, 00h +31E4:C687  0D 01 FF FF 11 00                    db       0Dh, 01h,0FFh,0FFh, 11h, 00h +31E4:C68D  78 00 3E 01 FF FF                    db       78h, 00h, 3Eh, 01h,0FFh,0FFh +31E4:C693  00 00 00 20 57 6D                    db       00h, 00h, 00h, 20h, 57h, 6Dh +31E4:C699  3C 14 01 00 88 00                    db       3Ch, 14h, 01h, 00h, 88h, 00h +31E4:C69F  00 00 00 00 00 FF                    db       00h, 00h, 00h, 00h, 00h,0FFh +31E4:C6A5  FF 00 00 00 00 01                    db      0FFh, 00h, 00h, 00h, 00h, 01h +31E4:C6AB  05 00 00 00 00 C7                    db       05h, 00h, 00h, 00h, 00h,0C7h +31E4:C6B1  00 6F 01 40 01 48                    db       00h, 6Fh, 01h, 40h, 01h, 48h +31E4:C6B7  01 FF FF 17 10 AD                    db       01h,0FFh,0FFh, 17h, 10h,0ADh +31E4:C6BD  00 0B 01 ED 00 12                    db       00h, 0Bh, 01h,0EDh, 00h, 12h +31E4:C6C3  01 FA 00 09 01 FF                    db       01h,0FAh, 00h, 09h, 01h,0FFh +31E4:C6C9  FF 15 10 AD 00 0B                    db      0FFh, 15h, 10h,0ADh, 00h, 0Bh +31E4:C6CF  01 FF FF 00 00 00                    db       01h,0FFh,0FFh, 00h, 00h, 00h +31E4:C6D5  20 57 6D 3C 14 02                    db       20h, 57h, 6Dh, 3Ch, 14h, 02h +31E4:C6DB  10 88 11 88 00 00                    db       10h, 88h, 11h, 88h, 00h, 00h +31E4:C6E1  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:C6E7  00 00 01 0D BA 00                    db       00h, 00h, 01h, 0Dh,0BAh, 00h +31E4:C6ED  86 01 90 00 B2 00                    db       86h, 01h, 90h, 00h,0B2h, 00h +31E4:C6F3  FB 00 0D 01 FF FF                    db      0FBh, 00h, 0Dh, 01h,0FFh,0FFh +31E4:C6F9  16 80 13 01 42 01                    db       16h, 80h, 13h, 01h, 42h, 01h +31E4:C6FF  8C 01 AA 01 FB 00                    db       8Ch, 01h,0AAh, 01h,0FBh, 00h +31E4:C705  0D 01 FF FF 12 00                    db       0Dh, 01h,0FFh,0FFh, 12h, 00h +31E4:C70B  73 00 2E 01 FF FF                    db       73h, 00h, 2Eh, 01h,0FFh,0FFh +31E4:C711  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:C717  3C 14 02 10 88 11                    db       3Ch, 14h, 02h, 10h, 88h, 11h +31E4:C71D  88 00 00 00 00 FF                    db       88h, 00h, 00h, 00h, 00h,0FFh +31E4:C723  FF 00 00 00 00 01                    db      0FFh, 00h, 00h, 00h, 00h, 01h +31E4:C729  0D BA 00 86 01 90                    db       0Dh,0BAh, 00h, 86h, 01h, 90h +31E4:C72F  00 B2 00 FB 00 0D                    db       00h,0B2h, 00h,0FBh, 00h, 0Dh +31E4:C735  01 FF FF 12 00 A8                    db       01h,0FFh,0FFh, 12h, 00h,0A8h +31E4:C73B  01 34 01 8C 01 AA                    db       01h, 34h, 01h, 8Ch, 01h,0AAh +31E4:C741  01 FB 00 0D 01 FF                    db       01h,0FBh, 00h, 0Dh, 01h,0FFh +31E4:C747  FF 19 80 13 01 42                    db      0FFh, 19h, 80h, 13h, 01h, 42h +31E4:C74D  01 FF FF 00 00 00                    db       01h,0FFh,0FFh, 00h, 00h, 00h +31E4:C753  20 57 6D 3C 14 01                    db       20h, 57h, 6Dh, 3Ch, 14h, 01h +31E4:C759  00 88 00 00 00 00                    db       00h, 88h, 00h, 00h, 00h, 00h +31E4:C75F  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:C765  00 00 01 05 00 00                    db       00h, 00h, 01h, 05h, 00h, 00h +31E4:C76B  00 00 C7 00 6F 01                    db       00h, 00h,0C7h, 00h, 6Fh, 01h +31E4:C771  40 01 48 01 FF FF                    db       40h, 01h, 48h, 01h,0FFh,0FFh +31E4:C777  18 20 77 01 0B 01                    db       18h, 20h, 77h, 01h, 0Bh, 01h +31E4:C77D  ED 00 12 01 FA 00                    db      0EDh, 00h, 12h, 01h,0FAh, 00h +31E4:C783  09 01 FF FF 13 00                    db       09h, 01h,0FFh,0FFh, 13h, 00h +31E4:C789  D0 00 42 01 FF FF                    db      0D0h, 00h, 42h, 01h,0FFh,0FFh +31E4:C78F  00 00 00 00 57 6D                    db       00h, 00h, 00h, 00h, 57h, 6Dh +31E4:C795  3C 14 02 10 88 11                    db       3Ch, 14h, 02h, 10h, 88h, 11h +31E4:C79B  88 00 00 00 00 FF                    db       88h, 00h, 00h, 00h, 00h,0FFh +31E4:C7A1  FF 00 00 00 00 01                    db      0FFh, 00h, 00h, 00h, 00h, 01h +31E4:C7A7  0D BA 00 86 01 90                    db       0Dh,0BAh, 00h, 86h, 01h, 90h +31E4:C7AD  00 B2 00 FB 00 0D                    db       00h,0B2h, 00h,0FBh, 00h, 0Dh +31E4:C7B3  01 FF FF 0C 00 5A                    db       01h,0FFh,0FFh, 0Ch, 00h, 5Ah +31E4:C7B9  01 34 01 8C 01 AA                    db       01h, 34h, 01h, 8Ch, 01h,0AAh +31E4:C7BF  01 FB 00 0D 01 FF                    db       01h,0FBh, 00h, 0Dh, 01h,0FFh +31E4:C7C5  FF 0B 80 13 01 42                    db      0FFh, 0Bh, 80h, 13h, 01h, 42h +31E4:C7CB  01 FF FF 00 00 20                    db       01h,0FFh,0FFh, 00h, 00h, 20h +31E4:C7D1  00 57 6D 3C 14 03                    db       00h, 57h, 6Dh, 3Ch, 14h, 03h +31E4:C7D7  00 9C 01 9C 02 9C                    db       00h, 9Ch, 01h, 9Ch, 02h, 9Ch +31E4:C7DD  00 00 0F 2C 00 00                    db       00h, 00h, 0Fh, 2Ch, 00h, 00h +31E4:C7E3  00 00 02 10 BA 00                    db       00h, 00h, 02h, 10h,0BAh, 00h +31E4:C7E9  86 01 F9 00 21 01                    db       86h, 01h,0F9h, 00h, 21h, 01h +31E4:C7EF  F8 00 0A 01 FF FF                    db      0F8h, 00h, 0Ah, 01h,0FFh,0FFh +31E4:C7F5  12 10 19 01 F0 00                    db       12h, 10h, 19h, 01h,0F0h, 00h +31E4:C7FB  FF FF 00 00 20 00                    db      0FFh,0FFh, 00h, 00h, 20h, 00h +31E4:C801  57 6D 3C 14 03 00                    db       57h, 6Dh, 3Ch, 14h, 03h, 00h +31E4:C807  9D 01 9D 02 9D 00                    db       9Dh, 01h, 9Dh, 02h, 9Dh, 00h +31E4:C80D  00 08 2C 00 00 00                    db       00h, 08h, 2Ch, 00h, 00h, 00h +31E4:C813  00 02 11 BA 00 86                    db       00h, 02h, 11h,0BAh, 00h, 86h +31E4:C819  01 99 00 B7 00 42                    db       01h, 99h, 00h,0B7h, 00h, 42h +31E4:C81F  01 54 01 FF FF 11                    db       01h, 54h, 01h,0FFh,0FFh, 11h +31E4:C825  00 4D 01 20 01 FF                    db       00h, 4Dh, 01h, 20h, 01h,0FFh +31E4:C82B  FF 00 00 20 00 57                    db      0FFh, 00h, 00h, 20h, 00h, 57h +31E4:C831  6D 3C 14 02 00 9E                    db       6Dh, 3Ch, 14h, 02h, 00h, 9Eh +31E4:C837  01 9E 00 00 00 00                    db       01h, 9Eh, 00h, 00h, 00h, 00h +31E4:C83D  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:C843  02 13 00 00 00 00                    db       02h, 13h, 00h, 00h, 00h, 00h +31E4:C849  B4 00 30 01 32 01                    db      0B4h, 00h, 30h, 01h, 32h, 01h +31E4:C84F  40 01 FF FF 13 00                    db       40h, 01h,0FFh,0FFh, 13h, 00h +31E4:C855  72 01 10 01 FF FF                    db       72h, 01h, 10h, 01h,0FFh,0FFh +31E4:C85B  00 00 20 00 57 6D                    db       00h, 00h, 20h, 00h, 57h, 6Dh +31E4:C861  3C 14 02 00 9F 01                    db       3Ch, 14h, 02h, 00h, 9Fh, 01h +31E4:C867  9F 00 00 00 00 FF                    db       9Fh, 00h, 00h, 00h, 00h,0FFh +31E4:C86D  FF 00 00 00 00 02                    db      0FFh, 00h, 00h, 00h, 00h, 02h +31E4:C873  12 00 00 00 00 38                    db       12h, 00h, 00h, 00h, 00h, 38h +31E4:C879  01 86 01 3C 01 40                    db       01h, 86h, 01h, 3Ch, 01h, 40h +31E4:C87F  01 FF FF 0E 00 F7                    db       01h,0FFh,0FFh, 0Eh, 00h,0F7h +31E4:C885  00 02 01 FF FF 00                    db       00h, 02h, 01h,0FFh,0FFh, 00h +31E4:C88B  00 20 00 57 6D 3C                    db       00h, 20h, 00h, 57h, 6Dh, 3Ch +31E4:C891  14 02 00 A4 01 A4                    db       14h, 02h, 00h,0A4h, 01h,0A4h +31E4:C897  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +31E4:C89D  00 00 00 00 02 12                    db       00h, 00h, 00h, 00h, 02h, 12h +31E4:C8A3  00 00 00 00 80 00                    db       00h, 00h, 00h, 00h, 80h, 00h +31E4:C8A9  8C 00 FB 00 09 01                    db       8Ch, 00h,0FBh, 00h, 09h, 01h +31E4:C8AF  FF FF 14 40 44 01                    db      0FFh,0FFh, 14h, 40h, 44h, 01h +31E4:C8B5  FB 00 FF FF 00 00                    db      0FBh, 00h,0FFh,0FFh, 00h, 00h +31E4:C8BB  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:C8C1  02 00 A0 01 A0 00                    db       02h, 00h,0A0h, 01h,0A0h, 00h +31E4:C8C7  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:C8CD  00 00 00 02 12 00                    db       00h, 00h, 00h, 02h, 12h, 00h +31E4:C8D3  00 00 00 AA 00 C6                    db       00h, 00h, 00h,0AAh, 00h,0C6h +31E4:C8D9  00 44 01 5E 01 FF                    db       00h, 44h, 01h, 5Eh, 01h,0FFh +31E4:C8DF  FF 0C 00 A1 00 EA                    db      0FFh, 0Ch, 00h,0A1h, 00h,0EAh +31E4:C8E5  00 FF FF 00 00 20                    db       00h,0FFh,0FFh, 00h, 00h, 20h +31E4:C8EB  00 57 6D 3C 14 02                    db       00h, 57h, 6Dh, 3Ch, 14h, 02h +31E4:C8F1  00 A2 01 A2 00 00                    db       00h,0A2h, 01h,0A2h, 00h, 00h +31E4:C8F7  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +31E4:C8FD  00 00 02 15 00 00                    db       00h, 00h, 02h, 15h, 00h, 00h +31E4:C903  00 00 C1 00 E0 00                    db       00h, 00h,0C1h, 00h,0E0h, 00h +31E4:C909  30 01 3C 01 FF FF                    db       30h, 01h, 3Ch, 01h,0FFh,0FFh +31E4:C90F  0A 00 03 01 15 01                    db       0Ah, 00h, 03h, 01h, 15h, 01h +31E4:C915  FF FF 00 00 20 00                    db      0FFh,0FFh, 00h, 00h, 20h, 00h +31E4:C91B  57 6D 3C 14 02 00                    db       57h, 6Dh, 3Ch, 14h, 02h, 00h +31E4:C921  A3 01 A3 02 A3 00                    db      0A3h, 01h,0A3h, 02h,0A3h, 00h +31E4:C927  00 FF FF 00 00 00                    db       00h,0FFh,0FFh, 00h, 00h, 00h +31E4:C92D  00 02 15 00 00 00                    db       00h, 02h, 15h, 00h, 00h, 00h +31E4:C933  00 41 01 70 01 41                    db       00h, 41h, 01h, 70h, 01h, 41h +31E4:C939  01 54 01 FF FF 13                    db       01h, 54h, 01h,0FFh,0FFh, 13h +31E4:C93F  00 9C 00 0A 01 FF                    db       00h, 9Ch, 00h, 0Ah, 01h,0FFh +31E4:C945  FF 00 00 20 00 57                    db      0FFh, 00h, 00h, 20h, 00h, 57h +31E4:C94B  6D 3C 14 02 00 66                    db       6Dh, 3Ch, 14h, 02h, 00h, 66h +31E4:C951  01 66 00 00 00 00                    db       01h, 66h, 00h, 00h, 00h, 00h +31E4:C957  91 0E 00 00 00 00                    db       91h, 0Eh, 00h, 00h, 00h, 00h +31E4:C95D  03 12 00 00 00 00                    db       03h, 12h, 00h, 00h, 00h, 00h +31E4:C963  80 00 9B 00 FA 00                    db       80h, 00h, 9Bh, 00h,0FAh, 00h +31E4:C969  18 01 FF FF 27 00                    db       18h, 01h,0FFh,0FFh, 27h, 00h +31E4:C96F  86 01 13 01 2C 01                    db       86h, 01h, 13h, 01h, 2Ch, 01h +31E4:C975  5E 01 42 01 4A 01                    db       5Eh, 01h, 42h, 01h, 4Ah, 01h +31E4:C97B  F2 0E FF FF 00 00                    db      0F2h, 0Eh,0FFh,0FFh, 00h, 00h +31E4:C981  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:C987  02 00 67 01 67 00                    db       02h, 00h, 67h, 01h, 67h, 00h +31E4:C98D  00 00 00 05 02 00                    db       00h, 00h, 00h, 05h, 02h, 00h +31E4:C993  00 00 00 03 12 00                    db       00h, 00h, 00h, 03h, 12h, 00h +31E4:C999  00 00 00 A2 01 C7                    db       00h, 00h, 00h,0A2h, 01h,0C7h +31E4:C99F  01 04 01 18 01 FF                    db       01h, 04h, 01h, 18h, 01h,0FFh +31E4:C9A5  FF 26 00 9F 00 13                    db      0FFh, 26h, 00h, 9Fh, 00h, 13h +31E4:C9AB  01 80 00 9B 00 FA                    db       01h, 80h, 00h, 9Bh, 00h,0FAh +31E4:C9B1  00 18 01 FF FF 28                    db       00h, 18h, 01h,0FFh,0FFh, 28h +31E4:C9B7  00 86 01 13 01 FF                    db       00h, 86h, 01h, 13h, 01h,0FFh +31E4:C9BD  FF 00 00 20 00 57                    db      0FFh, 00h, 00h, 20h, 00h, 57h +31E4:C9C3  6D 3C 14 02 00 68                    db       6Dh, 3Ch, 14h, 02h, 00h, 68h +31E4:C9C9  01 68 00 00 00 00                    db       01h, 68h, 00h, 00h, 00h, 00h +31E4:C9CF  FF FF 00 00 00 00                    db      0FFh,0FFh, 00h, 00h, 00h, 00h +31E4:C9D5  03 12 00 00 00 00                    db       03h, 12h, 00h, 00h, 00h, 00h +31E4:C9DB  A2 01 C7 01 04 01                    db      0A2h, 01h,0C7h, 01h, 04h, 01h +31E4:C9E1  18 01 FF FF 27 00                    db       18h, 01h,0FFh,0FFh, 27h, 00h +31E4:C9E7  9F 00 13 01 80 00                    db       9Fh, 00h, 13h, 01h, 80h, 00h +31E4:C9ED  9B 00 FA 00 18 01                    db       9Bh, 00h,0FAh, 00h, 18h, 01h +31E4:C9F3  FF FF 05 00 86 01                    db      0FFh,0FFh, 05h, 00h, 86h, 01h +31E4:C9F9  13 01 FF FF 00 00                    db       13h, 01h,0FFh,0FFh, 00h, 00h +31E4:C9FF  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:CA05  02 00 46 01 46 00                    db       02h, 00h, 46h, 01h, 46h, 00h +31E4:CA0B  00 00 00 FF FF 00                    db       00h, 00h, 00h,0FFh,0FFh, 00h +31E4:CA11  00 00 00 03 12 00                    db       00h, 00h, 00h, 03h, 12h, 00h +31E4:CA17  00 00 00 A2 01 C7                    db       00h, 00h, 00h,0A2h, 01h,0C7h +31E4:CA1D  01 04 01 18 01 FF                    db       01h, 04h, 01h, 18h, 01h,0FFh +31E4:CA23  FF 28 00 9F 00 13                    db      0FFh, 28h, 00h, 9Fh, 00h, 13h +31E4:CA29  01 29 01 51 01 E6                    db       01h, 29h, 01h, 51h, 01h,0E6h +31E4:CA2F  00 F7 00 FF FF 06                    db       00h,0F7h, 00h,0FFh,0FFh, 06h +31E4:CA35  20 96 01 1B 01 FF                    db       20h, 96h, 01h, 1Bh, 01h,0FFh +31E4:CA3B  FF 00 00 20 00 57                    db      0FFh, 00h, 00h, 20h, 00h, 57h +31E4:CA41  6D 3C 14 02 00 45                    db       6Dh, 3Ch, 14h, 02h, 00h, 45h +31E4:CA47  01 45 00 00 00 00                    db       01h, 45h, 00h, 00h, 00h, 00h +31E4:CA4D  B1 01 FF FF 0F 00                    db      0B1h, 01h,0FFh,0FFh, 0Fh, 00h +31E4:CA53  03 12 00 00 00 00                    db       03h, 12h, 00h, 00h, 00h, 00h +31E4:CA59  A2 01 C7 01 04 01                    db      0A2h, 01h,0C7h, 01h, 04h, 01h +31E4:CA5F  18 01 FF FF 05 40                    db       18h, 01h,0FFh,0FFh, 05h, 40h +31E4:CA65  32 01 04 01 80 00                    db       32h, 01h, 04h, 01h, 80h, 00h +31E4:CA6B  9B 00 FA 00 18 01                    db       9Bh, 00h,0FAh, 00h, 18h, 01h +31E4:CA71  FF FF 29 00 86 01                    db      0FFh,0FFh, 29h, 00h, 86h, 01h +31E4:CA77  13 01 FF FF 00 00                    db       13h, 01h,0FFh,0FFh, 00h, 00h +31E4:CA7D  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:CA83  02 00 69 01 69 00                    db       02h, 00h, 69h, 01h, 69h, 00h +31E4:CA89  00 00 00 FF FF FF                    db       00h, 00h, 00h,0FFh,0FFh,0FFh +31E4:CA8F  FF 0F 00 03 12 00                    db      0FFh, 0Fh, 00h, 03h, 12h, 00h +31E4:CA95  00 00 00 A2 01 C7                    db       00h, 00h, 00h,0A2h, 01h,0C7h +31E4:CA9B  01 04 01 18 01 FF                    db       01h, 04h, 01h, 18h, 01h,0FFh +31E4:CAA1  FF 06 00 8F 00 1B                    db      0FFh, 06h, 00h, 8Fh, 00h, 1Bh +31E4:CAA7  01 FF FF 00 00 20                    db       01h,0FFh,0FFh, 00h, 00h, 20h +31E4:CAAD  00 57 6D 3C 14 03                    db       00h, 57h, 6Dh, 3Ch, 14h, 03h +31E4:CAB3  00 EA 01 EA 02 EA                    db       00h,0EAh, 01h,0EAh, 02h,0EAh +31E4:CAB9  00 00 51 00 FF FF                    db       00h, 00h, 51h, 00h,0FFh,0FFh +31E4:CABF  0F 00 04 12 00 00                    db       0Fh, 00h, 04h, 12h, 00h, 00h +31E4:CAC5  00 00 B4 01 C7 01                    db       00h, 00h,0B4h, 01h,0C7h, 01h +31E4:CACB  20 01 34 01 FF FF                    db       20h, 01h, 34h, 01h,0FFh,0FFh +31E4:CAD1  2B 00 7F 00 1D 01                    db       2Bh, 00h, 7Fh, 00h, 1Dh, 01h +31E4:CAD7  FF FF 00 00 20 00                    db      0FFh,0FFh, 00h, 00h, 20h, 00h +31E4:CADD  57 6D 3C 14 02 00                    db       57h, 6Dh, 3Ch, 14h, 02h, 00h +31E4:CAE3  EB 01 EB 00 00 00                    db      0EBh, 01h,0EBh, 00h, 00h, 00h +31E4:CAE9  00 FF FF FF FF 0F                    db       00h,0FFh,0FFh,0FFh,0FFh, 0Fh +31E4:CAEF  00 04 12 00 00 00                    db       00h, 04h, 12h, 00h, 00h, 00h +31E4:CAF5  00 7F 00 8D 00 08                    db       00h, 7Fh, 00h, 8Dh, 00h, 08h +31E4:CAFB  01 34 0B FF FF 2A                    db       01h, 34h, 0Bh,0FFh,0FFh, 2Ah +31E4:CB01  00 A4 01 32 01 B7                    db       00h,0A4h, 01h, 32h, 01h,0B7h +31E4:CB07  01 C7 01 09 01 1E                    db       01h,0C7h, 01h, 09h, 01h, 1Eh +31E4:CB0D  01 FF FF 2C 80 0A                    db       01h,0FFh,0FFh, 2Ch, 80h, 0Ah +31E4:CB13  01 40 01 FF FF 00                    db       01h, 40h, 01h,0FFh,0FFh, 00h +31E4:CB19  00 00 00 57 6D 3C                    db       00h, 00h, 00h, 57h, 6Dh, 3Ch +31E4:CB1F  14 03 00 EC 01 EC                    db       14h, 03h, 00h,0ECh, 01h,0ECh +31E4:CB25  02 EC 00 00 FF FF                    db       02h,0ECh, 00h, 00h,0FFh,0FFh +31E4:CB2B  FF FF 0F 00 04 12                    db      0FFh,0FFh, 0Fh, 00h, 04h, 12h +31E4:CB31  00 00 00 00 09 01                    db       00h, 00h, 00h, 00h, 09h, 01h +31E4:CB37  2C 01 44 01 4A 01                    db       2Ch, 01h, 44h, 01h, 4Ah, 01h +31E4:CB3D  FF FF 2B 20 A4 01                    db      0FFh,0FFh, 2Bh, 20h,0A4h, 01h +31E4:CB43  1A 01 D0 00 F0 00                    db       1Ah, 01h,0D0h, 00h,0F0h, 00h +31E4:CB49  EE 00 FB 00 FF FF                    db      0EEh, 00h,0FBh, 00h,0FFh,0FFh +31E4:CB4F  2D 10 A0 00 C8 00                    db       2Dh, 10h,0A0h, 00h,0C8h, 00h +31E4:CB55  6A 01 88 01 F0 00                    db       6Ah, 01h, 88h, 01h,0F0h, 00h +31E4:CB5B  F9 00 FF FF 2D 10                    db      0F9h, 00h,0FFh,0FFh, 2Dh, 10h +31E4:CB61  87 00 3C 01 FF FF                    db       87h, 00h, 3Ch, 01h,0FFh,0FFh +31E4:CB67  00 00 20 00 57 6D                    db       00h, 00h, 20h, 00h, 57h, 6Dh +31E4:CB6D  3C 14 03 00 ED 01                    db       3Ch, 14h, 03h, 00h,0EDh, 01h +31E4:CB73  ED 02 ED 03 ED FF                    db      0EDh, 02h,0EDh, 03h,0EDh,0FFh +31E4:CB79  FF FF FF 0F 00 04                    db      0FFh,0FFh,0FFh, 0Fh, 00h, 04h +31E4:CB7F  12 00 00 00 00 9A                    db       12h, 00h, 00h, 00h, 00h, 9Ah +31E4:CB85  00 AE 00 C0 00 CC                    db       00h,0AEh, 00h,0C0h, 00h,0CCh +31E4:CB8B  00 FF FF 2C 40 D3                    db       00h,0FFh,0FFh, 2Ch, 40h,0D3h +31E4:CB91  00 02 01 BF 01 F4                    db       00h, 02h, 01h,0BFh, 01h,0F4h +31E4:CB97  01 C0 00 CC 00 FF                    db       01h,0C0h, 00h,0CCh, 00h,0FFh +31E4:CB9D  FF 2E 00 71 00 C8                    db      0FFh, 2Eh, 00h, 71h, 00h,0C8h +31E4:CBA3  00 80 00 8B 00 2C                    db       00h, 80h, 00h, 8Bh, 00h, 2Ch +31E4:CBA9  01 5E 01 FF FF 2C                    db       01h, 5Eh, 01h,0FFh,0FFh, 2Ch +31E4:CBAF  40 6E 01 07 01 BF                    db       40h, 6Eh, 01h, 07h, 01h,0BFh +31E4:CBB5  01 F4 01 11 01 36                    db       01h,0F4h, 01h, 11h, 01h, 36h +31E4:CBBB  01 FF FF 2E 00 71                    db       01h,0FFh,0FFh, 2Eh, 00h, 71h +31E4:CBC1  00 2F 01 CA 00 F0                    db       00h, 2Fh, 01h,0CAh, 00h,0F0h +31E4:CBC7  00 22 01 47 01 15                    db       00h, 22h, 01h, 47h, 01h, 15h +31E4:CBCD  1E FF FF 00 00 00                    db       1Eh,0FFh,0FFh, 00h, 00h, 00h +31E4:CBD3  00 57 6D 3C 14 03                    db       00h, 57h, 6Dh, 3Ch, 14h, 03h +31E4:CBD9  00 EE 01 EE 02 EE                    db       00h,0EEh, 01h,0EEh, 02h,0EEh +31E4:CBDF  03 EE D3 04 FF FF                    db       03h,0EEh,0D3h, 04h,0FFh,0FFh +31E4:CBE5  0F 00 04 12 00 00                    db       0Fh, 00h, 04h, 12h, 00h, 00h +31E4:CBEB  00 00 7F 00 84 00                    db       00h, 00h, 7Fh, 00h, 84h, 00h +31E4:CBF1  C0 00 CC 00 FF FF                    db      0C0h, 00h,0CCh, 00h,0FFh,0FFh +31E4:CBF7  2D 00 AA 01 C8 00                    db       2Dh, 00h,0AAh, 01h,0C8h, 00h +31E4:CBFD  7F 00 84 00 11 01                    db       7Fh, 00h, 84h, 00h, 11h, 01h +31E4:CC03  36 01 FF FF 2D 00                    db       36h, 01h,0FFh,0FFh, 2Dh, 00h +31E4:CC09  AA 01 2F 01 A1 01                    db      0AAh, 01h, 2Fh, 01h,0A1h, 01h +31E4:CC0F  B8 01 2F 01 40 01                    db      0B8h, 01h, 2Fh, 01h, 40h, 01h +31E4:CC15  FF FF 30 00 AA 00                    db      0FFh,0FFh, 30h, 00h,0AAh, 00h +31E4:CC1B  12 01 00 01 22 01                    db       12h, 01h, 00h, 01h, 22h, 01h +31E4:CC21  A0 00 BC 00 90 05                    db      0A0h, 00h,0BCh, 00h, 90h, 05h +31E4:CC27  FF FF 00 00 20 00                    db      0FFh,0FFh, 00h, 00h, 20h, 00h +31E4:CC2D  57 6D 3C 14 02 00                    db       57h, 6Dh, 3Ch, 14h, 02h, 00h +31E4:CC33  F0 01 F0 00 00 00                    db      0F0h, 01h,0F0h, 00h, 00h, 00h +31E4:CC39  00 FF FF 00 00 00                    db       00h,0FFh,0FFh, 00h, 00h, 00h +31E4:CC3F  00 01 12 00 00 00                    db       00h, 01h, 12h, 00h, 00h, 00h +31E4:CC45  00 80 00 8C 00 31                    db       00h, 80h, 00h, 8Ch, 00h, 31h +31E4:CC4B  01 36 01 FF FF 2E                    db       01h, 36h, 01h,0FFh,0FFh, 2Eh +31E4:CC51  40 07 01 CF 00 B6                    db       40h, 07h, 01h,0CFh, 00h,0B6h +31E4:CC57  01 C2 01 31 01 4A                    db       01h,0C2h, 01h, 31h, 01h, 4Ah +31E4:CC5D  01 FF FF 2E 40 07                    db       01h,0FFh,0FFh, 2Eh, 40h, 07h +31E4:CC63  01 CF 00 FF FF 00                    db       01h,0CFh, 00h,0FFh,0FFh, 00h +31E4:CC69  00 20 00 57 6D 3C                    db       00h, 20h, 00h, 57h, 6Dh, 3Ch +31E4:CC6F  14 02 00 EF 01 EF                    db       14h, 02h, 00h,0EFh, 01h,0EFh +31E4:CC75  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +31E4:CC7B  00 00 00 00 04 12                    db       00h, 00h, 00h, 00h, 04h, 12h +31E4:CC81  00 00 00 00 A6 00                    db       00h, 00h, 00h, 00h,0A6h, 00h +31E4:CC87  B5 00 07 01 10 01                    db      0B5h, 00h, 07h, 01h, 10h, 01h +31E4:CC8D  FF FF 2E 00 83 01                    db      0FFh,0FFh, 2Eh, 00h, 83h, 01h +31E4:CC93  38 01 FF FF 00 00                    db       38h, 01h,0FFh,0FFh, 00h, 00h +31E4:CC99  20 00 57 6D 3C 14                    db       20h, 00h, 57h, 6Dh, 3Ch, 14h +31E4:CC9F  02 00 F2 01 F2 00                    db       02h, 00h,0F2h, 01h,0F2h, 00h +31E4:CCA5  00 00 00 DE 01 FF                    db       00h, 00h, 00h,0DEh, 01h,0FFh +31E4:CCAB  FF 0F 00 01 12 00                    db      0FFh, 0Fh, 00h, 01h, 12h, 00h +31E4:CCB1  00 00 00 80 00 8C                    db       00h, 00h, 00h, 80h, 00h, 8Ch +31E4:CCB7  00 31 01 4A 01 AD                    db       00h, 31h, 01h, 4Ah, 01h,0ADh +31E4:CCBD  01 FF FF 00 00 00                    db       01h,0FFh,0FFh, 00h, 00h, 00h +31E4:CCC3  00 57 6D 00 00 01                    db       00h, 57h, 6Dh, 00h, 00h, 01h +31E4:CCC9  00 78 00 00 00 00                    db       00h, 78h, 00h, 00h, 00h, 00h +31E4:CCCF  00 00 FF FF FF FF                    db       00h, 00h,0FFh,0FFh,0FFh,0FFh +31E4:CCD5  0F 00 01 12 00 00                    db       0Fh, 00h, 01h, 12h, 00h, 00h +31E4:CCDB  00 00 FF FF 00                       db       00h, 00h,0FFh,0FFh, 00h + +31E4:CCE0  0014[00]   talk_character_buffer     db       20 dup (0) +31E4:CCF4  012C[00]        talk_text_buffer     db      300 dup (0) + +31E4:CE20  05                   data_1152       db      5 +31E4:CE21  00 00                                db      0, 0 +31E4:CE23  000D[00]                             db      13 dup (0) +31E4:CE30                       loc_2362:                                       ;  xref 31E4:CEA5 + +31E4:CE30  11 27      room_exit_joins_table     dw      2711h                   ; Res Id for Cell Door #1 +31E4:CE32  03 03                                dw      0303h                   ; Result 1 +31E4:CE34  0A 09                                dw      090Ah +31E4:CE36  12 27                                dw      2712h                   ; Res Id for Cell Door #2 +31E4:CE38  03 04                                dw      0403h                   ; Result 2 + +31E4:CE3A  0A 09                                or      cl,[bx+di] +31E4:CE3C  01 38                                add     [bx+si],di +31E4:CE3E  87 70 87                             xchg    [bx+si-79h],si +31E4:CE41  14 27                                adc     al,27h                  ; ''' +31E4:CE43  03 03                                add     ax,[bp+di] +31E4:CE45  0D 000D                              or      ax,0Dh +31E4:CE48  00 00                                add     [bx+si],al +31E4:CE4A  00 0A                                add     [bp+si],cl +31E4:CE4C  09 01                                or      [bx+di],ax +31E4:CE4E  AE                                   scasb                           ; Scan es:[di] for al +31E4:CE4F  87 AE 1587                           xchg    [bp+1587h],bp +31E4:CE53  27                                   daa                             ; Decimal adjust +31E4:CE54  03 04                                add     ax,[si] +31E4:CE56  0A 17                                or      dl,[bx] +31E4:CE58  16                                   push    ss +31E4:CE59  27                                   daa                             ; Decimal adjust +31E4:CE5A  03 05                                add     ax,[di] +31E4:CE5C  0A 17                                or      dl,[bx] +31E4:CE5E  01 E6                                add     si,sp +31E4:CE60  87 1B                                xchg    [bp+di],bx +31E4:CE62  88 17                                mov     [bx],dl +31E4:CE64  27                                   daa                             ; Decimal adjust +31E4:CE65  03 04                                add     ax,[si] +31E4:CE67  0A 17                                or      dl,[bx] +31E4:CE69  18 27                                sbb     [bx],ah +31E4:CE6B  03 05                                add     ax,[di] +31E4:CE6D  0A 17                                or      dl,[bx] +31E4:CE6F  01 AE D888                           add     [bp-2778h],bp +31E4:CE73  88 19                                mov     [bx+di],bl +31E4:CE75  27                                   daa                             ; Decimal adjust +31E4:CE76  03 04                                add     ax,[si] +31E4:CE78  0A 17                                or      dl,[bx] +31E4:CE7A  1A 27                                sbb     ah,[bx] +31E4:CE7C  03 05                                add     ax,[di] +31E4:CE7E  0A 17                                or      dl,[bx] +31E4:CE80  01 10                                add     [bx+si],dx +31E4:CE82  89 69 8A                             mov     [bx+di-76h],bp +31E4:CE85  1E                                   push    ds +31E4:CE86  27                                   daa                             ; Decimal adjust +31E4:CE87  03 04                                add     ax,[si] +31E4:CE89  0A 17                                or      dl,[bx] +31E4:CE8B  29 27                                sub     [bx],sp +31E4:CE8D  03 04                                add     ax,[si] +31E4:CE8F  0A 17                                or      dl,[bx] +31E4:CE91  01 A4 CE8A                           add     ds:data_59e[si],sp      ; (0000:CE8A=301Eh) +31E4:CE95  8A 1F                                mov     bl,[bx] +31E4:CE97  27                                   daa                             ; Decimal adjust +31E4:CE98  03 05                                add     ax,[di] +31E4:CE9A  0A 17                                or      dl,[bx] +31E4:CE9C  20 27                                and     [bx],ah +31E4:CE9E  03 05                                add     ax,[di] +31E4:CEA0  0A 17                                or      dl,[bx] +31E4:CEA2  01 4B 89                             add     [bp+di-77h],cx +31E4:CEA5  75 89                                jnz     loc_2362                ; Jump if not zero +31E4:CEA7  21 27                                and     [bx],sp +31E4:CEA9  03 05                                add     ax,[di] +31E4:CEAB  0A 17                                or      dl,[bx] +31E4:CEAD  22 27                                and     ah,[bx] +31E4:CEAF  03 05                                add     ax,[di] +31E4:CEB1  0A 17                                or      dl,[bx] +31E4:CEB3  01 B0 DA89                           add     ds:data_60e[bx+si],si   ; (0000:DA89=52F9h) +31E4:CEB7  89 25                                mov     [di],sp +31E4:CEB9  27                                   daa                             ; Decimal adjust +31E4:CEBA  03 05                                add     ax,[di] +31E4:CEBC  0A 17                                or      dl,[bx] +31E4:CEBE  26 27 03 04 0A 17                    db       26h, 27h, 03h, 04h, 0Ah, 17h +31E4:CEC4  01 15 8A 3F 8A 2A                    db       01h, 15h, 8Ah, 3Fh, 8Ah, 2Ah +31E4:CECA  27 03 05 00 00 2B                    db       27h, 03h, 05h, 00h, 00h, 2Bh +31E4:CED0  27 03 05 00 00 01                    db       27h, 03h, 05h, 00h, 00h, 01h +31E4:CED6  09 8B 33 8B 2C 27                    db       09h, 8Bh, 33h, 8Bh, 2Ch, 27h +31E4:CEDC  03 05 00 00 2D 27                    db       03h, 05h, 00h, 00h, 2Dh, 27h +31E4:CEE2  03 05 00 00 01 5D                    db       03h, 05h, 00h, 00h, 01h, 5Dh +31E4:CEE8  8B 87 8B 2E 27 03                    db       8Bh, 87h, 8Bh, 2Eh, 27h, 03h +31E4:CEEE  05 00 00 2F 27 03                    db       05h, 00h, 00h, 2Fh, 27h, 03h +31E4:CEF4  05 00 00 01 B1 8B                    db       05h, 00h, 00h, 01h,0B1h, 8Bh +31E4:CEFA  DB 8B 00                             db      0DBh, 8Bh, 00h +31E4:CEFD  0005[00]                             db       5 dup (0) + +31E4:CF02  0000            talk_response_ptr    dw       0 +31E4:CF04  0000        talk_next_talk_offset    dw       0 +31E4:CF06  0000          talk_to_hotspot_ptr    dw       0 +31E4:CF08  0000                   talk_state    dw       0 +31E4:CF09  00                  talk_line_num    db       0 +31E4:CF0A  00             talk_selected_line    db       0 +31E4:CF0B  00                      talk_cf0b    db       0 +31E4:CF0C  0008              talk_entry_list    db       8 dup (0) + +31E4:CF14  3A CF 00 80 24 04                    db       3Ah,0CFh, 00h, 80h, 24h, 04h +31E4:CF1A  00 00 00 80 FB 00                    db       00h, 00h, 00h, 80h,0FBh, 00h +31E4:CF20  01 00 00 80 F9 00                    db       01h, 00h, 00h, 80h,0F9h, 00h +31E4:CF26  02 00 00 80 FC 00                    db       02h, 00h, 00h, 80h,0FCh, 00h +31E4:CF2C  03 00 00 80 FE 00                    db       03h, 00h, 00h, 80h,0FEh, 00h +31E4:CF32  04 00 00 80 24 04                    db       04h, 00h, 00h, 80h, 24h, 04h +31E4:CF38  05 00 00 00 FA 00                    db       05h, 00h, 00h, 00h,0FAh, 00h +31E4:CF3E  01 00 0B 20 00 01                    db       01h, 00h, 0Bh, 20h, 00h, 01h +31E4:CF44  02 00 00 00 FF 00                    db       02h, 00h, 00h, 00h,0FFh, 00h +31E4:CF4A  03 00 00 00 01 01                    db       03h, 00h, 00h, 00h, 01h, 01h +31E4:CF50  04 00 00 00 94 00                    db       04h, 00h, 00h, 00h, 94h, 00h +31E4:CF56  05 00 E9 1F 24 04                    db       05h, 00h,0E9h, 1Fh, 24h, 04h +31E4:CF5C  FF FF 78 CF 00 80                    db      0FFh,0FFh, 78h,0CFh, 00h, 80h +31E4:CF62  24 04 00 00 00 80                    db       24h, 04h, 00h, 00h, 00h, 80h +31E4:CF68  78 0A 01 00 00 80                    db       78h, 0Ah, 01h, 00h, 00h, 80h +31E4:CF6E  24 04 02 00 00 80                    db       24h, 04h, 02h, 00h, 00h, 80h +31E4:CF74  24 04 03 00 00 00                    db       24h, 04h, 03h, 00h, 00h, 00h +31E4:CF7A  77 0A 01 00 00 00                    db       77h, 0Ah, 01h, 00h, 00h, 00h +31E4:CF80  40 0B 02 00 00 00                    db       40h, 0Bh, 02h, 00h, 00h, 00h +31E4:CF86  41 0B 03 00 7E 29                    db       41h, 0Bh, 03h, 00h, 7Eh, 29h +31E4:CF8C  24 04 FF FF 9E CF                    db       24h, 04h,0FFh,0FFh, 9Eh,0CFh +31E4:CF92  00 80 24 04 00 00                    db       00h, 80h, 24h, 04h, 00h, 00h +31E4:CF98  00 80 24 04 01 00                    db       00h, 80h, 24h, 04h, 01h, 00h +31E4:CF9E  00 00 24 04 01 00                    db       00h, 00h, 24h, 04h, 01h, 00h +31E4:CFA4  60 2A 24 04 FF FF                    db       60h, 2Ah, 24h, 04h,0FFh,0FFh +31E4:CFAA  BE CF 00 80 24 04                    db      0BEh,0CFh, 00h, 80h, 24h, 04h +31E4:CFB0  00 00 00 80 24 04                    db       00h, 00h, 00h, 80h, 24h, 04h +31E4:CFB6  01 00 00 80 24 04                    db       01h, 00h, 00h, 80h, 24h, 04h +31E4:CFBC  02 00 00 00 BD 0B                    db       02h, 00h, 00h, 00h,0BDh, 0Bh +31E4:CFC2  01 00 00 00 BE 0B                    db       01h, 00h, 00h, 00h,0BEh, 0Bh +31E4:CFC8  02 00 00 00 BF 0B                    db       02h, 00h, 00h, 00h,0BFh, 0Bh +31E4:CFCE  FF FF E4 CF 00 80                    db      0FFh,0FFh,0E4h,0CFh, 00h, 80h +31E4:CFD4  24 04 00 00 00 80                    db       24h, 04h, 00h, 00h, 00h, 80h +31E4:CFDA  EC 0B 01 00 00 80                    db      0ECh, 0Bh, 01h, 00h, 00h, 80h +31E4:CFE0  EE 0B 02 00 00 00                    db      0EEh, 0Bh, 02h, 00h, 00h, 00h +31E4:CFE6  EB 0B 01 00 00 00                    db      0EBh, 0Bh, 01h, 00h, 00h, 00h +31E4:CFEC  ED 0B 02 00 00 00                    db      0EDh, 0Bh, 02h, 00h, 00h, 00h +31E4:CFF2  EF 0B FF FF 04 D0                    db      0EFh, 0Bh,0FFh,0FFh, 04h,0D0h +31E4:CFF8  00 80 24 04 00 00                    db       00h, 80h, 24h, 04h, 00h, 00h +31E4:CFFE  00 80 24 04 01 00                    db       00h, 80h, 24h, 04h, 01h, 00h +31E4:D004  00 00 17 0B 01 00                    db       00h, 00h, 17h, 0Bh, 01h, 00h +31E4:D00A  06 19 24 04 FF FF                    db       06h, 19h, 24h, 04h,0FFh,0FFh +31E4:D010  18 D0 00 80 D5 07                    db       18h,0D0h, 00h, 80h,0D5h, 07h +31E4:D016  00 00 73 2A 10 0C                    db       00h, 00h, 73h, 2Ah, 10h, 0Ch +31E4:D01C  FF FF 26 D0 00 80                    db      0FFh,0FFh, 26h,0D0h, 00h, 80h +31E4:D022  F9 07 00 00 00 00                    db      0F9h, 07h, 00h, 00h, 00h, 00h +31E4:D028  13 0C FF FF 46 D0                    db       13h, 0Ch,0FFh,0FFh, 46h,0D0h +31E4:D02E  00 80 FB 07 00 00                    db       00h, 80h,0FBh, 07h, 00h, 00h +31E4:D034  00 80 16 0C 01 00                    db       00h, 80h, 16h, 0Ch, 01h, 00h +31E4:D03A  00 80 18 0C 02 00                    db       00h, 80h, 18h, 0Ch, 02h, 00h +31E4:D040  00 80 1A                             db       00h, 80h, 1Ah +31E4:D043  0C                                   db      0Ch +31E4:D044                       loc_2363: +31E4:D044  03 00                                add     ax,[bx+si] +31E4:D046  00 00                                add     [bx+si],al +31E4:D048  15 010C                              adc     ax,10Ch +31E4:D04B  00 00                                add     [bx+si],al +31E4:D04D  00 17                                add     [bx],dl +31E4:D04F  0C 02                                or      al,2 +31E4:D051  00 00                                add     [bx+si],al +31E4:D053  00 19                                add     [bx+di],bl +31E4:D055  0C 03                                or      al,3 +31E4:D057  00 00                                add     [bx+si],al +31E4:D059  00 1B                                add     [bp+di],bl +31E4:D05B  0C FF                                or      al,0FFh +31E4:D05D  FF 66 D0                             jmp     word ptr [bp-30h]       ;* +                                sub_276         endp + +31E4:D060  00 80 29 0A 00 00                    db       00h, 80h, 29h, 0Ah, 00h, 00h +31E4:D066  00 00 0D 0C FF FF                    db       00h, 00h, 0Dh, 0Ch,0FFh,0FFh +31E4:D06C  8C D0 00 00 22 08                    db       8Ch,0D0h, 00h, 00h, 22h, 08h +31E4:D072  00 00 00 80 2C 08                    db       00h, 00h, 00h, 80h, 2Ch, 08h +31E4:D078  02 00 00 80 29 0C                    db       02h, 00h, 00h, 80h, 29h, 0Ch +31E4:D07E  01 00 00 80 24 04                    db       01h, 00h, 00h, 80h, 24h, 04h +31E4:D084  03 00 00 80 2E 0C                    db       03h, 00h, 00h, 80h, 2Eh, 0Ch +31E4:D08A  04 00 00 00 28 0C                    db       04h, 00h, 00h, 00h, 28h, 0Ch +31E4:D090  02 00 00 00 2A 0C                    db       02h, 00h, 00h, 00h, 2Ah, 0Ch +31E4:D096  FF FF 00 00 2C 0C                    db      0FFh,0FFh, 00h, 00h, 2Ch, 0Ch +31E4:D09C  03 00 00 00 2D 0C                    db       03h, 00h, 00h, 00h, 2Dh, 0Ch +31E4:D0A2  04 00 00 00 2F 0C                    db       04h, 00h, 00h, 00h, 2Fh, 0Ch +31E4:D0A8  FF FF CA D0 00 00                    db      0FFh,0FFh,0CAh,0D0h, 00h, 00h +31E4:D0AE  38 88 00 00 00 80                    db       38h, 88h, 00h, 00h, 00h, 80h +31E4:D0B4  0F 0C 04 00 00 80                    db       0Fh, 0Ch, 04h, 00h, 00h, 80h +31E4:D0BA  1E 0C 01 00 00 80                    db       1Eh, 0Ch, 01h, 00h, 00h, 80h +31E4:D0C0  20 0C 02 00 00 80                    db       20h, 0Ch, 02h, 00h, 00h, 80h +31E4:D0C6  24 04 03 00 00 00                    db       24h, 04h, 03h, 00h, 00h, 00h +31E4:D0CC  1D 0C 02 00 00 00                    db       1Dh, 0Ch, 02h, 00h, 00h, 00h +31E4:D0D2  1F 0C 03 00 00 00                    db       1Fh, 0Ch, 03h, 00h, 00h, 00h +31E4:D0D8  21 0C 04 00 83 2A                    db       21h, 0Ch, 04h, 00h, 83h, 2Ah +31E4:D0DE  24 04 FF FF 00 00                    db       24h, 04h,0FFh,0FFh, 00h, 00h +31E4:D0E4  12 0C FF FF FC D0                    db       12h, 0Ch,0FFh,0FFh,0FCh,0D0h +31E4:D0EA  00 80 24 04 00 00                    db       00h, 80h, 24h, 04h, 00h, 00h +31E4:D0F0  00 80 32 0C 01 00                    db       00h, 80h, 32h, 0Ch, 01h, 00h +31E4:D0F6  00 80 34 0C 02 00                    db       00h, 80h, 34h, 0Ch, 02h, 00h +31E4:D0FC  00 00 31 0C 01 00                    db       00h, 00h, 31h, 0Ch, 01h, 00h +31E4:D102  00 00 33 0C 02 00                    db       00h, 00h, 33h, 0Ch, 02h, 00h +31E4:D108  00 00 35 0C FF FF                    db       00h, 00h, 35h, 0Ch,0FFh,0FFh +31E4:D10E  28 D1 00 00 CA 09                    db       28h,0D1h, 00h, 00h,0CAh, 09h +31E4:D114  00 00 00 80 0D 0B                    db       00h, 00h, 00h, 80h, 0Dh, 0Bh +31E4:D11A  02 00 00 80 38 0C                    db       02h, 00h, 00h, 80h, 38h, 0Ch +31E4:D120  01 00 00 80 3C 0C                    db       01h, 00h, 00h, 80h, 3Ch, 0Ch +31E4:D126  03 00 00 00 37 0C                    db       03h, 00h, 00h, 00h, 37h, 0Ch +31E4:D12C  02 00 00 00 39 0C                    db       02h, 00h, 00h, 00h, 39h, 0Ch +31E4:D132  FF FF 00 00 3B 0C                    db      0FFh,0FFh, 00h, 00h, 3Bh, 0Ch +31E4:D138  03 00 00 00 3D 0C                    db       03h, 00h, 00h, 00h, 3Dh, 0Ch +31E4:D13E  FF FF 5A D1 69 23                    db      0FFh,0FFh, 5Ah,0D1h, 69h, 23h +31E4:D144  03 09 00 00 00 80                    db       03h, 09h, 00h, 00h, 00h, 80h +31E4:D14A  27 0C 03 00 00 80                    db       27h, 0Ch, 03h, 00h, 00h, 80h +31E4:D150  40 0C 01 00 00 80                    db       40h, 0Ch, 01h, 00h, 00h, 80h +31E4:D156  24 04 02 00 00 00                    db       24h, 04h, 02h, 00h, 00h, 00h +31E4:D15C  3F 0C 02 00 00 00                    db       3Fh, 0Ch, 02h, 00h, 00h, 00h +31E4:D162  41 0C 03 00 00 00                    db       41h, 0Ch, 03h, 00h, 00h, 00h +31E4:D168  42 0C FF FF 00 00                    db       42h, 0Ch,0FFh,0FFh, 00h, 00h +31E4:D16E  2B 0C FF FF 80 D1                    db       2Bh, 0Ch,0FFh,0FFh, 80h,0D1h +31E4:D174  00 80 EF 09 00 00                    db       00h, 80h,0EFh, 09h, 00h, 00h +31E4:D17A  00 80 45 0C 01 00                    db       00h, 80h, 45h, 0Ch, 01h, 00h +31E4:D180  00 00 44 0C 01 00                    db       00h, 00h, 44h, 0Ch, 01h, 00h +31E4:D186  00 00 46 0C FF FF                    db       00h, 00h, 46h, 0Ch,0FFh,0FFh +31E4:D18C  9A D1 00 80 40 09                    db       9Ah,0D1h, 00h, 80h, 40h, 09h +31E4:D192  00 00 00 80 48 0C                    db       00h, 00h, 00h, 80h, 48h, 0Ch +31E4:D198  01 00 00 00 47 0C                    db       01h, 00h, 00h, 00h, 47h, 0Ch +31E4:D19E  01 00 00 00 49 0C                    db       01h, 00h, 00h, 00h, 49h, 0Ch +31E4:D1A4  FF FF B4 D1 00 80                    db      0FFh,0FFh,0B4h,0D1h, 00h, 80h +31E4:D1AA  48 09 00 00 00 80                    db       48h, 09h, 00h, 00h, 00h, 80h +31E4:D1B0  4B 0C 01 00 00 00                    db       4Bh, 0Ch, 01h, 00h, 00h, 00h +31E4:D1B6  4A 0C 01 00 00 00                    db       4Ah, 0Ch, 01h, 00h, 00h, 00h +31E4:D1BC  24 04 FF FF CE D1                    db       24h, 04h,0FFh,0FFh,0CEh,0D1h +31E4:D1C2  00 80 2E 0B 00 00                    db       00h, 80h, 2Eh, 0Bh, 00h, 00h +31E4:D1C8  00 80 4E 0C 01 00                    db       00h, 80h, 4Eh, 0Ch, 01h, 00h +31E4:D1CE  00 00 4D 0C 01 00                    db       00h, 00h, 4Dh, 0Ch, 01h, 00h +31E4:D1D4  00 00 4F 0C FF FF                    db       00h, 00h, 4Fh, 0Ch,0FFh,0FFh +31E4:D1DA  E2 D1 00 80 92 09                    db      0E2h,0D1h, 00h, 80h, 92h, 09h +31E4:D1E0  00 00 00 00 50 0C                    db       00h, 00h, 00h, 00h, 50h, 0Ch +31E4:D1E6  FF FF F6 D1 00 80                    db      0FFh,0FFh,0F6h,0D1h, 00h, 80h +31E4:D1EC  38 0A 00 00 00 80                    db       38h, 0Ah, 00h, 00h, 00h, 80h +31E4:D1F2  52 0C 01 00 00 00                    db       52h, 0Ch, 01h, 00h, 00h, 00h +31E4:D1F8  51 0C 01 00 00 00                    db       51h, 0Ch, 01h, 00h, 00h, 00h +31E4:D1FE  53 0C FF                             db       53h, 0Ch,0FFh +31E4:D201  0AFF                 data_1156       dw      0AFFh                   ;  xref 31E4:2A54 +31E4:D203  D2 00 80 D5 07 00                    db      0D2h, 00h, 80h,0D5h, 07h, 00h +31E4:D209  00 00 00 EC A4 FF                    db       00h, 00h, 00h,0ECh,0A4h,0FFh +31E4:D20F  FF 36 D2 00 00 59                    db      0FFh, 36h,0D2h, 00h, 00h, 59h +31E4:D215  89 00 00 00 00 5B                    db       89h, 00h, 00h, 00h, 00h, 5Bh +31E4:D21B  89 01 00 00 80 F9                    db       89h, 01h, 00h, 00h, 80h,0F9h +31E4:D221  07 02 00                             db       07h, 02h, 00h +31E4:D224  0007[00]                             db      7 dup (0) +31E4:D22B  80 24 04 03 00 00                    db       80h, 24h, 04h, 03h, 00h, 00h +31E4:D231  80 EF 07 04 00 FC                    db       80h,0EFh, 07h, 04h, 00h,0FCh +31E4:D237  24 5A 09 00 00 09                    db       24h, 5Ah, 09h, 00h, 00h, 09h +31E4:D23D  25 5C 09 04 00 00                    db       25h, 5Ch, 09h, 04h, 00h, 00h +31E4:D243  00 5E 09 05 00 00                    db       00h, 5Eh, 09h, 05h, 00h, 00h +31E4:D249  00 5D 09 00 00 00                    db       00h, 5Dh, 09h, 00h, 00h, 00h +31E4:D24F  00 5F 09 FF FF 7A                    db       00h, 5Fh, 09h,0FFh,0FFh, 7Ah +31E4:D255  D2 16 25 59 09 00                    db      0D2h, 16h, 25h, 59h, 09h, 00h +31E4:D25B  00 1D 25 5B 09 01                    db       00h, 1Dh, 25h, 5Bh, 09h, 01h +31E4:D261  00 00 80 FB 07 02                    db       00h, 00h, 80h,0FBh, 07h, 02h +31E4:D267  00                                   db       00h +31E4:D268  0007[00]                             db      7 dup (0) +31E4:D26F  80 24 04 03 00 00                    db       80h, 24h, 04h, 03h, 00h, 00h +31E4:D275  80 76 00 04 00 FC                    db       80h, 76h, 00h, 04h, 00h,0FCh +31E4:D27B  24 5A 09 00 00 09                    db       24h, 5Ah, 09h, 00h, 00h, 09h +31E4:D281  25 5C 09 04 00 00                    db       25h, 5Ch, 09h, 04h, 00h, 00h +31E4:D287  00 62 09 05 00 00                    db       00h, 62h, 09h, 05h, 00h, 00h +31E4:D28D  00 5D 09 00 00 00                    db       00h, 5Dh, 09h, 00h, 00h, 00h +31E4:D293  00 24 04 FF FF B8                    db       00h, 24h, 04h,0FFh,0FFh,0B8h +31E4:D299  D2 16 25 59 09 00                    db      0D2h, 16h, 25h, 59h, 09h, 00h +31E4:D29F  00 1D 25 5B 09 01                    db       00h, 1Dh, 25h, 5Bh, 09h, 01h +31E4:D2A5  00 00 00 22 08 02                    db       00h, 00h, 00h, 22h, 08h, 02h +31E4:D2AB  00 00 80 2C 08 04                    db       00h, 00h, 80h, 2Ch, 08h, 04h +31E4:D2B1  00 00 80 24 04 03                    db       00h, 00h, 80h, 24h, 04h, 03h +31E4:D2B7  00 FC 24 5A 09 00                    db       00h,0FCh, 24h, 5Ah, 09h, 00h +31E4:D2BD  00 09 25 5C 09 04                    db       00h, 09h, 25h, 5Ch, 09h, 04h +31E4:D2C3  00 00 00 63 09 FF                    db       00h, 00h, 00h, 63h, 09h,0FFh +31E4:D2C9  FF 00 00 5D 09 00                    db      0FFh, 00h, 00h, 5Dh, 09h, 00h +31E4:D2CF  00 00 00 A1 0A FF                    db       00h, 00h, 00h,0A1h, 0Ah,0FFh +31E4:D2D5  FF F6 D2 16 25 59                    db      0FFh,0F6h,0D2h, 16h, 25h, 59h +31E4:D2DB  09 00 00 1D 25 5B                    db       09h, 00h, 00h, 1Dh, 25h, 5Bh +31E4:D2E1  09 01 00 00 80 38                    db       09h, 01h, 00h, 00h, 80h, 38h +31E4:D2E7  08 02 00                             db       08h, 02h, 00h +31E4:D2EA  0007[00]                             db      7 dup (0) +31E4:D2F1  80 24 04 03 00 FC                    db       80h, 24h, 04h, 03h, 00h,0FCh +31E4:D2F7  24 5A 09 00 00 09                    db       24h, 5Ah, 09h, 00h, 00h, 09h +31E4:D2FD  25 5C 09 04 00 00                    db       25h, 5Ch, 09h, 04h, 00h, 00h +31E4:D303  00 64 09 FF FF 00                    db       00h, 64h, 09h,0FFh,0FFh, 00h +31E4:D309  00 5D 09 00 00 1C                    db       00h, 5Dh, 09h, 00h, 00h, 1Ch +31E4:D30F  D3 00 80 24 04 00                    db      0D3h, 00h, 80h, 24h, 04h, 00h +31E4:D315  00 00 80 66 09 01                    db       00h, 00h, 80h, 66h, 09h, 01h +31E4:D31B  00 00 00 65 09 01                    db       00h, 00h, 00h, 65h, 09h, 01h +31E4:D321  00 00 00 67 09 FF                    db       00h, 00h, 00h, 67h, 09h,0FFh +31E4:D327  FF 36 D3 00 80 0D                    db      0FFh, 36h,0D3h, 00h, 80h, 0Dh +31E4:D32D  0B 00 00 00 80 0F                    db       0Bh, 00h, 00h, 00h, 80h, 0Fh +31E4:D333  0B 01 00 00 00 0E                    db       0Bh, 01h, 00h, 00h, 00h, 0Eh +31E4:D339  0B 01 00 00 00 10                    db       0Bh, 01h, 00h, 00h, 00h, 10h +31E4:D33F  0B FF FF 4A D3 00                    db       0Bh,0FFh,0FFh, 4Ah,0D3h, 00h +31E4:D345  80 CA 09 00 00 00                    db       80h,0CAh, 09h, 00h, 00h, 00h +31E4:D34B  00 11 0B FF FF 6A                    db       00h, 11h, 0Bh,0FFh,0FFh, 6Ah +31E4:D351  D3 69 23 03 09 00                    db      0D3h, 69h, 23h, 03h, 09h, 00h +31E4:D357  00 00 80 40 09 02                    db       00h, 00h, 80h, 40h, 09h, 02h +31E4:D35D  0008[00]                             db      8 dup (0) +31E4:D365  80 69 09 01 00 00                    db       80h, 69h, 09h, 01h, 00h, 00h +31E4:D36B  00 68 09 03 00 00                    db       00h, 68h, 09h, 03h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 545 + +31E4:D371  00 6A 09 FF FF 00                    db       00h, 6Ah, 09h,0FFh,0FFh, 00h +31E4:D377  00 D2 09 FF FF 8A                    db       00h,0D2h, 09h,0FFh,0FFh, 8Ah +31E4:D37D  D3 00 80 01 0C 00                    db      0D3h, 00h, 80h, 01h, 0Ch, 00h +31E4:D383  00 00 80 03 0C 01                    db       00h, 00h, 80h, 03h, 0Ch, 01h +31E4:D389  00 00 00 02 0C 01                    db       00h, 00h, 00h, 02h, 0Ch, 01h +31E4:D38F  00 00 00 04 0C FF                    db       00h, 00h, 00h, 04h, 0Ch,0FFh +31E4:D395  FF AA D3 00 80 48                    db      0FFh,0AAh,0D3h, 00h, 80h, 48h +31E4:D39B  09 00                                db       09h, 00h +31E4:D39D  0008[00]                             db      8 dup (0) +31E4:D3A5  80 6C 09 01 00 00                    db       80h, 6Ch, 09h, 01h, 00h, 00h +31E4:D3AB  00 6B 09 02 00 00                    db       00h, 6Bh, 09h, 02h, 00h, 00h +31E4:D3B1  00 6D 09 FF FF CA                    db       00h, 6Dh, 09h,0FFh,0FFh,0CAh +31E4:D3B7  D3 00 80 97 09 00                    db      0D3h, 00h, 80h, 97h, 09h, 00h +31E4:D3BD  00                                   db       00h +31E4:D3BE  0007[00]                             db      7 dup (0) +31E4:D3C5  80 99 09 01 00 00                    db       80h, 99h, 09h, 01h, 00h, 00h +31E4:D3CB  00 98 09 02 00 00                    db       00h, 98h, 09h, 02h, 00h, 00h +31E4:D3D1  00 9A 09 FF FF E4                    db       00h, 9Ah, 09h,0FFh,0FFh,0E4h +31E4:D3D7  D3 00 80 97 09 00                    db      0D3h, 00h, 80h, 97h, 09h, 00h +31E4:D3DD  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +31E4:D3E3  00 B7 26 9B 09 FF                    db       00h,0B7h, 26h, 9Bh, 09h,0FFh +31E4:D3E9  FF F2 D3 00 80 9C                    db      0FFh,0F2h,0D3h, 00h, 80h, 9Ch +31E4:D3EF  09 00 00 00 00 9D                    db       09h, 00h, 00h, 00h, 00h, 9Dh +31E4:D3F5  09 FF FF 0C D4 00                    db       09h,0FFh,0FFh, 0Ch,0D4h, 00h +31E4:D3FB  00 38 0A 00 00 00                    db       00h, 38h, 0Ah, 00h, 00h, 00h +31E4:D401  80 7F 0A 02 00 00                    db       80h, 7Fh, 0Ah, 02h, 00h, 00h +31E4:D407  80 7D 0A 01 00 00                    db       80h, 7Dh, 0Ah, 01h, 00h, 00h +31E4:D40D  00 7C 0A 02 00 00                    db       00h, 7Ch, 0Ah, 02h, 00h, 00h +31E4:D413  00 7E 0A FF FF 00                    db       00h, 7Eh, 0Ah,0FFh,0FFh, 00h +31E4:D419  00 80 0A FF FF 26                    db       00h, 80h, 0Ah,0FFh,0FFh, 26h +31E4:D41F  D4 00 80 D5 07 00                    db      0D4h, 00h, 80h,0D5h, 07h, 00h +31E4:D425  00 00 00 94 A4 FF                    db       00h, 00h, 00h, 94h,0A4h,0FFh +31E4:D42B  FF 52 D4 6D 23 36                    db      0FFh, 52h,0D4h, 6Dh, 23h, 36h +31E4:D431  09 00 00 00 00 2E                    db       09h, 00h, 00h, 00h, 00h, 2Eh +31E4:D437  89 03 00 00 80 3A                    db       89h, 03h, 00h, 00h, 80h, 3Ah +31E4:D43D  09 04 00                             db       09h, 04h, 00h +31E4:D440  0007[00]                             db      7 dup (0) +31E4:D447  80 2B 09 01 00 00                    db       80h, 2Bh, 09h, 01h, 00h, 00h +31E4:D44D  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:D453  00 37 09 04 00 00                    db       00h, 37h, 09h, 04h, 00h, 00h +31E4:D459  00 38 09 05 00 70                    db       00h, 38h, 09h, 05h, 00h, 70h +31E4:D45F  24 24 04 FF FF 00                    db       24h, 24h, 04h,0FFh,0FFh, 00h +31E4:D465  00 39 09 FF FF 00                    db       00h, 39h, 09h,0FFh,0FFh, 00h +31E4:D46B  00 3B 09 FF FF 90                    db       00h, 3Bh, 09h,0FFh,0FFh, 90h +31E4:D471  D4 00 00 6D 0B 08                    db      0D4h, 00h, 00h, 6Dh, 0Bh, 08h +31E4:D477  00 00 80 40 09 00                    db       00h, 00h, 80h, 40h, 09h, 00h +31E4:D47D  00 00 80 42 09 02                    db       00h, 00h, 80h, 42h, 09h, 02h +31E4:D483  00 00 80 24 04 03                    db       00h, 00h, 80h, 24h, 04h, 03h +31E4:D489  00 00 80 45 89 04                    db       00h, 00h, 80h, 45h, 89h, 04h +31E4:D48F  00 A4 24 41 09 02                    db       00h,0A4h, 24h, 41h, 09h, 02h +31E4:D495  00 00 00 4B 09 FF                    db       00h, 00h, 00h, 4Bh, 09h,0FFh +31E4:D49B  FF 00 00 43 09 03                    db      0FFh, 00h, 00h, 43h, 09h, 03h +31E4:D4A1  00 00 00 44 09 04                    db       00h, 00h, 00h, 44h, 09h, 04h +31E4:D4A7  00 42 2A 46 09 FF                    db       00h, 42h, 2Ah, 46h, 09h,0FFh +31E4:D4AD  FF 00 00 47 09 04                    db      0FFh, 00h, 00h, 47h, 09h, 04h +31E4:D4B3  00 BB 24 49 09 07                    db       00h,0BBh, 24h, 49h, 09h, 07h +31E4:D4B9  00 00 00 4A 09 FF                    db       00h, 00h, 00h, 4Ah, 09h,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 546 + +31E4:D4BF  FF 00 00 72 0B 00                    db      0FFh, 00h, 00h, 72h, 0Bh, 00h +31E4:D4C5  00 D4 D4 00 80 48                    db       00h,0D4h,0D4h, 00h, 80h, 48h +31E4:D4CB  09 00 00 00 80 24                    db       09h, 00h, 00h, 00h, 80h, 24h +31E4:D4D1  04 01 00 00 00 49                    db       04h, 01h, 00h, 00h, 00h, 49h +31E4:D4D7  09 01 00 00 00 4A                    db       09h, 01h, 00h, 00h, 00h, 4Ah +31E4:D4DD  09 FF FF E8 D4 00                    db       09h,0FFh,0FFh,0E8h,0D4h, 00h +31E4:D4E3  80 24 04 00 00 00                    db       80h, 24h, 04h, 00h, 00h, 00h +31E4:D4E9  00 27 0B FF FF F6                    db       00h, 27h, 0Bh,0FFh,0FFh,0F6h +31E4:D4EF  D4 00 80 D5 07 00                    db      0D4h, 00h, 80h,0D5h, 07h, 00h +31E4:D4F5  00 00 00 60 A4 FF                    db       00h, 00h, 00h, 60h,0A4h,0FFh +31E4:D4FB  FF 22 D5 6D 23 29                    db      0FFh, 22h,0D5h, 6Dh, 23h, 29h +31E4:D501  09 00 00 00 00 2E                    db       09h, 00h, 00h, 00h, 00h, 2Eh +31E4:D507  89 03 00 00 80 30                    db       89h, 03h, 00h, 00h, 80h, 30h +31E4:D50D  09 04 00                             db       09h, 04h, 00h +31E4:D510  0007[00]                             db      7 dup (0) +31E4:D517  80 2B 09 01 00 00                    db       80h, 2Bh, 09h, 01h, 00h, 00h +31E4:D51D  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:D523  00 2A 09 04 00 00                    db       00h, 2Ah, 09h, 04h, 00h, 00h +31E4:D529  00 2C 09 05 00 70                    db       00h, 2Ch, 09h, 05h, 00h, 70h +31E4:D52F  24 24 04 FF FF 00                    db       24h, 24h, 04h,0FFh,0FFh, 00h +31E4:D535  00 2F 09 FF FF 00                    db       00h, 2Fh, 09h,0FFh,0FFh, 00h +31E4:D53B  00 31 09 FF FF 4E                    db       00h, 31h, 09h,0FFh,0FFh, 4Eh +31E4:D541  D5 00 80 24 04 00                    db      0D5h, 00h, 80h, 24h, 04h, 00h +31E4:D547  00 00 80 14 0B 01                    db       00h, 00h, 80h, 14h, 0Bh, 01h +31E4:D54D  00 00 00 13 0B 01                    db       00h, 00h, 00h, 13h, 0Bh, 01h +31E4:D553  00 00 00 15 0B FF                    db       00h, 00h, 00h, 15h, 0Bh,0FFh +31E4:D559  FF 92 D5 00 00 6D                    db      0FFh, 92h,0D5h, 00h, 00h, 6Dh +31E4:D55F  8B 06 00 00 80 40                    db       8Bh, 06h, 00h, 00h, 80h, 40h +31E4:D565  09 00 00 00 00 4D                    db       09h, 00h, 00h, 00h, 00h, 4Dh +31E4:D56B  09 01 00 00 80 42                    db       09h, 01h, 00h, 00h, 80h, 42h +31E4:D571  09 02 00 00 80 24                    db       09h, 02h, 00h, 00h, 80h, 24h +31E4:D577  04 03 00 00 80 51                    db       04h, 03h, 00h, 00h, 80h, 51h +31E4:D57D  09 04 00 00 80 24                    db       09h, 04h, 00h, 00h, 80h, 24h +31E4:D583  04 05 00 00 80 6F                    db       04h, 05h, 00h, 00h, 80h, 6Fh +31E4:D589  0B 07 00 00 80 24                    db       0Bh, 07h, 00h, 00h, 80h, 24h +31E4:D58F  04 08 00 C8 24 4C                    db       04h, 08h, 00h,0C8h, 24h, 4Ch +31E4:D595  09 02 00 00 00 4E                    db       09h, 02h, 00h, 00h, 00h, 4Eh +31E4:D59B  09 FF FF DF 24 4F                    db       09h,0FFh,0FFh,0DFh, 24h, 4Fh +31E4:D5A1  09 04 00 00 00 50                    db       09h, 04h, 00h, 00h, 00h, 50h +31E4:D5A7  09 05 00 00 00 52                    db       09h, 05h, 00h, 00h, 00h, 52h +31E4:D5AD  09 06 00 00 00 53                    db       09h, 06h, 00h, 00h, 00h, 53h +31E4:D5B3  09 FF FF 00 00 6E                    db       09h,0FFh,0FFh, 00h, 00h, 6Eh +31E4:D5B9  0B 07 00 00 00 70                    db       0Bh, 07h, 00h, 00h, 00h, 70h +31E4:D5BF  0B 08 00 2F 2A 24                    db       0Bh, 08h, 00h, 2Fh, 2Ah, 24h +31E4:D5C5  04 FF FF E2 D5 00                    db       04h,0FFh,0FFh,0E2h,0D5h, 00h +31E4:D5CB  80 48 09 00 00 00                    db       80h, 48h, 09h, 00h, 00h, 00h +31E4:D5D1  00 3A 0A 01 00 00                    db       00h, 3Ah, 0Ah, 01h, 00h, 00h +31E4:D5D7  00 3C 0A 02 00 00                    db       00h, 3Ch, 0Ah, 02h, 00h, 00h +31E4:D5DD  80 3E 0A 03 00 00                    db       80h, 3Eh, 0Ah, 03h, 00h, 00h +31E4:D5E3  00 39 0A 01 00 00                    db       00h, 39h, 0Ah, 01h, 00h, 00h +31E4:D5E9  00 3B 0A FF FF 00                    db       00h, 3Bh, 0Ah,0FFh,0FFh, 00h +31E4:D5EF  00 3D 0A FF FF 00                    db       00h, 3Dh, 0Ah,0FFh,0FFh, 00h +31E4:D5F5  00 3F 0A FF FF 02                    db       00h, 3Fh, 0Ah,0FFh,0FFh, 02h +31E4:D5FB  D6 00 80 D5 07 00                    db      0D6h, 00h, 80h,0D5h, 07h, 00h +31E4:D601  00 00 00 85 A2 FF                    db       00h, 00h, 00h, 85h,0A2h,0FFh +31E4:D607  FF 1C D6 00 00 BD                    db      0FFh, 1Ch,0D6h, 00h, 00h,0BDh +31E4:D60D  08 02 00 00 80 F9                    db       08h, 02h, 00h, 00h, 80h,0F9h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 547 + +31E4:D613  07 03 00                             db       07h, 03h, 00h +31E4:D616  0008[00]                             db      8 dup (0) +31E4:D61E  91 08 00 00 00 00                    db       91h, 08h, 00h, 00h, 00h, 00h +31E4:D624  BA 08 00 00 02 22                    db      0BAh, 08h, 00h, 00h, 02h, 22h +31E4:D62A  95 A2 01 00 00 00                    db       95h,0A2h, 01h, 00h, 00h, 00h +31E4:D630  BE 08 FF FF 42 D6                    db      0BEh, 08h,0FFh,0FFh, 42h,0D6h +31E4:D636  00 00 BD 08 02 00                    db       00h, 00h,0BDh, 08h, 02h, 00h +31E4:D63C  00 80 FB 07 03 00                    db       00h, 80h,0FBh, 07h, 03h, 00h +31E4:D642  00 00 91 08 00 00                    db       00h, 00h, 91h, 08h, 00h, 00h +31E4:D648  00 00 BA 08 00 00                    db       00h, 00h,0BAh, 08h, 00h, 00h +31E4:D64E  02 22 95 A2 01 00                    db       02h, 22h, 95h,0A2h, 01h, 00h +31E4:D654  00 00 BF 08 FF FF                    db       00h, 00h,0BFh, 08h,0FFh,0FFh +31E4:D65A  6E D6 00 00 BD 08                    db       6Eh,0D6h, 00h, 00h,0BDh, 08h +31E4:D660  02 00 00 00 22 08                    db       02h, 00h, 00h, 00h, 22h, 08h +31E4:D666  03 00 00 80 2C 08                    db       03h, 00h, 00h, 80h, 2Ch, 08h +31E4:D66C  04 00 00 00 91 08                    db       04h, 00h, 00h, 00h, 91h, 08h +31E4:D672  00 00 00 00 BA 08                    db       00h, 00h, 00h, 00h,0BAh, 08h +31E4:D678  00 00 02 22 95 A2                    db       00h, 00h, 02h, 22h, 95h,0A2h +31E4:D67E  01 00 00 00 C0 08                    db       01h, 00h, 00h, 00h,0C0h, 08h +31E4:D684  FF FF 00 00 E3 0A                    db      0FFh,0FFh, 00h, 00h,0E3h, 0Ah +31E4:D68A  FF FF 9A D6 00 00                    db      0FFh,0FFh, 9Ah,0D6h, 00h, 00h +31E4:D690  BD 08 02 00 00 80                    db      0BDh, 08h, 02h, 00h, 00h, 80h +31E4:D696  38 08 03 00 00 00                    db       38h, 08h, 03h, 00h, 00h, 00h +31E4:D69C  91 08 00 00 00 00                    db       91h, 08h, 00h, 00h, 00h, 00h +31E4:D6A2  BA 08 00 00 02 22                    db      0BAh, 08h, 00h, 00h, 02h, 22h +31E4:D6A8  95 A2 01 00 00 00                    db       95h,0A2h, 01h, 00h, 00h, 00h +31E4:D6AE  C1 08 FF FF BA D6                    db      0C1h, 08h,0FFh,0FFh,0BAh,0D6h +31E4:D6B4  00 80 24 04 00 00                    db       00h, 80h, 24h, 04h, 00h, 00h +31E4:D6BA  00 00 C2 08 FF FF                    db       00h, 00h,0C2h, 08h,0FFh,0FFh +31E4:D6C0  D4 D6 00 80 CA                       db      0D4h,0D6h, 00h, 80h,0CAh +31E4:D6C5  09                                   db      9 +31E4:D6C6  0009[00]                             db      9 dup (0) +31E4:D6CF  80 24 04                             db       80h, 24h, 04h +31E4:D6D2  01                   data_1167       db      1                       ; Data table (indexed access) +31E4:D6D3  00 00 00 E9 09 02                    db       00h, 00h, 00h,0E9h, 09h, 02h +31E4:D6D9  00 3B 28 24 04 FF                    db       00h, 3Bh, 28h, 24h, 04h,0FFh +31E4:D6DF  FF FA D6 69 23 03                    db      0FFh,0FAh,0D6h, 69h, 23h, 03h +31E4:D6E5  09 00 00 00 00 ED                    db       09h, 00h, 00h, 00h, 00h,0EDh +31E4:D6EB  09 01 00 00 80 EF                    db       09h, 01h, 00h, 00h, 80h,0EFh +31E4:D6F1  09 02 00                             db       09h, 02h, 00h +31E4:D6F4  0008[00]                             db      8 dup (0) +31E4:D6FC  EC 09 FF FF 00 00                    db      0ECh, 09h,0FFh,0FFh, 00h, 00h +31E4:D702  EE 09 FF FF 00 00                    db      0EEh, 09h,0FFh,0FFh, 00h, 00h +31E4:D708  F0 09 FF FF 14 D7                    db      0F0h, 09h,0FFh,0FFh, 14h,0D7h +31E4:D70E  00 80 40 09 00 00                    db       00h, 80h, 40h, 09h, 00h, 00h +31E4:D714  00 00 EB 09 FF FF                    db       00h, 00h,0EBh, 09h,0FFh,0FFh +31E4:D71A  22 D7 00 80 48 09                    db       22h,0D7h, 00h, 80h, 48h, 09h +31E4:D720  00 00 00 00 F1 09                    db       00h, 00h, 00h, 00h,0F1h, 09h +31E4:D726  FF FF 30 D7 00 80                    db      0FFh,0FFh, 30h,0D7h, 00h, 80h +31E4:D72C  92 09 00 00 00 00                    db       92h, 09h, 00h, 00h, 00h, 00h +31E4:D732  F2 09 FF FF 3E D7                    db      0F2h, 09h,0FFh,0FFh, 3Eh,0D7h +31E4:D738  00 80 38 0A 00 00                    db       00h, 80h, 38h, 0Ah, 00h, 00h +31E4:D73E  00 00 0C 0B FF FF                    db       00h, 00h, 0Ch, 0Bh,0FFh,0FFh +31E4:D744  52 D7 00 80 24 04                    db       52h,0D7h, 00h, 80h, 24h, 04h +31E4:D74A  00 00 00 80 24 04                    db       00h, 00h, 00h, 80h, 24h, 04h +31E4:D750  01 00 00 00 B1 08                    db       01h, 00h, 00h, 00h,0B1h, 08h +31E4:D756  01 00 96 2A 24 04                    db       01h, 00h, 96h, 2Ah, 24h, 04h +31E4:D75C  FF FF 7E D7 00 80                    db      0FFh,0FFh, 7Eh,0D7h, 00h, 80h +31E4:D762  B2 08 00 00 00 80                    db      0B2h, 08h, 00h, 00h, 00h, 80h +31E4:D768  B4 08 01 00 72 A2                    db      0B4h, 08h, 01h, 00h, 72h,0A2h +31E4:D76E  B7 08 04 00 00 80                    db      0B7h, 08h, 04h, 00h, 00h, 80h +31E4:D774  24 04 03 00 00 80                    db       24h, 04h, 03h, 00h, 00h, 80h +31E4:D77A  6F 09 02 00 00 00                    db       6Fh, 09h, 02h, 00h, 00h, 00h +31E4:D780  B3 08 01 00 00 00                    db      0B3h, 08h, 01h, 00h, 00h, 00h +31E4:D786  B5 08 02 00 00 00                    db      0B5h, 08h, 02h, 00h, 00h, 00h +31E4:D78C  B8 08 03 00 00 00                    db      0B8h, 08h, 03h, 00h, 00h, 00h +31E4:D792  24 04 FF FF 00 00                    db       24h, 04h,0FFh,0FFh, 00h, 00h +31E4:D798  6E 09 04 00 A4 D7                    db       6Eh, 09h, 04h, 00h,0A4h,0D7h +31E4:D79E  00 80 CA 09 00 00                    db       00h, 80h,0CAh, 09h, 00h, 00h +31E4:D7A4  00 00 31 0B FF FF                    db       00h, 00h, 31h, 0Bh,0FFh,0FFh +31E4:D7AA  B8 D7 69 23 03 09                    db      0B8h,0D7h, 69h, 23h, 03h, 09h +31E4:D7B0  00 00 00 80 75 0A                    db       00h, 00h, 00h, 80h, 75h, 0Ah +31E4:D7B6  01 00 00 00 70 09                    db       01h, 00h, 00h, 00h, 70h, 09h +31E4:D7BC  FF FF 00 00 81 0C                    db      0FFh,0FFh, 00h, 00h, 81h, 0Ch +31E4:D7C2  FF FF CC D7 00 80                    db      0FFh,0FFh,0CCh,0D7h, 00h, 80h +31E4:D7C8  EF 09 00 00 00 00                    db      0EFh, 09h, 00h, 00h, 00h, 00h +31E4:D7CE  32 0B FF FF DA D7                    db       32h, 0Bh,0FFh,0FFh,0DAh,0D7h +31E4:D7D4  00 80 40 09 00 00                    db       00h, 80h, 40h, 09h, 00h, 00h +31E4:D7DA  00 00 33 0B FF FF                    db       00h, 00h, 33h, 0Bh,0FFh,0FFh +31E4:D7E0  E8 D7 00 80 2E 0B                    db      0E8h,0D7h, 00h, 80h, 2Eh, 0Bh +31E4:D7E6  00 00 00 00 34 0B                    db       00h, 00h, 00h, 00h, 34h, 0Bh +31E4:D7EC  FF FF 38 D8 00 00                    db      0FFh,0FFh, 38h,0D8h, 00h, 00h +31E4:D7F2  48 09 00 00 00 80                    db       48h, 09h, 00h, 00h, 00h, 80h +31E4:D7F8  7D 09 01                             db       7Dh, 09h, 01h +31E4:D7FB  0009[00]                             db      9 dup (0) +31E4:D804  7F                   data_1170       db      7Fh +31E4:D805  09 03 00 00 00 80                    db       09h, 03h, 00h, 00h, 00h, 80h +31E4:D80B  09 02 00 00 80 81                    db       09h, 02h, 00h, 00h, 80h, 81h +31E4:D811  09 04 00 00 00 83                    db       09h, 04h, 00h, 00h, 00h, 83h +31E4:D817  09 05 00 00 00 86                    db       09h, 05h, 00h, 00h, 00h, 86h +31E4:D81D  09 06 00 00 80 89                    db       09h, 06h, 00h, 00h, 80h, 89h +31E4:D823  09 07 00 00 80 85                    db       09h, 07h, 00h, 00h, 80h, 85h +31E4:D829  09 08 00 00 80 88                    db       09h, 08h, 00h, 00h, 80h, 88h +31E4:D82F  09 08 00 00 80 61                    db       09h, 08h, 00h, 00h, 80h, 61h +31E4:D835  0B 0B 00 00 00 7C                    db       0Bh, 0Bh, 00h, 00h, 00h, 7Ch +31E4:D83B  09 FF FF 00 00 7E                    db       09h,0FFh,0FFh, 00h, 00h, 7Eh +31E4:D841  09 03 00 8F 25 82                    db       09h, 03h, 00h, 8Fh, 25h, 82h +31E4:D847  09 06 00 82 25 82                    db       09h, 06h, 00h, 82h, 25h, 82h +31E4:D84D  09 06 00 9C 25 82                    db       09h, 06h, 00h, 9Ch, 25h, 82h +31E4:D853  09 06 00 00 00 84                    db       09h, 06h, 00h, 00h, 00h, 84h +31E4:D859  09 09 00 00 00 87                    db       09h, 09h, 00h, 00h, 00h, 87h +31E4:D85F  09 0A 00 00 00 8A                    db       09h, 0Ah, 00h, 00h, 00h, 8Ah +31E4:D865  09 0A 00 24 25 8C                    db       09h, 0Ah, 00h, 24h, 25h, 8Ch +31E4:D86B  09 FF FF 00 00 5F                    db       09h,0FFh,0FFh, 00h, 00h, 5Fh +31E4:D871  0B FF FF 00 00 60                    db       0Bh,0FFh,0FFh, 00h, 00h, 60h +31E4:D877  0B 0B 00 00 00 62                    db       0Bh, 0Bh, 00h, 00h, 00h, 62h +31E4:D87D  0B FF FF A0 D8 A9                    db       0Bh,0FFh,0FFh,0A0h,0D8h,0A9h +31E4:D883  25 63 0B 04 00 BA                    db       25h, 63h, 0Bh, 04h, 00h,0BAh +31E4:D889  25 8D 09 00 00 00                    db       25h, 8Dh, 09h, 00h, 00h, 00h +31E4:D88F  80 48 09 03                          db       80h, 48h, 09h, 03h +31E4:D893  0008[00]                             db      8 dup (0) +31E4:D89B  80 90 09 02 00 87                    db       80h, 90h, 09h, 02h, 00h, 87h +31E4:D8A1  26 8E 09 FF FF 00                    db       26h, 8Eh, 09h,0FFh,0FFh, 00h +31E4:D8A7  00 8F 09 04 00 9E                    db       00h, 8Fh, 09h, 04h, 00h, 9Eh +31E4:D8AD  26 91 09 FF FF 00                    db       26h, 91h, 09h,0FFh,0FFh, 00h +31E4:D8B3  00 7C 09 FF FF 00                    db       00h, 7Ch, 09h,0FFh,0FFh, 00h +31E4:D8B9  00 64 0B FF FF D2                    db       00h, 64h, 0Bh,0FFh,0FFh,0D2h +31E4:D8BF  D8 00 80 92 09 00                    db      0D8h, 00h, 80h, 92h, 09h, 00h +31E4:D8C5  00                                   db       00h +31E4:D8C6  0007[00]                             db      7 dup (0) +31E4:D8CD  80 94 09 01 00 00                    db       80h, 94h, 09h, 01h, 00h, 00h +31E4:D8D3  00 93 09 02 00 CE                    db       00h, 93h, 09h, 02h, 00h,0CEh +31E4:D8D9  26 95 09 FF FF E6                    db       26h, 95h, 09h,0FFh,0FFh,0E6h +31E4:D8DF  D8 00 80 72 0C 00                    db      0D8h, 00h, 80h, 72h, 0Ch, 00h +31E4:D8E5  00 00 00 73 0C FF                    db       00h, 00h, 00h, 73h, 0Ch,0FFh +31E4:D8EB  FF 0C D9 00 80 A7                    db      0FFh, 0Ch,0D9h, 00h, 80h,0A7h +31E4:D8F1  09 00 00 00 80 A9                    db       09h, 00h, 00h, 00h, 80h,0A9h +31E4:D8F7  09 02 00 00 80 24                    db       09h, 02h, 00h, 00h, 80h, 24h +31E4:D8FD  04 03 00 00 80 AC                    db       04h, 03h, 00h, 00h, 80h,0ACh +31E4:D903  09 04 00 00 80 AE                    db       09h, 04h, 00h, 00h, 80h,0AEh +31E4:D909  09 05 00 FD 26 AB                    db       09h, 05h, 00h,0FDh, 26h,0ABh +31E4:D90F  09 FF FF 00 00 A8                    db       09h,0FFh,0FFh, 00h, 00h,0A8h +31E4:D915  09 01 00 00 00 AA                    db       09h, 01h, 00h, 00h, 00h,0AAh +31E4:D91B  09 02 00 38 27 AD                    db       09h, 02h, 00h, 38h, 27h,0ADh +31E4:D921  09 03 00 00 00 24                    db       09h, 03h, 00h, 00h, 00h, 24h +31E4:D927  04 04 00 00 00 AF                    db       04h, 04h, 00h, 00h, 00h,0AFh +31E4:D92D  09 FF FF 00 80 24                    db       09h,0FFh,0FFh, 00h, 80h, 24h +31E4:D933  04 66 D9 00 00 D5                    db       04h, 66h,0D9h, 00h, 00h,0D5h +31E4:D939  09 00 00 00 00 D7                    db       09h, 00h, 00h, 00h, 00h,0D7h +31E4:D93F  09 01 00 00 00 D9                    db       09h, 01h, 00h, 00h, 00h,0D9h +31E4:D945  09 02 00 00 80 DD                    db       09h, 02h, 00h, 00h, 80h,0DDh +31E4:D94B  09 04 00 00 80 DB                    db       09h, 04h, 00h, 00h, 80h,0DBh +31E4:D951  09 03 00 00 00 DF                    db       09h, 03h, 00h, 00h, 00h,0DFh +31E4:D957  09 05 00 00 00 E1                    db       09h, 05h, 00h, 00h, 00h,0E1h +31E4:D95D  09 06 00 00 80 E2                    db       09h, 06h, 00h, 00h, 80h,0E2h +31E4:D963  09 07 00 00 00 D6                    db       09h, 07h, 00h, 00h, 00h,0D6h +31E4:D969  09 FF FF 00 00 74                    db       09h,0FFh,0FFh, 00h, 00h, 74h +31E4:D96F  0C FF FF 00 00 DA                    db       0Ch,0FFh,0FFh, 00h, 00h,0DAh +31E4:D975  09 04 00 00 00 DC                    db       09h, 04h, 00h, 00h, 00h,0DCh +31E4:D97B  09 FF FF 00 00 DE                    db       09h,0FFh,0FFh, 00h, 00h,0DEh +31E4:D981  09 05 00 00 00 E0                    db       09h, 05h, 00h, 00h, 00h,0E0h +31E4:D987  09 FF FF 00 00 E3                    db       09h,0FFh,0FFh, 00h, 00h,0E3h +31E4:D98D  09 FF FF 00 00 E4                    db       09h,0FFh,0FFh, 00h, 00h,0E4h +31E4:D993  09 FF FF B0 D9 00                    db       09h,0FFh,0FFh,0B0h,0D9h, 00h +31E4:D999  00 E5 09 00 00 00                    db       00h,0E5h, 09h, 00h, 00h, 00h +31E4:D99F  80 E4 0A 02 00 00                    db       80h,0E4h, 0Ah, 02h, 00h, 00h +31E4:D9A5  80 E7 09 01 00 00                    db       80h,0E7h, 09h, 01h, 00h, 00h +31E4:D9AB  80 E6 0A 03 00 00                    db       80h,0E6h, 0Ah, 03h, 00h, 00h +31E4:D9B1  00 E6 09 02 00 00                    db       00h,0E6h, 09h, 02h, 00h, 00h +31E4:D9B7  00 E8 09 FF FF 00                    db       00h,0E8h, 09h,0FFh,0FFh, 00h +31E4:D9BD  00 E5 0A 03 00 00                    db       00h,0E5h, 0Ah, 03h, 00h, 00h +31E4:D9C3  00 24 04 FF FF E2                    db       00h, 24h, 04h,0FFh,0FFh,0E2h +31E4:D9C9  D9 00 80 38 0A 00                    db      0D9h, 00h, 80h, 38h, 0Ah, 00h +31E4:D9CF  00 00 80 37 0B 01                    db       00h, 00h, 80h, 37h, 0Bh, 01h +31E4:D9D5  00 00 80 24 04 02                    db       00h, 00h, 80h, 24h, 04h, 02h +31E4:D9DB  00 00 80 6E 09 03                    db       00h, 00h, 80h, 6Eh, 09h, 03h +31E4:D9E1  00 00 00 36 0B 01                    db       00h, 00h, 00h, 36h, 0Bh, 01h +31E4:D9E7  00 00 00 38 0B 02                    db       00h, 00h, 00h, 38h, 0Bh, 02h +31E4:D9ED  00 00 00 39 0B 03                    db       00h, 00h, 00h, 39h, 0Bh, 03h +31E4:D9F3  00 00 00 3A 0B FF                    db       00h, 00h, 00h, 3Ah, 0Bh,0FFh +31E4:D9F9  FF 02 DA 00 80 80                    db      0FFh, 02h,0DAh, 00h, 80h, 80h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 550 + +31E4:D9FF  08 00 00 00 00                       db       08h, 00h, 00h, 00h, 00h +31E4:DA04  81                   data_1173       db      81h +31E4:DA05  08 FF FF 22 DA B5                    db       08h,0FFh,0FFh, 22h,0DAh,0B5h +31E4:DA0B  27 B0 09 00 00 D5                    db       27h,0B0h, 09h, 00h, 00h,0D5h +31E4:DA11  A7 B2 09 01 00 00                    db      0A7h,0B2h, 09h, 01h, 00h, 00h +31E4:DA17  80 B4 09 02 00 00                    db       80h,0B4h, 09h, 02h, 00h, 00h +31E4:DA1D  80 B6 09 03 00 00                    db       80h,0B6h, 09h, 03h, 00h, 00h +31E4:DA23  00 B1 09 FF FF A9                    db       00h,0B1h, 09h,0FFh,0FFh,0A9h +31E4:DA29  2A B3 09 02 00 00                    db       2Ah,0B3h, 09h, 02h, 00h, 00h +31E4:DA2F  00 B5 09 03 00 00                    db       00h,0B5h, 09h, 03h, 00h, 00h +31E4:DA35  00 24 04 FF FF 5A                    db       00h, 24h, 04h,0FFh,0FFh, 5Ah +31E4:DA3B  DA 00 80 D5 07 00                    db      0DAh, 00h, 80h,0D5h, 07h, 00h +31E4:DA41  00 00 80 DE 08 01                    db       00h, 00h, 80h,0DEh, 08h, 01h +31E4:DA47  00 00 00 E0 08 02                    db       00h, 00h, 00h,0E0h, 08h, 02h +31E4:DA4D  00 00 80 E2 08 03                    db       00h, 00h, 80h,0E2h, 08h, 03h +31E4:DA53  00 00 80 24 04 04                    db       00h, 00h, 80h, 24h, 04h, 04h +31E4:DA59  00 00 00 B5 A2 01                    db       00h, 00h, 00h,0B5h,0A2h, 01h +31E4:DA5F  00 00 00 DF 08 02                    db       00h, 00h, 00h,0DFh, 08h, 02h +31E4:DA65  00 00 00 E1 08 04                    db       00h, 00h, 00h,0E1h, 08h, 04h +31E4:DA6B  00 00 00 E3 08 FF                    db       00h, 00h, 00h,0E3h, 08h,0FFh +31E4:DA71  FF 58 28 24 04 FF                    db      0FFh, 58h, 28h, 24h, 04h,0FFh +31E4:DA77  FF 92 DA 00 00 F9                    db      0FFh, 92h,0DAh, 00h, 00h,0F9h +31E4:DA7D  07 00 00 71 A8 F4                    db       07h, 00h, 00h, 71h,0A8h,0F4h +31E4:DA83  09 01                                db       09h, 01h +31E4:DA85  00 00 00 00                          db      0, 0, 0, 0 +31E4:DA89  0000                 data_1175       dw      0                       ; Data table (indexed access) +31E4:DA8B  00 00 80 24 04 02                    db       00h, 00h, 80h, 24h, 04h, 02h +31E4:DA91  00 00 00 E4 08 FF                    db       00h, 00h, 00h,0E4h, 08h,0FFh +31E4:DA97  FF 00 00 E1 08 03                    db      0FFh, 00h, 00h,0E1h, 08h, 03h +31E4:DA9D  00 58 28 24 04 FF                    db       00h, 58h, 28h, 24h, 04h,0FFh +31E4:DAA3  FF BE DA 00 00 FB                    db      0FFh,0BEh,0DAh, 00h, 00h,0FBh +31E4:DAA9  07 00 00 71 A8 F4                    db       07h, 00h, 00h, 71h,0A8h,0F4h +31E4:DAAF  09 01                                db       09h, 01h +31E4:DAB1  0008[00]                             db      8 dup (0) +31E4:DAB9  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:DABF  00 E5 08 FF FF 00                    db       00h,0E5h, 08h,0FFh,0FFh, 00h +31E4:DAC5  00 E1 08 03 00 58                    db       00h,0E1h, 08h, 03h, 00h, 58h +31E4:DACB  28 24 04 FF FF EA                    db       28h, 24h, 04h,0FFh,0FFh,0EAh +31E4:DAD1  DA 00 00 22 08 00                    db      0DAh, 00h, 00h, 22h, 08h, 00h +31E4:DAD7  00 71 28 F4 09 02                    db       00h, 71h, 28h,0F4h, 09h, 02h +31E4:DADD  00 00 80 2C 08 01                    db       00h, 00h, 80h, 2Ch, 08h, 01h +31E4:DAE3  00 00 80 24 04 03                    db       00h, 00h, 80h, 24h, 04h, 03h +31E4:DAE9  00 00 00 E6 08 FF                    db       00h, 00h, 00h,0E6h, 08h,0FFh +31E4:DAEF  FF 00 00 81 0A FF                    db      0FFh, 00h, 00h, 81h, 0Ah,0FFh +31E4:DAF5  FF 00 00 E1 08 03                    db      0FFh, 00h, 00h,0E1h, 08h, 03h +31E4:DAFB  00 58 28 24 04 FF                    db       00h, 58h, 28h, 24h, 04h,0FFh +31E4:DB01  FF 16 DB 71 28 F4                    db      0FFh, 16h,0DBh, 71h, 28h,0F4h +31E4:DB07  09 01 00 00 80 38                    db       09h, 01h, 00h, 00h, 80h, 38h +31E4:DB0D  08 00 00 00 80 24                    db       08h, 00h, 00h, 00h, 80h, 24h +31E4:DB13  04 02 00 00 00 E7                    db       04h, 02h, 00h, 00h, 00h,0E7h +31E4:DB19  08 FF FF 00 00 E1                    db       08h,0FFh,0FFh, 00h, 00h,0E1h +31E4:DB1F  08 02 00 58 28 24                    db       08h, 02h, 00h, 58h, 28h, 24h +31E4:DB25  04 FF FF 30 DB 00                    db       04h,0FFh,0FFh, 30h,0DBh, 00h +31E4:DB2B  80 F5 09 00 00 00                    db       80h,0F5h, 09h, 00h, 00h, 00h +31E4:DB31  00 F6 09 FF FF 56                    db       00h,0F6h, 09h,0FFh,0FFh, 56h +31E4:DB37  DB 00 80 24 04 00                    db      0DBh, 00h, 80h, 24h, 04h, 00h +31E4:DB3D  00 00 00 EE 08 01                    db       00h, 00h, 00h,0EEh, 08h, 01h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 551 + +31E4:DB43  00 00 00 F1 88 02                    db       00h, 00h, 00h,0F1h, 88h, 02h +31E4:DB49  00 00 80 EF 08 03                    db       00h, 00h, 80h,0EFh, 08h, 03h +31E4:DB4F  00 00 80 24 04 04                    db       00h, 00h, 80h, 24h, 04h, 04h +31E4:DB55  00 00 00 C5 A2 01                    db       00h, 00h, 00h,0C5h,0A2h, 01h +31E4:DB5B  00 00 00 24 04 FF                    db       00h, 00h, 00h, 24h, 04h,0FFh +31E4:DB61  FF 00 00 F2 08 01                    db      0FFh, 00h, 00h,0F2h, 08h, 01h +31E4:DB67  00 00 00 24 04 04                    db       00h, 00h, 00h, 24h, 04h, 04h +31E4:DB6D  00 F6 22 24 04 FF                    db       00h,0F6h, 22h, 24h, 04h,0FFh +31E4:DB73  FF 88 DB 00 80 24                    db      0FFh, 88h,0DBh, 00h, 80h, 24h +31E4:DB79  04 00 00 00 80 3C                    db       04h, 00h, 00h, 00h, 80h, 3Ch +31E4:DB7F  0B 01 00 00 80 3E                    db       0Bh, 01h, 00h, 00h, 80h, 3Eh +31E4:DB85  0B 02 00 00 00 3B                    db       0Bh, 02h, 00h, 00h, 00h, 3Bh +31E4:DB8B  0B 01 00 00 00 3D                    db       0Bh, 01h, 00h, 00h, 00h, 3Dh +31E4:DB91  0B 02 00 00 00 3F                    db       0Bh, 02h, 00h, 00h, 00h, 3Fh +31E4:DB97  0B FF FF A8 DB 69                    db       0Bh,0FFh,0FFh,0A8h,0DBh, 69h +31E4:DB9D  23 03 09 00 00 00                    db       23h, 03h, 09h, 00h, 00h, 00h +31E4:DBA3  80 F8 09 01 00 00                    db       80h,0F8h, 09h, 01h, 00h, 00h +31E4:DBA9  00 F7 09 FF FF 00                    db       00h,0F7h, 09h,0FFh,0FFh, 00h +31E4:DBAF  00 F9 09 FF FF C8                    db       00h,0F9h, 09h,0FFh,0FFh,0C8h +31E4:DBB5  DB 00 00 40 09 00                    db      0DBh, 00h, 00h, 40h, 09h, 00h +31E4:DBBB  00 00 80 75 0A 01                    db       00h, 00h, 80h, 75h, 0Ah, 01h +31E4:DBC1  00 00 80 29 0B 02                    db       00h, 00h, 80h, 29h, 0Bh, 02h +31E4:DBC7  00 00 00 AC 0A FF                    db       00h, 00h, 00h,0ACh, 0Ah,0FFh +31E4:DBCD  FF 00 00 28 0B 02                    db      0FFh, 00h, 00h, 28h, 0Bh, 02h +31E4:DBD3  00 00 00 2A 0B FF                    db       00h, 00h, 00h, 2Ah, 0Bh,0FFh +31E4:DBD9  FF E2 DB 00 80 48                    db      0FFh,0E2h,0DBh, 00h, 80h, 48h +31E4:DBDF  09 00 00 00 00 2B                    db       09h, 00h, 00h, 00h, 00h, 2Bh +31E4:DBE5  0B FF FF F0 DB 00                    db       0Bh,0FFh,0FFh,0F0h,0DBh, 00h +31E4:DBEB  80 2E 0B 00 00 00                    db       80h, 2Eh, 0Bh, 00h, 00h, 00h +31E4:DBF1  00 2C 0B FF FF FE                    db       00h, 2Ch, 0Bh,0FFh,0FFh,0FEh +31E4:DBF7  DB 00 80 92 09 00                    db      0DBh, 00h, 80h, 92h, 09h, 00h +31E4:DBFD  00 00 00 2D 0B FF                    db       00h, 00h, 00h, 2Dh, 0Bh,0FFh +31E4:DC03  FF 12 DC 00 80 38                    db      0FFh, 12h,0DCh, 00h, 80h, 38h +31E4:DC09  0A 00 00 00 80 2F                    db       0Ah, 00h, 00h, 00h, 80h, 2Fh +31E4:DC0F  0B 01 00 00 00 09                    db       0Bh, 01h, 00h, 00h, 00h, 09h +31E4:DC15  0B 01 00 00 00 30                    db       0Bh, 01h, 00h, 00h, 00h, 30h +31E4:DC1B  0B FF FF 50 DC 00                    db       0Bh,0FFh,0FFh, 50h,0DCh, 00h +31E4:DC21  80 D5 07 00 00 00                    db       80h,0D5h, 07h, 00h, 00h, 00h +31E4:DC27  80 5E 0A 01 00 00                    db       80h, 5Eh, 0Ah, 01h, 00h, 00h +31E4:DC2D  80 60 0A 02 00 00                    db       80h, 60h, 0Ah, 02h, 00h, 00h +31E4:DC33  80 62 0A 03 00 00                    db       80h, 62h, 0Ah, 03h, 00h, 00h +31E4:DC39  80 24 04 04 00 00                    db       80h, 24h, 04h, 04h, 00h, 00h +31E4:DC3F  80 65 0A 05 00 00                    db       80h, 65h, 0Ah, 05h, 00h, 00h +31E4:DC45  80 67 0A 06 00 00                    db       80h, 67h, 0Ah, 06h, 00h, 00h +31E4:DC4B  80 69 0A 07 00 00                    db       80h, 69h, 0Ah, 07h, 00h, 00h +31E4:DC51  00 3F A2 01 00 00                    db       00h, 3Fh,0A2h, 01h, 00h, 00h +31E4:DC57  00 5F 0A 02 00 00                    db       00h, 5Fh, 0Ah, 02h, 00h, 00h +31E4:DC5D  00 61 0A 03 00 00                    db       00h, 61h, 0Ah, 03h, 00h, 00h +31E4:DC63  00 63 0A 04 00 00                    db       00h, 63h, 0Ah, 04h, 00h, 00h +31E4:DC69  00 64 0A 05 00 00                    db       00h, 64h, 0Ah, 05h, 00h, 00h +31E4:DC6F  00 66 0A 06 00 00                    db       00h, 66h, 0Ah, 06h, 00h, 00h +31E4:DC75  00 68 0A 07 00 00                    db       00h, 68h, 0Ah, 07h, 00h, 00h +31E4:DC7B  00 6A 0A FF FF 88                    db       00h, 6Ah, 0Ah,0FFh,0FFh, 88h +31E4:DC81  DC 00 80 F9 07 00                    db      0DCh, 00h, 80h,0F9h, 07h, 00h +31E4:DC87  00 00 00 4F A2 FF                    db       00h, 00h, 00h, 4Fh,0A2h,0FFh +31E4:DC8D  FF 96 DC 00 80 FB                    db      0FFh, 96h,0DCh, 00h, 80h,0FBh +31E4:DC93  07 00 00 00 00 AB                    db       07h, 00h, 00h, 00h, 00h,0ABh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 552 + +31E4:DC99  08 FF FF AA DC 00                    db       08h,0FFh,0FFh,0AAh,0DCh, 00h +31E4:DC9F  00 22 08 00 00 00                    db       00h, 22h, 08h, 00h, 00h, 00h +31E4:DCA5  80 2C 08 01 00 00                    db       80h, 2Ch, 08h, 01h, 00h, 00h +31E4:DCAB  00 AC 08 FF FF 00                    db       00h,0ACh, 08h,0FFh,0FFh, 00h +31E4:DCB1  00 6B 0A FF FF BE                    db       00h, 6Bh, 0Ah,0FFh,0FFh,0BEh +31E4:DCB7  DC 00 80 38 08 00                    db      0DCh, 00h, 80h, 38h, 08h, 00h +31E4:DCBD  00 00 00 AD 08 FF                    db       00h, 00h, 00h,0ADh, 08h,0FFh +31E4:DCC3  FF D2 DC 00 80 24                    db      0FFh,0D2h,0DCh, 00h, 80h, 24h +31E4:DCC9  04 00 00 00 80 AF                    db       04h, 00h, 00h, 00h, 80h,0AFh +31E4:DCCF  08 01 00 00 00 AE                    db       08h, 01h, 00h, 00h, 00h,0AEh +31E4:DCD5  08 01 00 00 00 B0                    db       08h, 01h, 00h, 00h, 00h,0B0h +31E4:DCDB  08 FF FF E6 DC 00                    db       08h,0FFh,0FFh,0E6h,0DCh, 00h +31E4:DCE1  80 0D 0B 00 00 00                    db       80h, 0Dh, 0Bh, 00h, 00h, 00h +31E4:DCE7  00 FD 0B FF FF 00                    db       00h,0FDh, 0Bh,0FFh,0FFh, 00h +31E4:DCED  DD 69 A3 03                          db      0DDh, 69h,0A3h, 03h +31E4:DCF1  09                                   db      9 +31E4:DCF2  0009[00]                             db      9 dup (0) +31E4:DCFB  80 6D 0A 01 00 00                    db       80h, 6Dh, 0Ah, 01h, 00h, 00h +31E4:DD01  00 6C 0A 02 00 00                    db       00h, 6Ch, 0Ah, 02h, 00h, 00h +31E4:DD07  00 6E 0A FF FF 20                    db       00h, 6Eh, 0Ah,0FFh,0FFh, 20h +31E4:DD0D  DD 00 80 40 09 00                    db      0DDh, 00h, 80h, 40h, 09h, 00h +31E4:DD13  00 00 00 70 0A 01                    db       00h, 00h, 00h, 70h, 0Ah, 01h +31E4:DD19  00 00 80 72 0A 02                    db       00h, 00h, 80h, 72h, 0Ah, 02h +31E4:DD1F  00 00 00 6F 0A 01                    db       00h, 00h, 00h, 6Fh, 0Ah, 01h +31E4:DD25  00 00 00 71 0A FF                    db       00h, 00h, 00h, 71h, 0Ah,0FFh +31E4:DD2B  FF 00 00 73 0A FF                    db      0FFh, 00h, 00h, 73h, 0Ah,0FFh +31E4:DD31  FF 3A DD 00 80 48                    db      0FFh, 3Ah,0DDh, 00h, 80h, 48h +31E4:DD37  09 00 00 00 00 62                    db       09h, 00h, 00h, 00h, 00h, 62h +31E4:DD3D  0C FF FF 48 DD 00                    db       0Ch,0FFh,0FFh, 48h,0DDh, 00h +31E4:DD43  80 92 09 00 00 00                    db       80h, 92h, 09h, 00h, 00h, 00h +31E4:DD49  00 63 0C FF FF 62                    db       00h, 63h, 0Ch,0FFh,0FFh, 62h +31E4:DD4F  DD 00 00 38 0A 00                    db      0DDh, 00h, 00h, 38h, 0Ah, 00h +31E4:DD55  00 00 80 1F 0B 01                    db       00h, 00h, 80h, 1Fh, 0Bh, 01h +31E4:DD5B  00 00 80 66 0C 02                    db       00h, 00h, 80h, 66h, 0Ch, 02h +31E4:DD61  00 00 00 64 0C FF                    db       00h, 00h, 00h, 64h, 0Ch,0FFh +31E4:DD67  FF 00 00                             db      0FFh, 00h, 00h +31E4:DD6A  65                   data_1178       db      65h                     ; Data table (indexed access) +31E4:DD6B  0C 02 00 00 00 67                    db       0Ch, 02h, 00h, 00h, 00h, 67h +31E4:DD71  0C FF FF 7C DD 00                    db       0Ch,0FFh,0FFh, 7Ch,0DDh, 00h +31E4:DD77  80 D5 07 00 00 00                    db       80h,0D5h, 07h, 00h, 00h, 00h +31E4:DD7D  00 A4 A1 FF FF 90                    db       00h,0A4h,0A1h,0FFh,0FFh, 90h +31E4:DD83  DD 00 00 90 08 02                    db      0DDh, 00h, 00h, 90h, 08h, 02h +31E4:DD89  00 00 80 F9 07 03                    db       00h, 00h, 80h,0F9h, 07h, 03h +31E4:DD8F  00 00 00 91 08 00                    db       00h, 00h, 00h, 91h, 08h, 00h +31E4:DD95  00 00 00 BA 08 FF                    db       00h, 00h, 00h,0BAh, 08h,0FFh +31E4:DD9B  FF 02 22 B4 A1 01                    db      0FFh, 02h, 22h,0B4h,0A1h, 01h +31E4:DDA1  00 E0 21 1C A2 FF                    db       00h,0E0h, 21h, 1Ch,0A2h,0FFh +31E4:DDA7  FF B6 DD 00 00 90                    db      0FFh,0B6h,0DDh, 00h, 00h, 90h +31E4:DDAD  08 02 00 00 80 FB                    db       08h, 02h, 00h, 00h, 80h,0FBh +31E4:DDB3  07 03 00 00 00 91                    db       07h, 03h, 00h, 00h, 00h, 91h +31E4:DDB9  08 00 00 00 00 BA                    db       08h, 00h, 00h, 00h, 00h,0BAh +31E4:DDBF  08 FF FF 02 22 B4                    db       08h,0FFh,0FFh, 02h, 22h,0B4h +31E4:DDC5  A1 01 00 E0 21 96                    db      0A1h, 01h, 00h,0E0h, 21h, 96h +31E4:DDCB  08 FF FF E8 DD 00                    db       08h,0FFh,0FFh,0E8h,0DDh, 00h +31E4:DDD1  00 90 08 02 00 00                    db       00h, 90h, 08h, 02h, 00h, 00h +31E4:DDD7  80 22 08 03 00                       db       80h, 22h, 08h, 03h, 00h +31E4:DDDC  0007[00]                             db      7 dup (0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 553 + +31E4:DDE3  80 98 08 04 00 00                    db       80h, 98h, 08h, 04h, 00h, 00h +31E4:DDE9  00 91 08 00 00 00                    db       00h, 91h, 08h, 00h, 00h, 00h +31E4:DDEF  00 BA 08 FF FF 02                    db       00h,0BAh, 08h,0FFh,0FFh, 02h +31E4:DDF5  22 B4 A1 01 00 E0                    db       22h,0B4h,0A1h, 01h, 00h,0E0h +31E4:DDFB  21 97 08 03 00 00                    db       21h, 97h, 08h, 03h, 00h, 00h +31E4:DE01  00 99 08 FF FF 26                    db       00h, 99h, 08h,0FFh,0FFh, 26h +31E4:DE07  DE 00 00 90 08 02                    db      0DEh, 00h, 00h, 90h, 08h, 02h +31E4:DE0D  00 00 80 38 08 03                    db       00h, 00h, 80h, 38h, 08h, 03h +31E4:DE13  00                                   db       00h +31E4:DE14  0008[00]                             db      8 dup (0) +31E4:DE1C  9B 08 04 00 00 80                    db       9Bh, 08h, 04h, 00h, 00h, 80h +31E4:DE22  9D 08 05 00 00 00                    db       9Dh, 08h, 05h, 00h, 00h, 00h +31E4:DE28  91 08 00 00 00 00                    db       91h, 08h, 00h, 00h, 00h, 00h +31E4:DE2E  BA 08 FF FF 02 22                    db      0BAh, 08h,0FFh,0FFh, 02h, 22h +31E4:DE34  B4 A1 01 00 E0 21                    db      0B4h,0A1h, 01h, 00h,0E0h, 21h +31E4:DE3A  9A 08 03 00 00 00                    db       9Ah, 08h, 03h, 00h, 00h, 00h +31E4:DE40  9C 08 FF FF 00 00                    db       9Ch, 08h,0FFh,0FFh, 00h, 00h +31E4:DE46  9E 08 FF FF 6A DE                    db       9Eh, 08h,0FFh,0FFh, 6Ah,0DEh +31E4:DE4C  00 80 24 04 00 00                    db       00h, 80h, 24h, 04h, 00h, 00h +31E4:DE52  00 00 A0 08 01 00                    db       00h, 00h,0A0h, 08h, 01h, 00h +31E4:DE58  00 80 2D 0A 03 00                    db       00h, 80h, 2Dh, 0Ah, 03h, 00h +31E4:DE5E  0007[00]                             db      7 dup (0) +31E4:DE65  80 A2 08 02 00 00                    db       80h,0A2h, 08h, 02h, 00h, 00h +31E4:DE6B  00 9F 08 01 00 00                    db       00h, 9Fh, 08h, 01h, 00h, 00h +31E4:DE71  00 A1 08 04 00 00                    db       00h,0A1h, 08h, 04h, 00h, 00h +31E4:DE77  00 A3 08 FF FF 00                    db       00h,0A3h, 08h,0FFh,0FFh, 00h +31E4:DE7D  00 2E 0A FF FF A2                    db       00h, 2Eh, 0Ah,0FFh,0FFh,0A2h +31E4:DE83  DE 00 80 24 04 02                    db      0DEh, 00h, 80h, 24h, 04h, 02h +31E4:DE89  00 00 00 CA 09 04                    db       00h, 00h, 00h,0CAh, 09h, 04h +31E4:DE8F  00 00 80 90 08 06                    db       00h, 00h, 80h, 90h, 08h, 06h +31E4:DE95  00                                   db       00h +31E4:DE96  0007[00]                             db      7 dup (0) +31E4:DE9D  80 CA 09 05 00 00                    db       80h,0CAh, 09h, 05h, 00h, 00h +31E4:DEA3  00 91 08 01 00 00                    db       00h, 91h, 08h, 01h, 00h, 00h +31E4:DEA9  00 BA 08 FF FF C7                    db       00h,0BAh, 08h,0FFh,0FFh,0C7h +31E4:DEAF  28 31 0A 01 00 00                    db       28h, 31h, 0Ah, 01h, 00h, 00h +31E4:DEB5  00 2F 0A 04 00 E0                    db       00h, 2Fh, 0Ah, 04h, 00h,0E0h +31E4:DEBB  21 32 0A FF FF 00                    db       21h, 32h, 0Ah,0FFh,0FFh, 00h +31E4:DEC1  00 30 0A FF FF 02                    db       00h, 30h, 0Ah,0FFh,0FFh, 02h +31E4:DEC7  22 B4 A1 01 00 E0                    db       22h,0B4h,0A1h, 01h, 00h,0E0h +31E4:DECD  DE 69 23 03 09 02                    db      0DEh, 69h, 23h, 03h, 09h, 02h +31E4:DED3  00 00 00 40 09 03                    db       00h, 00h, 00h, 40h, 09h, 03h +31E4:DED9  00 00 80 90 08 04                    db       00h, 00h, 80h, 90h, 08h, 04h +31E4:DEDF  00 00 00 91 08 00                    db       00h, 00h, 00h, 91h, 08h, 00h +31E4:DEE5  00 00 00 BA 08 FF                    db       00h, 00h, 00h,0BAh, 08h,0FFh +31E4:DEEB  FF 00 00 33 0A FF                    db      0FFh, 00h, 00h, 33h, 0Ah,0FFh +31E4:DEF1  FF E0 21 34 0A FF                    db      0FFh,0E0h, 21h, 34h, 0Ah,0FFh +31E4:DEF7  FF 02 22 B4 A1 00                    db      0FFh, 02h, 22h,0B4h,0A1h, 00h +31E4:DEFD  00 0C DF 00 00 90                    db       00h, 0Ch,0DFh, 00h, 00h, 90h +31E4:DF03  08 03 00 00 80 48                    db       08h, 03h, 00h, 00h, 80h, 48h +31E4:DF09  09 02 00 00 00 91                    db       09h, 02h, 00h, 00h, 00h, 91h +31E4:DF0F  08 00 00 00 00 BA                    db       08h, 00h, 00h, 00h, 00h,0BAh +31E4:DF15  08 FF FF E0 21 35                    db       08h,0FFh,0FFh,0E0h, 21h, 35h +31E4:DF1B  0A FF FF 02 22 B4                    db       0Ah,0FFh,0FFh, 02h, 22h,0B4h +31E4:DF21  A1 00 00 32 DF 00                    db      0A1h, 00h, 00h, 32h,0DFh, 00h +31E4:DF27  00 90 08 03 00 00                    db       00h, 90h, 08h, 03h, 00h, 00h +31E4:DF2D  80 92 09 02 00 00                    db       80h, 92h, 09h, 02h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 554 + +31E4:DF33  00 91 08 00 00 00                    db       00h, 91h, 08h, 00h, 00h, 00h +31E4:DF39  00 BA 08 FF FF E0                    db       00h,0BAh, 08h,0FFh,0FFh,0E0h +31E4:DF3F  21 36 0A FF FF 02                    db       21h, 36h, 0Ah,0FFh,0FFh, 02h +31E4:DF45  22 B4 A1 00 00 58                    db       22h,0B4h,0A1h, 00h, 00h, 58h +31E4:DF4B  DF 00 00 90 08 03                    db      0DFh, 00h, 00h, 90h, 08h, 03h +31E4:DF51  00 00 80 38 0A 02                    db       00h, 00h, 80h, 38h, 0Ah, 02h +31E4:DF57  00 00 00 91 08 00                    db       00h, 00h, 00h, 91h, 08h, 00h +31E4:DF5D  00 00 00 BA 08 FF                    db       00h, 00h, 00h,0BAh, 08h,0FFh +31E4:DF63  FF E0 21 37 0A FF                    db      0FFh,0E0h, 21h, 37h, 0Ah,0FFh +31E4:DF69  FF 02 22 B4 A1 00                    db      0FFh, 02h, 22h,0B4h,0A1h, 00h +31E4:DF6F  00 7E DF 00 80 D5                    db       00h, 7Eh,0DFh, 00h, 80h,0D5h +31E4:DF75  07 00 00 00 80 20                    db       07h, 00h, 00h, 00h, 80h, 20h +31E4:DF7B  08 01 00 00 00 49                    db       08h, 01h, 00h, 00h, 00h, 49h +31E4:DF81  A1 01 00 00 00 21                    db      0A1h, 01h, 00h, 00h, 00h, 21h +31E4:DF87  08 FF FF 92 DF 00                    db       08h,0FFh,0FFh, 92h,0DFh, 00h +31E4:DF8D  80 F9 07 00 00 00                    db       80h,0F9h, 07h, 00h, 00h, 00h +31E4:DF93  00 59 08 FF FF A0                    db       00h, 59h, 08h,0FFh,0FFh,0A0h +31E4:DF99  DF 00 80 FB 07 00                    db      0DFh, 00h, 80h,0FBh, 07h, 00h +31E4:DF9F  00 00 00 5A 08 FF                    db       00h, 00h, 00h, 5Ah, 08h,0FFh +31E4:DFA5  FF C6 DF 00 00 22                    db      0FFh,0C6h,0DFh, 00h, 00h, 22h +31E4:DFAB  08 00 00 00 80 2C                    db       08h, 00h, 00h, 00h, 80h, 2Ch +31E4:DFB1  08 01 00 00 80 25                    db       08h, 01h, 00h, 00h, 80h, 25h +31E4:DFB7  08 02 00 00 80 24                    db       08h, 02h, 00h, 00h, 80h, 24h +31E4:DFBD  04 03 00 00 80 24                    db       04h, 03h, 00h, 00h, 80h, 24h +31E4:DFC3  04 04 00 00 00 23                    db       04h, 04h, 00h, 00h, 00h, 23h +31E4:DFC9  08 FF FF 72 21 24                    db       08h,0FFh,0FFh, 72h, 21h, 24h +31E4:DFCF  08 02 00 00 00 26                    db       08h, 02h, 00h, 00h, 00h, 26h +31E4:DFD5  08 03 00 00 00 27                    db       08h, 03h, 00h, 00h, 00h, 27h +31E4:DFDB  08 04 00 59 21 24                    db       08h, 04h, 00h, 59h, 21h, 24h +31E4:DFE1  04 FF FF EC DF 00                    db       04h,0FFh,0FFh,0ECh,0DFh, 00h +31E4:DFE7  80 38 08 00 00 00                    db       80h, 38h, 08h, 00h, 00h, 00h +31E4:DFED  00 A4 08 FF FF 00                    db       00h,0A4h, 08h,0FFh,0FFh, 00h +31E4:DFF3  E0 00 80 24 04 00                    db      0E0h, 00h, 80h, 24h, 04h, 00h +31E4:DFF9  00 00 80 41 0A 01                    db       00h, 00h, 80h, 41h, 0Ah, 01h +31E4:DFFF  00 00 00 40 0A 01                    db       00h, 00h, 00h, 40h, 0Ah, 01h +31E4:E005  00 00 00 42 0A FF                    db       00h, 00h, 00h, 42h, 0Ah,0FFh +31E4:E00B  FF 1A E0 00 80 43                    db      0FFh, 1Ah,0E0h, 00h, 80h, 43h +31E4:E011  0A 00 00 00 80 45                    db       0Ah, 00h, 00h, 00h, 80h, 45h +31E4:E017  0A 01 00 00 00 44                    db       0Ah, 01h, 00h, 00h, 00h, 44h +31E4:E01D  0A 01 00 00 00 46                    db       0Ah, 01h, 00h, 00h, 00h, 46h +31E4:E023  0A FF FF 2E E0 00                    db       0Ah,0FFh,0FFh, 2Eh,0E0h, 00h +31E4:E029  80 CA 09 00 00 00                    db       80h,0CAh, 09h, 00h, 00h, 00h +31E4:E02F  00 74 0A FF FF 54                    db       00h, 74h, 0Ah,0FFh,0FFh, 54h +31E4:E035  E0 69 23 03 09 00                    db      0E0h, 69h, 23h, 03h, 09h, 00h +31E4:E03B  00 00 80 75 0A 01                    db       00h, 00h, 80h, 75h, 0Ah, 01h +31E4:E041  00 00 80 E7 0A 02                    db       00h, 00h, 80h,0E7h, 0Ah, 02h +31E4:E047  00 00 80 E9 0A 03                    db       00h, 00h, 80h,0E9h, 0Ah, 03h +31E4:E04D  00 00 80 EB 0A 04                    db       00h, 00h, 80h,0EBh, 0Ah, 04h +31E4:E053  00 00 00 47 0A FF                    db       00h, 00h, 00h, 47h, 0Ah,0FFh +31E4:E059  FF 00 00 76 0A 02                    db      0FFh, 00h, 00h, 76h, 0Ah, 02h +31E4:E05F  00 00 00 E8 0A 03                    db       00h, 00h, 00h,0E8h, 0Ah, 03h +31E4:E065  00 00 00 EA 0A 04                    db       00h, 00h, 00h,0EAh, 0Ah, 04h +31E4:E06B  00 00 00 EC 0A FF                    db       00h, 00h, 00h,0ECh, 0Ah,0FFh +31E4:E071  FF 86 E0 00 80 EF                    db      0FFh, 86h,0E0h, 00h, 80h,0EFh +31E4:E077  09 00 00 00 00 49                    db       09h, 00h, 00h, 00h, 00h, 49h +31E4:E07D  0A 01 00 00 80 4B                    db       0Ah, 01h, 00h, 00h, 80h, 4Bh +31E4:E083  0A 02 00 00 00 48                    db       0Ah, 02h, 00h, 00h, 00h, 48h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 555 + +31E4:E089  0A 01 00 00 00 4A                    db       0Ah, 01h, 00h, 00h, 00h, 4Ah +31E4:E08F  0A FF FF 00 00 4C                    db       0Ah,0FFh,0FFh, 00h, 00h, 4Ch +31E4:E095  0A FF FF A6 E0 00                    db       0Ah,0FFh,0FFh,0A6h,0E0h, 00h +31E4:E09B  80 40 09 00 00 00                    db       80h, 40h, 09h, 00h, 00h, 00h +31E4:E0A1  80 4E 0A 01 00 00                    db       80h, 4Eh, 0Ah, 01h, 00h, 00h +31E4:E0A7  00 4D 0A 01 00 00                    db       00h, 4Dh, 0Ah, 01h, 00h, 00h +31E4:E0AD  00 4F 0A FF FF C6                    db       00h, 4Fh, 0Ah,0FFh,0FFh,0C6h +31E4:E0B3  E0 00 80 48 09 00                    db      0E0h, 00h, 80h, 48h, 09h, 00h +31E4:E0B9  00 00 80 24 04 01                    db       00h, 00h, 80h, 24h, 04h, 01h +31E4:E0BF  00 00 80 52 0A 02                    db       00h, 00h, 80h, 52h, 0Ah, 02h +31E4:E0C5  00 00 00 50 0A 01                    db       00h, 00h, 00h, 50h, 0Ah, 01h +31E4:E0CB  00 00 00 51 0A 02                    db       00h, 00h, 00h, 51h, 0Ah, 02h +31E4:E0D1  00 00 00 53 0A FF                    db       00h, 00h, 00h, 53h, 0Ah,0FFh +31E4:E0D7  FF F2 E0 00 80 97                    db      0FFh,0F2h,0E0h, 00h, 80h, 97h +31E4:E0DD  09 00 00 00 00 55                    db       09h, 00h, 00h, 00h, 00h, 55h +31E4:E0E3  0A 01 00 00 00 57                    db       0Ah, 01h, 00h, 00h, 00h, 57h +31E4:E0E9  0A 02 00 00 80 59                    db       0Ah, 02h, 00h, 00h, 80h, 59h +31E4:E0EF  0A 03 00 00 00 54                    db       0Ah, 03h, 00h, 00h, 00h, 54h +31E4:E0F5  0A 01 00 00 00 56                    db       0Ah, 01h, 00h, 00h, 00h, 56h +31E4:E0FB  0A FF FF 00 00 58                    db       0Ah,0FFh,0FFh, 00h, 00h, 58h +31E4:E101  0A FF FF 00 00 5A                    db       0Ah,0FFh,0FFh, 00h, 00h, 5Ah +31E4:E107  0A FF FF 12 E1 00                    db       0Ah,0FFh,0FFh, 12h,0E1h, 00h +31E4:E10D  80 92 09 00 00 00                    db       80h, 92h, 09h, 00h, 00h, 00h +31E4:E113  00 5B 0A FF FF 20                    db       00h, 5Bh, 0Ah,0FFh,0FFh, 20h +31E4:E119  E1 00 80 5C 0A 00                    db      0E1h, 00h, 80h, 5Ch, 0Ah, 00h +31E4:E11F  00 00 00 5D 0A FF                    db       00h, 00h, 00h, 5Dh, 0Ah,0FFh +31E4:E125  FF 2E E1 00 80 D5                    db      0FFh, 2Eh,0E1h, 00h, 80h,0D5h +31E4:E12B  07 00 00 00 00 EF                    db       07h, 00h, 00h, 00h, 00h,0EFh +31E4:E131  A0 FF FF 3C E1 00                    db      0A0h,0FFh,0FFh, 3Ch,0E1h, 00h +31E4:E137  80 D9 07 00 00 00                    db       80h,0D9h, 07h, 00h, 00h, 00h +31E4:E13D  00 0B 08 FF FF 50                    db       00h, 0Bh, 08h,0FFh,0FFh, 50h +31E4:E143  E1 00 80 19 08 00                    db      0E1h, 00h, 80h, 19h, 08h, 00h +31E4:E149  00 00 80 24 04 01                    db       00h, 00h, 80h, 24h, 04h, 01h +31E4:E14F  00 00 00 11 08 01                    db       00h, 00h, 00h, 11h, 08h, 01h +31E4:E155  00 FF 20 24 04 FF                    db       00h,0FFh, 20h, 24h, 04h,0FFh +31E4:E15B  FF 70 E1 00 80 FB                    db      0FFh, 70h,0E1h, 00h, 80h,0FBh +31E4:E161  07 00 00 00 80 0D                    db       07h, 00h, 00h, 00h, 80h, 0Dh +31E4:E167  08 01 00 00 80 24                    db       08h, 01h, 00h, 00h, 80h, 24h +31E4:E16D  04 03 00 1C 21 0C                    db       04h, 03h, 00h, 1Ch, 21h, 0Ch +31E4:E173  08 01 00 00 00 0E                    db       08h, 01h, 00h, 00h, 00h, 0Eh +31E4:E179  08 FF FF 00 00 17                    db       08h,0FFh,0FFh, 00h, 00h, 17h +31E4:E17F  08 02 00 3C 21 24                    db       08h, 02h, 00h, 3Ch, 21h, 24h +31E4:E185  04 FF FF 9C E1 00                    db       04h,0FFh,0FFh, 9Ch,0E1h, 00h +31E4:E18B  00 22 08 00 00 00                    db       00h, 22h, 08h, 00h, 00h, 00h +31E4:E191  80 2C 08 01 00 00                    db       80h, 2Ch, 08h, 01h, 00h, 00h +31E4:E197  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:E19D  00 77 08 FF FF 00                    db       00h, 77h, 08h,0FFh,0FFh, 00h +31E4:E1A3  00 E1 0A 02 00 2E                    db       00h,0E1h, 0Ah, 02h, 00h, 2Eh +31E4:E1A9  29 24 04 FF FF B6                    db       29h, 24h, 04h,0FFh,0FFh,0B6h +31E4:E1AF  E1 00 80 38 08 00                    db      0E1h, 00h, 80h, 38h, 08h, 00h +31E4:E1B5  00 00 00 78 08 FF                    db       00h, 00h, 00h, 78h, 08h,0FFh +31E4:E1BB  FF CA E1 00 80 24                    db      0FFh,0CAh,0E1h, 00h, 80h, 24h +31E4:E1C1  04 00 00 00 80 CF                    db       04h, 00h, 00h, 00h, 80h,0CFh +31E4:E1C7  08 01 00 00 00 CE                    db       08h, 01h, 00h, 00h, 00h,0CEh +31E4:E1CD  08 01 00 00 00 24                    db       08h, 01h, 00h, 00h, 00h, 24h +31E4:E1D3  04 FF FF DE E1 00                    db       04h,0FFh,0FFh,0DEh,0E1h, 00h +31E4:E1D9  80 F5 08 00 00 00                    db       80h,0F5h, 08h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 556 + +31E4:E1DF  00 F6 08 FF FF FE                    db       00h,0F6h, 08h,0FFh,0FFh,0FEh +31E4:E1E5  E1 5B 23 F8 08 00                    db      0E1h, 5Bh, 23h,0F8h, 08h, 00h +31E4:E1EB  00 00 80 F5 08 02                    db       00h, 00h, 80h,0F5h, 08h, 02h +31E4:E1F1  00                                   db       00h +31E4:E1F2  0007[00]                             db      7 dup (0) +31E4:E1F9  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:E1FF  00 0F A3 03 00 34                    db       00h, 0Fh,0A3h, 03h, 00h, 34h +31E4:E205  23 24 04 FF FF 00                    db       23h, 24h, 04h,0FFh,0FFh, 00h +31E4:E20B  00 F6 08 FF FF 5A                    db       00h,0F6h, 08h,0FFh,0FFh, 5Ah +31E4:E211  E2 00 00 F5 08 00                    db      0E2h, 00h, 00h,0F5h, 08h, 00h +31E4:E217  00 8D A4 10 09 01                    db       00h, 8Dh,0A4h, 10h, 09h, 01h +31E4:E21D  0008[00]                             db      8 dup (0) +31E4:E225  80 12 09 02 00 00                    db       80h, 12h, 09h, 02h, 00h, 00h +31E4:E22B  80 14 09 03 00 00                    db       80h, 14h, 09h, 03h, 00h, 00h +31E4:E231  80 16 09 04 00 00                    db       80h, 16h, 09h, 04h, 00h, 00h +31E4:E237  80 18 09 05 00 00                    db       80h, 18h, 09h, 05h, 00h, 00h +31E4:E23D  80 24 04 06 00 00                    db       80h, 24h, 04h, 06h, 00h, 00h +31E4:E243  00 1B 09 07 00 00                    db       00h, 1Bh, 09h, 07h, 00h, 00h +31E4:E249  80 1D 09 08 00 00                    db       80h, 1Dh, 09h, 08h, 00h, 00h +31E4:E24F  80 1F 09 09 00 00                    db       80h, 1Fh, 09h, 09h, 00h, 00h +31E4:E255  80 24 04 0A 00 00                    db       80h, 24h, 04h, 0Ah, 00h, 00h +31E4:E25B  00 F6 08 FF FF 2D                    db       00h,0F6h, 08h,0FFh,0FFh, 2Dh +31E4:E261  24 11 09 03 00 00                    db       24h, 11h, 09h, 03h, 00h, 00h +31E4:E267  00 13 09 04 00 00                    db       00h, 13h, 09h, 04h, 00h, 00h +31E4:E26D  00 15 09 05 00 00                    db       00h, 15h, 09h, 05h, 00h, 00h +31E4:E273  00 17 09 06 00 00                    db       00h, 17h, 09h, 06h, 00h, 00h +31E4:E279  00 19 09 07 00 D3                    db       00h, 19h, 09h, 07h, 00h,0D3h +31E4:E27F  23 1A 09 08 00 00                    db       23h, 1Ah, 09h, 08h, 00h, 00h +31E4:E285  00 1C 09 09 00 B9                    db       00h, 1Ch, 09h, 09h, 00h,0B9h +31E4:E28B  23 1E 09 0A 00 00                    db       23h, 1Eh, 09h, 0Ah, 00h, 00h +31E4:E291  00 20 09 0B 00 94                    db       00h, 20h, 09h, 0Bh, 00h, 94h +31E4:E297  23 24 04 FF FF 00                    db       23h, 24h, 04h,0FFh,0FFh, 00h +31E4:E29D  00 3D 09 FF FF 00                    db       00h, 3Dh, 09h,0FFh,0FFh, 00h +31E4:E2A3  00 3E 09 FF FF 00                    db       00h, 3Eh, 09h,0FFh,0FFh, 00h +31E4:E2A9  00 3F 09 08 00 BC                    db       00h, 3Fh, 09h, 08h, 00h,0BCh +31E4:E2AF  E2 4E 29 F8 0A 00                    db      0E2h, 4Eh, 29h,0F8h, 0Ah, 00h +31E4:E2B5  00 00 80 40 09 01                    db       00h, 00h, 80h, 40h, 09h, 01h +31E4:E2BB  00 00 00 F9 0A FF                    db       00h, 00h, 00h,0F9h, 0Ah,0FFh +31E4:E2C1  FF 00 00 F7 0A FF                    db      0FFh, 00h, 00h,0F7h, 0Ah,0FFh +31E4:E2C7  FF D6 E2 4E 29 F8                    db      0FFh,0D6h,0E2h, 4Eh, 29h,0F8h +31E4:E2CD  0A 00 00 00 80 48                    db       0Ah, 00h, 00h, 00h, 80h, 48h +31E4:E2D3  09 01 00 00 00 F9                    db       09h, 01h, 00h, 00h, 00h,0F9h +31E4:E2D9  0A FF FF 00 00 FA                    db       0Ah,0FFh,0FFh, 00h, 00h,0FAh +31E4:E2DF  0A FF FF FC E2 4E                    db       0Ah,0FFh,0FFh,0FCh,0E2h, 4Eh +31E4:E2E5  29 F8 0A 00 00 00                    db       29h,0F8h, 0Ah, 00h, 00h, 00h +31E4:E2EB  80 92 09 01 00 00                    db       80h, 92h, 09h, 01h, 00h, 00h +31E4:E2F1  00 FC 0A 02 00 00                    db       00h,0FCh, 0Ah, 02h, 00h, 00h +31E4:E2F7  80 FE 0A 03 00 00                    db       80h,0FEh, 0Ah, 03h, 00h, 00h +31E4:E2FD  00 F9 0A FF FF 00                    db       00h,0F9h, 0Ah,0FFh,0FFh, 00h +31E4:E303  00 FB 0A 02 00 00                    db       00h,0FBh, 0Ah, 02h, 00h, 00h +31E4:E309  00 FD 0A FF FF 00                    db       00h,0FDh, 0Ah,0FFh,0FFh, 00h +31E4:E30F  00 FF 0A FF FF 3A                    db       00h,0FFh, 0Ah,0FFh,0FFh, 3Ah +31E4:E315  E3 00 00 38 0A 00                    db      0E3h, 00h, 00h, 38h, 0Ah, 00h +31E4:E31B  00 00 80 1F 0B 04                    db       00h, 00h, 80h, 1Fh, 0Bh, 04h +31E4:E321  00 00 00 19 0B 01                    db       00h, 00h, 00h, 19h, 0Bh, 01h +31E4:E327  00 00 80 1B 0B 02                    db       00h, 00h, 80h, 1Bh, 0Bh, 02h +31E4:E32D  00 00 80 1D 0B 03                    db       00h, 00h, 80h, 1Dh, 0Bh, 03h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 557 + +31E4:E333  00 00 80 21 0B 05                    db       00h, 00h, 80h, 21h, 0Bh, 05h +31E4:E339  00 00 00 18 0B 02                    db       00h, 00h, 00h, 18h, 0Bh, 02h +31E4:E33F  00 00 00 1A 0B FF                    db       00h, 00h, 00h, 1Ah, 0Bh,0FFh +31E4:E345  FF 00 00 1C 0B 04                    db      0FFh, 00h, 00h, 1Ch, 0Bh, 04h +31E4:E34B  00 00 00 1E 0B FF                    db       00h, 00h, 00h, 1Eh, 0Bh,0FFh +31E4:E351  FF 00 00 20 0B 05                    db      0FFh, 00h, 00h, 20h, 0Bh, 05h +31E4:E357  00 00 00 22 0B FF                    db       00h, 00h, 00h, 22h, 0Bh,0FFh +31E4:E35D  FF 78 E3 00 80 D5                    db      0FFh, 78h,0E3h, 00h, 80h,0D5h +31E4:E363  87 00 00 00 00 EF                    db       87h, 00h, 00h, 00h, 00h,0EFh +31E4:E369  07 5D A0 00 80 F6                    db       07h, 5Dh,0A0h, 00h, 80h,0F6h +31E4:E36F  07 97 A0 00 80 F2                    db       07h, 97h,0A0h, 00h, 80h,0F2h +31E4:E375  07 05 00 00 00 4D                    db       07h, 05h, 00h, 00h, 00h, 4Dh +31E4:E37B  A0 01 00 00 00 F0                    db      0A0h, 01h, 00h, 00h, 00h,0F0h +31E4:E381  07 FF FF 00 00 F1                    db       07h,0FFh,0FFh, 00h, 00h,0F1h +31E4:E387  07 03 00 00 00 F7                    db       07h, 03h, 00h, 00h, 00h,0F7h +31E4:E38D  07 FF FF 00 00 F8                    db       07h,0FFh,0FFh, 00h, 00h,0F8h +31E4:E393  07 FF FF BE 20 F4                    db       07h,0FFh,0FFh,0BEh, 20h,0F4h +31E4:E399  07 FF FF AA E3 00                    db       07h,0FFh,0FFh,0AAh,0E3h, 00h +31E4:E39F  80 FD 07 00 00 00                    db       80h,0FDh, 07h, 00h, 00h, 00h +31E4:E3A5  80 FF 07 01 00 00                    db       80h,0FFh, 07h, 01h, 00h, 00h +31E4:E3AB  00 FE 07 01 00 00                    db       00h,0FEh, 07h, 01h, 00h, 00h +31E4:E3B1  00 24 04 FF FF D0                    db       00h, 24h, 04h,0FFh,0FFh,0D0h +31E4:E3B7  E3 00 80 1A 08 00                    db      0E3h, 00h, 80h, 1Ah, 08h, 00h +31E4:E3BD  00 00 80 1C 08 01                    db       00h, 00h, 80h, 1Ch, 08h, 01h +31E4:E3C3  00 00 80 1E 08 02                    db       00h, 00h, 80h, 1Eh, 08h, 02h +31E4:E3C9  00 00 80 24 04 03                    db       00h, 00h, 80h, 24h, 04h, 03h +31E4:E3CF  00 00 00 1B 08 01                    db       00h, 00h, 00h, 1Bh, 08h, 01h +31E4:E3D5  00 00 00 1D 08 02                    db       00h, 00h, 00h, 1Dh, 08h, 02h +31E4:E3DB  00 00 00 00 08 03                    db       00h, 00h, 00h, 00h, 08h, 03h +31E4:E3E1  00 E2 20 01 08 FF                    db       00h,0E2h, 20h, 01h, 08h,0FFh +31E4:E3E7  FF F6 E3 00 00 22                    db      0FFh,0F6h,0E3h, 00h, 00h, 22h +31E4:E3ED  08 00 00 00 80 2C                    db       08h, 00h, 00h, 00h, 80h, 2Ch +31E4:E3F3  08 01 00 00 00 46                    db       08h, 01h, 00h, 00h, 00h, 46h +31E4:E3F9  08 FF FF 00 00 A7                    db       08h,0FFh,0FFh, 00h, 00h,0A7h +31E4:E3FF  0A FF FF 0A E4 00                    db       0Ah,0FFh,0FFh, 0Ah,0E4h, 00h +31E4:E405  80 38 08 00 00 00                    db       80h, 38h, 08h, 00h, 00h, 00h +31E4:E40B  00 39 08 FF FF 2A                    db       00h, 39h, 08h,0FFh,0FFh, 2Ah +31E4:E411  E4 00 80 57 0B 00                    db      0E4h, 00h, 80h, 57h, 0Bh, 00h +31E4:E417  00 00 00 59 0B 01                    db       00h, 00h, 00h, 59h, 0Bh, 01h +31E4:E41D  00 00 80 5B 0B 02                    db       00h, 00h, 80h, 5Bh, 0Bh, 02h +31E4:E423  00 00 80 24 04 03                    db       00h, 00h, 80h, 24h, 04h, 03h +31E4:E429  00 00 00 58 0B 01                    db       00h, 00h, 00h, 58h, 0Bh, 01h +31E4:E42F  00 00 00 5A 0B FF                    db       00h, 00h, 00h, 5Ah, 0Bh,0FFh +31E4:E435  FF 00 00 5C 0B FF                    db      0FFh, 00h, 00h, 5Ch, 0Bh,0FFh +31E4:E43B  FF 00 00 24 04 FF                    db      0FFh, 00h, 00h, 24h, 04h,0FFh +31E4:E441  FF 50 E4 00 80 24                    db      0FFh, 50h,0E4h, 00h, 80h, 24h +31E4:E447  04 00 00 00 80 E1                    db       04h, 00h, 00h, 00h, 80h,0E1h +31E4:E44D  07 01 00 00 00 E0                    db       07h, 01h, 00h, 00h, 00h,0E0h +31E4:E453  07 01 00 00 00 E2                    db       07h, 01h, 00h, 00h, 00h,0E2h +31E4:E459  07 FF FF A0 E4 00                    db       07h,0FFh,0FFh,0A0h,0E4h, 00h +31E4:E45F  80 E3 07 00 00 00                    db       80h,0E3h, 07h, 00h, 00h, 00h +31E4:E465  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:E46B  00 E6 87 02 00 00                    db       00h,0E6h, 87h, 02h, 00h, 00h +31E4:E471  00 E9 07 04 00 00                    db       00h,0E9h, 07h, 04h, 00h, 00h +31E4:E477  80 F3 07 05 00 00                    db       80h,0F3h, 07h, 05h, 00h, 00h +31E4:E47D  80 24 04 03 00 00                    db       80h, 24h, 04h, 03h, 00h, 00h +31E4:E483  80 24 04 06 00 00                    db       80h, 24h, 04h, 06h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 558 + +31E4:E489  80 01 0B 07 00 00                    db       80h, 01h, 0Bh, 07h, 00h, 00h +31E4:E48F  80 03 0B 08 00 00                    db       80h, 03h, 0Bh, 08h, 00h, 00h +31E4:E495  80 05 0B 09 00 00                    db       80h, 05h, 0Bh, 09h, 00h, 00h +31E4:E49B  80 07 0B 0A 00 00                    db       80h, 07h, 0Bh, 0Ah, 00h, 00h +31E4:E4A1  00 E4 07 01 00 00                    db       00h,0E4h, 07h, 01h, 00h, 00h +31E4:E4A7  00 E5 07 02 00 00                    db       00h,0E5h, 07h, 02h, 00h, 00h +31E4:E4AD  00 E7 07 05 00 00                    db       00h,0E7h, 07h, 05h, 00h, 00h +31E4:E4B3  00 E8 07 03 00 00                    db       00h,0E8h, 07h, 03h, 00h, 00h +31E4:E4B9  00 EA 07 06 00 00                    db       00h,0EAh, 07h, 06h, 00h, 00h +31E4:E4BF  00 F5 07 FF FF 00                    db       00h,0F5h, 07h,0FFh,0FFh, 00h +31E4:E4C5  00 00 0B 07 00 00                    db       00h, 00h, 0Bh, 07h, 00h, 00h +31E4:E4CB  00 02 0B 08 00 00                    db       00h, 02h, 0Bh, 08h, 00h, 00h +31E4:E4D1  00 04 0B 09 00 00                    db       00h, 04h, 0Bh, 09h, 00h, 00h +31E4:E4D7  00 06 0B FF FF 00                    db       00h, 06h, 0Bh,0FFh,0FFh, 00h +31E4:E4DD  00 08 0B FF FF EA                    db       00h, 08h, 0Bh,0FFh,0FFh,0EAh +31E4:E4E3  E4 69 A3 03 09 00                    db      0E4h, 69h,0A3h, 03h, 09h, 00h +31E4:E4E9  00 00 00 29 08 FF                    db       00h, 00h, 00h, 29h, 08h,0FFh +31E4:E4EF  FF F8 E4 00 80 24                    db      0FFh,0F8h,0E4h, 00h, 80h, 24h +31E4:E4F5  04 00 00 00 00 2A                    db       04h, 00h, 00h, 00h, 00h, 2Ah +31E4:E4FB  08 FF FF 0C E5                       db       08h,0FFh,0FFh, 0Ch,0E5h +31E4:E500  8000                 data_1185       dw      8000h                   ;  xref 31E4:90E9 +31E4:E502  40 09 00 00 00 80                    db       40h, 09h, 00h, 00h, 00h, 80h +31E4:E508  69 0C 01 00 00 00                    db       69h, 0Ch, 01h, 00h, 00h, 00h +31E4:E50E  68 0C 01 00 00 00                    db       68h, 0Ch, 01h, 00h, 00h, 00h +31E4:E514  6A 0C FF FF 20 E5                    db       6Ah, 0Ch,0FFh,0FFh, 20h,0E5h +31E4:E51A  00 80 48 09 00 00                    db       00h, 80h, 48h, 09h, 00h, 00h +31E4:E520  00 00 00 0C FF FF                    db       00h, 00h, 00h, 0Ch,0FFh,0FFh +31E4:E526  3A E5 00 80 24 04                    db       3Ah,0E5h, 00h, 80h, 24h, 04h +31E4:E52C  00 00 00 80 6C 0C                    db       00h, 00h, 00h, 80h, 6Ch, 0Ch +31E4:E532  01 00 00 80 6E 0C                    db       01h, 00h, 00h, 80h, 6Eh, 0Ch +31E4:E538  02 00 00 00 6B 0C                    db       02h, 00h, 00h, 00h, 6Bh, 0Ch +31E4:E53E  01 00 00 00 6D 0C                    db       01h, 00h, 00h, 00h, 6Dh, 0Ch +31E4:E544  02 00 00 00 6F 0C                    db       02h, 00h, 00h, 00h, 6Fh, 0Ch +31E4:E54A  FF FF 5A E5 00 80                    db      0FFh,0FFh, 5Ah,0E5h, 00h, 80h +31E4:E550  2E 0B 00 00 00 80                    db       2Eh, 0Bh, 00h, 00h, 00h, 80h +31E4:E556  71 0C 01 00 00 00                    db       71h, 0Ch, 01h, 00h, 00h, 00h +31E4:E55C  70 0C 01 00 00 00                    db       70h, 0Ch, 01h, 00h, 00h, 00h +31E4:E562  24 04 FF FF 7A E5                    db       24h, 04h,0FFh,0FFh, 7Ah,0E5h +31E4:E568  00 80 24 04 00 00                    db       00h, 80h, 24h, 04h, 00h, 00h +31E4:E56E  00 80 98 0C 01 00                    db       00h, 80h, 98h, 0Ch, 01h, 00h +31E4:E574  00 80 9A 0C 02 00                    db       00h, 80h, 9Ah, 0Ch, 02h, 00h +31E4:E57A  00 00 97 0C 01 00                    db       00h, 00h, 97h, 0Ch, 01h, 00h +31E4:E580  00 00 99 0C 02 00                    db       00h, 00h, 99h, 0Ch, 02h, 00h +31E4:E586  00 00 24 04 FF FF                    db       00h, 00h, 24h, 04h,0FFh,0FFh +31E4:E58C  94 E5 00 80 38 0A                    db       94h,0E5h, 00h, 80h, 38h, 0Ah +31E4:E592  00 00 00 00 08 0C                    db       00h, 00h, 00h, 00h, 08h, 0Ch +31E4:E598  FF FF A2 E5 00 80                    db      0FFh,0FFh,0A2h,0E5h, 00h, 80h +31E4:E59E  78 00 00 00 00 00                    db       78h, 00h, 00h, 00h, 00h, 00h +31E4:E5A4  7D 00 FF FF CE E5                    db       7Dh, 00h,0FFh,0FFh,0CEh,0E5h +31E4:E5AA  00 80 24 04 00 00                    db       00h, 80h, 24h, 04h, 00h, 00h +31E4:E5B0  00 80 FB 00 02 00                    db       00h, 80h,0FBh, 00h, 02h, 00h +31E4:E5B6  00 80 F9 00 03 00                    db       00h, 80h,0F9h, 00h, 03h, 00h +31E4:E5BC  00 80 FC 00 04 00                    db       00h, 80h,0FCh, 00h, 04h, 00h +31E4:E5C2  00 80 FE 00 05 00                    db       00h, 80h,0FEh, 00h, 05h, 00h +31E4:E5C8  00 80 24 04 06 00                    db       00h, 80h, 24h, 04h, 06h, 00h +31E4:E5CE  CF 1F FD 00 FF FF                    db      0CFh, 1Fh,0FDh, 00h,0FFh,0FFh +31E4:E5D4  00 00 24 04 01 00                    db       00h, 00h, 24h, 04h, 01h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 559 + +31E4:E5DA  0B 20 00 01 02 00                    db       0Bh, 20h, 00h, 01h, 02h, 00h +31E4:E5E0  00 00 FF 00 03 00                    db       00h, 00h,0FFh, 00h, 03h, 00h +31E4:E5E6  00 00 01 01 04 00                    db       00h, 00h, 01h, 01h, 04h, 00h +31E4:E5EC  00 00 94 00 05 00                    db       00h, 00h, 94h, 00h, 05h, 00h +31E4:E5F2  E9 1F 24 04 FF FF                    db      0E9h, 1Fh, 24h, 04h,0FFh,0FFh +31E4:E5F8  06 E6 00 80 F4 00                    db       06h,0E6h, 00h, 80h,0F4h, 00h +31E4:E5FE  00 00 00 80 F6 00                    db       00h, 00h, 00h, 80h,0F6h, 00h +31E4:E604  01 00 00 00 F5 00                    db       01h, 00h, 00h, 00h,0F5h, 00h +31E4:E60A  01 00 00 00 F7 00                    db       01h, 00h, 00h, 00h,0F7h, 00h +31E4:E610  FF FF 1A E6 00 80                    db      0FFh,0FFh, 1Ah,0E6h, 00h, 80h +31E4:E616  F9 07 00 00 00 00                    db      0F9h, 07h, 00h, 00h, 00h, 00h +31E4:E61C  FA 07 FF FF 28 E6                    db      0FAh, 07h,0FFh,0FFh, 28h,0E6h +31E4:E622  00 80 FB 07 00 00                    db       00h, 80h,0FBh, 07h, 00h, 00h +31E4:E628  00 00 FC 07 FF FF                    db       00h, 00h,0FCh, 07h,0FFh,0FFh +31E4:E62E  3C E6 00 80 C9 08                    db       3Ch,0E6h, 00h, 80h,0C9h, 08h +31E4:E634  00 00 00 80 24 04                    db       00h, 00h, 00h, 80h, 24h, 04h +31E4:E63A  01 00 00 00 CA 08                    db       01h, 00h, 00h, 00h,0CAh, 08h +31E4:E640  01 00 A8 22 24 04                    db       01h, 00h,0A8h, 22h, 24h, 04h +31E4:E646  FF FF 56 E6 00 00                    db      0FFh,0FFh, 56h,0E6h, 00h, 00h +31E4:E64C  2C 08 01 00 00 80                    db       2Ch, 08h, 01h, 00h, 00h, 80h +31E4:E652  22 08 00 00 00 00                    db       22h, 08h, 00h, 00h, 00h, 00h +31E4:E658  3B 08 FF FF 00 00                    db       3Bh, 08h,0FFh,0FFh, 00h, 00h +31E4:E65E  D7 0A FF FF 6A E6                    db      0D7h, 0Ah,0FFh,0FFh, 6Ah,0E6h +31E4:E664  00 80 CB 08 00 00                    db       00h, 80h,0CBh, 08h, 00h, 00h +31E4:E66A  00 00 CC 08 FF FF                    db       00h, 00h,0CCh, 08h,0FFh,0FFh +31E4:E670  78 E6 00 80 C9 08                    db       78h,0E6h, 00h, 80h,0C9h, 08h +31E4:E676  00 00 00 00 10 0A                    db       00h, 00h, 00h, 00h, 10h, 0Ah +31E4:E67C  FF FF 86 E6 00 80                    db      0FFh,0FFh, 86h,0E6h, 00h, 80h +31E4:E682  38 08 00 00 00 00                    db       38h, 08h, 00h, 00h, 00h, 00h +31E4:E688  3A 08 FF FF B2 E6                    db       3Ah, 08h,0FFh,0FFh,0B2h,0E6h +31E4:E68E  69 23 03 09 00 00                    db       69h, 23h, 03h, 09h, 00h, 00h +31E4:E694  00 80 C9 08 03 00                    db       00h, 80h,0C9h, 08h, 03h, 00h +31E4:E69A  0007[00]                             db      7 dup (0) +31E4:E6A1  80 05 09 01 00 00                    db       80h, 05h, 09h, 01h, 00h, 00h +31E4:E6A7  80 07 09 02 00 00                    db       80h, 07h, 09h, 02h, 00h, 00h +31E4:E6AD  80 12 0A 04 00 00                    db       80h, 12h, 0Ah, 04h, 00h, 00h +31E4:E6B3  00 04 09 03 00 00                    db       00h, 04h, 09h, 03h, 00h, 00h +31E4:E6B9  00 06 09 04 00 00                    db       00h, 06h, 09h, 04h, 00h, 00h +31E4:E6BF  00 08 09 FF FF 00                    db       00h, 08h, 09h,0FFh,0FFh, 00h +31E4:E6C5  00 11 0A 05 00 00                    db       00h, 11h, 0Ah, 05h, 00h, 00h +31E4:E6CB  00 13 0A FF FF EA                    db       00h, 13h, 0Ah,0FFh,0FFh,0EAh +31E4:E6D1  E6 00 80 C9 08 00                    db      0E6h, 00h, 80h,0C9h, 08h, 00h +31E4:E6D7  0009[00]                             db      9 dup (0) +31E4:E6E0  15 0A 01 00 00 80                    db       15h, 0Ah, 01h, 00h, 00h, 80h +31E4:E6E6  17 0A 02 00 00 00                    db       17h, 0Ah, 02h, 00h, 00h, 00h +31E4:E6EC  14 0A 02 00 00 00                    db       14h, 0Ah, 02h, 00h, 00h, 00h +31E4:E6F2  16 0A FF FF 00 00                    db       16h, 0Ah,0FFh,0FFh, 00h, 00h +31E4:E6F8  18 0A FF FF 04 E7                    db       18h, 0Ah,0FFh,0FFh, 04h,0E7h +31E4:E6FE  00 80 C9 08 00 00                    db       00h, 80h,0C9h, 08h, 00h, 00h +31E4:E704  00 00 19 0A FF FF                    db       00h, 00h, 19h, 0Ah,0FFh,0FFh +31E4:E70A  2A E7 00 00 1A 0A                    db       2Ah,0E7h, 00h, 00h, 1Ah, 0Ah +31E4:E710  00 00 00 80 48 09                    db       00h, 00h, 00h, 80h, 48h, 09h +31E4:E716  02                                   db       02h +31E4:E717  0008[00]                             db      8 dup (0) +31E4:E71F  80 1C 0A 01 00 00                    db       80h, 1Ch, 0Ah, 01h, 00h, 00h +31E4:E725  80 1F 0A 03 00 00                    db       80h, 1Fh, 0Ah, 03h, 00h, 00h +31E4:E72B  00 1B 0A 03 00 00                    db       00h, 1Bh, 0Ah, 03h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 560 + +31E4:E731  00 1D 0A FF FF 00                    db       00h, 1Dh, 0Ah,0FFh,0FFh, 00h +31E4:E737  00 1E 0A 04 00 00                    db       00h, 1Eh, 0Ah, 04h, 00h, 00h +31E4:E73D  00 20 0A FF FF 4A                    db       00h, 20h, 0Ah,0FFh,0FFh, 4Ah +31E4:E743  E7 00 80 C9 08 00                    db      0E7h, 00h, 80h,0C9h, 08h, 00h +31E4:E749  00 00 00 21 0A FF                    db       00h, 00h, 00h, 21h, 0Ah,0FFh +31E4:E74F  FF 6A E7 00 80 22                    db      0FFh, 6Ah,0E7h, 00h, 80h, 22h +31E4:E755  0A 00 00 00 80 24                    db       0Ah, 00h, 00h, 00h, 80h, 24h +31E4:E75B  04 01 00 00 80 25                    db       04h, 01h, 00h, 00h, 80h, 25h +31E4:E761  0A 02 00 00 80 27                    db       0Ah, 02h, 00h, 00h, 80h, 27h +31E4:E767  0A 03 00 00 00 23                    db       0Ah, 03h, 00h, 00h, 00h, 23h +31E4:E76D  0A 01 00 00 00 24                    db       0Ah, 01h, 00h, 00h, 00h, 24h +31E4:E773  0A 02 00 00 00 26                    db       0Ah, 02h, 00h, 00h, 00h, 26h +31E4:E779  0A 03 00 00 00 28                    db       0Ah, 03h, 00h, 00h, 00h, 28h +31E4:E77F  0A FF FF BA E7 4F                    db       0Ah,0FFh,0FFh,0BAh,0E7h, 4Fh +31E4:E785  2A 88 0B 00 00 00                    db       2Ah, 88h, 0Bh, 00h, 00h, 00h +31E4:E78B  00 7D 0B 03 00 00                    db       00h, 7Dh, 0Bh, 03h, 00h, 00h +31E4:E791  80 38 0A 05 00 00                    db       80h, 38h, 0Ah, 05h, 00h, 00h +31E4:E797  80 8A 0B 01 00 00                    db       80h, 8Ah, 0Bh, 01h, 00h, 00h +31E4:E79D  80 8C 0B 02 00 00                    db       80h, 8Ch, 0Bh, 02h, 00h, 00h +31E4:E7A3  80 7F 0B 04 00 00                    db       80h, 7Fh, 0Bh, 04h, 00h, 00h +31E4:E7A9  80 82 0B 06 00 00                    db       80h, 82h, 0Bh, 06h, 00h, 00h +31E4:E7AF  80 84 0B 07 00 00                    db       80h, 84h, 0Bh, 07h, 00h, 00h +31E4:E7B5  80 86 0B 08 00 00                    db       80h, 86h, 0Bh, 08h, 00h, 00h +31E4:E7BB  00 89 0B 03 00 00                    db       00h, 89h, 0Bh, 03h, 00h, 00h +31E4:E7C1  00 8B 0B 04 00 00                    db       00h, 8Bh, 0Bh, 04h, 00h, 00h +31E4:E7C7  00 8D 0B FF FF 00                    db       00h, 8Dh, 0Bh,0FFh,0FFh, 00h +31E4:E7CD  00 7E 0B 05 00 00                    db       00h, 7Eh, 0Bh, 05h, 00h, 00h +31E4:E7D3  00 80 0B FF FF 00                    db       00h, 80h, 0Bh,0FFh,0FFh, 00h +31E4:E7D9  00 81 0B 06 00 00                    db       00h, 81h, 0Bh, 06h, 00h, 00h +31E4:E7DF  00 83 0B 07 00 00                    db       00h, 83h, 0Bh, 07h, 00h, 00h +31E4:E7E5  00 85 0B 08 00 00                    db       00h, 85h, 0Bh, 08h, 00h, 00h +31E4:E7EB  00 87 0B FF FF 0A                    db       00h, 87h, 0Bh,0FFh,0FFh, 0Ah +31E4:E7F1  E8 00 80 24 84 00                    db      0E8h, 00h, 80h, 24h, 84h, 00h +31E4:E7F7  00 00 80 5F 08 03                    db       00h, 00h, 80h, 5Fh, 08h, 03h +31E4:E7FD  00 00 80 58 08 01                    db       00h, 00h, 80h, 58h, 08h, 01h +31E4:E803  00 00 80 5D 08 02                    db       00h, 00h, 80h, 5Dh, 08h, 02h +31E4:E809  00 00 00 57 08 02                    db       00h, 00h, 00h, 57h, 08h, 02h +31E4:E80F  00 00 00 5C 08 03                    db       00h, 00h, 00h, 5Ch, 08h, 03h +31E4:E815  00 82 21 5E 08 FF                    db       00h, 82h, 21h, 5Eh, 08h,0FFh +31E4:E81B  FF 00 00 60 08 FF                    db      0FFh, 00h, 00h, 60h, 08h,0FFh +31E4:E821  FF 3C E8 00 00 B2                    db      0FFh, 3Ch,0E8h, 00h, 00h,0B2h +31E4:E827  00 00 00 00 00 B3                    db       00h, 00h, 00h, 00h, 00h,0B3h +31E4:E82D  00 01 00 00 80 B4                    db       00h, 01h, 00h, 00h, 80h,0B4h +31E4:E833  00 02 00 00 80 F2                    db       00h, 02h, 00h, 00h, 80h,0F2h +31E4:E839  00 03 00 FD 06 C1                    db       00h, 03h, 00h,0FDh, 06h,0C1h +31E4:E83F  00 FF FF FD 06 C2                    db       00h,0FFh,0FFh,0FDh, 06h,0C2h +31E4:E845  00 FF FF FD 06 C7                    db       00h,0FFh,0FFh,0FDh, 06h,0C7h +31E4:E84B  00 03 00 00 00 F3                    db       00h, 03h, 00h, 00h, 00h,0F3h +31E4:E851  00 FF FF 5C E8 00                    db       00h,0FFh,0FFh, 5Ch,0E8h, 00h +31E4:E857  80 31 01 00 00 00                    db       80h, 31h, 01h, 00h, 00h, 00h +31E4:E85D  00 32 01 FF FF 70                    db       00h, 32h, 01h,0FFh,0FFh, 70h +31E4:E863  E8 00 80 24 04 00                    db      0E8h, 00h, 80h, 24h, 04h, 00h +31E4:E869  00 00 80 D9 0A 01                    db       00h, 00h, 80h,0D9h, 0Ah, 01h +31E4:E86F  00 00 00 D8 0A 01                    db       00h, 00h, 00h,0D8h, 0Ah, 01h +31E4:E875  00 00 00 DA 0A FF                    db       00h, 00h, 00h,0DAh, 0Ah,0FFh +31E4:E87B  FF 8A E8 00 80 D0                    db      0FFh, 8Ah,0E8h, 00h, 80h,0D0h +31E4:E881  07 00 00 00 80 24                    db       07h, 00h, 00h, 00h, 80h, 24h +31E4:E887  04 01 00 00 00 D1                    db       04h, 01h, 00h, 00h, 00h,0D1h +31E4:E88D  07 01 00 00 00 D2                    db       07h, 01h, 00h, 00h, 00h,0D2h +31E4:E893  07 FF FF B0 E8 00                    db       07h,0FFh,0FFh,0B0h,0E8h, 00h +31E4:E899  80                                   db       80h +31E4:E89A  22 08                                db       22h, 08h +31E4:E89C  0009[00]                             db      9 dup (0) +31E4:E8A5  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:E8AB  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:E8B1  00 3C 08 02 00 00                    db       00h, 3Ch, 08h, 02h, 00h, 00h +31E4:E8B7  00 3D 08 03 00 00                    db       00h, 3Dh, 08h, 03h, 00h, 00h +31E4:E8BD  00 3E 08 FF FF E8                    db       00h, 3Eh, 08h,0FFh,0FFh,0E8h +31E4:E8C3  E8 00 80                             db      0E8h, 00h, 80h +31E4:E8C6  38 08                                db       38h, 08h +31E4:E8C8  0009[00]                             db      9 dup (0) +31E4:E8D1  80 40 08 01 00 00                    db       80h, 40h, 08h, 01h, 00h, 00h +31E4:E8D7  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:E8DD  80 24 04 03 00 00                    db       80h, 24h, 04h, 03h, 00h, 00h +31E4:E8E3  80 44 08 04 00 00                    db       80h, 44h, 08h, 04h, 00h, 00h +31E4:E8E9  00 3F 08 02 00 00                    db       00h, 3Fh, 08h, 02h, 00h, 00h +31E4:E8EF  00 41 08 03 00 00                    db       00h, 41h, 08h, 03h, 00h, 00h +31E4:E8F5  00 42 08 04 00 00                    db       00h, 42h, 08h, 04h, 00h, 00h +31E4:E8FB  00 43 08 05 00                       db       00h, 43h, 08h, 05h, 00h +31E4:E900  00                   data_1191       db      0                       ; Data table (indexed access) +31E4:E901  00 45 08 FF FF 1A                    db       00h, 45h, 08h,0FFh,0FFh, 1Ah +31E4:E907  E9 00 80 FB 07                       db      0E9h, 00h, 80h,0FBh, 07h +31E4:E90C  0009[00]                             db      9 dup (0) +31E4:E915  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:E91B  00 08 08 02 00 00                    db       00h, 08h, 08h, 02h, 00h, 00h +31E4:E921  00 09 08 FF FF 52                    db       00h, 09h, 08h,0FFh,0FFh, 52h +31E4:E927  E9 00 80 D5 87 00                    db      0E9h, 00h, 80h,0D5h, 87h, 00h +31E4:E92D  00 00 80 24 84 01                    db       00h, 00h, 80h, 24h, 84h, 01h +31E4:E933  00 00 80 24 84 02                    db       00h, 00h, 80h, 24h, 84h, 02h +31E4:E939  00 2B A0 D9 07 03                    db       00h, 2Bh,0A0h,0D9h, 07h, 03h +31E4:E93F  00                                   db       00h +31E4:E940  0007[00]                             db      7 dup (0) +31E4:E947  80 24 04 04 00 00                    db       80h, 24h, 04h, 04h, 00h, 00h +31E4:E94D  80 24 04 05 00 00                    db       80h, 24h, 04h, 05h, 00h, 00h +31E4:E953  00 1B A0 01 00 00                    db       00h, 1Bh,0A0h, 01h, 00h, 00h +31E4:E959  00 D7 07 02 00 00                    db       00h,0D7h, 07h, 02h, 00h, 00h +31E4:E95F  00 D8 07 FF FF 00                    db       00h,0D8h, 07h,0FFh,0FFh, 00h +31E4:E965  00 DA 07 05 00 00                    db       00h,0DAh, 07h, 05h, 00h, 00h +31E4:E96B  00 DB 07 06 00 00                    db       00h,0DBh, 07h, 06h, 00h, 00h +31E4:E971  00 DC 07 FF FF 90                    db       00h,0DCh, 07h,0FFh,0FFh, 90h +31E4:E977  E9 00 80                             db      0E9h, 00h, 80h +31E4:E97A  29 0A                                db       29h, 0Ah +31E4:E97C  0009[00]                             db      9 dup (0) +31E4:E985  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:E98B  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:E991  00 2A 0A 02 00 00                    db       00h, 2Ah, 0Ah, 02h, 00h, 00h +31E4:E997  00 2B 0A 03 00 00                    db       00h, 2Bh, 0Ah, 03h, 00h, 00h +31E4:E99D  00 2C 0A FF FF B0                    db       00h, 2Ch, 0Ah,0FFh,0FFh,0B0h +31E4:E9A3  E9 00 80 24 04 00                    db      0E9h, 00h, 80h, 24h, 04h, 00h +31E4:E9A9  00 00 80 24 04 01                    db       00h, 00h, 80h, 24h, 04h, 01h +31E4:E9AF  00 00 00 77 09 01                    db       00h, 00h, 00h, 77h, 09h, 01h +31E4:E9B5  00 00 00 78 09 FF                    db       00h, 00h, 00h, 78h, 09h,0FFh +31E4:E9BB  FF C4 E9 00 80 CA                    db      0FFh,0C4h,0E9h, 00h, 80h,0CAh +31E4:E9C1  09 00                                db       09h, 00h +31E4:E9C3  00 00 00 CB 09 FF                    db       00h, 00h, 00h,0CBh, 09h,0FFh +31E4:E9C9  FF EA E9 69 A3 03                    db      0FFh,0EAh,0E9h, 69h,0A3h, 03h +31E4:E9CF  09 00 00 00 80 24                    db       09h, 00h, 00h, 00h, 80h, 24h +31E4:E9D5  04 02 00                             db       04h, 02h, 00h +31E4:E9D8  0007[00]                             db      7 dup (0) +31E4:E9DF  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:E9E5  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:E9EB  00 79 09 03 00 00                    db       00h, 79h, 09h, 03h, 00h, 00h +31E4:E9F1  00 7A 09 04 00 00                    db       00h, 7Ah, 09h, 04h, 00h, 00h +31E4:E9F7  00 7B 09 FF FF 0A                    db       00h, 7Bh, 09h,0FFh,0FFh, 0Ah +31E4:E9FD  EA 00 80 24 04 00                    db      0EAh, 00h, 80h, 24h, 04h, 00h +31E4:EA03  00 00 80 CD 09 01                    db       00h, 00h, 80h,0CDh, 09h, 01h +31E4:EA09  00 00 00 CC 09 01                    db       00h, 00h, 00h,0CCh, 09h, 01h +31E4:EA0F  00 00 00 45 08 FF                    db       00h, 00h, 00h, 45h, 08h,0FFh +31E4:EA15  FF 30 EA 00 80                       db      0FFh, 30h,0EAh, 00h, 80h +31E4:EA1A  40 09                                db       40h, 09h +31E4:EA1C  0009[00]                             db      9 dup (0) +31E4:EA25  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:EA2B  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:EA31  00 CF 09 02 00 00                    db       00h,0CFh, 09h, 02h, 00h, 00h +31E4:EA37  00 D0 09 03 00 00                    db       00h,0D0h, 09h, 03h, 00h, 00h +31E4:EA3D  00 D1 09 FF FF 5C                    db       00h,0D1h, 09h,0FFh,0FFh, 5Ch +31E4:EA43  EA 00 80                             db      0EAh, 00h, 80h +31E4:EA46  48 09                                db       48h, 09h +31E4:EA48  0009[00]                             db      9 dup (0) +31E4:EA51  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:EA57  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:EA5D  00 B7 09 02 00 00                    db       00h,0B7h, 09h, 02h, 00h, 00h +31E4:EA63  00 B8 09 03 00 00                    db       00h,0B8h, 09h, 03h, 00h, 00h +31E4:EA69  00 B9 09 FF FF 8E                    db       00h,0B9h, 09h,0FFh,0FFh, 8Eh +31E4:EA6F  EA 00 80 92 09 00                    db      0EAh, 00h, 80h, 92h, 09h, 00h +31E4:EA75  00                                   db       00h +31E4:EA76  0007[00]                             db      7 dup (0) +31E4:EA7D  80 24 04 03 00 00                    db       80h, 24h, 04h, 03h, 00h, 00h +31E4:EA83  80 BC 09 04 00 00                    db       80h,0BCh, 09h, 04h, 00h, 00h +31E4:EA89  80 24 04 02 00 DC                    db       80h, 24h, 04h, 02h, 00h,0DCh +31E4:EA8F  27 BA 09 02 00 00                    db       27h,0BAh, 09h, 02h, 00h, 00h +31E4:EA95  00 BE 09 04 00 00                    db       00h,0BEh, 09h, 04h, 00h, 00h +31E4:EA9B  00 BF 09 FF FF 00                    db       00h,0BFh, 09h,0FFh,0FFh, 00h +31E4:EAA1  00 BB 09 03 00 E7                    db       00h,0BBh, 09h, 03h, 00h,0E7h +31E4:EAA7  26 BD 09 FF FF C0                    db       26h,0BDh, 09h,0FFh,0FFh,0C0h +31E4:EAAD  EA 00 80 75 0C 00                    db      0EAh, 00h, 80h, 75h, 0Ch, 00h +31E4:EAB3  00 00 80 24 04 01                    db       00h, 00h, 80h, 24h, 04h, 01h +31E4:EAB9  00 00 80 24 04 02                    db       00h, 00h, 80h, 24h, 04h, 02h +31E4:EABF  00 00 00 76 0C 01                    db       00h, 00h, 00h, 76h, 0Ch, 01h +31E4:EAC5  00 00 00 77 0C 02                    db       00h, 00h, 00h, 77h, 0Ch, 02h +31E4:EACB  00 00 00 78 0C FF                    db       00h, 00h, 00h, 78h, 0Ch,0FFh +31E4:EAD1  FF E6 EA 00 80 C0                    db      0FFh,0E6h,0EAh, 00h, 80h,0C0h +31E4:EAD7  09 00 00 00 80 A9                    db       09h, 00h, 00h, 00h, 80h,0A9h +31E4:EADD  09 02 00 00 80 24                    db       09h, 02h, 00h, 00h, 80h, 24h +31E4:EAE3  04 03 00 17 27 AB                    db       04h, 03h, 00h, 17h, 27h,0ABh +31E4:EAE9  09 FF FF 00 00 C1                    db       09h,0FFh,0FFh, 00h, 00h,0C1h +31E4:EAEF  09 01 00 00 00 C2                    db       09h, 01h, 00h, 00h, 00h,0C2h +31E4:EAF5  09 02 00 F3 27 24                    db       09h, 02h, 00h,0F3h, 27h, 24h +31E4:EAFB  04 FF FF 12 EB 00                    db       04h,0FFh,0FFh, 12h,0EBh, 00h +31E4:EB01  80 38 0A 00 00 00                    db       80h, 38h, 0Ah, 00h, 00h, 00h +31E4:EB07  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:EB0D  80 24 04 02 00 00                    db       80h, 24h, 04h, 02h, 00h, 00h +31E4:EB13  00 23 0B 01 00 00                    db       00h, 23h, 0Bh, 01h, 00h, 00h +31E4:EB19  00 24 0B 02 00 00                    db       00h, 24h, 0Bh, 02h, 00h, 00h +31E4:EB1F  00 25 0B FF FF + +31E4:EB24  EB56                 skorl_talk_0    dw       offset skorl_responses +31E4:EB26  00 00 AF 00 01                       db       00h, 00h,0AFh, 00h, 01h +31E4:EB2B  00 00 00 B0 00 01                    db       00h, 00h, 00h,0B0h, 00h, 01h +31E4:EB31  00 00 80 B1 00 02                    db       00h, 00h, 80h,0B1h, 00h, 02h +31E4:EB37  00 00 00 B5 00 03                    db       00h, 00h, 00h,0B5h, 00h, 03h +31E4:EB3D  00 00 00 B6 00 04                    db       00h, 00h, 00h,0B6h, 00h, 04h +31E4:EB43  00 00 80 B7 00 05                    db       00h, 00h, 80h,0B7h, 00h, 05h +31E4:EB49  00 00 00 B8 00 06                    db       00h, 00h, 00h,0B8h, 00h, 06h +31E4:EB4F  00 00 80 B9 00 07                    db       00h, 00h, 80h,0B9h, 00h, 07h +31E4:EB55  00                                   db       00h + +31E4:EB56  0000 00BF FFFF    skorl_responses    dw       0000h, 00BFh, 0FFFFh +31E4:EB5C  1FA8 00BE 0003 +31E4:EB62  1FC2 00C0 FFFF +31E4:EB68  0000 00C4 FFFF +31E4:EB6E  0000 00C3 FFFF +31E4:EB74  0000 00C6 0006 +31E4:EB7A  0000 00C5 FFFF +31E4:EB80  0000 00C8 FFFF +31E4:EB86  EBA6 8000 099E + + +31E4:EB86  A6 EB 00 80 9E                       db      0A6h,0EBh, 00h, 80h, 9Eh +31E4:EB8B  09 00 00 00 80 A0                    db       09h, 00h, 00h, 00h, 80h,0A0h +31E4:EB91  09 01 00 00 80 A2                    db       09h, 01h, 00h, 00h, 80h,0A2h +31E4:EB97  09 02 00 00 80 6C                    db       09h, 02h, 00h, 00h, 80h, 6Ch +31E4:EB9D  09 03 00 00 80 A5                    db       09h, 03h, 00h, 00h, 80h,0A5h +31E4:EBA3  09 04 00 00 00 9F                    db       09h, 04h, 00h, 00h, 00h, 9Fh +31E4:EBA9  09 01 00 00 00 A1                    db       09h, 01h, 00h, 00h, 00h,0A1h +31E4:EBAF  09 02 00 00 00 A3                    db       09h, 02h, 00h, 00h, 00h,0A3h +31E4:EBB5  09 03 00 00 00 A4                    db       09h, 03h, 00h, 00h, 00h,0A4h +31E4:EBBB  09 04 00 C1 26 A6                    db       09h, 04h, 00h,0C1h, 26h,0A6h +31E4:EBC1  09 FF FF CC EB 00                    db       09h,0FFh,0FFh,0CCh,0EBh, 00h +31E4:EBC7  80 7A 0A 00 00 00                    db       80h, 7Ah, 0Ah, 00h, 00h, 00h +31E4:EBCD  00 7B 0A FF FF DA                    db       00h, 7Bh, 0Ah,0FFh,0FFh,0DAh +31E4:EBD3  EB 00 80 9E 09 00                    db      0EBh, 00h, 80h, 9Eh, 09h, 00h +31E4:EBD9  00 00 00 79 0A FF                    db       00h, 00h, 00h, 79h, 0Ah,0FFh +31E4:EBDF  FF E8 EB 00 80 9E                    db      0FFh,0E8h,0EBh, 00h, 80h, 9Eh +31E4:EBE5  09 00 00 00 00 24                    db       09h, 00h, 00h, 00h, 00h, 24h +31E4:EBEB  04 FF FF 32 EC 00                    db       04h,0FFh,0FFh, 32h,0ECh, 00h +31E4:EBF1  80 FB 09 00 00 00                    db       80h,0FBh, 09h, 00h, 00h, 00h +31E4:EBF7  00 FD 89 02 00 00                    db       00h,0FDh, 89h, 02h, 00h, 00h +31E4:EBFD  00 FF 89 03 00 00                    db       00h,0FFh, 89h, 03h, 00h, 00h +31E4:EC03  80 01 0A 04 00 00                    db       80h, 01h, 0Ah, 04h, 00h, 00h +31E4:EC09  80 69 08 05 00 00                    db       80h, 69h, 08h, 05h, 00h, 00h +31E4:EC0F  80 24 04 06 00 00                    db       80h, 24h, 04h, 06h, 00h, 00h +31E4:EC15  80 24 04 07 00 00                    db       80h, 24h, 04h, 07h, 00h, 00h +31E4:EC1B  80 06 0A 08 00 00                    db       80h, 06h, 0Ah, 08h, 00h, 00h +31E4:EC21  80 08 0A 09 00 00                    db       80h, 08h, 0Ah, 09h, 00h, 00h +31E4:EC27  80 0A 0A 0A 00 00                    db       80h, 0Ah, 0Ah, 0Ah, 00h, 00h +31E4:EC2D  80 0C 0A 0B 00 78                    db       80h, 0Ch, 0Ah, 0Bh, 00h, 78h +31E4:EC33  28 24 04 FF FF 00                    db       28h, 24h, 04h,0FFh,0FFh, 00h +31E4:EC39  00 FC 09 01 00 00                    db       00h,0FCh, 09h, 01h, 00h, 00h +31E4:EC3F  00 FE 09 01 00 00                    db       00h,0FEh, 09h, 01h, 00h, 00h +31E4:EC45  00 00 0A 01 00 00                    db       00h, 00h, 0Ah, 01h, 00h, 00h +31E4:EC4B  00 02 0A 04 00 00                    db       00h, 02h, 0Ah, 04h, 00h, 00h +31E4:EC51  00 03 0A 05 00 00                    db       00h, 03h, 0Ah, 05h, 00h, 00h +31E4:EC57  00 04 0A 07 00 00                    db       00h, 04h, 0Ah, 07h, 00h, 00h +31E4:EC5D  00 05 0A 07 00 00                    db       00h, 05h, 0Ah, 07h, 00h, 00h +31E4:EC63  00 07 0A 08 00 00                    db       00h, 07h, 0Ah, 08h, 00h, 00h +31E4:EC69  00 09 0A 09 00 A5                    db       00h, 09h, 0Ah, 09h, 00h,0A5h +31E4:EC6F  28 0B 0A 0A 00 00                    db       28h, 0Bh, 0Ah, 0Ah, 00h, 00h +31E4:EC75  00 24 04 FF FF 82                    db       00h, 24h, 04h,0FFh,0FFh, 82h +31E4:EC7B  EC 00 80 05 0A 00                    db      0ECh, 00h, 80h, 05h, 0Ah, 00h +31E4:EC81  00 00 00 24 04 FF                    db       00h, 00h, 00h, 24h, 04h,0FFh +31E4:EC87  FF 9C EC 00 80 D5                    db      0FFh, 9Ch,0ECh, 00h, 80h,0D5h +31E4:EC8D  07 00 00 00 00 85                    db       07h, 00h, 00h, 00h, 00h, 85h +31E4:EC93  0A 01 00 00 80 87                    db       0Ah, 01h, 00h, 00h, 80h, 87h +31E4:EC99  0A 02 00 E1 28 84                    db       0Ah, 02h, 00h,0E1h, 28h, 84h +31E4:EC9F  0A 01 00 00 00 86                    db       0Ah, 01h, 00h, 00h, 00h, 86h +31E4:ECA5  0A FF FF 00 00 88                    db       0Ah,0FFh,0FFh, 00h, 00h, 88h +31E4:ECAB  0A FF FF B6 EC 00                    db       0Ah,0FFh,0FFh,0B6h,0ECh, 00h +31E4:ECB1  80 F9 07 00 00 00                    db       80h,0F9h, 07h, 00h, 00h, 00h +31E4:ECB7  00 89 0A FF FF C4                    db       00h, 89h, 0Ah,0FFh,0FFh,0C4h +31E4:ECBD  EC 00 80 FB 07 00                    db      0ECh, 00h, 80h,0FBh, 07h, 00h +31E4:ECC3  00 00 00 8A 0A FF                    db       00h, 00h, 00h, 8Ah, 0Ah,0FFh +31E4:ECC9  FF D8 EC 00 00 22                    db      0FFh,0D8h,0ECh, 00h, 00h, 22h +31E4:ECCF  08 00 00 00 80 2C                    db       08h, 00h, 00h, 00h, 80h, 2Ch +31E4:ECD5  08 01 00 00 00 8B                    db       08h, 01h, 00h, 00h, 00h, 8Bh +31E4:ECDB  0A FF FF 00 00 8C                    db       0Ah,0FFh,0FFh, 00h, 00h, 8Ch +31E4:ECE1  0A FF FF EC EC 00                    db       0Ah,0FFh,0FFh,0ECh,0ECh, 00h +31E4:ECE7  80 38 08 00 00 00                    db       80h, 38h, 08h, 00h, 00h, 00h +31E4:ECED  00 8D 0A FF FF 00                    db       00h, 8Dh, 0Ah,0FFh,0FFh, 00h +31E4:ECF3  ED 00 80 24 04 00                    db      0EDh, 00h, 80h, 24h, 04h, 00h +31E4:ECF9  00 00 80 8F 0A 01                    db       00h, 00h, 80h, 8Fh, 0Ah, 01h +31E4:ECFF  00 00 00 8E 0A 01                    db       00h, 00h, 00h, 8Eh, 0Ah, 01h +31E4:ED05  00 00 00 90 0A FF                    db       00h, 00h, 00h, 90h, 0Ah,0FFh +31E4:ED0B  FF 20 ED 00 80 CA                    db      0FFh, 20h,0EDh, 00h, 80h,0CAh +31E4:ED11  09 00 00 00 80 92                    db       09h, 00h, 00h, 00h, 80h, 92h +31E4:ED17  0A 01 00 00 80 94                    db       0Ah, 01h, 00h, 00h, 80h, 94h +31E4:ED1D  0A 02 00 00 00 91                    db       0Ah, 02h, 00h, 00h, 00h, 91h +31E4:ED23  0A 01 00 00 00 93                    db       0Ah, 01h, 00h, 00h, 00h, 93h +31E4:ED29  0A 02 00 00 00 95                    db       0Ah, 02h, 00h, 00h, 00h, 95h +31E4:ED2F  0A FF FF 40 ED 00                    db       0Ah,0FFh,0FFh, 40h,0EDh, 00h +31E4:ED35  80 40 09 00 00 00                    db       80h, 40h, 09h, 00h, 00h, 00h +31E4:ED3B  80 24 04 01 00 00                    db       80h, 24h, 04h, 01h, 00h, 00h +31E4:ED41  00 0A 0B 01 00 00                    db       00h, 0Ah, 0Bh, 01h, 00h, 00h +31E4:ED47  00 0B 0B FF FF 60                    db       00h, 0Bh, 0Bh,0FFh,0FFh, 60h +31E4:ED4D  ED 69 23 03 09 00                    db      0EDh, 69h, 23h, 03h, 09h, 00h +31E4:ED53  00 00 80 99 0A 02                    db       00h, 00h, 80h, 99h, 0Ah, 02h +31E4:ED59  00 00 80 97 0A 01                    db       00h, 00h, 80h, 97h, 0Ah, 01h +31E4:ED5F  00 00 00 96 0A 02                    db       00h, 00h, 00h, 96h, 0Ah, 02h +31E4:ED65  00 00 00 98 0A FF                    db       00h, 00h, 00h, 98h, 0Ah,0FFh +31E4:ED6B  FF 00 00 9A 0A FF                    db      0FFh, 00h, 00h, 9Ah, 0Ah,0FFh +31E4:ED71  FF 86 ED 00 00 40                    db      0FFh, 86h,0EDh, 00h, 00h, 40h +31E4:ED77  09 00 00 00 80 9C                    db       09h, 00h, 00h, 00h, 80h, 9Ch +31E4:ED7D  0A 01 00 00 80 24                    db       0Ah, 01h, 00h, 00h, 80h, 24h +31E4:ED83  04 02 00 00 00 9B                    db       04h, 02h, 00h, 00h, 00h, 9Bh +31E4:ED89  0A FF FF 00 00 9D                    db       0Ah,0FFh,0FFh, 00h, 00h, 9Dh +31E4:ED8F  0A 02 00 00 00 9E                    db       0Ah, 02h, 00h, 00h, 00h, 9Eh +31E4:ED95  0A FF FF AC ED 00                    db       0Ah,0FFh,0FFh,0ACh,0EDh, 00h +31E4:ED9B  80 48 09 00 00 00                    db       80h, 48h, 09h, 00h, 00h, 00h +31E4:EDA1  80 A3 0A 01 00 00                    db       80h,0A3h, 0Ah, 01h, 00h, 00h +31E4:EDA7  80 D1 0A 02 00 00                    db       80h,0D1h, 0Ah, 02h, 00h, 00h +31E4:EDAD  00 A2 0A 01 00 00                    db       00h,0A2h, 0Ah, 01h, 00h, 00h +31E4:EDB3  00 A4 0A 02 00 00                    db       00h,0A4h, 0Ah, 02h, 00h, 00h +31E4:EDB9  00 A5 0A FF FF C6                    db       00h,0A5h, 0Ah,0FFh,0FFh,0C6h +31E4:EDBF  ED 00 80 92 09 00                    db      0EDh, 00h, 80h, 92h, 09h, 00h +31E4:EDC5  00 00 00 D2 0A FF                    db       00h, 00h, 00h,0D2h, 0Ah,0FFh +31E4:EDCB  FF E0 ED 00 80 38                    db      0FFh,0E0h,0EDh, 00h, 80h, 38h +31E4:EDD1  0A 00 00 00 80 D4                    db       0Ah, 00h, 00h, 00h, 80h,0D4h +31E4:EDD7  0A 01 00 00 80 D6                    db       0Ah, 01h, 00h, 00h, 80h,0D6h +31E4:EDDD  0A 02 00 00 00 D3                    db       0Ah, 02h, 00h, 00h, 00h,0D3h +31E4:EDE3  0A 01 00 00 00 D5                    db       0Ah, 01h, 00h, 00h, 00h,0D5h +31E4:EDE9  0A 02 00 00 00 24                    db       0Ah, 02h, 00h, 00h, 00h, 24h +31E4:EDEF  04 FF FF 12 EE 00                    db       04h,0FFh,0FFh, 12h,0EEh, 00h +31E4:EDF5  80 C9 0A 00 00 00                    db       80h,0C9h, 0Ah, 00h, 00h, 00h +31E4:EDFB  80 CB 0A 01 00 00                    db       80h,0CBh, 0Ah, 01h, 00h, 00h +31E4:EE01  80 CD 0A 02 00 00                    db       80h,0CDh, 0Ah, 02h, 00h, 00h +31E4:EE07  80 CD 0A 03 00 00                    db       80h,0CDh, 0Ah, 03h, 00h, 00h +31E4:EE0D  80 24 04 04 00 00                    db       80h, 24h, 04h, 04h, 00h, 00h +31E4:EE13  00 CA 0A 01 00 00                    db       00h,0CAh, 0Ah, 01h, 00h, 00h +31E4:EE19  00 CC 0A 02 00 00                    db       00h,0CCh, 0Ah, 02h, 00h, 00h +31E4:EE1F  00 CE 0A 03 00 00                    db       00h,0CEh, 0Ah, 03h, 00h, 00h +31E4:EE25  00 CF 0A 04 00 FE                    db       00h,0CFh, 0Ah, 04h, 00h,0FEh +31E4:EE2B  28 24 04 FF FF 44                    db       28h, 24h, 04h,0FFh,0FFh, 44h +31E4:EE31  EE 00 80 77 0B 00                    db      0EEh, 00h, 80h, 77h, 0Bh, 00h +31E4:EE37  00 00 80 79 0B 01                    db       00h, 00h, 80h, 79h, 0Bh, 01h +31E4:EE3D  00 00 80 7B 0B 02                    db       00h, 00h, 80h, 7Bh, 0Bh, 02h +31E4:EE43  00 00 00 78 0B 01                    db       00h, 00h, 00h, 78h, 0Bh, 01h +31E4:EE49  00 00 00 7A 0B 02                    db       00h, 00h, 00h, 7Ah, 0Bh, 02h +31E4:EE4F  00 00 00 7C 0B FF                    db       00h, 00h, 00h, 7Ch, 0Bh,0FFh +31E4:EE55  FF 82 EE 00 80 BA                    db      0FFh, 82h,0EEh, 00h, 80h,0BAh +31E4:EE5B  0A 00 00 00 80 BC                    db       0Ah, 00h, 00h, 00h, 80h,0BCh +31E4:EE61  0A 01 00 00 80 BE                    db       0Ah, 01h, 00h, 00h, 80h,0BEh +31E4:EE67  0A 02 00 00 80 C0                    db       0Ah, 02h, 00h, 00h, 80h,0C0h +31E4:EE6D  0A 03 00 00 80 C2                    db       0Ah, 03h, 00h, 00h, 80h,0C2h +31E4:EE73  0A 04 00 00 80 C4                    db       0Ah, 04h, 00h, 00h, 80h,0C4h +31E4:EE79  0A 05 00 00 80 C6                    db       0Ah, 05h, 00h, 00h, 80h,0C6h +31E4:EE7F  0A 06 00 00 00 BB                    db       0Ah, 06h, 00h, 00h, 00h,0BBh +31E4:EE85  0A 01 00 00 00 BD                    db       0Ah, 01h, 00h, 00h, 00h,0BDh +31E4:EE8B  0A 02 00 00 00 BF                    db       0Ah, 02h, 00h, 00h, 00h,0BFh +31E4:EE91  0A 03 00 00 00 C1                    db       0Ah, 03h, 00h, 00h, 00h,0C1h +31E4:EE97  0A 04 00 00 00 C3                    db       0Ah, 04h, 00h, 00h, 00h,0C3h +31E4:EE9D  0A 05 00 00 00 C5                    db       0Ah, 05h, 00h, 00h, 00h,0C5h +31E4:EEA3  0A 06 00 F1 28 C7                    db       0Ah, 06h, 00h,0F1h, 28h,0C7h +31E4:EEA9  0A FF FF B4 EE 00                    db       0Ah,0FFh,0FFh,0B4h,0EEh, 00h +31E4:EEAF  80 24 04 00 00 00                    db       80h, 24h, 04h, 00h, 00h, 00h +31E4:EEB5  00 C8 0A FF FF CE                    db       00h,0C8h, 0Ah,0FFh,0FFh,0CEh +31E4:EEBB  EE 00 80 B1 0F 00                    db      0EEh, 00h, 80h,0B1h, 0Fh, 00h +31E4:EEC1  00 00 80 B3 0F 01                    db       00h, 00h, 80h,0B3h, 0Fh, 01h +31E4:EEC7  00 00 80 C1 0F 02                    db       00h, 00h, 80h,0C1h, 0Fh, 02h +31E4:EECD  00 00 00 B2 0F 01                    db       00h, 00h, 00h,0B2h, 0Fh, 01h +31E4:EED3  00 9A 29 B4 0F 02                    db       00h, 9Ah, 29h,0B4h, 0Fh, 02h +31E4:EED9  00 00 00 C2 0F FF                    db       00h, 00h, 00h,0C2h, 0Fh,0FFh +31E4:EEDF  FF 1E EF 00 00 B5                    db      0FFh, 1Eh,0EFh, 00h, 00h,0B5h +31E4:EEE5  8F 00 00 00 00 B7                    db       8Fh, 00h, 00h, 00h, 00h,0B7h +31E4:EEEB  8F 01 00 00 00 B9                    db       8Fh, 01h, 00h, 00h, 00h,0B9h +31E4:EEF1  8F 02 00 00 80 BF                    db       8Fh, 02h, 00h, 00h, 80h,0BFh +31E4:EEF7  0F 05 00 00 00 C3                    db       0Fh, 05h, 00h, 00h, 00h,0C3h +31E4:EEFD  0F 07 00 02 2A C7                    db       0Fh, 07h, 00h, 02h, 2Ah,0C7h +31E4:EF03  0F 08 00 00 80 C5                    db       0Fh, 08h, 00h, 00h, 80h,0C5h +31E4:EF09  0F 09 00 00 80 BB                    db       0Fh, 09h, 00h, 00h, 80h,0BBh +31E4:EF0F  0F 03 00 00 80 BD                    db       0Fh, 03h, 00h, 00h, 80h,0BDh +31E4:EF15  0F                                   db       0Fh +31E4:EF16  04                   data_1199       db      4 +31E4:EF17  00 00 80 C1 0F 06                    db       00h, 00h, 80h,0C1h, 0Fh, 06h +31E4:EF1D  00 00 00 B6 0F 01                    db       00h, 00h, 00h,0B6h, 0Fh, 01h +31E4:EF23  00 EC 29 B8 0F FF                    db       00h,0ECh, 29h,0B8h, 0Fh,0FFh +31E4:EF29  FF 00 00 BA 0F 07                    db      0FFh, 00h, 00h,0BAh, 0Fh, 07h +31E4:EF2F  00 00 00 BC 0F 08                    db       00h, 00h, 00h,0BCh, 0Fh, 08h +31E4:EF35  00 00 00 BE 0F 04                    db       00h, 00h, 00h,0BEh, 0Fh, 04h +31E4:EF3B  00 00 00 C0 0F 04                    db       00h, 00h, 00h,0C0h, 0Fh, 04h +31E4:EF41  00 00 00 C2 0F 04                    db       00h, 00h, 00h,0C2h, 0Fh, 04h +31E4:EF47  00 C0 29 C4 0F FF                    db       00h,0C0h, 29h,0C4h, 0Fh,0FFh +31E4:EF4D  FF D6 29 C8 0F FF                    db      0FFh,0D6h, 29h,0C8h, 0Fh,0FFh +31E4:EF53  FF AA 29 C6 0F FF                    db      0FFh,0AAh, 29h,0C6h, 0Fh,0FFh +31E4:EF59  FF 62 EF 00 80 24                    db      0FFh, 62h,0EFh, 00h, 80h, 24h +31E4:EF5F  04 00 00 00 00 D1                    db       04h, 00h, 00h, 00h, 00h,0D1h +31E4:EF65  0F FF FF 88 EF 00                    db       0Fh,0FFh,0FFh, 88h,0EFh, 00h +31E4:EF6B  80 24 84 00 00 00                    db       80h, 24h, 84h, 00h, 00h, 00h +31E4:EF71  00 D3 8F 01 00 02                    db       00h,0D3h, 8Fh, 01h, 00h, 02h +31E4:EF77  2A C7 0F 03 00 00                    db       2Ah,0C7h, 0Fh, 03h, 00h, 00h +31E4:EF7D  80 C5 0F 04 00 00                    db       80h,0C5h, 0Fh, 04h, 00h, 00h +31E4:EF83  80 D5 0F 02 00 00                    db       80h,0D5h, 0Fh, 02h, 00h, 00h +31E4:EF89  00 D2 0F 01 00 00                    db       00h,0D2h, 0Fh, 01h, 00h, 00h +31E4:EF8F  00 D4 0F 04 00 00                    db       00h,0D4h, 0Fh, 04h, 00h, 00h +31E4:EF95  00 D6 0F FF FF D6                    db       00h,0D6h, 0Fh,0FFh,0FFh,0D6h +31E4:EF9B  29 C8 0F FF FF AA                    db       29h,0C8h, 0Fh,0FFh,0FFh,0AAh +31E4:EFA1  29 C6 0F FF FF B4                    db       29h,0C6h, 0Fh,0FFh,0FFh,0B4h +31E4:EFA7  EF 00 80 D7 0F 00                    db      0EFh, 00h, 80h,0D7h, 0Fh, 00h +31E4:EFAD  00 00 80 D9 0F 01                    db       00h, 00h, 80h,0D9h, 0Fh, 01h +31E4:EFB3  00 00 00 D8 0F 01                    db       00h, 00h, 00h,0D8h, 0Fh, 01h +31E4:EFB9  00 09 2A DA 0F FF                    db       00h, 09h, 2Ah,0DAh, 0Fh,0FFh +31E4:EFBF  FF C8 EF 00 80 12                    db      0FFh,0C8h,0EFh, 00h, 80h, 12h +31E4:EFC5  10 00 00 00 00 13                    db       10h, 00h, 00h, 00h, 00h, 13h +31E4:EFCB  10 FF FF D6 EF 00                    db       10h,0FFh,0FFh,0D6h,0EFh, 00h +31E4:EFD1  80 24 04 00 00 00                    db       80h, 24h, 04h, 00h, 00h, 00h +31E4:EFD7  00 DB 0F FF FF EA                    db       00h,0DBh, 0Fh,0FFh,0FFh,0EAh +31E4:EFDD  EF 00 80 DC 0F 00                    db      0EFh, 00h, 80h,0DCh, 0Fh, 00h +31E4:EFE3  00 00 80 24 04 01                    db       00h, 00h, 80h, 24h, 04h, 01h +31E4:EFE9  00 00 00 DD 0F 01                    db       00h, 00h, 00h,0DDh, 0Fh, 01h +31E4:EFEF  00 1F 2A 24 04 FF                    db       00h, 1Fh, 2Ah, 24h, 04h,0FFh +31E4:EFF5  FF                                   db      0FFh + +31E4:EFF6  FE EF 00 80 1D                       db      0FEh,0EFh, 00h, 80h, 1Dh +31E4:EFFB  10 00 00 00 00 24                    db       10h, 00h, 00h, 00h, 00h, 24h +31E4:F001  04 FF FF 00                          db       04h,0FFh,0FFh, 00h +31E4:F005  000B[00]                             db      11 dup (0) + +31E4:F010  0000                 timer_ticks     dw      0                       ;  xref 273F:14BF, 273F:14E9 +                                                                                ;       273F:48D5, 273F:48DD +                                                                                ;       273F:9500 +31E4:F012  000E[00]                             db      14 dup (0) + +                                data_seg        ends + + + +                                ;------------------------------------------------------------  scripts2_seg  ---- + +                                scripts2_seg    segment byte public +                                                assume cs:scripts2_seg, ds:scripts2_seg, ss:stack_seg_k + +40E6:0000  06 00 06 00 01 00                    db       06h, 00h, 06h, 00h, 01h, 00h +40E6:0006  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:000C  03 00 03 00 04 00                    db       03h, 00h, 03h, 00h, 04h, 00h +40E6:0012  04 00 05 00 05 00                    db       04h, 00h, 05h, 00h, 05h, 00h +40E6:0018  04 00 04 00 02 00                    db       04h, 00h, 04h, 00h, 02h, 00h +40E6:001E  02 00 06 00 06 00                    db       02h, 00h, 06h, 00h, 06h, 00h +40E6:0024  06 00 06 00 07 00                    db       06h, 00h, 06h, 00h, 07h, 00h +40E6:002A  07 00 08 00 08 00                    db       07h, 00h, 08h, 00h, 08h, 00h +40E6:0030  09 00 09 00 0A 00                    db       09h, 00h, 09h, 00h, 0Ah, 00h +40E6:0036  0A 00 0B 00 0B 00                    db       0Ah, 00h, 0Bh, 00h, 0Bh, 00h +40E6:003C  0A 00 0A 00 0B 00                    db       0Ah, 00h, 0Ah, 00h, 0Bh, 00h +40E6:0042  0B 00 09 00 09 00                    db       0Bh, 00h, 09h, 00h, 09h, 00h +40E6:0048  08 00 08 00 07 00                    db       08h, 00h, 08h, 00h, 07h, 00h +40E6:004E  07 00 06 00 FC FF                    db       07h, 00h, 06h, 00h,0FCh,0FFh +40E6:0054  06 00 06 00 01 00                    db       06h, 00h, 06h, 00h, 01h, 00h +40E6:005A  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:0060  03 00 03 00 04 00                    db       03h, 00h, 03h, 00h, 04h, 00h +40E6:0066  04 00 05 00 05 00                    db       04h, 00h, 05h, 00h, 05h, 00h +40E6:006C  04 00 04 00 02 00                    db       04h, 00h, 04h, 00h, 02h, 00h +40E6:0072  02 00 F8 FF 11 00                    db       02h, 00h,0F8h,0FFh, 11h, 00h +40E6:0078  20 00 06 00 06 00                    db       20h, 00h, 06h, 00h, 06h, 00h +40E6:007E  FC FF F6 FF 00 00                    db      0FCh,0FFh,0F6h,0FFh, 00h, 00h +40E6:0084  00 00 F9 FF 15 59                    db       00h, 00h,0F9h,0FFh, 15h, 59h +40E6:008A  FD FF F8 FF 00 00                    db      0FDh,0FFh,0F8h,0FFh, 00h, 00h +40E6:0090  FB FF 03 00 2F 00                    db      0FBh,0FFh, 03h, 00h, 2Fh, 00h +40E6:0096  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:009C  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:00A2  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:00A8  F8 FF 07 00 1C 00                    db      0F8h,0FFh, 07h, 00h, 1Ch, 00h +40E6:00AE  F8 FF 1B 00 12 00                    db      0F8h,0FFh, 1Bh, 00h, 12h, 00h +40E6:00B4  F8 FF 1C 00 17 00                    db      0F8h,0FFh, 1Ch, 00h, 17h, 00h +40E6:00BA  F8 FF 1C 00 18 00                    db      0F8h,0FFh, 1Ch, 00h, 18h, 00h +40E6:00C0  F8 FF 1C 00 11 00                    db      0F8h,0FFh, 1Ch, 00h, 11h, 00h +40E6:00C6  09 00 0A 00 0B 00                    db       09h, 00h, 0Ah, 00h, 0Bh, 00h +40E6:00CC  0C 00 0D 00 0E 00                    db       0Ch, 00h, 0Dh, 00h, 0Eh, 00h +40E6:00D2  F9 FF E9 5C FB FF                    db      0F9h,0FFh,0E9h, 5Ch,0FBh,0FFh +40E6:00D8  02 00 30 00 FD FF                    db       02h, 00h, 30h, 00h,0FDh,0FFh +40E6:00DE  08 00 00 00 22 00                    db       08h, 00h, 00h, 00h, 22h, 00h +40E6:00E4  F6 FF 00 0C 82 00                    db      0F6h,0FFh, 00h, 0Ch, 82h, 00h +40E6:00EA  FC FF F8 FF 1E 00                    db      0FCh,0FFh,0F8h,0FFh, 1Eh, 00h +40E6:00F0  1C 00 FE FF CE 00                    db       1Ch, 00h,0FEh,0FFh,0CEh, 00h +40E6:00F6  13 01 00 00 FE FF                    db       13h, 01h, 00h, 00h,0FEh,0FFh +40E6:00FC  D0 00 13 01 01 00                    db      0D0h, 00h, 13h, 01h, 01h, 00h +40E6:0102  F8 FF 1F 00 1C 00                    db      0F8h,0FFh, 1Fh, 00h, 1Ch, 00h +40E6:0108  FE FF D2 00 13 01                    db      0FEh,0FFh,0D2h, 00h, 13h, 01h +40E6:010E  02 00 FE FF D0 00                    db       02h, 00h,0FEh,0FFh,0D0h, 00h +40E6:0114  13 01 01 00 FA FF                    db       13h, 01h, 01h, 00h,0FAh,0FFh +40E6:011A  EC 00 FE FF 80 00                    db      0ECh, 00h,0FEh,0FFh, 80h, 00h +40E6:0120  64 00 FF FF 1E 00                    db       64h, 00h,0FFh,0FFh, 1Eh, 00h +40E6:0126  FE FF 58 01 BC 00                    db      0FEh,0FFh, 58h, 01h,0BCh, 00h +40E6:012C  00 00 FE FF 58 01                    db       00h, 00h,0FEh,0FFh, 58h, 01h +40E6:0132  D0 00 00 00 FE FF                    db      0D0h, 00h, 00h, 00h,0FEh,0FFh +40E6:0138  58 01 F7 00 00 00                    db       58h, 01h,0F7h, 00h, 00h, 00h +40E6:013E  FE FF 58 01 33 01                    db      0FEh,0FFh, 58h, 01h, 33h, 01h +40E6:0144  00 00 F8 FF 06 00                    db       00h, 00h,0F8h,0FFh, 06h, 00h +40E6:014A  01 00 FE FF 57 01                    db       01h, 00h,0FEh,0FFh, 57h, 01h +40E6:0150  33 01 01 00 FE FF                    db       33h, 01h, 01h, 00h,0FEh,0FFh +40E6:0156  56 01 33 01 02 00                    db       56h, 01h, 33h, 01h, 02h, 00h +40E6:015C  FE FF 55 01 33 01                    db      0FEh,0FFh, 55h, 01h, 33h, 01h +40E6:0162  03 00 FE FF 53 01                    db       03h, 00h,0FEh,0FFh, 53h, 01h +40E6:0168  33 01 04 00 FE FF                    db       33h, 01h, 04h, 00h,0FEh,0FFh +40E6:016E  52 01 33 01 05 00                    db       52h, 01h, 33h, 01h, 05h, 00h +40E6:0174  06 00 FE FF 52 01                    db       06h, 00h,0FEh,0FFh, 52h, 01h +40E6:017A  64 00 FF FF 02 00                    db       64h, 00h,0FFh,0FFh, 02h, 00h +40E6:0180  FA FF 1C 01 00 00                    db      0FAh,0FFh, 1Ch, 01h, 00h, 00h +40E6:0186  FF FF 02 00 FE FF                    db      0FFh,0FFh, 02h, 00h,0FEh,0FFh +40E6:018C  47 01 FB 00 01 00                    db       47h, 01h,0FBh, 00h, 01h, 00h +40E6:0192  FF FF 02 00 FE FF                    db      0FFh,0FFh, 02h, 00h,0FEh,0FFh +40E6:0198  47 01 08 01 02 00                    db       47h, 01h, 08h, 01h, 02h, 00h +40E6:019E  FF FF 02 00 FC FF                    db      0FFh,0FFh, 02h, 00h,0FCh,0FFh +40E6:01A4  02 00 F8 FF 05 00                    db       02h, 00h,0F8h,0FFh, 05h, 00h +40E6:01AA  04 00 FE FF F4 00                    db       04h, 00h,0FEh,0FFh,0F4h, 00h +40E6:01B0  0F 01 03 00 FE FF                    db       0Fh, 01h, 03h, 00h,0FEh,0FFh +40E6:01B6  FE 00 0F 01 02 00                    db      0FEh, 00h, 0Fh, 01h, 02h, 00h +40E6:01BC  FE FF 08 01 0F 01                    db      0FEh,0FFh, 08h, 01h, 0Fh, 01h +40E6:01C2  03 00 FE FF 12 01                    db       03h, 00h,0FEh,0FFh, 12h, 01h +40E6:01C8  0F 01 02 00 FE FF                    db       0Fh, 01h, 02h, 00h,0FEh,0FFh +40E6:01CE  1C 01 0F 01 03 00                    db       1Ch, 01h, 0Fh, 01h, 03h, 00h +40E6:01D4  FF FF 06 00 F8 FF                    db      0FFh,0FFh, 06h, 00h,0F8h,0FFh +40E6:01DA  05 00 04 00 FE FF                    db       05h, 00h, 04h, 00h,0FEh,0FFh +40E6:01E0  26 01 0F 01 02 00                    db       26h, 01h, 0Fh, 01h, 02h, 00h +40E6:01E6  FE FF 30 01 0F 01                    db      0FEh,0FFh, 30h, 01h, 0Fh, 01h +40E6:01EC  03 00 FE FF 3A 01                    db       03h, 00h,0FEh,0FFh, 3Ah, 01h +40E6:01F2  0F 01 02 00 FE FF                    db       0Fh, 01h, 02h, 00h,0FEh,0FFh +40E6:01F8  44 01 0F 01 03 00                    db       44h, 01h, 0Fh, 01h, 03h, 00h +40E6:01FE  FE FF 4E 01 0F 01                    db      0FEh,0FFh, 4Eh, 01h, 0Fh, 01h +40E6:0204  02 00 FE FF 58 01                    db       02h, 00h,0FEh,0FFh, 58h, 01h +40E6:020A  0F 01 03 00 FE FF                    db       0Fh, 01h, 03h, 00h,0FEh,0FFh +40E6:0210  62 01 0F 01 02 00                    db       62h, 01h, 0Fh, 01h, 02h, 00h +40E6:0216  FE FF 6C 01 0F 01                    db      0FEh,0FFh, 6Ch, 01h, 0Fh, 01h +40E6:021C  03 00 FE FF 4E 01                    db       03h, 00h,0FEh,0FFh, 4Eh, 01h +40E6:0222  64 00 FC FF FE FF                    db       64h, 00h,0FCh,0FFh,0FEh,0FFh +40E6:0228  3F 01 12 01 01 00                    db       3Fh, 01h, 12h, 01h, 01h, 00h +40E6:022E  F8 FF 05 00 01 00                    db      0F8h,0FFh, 05h, 00h, 01h, 00h +40E6:0234  FE FF 35 01 12 01                    db      0FEh,0FFh, 35h, 01h, 12h, 01h +40E6:023A  00 00 FE FF 2B 01                    db       00h, 00h,0FEh,0FFh, 2Bh, 01h +40E6:0240  12 01 01 00 FE FF                    db       12h, 01h, 01h, 00h,0FEh,0FFh +40E6:0246  21 01 12 01 00 00                    db       21h, 01h, 12h, 01h, 00h, 00h +40E6:024C  FE FF 17 01 12 01                    db      0FEh,0FFh, 17h, 01h, 12h, 01h +40E6:0252  01 00 F8 FF 05 00                    db       01h, 00h,0F8h,0FFh, 05h, 00h +40E6:0258  01 00 FE FF 0D 01                    db       01h, 00h,0FEh,0FFh, 0Dh, 01h +40E6:025E  12 01 00 00 FE FF                    db       12h, 01h, 00h, 00h,0FEh,0FFh +40E6:0264  03 01 12 01 01 00                    db       03h, 01h, 12h, 01h, 01h, 00h +40E6:026A  FE FF F9 00 12 01                    db      0FEh,0FFh,0F9h, 00h, 12h, 01h +40E6:0270  00 00 FE FF EF 00                    db       00h, 00h,0FEh,0FFh,0EFh, 00h +40E6:0276  12 01 01 00 FE FF                    db       12h, 01h, 01h, 00h,0FEh,0FFh +40E6:027C  EF 00 64 00 FC FF                    db      0EFh, 00h, 64h, 00h,0FCh,0FFh +40E6:0282  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0288  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:028E  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:0294  09 00 0A 00 0B 00                    db       09h, 00h, 0Ah, 00h, 0Bh, 00h +40E6:029A  FA FF 82 02 00 00                    db      0FAh,0FFh, 82h, 02h, 00h, 00h +40E6:02A0  01 00 02 00 FA FF                    db       01h, 00h, 02h, 00h,0FAh,0FFh +40E6:02A6  9E 02 FE FF 17 01                    db       9Eh, 02h,0FEh,0FFh, 17h, 01h +40E6:02AC  C0 00 00 00 01 00                    db      0C0h, 00h, 00h, 00h, 01h, 00h +40E6:02B2  FE FF 1C 01 CD 00                    db      0FEh,0FFh, 1Ch, 01h,0CDh, 00h +40E6:02B8  02 00 FE FF 1D 01                    db       02h, 00h,0FEh,0FFh, 1Dh, 01h +40E6:02BE  D8 00 03 00 FE FF                    db      0D8h, 00h, 03h, 00h,0FEh,0FFh +40E6:02C4  1F 01 DC 00 04 00                    db       1Fh, 01h,0DCh, 00h, 04h, 00h +40E6:02CA  F8 FF 24 00 07 00                    db      0F8h,0FFh, 24h, 00h, 07h, 00h +40E6:02D0  FE FF 21 01 E0 00                    db      0FEh,0FFh, 21h, 01h,0E0h, 00h +40E6:02D6  04 00 FF FF 01 00                    db       04h, 00h,0FFh,0FFh, 01h, 00h +40E6:02DC  05 00 FF FF 02 00                    db       05h, 00h,0FFh,0FFh, 02h, 00h +40E6:02E2  06 00 FF FF 03 00                    db       06h, 00h,0FFh,0FFh, 03h, 00h +40E6:02E8  07 00 FF FF 01 00                    db       07h, 00h,0FFh,0FFh, 01h, 00h +40E6:02EE  FC FF 24 00 FF FF                    db      0FCh,0FFh, 24h, 00h,0FFh,0FFh +40E6:02F4  0A 00 25 00 FF FF                    db       0Ah, 00h, 25h, 00h,0FFh,0FFh +40E6:02FA  0A 00 26 00 FF FF                    db       0Ah, 00h, 26h, 00h,0FFh,0FFh +40E6:0300  0A 00 27 00 FF FF                    db       0Ah, 00h, 27h, 00h,0FFh,0FFh +40E6:0306  0A 00 26 00 FF FF                    db       0Ah, 00h, 26h, 00h,0FFh,0FFh +40E6:030C  04 00 27 00 FF FF                    db       04h, 00h, 27h, 00h,0FFh,0FFh +40E6:0312  06 00 26 00 FF FF                    db       06h, 00h, 26h, 00h,0FFh,0FFh +40E6:0318  04 00 27 00 FF FF                    db       04h, 00h, 27h, 00h,0FFh,0FFh +40E6:031E  06 00 FC FF F9 FF                    db       06h, 00h,0FCh,0FFh,0F9h,0FFh +40E6:0324  95 5C 00 00 FF FF                    db       95h, 5Ch, 00h, 00h,0FFh,0FFh +40E6:032A  0A 00 01 00 FF FF                    db       0Ah, 00h, 01h, 00h,0FFh,0FFh +40E6:0330  0A 00 02 00 FF FF                    db       0Ah, 00h, 02h, 00h,0FFh,0FFh +40E6:0336  0A 00 03 00 FF FF                    db       0Ah, 00h, 03h, 00h,0FFh,0FFh +40E6:033C  0A 00 02 00 FF FF                    db       0Ah, 00h, 02h, 00h,0FFh,0FFh +40E6:0342  04 00 03 00 FF FF                    db       04h, 00h, 03h, 00h,0FFh,0FFh +40E6:0348  06 00 02 00 FF FF                    db       06h, 00h, 02h, 00h,0FFh,0FFh +40E6:034E  04 00 03 00 FF FF                    db       04h, 00h, 03h, 00h,0FFh,0FFh +40E6:0354  06 00 F9 FF 80 5C                    db       06h, 00h,0F9h,0FFh, 80h, 5Ch +40E6:035A  FC FF F8 FF 14 00                    db      0FCh,0FFh,0F8h,0FFh, 14h, 00h +40E6:0360  04 00 FF FF 0B 00                    db       04h, 00h,0FFh,0FFh, 0Bh, 00h +40E6:0366  01 00 FF FF 0A 00                    db       01h, 00h,0FFh,0FFh, 0Ah, 00h +40E6:036C  F8 FF 14 00 04 00                    db      0F8h,0FFh, 14h, 00h, 04h, 00h +40E6:0372  02 00 FF FF 37 00                    db       02h, 00h,0FFh,0FFh, 37h, 00h +40E6:0378  F8 FF 14 00 04 00                    db      0F8h,0FFh, 14h, 00h, 04h, 00h +40E6:037E  01 00 00 00 FC FF                    db       01h, 00h, 00h, 00h,0FCh,0FFh +40E6:0384  FB FF 03 00 19 00                    db      0FBh,0FFh, 03h, 00h, 19h, 00h +40E6:038A  FE FF BE 00 FD 00                    db      0FEh,0FFh,0BEh, 00h,0FDh, 00h +40E6:0390  03 00 FF FF 05 00                    db       03h, 00h,0FFh,0FFh, 05h, 00h +40E6:0396  FB FF 03 00 1A 00                    db      0FBh,0FFh, 03h, 00h, 1Ah, 00h +40E6:039C  FE FF BE 00 FB 00                    db      0FEh,0FFh,0BEh, 00h,0FBh, 00h +40E6:03A2  04 00 FF FF 03 00                    db       04h, 00h,0FFh,0FFh, 03h, 00h +40E6:03A8  FB FF 02 00 1A 00                    db      0FBh,0FFh, 02h, 00h, 1Ah, 00h +40E6:03AE  FE FF BE 00 F4 00                    db      0FEh,0FFh,0BEh, 00h,0F4h, 00h +40E6:03B4  05 00 FF FF 01 00                    db       05h, 00h,0FFh,0FFh, 01h, 00h +40E6:03BA  FB FF 02 00 1B 00                    db      0FBh,0FFh, 02h, 00h, 1Bh, 00h +40E6:03C0  FE FF BE 00 F3 00                    db      0FEh,0FFh,0BEh, 00h,0F3h, 00h +40E6:03C6  06 00 FF FF 01 00                    db       06h, 00h,0FFh,0FFh, 01h, 00h +40E6:03CC  FB FF 01 00 1B 00                    db      0FBh,0FFh, 01h, 00h, 1Bh, 00h +40E6:03D2  FE FF BE 00 F3 00                    db      0FEh,0FFh,0BEh, 00h,0F3h, 00h +40E6:03D8  07 00 FF FF 01 00                    db       07h, 00h,0FFh,0FFh, 01h, 00h +40E6:03DE  FC FF 02 00 FF FF                    db      0FCh,0FFh, 02h, 00h,0FFh,0FFh +40E6:03E4  14 00 01 00 FF FF                    db       14h, 00h, 01h, 00h,0FFh,0FFh +40E6:03EA  1E 00 02 00 FF FF                    db       1Eh, 00h, 02h, 00h,0FFh,0FFh +40E6:03F0  05 00 00 00 FC FF                    db       05h, 00h, 00h, 00h,0FCh,0FFh +40E6:03F6  02 00 FF FF 1E 00                    db       02h, 00h,0FFh,0FFh, 1Eh, 00h +40E6:03FC  00 00 FC FF F9 FF                    db       00h, 00h,0FCh,0FFh,0F9h,0FFh +40E6:0402  1A 5A 00 00 01 00                    db       1Ah, 5Ah, 00h, 00h, 01h, 00h +40E6:0408  02 00 03 00 00 00                    db       02h, 00h, 03h, 00h, 00h, 00h +40E6:040E  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0414  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:041A  03 00 00 00 01 00                    db       03h, 00h, 00h, 00h, 01h, 00h +40E6:0420  02 00 03 00 00 00                    db       02h, 00h, 03h, 00h, 00h, 00h +40E6:0426  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:042C  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0432  03 00 F9 FF 80 5C                    db       03h, 00h,0F9h,0FFh, 80h, 5Ch +40E6:0438  FC FF FF FF 32 00                    db      0FCh,0FFh,0FFh,0FFh, 32h, 00h +40E6:043E  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0444  04 00 F9 FF 28 5D                    db       04h, 00h,0F9h,0FFh, 28h, 5Dh +40E6:044A  FC FF FF FF 14 00                    db      0FCh,0FFh,0FFh,0FFh, 14h, 00h +40E6:0450  F9 FF AA 5A FF FF                    db      0F9h,0FFh,0AAh, 5Ah,0FFh,0FFh +40E6:0456  0A 00 00 00 01 00                    db       0Ah, 00h, 00h, 00h, 01h, 00h +40E6:045C  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0462  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0468  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:046E  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0474  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:047A  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0480  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0486  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:048C  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0492  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0498  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:049E  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04A4  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04AA  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04B0  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04B6  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04BC  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04C2  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04C8  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04CE  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04D4  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04DA  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04E0  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04E6  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04EC  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04F2  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:04F8  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:04FE  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0504  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:050A  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0510  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0516  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:051C  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0522  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0528  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:052E  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0534  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:053A  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0540  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0546  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:054C  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0552  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0558  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:055E  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0564  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:056A  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0570  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0576  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:057C  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0582  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0588  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:058E  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0594  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:059A  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05A0  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05A6  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05AC  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05B2  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05B8  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05BE  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05C4  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05CA  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05D0  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05D6  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05DC  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05E2  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05E8  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05EE  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:05F4  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:05FA  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0600  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0606  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:060C  01 00 00 00 F9 FF                    db       01h, 00h, 00h, 00h,0F9h,0FFh +40E6:0612  28 5D 10 00 10 00                    db       28h, 5Dh, 10h, 00h, 10h, 00h +40E6:0618  FA FF 16 06 00 00                    db      0FAh,0FFh, 16h, 06h, 00h, 00h +40E6:061E  01 00 F8 FF 26 00                    db       01h, 00h,0F8h,0FFh, 26h, 00h +40E6:0624  1E 00 F8 FF 27 00                    db       1Eh, 00h,0F8h,0FFh, 27h, 00h +40E6:062A  1E 00 FA FF 1C 06                    db       1Eh, 00h,0FAh,0FFh, 1Ch, 06h +40E6:0630  00 00 F8 FF 23 00                    db       00h, 00h,0F8h,0FFh, 23h, 00h +40E6:0636  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:063C  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:0642  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:0648  09 00 0A 00 FC FF                    db       09h, 00h, 0Ah, 00h,0FCh,0FFh +40E6:064E  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0654  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:065A  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:0660  09 00 0A 00 0B 00                    db       09h, 00h, 0Ah, 00h, 0Bh, 00h +40E6:0666  FA FF 4E 06 00 00                    db      0FAh,0FFh, 4Eh, 06h, 00h, 00h +40E6:066C  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0672  04 00 05 00 06 00                    db       04h, 00h, 05h, 00h, 06h, 00h +40E6:0678  06 00 06 00 06 00                    db       06h, 00h, 06h, 00h, 06h, 00h +40E6:067E  06 00 05 00 07 00                    db       06h, 00h, 05h, 00h, 07h, 00h +40E6:0684  00 00 F8 FF 11 00                    db       00h, 00h,0F8h,0FFh, 11h, 00h +40E6:068A  1D 00 FF FF 23 00                    db       1Dh, 00h,0FFh,0FFh, 23h, 00h +40E6:0690  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0696  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:069C  06 00 06 00 06 00                    db       06h, 00h, 06h, 00h, 06h, 00h +40E6:06A2  06 00 05 00 07 00                    db       06h, 00h, 05h, 00h, 07h, 00h +40E6:06A8  00 00 F8 FF 11 00                    db       00h, 00h,0F8h,0FFh, 11h, 00h +40E6:06AE  1D 00 FF FF 2D 00                    db       1Dh, 00h,0FFh,0FFh, 2Dh, 00h +40E6:06B4  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:06BA  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:06C0  06 00 06 00 06 00                    db       06h, 00h, 06h, 00h, 06h, 00h +40E6:06C6  06 00 06 00 06 00                    db       06h, 00h, 06h, 00h, 06h, 00h +40E6:06CC  06 00 06 00 05 00                    db       06h, 00h, 06h, 00h, 05h, 00h +40E6:06D2  07 00 00 00 F8 FF                    db       07h, 00h, 00h, 00h,0F8h,0FFh +40E6:06D8  11 00 1D 00 FF FF                    db       11h, 00h, 1Dh, 00h,0FFh,0FFh +40E6:06DE  28 00 FA FF 6A 06                    db       28h, 00h,0FAh,0FFh, 6Ah, 06h +40E6:06E4  F8 FF                                db      0F8h,0FFh +40E6:06E6  28                                   db      28h +40E6:06E7  0007[00]                             db      7 dup (0) +40E6:06EE  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:06F4  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:06FA  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0700  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:0706  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:070C  28                                   db      28h +40E6:070D  0007[00]                             db      7 dup (0) +40E6:0714  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:071A  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0720  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0726  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:072C  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:0732  28                                   db      28h +40E6:0733  0007[00]                             db      7 dup (0) +40E6:073A  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:0740  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0746  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:074C  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:0752  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:0758  28                                   db      28h +40E6:0759  0007[00]                             db      7 dup (0) +40E6:0760  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:0766  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:076C  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0772  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:0778  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:077E  28                                   db      28h +40E6:077F  0007[00]                             db      7 dup (0) +40E6:0786  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:078C  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0792  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0798  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:079E  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:07A4  28                                   db      28h +40E6:07A5  0007[00]                             db      7 dup (0) +40E6:07AC  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:07B2  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:07B8  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:07BE  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:07C4  04 00 04 00 05 00                    db       04h, 00h, 04h, 00h, 05h, 00h +40E6:07CA  05 00 06 00 06 00                    db       05h, 00h, 06h, 00h, 06h, 00h +40E6:07D0  07 00 07 00 08 00                    db       07h, 00h, 07h, 00h, 08h, 00h +40E6:07D6  08 00 09 00 09 00                    db       08h, 00h, 09h, 00h, 09h, 00h +40E6:07DC  0A 00 0A 00 0B 00                    db       0Ah, 00h, 0Ah, 00h, 0Bh, 00h +40E6:07E2  0B 00 0B 00 0B 00                    db       0Bh, 00h, 0Bh, 00h, 0Bh, 00h +40E6:07E8  0A 00 0A 00 09 00                    db       0Ah, 00h, 0Ah, 00h, 09h, 00h +40E6:07EE  09 00 08 00 F8 FF                    db       09h, 00h, 08h, 00h,0F8h,0FFh +40E6:07F4  11 00 1D 00 08 00                    db       11h, 00h, 1Dh, 00h, 08h, 00h +40E6:07FA  07 00 07 00 06 00                    db       07h, 00h, 07h, 00h, 06h, 00h +40E6:0800  06 00 05 00 05 00                    db       06h, 00h, 05h, 00h, 05h, 00h +40E6:0806  F8 FF                                db      0F8h,0FFh +40E6:0808  28                                   db      28h +40E6:0809  0007[00]                             db      7 dup (0) +40E6:0810  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:0816  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:081C  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0822  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:0828  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:082E  28                                   db      28h +40E6:082F  0007[00]                             db      7 dup (0) +40E6:0836  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:083C  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0842  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0848  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:084E  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:0854  28                                   db      28h +40E6:0855  0007[00]                             db      7 dup (0) +40E6:085C  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:0862  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0868  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:086E  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:0874  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:087A  28                                   db      28h +40E6:087B  0007[00]                             db      7 dup (0) +40E6:0882  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:0888  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:088E  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0894  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:089A  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:08A0  28                                   db      28h +40E6:08A1  0007[00]                             db      7 dup (0) +40E6:08A8  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:08AE  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:08B4  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:08BA  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:08C0  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:08C6  28                                   db      28h +40E6:08C7  0007[00]                             db      7 dup (0) +40E6:08CE  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:08D4  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:08DA  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:08E0  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:08E6  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:08EC  28                                   db      28h +40E6:08ED  0007[00]                             db      7 dup (0) +40E6:08F4  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:08FA  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0900  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0906  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:090C  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:0912  28                                   db      28h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 574 + +40E6:0913  0007[00]                             db      7 dup (0) +40E6:091A  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:0920  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0926  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:092C  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:0932  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:0938  28                                   db      28h +40E6:0939  0007[00]                             db      7 dup (0) +40E6:0940  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:0946  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:094C  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0952  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:0958  04 00 04 00 F8 FF                    db       04h, 00h, 04h, 00h,0F8h,0FFh +40E6:095E  28                                   db      28h +40E6:095F  0007[00]                             db      7 dup (0) +40E6:0966  01 00 01 00 F8 FF                    db       01h, 00h, 01h, 00h,0F8h,0FFh +40E6:096C  28 00 00 00 02 00                    db       28h, 00h, 00h, 00h, 02h, 00h +40E6:0972  02 00 F8 FF 28 00                    db       02h, 00h,0F8h,0FFh, 28h, 00h +40E6:0978  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:097E  04 00 04 00 05 00                    db       04h, 00h, 04h, 00h, 05h, 00h +40E6:0984  05 00 06 00 06 00                    db       05h, 00h, 06h, 00h, 06h, 00h +40E6:098A  07 00 07 00 08 00                    db       07h, 00h, 07h, 00h, 08h, 00h +40E6:0990  08 00 09 00 09 00                    db       08h, 00h, 09h, 00h, 09h, 00h +40E6:0996  0A 00 0A 00 0B 00                    db       0Ah, 00h, 0Ah, 00h, 0Bh, 00h +40E6:099C  0B 00 0B 00 0B 00                    db       0Bh, 00h, 0Bh, 00h, 0Bh, 00h +40E6:09A2  0A 00 0A 00 0B 00                    db       0Ah, 00h, 0Ah, 00h, 0Bh, 00h +40E6:09A8  0B 00 0B 00 0B 00                    db       0Bh, 00h, 0Bh, 00h, 0Bh, 00h +40E6:09AE  0B 00 0B 00 0B 00                    db       0Bh, 00h, 0Bh, 00h, 0Bh, 00h +40E6:09B4  0B 00 0A 00 09 00                    db       0Bh, 00h, 0Ah, 00h, 09h, 00h +40E6:09BA  09 00 08 00 F8 FF                    db       09h, 00h, 08h, 00h,0F8h,0FFh +40E6:09C0  11 00 1D 00 08 00                    db       11h, 00h, 1Dh, 00h, 08h, 00h +40E6:09C6  07 00 07 00 06 00                    db       07h, 00h, 07h, 00h, 06h, 00h +40E6:09CC  06 00 05 00 05 00                    db       06h, 00h, 05h, 00h, 05h, 00h +40E6:09D2  FF FF 03 00 FA FF                    db      0FFh,0FFh, 03h, 00h,0FAh,0FFh +40E6:09D8  E4 06 00 00 FA FF                    db      0E4h, 06h, 00h, 00h,0FAh,0FFh +40E6:09DE  DA 09 01 00 FF FF                    db      0DAh, 09h, 01h, 00h,0FFh,0FFh +40E6:09E4  00 00 02 00 FF FF                    db       00h, 00h, 02h, 00h,0FFh,0FFh +40E6:09EA  00 00 03 00 FF FF                    db       00h, 00h, 03h, 00h,0FFh,0FFh +40E6:09F0  00 00 04 00 FF FF                    db       00h, 00h, 04h, 00h,0FFh,0FFh +40E6:09F6  00 00 05 00 FF FF                    db       00h, 00h, 05h, 00h,0FFh,0FFh +40E6:09FC  00 00 06 00 FF FF                    db       00h, 00h, 06h, 00h,0FFh,0FFh +40E6:0A02  00 00 07 00 FF FF                    db       00h, 00h, 07h, 00h,0FFh,0FFh +40E6:0A08  00 00 08 00 FF FF                    db       00h, 00h, 08h, 00h,0FFh,0FFh +40E6:0A0E  00 00 09 00 FF FF                    db       00h, 00h, 09h, 00h,0FFh,0FFh +40E6:0A14  00 00 0A 00 FF FF                    db       00h, 00h, 0Ah, 00h,0FFh,0FFh +40E6:0A1A  00 00 0B 00 FF FF                    db       00h, 00h, 0Bh, 00h,0FFh,0FFh +40E6:0A20  00 00 0C 00 FF FF                    db       00h, 00h, 0Ch, 00h,0FFh,0FFh +40E6:0A26  00 00 0D 00 FF FF                    db       00h, 00h, 0Dh, 00h,0FFh,0FFh +40E6:0A2C  00 00 0E 00 FF FF                    db       00h, 00h, 0Eh, 00h,0FFh,0FFh +40E6:0A32  00 00 0F 00 FF FF                    db       00h, 00h, 0Fh, 00h,0FFh,0FFh +40E6:0A38  00 00 10 00 FF FF                    db       00h, 00h, 10h, 00h,0FFh,0FFh +40E6:0A3E  00 00 11 00 FF FF                    db       00h, 00h, 11h, 00h,0FFh,0FFh +40E6:0A44  00 00 12 00 FF FF                    db       00h, 00h, 12h, 00h,0FFh,0FFh +40E6:0A4A  00 00 13 00 FF FF                    db       00h, 00h, 13h, 00h,0FFh,0FFh +40E6:0A50  00 00 14 00 FF FF                    db       00h, 00h, 14h, 00h,0FFh,0FFh +40E6:0A56  00 00 15 00 FF FF                    db       00h, 00h, 15h, 00h,0FFh,0FFh +40E6:0A5C  00 00 16 00 FF FF                    db       00h, 00h, 16h, 00h,0FFh,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 575 + +40E6:0A62  00 00 17 00 FF FF                    db       00h, 00h, 17h, 00h,0FFh,0FFh +40E6:0A68  00 00 18 00 FF FF                    db       00h, 00h, 18h, 00h,0FFh,0FFh +40E6:0A6E  00 00 19 00 FF FF                    db       00h, 00h, 19h, 00h,0FFh,0FFh +40E6:0A74  00 00 1A 00 FF FF                    db       00h, 00h, 1Ah, 00h,0FFh,0FFh +40E6:0A7A  00 00 1B 00 FF FF                    db       00h, 00h, 1Bh, 00h,0FFh,0FFh +40E6:0A80  00 00 F8 FF 29 00                    db       00h, 00h,0F8h,0FFh, 29h, 00h +40E6:0A86  00 00 1C 00 FF FF                    db       00h, 00h, 1Ch, 00h,0FFh,0FFh +40E6:0A8C  00 00 1D 00 FF FF                    db       00h, 00h, 1Dh, 00h,0FFh,0FFh +40E6:0A92  00 00 1E 00 FF FF                    db       00h, 00h, 1Eh, 00h,0FFh,0FFh +40E6:0A98  00 00 1F 00 FF FF                    db       00h, 00h, 1Fh, 00h,0FFh,0FFh +40E6:0A9E  00 00 20 00 FF FF                    db       00h, 00h, 20h, 00h,0FFh,0FFh +40E6:0AA4  00 00 21 00 FF FF                    db       00h, 00h, 21h, 00h,0FFh,0FFh +40E6:0AAA  00 00 22 00 FF FF                    db       00h, 00h, 22h, 00h,0FFh,0FFh +40E6:0AB0  00 00 23 00 FF FF                    db       00h, 00h, 23h, 00h,0FFh,0FFh +40E6:0AB6  00 00 24 00 FF FF                    db       00h, 00h, 24h, 00h,0FFh,0FFh +40E6:0ABC  00 00 25 00 FF FF                    db       00h, 00h, 25h, 00h,0FFh,0FFh +40E6:0AC2  00 00 F7 FF 29 00                    db       00h, 00h,0F7h,0FFh, 29h, 00h +40E6:0AC8  26 00 FF FF 00 00                    db       26h, 00h,0FFh,0FFh, 00h, 00h +40E6:0ACE  27 00 FF FF 00 00                    db       27h, 00h,0FFh,0FFh, 00h, 00h +40E6:0AD4  28 00 FF FF 00 00                    db       28h, 00h,0FFh,0FFh, 00h, 00h +40E6:0ADA  29 00 FF FF 00 00                    db       29h, 00h,0FFh,0FFh, 00h, 00h +40E6:0AE0  2A 00 FF FF 00 00                    db       2Ah, 00h,0FFh,0FFh, 00h, 00h +40E6:0AE6  2B 00 FF FF 00 00                    db       2Bh, 00h,0FFh,0FFh, 00h, 00h +40E6:0AEC  2C 00 FC FF 01 00                    db       2Ch, 00h,0FCh,0FFh, 01h, 00h +40E6:0AF2  FF FF 00 00 02 00                    db      0FFh,0FFh, 00h, 00h, 02h, 00h +40E6:0AF8  FF FF 00 00 03 00                    db      0FFh,0FFh, 00h, 00h, 03h, 00h +40E6:0AFE  FF FF 00 00 04 00                    db      0FFh,0FFh, 00h, 00h, 04h, 00h +40E6:0B04  FF FF 00 00 05 00                    db      0FFh,0FFh, 00h, 00h, 05h, 00h +40E6:0B0A  FF FF 00 00 06 00                    db      0FFh,0FFh, 00h, 00h, 06h, 00h +40E6:0B10  FF FF 00 00 07 00                    db      0FFh,0FFh, 00h, 00h, 07h, 00h +40E6:0B16  FF FF 00 00 08 00                    db      0FFh,0FFh, 00h, 00h, 08h, 00h +40E6:0B1C  FF FF 00 00 09 00                    db      0FFh,0FFh, 00h, 00h, 09h, 00h +40E6:0B22  FF FF 00 00 0A 00                    db      0FFh,0FFh, 00h, 00h, 0Ah, 00h +40E6:0B28  FF FF 00 00 0B 00                    db      0FFh,0FFh, 00h, 00h, 0Bh, 00h +40E6:0B2E  FF FF 00 00 0C 00                    db      0FFh,0FFh, 00h, 00h, 0Ch, 00h +40E6:0B34  FF FF 00 00 0D 00                    db      0FFh,0FFh, 00h, 00h, 0Dh, 00h +40E6:0B3A  FF FF 00 00 0E 00                    db      0FFh,0FFh, 00h, 00h, 0Eh, 00h +40E6:0B40  FF FF 00 00 F8 FF                    db      0FFh,0FFh, 00h, 00h,0F8h,0FFh +40E6:0B46  29 00 00 00 0F 00                    db       29h, 00h, 00h, 00h, 0Fh, 00h +40E6:0B4C  FF FF 00 00 10 00                    db      0FFh,0FFh, 00h, 00h, 10h, 00h +40E6:0B52  FF FF 00 00 11 00                    db      0FFh,0FFh, 00h, 00h, 11h, 00h +40E6:0B58  FF FF 00 00 12 00                    db      0FFh,0FFh, 00h, 00h, 12h, 00h +40E6:0B5E  FF FF 00 00 13 00                    db      0FFh,0FFh, 00h, 00h, 13h, 00h +40E6:0B64  FF FF 00 00 F7 FF                    db      0FFh,0FFh, 00h, 00h,0F7h,0FFh +40E6:0B6A  29 00 14 00 FF FF                    db       29h, 00h, 14h, 00h,0FFh,0FFh +40E6:0B70  00 00 15 00 FF FF                    db       00h, 00h, 15h, 00h,0FFh,0FFh +40E6:0B76  00 00 16 00 FC FF                    db       00h, 00h, 16h, 00h,0FCh,0FFh +40E6:0B7C  16 00 FA FF 7C 0B                    db       16h, 00h,0FAh,0FFh, 7Ch, 0Bh +40E6:0B82  2C 00 FA FF 82 0B                    db       2Ch, 00h,0FAh,0FFh, 82h, 0Bh +40E6:0B88  00 00 FF FF 1E 00                    db       00h, 00h,0FFh,0FFh, 1Eh, 00h +40E6:0B8E  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0B94  04 00 05 00 FF FF                    db       04h, 00h, 05h, 00h,0FFh,0FFh +40E6:0B9A  50 00 00 00 05 00                    db       50h, 00h, 00h, 00h, 05h, 00h +40E6:0BA0  FF FF 78 00 00 00                    db      0FFh,0FFh, 78h, 00h, 00h, 00h +40E6:0BA6  00 00 05 00 FA FF                    db       00h, 00h, 05h, 00h,0FAh,0FFh +40E6:0BAC  98 0B 04 00 03 00                    db       98h, 0Bh, 04h, 00h, 03h, 00h +40E6:0BB2  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 576 + +40E6:0BB8  FA FF B6 0B 00 00                    db      0FAh,0FFh,0B6h, 0Bh, 00h, 00h +40E6:0BBE  03 00 01 00 00 00                    db       03h, 00h, 01h, 00h, 00h, 00h +40E6:0BC4  02 00 03 00 00 00                    db       02h, 00h, 03h, 00h, 00h, 00h +40E6:0BCA  01 00 00 00 03 00                    db       01h, 00h, 00h, 00h, 03h, 00h +40E6:0BD0  02 00 03 00 00 00                    db       02h, 00h, 03h, 00h, 00h, 00h +40E6:0BD6  01 00 03 00 01 00                    db       01h, 00h, 03h, 00h, 01h, 00h +40E6:0BDC  00 00 02 00 03 00                    db       00h, 00h, 02h, 00h, 03h, 00h +40E6:0BE2  01 00 02 00 FA FF                    db       01h, 00h, 02h, 00h,0FAh,0FFh +40E6:0BE8  BC 0B 00 00 01 00                    db      0BCh, 0Bh, 00h, 00h, 01h, 00h +40E6:0BEE  01 00 0B 00 0B 00                    db       01h, 00h, 0Bh, 00h, 0Bh, 00h +40E6:0BF4  0C 00 0D 00 0E 00                    db       0Ch, 00h, 0Dh, 00h, 0Eh, 00h +40E6:0BFA  0F 00 0C 00 0D 00                    db       0Fh, 00h, 0Ch, 00h, 0Dh, 00h +40E6:0C00  0E 00 0F 00 0C 00                    db       0Eh, 00h, 0Fh, 00h, 0Ch, 00h +40E6:0C06  0D 00 0E 00 0F 00                    db       0Dh, 00h, 0Eh, 00h, 0Fh, 00h +40E6:0C0C  0C 00 0D 00 0E 00                    db       0Ch, 00h, 0Dh, 00h, 0Eh, 00h +40E6:0C12  0F 00 0C 00 0D 00                    db       0Fh, 00h, 0Ch, 00h, 0Dh, 00h +40E6:0C18  0E 00 0F 00 0C 00                    db       0Eh, 00h, 0Fh, 00h, 0Ch, 00h +40E6:0C1E  0D 00 0E 00 0F 00                    db       0Dh, 00h, 0Eh, 00h, 0Fh, 00h +40E6:0C24  0C 00 0D 00 0E 00                    db       0Ch, 00h, 0Dh, 00h, 0Eh, 00h +40E6:0C2A  0F 00 0C 00 0D 00                    db       0Fh, 00h, 0Ch, 00h, 0Dh, 00h +40E6:0C30  0E 00 0F 00 0C 00                    db       0Eh, 00h, 0Fh, 00h, 0Ch, 00h +40E6:0C36  0D 00 0E 00 0F 00                    db       0Dh, 00h, 0Eh, 00h, 0Fh, 00h +40E6:0C3C  0C 00 0D 00 0E 00                    db       0Ch, 00h, 0Dh, 00h, 0Eh, 00h +40E6:0C42  0F 00 0B 00 0B 00                    db       0Fh, 00h, 0Bh, 00h, 0Bh, 00h +40E6:0C48  01 00 01 00 00 00                    db       01h, 00h, 01h, 00h, 00h, 00h +40E6:0C4E  FF FF 24 00 01 00                    db      0FFh,0FFh, 24h, 00h, 01h, 00h +40E6:0C54  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:0C5A  10 00 10 00 11 00                    db       10h, 00h, 10h, 00h, 11h, 00h +40E6:0C60  11 00 11 00 11 00                    db       11h, 00h, 11h, 00h, 11h, 00h +40E6:0C66  11 00 11 00 11 00                    db       11h, 00h, 11h, 00h, 11h, 00h +40E6:0C6C  11 00 10 00 10 00                    db       11h, 00h, 10h, 00h, 10h, 00h +40E6:0C72  02 00 02 00 01 00                    db       02h, 00h, 02h, 00h, 01h, 00h +40E6:0C78  01 00 00 00 FF FF                    db       01h, 00h, 00h, 00h,0FFh,0FFh +40E6:0C7E  57 00 FA FF EA 0B                    db       57h, 00h,0FAh,0FFh,0EAh, 0Bh +40E6:0C84  FF FF 14 00 00 00                    db      0FFh,0FFh, 14h, 00h, 00h, 00h +40E6:0C8A  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0C90  04 00 03 00 05 00                    db       04h, 00h, 03h, 00h, 05h, 00h +40E6:0C96  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:0C9C  09 00 0A 00 FC FF                    db       09h, 00h, 0Ah, 00h,0FCh,0FFh +40E6:0CA2  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0CA8  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:0CAE  FA FF A2 0C 06 00                    db      0FAh,0FFh,0A2h, 0Ch, 06h, 00h +40E6:0CB4  07 00 08 00 09 00                    db       07h, 00h, 08h, 00h, 09h, 00h +40E6:0CBA  0A 00 0B 00 0C 00                    db       0Ah, 00h, 0Bh, 00h, 0Ch, 00h +40E6:0CC0  FF FF 02 00 0D 00                    db      0FFh,0FFh, 02h, 00h, 0Dh, 00h +40E6:0CC6  FF FF 02 00 0E 00                    db      0FFh,0FFh, 02h, 00h, 0Eh, 00h +40E6:0CCC  FF FF 02 00 0F 00                    db      0FFh,0FFh, 02h, 00h, 0Fh, 00h +40E6:0CD2  FF FF 02 00 10 00                    db      0FFh,0FFh, 02h, 00h, 10h, 00h +40E6:0CD8  FF FF 02 00 0F 00                    db      0FFh,0FFh, 02h, 00h, 0Fh, 00h +40E6:0CDE  FF FF 14 00 10 00                    db      0FFh,0FFh, 14h, 00h, 10h, 00h +40E6:0CE4  FF FF 1E 00 FA FF                    db      0FFh,0FFh, 1Eh, 00h,0FAh,0FFh +40E6:0CEA  DC 0C 00 00 01 00                    db      0DCh, 0Ch, 00h, 00h, 01h, 00h +40E6:0CF0  02 00 F8 FF 2B 00                    db       02h, 00h,0F8h,0FFh, 2Bh, 00h +40E6:0CF6  2A 00 03 00 04 00                    db       2Ah, 00h, 03h, 00h, 04h, 00h +40E6:0CFC  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0D02  08 00 FA FF F2 0C                    db       08h, 00h,0FAh,0FFh,0F2h, 0Ch +40E6:0D08  09 00 0A 00 0B 00                    db       09h, 00h, 0Ah, 00h, 0Bh, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 577 + +40E6:0D0E  0C 00 0D 00 FC FF                    db       0Ch, 00h, 0Dh, 00h,0FCh,0FFh +40E6:0D14  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0D1A  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:0D20  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:0D26  09 00 0A 00 FA FF                    db       09h, 00h, 0Ah, 00h,0FAh,0FFh +40E6:0D2C  14 0D 00 00 01 00                    db       14h, 0Dh, 00h, 00h, 01h, 00h +40E6:0D32  07 00 02 00 05 00                    db       07h, 00h, 02h, 00h, 05h, 00h +40E6:0D38  03 00 00 00 06 00                    db       03h, 00h, 00h, 00h, 06h, 00h +40E6:0D3E  04 00 05 00 06 00                    db       04h, 00h, 05h, 00h, 06h, 00h +40E6:0D44  00 00 03 00 07 00                    db       00h, 00h, 03h, 00h, 07h, 00h +40E6:0D4A  FA FF 2E 0D 00 00                    db      0FAh,0FFh, 2Eh, 0Dh, 00h, 00h +40E6:0D50  01 00 07 00 02 00                    db       01h, 00h, 07h, 00h, 02h, 00h +40E6:0D56  05 00 03 00 00 00                    db       05h, 00h, 03h, 00h, 00h, 00h +40E6:0D5C  06 00 04 00 05 00                    db       06h, 00h, 04h, 00h, 05h, 00h +40E6:0D62  06 00 00 00 03 00                    db       06h, 00h, 00h, 00h, 03h, 00h +40E6:0D68  07 00 FA FF 4E 0D                    db       07h, 00h,0FAh,0FFh, 4Eh, 0Dh +40E6:0D6E  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:0D74  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:0D7A  03 00 03 00 04 00                    db       03h, 00h, 03h, 00h, 04h, 00h +40E6:0D80  04 00 05 00 05 00                    db       04h, 00h, 05h, 00h, 05h, 00h +40E6:0D86  06 00 06 00 07 00                    db       06h, 00h, 06h, 00h, 07h, 00h +40E6:0D8C  07 00 FA FF 6E 0D                    db       07h, 00h,0FAh,0FFh, 6Eh, 0Dh +40E6:0D92  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0D98  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:0D9E  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:0DA4  09 00 0A 00 0B 00                    db       09h, 00h, 0Ah, 00h, 0Bh, 00h +40E6:0DAA  FA FF 92 0D 00 00                    db      0FAh,0FFh, 92h, 0Dh, 00h, 00h +40E6:0DB0  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0DB6  04 00 05 00 06 00                    db       04h, 00h, 05h, 00h, 06h, 00h +40E6:0DBC  07 00 08 00 09 00                    db       07h, 00h, 08h, 00h, 09h, 00h +40E6:0DC2  0A 00 FA FF AE 0D                    db       0Ah, 00h,0FAh,0FFh,0AEh, 0Dh +40E6:0DC8  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0DCE  03 00 FA FF C8 0D                    db       03h, 00h,0FAh,0FFh,0C8h, 0Dh +40E6:0DD4  F8 FF 1D 00 2D 00                    db      0F8h,0FFh, 1Dh, 00h, 2Dh, 00h +40E6:0DDA  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:0DE0  03 00 04 00 00 00                    db       03h, 00h, 04h, 00h, 00h, 00h +40E6:0DE6  FF FF 64 00 F8 FF                    db      0FFh,0FFh, 64h, 00h,0F8h,0FFh +40E6:0DEC  1D 00 2D 00 00 00                    db       1Dh, 00h, 2Dh, 00h, 00h, 00h +40E6:0DF2  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0DF8  04 00 00 00 FF FF                    db       04h, 00h, 00h, 00h,0FFh,0FFh +40E6:0DFE  28 00 FA FF D4 0D                    db       28h, 00h,0FAh,0FFh,0D4h, 0Dh +40E6:0E04  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:0E0A  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:0E10  02 00 03 00 02 00                    db       02h, 00h, 03h, 00h, 02h, 00h +40E6:0E16  01 00 01 00 00 00                    db       01h, 00h, 01h, 00h, 00h, 00h +40E6:0E1C  FF FF 78 00 00 00                    db      0FFh,0FFh, 78h, 00h, 00h, 00h +40E6:0E22  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:0E28  02 00 03 00 02 00                    db       02h, 00h, 03h, 00h, 02h, 00h +40E6:0E2E  03 00 02 00 01 00                    db       03h, 00h, 02h, 00h, 01h, 00h +40E6:0E34  01 00 00 00 FF FF                    db       01h, 00h, 00h, 00h,0FFh,0FFh +40E6:0E3A  28 00 FA FF 04 0E                    db       28h, 00h,0FAh,0FFh, 04h, 0Eh +40E6:0E40  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:0E46  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:0E4C  03 00 04 00 04 00                    db       03h, 00h, 04h, 00h, 04h, 00h +40E6:0E52  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:0E58  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:0E5E  00 00 FF FF 5A 00                    db       00h, 00h,0FFh,0FFh, 5Ah, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 578 + +40E6:0E64  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:0E6A  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:0E70  03 00 04 00 04 00                    db       03h, 00h, 04h, 00h, 04h, 00h +40E6:0E76  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:0E7C  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:0E82  00 00 FF FF 71 00                    db       00h, 00h,0FFh,0FFh, 71h, 00h +40E6:0E88  FA FF 40 0E 00 00                    db      0FAh,0FFh, 40h, 0Eh, 00h, 00h +40E6:0E8E  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:0E94  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:0E9A  03 00 04 00 04 00                    db       03h, 00h, 04h, 00h, 04h, 00h +40E6:0EA0  04 00 04 00 03 00                    db       04h, 00h, 04h, 00h, 03h, 00h +40E6:0EA6  03 00 02 00 02 00                    db       03h, 00h, 02h, 00h, 02h, 00h +40E6:0EAC  01 00 01 00 00 00                    db       01h, 00h, 01h, 00h, 00h, 00h +40E6:0EB2  FF FF 55 00 00 00                    db      0FFh,0FFh, 55h, 00h, 00h, 00h +40E6:0EB8  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:0EBE  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:0EC4  04 00 04 00 04 00                    db       04h, 00h, 04h, 00h, 04h, 00h +40E6:0ECA  04 00 04 00 04 00                    db       04h, 00h, 04h, 00h, 04h, 00h +40E6:0ED0  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:0ED6  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:0EDC  00 00 FF FF 2F 00                    db       00h, 00h,0FFh,0FFh, 2Fh, 00h +40E6:0EE2  FA FF 8C 0E 00 00                    db      0FAh,0FFh, 8Ch, 0Eh, 00h, 00h +40E6:0EE8  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0EEE  04 00 05 00 06 00                    db       04h, 00h, 05h, 00h, 06h, 00h +40E6:0EF4  07 00 06 00 05 00                    db       07h, 00h, 06h, 00h, 05h, 00h +40E6:0EFA  04 00 03 00 02 00                    db       04h, 00h, 03h, 00h, 02h, 00h +40E6:0F00  01 00 00 00 FF FF                    db       01h, 00h, 00h, 00h,0FFh,0FFh +40E6:0F06  38 00 00 00 01 00                    db       38h, 00h, 00h, 00h, 01h, 00h +40E6:0F0C  02 00 03 00 04 00                    db       02h, 00h, 03h, 00h, 04h, 00h +40E6:0F12  05 00 04 00 03 00                    db       05h, 00h, 04h, 00h, 03h, 00h +40E6:0F18  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:0F1E  FF FF 2F 00 00 00                    db      0FFh,0FFh, 2Fh, 00h, 00h, 00h +40E6:0F24  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0F2A  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:0F30  FF FF 5A 00 00 00                    db      0FFh,0FFh, 5Ah, 00h, 00h, 00h +40E6:0F36  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0F3C  04 00 05 00 06 00                    db       04h, 00h, 05h, 00h, 06h, 00h +40E6:0F42  05 00 04 00 03 00                    db       05h, 00h, 04h, 00h, 03h, 00h +40E6:0F48  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:0F4E  FA FF E6 0E 00 00                    db      0FAh,0FFh,0E6h, 0Eh, 00h, 00h +40E6:0F54  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:0F5A  04 00 05 00 06 00                    db       04h, 00h, 05h, 00h, 06h, 00h +40E6:0F60  07 00 06 00 05 00                    db       07h, 00h, 06h, 00h, 05h, 00h +40E6:0F66  06 00 07 00 06 00                    db       06h, 00h, 07h, 00h, 06h, 00h +40E6:0F6C  05 00 06 00 07 00                    db       05h, 00h, 06h, 00h, 07h, 00h +40E6:0F72  06 00 05 00 06 00                    db       06h, 00h, 05h, 00h, 06h, 00h +40E6:0F78  07 00 08 00 09 00                    db       07h, 00h, 08h, 00h, 09h, 00h +40E6:0F7E  0A 00 0B 00 0C 00                    db       0Ah, 00h, 0Bh, 00h, 0Ch, 00h +40E6:0F84  0D 00 0E 00 0E 00                    db       0Dh, 00h, 0Eh, 00h, 0Eh, 00h +40E6:0F8A  0F 00 0F 00 10 00                    db       0Fh, 00h, 0Fh, 00h, 10h, 00h +40E6:0F90  10 00 11 00 FF FF                    db       10h, 00h, 11h, 00h,0FFh,0FFh +40E6:0F96  5A 00 12 00 11 00                    db       5Ah, 00h, 12h, 00h, 11h, 00h +40E6:0F9C  12 00 11 00 FF FF                    db       12h, 00h, 11h, 00h,0FFh,0FFh +40E6:0FA2  28 00 12 00 13 00                    db       28h, 00h, 12h, 00h, 13h, 00h +40E6:0FA8  14 00 14 00 14 00                    db       14h, 00h, 14h, 00h, 14h, 00h +40E6:0FAE  14 00 14 00 14 00                    db       14h, 00h, 14h, 00h, 14h, 00h +40E6:0FB4  13 00 12 00 FA FF                    db       13h, 00h, 12h, 00h,0FAh,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 579 + +40E6:0FBA  92 0F 01 00 01 00                    db       92h, 0Fh, 01h, 00h, 01h, 00h +40E6:0FC0  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:0FC6  04 00 05 00 F8 FF                    db       04h, 00h, 05h, 00h,0F8h,0FFh +40E6:0FCC  06 00 2E 00 05 00                    db       06h, 00h, 2Eh, 00h, 05h, 00h +40E6:0FD2  06 00 06 00 07 00                    db       06h, 00h, 06h, 00h, 07h, 00h +40E6:0FD8  07 00 08 00 08 00                    db       07h, 00h, 08h, 00h, 08h, 00h +40E6:0FDE  09 00 09 00 00 00                    db       09h, 00h, 09h, 00h, 00h, 00h +40E6:0FE4  FF FF 19 00 FA FF                    db      0FFh,0FFh, 19h, 00h,0FAh,0FFh +40E6:0FEA  BC 0F 00 00 00 00                    db      0BCh, 0Fh, 00h, 00h, 00h, 00h +40E6:0FF0  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:0FF6  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:0FFC  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:1002  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:1008  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +40E6:100E  39 00 00 00 00 00                    db       39h, 00h, 00h, 00h, 00h, 00h +40E6:1014  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:101A  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:1020  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:1026  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:102C  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +40E6:1032  62 00 FA FF EC 0F                    db       62h, 00h,0FAh,0FFh,0ECh, 0Fh +40E6:1038  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:103E  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:1044  03 00 03 00 04 00                    db       03h, 00h, 03h, 00h, 04h, 00h +40E6:104A  04 00 05 00 05 00                    db       04h, 00h, 05h, 00h, 05h, 00h +40E6:1050  06 00 06 00 05 00                    db       06h, 00h, 06h, 00h, 05h, 00h +40E6:1056  05 00 04 00 04 00                    db       05h, 00h, 04h, 00h, 04h, 00h +40E6:105C  05 00 05 00 06 00                    db       05h, 00h, 05h, 00h, 06h, 00h +40E6:1062  06 00 05 00 05 00                    db       06h, 00h, 05h, 00h, 05h, 00h +40E6:1068  04 00 04 00 03 00                    db       04h, 00h, 04h, 00h, 03h, 00h +40E6:106E  03 00 02 00 02 00                    db       03h, 00h, 02h, 00h, 02h, 00h +40E6:1074  01 00 01 00 00 00                    db       01h, 00h, 01h, 00h, 00h, 00h +40E6:107A  FF FF 9D 00 FA FF                    db      0FFh,0FFh, 9Dh, 00h,0FAh,0FFh +40E6:1080  38 10 00 00 01 00                    db       38h, 10h, 00h, 00h, 01h, 00h +40E6:1086  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:108C  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:1092  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:1098  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:109E  03 00 02 00 02 00                    db       03h, 00h, 02h, 00h, 02h, 00h +40E6:10A4  01 00 01 00 00 00                    db       01h, 00h, 01h, 00h, 00h, 00h +40E6:10AA  FF FF 39 00 00 00                    db      0FFh,0FFh, 39h, 00h, 00h, 00h +40E6:10B0  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:10B6  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:10BC  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:10C2  03 00 02 00 02 00                    db       03h, 00h, 02h, 00h, 02h, 00h +40E6:10C8  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:10CE  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:10D4  00 00 FF FF 64 00                    db       00h, 00h,0FFh,0FFh, 64h, 00h +40E6:10DA  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:10E0  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:10E6  03 00 02 00 02 00                    db       03h, 00h, 02h, 00h, 02h, 00h +40E6:10EC  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:10F2  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:10F8  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:10FE  03 00 02 00 02 00                    db       03h, 00h, 02h, 00h, 02h, 00h +40E6:1104  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:110A  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 580 + +40E6:1110  00 00 FF FF A0 00                    db       00h, 00h,0FFh,0FFh,0A0h, 00h +40E6:1116  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:111C  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:1122  03 00 02 00 02 00                    db       03h, 00h, 02h, 00h, 02h, 00h +40E6:1128  03 00 03 00 02 00                    db       03h, 00h, 03h, 00h, 02h, 00h +40E6:112E  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:1134  00 00 FF FF 20 00                    db       00h, 00h,0FFh,0FFh, 20h, 00h +40E6:113A  FA FF 82 10 00 00                    db      0FAh,0FFh, 82h, 10h, 00h, 00h +40E6:1140  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:1146  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:114C  00 00 FF FF 1B 00                    db       00h, 00h,0FFh,0FFh, 1Bh, 00h +40E6:1152  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:1158  02 00 02 00 01 00                    db       02h, 00h, 02h, 00h, 01h, 00h +40E6:115E  01 00 00 00 FF FF                    db       01h, 00h, 00h, 00h,0FFh,0FFh +40E6:1164  A7 00 00 00 01 00                    db      0A7h, 00h, 00h, 00h, 01h, 00h +40E6:116A  01 00 02 00 FF FF                    db       01h, 00h, 02h, 00h,0FFh,0FFh +40E6:1170  32 00 01 00 01 00                    db       32h, 00h, 01h, 00h, 01h, 00h +40E6:1176  00 00 FF FF 44 00                    db       00h, 00h,0FFh,0FFh, 44h, 00h +40E6:117C  FA FF 3E 11 00 00                    db      0FAh,0FFh, 3Eh, 11h, 00h, 00h +40E6:1182  01 00 01 00 01 00                    db       01h, 00h, 01h, 00h, 01h, 00h +40E6:1188  01 00 00 00 FF FF                    db       01h, 00h, 00h, 00h,0FFh,0FFh +40E6:118E  14 01 00 00 01 00                    db       14h, 01h, 00h, 00h, 01h, 00h +40E6:1194  01 00 01 00 01 00                    db       01h, 00h, 01h, 00h, 01h, 00h +40E6:119A  00 00 FF FF 38 00                    db       00h, 00h,0FFh,0FFh, 38h, 00h +40E6:11A0  FA FF 80 11 00 00                    db      0FAh,0FFh, 80h, 11h, 00h, 00h +40E6:11A6  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:11AC  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:11B2  04 00 04 00 05 00                    db       04h, 00h, 04h, 00h, 05h, 00h +40E6:11B8  05 00 06 00 06 00                    db       05h, 00h, 06h, 00h, 06h, 00h +40E6:11BE  00 00 FF FF 52 00                    db       00h, 00h,0FFh,0FFh, 52h, 00h +40E6:11C4  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:11CA  02 00 02 00 03 00                    db       02h, 00h, 02h, 00h, 03h, 00h +40E6:11D0  03 00 04 00 04 00                    db       03h, 00h, 04h, 00h, 04h, 00h +40E6:11D6  05 00 05 00 06 00                    db       05h, 00h, 05h, 00h, 06h, 00h +40E6:11DC  06 00 00 00 FF FF                    db       06h, 00h, 00h, 00h,0FFh,0FFh +40E6:11E2  38 00 00 00 01 00                    db       38h, 00h, 00h, 00h, 01h, 00h +40E6:11E8  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:11EE  03 00 03 00 04 00                    db       03h, 00h, 03h, 00h, 04h, 00h +40E6:11F4  04 00 05 00 05 00                    db       04h, 00h, 05h, 00h, 05h, 00h +40E6:11FA  05 00 05 00 04 00                    db       05h, 00h, 05h, 00h, 04h, 00h +40E6:1200  04 00 05 00 05 00                    db       04h, 00h, 05h, 00h, 05h, 00h +40E6:1206  06 00 06 00 00 00                    db       06h, 00h, 06h, 00h, 00h, 00h +40E6:120C  FF FF 81 00 FA FF                    db      0FFh,0FFh, 81h, 00h,0FAh,0FFh +40E6:1212  A4 11 06 00 FE FF                    db      0A4h, 11h, 06h, 00h,0FEh,0FFh +40E6:1218  13 01 F6 00 07 00                    db       13h, 01h,0F6h, 00h, 07h, 00h +40E6:121E  FE FF 23 01 F6 00                    db      0FEh,0FFh, 23h, 01h,0F6h, 00h +40E6:1224  06 00 FE FF 33 01                    db       06h, 00h,0FEh,0FFh, 33h, 01h +40E6:122A  F6 00 07 00 F8 FF                    db      0F6h, 00h, 07h, 00h,0F8h,0FFh +40E6:1230  05 00 2A 00 FE FF                    db       05h, 00h, 2Ah, 00h,0FEh,0FFh +40E6:1236  43 01 F6 00 06 00                    db       43h, 01h,0F6h, 00h, 06h, 00h +40E6:123C  FE FF 53 01 F6 00                    db      0FEh,0FFh, 53h, 01h,0F6h, 00h +40E6:1242  07 00 FE FF 63 01                    db       07h, 00h,0FEh,0FFh, 63h, 01h +40E6:1248  F6 00 06 00 FC FF                    db      0F6h, 00h, 06h, 00h,0FCh,0FFh +40E6:124E  02 00 FE FF 15 01                    db       02h, 00h,0FEh,0FFh, 15h, 01h +40E6:1254  1A 01 03 00 FE FF                    db       1Ah, 01h, 03h, 00h,0FEh,0FFh +40E6:125A  15 01 22 01 02 00                    db       15h, 01h, 22h, 01h, 02h, 00h +40E6:1260  FE FF 15 01 2A 01                    db      0FEh,0FFh, 15h, 01h, 2Ah, 01h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 581 + +40E6:1266  03 00 FE FF 15 01                    db       03h, 00h,0FEh,0FFh, 15h, 01h +40E6:126C  32 01 02 00 FE FF                    db       32h, 01h, 02h, 00h,0FEh,0FFh +40E6:1272  25 01 32 01 07 00                    db       25h, 01h, 32h, 01h, 07h, 00h +40E6:1278  FE FF 35 01 32 01                    db      0FEh,0FFh, 35h, 01h, 32h, 01h +40E6:127E  06 00 FE FF 45 01                    db       06h, 00h,0FEh,0FFh, 45h, 01h +40E6:1284  32 01 07 00 FE FF                    db       32h, 01h, 07h, 00h,0FEh,0FFh +40E6:128A  35 01 32 01 04 00                    db       35h, 01h, 32h, 01h, 04h, 00h +40E6:1290  FE FF 25 01 32 01                    db      0FEh,0FFh, 25h, 01h, 32h, 01h +40E6:1296  05 00 FE FF 15 01                    db       05h, 00h,0FEh,0FFh, 15h, 01h +40E6:129C  32 01 04 00 FE FF                    db       32h, 01h, 04h, 00h,0FEh,0FFh +40E6:12A2  05 01 32 01 05 00                    db       05h, 01h, 32h, 01h, 05h, 00h +40E6:12A8  FE FF F5 00 32 01                    db      0FEh,0FFh,0F5h, 00h, 32h, 01h +40E6:12AE  04 00 FE FF E5 00                    db       04h, 00h,0FEh,0FFh,0E5h, 00h +40E6:12B4  32 01 05 00 FE FF                    db       32h, 01h, 05h, 00h,0FEh,0FFh +40E6:12BA  D5 00 32 01 04 00                    db      0D5h, 00h, 32h, 01h, 04h, 00h +40E6:12C0  FE FF C5 00 32 01                    db      0FEh,0FFh,0C5h, 00h, 32h, 01h +40E6:12C6  05 00 FE FF B5 00                    db       05h, 00h,0FEh,0FFh,0B5h, 00h +40E6:12CC  32 01 04 00 FE FF                    db       32h, 01h, 04h, 00h,0FEh,0FFh +40E6:12D2  A5 00 32 01 05 00                    db      0A5h, 00h, 32h, 01h, 05h, 00h +40E6:12D8  F8 FF 05 00 2A 00                    db      0F8h,0FFh, 05h, 00h, 2Ah, 00h +40E6:12DE  FE FF 95 00 32 01                    db      0FEh,0FFh, 95h, 00h, 32h, 01h +40E6:12E4  02 00 FC FF 04 00                    db       02h, 00h,0FCh,0FFh, 04h, 00h +40E6:12EA  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:12F0  05 00 FD FF F0 FF                    db       05h, 00h,0FDh,0FFh,0F0h,0FFh +40E6:12F6  00 00 04 00 FD FF                    db       00h, 00h, 04h, 00h,0FDh,0FFh +40E6:12FC  F0 FF 00 00 05 00                    db      0F0h,0FFh, 00h, 00h, 05h, 00h +40E6:1302  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:1308  04 00 FD FF F0 FF                    db       04h, 00h,0FDh,0FFh,0F0h,0FFh +40E6:130E  00 00 05 00 FD FF                    db       00h, 00h, 05h, 00h,0FDh,0FFh +40E6:1314  F0 FF 00 00 04 00                    db      0F0h,0FFh, 00h, 00h, 04h, 00h +40E6:131A  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:1320  05 00 FD FF F0 FF                    db       05h, 00h,0FDh,0FFh,0F0h,0FFh +40E6:1326  00 00 04 00 FD FF                    db       00h, 00h, 04h, 00h,0FDh,0FFh +40E6:132C  F0 FF 00 00 05 00                    db      0F0h,0FFh, 00h, 00h, 05h, 00h +40E6:1332  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:1338  04 00 08 00 FF FF                    db       04h, 00h, 08h, 00h,0FFh,0FFh +40E6:133E  96 00 06 00 FD FF                    db       96h, 00h, 06h, 00h,0FDh,0FFh +40E6:1344  10 00 00 00 07 00                    db       10h, 00h, 00h, 00h, 07h, 00h +40E6:134A  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:1350  06 00 FD FF 10 00                    db       06h, 00h,0FDh,0FFh, 10h, 00h +40E6:1356  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:135C  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:1362  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:1368  07 00 FD FF 10 00                    db       07h, 00h,0FDh,0FFh, 10h, 00h +40E6:136E  00 00 06 00 FD FF                    db       00h, 00h, 06h, 00h,0FDh,0FFh +40E6:1374  10 00 00 00 07 00                    db       10h, 00h, 00h, 00h, 07h, 00h +40E6:137A  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:1380  06 00 FD FF 10 00                    db       06h, 00h,0FDh,0FFh, 10h, 00h +40E6:1386  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:138C  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:1392  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:1398  07 00 FD FF 10 00                    db       07h, 00h,0FDh,0FFh, 10h, 00h +40E6:139E  00 00 06 00 FD FF                    db       00h, 00h, 06h, 00h,0FDh,0FFh +40E6:13A4  10 00 00 00 07 00                    db       10h, 00h, 00h, 00h, 07h, 00h +40E6:13AA  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:13B0  06 00 08 00 FF FF                    db       06h, 00h, 08h, 00h,0FFh,0FFh +40E6:13B6  4C 00 FE FF 60 01                    db       4Ch, 00h,0FEh,0FFh, 60h, 01h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 582 + +40E6:13BC  FA 00 F8 FF 05 00                    db      0FAh, 00h,0F8h,0FFh, 05h, 00h +40E6:13C2  2A 00 04 00 FD FF                    db       2Ah, 00h, 04h, 00h,0FDh,0FFh +40E6:13C8  F0 FF 00 00 05 00                    db      0F0h,0FFh, 00h, 00h, 05h, 00h +40E6:13CE  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:13D4  04 00 FD FF F0 FF                    db       04h, 00h,0FDh,0FFh,0F0h,0FFh +40E6:13DA  00 00 05 00 FD FF                    db       00h, 00h, 05h, 00h,0FDh,0FFh +40E6:13E0  F0 FF 00 00 04 00                    db      0F0h,0FFh, 00h, 00h, 04h, 00h +40E6:13E6  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:13EC  05 00 FD FF F0 FF                    db       05h, 00h,0FDh,0FFh,0F0h,0FFh +40E6:13F2  00 00 04 00 FD FF                    db       00h, 00h, 04h, 00h,0FDh,0FFh +40E6:13F8  F0 FF 00 00 05 00                    db      0F0h,0FFh, 00h, 00h, 05h, 00h +40E6:13FE  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:1404  04 00 FD FF F0 FF                    db       04h, 00h,0FDh,0FFh,0F0h,0FFh +40E6:140A  00 00 05 00 FD FF                    db       00h, 00h, 05h, 00h,0FDh,0FFh +40E6:1410  F0 FF 00 00 04 00                    db      0F0h,0FFh, 00h, 00h, 04h, 00h +40E6:1416  FD FF F0 FF 00 00                    db      0FDh,0FFh,0F0h,0FFh, 00h, 00h +40E6:141C  05 00 FD FF F0 FF                    db       05h, 00h,0FDh,0FFh,0F0h,0FFh +40E6:1422  00 00 FC FF 06 00                    db       00h, 00h,0FCh,0FFh, 06h, 00h +40E6:1428  F8 FF 05 00 2B 00                    db      0F8h,0FFh, 05h, 00h, 2Bh, 00h +40E6:142E  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:1434  07 00 FD FF 10 00                    db       07h, 00h,0FDh,0FFh, 10h, 00h +40E6:143A  00 00 06 00 FD FF                    db       00h, 00h, 06h, 00h,0FDh,0FFh +40E6:1440  10 00 00 00 07 00                    db       10h, 00h, 00h, 00h, 07h, 00h +40E6:1446  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:144C  06 00 FD FF 00 00                    db       06h, 00h,0FDh,0FFh, 00h, 00h +40E6:1452  F8 FF FD FF 10 00                    db      0F8h,0FFh,0FDh,0FFh, 10h, 00h +40E6:1458  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:145E  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:1464  FD FF 00 00 F8 FF                    db      0FDh,0FFh, 00h, 00h,0F8h,0FFh +40E6:146A  FD FF 00 00 F8 FF                    db      0FDh,0FFh, 00h, 00h,0F8h,0FFh +40E6:1470  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:1476  F8 FF 01 00 FC FF                    db      0F8h,0FFh, 01h, 00h,0FCh,0FFh +40E6:147C  06 00 FD FF 10 00                    db       06h, 00h,0FDh,0FFh, 10h, 00h +40E6:1482  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:1488  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:148E  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:1494  07 00 FD FF 10 00                    db       07h, 00h,0FDh,0FFh, 10h, 00h +40E6:149A  00 00 06 00 FD FF                    db       00h, 00h, 06h, 00h,0FDh,0FFh +40E6:14A0  10 00 00 00 07 00                    db       10h, 00h, 00h, 00h, 07h, 00h +40E6:14A6  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:14AC  06 00 FD FF 10 00                    db       06h, 00h,0FDh,0FFh, 10h, 00h +40E6:14B2  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:14B8  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:14BE  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:14C4  07 00 FD FF 10 00                    db       07h, 00h,0FDh,0FFh, 10h, 00h +40E6:14CA  00 00 06 00 FD FF                    db       00h, 00h, 06h, 00h,0FDh,0FFh +40E6:14D0  10 00 00 00 07 00                    db       10h, 00h, 00h, 00h, 07h, 00h +40E6:14D6  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:14DC  06 00 FD FF 10 00                    db       06h, 00h,0FDh,0FFh, 10h, 00h +40E6:14E2  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:14E8  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:14EE  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:14F4  07 00 FD FF 10 00                    db       07h, 00h,0FDh,0FFh, 10h, 00h +40E6:14FA  00 00 06 00 FD FF                    db       00h, 00h, 06h, 00h,0FDh,0FFh +40E6:1500  00 00 F8 FF 00 00                    db       00h, 00h,0F8h,0FFh, 00h, 00h +40E6:1506  FD FF 00 00 F8 FF                    db      0FDh,0FFh, 00h, 00h,0F8h,0FFh +40E6:150C  01 00 FD FF 10 00                    db       01h, 00h,0FDh,0FFh, 10h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 583 + +40E6:1512  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:1518  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:151E  FC FF 00 00 F8 FF                    db      0FCh,0FFh, 00h, 00h,0F8h,0FFh +40E6:1524  05 00 2C 00 FD FF                    db       05h, 00h, 2Ch, 00h,0FDh,0FFh +40E6:152A  00 00 F8 FF 01 00                    db       00h, 00h,0F8h,0FFh, 01h, 00h +40E6:1530  FD FF 00 00 F8 FF                    db      0FDh,0FFh, 00h, 00h,0F8h,0FFh +40E6:1536  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:153C  F8 FF 01 00 FD FF                    db      0F8h,0FFh, 01h, 00h,0FDh,0FFh +40E6:1542  00 00 F8 FF 00 00                    db       00h, 00h,0F8h,0FFh, 00h, 00h +40E6:1548  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:154E  06 00 FD FF 10 00                    db       06h, 00h,0FDh,0FFh, 10h, 00h +40E6:1554  00 00 07 00 FD FF                    db       00h, 00h, 07h, 00h,0FDh,0FFh +40E6:155A  10 00 00 00 06 00                    db       10h, 00h, 00h, 00h, 06h, 00h +40E6:1560  FD FF 10 00 00 00                    db      0FDh,0FFh, 10h, 00h, 00h, 00h +40E6:1566  07 00 FD FF 10 00                    db       07h, 00h,0FDh,0FFh, 10h, 00h +40E6:156C  00 00 06 00 FD FF                    db       00h, 00h, 06h, 00h,0FDh,0FFh +40E6:1572  10 00 00 00 07 00                    db       10h, 00h, 00h, 00h, 07h, 00h +40E6:1578  FD FF 00 00 F8 FF                    db      0FDh,0FFh, 00h, 00h,0F8h,0FFh +40E6:157E  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1584  F8 FF 00 00 FD FF                    db      0F8h,0FFh, 00h, 00h,0FDh,0FFh +40E6:158A  00 00 F8 FF 01 00                    db       00h, 00h,0F8h,0FFh, 01h, 00h +40E6:1590  FD FF 00 00 F8 FF                    db      0FDh,0FFh, 00h, 00h,0F8h,0FFh +40E6:1596  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:159C  F8 FF 01 00 FD FF                    db      0F8h,0FFh, 01h, 00h,0FDh,0FFh +40E6:15A2  00 00 F8 FF 00 00                    db       00h, 00h,0F8h,0FFh, 00h, 00h +40E6:15A8  FC FF 02 00 02 00                    db      0FCh,0FFh, 02h, 00h, 02h, 00h +40E6:15AE  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +40E6:15B4  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:15BA  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:15C0  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:15C6  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:15CC  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +40E6:15D2  02 00 02 00 01 00                    db       02h, 00h, 02h, 00h, 01h, 00h +40E6:15D8  01 00 02 00 02 00                    db       01h, 00h, 02h, 00h, 02h, 00h +40E6:15DE  01 00 01 00 FA FF                    db       01h, 00h, 01h, 00h,0FAh,0FFh +40E6:15E4  AA 15 00 00 00 00                    db      0AAh, 15h, 00h, 00h, 00h, 00h +40E6:15EA  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +40E6:15F0  02 00 03 00 03 00                    db       02h, 00h, 03h, 00h, 03h, 00h +40E6:15F6  00 00 00 00 03 00                    db       00h, 00h, 00h, 00h, 03h, 00h +40E6:15FC  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +40E6:1602  03 00 03 00 00 00                    db       03h, 00h, 03h, 00h, 00h, 00h +40E6:1608  00 00 03 00 03 00                    db       00h, 00h, 03h, 00h, 03h, 00h +40E6:160E  00 00 00 00 03 00                    db       00h, 00h, 00h, 00h, 03h, 00h +40E6:1614  03 00 FA FF E6 15                    db       03h, 00h,0FAh,0FFh,0E6h, 15h +40E6:161A  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:1620  03 00 04 00 05 00                    db       03h, 00h, 04h, 00h, 05h, 00h +40E6:1626  06 00 07 00 08 00                    db       06h, 00h, 07h, 00h, 08h, 00h +40E6:162C  09 00 0A 00 0B 00                    db       09h, 00h, 0Ah, 00h, 0Bh, 00h +40E6:1632  0C 00 0D 00 0E 00                    db       0Ch, 00h, 0Dh, 00h, 0Eh, 00h +40E6:1638  0F 00 10 00 11 00                    db       0Fh, 00h, 10h, 00h, 11h, 00h +40E6:163E  12 00 13 00 FA FF                    db       12h, 00h, 13h, 00h,0FAh,0FFh +40E6:1644  1A 16 FE FF 9E 00                    db       1Ah, 16h,0FEh,0FFh, 9Eh, 00h +40E6:164A  C8 00 01 00 FF FF                    db      0C8h, 00h, 01h, 00h,0FFh,0FFh +40E6:1650  10 00 FD FF 03 00                    db       10h, 00h,0FDh,0FFh, 03h, 00h +40E6:1656  04 00 00 00 FD FF                    db       04h, 00h, 00h, 00h,0FDh,0FFh +40E6:165C  03 00 03 00 01 00                    db       03h, 00h, 03h, 00h, 01h, 00h +40E6:1662  FD FF 05 00 02 00                    db      0FDh,0FFh, 05h, 00h, 02h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 584 + +40E6:1668  00 00 FD FF 08 00                    db       00h, 00h,0FDh,0FFh, 08h, 00h +40E6:166E  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:1674  05 00 02 00 00 00                    db       05h, 00h, 02h, 00h, 00h, 00h +40E6:167A  FD FF 06 00 04 00                    db      0FDh,0FFh, 06h, 00h, 04h, 00h +40E6:1680  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:1686  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:168C  04 00 03 00 01 00                    db       04h, 00h, 03h, 00h, 01h, 00h +40E6:1692  FD FF 05 00 05 00                    db      0FDh,0FFh, 05h, 00h, 05h, 00h +40E6:1698  00 00 FD FF 05 00                    db       00h, 00h,0FDh,0FFh, 05h, 00h +40E6:169E  03 00 01 00 FD FF                    db       03h, 00h, 01h, 00h,0FDh,0FFh +40E6:16A4  05 00 05 00 00 00                    db       05h, 00h, 05h, 00h, 00h, 00h +40E6:16AA  FD FF 05 00 04 00                    db      0FDh,0FFh, 05h, 00h, 04h, 00h +40E6:16B0  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:16B6  03 00 00 00 FD FF                    db       03h, 00h, 00h, 00h,0FDh,0FFh +40E6:16BC  04 00 03 00 01 00                    db       04h, 00h, 03h, 00h, 01h, 00h +40E6:16C2  FD FF 03 00 02 00                    db      0FDh,0FFh, 03h, 00h, 02h, 00h +40E6:16C8  00 00 FD FF 03 00                    db       00h, 00h,0FDh,0FFh, 03h, 00h +40E6:16CE  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:16D4  02 00 03 00 00 00                    db       02h, 00h, 03h, 00h, 00h, 00h +40E6:16DA  FD FF 03 00 03 00                    db      0FDh,0FFh, 03h, 00h, 03h, 00h +40E6:16E0  01 00 FD FF 02 00                    db       01h, 00h,0FDh,0FFh, 02h, 00h +40E6:16E6  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:16EC  01 00 01 00 01 00                    db       01h, 00h, 01h, 00h, 01h, 00h +40E6:16F2  FD FF 02 00 01 00                    db      0FDh,0FFh, 02h, 00h, 01h, 00h +40E6:16F8  00 00 FD FF 03 00                    db       00h, 00h,0FDh,0FFh, 03h, 00h +40E6:16FE  03 00 01 00 FD FF                    db       03h, 00h, 01h, 00h,0FDh,0FFh +40E6:1704  03 00 03 00 00 00                    db       03h, 00h, 03h, 00h, 00h, 00h +40E6:170A  FD FF 01 00 00 00                    db      0FDh,0FFh, 01h, 00h, 00h, 00h +40E6:1710  01 00 FD FF 01 00                    db       01h, 00h,0FDh,0FFh, 01h, 00h +40E6:1716  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:171C  02 00 00 00 01 00                    db       02h, 00h, 00h, 00h, 01h, 00h +40E6:1722  FD FF 03 00 00 00                    db      0FDh,0FFh, 03h, 00h, 00h, 00h +40E6:1728  00 00 FD FF 03 00                    db       00h, 00h,0FDh,0FFh, 03h, 00h +40E6:172E  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:1734  05 00 FE FF 00 00                    db       05h, 00h,0FEh,0FFh, 00h, 00h +40E6:173A  FD FF 09 00 FD FF                    db      0FDh,0FFh, 09h, 00h,0FDh,0FFh +40E6:1740  01 00 FD FF 06 00                    db       01h, 00h,0FDh,0FFh, 06h, 00h +40E6:1746  FC FF 00 00 FD FF                    db      0FCh,0FFh, 00h, 00h,0FDh,0FFh +40E6:174C  05 00 FE FF 01 00                    db       05h, 00h,0FEh,0FFh, 01h, 00h +40E6:1752  FD FF 07 00 FE FF                    db      0FDh,0FFh, 07h, 00h,0FEh,0FFh +40E6:1758  00 00 FD FF 09 00                    db       00h, 00h,0FDh,0FFh, 09h, 00h +40E6:175E  FC FF 01 00 FD FF                    db      0FCh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1764  08 00 FD FF 00 00                    db       08h, 00h,0FDh,0FFh, 00h, 00h +40E6:176A  FD FF 06 00 FE FF                    db      0FDh,0FFh, 06h, 00h,0FEh,0FFh +40E6:1770  01 00 FD FF 05 00                    db       01h, 00h,0FDh,0FFh, 05h, 00h +40E6:1776  FF FF 00 00 FD FF                    db      0FFh,0FFh, 00h, 00h,0FDh,0FFh +40E6:177C  03 00 FE FF 01 00                    db       03h, 00h,0FEh,0FFh, 01h, 00h +40E6:1782  FD FF 04 00 FE FF                    db      0FDh,0FFh, 04h, 00h,0FEh,0FFh +40E6:1788  00 00 FD FF 03 00                    db       00h, 00h,0FDh,0FFh, 03h, 00h +40E6:178E  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1794  02 00 FF FF 00 00                    db       02h, 00h,0FFh,0FFh, 00h, 00h +40E6:179A  FD FF 05 00 FD FF                    db      0FDh,0FFh, 05h, 00h,0FDh,0FFh +40E6:17A0  01 00 FD FF 01 00                    db       01h, 00h,0FDh,0FFh, 01h, 00h +40E6:17A6  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:17AC  03 00 FF FF 01 00                    db       03h, 00h,0FFh,0FFh, 01h, 00h +40E6:17B2  FD FF 04 00 00 00                    db      0FDh,0FFh, 04h, 00h, 00h, 00h +40E6:17B8  00 00 FD FF 08 00                    db       00h, 00h,0FDh,0FFh, 08h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 585 + +40E6:17BE  FD FF 01 00 FD FF                    db      0FDh,0FFh, 01h, 00h,0FDh,0FFh +40E6:17C4  04 00 FE FF 00 00                    db       04h, 00h,0FEh,0FFh, 00h, 00h +40E6:17CA  FD FF 06 00 FE FF                    db      0FDh,0FFh, 06h, 00h,0FEh,0FFh +40E6:17D0  01 00 FD FF 07 00                    db       01h, 00h,0FDh,0FFh, 07h, 00h +40E6:17D6  FF FF 00 00 FD FF                    db      0FFh,0FFh, 00h, 00h,0FDh,0FFh +40E6:17DC  08 00 FF FF 01 00                    db       08h, 00h,0FFh,0FFh, 01h, 00h +40E6:17E2  FD FF 0A 00 FF FF                    db      0FDh,0FFh, 0Ah, 00h,0FFh,0FFh +40E6:17E8  00 00 FE FF 64 00                    db       00h, 00h,0FEh,0FFh, 64h, 00h +40E6:17EE  64 00 03 00 FF FF                    db       64h, 00h, 03h, 00h,0FFh,0FFh +40E6:17F4  05 00 FE FF 7E 01                    db       05h, 00h,0FEh,0FFh, 7Eh, 01h +40E6:17FA  F0 00 03 00 FD FF                    db      0F0h, 00h, 03h, 00h,0FDh,0FFh +40E6:1800  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +40E6:1806  FD FF FF FF 06 00                    db      0FDh,0FFh,0FFh,0FFh, 06h, 00h +40E6:180C  03 00 FD FF FF FF                    db       03h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1812  02 00 02 00 FD FF                    db       02h, 00h, 02h, 00h,0FDh,0FFh +40E6:1818  FC FF 04 00 03 00                    db      0FCh,0FFh, 04h, 00h, 03h, 00h +40E6:181E  FD FF FC FF 04 00                    db      0FDh,0FFh,0FCh,0FFh, 04h, 00h +40E6:1824  02 00 FD FF FA FF                    db       02h, 00h,0FDh,0FFh,0FAh,0FFh +40E6:182A  04 00 03 00 FD FF                    db       04h, 00h, 03h, 00h,0FDh,0FFh +40E6:1830  FB FF 04 00 02 00                    db      0FBh,0FFh, 04h, 00h, 02h, 00h +40E6:1836  FD FF FA FF 03 00                    db      0FDh,0FFh,0FAh,0FFh, 03h, 00h +40E6:183C  03 00 FD FF FC FF                    db       03h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:1842  03 00 02 00 FD FF                    db       03h, 00h, 02h, 00h,0FDh,0FFh +40E6:1848  FB FF 02 00 03 00                    db      0FBh,0FFh, 02h, 00h, 03h, 00h +40E6:184E  FD FF FE FF 02 00                    db      0FDh,0FFh,0FEh,0FFh, 02h, 00h +40E6:1854  02 00 FD FF FC FF                    db       02h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:185A  02 00 03 00 FD FF                    db       02h, 00h, 03h, 00h,0FDh,0FFh +40E6:1860  FC FF 02 00 02 00                    db      0FCh,0FFh, 02h, 00h, 02h, 00h +40E6:1866  FD FF FD FF 01 00                    db      0FDh,0FFh,0FDh,0FFh, 01h, 00h +40E6:186C  03 00 FD FF FA FF                    db       03h, 00h,0FDh,0FFh,0FAh,0FFh +40E6:1872  03 00 02 00 FD FF                    db       03h, 00h, 02h, 00h,0FDh,0FFh +40E6:1878  FB FF 01 00 03 00                    db      0FBh,0FFh, 01h, 00h, 03h, 00h +40E6:187E  FD FF FC FF 01 00                    db      0FDh,0FFh,0FCh,0FFh, 01h, 00h +40E6:1884  02 00 FD FF FB FF                    db       02h, 00h,0FDh,0FFh,0FBh,0FFh +40E6:188A  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:1890  FB FF 00 00 02 00                    db      0FBh,0FFh, 00h, 00h, 02h, 00h +40E6:1896  FD FF F9 FF 00 00                    db      0FDh,0FFh,0F9h,0FFh, 00h, 00h +40E6:189C  03 00 FD FF F8 FF                    db       03h, 00h,0FDh,0FFh,0F8h,0FFh +40E6:18A2  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:18A8  F9 FF FF FF 03 00                    db      0F9h,0FFh,0FFh,0FFh, 03h, 00h +40E6:18AE  FD FF F8 FF 00 00                    db      0FDh,0FFh,0F8h,0FFh, 00h, 00h +40E6:18B4  02 00 FD FF F8 FF                    db       02h, 00h,0FDh,0FFh,0F8h,0FFh +40E6:18BA  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:18C0  F8 FF 00 00 02 00                    db      0F8h,0FFh, 00h, 00h, 02h, 00h +40E6:18C6  FD FF F9 FF FF FF                    db      0FDh,0FFh,0F9h,0FFh,0FFh,0FFh +40E6:18CC  03 00 FD FF F7 FF                    db       03h, 00h,0FDh,0FFh,0F7h,0FFh +40E6:18D2  FF FF 02 00 FD FF                    db      0FFh,0FFh, 02h, 00h,0FDh,0FFh +40E6:18D8  FA FF FE FF 03 00                    db      0FAh,0FFh,0FEh,0FFh, 03h, 00h +40E6:18DE  FD FF F9 FF FE FF                    db      0FDh,0FFh,0F9h,0FFh,0FEh,0FFh +40E6:18E4  02 00 FD FF FB FF                    db       02h, 00h,0FDh,0FFh,0FBh,0FFh +40E6:18EA  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:18F0  FB FF FE FF 02 00                    db      0FBh,0FFh,0FEh,0FFh, 02h, 00h +40E6:18F6  FD FF FC FF FE FF                    db      0FDh,0FFh,0FCh,0FFh,0FEh,0FFh +40E6:18FC  03 00 FD FF FD FF                    db       03h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:1902  FE FF 02 00 FD FF                    db      0FEh,0FFh, 02h, 00h,0FDh,0FFh +40E6:1908  FD FF FE FF 03 00                    db      0FDh,0FFh,0FEh,0FFh, 03h, 00h +40E6:190E  FD FF FC FF FD FF                    db      0FDh,0FFh,0FCh,0FFh,0FDh,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 586 + +40E6:1914  02 00 FD FF FF FF                    db       02h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:191A  FF FF 03 00 FD FF                    db      0FFh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1920  FE FF FE FF 02 00                    db      0FEh,0FFh,0FEh,0FFh, 02h, 00h +40E6:1926  FD FF FE FF FD FF                    db      0FDh,0FFh,0FEh,0FFh,0FDh,0FFh +40E6:192C  03 00 FD FF FD FF                    db       03h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:1932  FD FF 02 00 FD FF                    db      0FDh,0FFh, 02h, 00h,0FDh,0FFh +40E6:1938  FD FF FC FF 03 00                    db      0FDh,0FFh,0FCh,0FFh, 03h, 00h +40E6:193E  FD FF FE FF FC FF                    db      0FDh,0FFh,0FEh,0FFh,0FCh,0FFh +40E6:1944  02 00 FD FF FE FF                    db       02h, 00h,0FDh,0FFh,0FEh,0FFh +40E6:194A  FC FF 03 00 FD FF                    db      0FCh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1950  FD FF FB FF 02 00                    db      0FDh,0FFh,0FBh,0FFh, 02h, 00h +40E6:1956  FD FF FE FF FB FF                    db      0FDh,0FFh,0FEh,0FFh,0FBh,0FFh +40E6:195C  03 00 FD FF FB FF                    db       03h, 00h,0FDh,0FFh,0FBh,0FFh +40E6:1962  F9 FF 02 00 FD FF                    db      0F9h,0FFh, 02h, 00h,0FDh,0FFh +40E6:1968  FD FF FB FF 03 00                    db      0FDh,0FFh,0FBh,0FFh, 03h, 00h +40E6:196E  FD FF FC FF FA FF                    db      0FDh,0FFh,0FCh,0FFh,0FAh,0FFh +40E6:1974  02 00 FD FF FE FF                    db       02h, 00h,0FDh,0FFh,0FEh,0FFh +40E6:197A  FC FF 03 00 FD FF                    db      0FCh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1980  FD FF E0 FF 02 00                    db      0FDh,0FFh,0E0h,0FFh, 02h, 00h +40E6:1986  FA FF 46 16 FE FF                    db      0FAh,0FFh, 46h, 16h,0FEh,0FFh +40E6:198C  A7 00 C5 00 02 00                    db      0A7h, 00h,0C5h, 00h, 02h, 00h +40E6:1992  FD FF 02 00 02 00                    db      0FDh,0FFh, 02h, 00h, 02h, 00h +40E6:1998  01 00 FD FF 09 00                    db       01h, 00h,0FDh,0FFh, 09h, 00h +40E6:199E  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:19A4  03 00 01 00 01 00                    db       03h, 00h, 01h, 00h, 01h, 00h +40E6:19AA  FD FF 02 00 02 00                    db      0FDh,0FFh, 02h, 00h, 02h, 00h +40E6:19B0  00 00 FD FF 05 00                    db       00h, 00h,0FDh,0FFh, 05h, 00h +40E6:19B6  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:19BC  07 00 02 00 00 00                    db       07h, 00h, 02h, 00h, 00h, 00h +40E6:19C2  FD FF 04 00 00 00                    db      0FDh,0FFh, 04h, 00h, 00h, 00h +40E6:19C8  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:19CE  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:19D4  03 00 00 00 01 00                    db       03h, 00h, 00h, 00h, 01h, 00h +40E6:19DA  FD FF 01 00 00 00                    db      0FDh,0FFh, 01h, 00h, 00h, 00h +40E6:19E0  00 00 FD FF 02 00                    db       00h, 00h,0FDh,0FFh, 02h, 00h +40E6:19E6  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:19EC  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +40E6:19F2  FD FF 02 00 00 00                    db      0FDh,0FFh, 02h, 00h, 00h, 00h +40E6:19F8  01 00 FD FF 02 00                    db       01h, 00h,0FDh,0FFh, 02h, 00h +40E6:19FE  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:1A04  02 00 02 00 01 00                    db       02h, 00h, 02h, 00h, 01h, 00h +40E6:1A0A  FD FF 03 00 02 00                    db      0FDh,0FFh, 03h, 00h, 02h, 00h +40E6:1A10  00 00 FD FF 03 00                    db       00h, 00h,0FDh,0FFh, 03h, 00h +40E6:1A16  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:1A1C  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:1A22  FD FF 01 00 01 00                    db      0FDh,0FFh, 01h, 00h, 01h, 00h +40E6:1A28  01 00 FD FF 02 00                    db       01h, 00h,0FDh,0FFh, 02h, 00h +40E6:1A2E  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:1A34  02 00 02 00 01 00                    db       02h, 00h, 02h, 00h, 01h, 00h +40E6:1A3A  FD FF 02 00 02 00                    db      0FDh,0FFh, 02h, 00h, 02h, 00h +40E6:1A40  00 00 FD FF 04 00                    db       00h, 00h,0FDh,0FFh, 04h, 00h +40E6:1A46  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:1A4C  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:1A52  FD FF 05 00 03 00                    db      0FDh,0FFh, 05h, 00h, 03h, 00h +40E6:1A58  01 00 FD FF 07 00                    db       01h, 00h,0FDh,0FFh, 07h, 00h +40E6:1A5E  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:1A64  04 00 01 00 01 00                    db       04h, 00h, 01h, 00h, 01h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 587 + +40E6:1A6A  FD FF 03 00 01 00                    db      0FDh,0FFh, 03h, 00h, 01h, 00h +40E6:1A70  00 00 FD FF 04 00                    db       00h, 00h,0FDh,0FFh, 04h, 00h +40E6:1A76  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1A7C  06 00 01 00 00 00                    db       06h, 00h, 01h, 00h, 00h, 00h +40E6:1A82  FD FF 06 00 00 00                    db      0FDh,0FFh, 06h, 00h, 00h, 00h +40E6:1A88  01 00 FD FF 04 00                    db       01h, 00h,0FDh,0FFh, 04h, 00h +40E6:1A8E  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:1A94  04 00 00 00 01 00                    db       04h, 00h, 00h, 00h, 01h, 00h +40E6:1A9A  FD FF 06 00 FF FF                    db      0FDh,0FFh, 06h, 00h,0FFh,0FFh +40E6:1AA0  00 00 FD FF 05 00                    db       00h, 00h,0FDh,0FFh, 05h, 00h +40E6:1AA6  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1AAC  09 00 FE FF 00 00                    db       09h, 00h,0FEh,0FFh, 00h, 00h +40E6:1AB2  FD FF 04 00 00 00                    db      0FDh,0FFh, 04h, 00h, 00h, 00h +40E6:1AB8  01 00 FD FF 07 00                    db       01h, 00h,0FDh,0FFh, 07h, 00h +40E6:1ABE  FF FF 00 00 FD FF                    db      0FFh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1AC4  04 00 FF FF 01 00                    db       04h, 00h,0FFh,0FFh, 01h, 00h +40E6:1ACA  FD FF 05 00 FF FF                    db      0FDh,0FFh, 05h, 00h,0FFh,0FFh +40E6:1AD0  00 00 FD FF 04 00                    db       00h, 00h,0FDh,0FFh, 04h, 00h +40E6:1AD6  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1ADC  03 00 FF FF 00 00                    db       03h, 00h,0FFh,0FFh, 00h, 00h +40E6:1AE2  FD FF 03 00 FF FF                    db      0FDh,0FFh, 03h, 00h,0FFh,0FFh +40E6:1AE8  01 00 FD FF 04 00                    db       01h, 00h,0FDh,0FFh, 04h, 00h +40E6:1AEE  FF FF 00 00 FD FF                    db      0FFh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1AF4  04 00 FF FF 01 00                    db       04h, 00h,0FFh,0FFh, 01h, 00h +40E6:1AFA  FD FF 04 00 FE FF                    db      0FDh,0FFh, 04h, 00h,0FEh,0FFh +40E6:1B00  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:1B06  FF FF 01 00 FD FF                    db      0FFh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1B0C  03 00 FF FF 00 00                    db       03h, 00h,0FFh,0FFh, 00h, 00h +40E6:1B12  FD FF 02 00 FF FF                    db      0FDh,0FFh, 02h, 00h,0FFh,0FFh +40E6:1B18  01 00 FD FF 01 00                    db       01h, 00h,0FDh,0FFh, 01h, 00h +40E6:1B1E  FF FF 00 00 FD FF                    db      0FFh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1B24  01 00 FF FF 01 00                    db       01h, 00h,0FFh,0FFh, 01h, 00h +40E6:1B2A  FD FF 01 00 00 00                    db      0FDh,0FFh, 01h, 00h, 00h, 00h +40E6:1B30  00 00 FD FF 02 00                    db       00h, 00h,0FDh,0FFh, 02h, 00h +40E6:1B36  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1B3C  01 00 FF FF 00 00                    db       01h, 00h,0FFh,0FFh, 00h, 00h +40E6:1B42  FD FF 01 00 FF FF                    db      0FDh,0FFh, 01h, 00h,0FFh,0FFh +40E6:1B48  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1B4E  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:1B54  01 00 FF FF 01 00                    db       01h, 00h,0FFh,0FFh, 01h, 00h +40E6:1B5A  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:1B60  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:1B66  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1B6C  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +40E6:1B72  FD FF 01 00 00 00                    db      0FDh,0FFh, 01h, 00h, 00h, 00h +40E6:1B78  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1B7E  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:1B84  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:1B8A  FD FF 01 00 01 00                    db      0FDh,0FFh, 01h, 00h, 01h, 00h +40E6:1B90  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:1B96  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1B9C  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +40E6:1BA2  FD FF 02 00 01 00                    db      0FDh,0FFh, 02h, 00h, 01h, 00h +40E6:1BA8  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:1BAE  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:1BB4  03 00 01 00 01 00                    db       03h, 00h, 01h, 00h, 01h, 00h +40E6:1BBA  FD FF 04 00 04 00                    db      0FDh,0FFh, 04h, 00h, 04h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 588 + +40E6:1BC0  00 00 FD FF 04 00                    db       00h, 00h,0FDh,0FFh, 04h, 00h +40E6:1BC6  04 00 01 00 FD FF                    db       04h, 00h, 01h, 00h,0FDh,0FFh +40E6:1BCC  02 00 02 00 00 00                    db       02h, 00h, 02h, 00h, 00h, 00h +40E6:1BD2  FD FF 01 00 01 00                    db      0FDh,0FFh, 01h, 00h, 01h, 00h +40E6:1BD8  01 00 FD FF 02 00                    db       01h, 00h,0FDh,0FFh, 02h, 00h +40E6:1BDE  02 00 00 00 FE FF                    db       02h, 00h, 00h, 00h,0FEh,0FFh +40E6:1BE4  64 00 64 00 FF FF                    db       64h, 00h, 64h, 00h,0FFh,0FFh +40E6:1BEA  15 00 FE FF 6F 01                    db       15h, 00h,0FEh,0FFh, 6Fh, 01h +40E6:1BF0  F3 00 02 00 FD FF                    db      0F3h, 00h, 02h, 00h,0FDh,0FFh +40E6:1BF6  FD FF 05 00 03 00                    db      0FDh,0FFh, 05h, 00h, 03h, 00h +40E6:1BFC  FD FF FB FF 06 00                    db      0FDh,0FFh,0FBh,0FFh, 06h, 00h +40E6:1C02  02 00 FD FF FF FF                    db       02h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1C08  02 00 03 00 FD FF                    db       02h, 00h, 03h, 00h,0FDh,0FFh +40E6:1C0E  FE FF 04 00 02 00                    db      0FEh,0FFh, 04h, 00h, 02h, 00h +40E6:1C14  FD FF FF FF 02 00                    db      0FDh,0FFh,0FFh,0FFh, 02h, 00h +40E6:1C1A  03 00 FD FF FF FF                    db       03h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1C20  02 00 02 00 FD FF                    db       02h, 00h, 02h, 00h,0FDh,0FFh +40E6:1C26  FF FF 02 00 03 00                    db      0FFh,0FFh, 02h, 00h, 03h, 00h +40E6:1C2C  FD FF FE FF 02 00                    db      0FDh,0FFh,0FEh,0FFh, 02h, 00h +40E6:1C32  02 00 FD FF 00 00                    db       02h, 00h,0FDh,0FFh, 00h, 00h +40E6:1C38  01 00 03 00 FD FF                    db       01h, 00h, 03h, 00h,0FDh,0FFh +40E6:1C3E  FF FF 01 00 02 00                    db      0FFh,0FFh, 01h, 00h, 02h, 00h +40E6:1C44  FD FF FF FF 01 00                    db      0FDh,0FFh,0FFh,0FFh, 01h, 00h +40E6:1C4A  03 00 FD FF FF FF                    db       03h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1C50  01 00 02 00 FD FF                    db       01h, 00h, 02h, 00h,0FDh,0FFh +40E6:1C56  00 00 01 00 00 00                    db       00h, 00h, 01h, 00h, 00h, 00h +40E6:1C5C  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:1C62  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1C68  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:1C6E  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:1C74  FD FF 00 00 02 00                    db      0FDh,0FFh, 00h, 00h, 02h, 00h +40E6:1C7A  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:1C80  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1C86  00 00 01 00 00 00                    db       00h, 00h, 01h, 00h, 00h, 00h +40E6:1C8C  FD FF 01 00 01 00                    db      0FDh,0FFh, 01h, 00h, 01h, 00h +40E6:1C92  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1C98  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:1C9E  02 00 02 00 01 00                    db       02h, 00h, 02h, 00h, 01h, 00h +40E6:1CA4  FD FF 01 00 01 00                    db      0FDh,0FFh, 01h, 00h, 01h, 00h +40E6:1CAA  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:1CB0  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:1CB6  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:1CBC  FD FF 00 00 01 00                    db      0FDh,0FFh, 00h, 00h, 01h, 00h +40E6:1CC2  01 00 FD FF 02 00                    db       01h, 00h,0FDh,0FFh, 02h, 00h +40E6:1CC8  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:1CCE  01 00 01 00 01 00                    db       01h, 00h, 01h, 00h, 01h, 00h +40E6:1CD4  FD FF 01 00 00 00                    db      0FDh,0FFh, 01h, 00h, 00h, 00h +40E6:1CDA  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:1CE0  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1CE6  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +40E6:1CEC  FD FF 01 00 FE FF                    db      0FDh,0FFh, 01h, 00h,0FEh,0FFh +40E6:1CF2  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1CF8  FE FF 00 00 FD FF                    db      0FEh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1CFE  01 00 FF FF 01 00                    db       01h, 00h,0FFh,0FFh, 01h, 00h +40E6:1D04  FD FF 02 00 01 00                    db      0FDh,0FFh, 02h, 00h, 01h, 00h +40E6:1D0A  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:1D10  01 00 01 00 FD FF                    db       01h, 00h, 01h, 00h,0FDh,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 589 + +40E6:1D16  00 00 03 00 00 00                    db       00h, 00h, 03h, 00h, 00h, 00h +40E6:1D1C  FD FF 00 00 02 00                    db      0FDh,0FFh, 00h, 00h, 02h, 00h +40E6:1D22  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1D28  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:1D2E  00 00 02 00 01 00                    db       00h, 00h, 02h, 00h, 01h, 00h +40E6:1D34  FD FF 00 00 01 00                    db      0FDh,0FFh, 00h, 00h, 01h, 00h +40E6:1D3A  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:1D40  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1D46  00 00 01 00 00 00                    db       00h, 00h, 01h, 00h, 00h, 00h +40E6:1D4C  FD FF 00 00 01 00                    db      0FDh,0FFh, 00h, 00h, 01h, 00h +40E6:1D52  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1D58  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:1D5E  00 00 01 00 01 00                    db       00h, 00h, 01h, 00h, 01h, 00h +40E6:1D64  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:1D6A  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:1D70  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1D76  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:1D7C  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:1D82  03 00 FD FF 00 00                    db       03h, 00h,0FDh,0FFh, 00h, 00h +40E6:1D88  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:1D8E  FF FF 00 00 03 00                    db      0FFh,0FFh, 00h, 00h, 03h, 00h +40E6:1D94  FD FF FE FF 01 00                    db      0FDh,0FFh,0FEh,0FFh, 01h, 00h +40E6:1D9A  02 00 FD FF FD FF                    db       02h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:1DA0  FF FF 03 00 FD FF                    db      0FFh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1DA6  FE FF 00 00 02 00                    db      0FEh,0FFh, 00h, 00h, 02h, 00h +40E6:1DAC  FD FF FE FF FE FF                    db      0FDh,0FFh,0FEh,0FFh,0FEh,0FFh +40E6:1DB2  03 00 FD FF FF FF                    db       03h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1DB8  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:1DBE  FF FF FE FF 03 00                    db      0FFh,0FFh,0FEh,0FFh, 03h, 00h +40E6:1DC4  FD FF FD FF FE FF                    db      0FDh,0FFh,0FDh,0FFh,0FEh,0FFh +40E6:1DCA  02 00 FD FF FF FF                    db       02h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1DD0  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1DD6  FE FF FF FF 02 00                    db      0FEh,0FFh,0FFh,0FFh, 02h, 00h +40E6:1DDC  FD FF FF FF FE FF                    db      0FDh,0FFh,0FFh,0FFh,0FEh,0FFh +40E6:1DE2  03 00 FD FF 00 00                    db       03h, 00h,0FDh,0FFh, 00h, 00h +40E6:1DE8  FE FF 02 00 FD FF                    db      0FEh,0FFh, 02h, 00h,0FDh,0FFh +40E6:1DEE  00 00 FE FF 03 00                    db       00h, 00h,0FEh,0FFh, 03h, 00h +40E6:1DF4  FD FF 00 00 FF FF                    db      0FDh,0FFh, 00h, 00h,0FFh,0FFh +40E6:1DFA  02 00 FD FF 01 00                    db       02h, 00h,0FDh,0FFh, 01h, 00h +40E6:1E00  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1E06  01 00 00 00 02 00                    db       01h, 00h, 00h, 00h, 02h, 00h +40E6:1E0C  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:1E12  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:1E18  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:1E1E  01 00 FF FF 00 00                    db       01h, 00h,0FFh,0FFh, 00h, 00h +40E6:1E24  FD FF 02 00 FF FF                    db      0FDh,0FFh, 02h, 00h,0FFh,0FFh +40E6:1E2A  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:1E30  FD FF 00 00 FD FF                    db      0FDh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1E36  01 00 FD FF 01 00                    db       01h, 00h,0FDh,0FFh, 01h, 00h +40E6:1E3C  FD FF 03 00 FB FF                    db      0FDh,0FFh, 03h, 00h,0FBh,0FFh +40E6:1E42  00 00 FD FF 02 00                    db       00h, 00h,0FDh,0FFh, 02h, 00h +40E6:1E48  FA FF 01 00 FD FF                    db      0FAh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1E4E  02 00 FB FF 00 00                    db       02h, 00h,0FBh,0FFh, 00h, 00h +40E6:1E54  FD FF 01 00 FD FF                    db      0FDh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1E5A  01 00 FD FF 01 00                    db       01h, 00h,0FDh,0FFh, 01h, 00h +40E6:1E60  FD FF 00 00 FD FF                    db      0FDh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1E66  02 00 FD FF 01 00                    db       02h, 00h,0FDh,0FFh, 01h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 590 + +40E6:1E6C  FD FF 01 00 FD FF                    db      0FDh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1E72  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:1E78  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1E7E  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:1E84  FE FF 64 00 64 00                    db      0FEh,0FFh, 64h, 00h, 64h, 00h +40E6:1E8A  FF FF 0A 00 FA FF                    db      0FFh,0FFh, 0Ah, 00h,0FAh,0FFh +40E6:1E90  8A 19 FE FF A1 00                    db       8Ah, 19h,0FEh,0FFh,0A1h, 00h +40E6:1E96  EE 00 00 00 FD FF                    db      0EEh, 00h, 00h, 00h,0FDh,0FFh +40E6:1E9C  04 00 01 00 01 00                    db       04h, 00h, 01h, 00h, 01h, 00h +40E6:1EA2  FD FF 02 00 FF FF                    db      0FDh,0FFh, 02h, 00h,0FFh,0FFh +40E6:1EA8  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:1EAE  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1EB4  02 00 FD FF 00 00                    db       02h, 00h,0FDh,0FFh, 00h, 00h +40E6:1EBA  FD FF 03 00 FD FF                    db      0FDh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1EC0  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:1EC6  FE FF 00 00 FD FF                    db      0FEh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1ECC  03 00 FF FF 01 00                    db       03h, 00h,0FFh,0FFh, 01h, 00h +40E6:1ED2  FD FF 02 00 00 00                    db      0FDh,0FFh, 02h, 00h, 00h, 00h +40E6:1ED8  00 00 FD FF 03 00                    db       00h, 00h,0FDh,0FFh, 03h, 00h +40E6:1EDE  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1EE4  07 00 FF FF 00 00                    db       07h, 00h,0FFh,0FFh, 00h, 00h +40E6:1EEA  FD FF 04 00 00 00                    db      0FDh,0FFh, 04h, 00h, 00h, 00h +40E6:1EF0  01 00 FD FF 04 00                    db       01h, 00h,0FDh,0FFh, 04h, 00h +40E6:1EF6  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:1EFC  06 00 FF FF 01 00                    db       06h, 00h,0FFh,0FFh, 01h, 00h +40E6:1F02  FD FF 06 00 FC FF                    db      0FDh,0FFh, 06h, 00h,0FCh,0FFh +40E6:1F08  00 00 FD FF 02 00                    db       00h, 00h,0FDh,0FFh, 02h, 00h +40E6:1F0E  FD FF 01 00 FD FF                    db      0FDh,0FFh, 01h, 00h,0FDh,0FFh +40E6:1F14  02 00 FD FF 00 00                    db       02h, 00h,0FDh,0FFh, 00h, 00h +40E6:1F1A  FD FF 03 00 FD FF                    db      0FDh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1F20  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:1F26  FA FF 00 00 FD FF                    db      0FAh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1F2C  02 00 FC FF 01 00                    db       02h, 00h,0FCh,0FFh, 01h, 00h +40E6:1F32  FD FF 00 00 FD FF                    db      0FDh,0FFh, 00h, 00h,0FDh,0FFh +40E6:1F38  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:1F3E  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:1F44  00 00 00 00 03 00                    db       00h, 00h, 00h, 00h, 03h, 00h +40E6:1F4A  FD FF FF FF 02 00                    db      0FDh,0FFh,0FFh,0FFh, 02h, 00h +40E6:1F50  02 00 FD FF FE FF                    db       02h, 00h,0FDh,0FFh,0FEh,0FFh +40E6:1F56  01 00 03 00 FD FF                    db       01h, 00h, 03h, 00h,0FDh,0FFh +40E6:1F5C  FF FF FF FF 02 00                    db      0FFh,0FFh,0FFh,0FFh, 02h, 00h +40E6:1F62  FD FF FE FF FE FF                    db      0FDh,0FFh,0FEh,0FFh,0FEh,0FFh +40E6:1F68  03 00 FD FF FE FF                    db       03h, 00h,0FDh,0FFh,0FEh,0FFh +40E6:1F6E  FE FF 02 00 FD FF                    db      0FEh,0FFh, 02h, 00h,0FDh,0FFh +40E6:1F74  FE FF FE FF 03 00                    db      0FEh,0FFh,0FEh,0FFh, 03h, 00h +40E6:1F7A  FD FF FE FF FE FF                    db      0FDh,0FFh,0FEh,0FFh,0FEh,0FFh +40E6:1F80  02 00 FD FF FF FF                    db       02h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1F86  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1F8C  00 00 FE FF 02 00                    db       00h, 00h,0FEh,0FFh, 02h, 00h +40E6:1F92  FD FF 01 00 FF FF                    db      0FDh,0FFh, 01h, 00h,0FFh,0FFh +40E6:1F98  03 00 FD FF 01 00                    db       03h, 00h,0FDh,0FFh, 01h, 00h +40E6:1F9E  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:1FA4  01 00 01 00 03 00                    db       01h, 00h, 01h, 00h, 03h, 00h +40E6:1FAA  FD FF 02 00 03 00                    db      0FDh,0FFh, 02h, 00h, 03h, 00h +40E6:1FB0  02 00 FD FF 03 00                    db       02h, 00h,0FDh,0FFh, 03h, 00h +40E6:1FB6  02 00 03 00 FD FF                    db       02h, 00h, 03h, 00h,0FDh,0FFh +40E6:1FBC  01 00 01 00 02 00                    db       01h, 00h, 01h, 00h, 02h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 591 + +40E6:1FC2  FD FF 01 00 01 00                    db      0FDh,0FFh, 01h, 00h, 01h, 00h +40E6:1FC8  03 00 FD FF 01 00                    db       03h, 00h,0FDh,0FFh, 01h, 00h +40E6:1FCE  01 00 02 00 FD FF                    db       01h, 00h, 02h, 00h,0FDh,0FFh +40E6:1FD4  01 00 00 00 03 00                    db       01h, 00h, 00h, 00h, 03h, 00h +40E6:1FDA  FD FF 01 00 FF FF                    db      0FDh,0FFh, 01h, 00h,0FFh,0FFh +40E6:1FE0  02 00 FD FF FF FF                    db       02h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1FE6  FC FF 03 00 FD FF                    db      0FCh,0FFh, 03h, 00h,0FDh,0FFh +40E6:1FEC  FF FF FD FF 02 00                    db      0FFh,0FFh,0FDh,0FFh, 02h, 00h +40E6:1FF2  FD FF 00 00 FE FF                    db      0FDh,0FFh, 00h, 00h,0FEh,0FFh +40E6:1FF8  03 00 FD FF FF FF                    db       03h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:1FFE  FE FF 02 00 FD FF                    db      0FEh,0FFh, 02h, 00h,0FDh,0FFh +40E6:2004  00 00 FE FF 03 00                    db       00h, 00h,0FEh,0FFh, 03h, 00h +40E6:200A  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:2010  02 00 FD FF 00 00                    db       02h, 00h,0FDh,0FFh, 00h, 00h +40E6:2016  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:201C  FF FF 01 00 02 00                    db      0FFh,0FFh, 01h, 00h, 02h, 00h +40E6:2022  FD FF 00 00 01 00                    db      0FDh,0FFh, 00h, 00h, 01h, 00h +40E6:2028  03 00 FD FF 00 00                    db       03h, 00h,0FDh,0FFh, 00h, 00h +40E6:202E  01 00 02 00 FD FF                    db       01h, 00h, 02h, 00h,0FDh,0FFh +40E6:2034  FF FF 01 00 03 00                    db      0FFh,0FFh, 01h, 00h, 03h, 00h +40E6:203A  FD FF FD FF 02 00                    db      0FDh,0FFh,0FDh,0FFh, 02h, 00h +40E6:2040  02 00 FD FF FF FF                    db       02h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:2046  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:204C  FD FF FF FF 02 00                    db      0FDh,0FFh,0FFh,0FFh, 02h, 00h +40E6:2052  FD FF FD FF FF FF                    db      0FDh,0FFh,0FDh,0FFh,0FFh,0FFh +40E6:2058  03 00 FD FF FF FF                    db       03h, 00h,0FDh,0FFh,0FFh,0FFh +40E6:205E  FF FF 02 00 FD FF                    db      0FFh,0FFh, 02h, 00h,0FDh,0FFh +40E6:2064  FD FF 00 00 03 00                    db      0FDh,0FFh, 00h, 00h, 03h, 00h +40E6:206A  FD FF FE FF 02 00                    db      0FDh,0FFh,0FEh,0FFh, 02h, 00h +40E6:2070  02 00 FD FF FD FF                    db       02h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:2076  02 00 03 00 FD FF                    db       02h, 00h, 03h, 00h,0FDh,0FFh +40E6:207C  FF FF FF FF 02 00                    db      0FFh,0FFh,0FFh,0FFh, 02h, 00h +40E6:2082  FD FF FF FF 01 00                    db      0FDh,0FFh,0FFh,0FFh, 01h, 00h +40E6:2088  03 00 FD FF 00 00                    db       03h, 00h,0FDh,0FFh, 00h, 00h +40E6:208E  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:2094  02 00 00 00 03 00                    db       02h, 00h, 00h, 00h, 03h, 00h +40E6:209A  FD FF 03 00 FF FF                    db      0FDh,0FFh, 03h, 00h,0FFh,0FFh +40E6:20A0  02 00 FD FF 03 00                    db       02h, 00h,0FDh,0FFh, 03h, 00h +40E6:20A6  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:20AC  02 00 FF FF 02 00                    db       02h, 00h,0FFh,0FFh, 02h, 00h +40E6:20B2  FD FF 01 00 FF FF                    db      0FDh,0FFh, 01h, 00h,0FFh,0FFh +40E6:20B8  03 00 FD FF 00 00                    db       03h, 00h,0FDh,0FFh, 00h, 00h +40E6:20BE  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:20C4  00 00 00 00 03 00                    db       00h, 00h, 00h, 00h, 03h, 00h +40E6:20CA  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:20D0  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:20D6  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:20DC  01 00 00 00 01 00                    db       01h, 00h, 00h, 00h, 01h, 00h +40E6:20E2  FD FF 01 00 01 00                    db      0FDh,0FFh, 01h, 00h, 01h, 00h +40E6:20E8  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:20EE  01 00 01 00 FD FF                    db       01h, 00h, 01h, 00h,0FDh,0FFh +40E6:20F4  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:20FA  FD FF 03 00 02 00                    db      0FDh,0FFh, 03h, 00h, 02h, 00h +40E6:2100  01 00 FD FF 02 00                    db       01h, 00h,0FDh,0FFh, 02h, 00h +40E6:2106  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:210C  02 00 01 00 01 00                    db       02h, 00h, 01h, 00h, 01h, 00h +40E6:2112  FD FF 02 00 02 00                    db      0FDh,0FFh, 02h, 00h, 02h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 592 + +40E6:2118  00 00 FD FF 02 00                    db       00h, 00h,0FDh,0FFh, 02h, 00h +40E6:211E  01 00 01 00 FD FF                    db       01h, 00h, 01h, 00h,0FDh,0FFh +40E6:2124  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:212A  FD FF 02 00 02 00                    db      0FDh,0FFh, 02h, 00h, 02h, 00h +40E6:2130  01 00 FD FF 03 00                    db       01h, 00h,0FDh,0FFh, 03h, 00h +40E6:2136  02 00 00 00 FD FF                    db       02h, 00h, 00h, 00h,0FDh,0FFh +40E6:213C  02 00 02 00 01 00                    db       02h, 00h, 02h, 00h, 01h, 00h +40E6:2142  FD FF 06 00 03 00                    db      0FDh,0FFh, 06h, 00h, 03h, 00h +40E6:2148  00 00 FD FF 06 00                    db       00h, 00h,0FDh,0FFh, 06h, 00h +40E6:214E  04 00 01 00 FD FF                    db       04h, 00h, 01h, 00h,0FDh,0FFh +40E6:2154  04 00 03 00 00 00                    db       04h, 00h, 03h, 00h, 00h, 00h +40E6:215A  FD FF 03 00 01 00                    db      0FDh,0FFh, 03h, 00h, 01h, 00h +40E6:2160  01 00 FD FF 04 00                    db       01h, 00h,0FDh,0FFh, 04h, 00h +40E6:2166  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:216C  05 00 02 00 01 00                    db       05h, 00h, 02h, 00h, 01h, 00h +40E6:2172  FD FF 04 00 01 00                    db      0FDh,0FFh, 04h, 00h, 01h, 00h +40E6:2178  00 00 FD FF 04 00                    db       00h, 00h,0FDh,0FFh, 04h, 00h +40E6:217E  01 00 01 00 FD FF                    db       01h, 00h, 01h, 00h,0FDh,0FFh +40E6:2184  05 00 01 00 00 00                    db       05h, 00h, 01h, 00h, 00h, 00h +40E6:218A  FD FF 07 00 02 00                    db      0FDh,0FFh, 07h, 00h, 02h, 00h +40E6:2190  01 00 FD FF 05 00                    db       01h, 00h,0FDh,0FFh, 05h, 00h +40E6:2196  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:219C  04 00 01 00 01 00                    db       04h, 00h, 01h, 00h, 01h, 00h +40E6:21A2  FD FF 08 00 01 00                    db      0FDh,0FFh, 08h, 00h, 01h, 00h +40E6:21A8  00 00 FD FF 09 00                    db       00h, 00h,0FDh,0FFh, 09h, 00h +40E6:21AE  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:21B4  07 00 00 00 00 00                    db       07h, 00h, 00h, 00h, 00h, 00h +40E6:21BA  FD FF 06 00 00 00                    db      0FDh,0FFh, 06h, 00h, 00h, 00h +40E6:21C0  01 00 FD FF 07 00                    db       01h, 00h,0FDh,0FFh, 07h, 00h +40E6:21C6  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:21CC  02 00 00 00 01 00                    db       02h, 00h, 00h, 00h, 01h, 00h +40E6:21D2  FD FF 03 00 00 00                    db      0FDh,0FFh, 03h, 00h, 00h, 00h +40E6:21D8  00 00 FD FF 04 00                    db       00h, 00h,0FDh,0FFh, 04h, 00h +40E6:21DE  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:21E4  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +40E6:21EA  FD FF 01 00 FF FF                    db      0FDh,0FFh, 01h, 00h,0FFh,0FFh +40E6:21F0  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:21F6  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:21FC  01 00 FF FF 01 00                    db       01h, 00h,0FFh,0FFh, 01h, 00h +40E6:2202  FD FF 00 00 FF FF                    db      0FDh,0FFh, 00h, 00h,0FFh,0FFh +40E6:2208  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:220E  FE FF 01 00 FD FF                    db      0FEh,0FFh, 01h, 00h,0FDh,0FFh +40E6:2214  00 00 FE FF 00 00                    db       00h, 00h,0FEh,0FFh, 00h, 00h +40E6:221A  FD FF 00 00 FE FF                    db      0FDh,0FFh, 00h, 00h,0FEh,0FFh +40E6:2220  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:2226  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:222C  04 00 01 00 01 00                    db       04h, 00h, 01h, 00h, 01h, 00h +40E6:2232  FD FF 02 00 01 00                    db      0FDh,0FFh, 02h, 00h, 01h, 00h +40E6:2238  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:223E  01 00 01 00 FD FF                    db       01h, 00h, 01h, 00h,0FDh,0FFh +40E6:2244  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +40E6:224A  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:2250  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:2256  FF FF 00 00 FD FF                    db      0FFh,0FFh, 00h, 00h,0FDh,0FFh +40E6:225C  01 00 FF FF 01 00                    db       01h, 00h,0FFh,0FFh, 01h, 00h +40E6:2262  FD FF 00 00 FF FF                    db      0FDh,0FFh, 00h, 00h,0FFh,0FFh +40E6:2268  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 593 + +40E6:226E  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:2274  02 00 FF FF 00 00                    db       02h, 00h,0FFh,0FFh, 00h, 00h +40E6:227A  FD FF 05 00 01 00                    db      0FDh,0FFh, 05h, 00h, 01h, 00h +40E6:2280  01 00 FD FF 04 00                    db       01h, 00h,0FDh,0FFh, 04h, 00h +40E6:2286  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:228C  08 00 01 00 01 00                    db       08h, 00h, 01h, 00h, 01h, 00h +40E6:2292  FD FF 09 00 00 00                    db      0FDh,0FFh, 09h, 00h, 00h, 00h +40E6:2298  00 00 FE FF 64 00                    db       00h, 00h,0FEh,0FFh, 64h, 00h +40E6:229E  64 00 00 00 FF FF                    db       64h, 00h, 00h, 00h,0FFh,0FFh +40E6:22A4  16 00 FE FF 8F 01                    db       16h, 00h,0FEh,0FFh, 8Fh, 01h +40E6:22AA  0C 01 02 00 FD FF                    db       0Ch, 01h, 02h, 00h,0FDh,0FFh +40E6:22B0  FF FF FA FF 03 00                    db      0FFh,0FFh,0FAh,0FFh, 03h, 00h +40E6:22B6  FD FF 00 00 FF FF                    db      0FDh,0FFh, 00h, 00h,0FFh,0FFh +40E6:22BC  02 00 FD FF 00 00                    db       02h, 00h,0FDh,0FFh, 00h, 00h +40E6:22C2  FF FF 03 00 FD FF                    db      0FFh,0FFh, 03h, 00h,0FDh,0FFh +40E6:22C8  FE FF 00 00 02 00                    db      0FEh,0FFh, 00h, 00h, 02h, 00h +40E6:22CE  FD FF FE FF 00 00                    db      0FDh,0FFh,0FEh,0FFh, 00h, 00h +40E6:22D4  03 00 FD FF FD FF                    db       03h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:22DA  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:22E0  FC FF FE FF 03 00                    db      0FCh,0FFh,0FEh,0FFh, 03h, 00h +40E6:22E6  FD FF FD FF FF FF                    db      0FDh,0FFh,0FDh,0FFh,0FFh,0FFh +40E6:22EC  02 00 FD FF FD FF                    db       02h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:22F2  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:22F8  FD FF FF FF 02 00                    db      0FDh,0FFh,0FFh,0FFh, 02h, 00h +40E6:22FE  FD FF FC FF FE FF                    db      0FDh,0FFh,0FCh,0FFh,0FEh,0FFh +40E6:2304  03 00 FD FF FB FF                    db       03h, 00h,0FDh,0FFh,0FBh,0FFh +40E6:230A  FE FF 02 00 FD FF                    db      0FEh,0FFh, 02h, 00h,0FDh,0FFh +40E6:2310  FC FF FF FF 03 00                    db      0FCh,0FFh,0FFh,0FFh, 03h, 00h +40E6:2316  FD FF FB FF FE FF                    db      0FDh,0FFh,0FBh,0FFh,0FEh,0FFh +40E6:231C  02 00 FD FF FE FF                    db       02h, 00h,0FDh,0FFh,0FEh,0FFh +40E6:2322  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:2328  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +40E6:232E  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:2334  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:233A  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:2340  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +40E6:2346  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:234C  01 00 FD FF 01 00                    db       01h, 00h,0FDh,0FFh, 01h, 00h +40E6:2352  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:2358  01 00 01 00 01 00                    db       01h, 00h, 01h, 00h, 01h, 00h +40E6:235E  FD FF 02 00 02 00                    db      0FDh,0FFh, 02h, 00h, 02h, 00h +40E6:2364  00 00 FD FF 01 00                    db       00h, 00h,0FDh,0FFh, 01h, 00h +40E6:236A  02 00 01 00 FD FF                    db       02h, 00h, 01h, 00h,0FDh,0FFh +40E6:2370  01 00 01 00 00 00                    db       01h, 00h, 01h, 00h, 00h, 00h +40E6:2376  FD FF 02 00 03 00                    db      0FDh,0FFh, 02h, 00h, 03h, 00h +40E6:237C  01 00 FD FF 01 00                    db       01h, 00h,0FDh,0FFh, 01h, 00h +40E6:2382  01 00 00 00 FD FF                    db       01h, 00h, 00h, 00h,0FDh,0FFh +40E6:2388  01 00 01 00 01 00                    db       01h, 00h, 01h, 00h, 01h, 00h +40E6:238E  FD FF 03 00 03 00                    db      0FDh,0FFh, 03h, 00h, 03h, 00h +40E6:2394  00 00 FD FF 02 00                    db       00h, 00h,0FDh,0FFh, 02h, 00h +40E6:239A  01 00 01 00 FD FF                    db       01h, 00h, 01h, 00h,0FDh,0FFh +40E6:23A0  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:23A6  FD FF 01 00 00 00                    db      0FDh,0FFh, 01h, 00h, 00h, 00h +40E6:23AC  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:23B2  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:23B8  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:23BE  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 594 + +40E6:23C4  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:23CA  FF FF 01 00 FD FF                    db      0FFh,0FFh, 01h, 00h,0FDh,0FFh +40E6:23D0  00 00 FF FF 00 00                    db       00h, 00h,0FFh,0FFh, 00h, 00h +40E6:23D6  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:23DC  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:23E2  FE FF 00 00 FD FF                    db      0FEh,0FFh, 00h, 00h,0FDh,0FFh +40E6:23E8  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:23EE  FD FF 00 00 FF FF                    db      0FDh,0FFh, 00h, 00h,0FFh,0FFh +40E6:23F4  00 00 FD FF 00 00                    db       00h, 00h,0FDh,0FFh, 00h, 00h +40E6:23FA  00 00 01 00 FD FF                    db       00h, 00h, 01h, 00h,0FDh,0FFh +40E6:2400  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +40E6:2406  FD FF 00 00 01 00                    db      0FDh,0FFh, 00h, 00h, 01h, 00h +40E6:240C  01 00 FD FF 00 00                    db       01h, 00h,0FDh,0FFh, 00h, 00h +40E6:2412  00 00 00 00 FD FF                    db       00h, 00h, 00h, 00h,0FDh,0FFh +40E6:2418  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +40E6:241E  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:2424  02 00 FD FF 00 00                    db       02h, 00h,0FDh,0FFh, 00h, 00h +40E6:242A  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:2430  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +40E6:2436  FD FF 00 00 00 00                    db      0FDh,0FFh, 00h, 00h, 00h, 00h +40E6:243C  03 00 FD FF 00 00                    db       03h, 00h,0FDh,0FFh, 00h, 00h +40E6:2442  01 00 02 00 FD FF                    db       01h, 00h, 02h, 00h,0FDh,0FFh +40E6:2448  FF FF 00 00 03 00                    db      0FFh,0FFh, 00h, 00h, 03h, 00h +40E6:244E  FD FF FF FF 00 00                    db      0FDh,0FFh,0FFh,0FFh, 00h, 00h +40E6:2454  02 00 FD FF 00 00                    db       02h, 00h,0FDh,0FFh, 00h, 00h +40E6:245A  01 00 03 00 FD FF                    db       01h, 00h, 03h, 00h,0FDh,0FFh +40E6:2460  FF FF 00 00 02 00                    db      0FFh,0FFh, 00h, 00h, 02h, 00h +40E6:2466  FD FF FE FF 00 00                    db      0FDh,0FFh,0FEh,0FFh, 00h, 00h +40E6:246C  03 00 FD FF FD FF                    db       03h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:2472  01 00 02 00 FD FF                    db       01h, 00h, 02h, 00h,0FDh,0FFh +40E6:2478  FE FF 01 00 03 00                    db      0FEh,0FFh, 01h, 00h, 03h, 00h +40E6:247E  FD FF FE FF 01 00                    db      0FDh,0FFh,0FEh,0FFh, 01h, 00h +40E6:2484  02 00 FD FF FD FF                    db       02h, 00h,0FDh,0FFh,0FDh,0FFh +40E6:248A  01 00 03 00 FD FF                    db       01h, 00h, 03h, 00h,0FDh,0FFh +40E6:2490  FF FF 01 00 02 00                    db      0FFh,0FFh, 01h, 00h, 02h, 00h +40E6:2496  FD FF FD FF 01 00                    db      0FDh,0FFh,0FDh,0FFh, 01h, 00h +40E6:249C  03 00 FD FF FE FF                    db       03h, 00h,0FDh,0FFh,0FEh,0FFh +40E6:24A2  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:24A8  FD FF 01 00 03 00                    db      0FDh,0FFh, 01h, 00h, 03h, 00h +40E6:24AE  FD FF FB FF 01 00                    db      0FDh,0FFh,0FBh,0FFh, 01h, 00h +40E6:24B4  02 00 FD FF FC FF                    db       02h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:24BA  02 00 03 00 FD FF                    db       02h, 00h, 03h, 00h,0FDh,0FFh +40E6:24C0  FA FF 02 00 02 00                    db      0FAh,0FFh, 02h, 00h, 02h, 00h +40E6:24C6  FD FF FD FF 00 00                    db      0FDh,0FFh,0FDh,0FFh, 00h, 00h +40E6:24CC  03 00 FD FF FC FF                    db       03h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:24D2  01 00 02 00 FD FF                    db       01h, 00h, 02h, 00h,0FDh,0FFh +40E6:24D8  FD FF 01 00 03 00                    db      0FDh,0FFh, 01h, 00h, 03h, 00h +40E6:24DE  FD FF FD FF 00 00                    db      0FDh,0FFh,0FDh,0FFh, 00h, 00h +40E6:24E4  02 00 FD FF FC FF                    db       02h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:24EA  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:24F0  FB FF 00 00 02 00                    db      0FBh,0FFh, 00h, 00h, 02h, 00h +40E6:24F6  FD FF FD FF 00 00                    db      0FDh,0FFh,0FDh,0FFh, 00h, 00h +40E6:24FC  03 00 FD FF FC FF                    db       03h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:2502  00 00 02 00 FD FF                    db       00h, 00h, 02h, 00h,0FDh,0FFh +40E6:2508  FD FF 00 00 03 00                    db      0FDh,0FFh, 00h, 00h, 03h, 00h +40E6:250E  FD FF FC FF 00 00                    db      0FDh,0FFh,0FCh,0FFh, 00h, 00h +40E6:2514  02 00 FD FF F9 FF                    db       02h, 00h,0FDh,0FFh,0F9h,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 595 + +40E6:251A  00 00 03 00 FD FF                    db       00h, 00h, 03h, 00h,0FDh,0FFh +40E6:2520  FF FF 00 00 02 00                    db      0FFh,0FFh, 00h, 00h, 02h, 00h +40E6:2526  FD FF FE FF FE FF                    db      0FDh,0FFh,0FEh,0FFh,0FEh,0FFh +40E6:252C  03 00 FD FF FC FF                    db       03h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:2532  FF FF 02 00 FD FF                    db      0FFh,0FFh, 02h, 00h,0FDh,0FFh +40E6:2538  FD FF FF FF 03 00                    db      0FDh,0FFh,0FFh,0FFh, 03h, 00h +40E6:253E  FD FF FA FF FD FF                    db      0FDh,0FFh,0FAh,0FFh,0FDh,0FFh +40E6:2544  02 00 FD FF FA FF                    db       02h, 00h,0FDh,0FFh,0FAh,0FFh +40E6:254A  FC FF 03 00 FD FF                    db      0FCh,0FFh, 03h, 00h,0FDh,0FFh +40E6:2550  FA FF FD FF 02 00                    db      0FAh,0FFh,0FDh,0FFh, 02h, 00h +40E6:2556  FD FF FD FF FE FF                    db      0FDh,0FFh,0FDh,0FFh,0FEh,0FFh +40E6:255C  03 00 FD FF FC FF                    db       03h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:2562  FF FF 02 00 FD FF                    db      0FFh,0FFh, 02h, 00h,0FDh,0FFh +40E6:2568  FE FF FF FF 03 00                    db      0FEh,0FFh,0FFh,0FFh, 03h, 00h +40E6:256E  FD FF FC FF FE FF                    db      0FDh,0FFh,0FCh,0FFh,0FEh,0FFh +40E6:2574  02 00 FD FF FC FF                    db       02h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:257A  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:2580  FD FF FF FF 02 00                    db      0FDh,0FFh,0FFh,0FFh, 02h, 00h +40E6:2586  FD FF FC FF FE FF                    db      0FDh,0FFh,0FCh,0FFh,0FEh,0FFh +40E6:258C  03 00 FD FF FC FF                    db       03h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:2592  FD FF 02 00 FD FF                    db      0FDh,0FFh, 02h, 00h,0FDh,0FFh +40E6:2598  F8 FF FD FF 03 00                    db      0F8h,0FFh,0FDh,0FFh, 03h, 00h +40E6:259E  FD FF FA FF FE FF                    db      0FDh,0FFh,0FAh,0FFh,0FEh,0FFh +40E6:25A4  02 00 FD FF FB FF                    db       02h, 00h,0FDh,0FFh,0FBh,0FFh +40E6:25AA  FF FF 03 00 FD FF                    db      0FFh,0FFh, 03h, 00h,0FDh,0FFh +40E6:25B0  FA FF FE FF 02 00                    db      0FAh,0FFh,0FEh,0FFh, 02h, 00h +40E6:25B6  FD FF FD FF FE FF                    db      0FDh,0FFh,0FDh,0FFh,0FEh,0FFh +40E6:25BC  03 00 FD FF FB FF                    db       03h, 00h,0FDh,0FFh,0FBh,0FFh +40E6:25C2  FE FF 02 00 FD FF                    db      0FEh,0FFh, 02h, 00h,0FDh,0FFh +40E6:25C8  FB FF FE FF 03 00                    db      0FBh,0FFh,0FEh,0FFh, 03h, 00h +40E6:25CE  FD FF FC FF FE FF                    db      0FDh,0FFh,0FCh,0FFh,0FEh,0FFh +40E6:25D4  02 00 FD FF FC FF                    db       02h, 00h,0FDh,0FFh,0FCh,0FFh +40E6:25DA  FE FF 03 00 FD FF                    db      0FEh,0FFh, 03h, 00h,0FDh,0FFh +40E6:25E0  FB FF FE FF 02 00                    db      0FBh,0FFh,0FEh,0FFh, 02h, 00h +40E6:25E6  FD FF FD FF FF FF                    db      0FDh,0FFh,0FDh,0FFh,0FFh,0FFh +40E6:25EC  03 00 FD FF FB FF                    db       03h, 00h,0FDh,0FFh,0FBh,0FFh +40E6:25F2  FD FF 02 00 FE FF                    db      0FDh,0FFh, 02h, 00h,0FEh,0FFh +40E6:25F8  64 00 64 00 00 00                    db       64h, 00h, 64h, 00h, 00h, 00h +40E6:25FE  FF FF 0D 00 FA FF                    db      0FFh,0FFh, 0Dh, 00h,0FAh,0FFh +40E6:2604  92 1E FE FF 77 00                    db       92h, 1Eh,0FEh,0FFh, 77h, 00h +40E6:260A  FD 00 19 00 FD FF                    db      0FDh, 00h, 19h, 00h,0FDh,0FFh +40E6:2610  06 00 02 00 1A 00                    db       06h, 00h, 02h, 00h, 1Ah, 00h +40E6:2616  FF FF 0A 00 FA FF                    db      0FFh,0FFh, 0Ah, 00h,0FAh,0FFh +40E6:261C  06 26 00 00 F8 FF                    db       06h, 26h, 00h, 00h,0F8h,0FFh +40E6:2622  22 00 30 00 00 00                    db       22h, 00h, 30h, 00h, 00h, 00h +40E6:2628  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:262E  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:2634  03 00 00 00 01 00                    db       03h, 00h, 00h, 00h, 01h, 00h +40E6:263A  02 00 03 00 00 00                    db       02h, 00h, 03h, 00h, 00h, 00h +40E6:2640  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:2646  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:264C  03 00 00 00 01 00                    db       03h, 00h, 00h, 00h, 01h, 00h +40E6:2652  02 00 03 00 00 00                    db       02h, 00h, 03h, 00h, 00h, 00h +40E6:2658  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:265E  00 00 01 00 02 00                    db       00h, 00h, 01h, 00h, 02h, 00h +40E6:2664  03 00 00 00 01 00                    db       03h, 00h, 00h, 00h, 01h, 00h +40E6:266A  02 00 03 00 F7 FF                    db       02h, 00h, 03h, 00h,0F7h,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 596 + +40E6:2670  22 00 00 00 FA FF                    db       22h, 00h, 00h, 00h,0FAh,0FFh +40E6:2676  72 26 00 00 00 00                    db       72h, 26h, 00h, 00h, 00h, 00h +40E6:267C  FF FF 01 00 F8 FF                    db      0FFh,0FFh, 01h, 00h,0F8h,0FFh +40E6:2682  14 00 30 00 01 00                    db       14h, 00h, 30h, 00h, 01h, 00h +40E6:2688  FF FF 01 00 02 00                    db      0FFh,0FFh, 01h, 00h, 02h, 00h +40E6:268E  FF FF 01 00 03 00                    db      0FFh,0FFh, 01h, 00h, 03h, 00h +40E6:2694  FF FF 01 00 04 00                    db      0FFh,0FFh, 01h, 00h, 04h, 00h +40E6:269A  FF FF 01 00 05 00                    db      0FFh,0FFh, 01h, 00h, 05h, 00h +40E6:26A0  FF FF 01 00 06 00                    db      0FFh,0FFh, 01h, 00h, 06h, 00h +40E6:26A6  FF FF 01 00 07 00                    db      0FFh,0FFh, 01h, 00h, 07h, 00h +40E6:26AC  FF FF 14 00 06 00                    db      0FFh,0FFh, 14h, 00h, 06h, 00h +40E6:26B2  05 00 04 00 03 00                    db       05h, 00h, 04h, 00h, 03h, 00h +40E6:26B8  02 00 01 00 00 00                    db       02h, 00h, 01h, 00h, 00h, 00h +40E6:26BE  FA FF BC 26 F9 FF                    db      0FAh,0FFh,0BCh, 26h,0F9h,0FFh +40E6:26C4  59 5A FD FF FE FF                    db       59h, 5Ah,0FDh,0FFh,0FEh,0FFh +40E6:26CA  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +40E6:26D0  01 00 01 00 FF FF                    db       01h, 00h, 01h, 00h,0FFh,0FFh +40E6:26D6  01 00 02 00 FF FF                    db       01h, 00h, 02h, 00h,0FFh,0FFh +40E6:26DC  01 00 03 00 FF FF                    db       01h, 00h, 03h, 00h,0FFh,0FFh +40E6:26E2  01 00 04 00 FF FF                    db       01h, 00h, 04h, 00h,0FFh,0FFh +40E6:26E8  01 00 05 00 FF FF                    db       01h, 00h, 05h, 00h,0FFh,0FFh +40E6:26EE  01 00 06 00 FF FF                    db       01h, 00h, 06h, 00h,0FFh,0FFh +40E6:26F4  01 00 07 00 FF FF                    db       01h, 00h, 07h, 00h,0FFh,0FFh +40E6:26FA  14 00 F9 FF 80 5C                    db       14h, 00h,0F9h,0FFh, 80h, 5Ch +40E6:2700  FD FF 02 00 00 00                    db      0FDh,0FFh, 02h, 00h, 00h, 00h +40E6:2706  FC FF F9 FF 62 5A                    db      0FCh,0FFh,0F9h,0FFh, 62h, 5Ah +40E6:270C  FD FF FE FF 00 00                    db      0FDh,0FFh,0FEh,0FFh, 00h, 00h +40E6:2712  00 00 FF FF 01 00                    db       00h, 00h,0FFh,0FFh, 01h, 00h +40E6:2718  01 00 FF FF 01 00                    db       01h, 00h,0FFh,0FFh, 01h, 00h +40E6:271E  02 00 FF FF 01 00                    db       02h, 00h,0FFh,0FFh, 01h, 00h +40E6:2724  03 00 FF FF 01 00                    db       03h, 00h,0FFh,0FFh, 01h, 00h +40E6:272A  04 00 FF FF 01 00                    db       04h, 00h,0FFh,0FFh, 01h, 00h +40E6:2730  05 00 FF FF 01 00                    db       05h, 00h,0FFh,0FFh, 01h, 00h +40E6:2736  06 00 FF FF 01 00                    db       06h, 00h,0FFh,0FFh, 01h, 00h +40E6:273C  07 00 FF FF 14 00                    db       07h, 00h,0FFh,0FFh, 14h, 00h +40E6:2742  F9 FF 67 5D FD FF                    db      0F9h,0FFh, 67h, 5Dh,0FDh,0FFh +40E6:2748  02 00 00 00 FC FF                    db       02h, 00h, 00h, 00h,0FCh,0FFh +40E6:274E  F9 FF F6 59 00 00                    db      0F9h,0FFh,0F6h, 59h, 00h, 00h +40E6:2754  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:275A  F9 FF FF 59 00 00                    db      0F9h,0FFh,0FFh, 59h, 00h, 00h +40E6:2760  F8 FF 20 00 29 00                    db      0F8h,0FFh, 20h, 00h, 29h, 00h +40E6:2766  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:276C  F9 FF 08 5A 00 00                    db      0F9h,0FFh, 08h, 5Ah, 00h, 00h +40E6:2772  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:2778  F9 FF 11 5A 00 00                    db      0F9h,0FFh, 11h, 5Ah, 00h, 00h +40E6:277E  01 00 02 00 03 00                    db       01h, 00h, 02h, 00h, 03h, 00h +40E6:2784  F7 FF 20 00 FC FF                    db      0F7h,0FFh, 20h, 00h,0FCh,0FFh +40E6:278A  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h + +                                scripts2_seg    ends + + + +                                ;------------------------------------------------  seg_d   ---- + +                                seg_d           segment byte public +                                                assume cs:seg_d  , ds:seg_d , ss:stack_seg_k + +435F:0000  FF 55 1A                             call    word ptr [di+1Ah]       ;* +435F:0003  56                                   push    si +435F:0004  11 56 08                             adc     [bp+8],dx +435F:0007  56                                   push    si +435F:0008  2C 56                                sub     al,56h                  ; 'V' +435F:000A  35 2356                              xor     ax,2356h +435F:000D  56                                   push    si +435F:000E  EB FF 00 00 EB FF                    db      0EBh,0FFh, 00h, 00h,0EBh,0FFh +435F:0014  01 00 EB FF 02 00                    db       01h, 00h,0EBh,0FFh, 02h, 00h +435F:001A  EB FF 03 00 EB FF                    db      0EBh,0FFh, 03h, 00h,0EBh,0FFh +435F:0020  04 00 EB FF 05 00                    db       04h, 00h,0EBh,0FFh, 05h, 00h +435F:0026  EB FF 06 00 EB FF                    db      0EBh,0FFh, 06h, 00h,0EBh,0FFh +435F:002C  07 00                                db       07h, 00h +435F:002E  08                                   db      8 +435F:002F  000B[00]                             db      11 dup (0) +435F:003A  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:0040  01 00 00 00 ED FF                    db       01h, 00h, 00h, 00h,0EDh,0FFh +435F:0046  00                                   db       00h +435F:0047  0007[00]                             db      7 dup (0) +435F:004E  01 00                                db      1, 0 +435F:0050  000A[00]                             db      10 dup (0) +435F:005A  F2 FF 01 00 02                       db      0F2h,0FFh, 01h, 00h, 02h +435F:005F  000B[00]                             db      11 dup (0) +435F:006A  02 00                                db      2, 0 +435F:006C  000A[00]                             db      10 dup (0) +435F:0076  02 00                                db      2, 0 +435F:0078  000A[00]                             db      10 dup (0) +435F:0082  02 00                                db      2, 0 +435F:0084  000A[00]                             db      10 dup (0) +435F:008E  F2 FF 00 00 03                       db      0F2h,0FFh, 00h, 00h, 03h +435F:0093  000B[00]                             db      11 dup (0) +435F:009E  04 00                                db      4, 0 +435F:00A0  000A[00]                             db      10 dup (0) +435F:00AA  05 00 00                             db      5, 0, 0 +435F:00AD  0009[00]                             db      9 dup (0) +435F:00B6  FE FF 00 00 EE FF                    db      0FEh,0FFh, 00h, 00h,0EEh,0FFh +435F:00BC  08                                   db       08h +435F:00BD  000B[00]                             db      11 dup (0) +435F:00C8  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:00CE  01 00 00 00 ED FF                    db       01h, 00h, 00h, 00h,0EDh,0FFh +435F:00D4  00                                   db       00h +435F:00D5  0007[00]                             db      7 dup (0) +435F:00DC  01 00                                db      1, 0 +435F:00DE  000A[00]                             db      10 dup (0) +435F:00E8  F2 FF 01 00 02                       db      0F2h,0FFh, 01h, 00h, 02h +435F:00ED  000B[00]                             db      11 dup (0) +435F:00F8  02 00                                db      2, 0 +435F:00FA  000A[00]                             db      10 dup (0) +435F:0104  02 00                                db      2, 0 +435F:0106  000A[00]                             db      10 dup (0) +435F:0110  02 00                                db      2, 0 +435F:0112  000A[00]                             db      10 dup (0) +435F:011C  F2 FF 00 00 EE FF                    db      0F2h,0FFh, 00h, 00h,0EEh,0FFh +435F:0122  F8 FF 10 03 EF FF                    db      0F8h,0FFh, 10h, 03h,0EFh,0FFh +435F:0128  FE FF 02 00 00 00                    db      0FEh,0FFh, 02h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 598 + +435F:012E  ED FF 00                             db      0EDh,0FFh, 00h +435F:0131  0007[00]                             db      7 dup (0) +435F:0138  F2 FF 02 00 01                       db      0F2h,0FFh, 02h, 00h, 01h +435F:013D  000B[00]                             db      11 dup (0) +435F:0148  02 00                                db      2, 0 +435F:014A  000A[00]                             db      10 dup (0) +435F:0154  03 00                                db      3, 0 +435F:0156  000A[00]                             db      10 dup (0) +435F:0160  03 00                                db      3, 0 +435F:0162  000A[00]                             db      10 dup (0) +435F:016C  03 00                                db      3, 0 +435F:016E  000A[00]                             db      10 dup (0) +435F:0178  03 00                                db      3, 0 +435F:017A  000A[00]                             db      10 dup (0) +435F:0184  F2 FF 00 00 02                       db      0F2h,0FFh, 00h, 00h, 02h +435F:0189  000B[00]                             db      11 dup (0) +435F:0194  01 00                                db      1, 0 +435F:0196  0016[00]                             db      22 dup (0) +435F:01AC  FE FF 00 00 EE FF                    db      0FEh,0FFh, 00h, 00h,0EEh,0FFh +435F:01B2  08                                   db       08h +435F:01B3  000B[00]                             db      11 dup (0) +435F:01BE  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:01C4  03 00 00 00 ED FF                    db       03h, 00h, 00h, 00h,0EDh,0FFh +435F:01CA  00                                   db       00h +435F:01CB  0007[00]                             db      7 dup (0) +435F:01D2  F2 FF 03 00 01                       db      0F2h,0FFh, 03h, 00h, 01h +435F:01D7  000B[00]                             db      11 dup (0) +435F:01E2  02 00                                db      2, 0 +435F:01E4  000A[00]                             db      10 dup (0) +435F:01EE  03 00                                db      3, 0 +435F:01F0  000A[00]                             db      10 dup (0) +435F:01FA  04 00                                db      4, 0 +435F:01FC  000A[00]                             db      10 dup (0) +435F:0206  05 00 00                             db      5, 0, 0 +435F:0209  0009[00]                             db      9 dup (0) +435F:0212  F2 FF 00 00 06 00                    db      0F2h,0FFh, 00h, 00h, 06h, 00h +435F:0218  00                                   db       00h +435F:0219  0009[00]                             db      9 dup (0) +435F:0222  07                                   db      7 +435F:0223  000B[00]                             db      11 dup (0) +435F:022E  FE FF 00 00 EE FF                    db      0FEh,0FFh, 00h, 00h,0EEh,0FFh +435F:0234  08                                   db       08h +435F:0235  000B[00]                             db      11 dup (0) +435F:0240  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:0246  03 00 00 00 ED FF                    db       03h, 00h, 00h, 00h,0EDh,0FFh +435F:024C  00                                   db       00h +435F:024D  0007[00]                             db      7 dup (0) +435F:0254  F2 FF 03 00 01                       db      0F2h,0FFh, 03h, 00h, 01h +435F:0259  000B[00]                             db      11 dup (0) +435F:0264  02 00                                db      2, 0 +435F:0266  000A[00]                             db      10 dup (0) +435F:0270  03 00                                db      3, 0 +435F:0272  000A[00]                             db      10 dup (0) +435F:027C  04 00                                db      4, 0 +435F:027E  000A[00]                             db      10 dup (0) +435F:0288  05 00 00                             db      5, 0, 0 +435F:028B  0009[00]                             db      9 dup (0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 599 + +435F:0294  F2 FF 00 00 EE FF                    db      0F2h,0FFh, 00h, 00h,0EEh,0FFh +435F:029A  F8 FF 10 03 06 00                    db      0F8h,0FFh, 10h, 03h, 06h, 00h +435F:02A0  00                                   db       00h +435F:02A1  0009[00]                             db      9 dup (0) +435F:02AA  07                                   db      7 +435F:02AB  000B[00]                             db      11 dup (0) +435F:02B6  FE FF 00 00 EE FF                    db      0FEh,0FFh, 00h, 00h,0EEh,0FFh +435F:02BC  08                                   db       08h +435F:02BD  000B[00]                             db      11 dup (0) +435F:02C8  FB FF 07 00 FC FF                    db      0FBh,0FFh, 07h, 00h,0FCh,0FFh +435F:02CE  00                                   db       00h +435F:02CF  0007[00]                             db      7 dup (0) +435F:02D6  EF FF 06 00 FC FF                    db      0EFh,0FFh, 06h, 00h,0FCh,0FFh +435F:02DC  00                                   db       00h +435F:02DD  0007[00]                             db      7 dup (0) +435F:02E4  EF FF 05 00 FC FF                    db      0EFh,0FFh, 05h, 00h,0FCh,0FFh +435F:02EA  00                                   db       00h +435F:02EB  0007[00]                             db      7 dup (0) +435F:02F2  EF FF 04 00 FC FF                    db      0EFh,0FFh, 04h, 00h,0FCh,0FFh +435F:02F8  00                                   db       00h +435F:02F9  0007[00]                             db      7 dup (0) +435F:0300  EF FF 08                             db      0EFh,0FFh, 08h +435F:0303  000B[00]                             db      11 dup (0) +435F:030E  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:0314  04                                   db       04h +435F:0315  000D[00]                             db      13 dup (0) +435F:0322  01 00                                db      1, 0 +435F:0324  000A[00]                             db      10 dup (0) +435F:032E  02 00                                db      2, 0 +435F:0330  000A[00]                             db      10 dup (0) +435F:033A  F1 FF 05 00 A0 03                    db      0F1h,0FFh, 05h, 00h,0A0h, 03h +435F:0340  F2 FF 05 00 03                       db      0F2h,0FFh, 05h, 00h, 03h +435F:0345  000B[00]                             db      11 dup (0) +435F:0350  F1 FF 02 00 F6 03                    db      0F1h,0FFh, 02h, 00h,0F6h, 03h +435F:0356  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:035C  06 00 31 00 16 00                    db       06h, 00h, 31h, 00h, 16h, 00h +435F:0362  F0 FF 46 0E 05 00                    db      0F0h,0FFh, 46h, 0Eh, 05h, 00h +435F:0368  00 00 00 00 07 00                    db       00h, 00h, 00h, 00h, 07h, 00h +435F:036E  38 00 16 00 F2 FF                    db       38h, 00h, 16h, 00h,0F2h,0FFh +435F:0374  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +435F:037A  00 00 06 00 32 00                    db       00h, 00h, 06h, 00h, 32h, 00h +435F:0380  17 00 07                             db       17h, 00h, 07h +435F:0383  000B[00]                             db      11 dup (0) +435F:038E  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:0393  000B[00]                             db      11 dup (0) +435F:039E  FB FF EA FF 2A 00                    db      0FBh,0FFh,0EAh,0FFh, 2Ah, 00h +435F:03A4  02                                   db       02h +435F:03A5  000B[00]                             db      11 dup (0) +435F:03B0  02 00                                db      2, 0 +435F:03B2  000A[00]                             db      10 dup (0) +435F:03BC  02 00                                db      2, 0 +435F:03BE  000A[00]                             db      10 dup (0) +435F:03C8  F2 FF 00 00 01                       db      0F2h,0FFh, 00h, 00h, 01h +435F:03CD  0017[00]                             db      23 dup (0) +435F:03E4  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:03E9  000B[00]                             db      11 dup (0) +435F:03F4  FB FF 03                             db      0FBh,0FFh, 03h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 600 + +435F:03F7  000B[00]                             db      11 dup (0) +435F:0402  03 00                                db      3, 0 +435F:0404  000A[00]                             db      10 dup (0) +435F:040E  02 00                                db      2, 0 +435F:0410  000A[00]                             db      10 dup (0) +435F:041A  F2 FF 00 00 01                       db      0F2h,0FFh, 00h, 00h, 01h +435F:041F  0017[00]                             db      23 dup (0) +435F:0436  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:043B  000B[00]                             db      11 dup (0) +435F:0446  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:044C  05                                   db       05h +435F:044D  000D[00]                             db      13 dup (0) +435F:045A  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:0460  01 00 F9 FF F3 FF                    db       01h, 00h,0F9h,0FFh,0F3h,0FFh +435F:0466  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:046C  01 00 F9 FF F3 FF                    db       01h, 00h,0F9h,0FFh,0F3h,0FFh +435F:0472  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:0478  01 00 F9 FF F3 FF                    db       01h, 00h,0F9h,0FFh,0F3h,0FFh +435F:047E  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:0484  01 00 F9 FF F3 FF                    db       01h, 00h,0F9h,0FFh,0F3h,0FFh +435F:048A  F2 FF 04 00 02 00                    db      0F2h,0FFh, 04h, 00h, 02h, 00h +435F:0490  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +435F:0496  ED FF F7 FF 03 00                    db      0EDh,0FFh,0F7h,0FFh, 03h, 00h +435F:049C  00 00 00 00 03 00                    db       00h, 00h, 00h, 00h, 03h, 00h +435F:04A2  0D 00 EF FF F1 FF                    db       0Dh, 00h,0EFh,0FFh,0F1h,0FFh +435F:04A8  04 00 4E 05 04 00                    db       04h, 00h, 4Eh, 05h, 04h, 00h +435F:04AE  00 00 00 00 04 00                    db       00h, 00h, 00h, 00h, 04h, 00h +435F:04B4  30 00 0C 00 F1 FF                    db       30h, 00h, 0Ch, 00h,0F1h,0FFh +435F:04BA  01 00 08 05 F0 FF                    db       01h, 00h, 08h, 05h,0F0h,0FFh +435F:04C0  F8 0D 05 00 00 00                    db      0F8h, 0Dh, 05h, 00h, 00h, 00h +435F:04C6  00 00 05 00 30 00                    db       00h, 00h, 05h, 00h, 30h, 00h +435F:04CC  1B 00 F2 FF 00 00                    db       1Bh, 00h,0F2h,0FFh, 00h, 00h +435F:04D2  06 00 00                             db       06h, 00h, 00h +435F:04D5  0009[00]                             db      9 dup (0) +435F:04DE  07                                   db      7 +435F:04DF  000B[00]                             db      11 dup (0) +435F:04EA  08 00                                db      8, 0 +435F:04EC  000A[00]                             db      10 dup (0) +435F:04F6  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:04FB  000B[00]                             db      11 dup (0) +435F:0506  FB FF F2 FF 00 00                    db      0FBh,0FFh,0F2h,0FFh, 00h, 00h +435F:050C  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:0512  04 00 30 00 0C 00                    db       04h, 00h, 30h, 00h, 0Ch, 00h +435F:0518  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:051E  04 00 30 00 0C 00                    db       04h, 00h, 30h, 00h, 0Ch, 00h +435F:0524  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:052A  04 00 30 00 0C 00                    db       04h, 00h, 30h, 00h, 0Ch, 00h +435F:0530  08                                   db      8 +435F:0531  000B[00]                             db      11 dup (0) +435F:053C  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:0541  000B[00]                             db      11 dup (0) +435F:054C  FB FF EA FF 2A 00                    db      0FBh,0FFh,0EAh,0FFh, 2Ah, 00h +435F:0552  02                                   db       02h +435F:0553  000B[00]                             db      11 dup (0) +435F:055E  02 00                                db      2, 0 +435F:0560  000A[00]                             db      10 dup (0) +435F:056A  02 00                                db      2, 0 +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 601 + +435F:056C  000A[00]                             db      10 dup (0) +435F:0576  F2 FF 00 00 01                       db      0F2h,0FFh, 00h, 00h, 01h +435F:057B  0017[00]                             db      23 dup (0) +435F:0592  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:0597  000B[00]                             db      11 dup (0) +435F:05A2  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:05A8  05                                   db       05h +435F:05A9  000D[00]                             db      13 dup (0) +435F:05B6  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:05BC  01 00 F9 FF F3 FF                    db       01h, 00h,0F9h,0FFh,0F3h,0FFh +435F:05C2  F2 FF 04 00 02 00                    db      0F2h,0FFh, 04h, 00h, 02h, 00h +435F:05C8  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +435F:05CE  ED FF F7 FF 03 00                    db      0EDh,0FFh,0F7h,0FFh, 03h, 00h +435F:05D4  00 00 00 00 03 00                    db       00h, 00h, 00h, 00h, 03h, 00h +435F:05DA  0D 00 EF FF F1 FF                    db       0Dh, 00h,0EFh,0FFh,0F1h,0FFh +435F:05E0  04 00 6E 06 04 00                    db       04h, 00h, 6Eh, 06h, 04h, 00h +435F:05E6  00 00 00 00 04 00                    db       00h, 00h, 00h, 00h, 04h, 00h +435F:05EC  30 00 0C 00 F1 FF                    db       30h, 00h, 0Ch, 00h,0F1h,0FFh +435F:05F2  01 00 40 06 F0 FF                    db       01h, 00h, 40h, 06h,0F0h,0FFh +435F:05F8  F8 0D 05 00 00 00                    db      0F8h, 0Dh, 05h, 00h, 00h, 00h +435F:05FE  00 00 05 00 30 00                    db       00h, 00h, 05h, 00h, 30h, 00h +435F:0604  1B 00 F2 FF 00 00                    db       1Bh, 00h,0F2h,0FFh, 00h, 00h +435F:060A  06 00 00                             db       06h, 00h, 00h +435F:060D  0009[00]                             db      9 dup (0) +435F:0616  07                                   db      7 +435F:0617  000B[00]                             db      11 dup (0) +435F:0622  08 00                                db      8, 0 +435F:0624  000A[00]                             db      10 dup (0) +435F:062E  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:0633  000B[00]                             db      11 dup (0) +435F:063E  FB FF F2 FF 00 00                    db      0FBh,0FFh,0F2h,0FFh, 00h, 00h +435F:0644  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:064A  04 00 30 00 0C 00                    db       04h, 00h, 30h, 00h, 0Ch, 00h +435F:0650  08                                   db      8 +435F:0651  000B[00]                             db      11 dup (0) +435F:065C  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:0661  000B[00]                             db      11 dup (0) +435F:066C  FB FF EA FF 2A 00                    db      0FBh,0FFh,0EAh,0FFh, 2Ah, 00h +435F:0672  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:0678  02 00 ED FF F7 FF                    db       02h, 00h,0EDh,0FFh,0F7h,0FFh +435F:067E  F2 FF 00 00 01 00                    db      0F2h,0FFh, 00h, 00h, 01h, 00h +435F:0684  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +435F:068A  F9 FF F3 FF 00                       db      0F9h,0FFh,0F3h,0FFh, 00h +435F:068F  000B[00]                             db      11 dup (0) +435F:069A  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:069F  000B[00]                             db      11 dup (0) +435F:06AA  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:06B0  06 00 00                             db       06h, 00h, 00h +435F:06B3  000B[00]                             db      11 dup (0) +435F:06BE  01 00                                db      1, 0 +435F:06C0  000A[00]                             db      10 dup (0) +435F:06CA  02 00                                db      2, 0 +435F:06CC  000A[00]                             db      10 dup (0) +435F:06D6  02 00                                db      2, 0 +435F:06D8  000A[00]                             db      10 dup (0) +435F:06E2  02 00                                db      2, 0 +435F:06E4  000A[00]                             db      10 dup (0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 602 + +435F:06EE  02 00                                db      2, 0 +435F:06F0  000A[00]                             db      10 dup (0) +435F:06FA  03 00                                db      3, 0 +435F:06FC  000A[00]                             db      10 dup (0) +435F:0706  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:070C  08 00 3C 00 1F 00                    db       08h, 00h, 3Ch, 00h, 1Fh, 00h +435F:0712  F1 FF 02 00 58 07                    db      0F1h,0FFh, 02h, 00h, 58h, 07h +435F:0718  F1 FF 03 00 22 07                    db      0F1h,0FFh, 03h, 00h, 22h, 07h +435F:071E  F0 FF 94 0E 05 00                    db      0F0h,0FFh, 94h, 0Eh, 05h, 00h +435F:0724  00 00 00 00 09 00                    db       00h, 00h, 00h, 00h, 09h, 00h +435F:072A  33 00 0D 00 06 00                    db       33h, 00h, 0Dh, 00h, 06h, 00h +435F:0730  00                                   db       00h +435F:0731  0009[00]                             db      9 dup (0) +435F:073A  07                                   db      7 +435F:073B  000B[00]                             db      11 dup (0) +435F:0746  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:074B  000B[00]                             db      11 dup (0) +435F:0756  FB FF 04 00 00 00                    db      0FBh,0FFh, 04h, 00h, 00h, 00h +435F:075C  00 00 08 00 3C 00                    db       00h, 00h, 08h, 00h, 3Ch, 00h +435F:0762  1F 00 04 00 00 00                    db       1Fh, 00h, 04h, 00h, 00h, 00h +435F:0768  00 00 08 00 3C 00                    db       00h, 00h, 08h, 00h, 3Ch, 00h +435F:076E  1F 00 04 00 00 00                    db       1Fh, 00h, 04h, 00h, 00h, 00h +435F:0774  00 00 08 00 3C 00                    db       00h, 00h, 08h, 00h, 3Ch, 00h +435F:077A  1F 00 07                             db       1Fh, 00h, 07h +435F:077D  000B[00]                             db      11 dup (0) +435F:0788  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:078D  000B[00]                             db      11 dup (0) +435F:0798  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:079E  06 00 00                             db       06h, 00h, 00h +435F:07A1  000B[00]                             db      11 dup (0) +435F:07AC  01 00                                db      1, 0 +435F:07AE  000A[00]                             db      10 dup (0) +435F:07B8  02 00                                db      2, 0 +435F:07BA  000A[00]                             db      10 dup (0) +435F:07C4  02 00                                db      2, 0 +435F:07C6  000A[00]                             db      10 dup (0) +435F:07D0  03 00                                db      3, 0 +435F:07D2  000A[00]                             db      10 dup (0) +435F:07DC  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:07E2  08 00 3C 00 1F 00                    db       08h, 00h, 3Ch, 00h, 1Fh, 00h +435F:07E8  F1 FF 02 00 2E 08                    db      0F1h,0FFh, 02h, 00h, 2Eh, 08h +435F:07EE  F1 FF 03 00 F8 07                    db      0F1h,0FFh, 03h, 00h,0F8h, 07h +435F:07F4  F0 FF 94 0E 05 00                    db      0F0h,0FFh, 94h, 0Eh, 05h, 00h +435F:07FA  00 00 00 00 09 00                    db       00h, 00h, 00h, 00h, 09h, 00h +435F:0800  33 00 0D 00 06 00                    db       33h, 00h, 0Dh, 00h, 06h, 00h +435F:0806  00                                   db       00h +435F:0807  0009[00]                             db      9 dup (0) +435F:0810  07                                   db      7 +435F:0811  000B[00]                             db      11 dup (0) +435F:081C  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:0821  000B[00]                             db      11 dup (0) +435F:082C  FB FF 04 00 00 00                    db      0FBh,0FFh, 04h, 00h, 00h, 00h +435F:0832  00 00 08 00 3C 00                    db       00h, 00h, 08h, 00h, 3Ch, 00h +435F:0838  1F 00 07                             db       1Fh, 00h, 07h +435F:083B  000B[00]                             db      11 dup (0) +435F:0846  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:084B  000B[00]                             db      11 dup (0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 603 + +435F:0856  FB FF EF FF FE FF                    db      0FBh,0FFh,0EFh,0FFh,0FEh,0FFh +435F:085C  06 00 00                             db       06h, 00h, 00h +435F:085F  000B[00]                             db      11 dup (0) +435F:086A  01 00                                db      1, 0 +435F:086C  000A[00]                             db      10 dup (0) +435F:0876  02 00                                db      2, 0 +435F:0878  000A[00]                             db      10 dup (0) +435F:0882  02 00                                db      2, 0 +435F:0884  000A[00]                             db      10 dup (0) +435F:088E  01 00                                db      1, 0 +435F:0890  0016[00]                             db      22 dup (0) +435F:08A6  FE FF 00 00 08                       db      0FEh,0FFh, 00h, 00h, 08h +435F:08AB  000B[00]                             db      11 dup (0) +435F:08B6  FB FF 00 00 0E 00                    db      0FBh,0FFh, 00h, 00h, 0Eh, 00h +435F:08BC  3C 00 CA 02 26 01                    db       3Ch, 00h,0CAh, 02h, 26h, 01h +435F:08C2  C0 01 10 03 48 04                    db      0C0h, 01h, 10h, 03h, 48h, 04h +435F:08C8  AC 06 58 08 A4 05                    db      0ACh, 06h, 58h, 08h,0A4h, 05h +435F:08CE  9A 07 42 02 CA 00                    db       9Ah, 07h, 42h, 02h,0CAh, 00h +435F:08D4  01                                   db       01h +435F:08D5  001F[00]                             db      31 dup (0) +435F:08F4  01 00                                db      1, 0 +435F:08F6  001E[00]                             db      30 dup (0) +435F:0914  01 00 01 00 00 01                    db      1, 0, 1, 0, 0, 1 +435F:091A  00 01 01 00                          db      0, 1, 1, 0 +435F:091E  0009[00]                             db      9 dup (0) +435F:0927  0B 00 09 01 00 00                    db       0Bh, 00h, 09h, 01h, 00h, 00h +435F:092D  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:0933  00 01 00 01 00 00                    db       00h, 01h, 00h, 01h, 00h, 00h +435F:0939  0B 00 01 00 01 00                    db       0Bh, 00h, 01h, 00h, 01h, 00h +435F:093F  01 0A 00 01 00 00                    db       01h, 0Ah, 00h, 01h, 00h, 00h +435F:0945  00 00 01 00 00 09                    db       00h, 00h, 01h, 00h, 00h, 09h +435F:094B  01 00 01 01 00 00                    db       01h, 00h, 01h, 01h, 00h, 00h +435F:0951  00 00 00 01 00 00                    db       00h, 00h, 00h, 01h, 00h, 00h +435F:0957  00 00 00 00 01 01                    db       00h, 00h, 00h, 00h, 01h, 01h +435F:095D  00                                   db       00h +435F:095E  0009[00]                             db      9 dup (0) +435F:0967  0A 00 00 09 00 01                    db       0Ah, 00h, 00h, 09h, 00h, 01h +435F:096D  00 01 00 00 00 0B                    db       00h, 01h, 00h, 00h, 00h, 0Bh +435F:0973  00 01 00 00 01 01                    db       00h, 01h, 00h, 00h, 01h, 01h +435F:0979  00 0B 00 00 00 01                    db       00h, 0Bh, 00h, 00h, 00h, 01h +435F:097F  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:0985  00 00 01 06 00 00                    db       00h, 00h, 01h, 06h, 00h, 00h +435F:098B  00 01 00 0A 01 00                    db       00h, 01h, 00h, 0Ah, 01h, 00h +435F:0991  01 00 00 01                          db       01h, 00h, 00h, 01h +435F:0995  0008[00]                             db      8 dup (0) +435F:099D  01 01 01 00 00 00                    db       01h, 01h, 01h, 00h, 00h, 00h +435F:09A3  00 00 0A 00 00 01                    db       00h, 00h, 0Ah, 00h, 00h, 01h +435F:09A9  0B 00 09 01 06 00                    db       0Bh, 00h, 09h, 01h, 06h, 00h +435F:09AF  00 00 00 00 00 01                    db       00h, 00h, 00h, 00h, 00h, 01h +435F:09B5  00 00 00 01 00                       db       00h, 00h, 00h, 01h, 00h +435F:09BA  09                                   db      9 +435F:09BB  000B[00]                             db      11 dup (0) +435F:09C6  09 01 01 0A 00 01                    db       09h, 01h, 01h, 0Ah, 00h, 01h +435F:09CC  00 00 00 0B 00 00                    db       00h, 00h, 00h, 0Bh, 00h, 00h +435F:09D2  06 00 01 00 00 01                    db       06h, 00h, 01h, 00h, 00h, 01h +435F:09D8  00 01 01 09 00 00                    db       00h, 01h, 01h, 09h, 00h, 00h +435F:09DE  00 00 01 01 00 06                    db       00h, 00h, 01h, 01h, 00h, 06h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 604 + +435F:09E4  00 00 0A 00 00 00                    db       00h, 00h, 0Ah, 00h, 00h, 00h +435F:09EA  0B 06 00 09 01 00                    db       0Bh, 06h, 00h, 09h, 01h, 00h +435F:09F0  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +435F:09F6  00 00 0B 00 01 09                    db       00h, 00h, 0Bh, 00h, 01h, 09h +435F:09FC  00 00 00 00 0A 01                    db       00h, 00h, 00h, 00h, 0Ah, 01h +435F:0A02  01 01 00 00 00 00                    db       01h, 01h, 00h, 00h, 00h, 00h +435F:0A08  00 00 01 00 01 09                    db       00h, 00h, 01h, 00h, 01h, 09h +435F:0A0E  01 01 01                             db       01h, 01h, 01h +435F:0A11  0023[00]                             db      35 dup (0) +435F:0A34  FF FF FF 03 FF FF                    db      0FFh,0FFh,0FFh, 03h,0FFh,0FFh +435F:0A3A  00 FF FF FF 00 FF                    db       00h,0FFh,0FFh,0FFh, 00h,0FFh +435F:0A40  00 FF 00 FF FF FF                    db       00h,0FFh, 00h,0FFh,0FFh,0FFh +435F:0A46  FF FF 00 00 FF 03                    db      0FFh,0FFh, 00h, 00h,0FFh, 03h +435F:0A4C  FF 00 03                             db      0FFh, 00h, 03h +435F:0A4F  000B[FF]                             db      11 dup (0FFh) +435F:0A5A  00 FF FF FF 00 FF                    db       00h,0FFh,0FFh,0FFh, 00h,0FFh +435F:0A60  00 FF 00 FF FF FF                    db       00h,0FFh, 00h,0FFh,0FFh,0FFh +435F:0A66  FF FF 00 00 FF FF                    db      0FFh,0FFh, 00h, 00h,0FFh,0FFh +435F:0A6C  FF 00 03 FF                          db      0FFh, 00h, 03h,0FFh +435F:0A70  000A[FF]                             db      10 dup (0FFh) +435F:0A7A  00 FF FF FF 00                       db       00h,0FFh,0FFh,0FFh, 00h +435F:0A7F  0009[FF]                             db      9 dup (0FFh) +435F:0A88  00 00 FF FF FF 00                    db       00h, 00h,0FFh,0FFh,0FFh, 00h +435F:0A8E  03 FF                                db       03h,0FFh +435F:0A90  000A[FF]                             db      10 dup (0FFh) +435F:0A9A  00 FF FF FF FF FF                    db       00h,0FFh,0FFh,0FFh,0FFh,0FFh +435F:0AA0  FF FF 00 FF FF FF                    db      0FFh,0FFh, 00h,0FFh,0FFh,0FFh +435F:0AA6  FF FF 00 00 FF FF                    db      0FFh,0FFh, 00h, 00h,0FFh,0FFh +435F:0AAC  FF FF                                db      0FFh,0FFh +435F:0AAE  0D                                   db      0Dh +435F:0AAF  000B[FF]                             db      11 dup (0FFh) +435F:0ABA  00 FF FF FF 00 FF                    db       00h,0FFh,0FFh,0FFh, 00h,0FFh +435F:0AC0  00 FF 00 FF FF FF                    db       00h,0FFh, 00h,0FFh,0FFh,0FFh +435F:0AC6  FF FF 00 0C FF FF                    db      0FFh,0FFh, 00h, 0Ch,0FFh,0FFh +435F:0ACC  FF 00 03 FF                          db      0FFh, 00h, 03h,0FFh +435F:0AD0  000A[FF]                             db      10 dup (0FFh) +435F:0ADA  03 0C 03 FF 03 FF                    db       03h, 0Ch, 03h,0FFh, 03h,0FFh +435F:0AE0  03 FF 03 FF 03 FF                    db       03h,0FFh, 03h,0FFh, 03h,0FFh +435F:0AE6  03 FF FF FF FF 0D                    db       03h,0FFh,0FFh,0FFh,0FFh, 0Dh +435F:0AEC  FF 00 03 FF                          db      0FFh, 00h, 03h,0FFh +435F:0AF0  000C[FF]                             db      12 dup (0FFh) +435F:0AFC  0C FF 00 FF FF FF                    db       0Ch,0FFh, 00h,0FFh,0FFh,0FFh +435F:0B02  FF FF FF 03 FF FF                    db      0FFh,0FFh,0FFh, 03h,0FFh,0FFh +435F:0B08  FF FF 0D FF FF 00                    db      0FFh,0FFh, 0Dh,0FFh,0FFh, 00h +435F:0B0E  FF FF FF 03                          db      0FFh,0FFh,0FFh, 03h +435F:0B12  000C[FF]                             db      12 dup (0FFh) +435F:0B1E  00 FF                                db       00h,0FFh +435F:0B20  000D[FF]                             db      13 dup (0FFh) +435F:0B2D  00 03                                db      0, 3 +435F:0B2F  000B[FF]                             db      11 dup (0FFh) +435F:0B3A  03 FF FF FF FF FF                    db       03h,0FFh,0FFh,0FFh,0FFh,0FFh +435F:0B40  FF FF 00 FF FF 03                    db      0FFh,0FFh, 00h,0FFh,0FFh, 03h +435F:0B46  FF FF FF FF 03 0C                    db      0FFh,0FFh,0FFh,0FFh, 03h, 0Ch +435F:0B4C  FF                                   db      0FFh +435F:0B4D  000E[FF]                             db      14 dup (0FFh) +435F:0B5B  03 FF FF 00 FF 00                    db       03h,0FFh,0FFh, 00h,0FFh, 00h +435F:0B61  FF 00 FF FF FF FF                    db      0FFh, 00h,0FFh,0FFh,0FFh,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 605 + +435F:0B67  FF FF 00 FF FF FF                    db      0FFh,0FFh, 00h,0FFh,0FFh,0FFh +435F:0B6D  00 FF FF FF FF FF                    db       00h,0FFh,0FFh,0FFh,0FFh,0FFh +435F:0B73  FF 00                                db      0FFh, 00h +435F:0B75  0022[00]                             db      34 dup (0) +435F:0B97  09 00 08 00 00 09                    db      9, 0, 8, 0, 0, 9 +435F:0B9D  0007[00]                             db      7 dup (0) +435F:0BA4  07 07 07 07 00 00                    db      7, 7, 7, 7, 0, 0 +435F:0BAA  09 00 07 00 08 00                    db      9, 0, 7, 0, 8, 0 +435F:0BB0  00 00 03 00 06 00                    db      0, 0, 3, 0, 6, 0 +435F:0BB6  06 00 06 00 06 00                    db      6, 0, 6, 0, 6, 0 +435F:0BBC  06 00 06 00 06 00                    db      6, 0, 6, 0, 6, 0 +435F:0BC2  06                                   db      6 +435F:0BC3  0011[00]                             db      17 dup (0) +435F:0BD4  09 00 09 00 00 00                    db      9, 0, 9, 0, 0, 0 +435F:0BDA  09 00 06 06                          db      9, 0, 6, 6 +435F:0BDE  0009[00]                             db      9 dup (0) +435F:0BE7  07 07 0A 0A 0A 0A                    db       07h, 07h, 0Ah, 0Ah, 0Ah, 0Ah +435F:0BED  0007[00]                             db      7 dup (0) +435F:0BF4  0A 0A 0A 0A 0A 07                    db       0Ah, 0Ah, 0Ah, 0Ah, 0Ah, 07h +435F:0BFA  07 07 07                             db       07h, 07h, 07h +435F:0BFD  08 08                                db      8, 8 +435F:0BFF  000A[07]                             db      10 dup (7) +435F:0C09  08 08 08 08 07 07                    db       08h, 08h, 08h, 08h, 07h, 07h +435F:0C0F  0A 0A 0A 0A 0A 07                    db       0Ah, 0Ah, 0Ah, 0Ah, 0Ah, 07h +435F:0C15  07 07 07 07 07 07                    db       07h, 07h, 07h, 07h, 07h, 07h +435F:0C1B  00 00 00 00 0B 0B                    db       00h, 00h, 00h, 00h, 0Bh, 0Bh +435F:0C21  00 0B 0B 00 00 0A                    db       00h, 0Bh, 0Bh, 00h, 00h, 0Ah +435F:0C27  0A 0A 0A 00 08 08                    db       0Ah, 0Ah, 0Ah, 00h, 08h, 08h +435F:0C2D  0B 0B 0B 0B 07 08                    db       0Bh, 0Bh, 0Bh, 0Bh, 07h, 08h +435F:0C33  07                                   db       07h +435F:0C34  0009[0B]                             db      9 dup (0Bh) +435F:0C3D  0A 0B 0B 0B 0B 0B                    db       0Ah, 0Bh, 0Bh, 0Bh, 0Bh, 0Bh +435F:0C43  09 0B 0B 0B 0B 0B                    db       09h, 0Bh, 0Bh, 0Bh, 0Bh, 0Bh +435F:0C49  0A 0A 0B 06 06 06                    db       0Ah, 0Ah, 0Bh, 06h, 06h, 06h +435F:0C4F  06 06 06 06 06 06                    db       06h, 06h, 06h, 06h, 06h, 06h +435F:0C55  0A 0B 06 0A 0B 06                    db       0Ah, 0Bh, 06h, 0Ah, 0Bh, 06h +435F:0C5B  0A 0B 06 0A 0B 06                    db       0Ah, 0Bh, 06h, 0Ah, 0Bh, 06h +435F:0C61  0A 0B 0B 00 00 0B                    db       0Ah, 0Bh, 0Bh, 00h, 00h, 0Bh +435F:0C67  0B 0A 0A 0A 0A 0B                    db       0Bh, 0Ah, 0Ah, 0Ah, 0Ah, 0Bh +435F:0C6D  0007[0B]                             db      7 dup (0Bh) +435F:0C74  06 06 0B 06 07 0A                    db       06h, 06h, 0Bh, 06h, 07h, 0Ah +435F:0C7A  0A 0A 0B 0B 0B 08                    db       0Ah, 0Ah, 0Bh, 0Bh, 0Bh, 08h +435F:0C80  07 07 0B 07 0B 06                    db       07h, 07h, 0Bh, 07h, 0Bh, 06h +435F:0C86  0B 06 0B 0A 08 08                    db       0Bh, 06h, 0Bh, 0Ah, 08h, 08h +435F:0C8C  07 07 0A 0A 0A 0A                    db       07h, 07h, 0Ah, 0Ah, 0Ah, 0Ah +435F:0C92  0A 00 06 0B 06 0A                    db       0Ah, 00h, 06h, 0Bh, 06h, 0Ah +435F:0C98  03 00 0A 0A 0A 0A                    db       03h, 00h, 0Ah, 0Ah, 0Ah, 0Ah +435F:0C9E  0B 03 0B 0B 0B 0B                    db       0Bh, 03h, 0Bh, 0Bh, 0Bh, 0Bh +435F:0CA4  0A 0B 0A 06 0B 06                    db       0Ah, 0Bh, 0Ah, 06h, 0Bh, 06h +435F:0CAA  0A 03 00 07 07 07                    db       0Ah, 03h, 00h, 07h, 07h, 07h +435F:0CB0  06 0B 0A 0A 0B 0A                    db       06h, 0Bh, 0Ah, 0Ah, 0Bh, 0Ah +435F:0CB6  0B 00 03 00 0A 0B                    db       0Bh, 00h, 03h, 00h, 0Ah, 0Bh +435F:0CBC  0A 0B 0B 00 07 0B                    db       0Ah, 0Bh, 0Bh, 00h, 07h, 0Bh +435F:0CC2  07 00 00 00 0A 07                    db       07h, 00h, 00h, 00h, 0Ah, 07h +435F:0CC8  0B 07 00 03 03 06                    db       0Bh, 07h, 00h, 03h, 03h, 06h +435F:0CCE  0B 06 03 03                          db       0Bh, 06h, 03h, 03h +435F:0CD2  0022[00]                             db      34 dup (0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 606 + +435F:0CF4  05 00 0C 00 0C 00                    db       05h, 00h, 0Ch, 00h, 0Ch, 00h +435F:0CFA  0A 00 09 00 08 00                    db       0Ah, 00h, 09h, 00h, 08h, 00h +435F:0D00  07 00 07 00 04 00                    db       07h, 00h, 07h, 00h, 04h, 00h +435F:0D06  02 00 01 00 0B 00                    db       02h, 00h, 01h, 00h, 0Bh, 00h +435F:0D0C  02 00 0C 00 04 00                    db       02h, 00h, 0Ch, 00h, 04h, 00h +435F:0D12  0D 00 05 00 00 00                    db       0Dh, 00h, 05h, 00h, 00h, 00h +435F:0D18  00 00 0B 00 02 00                    db       00h, 00h, 0Bh, 00h, 02h, 00h +435F:0D1E  0C 00 04 00 0D 00                    db       0Ch, 00h, 04h, 00h, 0Dh, 00h +435F:0D24  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0D2A  0B 00 02 00 0C 00                    db       0Bh, 00h, 02h, 00h, 0Ch, 00h +435F:0D30  04 00 0D 00 0C 00                    db       04h, 00h, 0Dh, 00h, 0Ch, 00h +435F:0D36  00 00 00 00 0B 00                    db       00h, 00h, 00h, 00h, 0Bh, 00h +435F:0D3C  02 00 0C 00 04 00                    db       02h, 00h, 0Ch, 00h, 04h, 00h +435F:0D42  0D 00 0C 00 00 00                    db       0Dh, 00h, 0Ch, 00h, 00h, 00h +435F:0D48  00 00 0B 00 02 00                    db       00h, 00h, 0Bh, 00h, 02h, 00h +435F:0D4E  0C 00 04 00 0D 00                    db       0Ch, 00h, 04h, 00h, 0Dh, 00h +435F:0D54  0C 00 00 00 00 00                    db       0Ch, 00h, 00h, 00h, 00h, 00h +435F:0D5A  0B 00 0D 00 0C 00                    db       0Bh, 00h, 0Dh, 00h, 0Ch, 00h +435F:0D60  04 00 0D 00 0C 00                    db       04h, 00h, 0Dh, 00h, 0Ch, 00h +435F:0D66  00 00 00 00 0B 00                    db       00h, 00h, 00h, 00h, 0Bh, 00h +435F:0D6C  0D 00 0C 00 04 00                    db       0Dh, 00h, 0Ch, 00h, 04h, 00h +435F:0D72  0D 00 05 00 00 00                    db       0Dh, 00h, 05h, 00h, 00h, 00h +435F:0D78  00 00 0B 00 0D 00                    db       00h, 00h, 0Bh, 00h, 0Dh, 00h +435F:0D7E  0C 00 04 00 0D 00                    db       0Ch, 00h, 04h, 00h, 0Dh, 00h +435F:0D84  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0D8A  0B 00 0D 00 0C 00                    db       0Bh, 00h, 0Dh, 00h, 0Ch, 00h +435F:0D90  04 00 0D 00 05 00                    db       04h, 00h, 0Dh, 00h, 05h, 00h +435F:0D96  00 00 00 00 0B 00                    db       00h, 00h, 00h, 00h, 0Bh, 00h +435F:0D9C  02 00 0C 00 04 00                    db       02h, 00h, 0Ch, 00h, 04h, 00h +435F:0DA2  0D 00 05                             db       0Dh, 00h, 05h +435F:0DA5  000F[00]                             db      15 dup (0) +435F:0DB4  44 18 A8 13 2C 13                    db       44h, 18h,0A8h, 13h, 2Ch, 13h +435F:0DBA  90 12 4A 18 44 18                    db       90h, 12h, 4Ah, 18h, 44h, 18h +435F:0DC0  28 15 C8 16 18 14                    db       28h, 15h,0C8h, 16h, 18h, 14h +435F:0DC6  4A 18 FF FF F6 55                    db       4Ah, 18h,0FFh,0FFh,0F6h, 55h +435F:0DCC  00 00 F0 FF 00 00                    db       00h, 00h,0F0h,0FFh, 00h, 00h +435F:0DD2  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0DD8  EF FF FB FF 00                       db      0EFh,0FFh,0FBh,0FFh, 00h +435F:0DDD  000B[00]                             db      11 dup (0) +435F:0DE8  01 00                                db      1, 0 +435F:0DEA  000A[00]                             db      10 dup (0) +435F:0DF4  EF FF FB FF EE FF                    db      0EFh,0FFh,0FBh,0FFh,0EEh,0FFh +435F:0DFA  FF FF 3E 56 F2 FF                    db      0FFh,0FFh, 3Eh, 56h,0F2h,0FFh +435F:0E00  00 00 00 00 06 00                    db       00h, 00h, 00h, 00h, 06h, 00h +435F:0E06  00 00 18                             db       00h, 00h, 18h +435F:0E09  0007[00]                             db      7 dup (0) +435F:0E10  03 00 00 00 18 00                    db       03h, 00h, 00h, 00h, 18h, 00h +435F:0E16  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +435F:0E1C  02 00 00 00 18                       db       02h, 00h, 00h, 00h, 18h +435F:0E21  000B[00]                             db      11 dup (0) +435F:0E2C  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0E32  FF FF F6 55 EF FF                    db      0FFh,0FFh,0F6h, 55h,0EFh,0FFh +435F:0E38  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +435F:0E3E  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0E44  FB FF EE FF FF FF                    db      0FBh,0FFh,0EEh,0FFh,0FFh,0FFh +435F:0E4A  3E 56 F2 FF 00 00                    db       3Eh, 56h,0F2h,0FFh, 00h, 00h +435F:0E50  01 00 06 00 00 00                    db       01h, 00h, 06h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 607 + +435F:0E56  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0E5C  01 00 03 00 00 00                    db       01h, 00h, 03h, 00h, 00h, 00h +435F:0E62  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0E68  01 00 02 00 00 00                    db       01h, 00h, 02h, 00h, 00h, 00h +435F:0E6E  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0E74  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:0E7A  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0E80  FF FF F6 55 EF FF                    db      0FFh,0FFh,0F6h, 55h,0EFh,0FFh +435F:0E86  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +435F:0E8C  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:0E92  FB FF EE FF FF FF                    db      0FBh,0FFh,0EEh,0FFh,0FFh,0FFh +435F:0E98  3E 56 F2 FF 00 00                    db       3Eh, 56h,0F2h,0FFh, 00h, 00h +435F:0E9E  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:0EA4  14 00 F0 FF FF FF                    db       14h, 00h,0F0h,0FFh,0FFh,0FFh +435F:0EAA  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:0EB0  15 00 E2 FF 10 00                    db       15h, 00h,0E2h,0FFh, 10h, 00h +435F:0EB6  EA FF 24 00 04 00                    db      0EAh,0FFh, 24h, 00h, 04h, 00h +435F:0EBC  00 00 00 00 16 00                    db       00h, 00h, 00h, 00h, 16h, 00h +435F:0EC2  E6 FF 16 00 05 00                    db      0E6h,0FFh, 16h, 00h, 05h, 00h +435F:0EC8  00 00 00 00 16 00                    db       00h, 00h, 00h, 00h, 16h, 00h +435F:0ECE  E4 FF 17 00 06 00                    db      0E4h,0FFh, 17h, 00h, 06h, 00h +435F:0ED4  00 00 00 00 17 00                    db       00h, 00h, 00h, 00h, 17h, 00h +435F:0EDA  E9 FF 16 00 06 00                    db      0E9h,0FFh, 16h, 00h, 06h, 00h +435F:0EE0  00 00 00 00 17 00                    db       00h, 00h, 00h, 00h, 17h, 00h +435F:0EE6  E9 FF 16 00 06 00                    db      0E9h,0FFh, 16h, 00h, 06h, 00h +435F:0EEC  00 00 00 00 17 00                    db       00h, 00h, 00h, 00h, 17h, 00h +435F:0EF2  E9 FF 16 00 06 00                    db      0E9h,0FFh, 16h, 00h, 06h, 00h +435F:0EF8  00 00 00 00 17 00                    db       00h, 00h, 00h, 00h, 17h, 00h +435F:0EFE  E9 FF 16 00 07 00                    db      0E9h,0FFh, 16h, 00h, 07h, 00h +435F:0F04  00 00 00 00 15 00                    db       00h, 00h, 00h, 00h, 15h, 00h +435F:0F0A  E9 FF 19 00 07 00                    db      0E9h,0FFh, 19h, 00h, 07h, 00h +435F:0F10  00 00 00 00 15 00                    db       00h, 00h, 00h, 00h, 15h, 00h +435F:0F16  E9 FF 19 00 08 00                    db      0E9h,0FFh, 19h, 00h, 08h, 00h +435F:0F1C  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:0F22  00 00 00 00 08 00                    db       00h, 00h, 00h, 00h, 08h, 00h +435F:0F28  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:0F2E  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +435F:0F34  F6 55 EF FF 00 00                    db      0F6h, 55h,0EFh,0FFh, 00h, 00h +435F:0F3A  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:0F40  00 00 00 00 FB FF                    db       00h, 00h, 00h, 00h,0FBh,0FFh +435F:0F46  EE FF FF FF 3E 56                    db      0EEh,0FFh,0FFh,0FFh, 3Eh, 56h +435F:0F4C  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:0F52  14 00 F0 FF FF FF                    db       14h, 00h,0F0h,0FFh,0FFh,0FFh +435F:0F58  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:0F5E  15 00 E2 FF 10 00                    db       15h, 00h,0E2h,0FFh, 10h, 00h +435F:0F64  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:0F6A  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:0F70  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0F76  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:0F7C  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0F82  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:0F88  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0F8E  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:0F94  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0F9A  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:0FA0  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0FA6  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 608 + +435F:0FAC  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0FB2  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:0FB8  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:0FBE  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:0FC4  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:0FCA  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:0FD0  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:0FD6  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:0FDC  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:0FE2  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:0FE8  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:0FEE  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:0FF4  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:0FFA  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:1000  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:1006  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:100C  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:1012  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:1018  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:101E  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:1024  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:102A  16 00 E6 FF 16 00                    db       16h, 00h,0E6h,0FFh, 16h, 00h +435F:1030  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:1036  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:103C  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:1042  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:1048  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:104E  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:1054  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:105A  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:1060  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:1066  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:106C  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:1072  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:1078  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:107E  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:1084  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:108A  16 00 E4 FF 17 00                    db       16h, 00h,0E4h,0FFh, 17h, 00h +435F:1090  ED FF EE FF FF FF                    db      0EDh,0FFh,0EEh,0FFh,0FFh,0FFh +435F:1096  50 56                                db       50h, 56h +435F:1098  0048[00]                             db      72 dup (0) +435F:10E0  01 00                                db      1, 0 +435F:10E2  000A[00]                             db      10 dup (0) +435F:10EC  01 00                                db      1, 0 +435F:10EE  000A[00]                             db      10 dup (0) +435F:10F8  01 00                                db      1, 0 +435F:10FA  000A[00]                             db      10 dup (0) +435F:1104  01 00                                db      1, 0 +435F:1106  000A[00]                             db      10 dup (0) +435F:1110  01 00                                db      1, 0 +435F:1112  000A[00]                             db      10 dup (0) +435F:111C  02 00                                db      2, 0 +435F:111E  000A[00]                             db      10 dup (0) +435F:1128  03 00                                db      3, 0 +435F:112A  000A[00]                             db      10 dup (0) +435F:1134  04 00                                db      4, 0 +435F:1136  000A[00]                             db      10 dup (0) +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 609 + +435F:1140  05 00 00                             db      5, 0, 0 +435F:1143  0009[00]                             db      9 dup (0) +435F:114C  06                                   db      6 +435F:114D  000B[00]                             db      11 dup (0) +435F:1158  07                                   db      7 +435F:1159  000B[00]                             db      11 dup (0) +435F:1164  08 00                                db      8, 0 +435F:1166  000A[00]                             db      10 dup (0) +435F:1170  09 00                                db      9, 0 +435F:1172  000A[00]                             db      10 dup (0) +435F:117C  0A 00                                db       0Ah, 00h +435F:117E  000A[00]                             db      10 dup (0) +435F:1188  0B 00                                db       0Bh, 00h +435F:118A  000A[00]                             db      10 dup (0) +435F:1194  EC FF 0B                             db      0ECh,0FFh, 0Bh +435F:1197  000B[00]                             db      11 dup (0) +435F:11A2  F8 FF 96 11 EE FF                    db      0F8h,0FFh, 96h, 11h,0EEh,0FFh +435F:11A8  F2 FF 00 00 FF FF                    db      0F2h,0FFh, 00h, 00h,0FFh,0FFh +435F:11AE  47 56 00 00 F8 FF                    db       47h, 56h, 00h, 00h,0F8h,0FFh +435F:11B4  00                                   db       00h +435F:11B5  0009[00]                             db      9 dup (0) +435F:11BE  FC FF 00                             db      0FCh,0FFh, 00h +435F:11C1  0009[00]                             db      9 dup (0) +435F:11CA  FD FF 00                             db      0FDh,0FFh, 00h +435F:11CD  0013[00]                             db      19 dup (0) +435F:11E0  FF FF FF 55 EF FF                    db      0FFh,0FFh,0FFh, 55h,0EFh,0FFh +435F:11E6  08                                   db       08h +435F:11E7  000B[00]                             db      11 dup (0) +435F:11F2  FB FF EE FF F2 FF                    db      0FBh,0FFh,0EEh,0FFh,0F2h,0FFh +435F:11F8  00 00 FF FF 47 56                    db       00h, 00h,0FFh,0FFh, 47h, 56h +435F:11FE  02 00 F8 FF 00                       db       02h, 00h,0F8h,0FFh, 00h +435F:1203  0007[00]                             db      7 dup (0) +435F:120A  02 00 FC FF 00                       db       02h, 00h,0FCh,0FFh, 00h +435F:120F  0007[00]                             db      7 dup (0) +435F:1216  02 00 FD FF 00                       db       02h, 00h,0FDh,0FFh, 00h +435F:121B  0007[00]                             db      7 dup (0) +435F:1222  02 00                                db      2, 0 +435F:1224  000A[00]                             db      10 dup (0) +435F:122E  FF FF FF 55 EF FF                    db      0FFh,0FFh,0FFh, 55h,0EFh,0FFh +435F:1234  08                                   db       08h +435F:1235  000B[00]                             db      11 dup (0) +435F:1240  FB FF EE FF F2 FF                    db      0FBh,0FFh,0EEh,0FFh,0F2h,0FFh +435F:1246  00 00 FF FF 47 56                    db       00h, 00h,0FFh,0FFh, 47h, 56h +435F:124C  01 00 F8 FF 00                       db       01h, 00h,0F8h,0FFh, 00h +435F:1251  0007[00]                             db      7 dup (0) +435F:1258  01 00 FC FF 00                       db       01h, 00h,0FCh,0FFh, 00h +435F:125D  0007[00]                             db      7 dup (0) +435F:1264  01 00 FD FF 00                       db       01h, 00h,0FDh,0FFh, 00h +435F:1269  0007[00]                             db      7 dup (0) +435F:1270  01 00                                db      1, 0 +435F:1272  000A[00]                             db      10 dup (0) +435F:127C  FF FF FF 55 EF FF                    db      0FFh,0FFh,0FFh, 55h,0EFh,0FFh +435F:1282  08                                   db       08h +435F:1283  000B[00]                             db      11 dup (0) +435F:128E  FB FF EF FF FF FF                    db      0FBh,0FFh,0EFh,0FFh,0FFh,0FFh +435F:1294  ED 55 00 00 0C 00                    db      0EDh, 55h, 00h, 00h, 0Ch, 00h +435F:129A  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 610 + +435F:12A0  00 00 F6 FF 08 00                    db       00h, 00h,0F6h,0FFh, 08h, 00h +435F:12A6  0C 13 01 00 00 00                    db       0Ch, 13h, 01h, 00h, 00h, 00h +435F:12AC  00 00 11 00 F5 FF                    db       00h, 00h, 11h, 00h,0F5h,0FFh +435F:12B2  EF FF F2 FF 03 00                    db      0EFh,0FFh,0F2h,0FFh, 03h, 00h +435F:12B8  02 00 00 00 FE FF                    db       02h, 00h, 00h, 00h,0FEh,0FFh +435F:12BE  12 00 F5 FF EF FF                    db       12h, 00h,0F5h,0FFh,0EFh,0FFh +435F:12C4  03 00 00 00 FC FF                    db       03h, 00h, 00h, 00h,0FCh,0FFh +435F:12CA  12 00 F4 FF EE FF                    db       12h, 00h,0F4h,0FFh,0EEh,0FFh +435F:12D0  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:12D6  12 00 F4 FF EE FF                    db       12h, 00h,0F4h,0FFh,0EEh,0FFh +435F:12DC  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:12E2  11 00 F5 FF EF FF                    db       11h, 00h,0F5h,0FFh,0EFh,0FFh +435F:12E8  05 00 00 00 00 00                    db       05h, 00h, 00h, 00h, 00h, 00h +435F:12EE  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:12F4  F2 FF 00 00 FF FF                    db      0F2h,0FFh, 00h, 00h,0FFh,0FFh +435F:12FA  F6 55 EE FF 00 00                    db      0F6h, 55h,0EEh,0FFh, 00h, 00h +435F:1300  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1306  00 00 00 00 FB FF                    db       00h, 00h, 00h, 00h,0FBh,0FFh +435F:130C  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +435F:1312  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:1318  FF FF F6 55 EE FF                    db      0FFh,0FFh,0F6h, 55h,0EEh,0FFh +435F:131E  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +435F:1324  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:132A  FB FF EF FF FF FF                    db      0FBh,0FFh,0EFh,0FFh,0FFh,0FFh +435F:1330  C9 55 00 00 0C 00                    db      0C9h, 55h, 00h, 00h, 0Ch, 00h +435F:1336  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:133C  00 00 01 00 00 00                    db       00h, 00h, 01h, 00h, 00h, 00h +435F:1342  00 00 13 00 F2 FF                    db       00h, 00h, 13h, 00h,0F2h,0FFh +435F:1348  16 00 F2 FF 02 00                    db       16h, 00h,0F2h,0FFh, 02h, 00h +435F:134E  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:1354  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:135A  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:1360  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:1366  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:136C  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:1372  F7 FF 07 00 66 13                    db      0F7h,0FFh, 07h, 00h, 66h, 13h +435F:1378  F2 FF 00 00 01 00                    db      0F2h,0FFh, 00h, 00h, 01h, 00h +435F:137E  00 00 00 00 13 00                    db       00h, 00h, 00h, 00h, 13h, 00h +435F:1384  F2 FF 16 00 00 00                    db      0F2h,0FFh, 16h, 00h, 00h, 00h +435F:138A  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1390  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +435F:1396  F6 55 EE FF 00 00                    db      0F6h, 55h,0EEh,0FFh, 00h, 00h +435F:139C  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:13A2  00 00 00 00 FB FF                    db       00h, 00h, 00h, 00h,0FBh,0FFh +435F:13A8  EF FF FF FF DB 55                    db      0EFh,0FFh,0FFh,0FFh,0DBh, 55h +435F:13AE  00 00 0C 00 00 00                    db       00h, 00h, 0Ch, 00h, 00h, 00h +435F:13B4  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:13BA  F2 FF 01 00 02 00                    db      0F2h,0FFh, 01h, 00h, 02h, 00h +435F:13C0  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:13C6  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +435F:13CC  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:13D2  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +435F:13D8  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:13DE  00 00 00 00 F7 FF                    db       00h, 00h, 00h, 00h,0F7h,0FFh +435F:13E4  06 00 D6 13 F2 FF                    db       06h, 00h,0D6h, 13h,0F2h,0FFh +435F:13EA  00 00 03 00 00 00                    db       00h, 00h, 03h, 00h, 00h, 00h +435F:13F0  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:13F6  00 00 04 00 00 00                    db       00h, 00h, 04h, 00h, 00h, 00h +435F:13FC  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:1402  00 00 FF FF F6 55                    db       00h, 00h,0FFh,0FFh,0F6h, 55h +435F:1408  EE FF 04 00 00 00                    db      0EEh,0FFh, 04h, 00h, 00h, 00h +435F:140E  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:1414  00 00 FB FF EF FF                    db       00h, 00h,0FBh,0FFh,0EFh,0FFh +435F:141A  FF FF E4 55 00 00                    db      0FFh,0FFh,0E4h, 55h, 00h, 00h +435F:1420  00 00 00 00 0C 00                    db       00h, 00h, 00h, 00h, 0Ch, 00h +435F:1426  18 00 F8 FF F6 FF                    db       18h, 00h,0F8h,0FFh,0F6h,0FFh +435F:142C  0D 00 A8 14 01 00                    db       0Dh, 00h,0A8h, 14h, 01h, 00h +435F:1432  00 00 00 00 0D 00                    db       00h, 00h, 00h, 00h, 0Dh, 00h +435F:1438  16 00 0D 00 02 00                    db       16h, 00h, 0Dh, 00h, 02h, 00h +435F:143E  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1444  00 00 00 00 F4 FF                    db       00h, 00h, 00h, 00h,0F4h,0FFh +435F:144A  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:1450  0E 00 E3 FF 16 00                    db       0Eh, 00h,0E3h,0FFh, 16h, 00h +435F:1456  F1 FF 03 00 E0 14                    db      0F1h,0FFh, 03h, 00h,0E0h, 14h +435F:145C  F0 FF F4 11 04 00                    db      0F0h,0FFh,0F4h, 11h, 04h, 00h +435F:1462  00 00 00 00 0F 00                    db       00h, 00h, 00h, 00h, 0Fh, 00h +435F:1468  E3 FF 16 00 05 00                    db      0E3h,0FFh, 16h, 00h, 05h, 00h +435F:146E  00 00 00 00 10 00                    db       00h, 00h, 00h, 00h, 10h, 00h +435F:1474  E3 FF 0A 00 06 00                    db      0E3h,0FFh, 0Ah, 00h, 06h, 00h +435F:147A  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1480  00 00 00 00 07                       db       00h, 00h, 00h, 00h, 07h +435F:1485  0007[00]                             db      7 dup (0) +435F:148C  11 00 F6 FF FF FF                    db       11h, 00h,0F6h,0FFh,0FFh,0FFh +435F:1492  F6 55 04 00 00 00                    db      0F6h, 55h, 04h, 00h, 00h, 00h +435F:1498  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:149E  00 00 F7 FF 0D 00                    db       00h, 00h,0F7h,0FFh, 0Dh, 00h +435F:14A4  94 14 FB FF 01 00                    db       94h, 14h,0FBh,0FFh, 01h, 00h +435F:14AA  00 00 00 00 0D 00                    db       00h, 00h, 00h, 00h, 0Dh, 00h +435F:14B0  16 00 0D 00 F4 FF                    db       16h, 00h, 0Dh, 00h,0F4h,0FFh +435F:14B6  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:14BC  0D 00 16 00                          db       0Dh, 00h, 16h, 00h +435F:14C0  0D                                   db      0Dh +435F:14C1  0007[00]                             db      7 dup (0) +435F:14C8  0C 00 18 00 F8 FF                    db       0Ch, 00h, 18h, 00h,0F8h,0FFh +435F:14CE  FF FF F6 55 04 00                    db      0FFh,0FFh,0F6h, 55h, 04h, 00h +435F:14D4  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:14DA  00 00 00 00 FB FF                    db       00h, 00h, 00h, 00h,0FBh,0FFh +435F:14E0  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:14E6  0E 00 E3 FF 16 00                    db       0Eh, 00h,0E3h,0FFh, 16h, 00h +435F:14EC  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:14F2  0E 00 E3 FF 16 00                    db       0Eh, 00h,0E3h,0FFh, 16h, 00h +435F:14F8  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:14FE  0E 00 E3 FF 16 00                    db       0Eh, 00h,0E3h,0FFh, 16h, 00h +435F:1504  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:150A  0D 00 16 00 0D 00                    db       0Dh, 00h, 16h, 00h, 0Dh, 00h +435F:1510  FF FF F6 55 04 00                    db      0FFh,0FFh,0F6h, 55h, 04h, 00h +435F:1516  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:151C  00 00 00 00 F7 FF                    db       00h, 00h, 00h, 00h,0F7h,0FFh +435F:1522  0D 00 94 14 FB FF                    db       0Dh, 00h, 94h, 14h,0FBh,0FFh +435F:1528  EF FF FF FF D2 55                    db      0EFh,0FFh,0FFh,0FFh,0D2h, 55h +435F:152E  00 00 00 00 00 00                    db       00h, 00h, 00h, 00h, 00h, 00h +435F:1534  01 00 17 00 F8 FF                    db       01h, 00h, 17h, 00h,0F8h,0FFh +435F:153A  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:1540  02 00 16 00 05 00                    db       02h, 00h, 16h, 00h, 05h, 00h +435F:1546  F4 FF F6 FF 0B 00                    db      0F4h,0FFh,0F6h,0FFh, 0Bh, 00h +435F:154C  DE 15 02 00 00 00                    db      0DEh, 15h, 02h, 00h, 00h, 00h +435F:1552  00 00 03 00 17 00                    db       00h, 00h, 03h, 00h, 17h, 00h +435F:1558  F0 FF F2 FF 04 00                    db      0F0h,0FFh,0F2h,0FFh, 04h, 00h +435F:155E  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:1564  04 00 08 00 EE FF                    db       04h, 00h, 08h, 00h,0EEh,0FFh +435F:156A  F1 FF 04 00 6C 16                    db      0F1h,0FFh, 04h, 00h, 6Ch, 16h +435F:1570  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:1576  05 00 F0 FF EF FF                    db       05h, 00h,0F0h,0FFh,0EFh,0FFh +435F:157C  F1 FF 01 00 14 16                    db      0F1h,0FFh, 01h, 00h, 14h, 16h +435F:1582  F2 FF 00 00 F0 FF                    db      0F2h,0FFh, 00h, 00h,0F0h,0FFh +435F:1588  A6 11 05 00 00 00                    db      0A6h, 11h, 05h, 00h, 00h, 00h +435F:158E  00 00 06 00 DF FF                    db       00h, 00h, 06h, 00h,0DFh,0FFh +435F:1594  05 00 06 00 00 00                    db       05h, 00h, 06h, 00h, 00h, 00h +435F:159A  00 00 07 00 DF FF                    db       00h, 00h, 07h, 00h,0DFh,0FFh +435F:15A0  07 00 07 00 00 00                    db       07h, 00h, 07h, 00h, 00h, 00h +435F:15A6  00 00 08 00 EF FF                    db       00h, 00h, 08h, 00h,0EFh,0FFh +435F:15AC  07 00 08 00 00 00                    db       07h, 00h, 08h, 00h, 00h, 00h +435F:15B2  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:15B8  00 00 09 00 00 00                    db       00h, 00h, 09h, 00h, 00h, 00h +435F:15BE  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:15C4  00 00 FF FF F6 55                    db       00h, 00h,0FFh,0FFh,0F6h, 55h +435F:15CA  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:15D0  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:15D6  F7 FF 0B 00 CA 15                    db      0F7h,0FFh, 0Bh, 00h,0CAh, 15h +435F:15DC  FB FF 01 00 00 00                    db      0FBh,0FFh, 01h, 00h, 00h, 00h +435F:15E2  00 00 02 00 16 00                    db       00h, 00h, 02h, 00h, 16h, 00h +435F:15E8  05 00 01 00 00 00                    db       05h, 00h, 01h, 00h, 00h, 00h +435F:15EE  00 00 02 00 16 00                    db       00h, 00h, 02h, 00h, 16h, 00h +435F:15F4  05                                   db       05h +435F:15F5  0007[00]                             db      7 dup (0) +435F:15FC  01 00 17 00 F8 FF                    db       01h, 00h, 17h, 00h,0F8h,0FFh +435F:1602  FF FF F6 55 04 00                    db      0FFh,0FFh,0F6h, 55h, 04h, 00h +435F:1608  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:160E  00 00 00 00 FB FF                    db       00h, 00h, 00h, 00h,0FBh,0FFh +435F:1614  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:161A  05 00 F0 FF EF FF                    db       05h, 00h,0F0h,0FFh,0EFh,0FFh +435F:1620  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:1626  05 00 F0 FF EF FF                    db       05h, 00h,0F0h,0FFh,0EFh,0FFh +435F:162C  F2 FF 00 00 07 00                    db      0F2h,0FFh, 00h, 00h, 07h, 00h +435F:1632  00 00 00 00 08 00                    db       00h, 00h, 00h, 00h, 08h, 00h +435F:1638  EF FF 07 00 08 00                    db      0EFh,0FFh, 07h, 00h, 08h, 00h +435F:163E  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1644  00 00 00 00 09 00                    db       00h, 00h, 00h, 00h, 09h, 00h +435F:164A  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1650  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +435F:1656  F6 55 04 00 00 00                    db      0F6h, 55h, 04h, 00h, 00h, 00h +435F:165C  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:1662  00 00 F7 FF 0B 00                    db       00h, 00h,0F7h,0FFh, 0Bh, 00h +435F:1668  CA 15 FB FF EA FF                    db      0CAh, 15h,0FBh,0FFh,0EAh,0FFh +435F:166E  2A 00 03 00 00 00                    db       2Ah, 00h, 03h, 00h, 00h, 00h +435F:1674  00 00 04 00 08 00                    db       00h, 00h, 04h, 00h, 08h, 00h +435F:167A  EE FF 03 00 00 00                    db      0EEh,0FFh, 03h, 00h, 00h, 00h +435F:1680  00 00 04 00 08 00                    db       00h, 00h, 04h, 00h, 08h, 00h +435F:1686  EE FF 03 00 00 00                    db      0EEh,0FFh, 03h, 00h, 00h, 00h +435F:168C  00 00 04 00 08 00                    db       00h, 00h, 04h, 00h, 08h, 00h +435F:1692  EE FF F2 FF 00 00                    db      0EEh,0FFh,0F2h,0FFh, 00h, 00h +435F:1698  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:169E  03 00 17 00 F0 FF                    db       03h, 00h, 17h, 00h,0F0h,0FFh +435F:16A4  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:16AA  02 00 16 00 05 00                    db       02h, 00h, 16h, 00h, 05h, 00h +435F:16B0  FF FF F6 55 04 00                    db      0FFh,0FFh,0F6h, 55h, 04h, 00h +435F:16B6  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:16BC  00 00 00 00 F7 FF                    db       00h, 00h, 00h, 00h,0F7h,0FFh +435F:16C2  0B 00 CA 15 FB FF                    db       0Bh, 00h,0CAh, 15h,0FBh,0FFh +435F:16C8  EF FF FF FF C0 55                    db      0EFh,0FFh,0FFh,0FFh,0C0h, 55h +435F:16CE  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:16D4  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:16DA  F6 FF 0C 00 66 17                    db      0F6h,0FFh, 0Ch, 00h, 66h, 17h +435F:16E0  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:16E6  18 00 01 00 FF FF                    db       18h, 00h, 01h, 00h,0FFh,0FFh +435F:16EC  F4 FF F1 FF 05 00                    db      0F4h,0FFh,0F1h,0FFh, 05h, 00h +435F:16F2  F8 17 F2 FF 05 00                    db      0F8h, 17h,0F2h,0FFh, 05h, 00h +435F:16F8  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:16FE  09 00 F0 FF 05 00                    db       09h, 00h,0F0h,0FFh, 05h, 00h +435F:1704  F1 FF 02 00 9E 17                    db      0F1h,0FFh, 02h, 00h, 9Eh, 17h +435F:170A  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:1710  0A 00 DF FF 05 00                    db       0Ah, 00h,0DFh,0FFh, 05h, 00h +435F:1716  F0 FF 42 12 05 00                    db      0F0h,0FFh, 42h, 12h, 05h, 00h +435F:171C  00 00 00 00 0B 00                    db       00h, 00h, 00h, 00h, 0Bh, 00h +435F:1722  EB FF 05 00 F2 FF                    db      0EBh,0FFh, 05h, 00h,0F2h,0FFh +435F:1728  00 00 06 00 00 00                    db       00h, 00h, 06h, 00h, 00h, 00h +435F:172E  00 00 09 00 F2 FF                    db       00h, 00h, 09h, 00h,0F2h,0FFh +435F:1734  03 00 07 00 00 00                    db       03h, 00h, 07h, 00h, 00h, 00h +435F:173A  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:1740  00 00 08 00 00 00                    db       00h, 00h, 08h, 00h, 00h, 00h +435F:1746  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:174C  00 00 FF FF F6 55                    db       00h, 00h,0FFh,0FFh,0F6h, 55h +435F:1752  04 00 00 00 00 00                    db       04h, 00h, 00h, 00h, 00h, 00h +435F:1758  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:175E  F7 FF 0C 00 52 17                    db      0F7h,0FFh, 0Ch, 00h, 52h, 17h +435F:1764  FB FF 01 00 00 00                    db      0FBh,0FFh, 01h, 00h, 00h, 00h +435F:176A  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:1770  00 00 F4 FF 01 00                    db       00h, 00h,0F4h,0FFh, 01h, 00h +435F:1776  00 00 00 00 18                       db       00h, 00h, 00h, 00h, 18h +435F:177B  000B[00]                             db      11 dup (0) +435F:1786  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:178C  FF FF F6 55 04 00                    db      0FFh,0FFh,0F6h, 55h, 04h, 00h +435F:1792  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1798  00 00 00 00 FB FF                    db       00h, 00h, 00h, 00h,0FBh,0FFh +435F:179E  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:17A4  09 00 F0 FF 05 00                    db       09h, 00h,0F0h,0FFh, 05h, 00h +435F:17AA  03 00 00 00 00 00                    db       03h, 00h, 00h, 00h, 00h, 00h +435F:17B0  09 00 F0 FF 05 00                    db       09h, 00h,0F0h,0FFh, 05h, 00h +435F:17B6  02 00 00 00 00 00                    db       02h, 00h, 00h, 00h, 00h, 00h +435F:17BC  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:17C2  F2 FF 00 00 F4 FF                    db      0F2h,0FFh, 00h, 00h,0F4h,0FFh +435F:17C8  01 00 00 00 00 00                    db       01h, 00h, 00h, 00h, 00h, 00h +435F:17CE  18                                   db       18h +435F:17CF  000B[00]                             db      11 dup (0) +435F:17DA  18 00 00 00 00 00                    db       18h, 00h, 00h, 00h, 00h, 00h +435F:17E0  FF FF F6 55 04 00                    db      0FFh,0FFh,0F6h, 55h, 04h, 00h +435F:17E6  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:17EC  00 00 00 00 F7 FF                    db       00h, 00h, 00h, 00h,0F7h,0FFh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 614 + +435F:17F2  0C 00 52 17 FB FF                    db       0Ch, 00h, 52h, 17h,0FBh,0FFh +435F:17F8  EA FF 2A 00 02 00                    db      0EAh,0FFh, 2Ah, 00h, 02h, 00h +435F:17FE  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1804  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +435F:180A  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1810  00 00 00 00 02 00                    db       00h, 00h, 00h, 00h, 02h, 00h +435F:1816  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:181C  00 00 00 00 01 00                    db       00h, 00h, 00h, 00h, 01h, 00h +435F:1822  00 00 00 00 18 00                    db       00h, 00h, 00h, 00h, 18h, 00h +435F:1828  00 00 00 00 FF FF                    db       00h, 00h, 00h, 00h,0FFh,0FFh +435F:182E  F6 55 04 00 00 00                    db      0F6h, 55h, 04h, 00h, 00h, 00h +435F:1834  00 00 18 00 00 00                    db       00h, 00h, 18h, 00h, 00h, 00h +435F:183A  00 00 F7 FF 0C 00                    db       00h, 00h,0F7h,0FFh, 0Ch, 00h +435F:1840  52 17 FB FF FA FF                    db       52h, 17h,0FBh,0FFh,0FAh,0FFh +435F:1846  F8 FF 44 18 F9 FF                    db      0F8h,0FFh, 44h, 18h,0F9h,0FFh +435F:184C  F8 FF 4A 18                          db      0F8h,0FFh, 4Ah, 18h + +                                seg_d           ends + + + +                                ;-------------------------------------  ega_talk_frame_seg  ---- + +                        ega_talk_frame_seg      segment byte public +                                                assume cs:ega_talk_frame_seg, ds:ega_talk_frame_seg, ss:stack_seg_k + +44E4:0000  00 FF FF 00 00 FF                    db       00h,0FFh,0FFh, 00h, 00h,0FFh +44E4:0006  FF 00 00 FF FF 00                    db      0FFh, 00h, 00h,0FFh,0FFh, 00h +44E4:000C  00                   data_1404       db      0                       ;  xref 273F:3042 +44E4:000D  80 80 80 00 00 00                    db       80h, 80h, 80h, 00h, 00h, 00h +44E4:0013  00 00 01 01 00 3F                    db       00h, 00h, 01h, 01h, 00h, 3Fh +44E4:0019  80 80 BF FF 00 00                    db       80h, 80h,0BFh,0FFh, 00h, 00h +44E4:001F  FF FC 01 01 FC 3F                    db      0FFh,0FCh, 01h, 01h,0FCh, 3Fh +44E4:0025  BF 80 9F FF FF 00                    db      0BFh, 80h, 9Fh,0FFh,0FFh, 00h +44E4:002B  FF FC F9 01 FC                       db      0FFh,0FCh,0F9h, 01h,0FCh +44E4:0030  3F                   data_1405       db      3Fh                     ;  xref 273F:3033 +44E4:0031  BF 80 80 FF FF 00                    db      0BFh, 80h, 80h,0FFh,0FFh, 00h +44E4:0037  00 FC FD 01 00 00                    db       00h,0FCh,0FDh, 01h, 00h, 00h +44E4:003D  80 80 80 00 00 00                    db       80h, 80h, 80h, 00h, 00h, 00h +44E4:0043  00 00 01 01 00 00                    db       00h, 00h, 01h, 01h, 00h, 00h +44E4:0049  FF FF FF 00 FF FF                    db      0FFh,0FFh,0FFh, 00h,0FFh,0FFh +44E4:004F  FF 00 FF FF FF 00                    db      0FFh, 00h,0FFh,0FFh,0FFh, 00h +44E4:0055  000B[00]                             db      11 dup (0) + +                        ega_talk_frame_seg      ends + + + +                                ;----------------------------------------------------  dialog_segment  ---- + +                           dialog_segment       segment byte public +                                                assume cs:dialog_segment, ds:dailog_segment, ss:stack_seg_k + +44EA:0000  0010[E0]                             db      16 dup (0E0h) +44EA:0010  DE DF                                db      0DEh,0DFh +44EA:0012  000E[E1]                             db      14 dup (0E1h) +44EA:0020  DE DE DF E0 DF                       db      0DEh,0DEh,0DFh,0E0h,0DFh +44EA:0025  000C[DF]                             db      12 dup (0DFh) +44EA:0031  DE DE DF E0 DF                       db      0DEh,0DEh,0DFh,0E0h,0DFh +44EA:0036  000A[E0]                             db      10 dup (0E0h) +44EA:0040  DE DF DE DE DF E0                    db      0DEh,0DFh,0DEh,0DEh,0DFh,0E0h +44EA:0046  DF E0 E1                             db      0DFh,0E0h,0E1h +44EA:0049  0007[E1]                             db      7 dup (0E1h) +44EA:0050  DE DE DF DE DE DF                    db      0DEh,0DEh,0DFh,0DEh,0DEh,0DFh +44EA:0056  E0 DF E0 E1                          db      0E0h,0DFh,0E0h,0E1h +44EA:005A  0007[DF]                             db      7 dup (0DFh) +44EA:0061  DE DE DF DE DE DF                    db      0DEh,0DEh,0DFh,0DEh,0DEh,0DFh +44EA:0067  E0 DF E0 E1 DF DE                    db      0E0h,0DFh,0E0h,0E1h,0DFh,0DEh +44EA:006D  DE DE DE E0 DF DE                    db      0DEh,0DEh,0DEh,0E0h,0DFh,0DEh +44EA:0073  DE DF DE DE DF E0                    db      0DEh,0DFh,0DEh,0DEh,0DFh,0E0h +44EA:0079  DF E0 E1 DF DE DD                    db      0DFh,0E0h,0E1h,0DFh,0DEh,0DDh +44EA:007F  DD DC E1 DF DE DE                    db      0DDh,0DCh,0E1h,0DFh,0DEh,0DEh +44EA:0085  DF DE DE DF E0 DF                    db      0DFh,0DEh,0DEh,0DFh,0E0h,0DFh +44EA:008B  E0 E1 DF DE DD DC                    db      0E0h,0E1h,0DFh,0DEh,0DDh,0DCh +44EA:0091  E0 E1 DF DE DE DF                    db      0E0h,0E1h,0DFh,0DEh,0DEh,0DFh +44EA:0097  DE DE DF E0 DF E0                    db      0DEh,0DEh,0DFh,0E0h,0DFh,0E0h +44EA:009D  E1 DF DE DD DD DC                    db      0E1h,0DFh,0DEh,0DDh,0DDh,0DCh +44EA:00A3  DF E0 E1 DF DE DE                    db      0DFh,0E0h,0E1h,0DFh,0DEh,0DEh +44EA:00A9  DF DE DE DF E0 DF                    db      0DFh,0DEh,0DEh,0DFh,0E0h,0DFh +44EA:00AF  E0 E1 DF DE DD DC                    db      0E0h,0E1h,0DFh,0DEh,0DDh,0DCh +44EA:00B5  DF E0 E1 DF DE DE                    db      0DFh,0E0h,0E1h,0DFh,0DEh,0DEh +44EA:00BB  DF DE DE DF E0 DF                    db      0DFh,0DEh,0DEh,0DFh,0E0h,0DFh +44EA:00C1  E0 E1 DF DE DC E0                    db      0E0h,0E1h,0DFh,0DEh,0DCh,0E0h +44EA:00C7  E0 E0 E1 DF DE DE                    db      0E0h,0E0h,0E1h,0DFh,0DEh,0DEh +44EA:00CD  DF DE DE DF E0 DF                    db      0DFh,0DEh,0DEh,0DFh,0E0h,0DFh +44EA:00D3  E0 E1 DF E0 E1 E1                    db      0E0h,0E1h,0DFh,0E0h,0E1h,0E1h +44EA:00D9  E1 E1 E1 DF DE DE                    db      0E1h,0E1h,0E1h,0DFh,0DEh,0DEh +44EA:00DF  DF DE DE DF E0 DF                    db      0DFh,0DEh,0DEh,0DFh,0E0h,0DFh +44EA:00E5  E0 E0                                db      0E0h,0E0h +44EA:00E7  0008[DF]                             db      8 dup (0DFh) +44EA:00EF  DE DE DF DE DE DF                    db      0DEh,0DEh,0DFh,0DEh,0DEh,0DFh +44EA:00F5  E0 DF DF                             db      0E0h,0DFh,0DFh +44EA:00F8  000B[DE]                             db      11 dup (0DEh) +44EA:0103  DF DE DE DF E0 DF                    db      0DFh,0DEh,0DEh,0DFh,0E0h,0DFh +44EA:0109  000B[DD]                             db      11 dup (0DDh) +44EA:0114  DE DF DE DE DF E0                    db      0DEh,0DFh,0DEh,0DEh,0DFh,0E0h +44EA:011A  DF                                   db      0DFh +44EA:011B  000D[DF]                             db      13 dup (0DFh) +44EA:0128  DE DE DF                             db      0DEh,0DEh,0DFh +44EA:012B  0011[DE]                             db      17 dup (0DEh) +44EA:013C  0011[DD]                             db      17 dup (0DDh) +44EA:014D  DE 00 00                             db      0DEh, 00h, 00h + +                           dialog_segment       ends + + + +                                ;---------------------------------------  vga_talk_frame_seg  ---- + +                         vga_talk_frame_seg     segment byte public +                                                assume cs:talk_frame_seg, ds:talk_frame_seg, ss:stack_seg_k + +44FF:0000  E0 E0 E0 E0 E0 DF                    db      0E0h,0E0h,0E0h,0E0h,0E0h,0DFh +44FF:0006  DF E1 E1 E1 E1 DE                    db      0DFh,0E1h,0E1h,0E1h,0E1h,0DEh +44FF:000C  DF E0 DD DF E0 DE                    db      0DFh,0E0h,0DDh,0DFh,0E0h,0DEh +44FF:0012  DF E0 DD DC E0 DF                    db      0DFh,0E0h,0DDh,0DCh,0E0h,0DFh +44FF:0018  DE DF E0 DF E0 DF                    db      0DEh,0DFh,0E0h,0DFh,0E0h,0DFh +44FF:001E  DE DF E0 DF DF DF                    db      0DEh,0DFh,0E0h,0DFh,0DFh,0DFh +44FF:0024  DE DE DD DD DD DD                    db      0DEh,0DEh,0DDh,0DDh,0DDh,0DDh +44FF:002A  DD 00 00 00 00 00                    db      0DDh, 00h, 00h, 00h, 00h, 00h + +                         vga_talk_frame_seg     ends + + + +                                ;------------------------------------------------- musical_note_seg ----- +                                ; This segment contains the raw data for the display of a 14x14 pixel +                                ; music note + +                          musical_note_seg      segment byte public + + +4502:0000  0008[00]                             db      8 dup (0) +4502:0008  FC FA F9 F9 FC                       db      0FCh,0FAh,0F9h,0F9h,0FCh +4502:000D  0007[00]                             db      7 dup (0) +4502:0014  FC FA F9 F9 FA FA                    db      0FCh,0FAh,0F9h,0F9h,0FAh,0FAh +4502:001A  FC 00 00 00 00 00                    db      0FCh, 00h, 00h, 00h, 00h, 00h +4502:0020  FC FA F9 F9 FA FA                    db      0FCh,0FAh,0F9h,0F9h,0FAh,0FAh +4502:0026  FA FA FC 00 00 00                    db      0FAh,0FAh,0FCh, 00h, 00h, 00h +4502:002C  00 FA F9 F9 FA FA                    db       00h,0FAh,0F9h,0F9h,0FAh,0FAh +4502:0032  FA FB FC FA FC 00                    db      0FAh,0FBh,0FCh,0FAh,0FCh, 00h +4502:0038  00 00 00 F9 FA FA                    db       00h, 00h, 00h,0F9h,0FAh,0FAh +4502:003E  FA FB FC FD FB FA                    db      0FAh,0FBh,0FCh,0FDh,0FBh,0FAh +4502:0044  FC 00 00 00 00 F9                    db      0FCh, 00h, 00h, 00h, 00h,0F9h +4502:004A  FA FB FC FD 00 00                    db      0FAh,0FBh,0FCh,0FDh, 00h, 00h +4502:0050  FA FA FC 00 00 00                    db      0FAh,0FAh,0FCh, 00h, 00h, 00h +4502:0056  00 F9 FA FC 00 00                    db       00h,0F9h,0FAh,0FCh, 00h, 00h +4502:005C  00 00 F9 FA FC 00                    db       00h, 00h,0F9h,0FAh,0FCh, 00h +4502:0062  00 00 00 F9 FA FC                    db       00h, 00h, 00h,0F9h,0FAh,0FCh +4502:0068  00 00 00 00 F9 FA                    db       00h, 00h, 00h, 00h,0F9h,0FAh +4502:006E  FC 00 00 00 00 F9                    db      0FCh, 00h, 00h, 00h, 00h,0F9h +4502:0074  FA FC 00 FB F9 F9                    db      0FAh,0FCh, 00h,0FBh,0F9h,0F9h +4502:007A  FA FA FC 00 00 00                    db      0FAh,0FAh,0FCh, 00h, 00h, 00h +4502:0080  00 F9 FA FC 00 F9                    db       00h,0F9h,0FAh,0FCh, 00h,0F9h +4502:0086  F8 F8 F9 FA FD 00                    db      0F8h,0F8h,0F9h,0FAh,0FDh, 00h +4502:008C  00 00 00 F9 FA FC                    db       00h, 00h, 00h,0F9h,0FAh,0FCh +4502:0092  00 FB F9 F9 FA FC                    db       00h,0FBh,0F9h,0F9h,0FAh,0FCh +4502:0098  00 00 FB F9 F9 FA                    db       00h, 00h,0FBh,0F9h,0F9h,0FAh +4502:009E  FA FC                                db      0FAh,0FCh +4502:00A0  0008[00]                             db      8 dup (0) +4502:00A8  F9 F8 F8 F9 FA FD                    db      0F9h,0F8h,0F8h,0F9h,0FAh,0FDh +4502:00AE  0008[00]                             db      8 dup (0) +4502:00B6  FB F9 F9 FA FC                       db      0FBh,0F9h,0F9h,0FAh,0FCh +4502:00BB  0015[00]                             db      21 dup (0) + +                          musical_note_seg      ends + + + +                                ;----------------------------------------------  scripts_seg   ---- + +                                scripts_seg     segment byte public +                                                assume cs:scripts_seg, ds:scripts_seg, ss:stack_seg_k + +450F:0000  23 00 00 21 08 00                    db       23h, 00h, 00h, 21h, 08h, 00h +450F:0006  28 23 01 00 21 08                    db       28h, 23h, 01h, 00h, 21h, 08h +450F:000C  00 28 23 18 00 21                    db       00h, 28h, 23h, 18h, 00h, 21h +450F:0012  08 00 1F 24 00 23                    db       08h, 00h, 1Fh, 24h, 00h, 23h +450F:0018  01 00 0A 2B 0C 00                    db       01h, 00h, 0Ah, 2Bh, 0Ch, 00h +450F:001E  23 17 00 21 08 00                    db       23h, 17h, 00h, 21h, 08h, 00h +450F:0024  23 00 00 21 24 00                    db       23h, 00h, 00h, 21h, 24h, 00h +450F:002A  1F 24 00 23 02 00                    db       1Fh, 24h, 00h, 23h, 02h, 00h +450F:0030  0A 2B 06 00 23 28                    db       0Ah, 2Bh, 06h, 00h, 23h, 28h +450F:0036  00 21 08 00 28 23                    db       00h, 21h, 08h, 00h, 28h, 23h +450F:003C  11 04 27 00 00 23                    db       11h, 04h, 27h, 00h, 00h, 23h +450F:0042  13 00 23 18 04 27                    db       13h, 00h, 23h, 18h, 04h, 27h +450F:0048  01 00 23 13 00 27                    db       01h, 00h, 23h, 13h, 00h, 27h +450F:004E  02 00 28 1F 7A 00                    db       02h, 00h, 28h, 1Fh, 7Ah, 00h +450F:0054  23 00 00 0A 2B 27                    db       23h, 00h, 00h, 0Ah, 2Bh, 27h +450F:005A  00 23 01 00 21 7A                    db       00h, 23h, 01h, 00h, 21h, 7Ah +450F:0060  00 23 00 00 21 26                    db       00h, 23h, 00h, 00h, 21h, 26h +450F:0066  00 23 08 00 27 03                    db       00h, 23h, 08h, 00h, 27h, 03h +450F:006C  00 27 04 00 23 02                    db       00h, 27h, 04h, 00h, 23h, 02h +450F:0072  00 27 05 00 23 F2                    db       00h, 27h, 05h, 00h, 23h,0F2h +450F:0078  03 27 00 00 23 37                    db       03h, 27h, 00h, 00h, 23h, 37h +450F:007E  04 27 00 00 28 1F                    db       04h, 27h, 00h, 00h, 28h, 1Fh +450F:0084  7C 00 23 00 00 0A                    db       7Ch, 00h, 23h, 00h, 00h, 0Ah +450F:008A  2B 8E 00 23 01 00                    db       2Bh, 8Eh, 00h, 23h, 01h, 00h +450F:0090  21 7C 00 23 EA 03                    db       21h, 7Ch, 00h, 23h,0EAh, 03h +450F:0096  27 06 00 23 02 00                    db       27h, 06h, 00h, 23h, 02h, 00h +450F:009C  27 03 00 27 04 00                    db       27h, 03h, 00h, 27h, 04h, 00h +450F:00A2  27 07 00 25 22 01                    db       27h, 07h, 00h, 25h, 22h, 01h +450F:00A8  23 00 00 23 14 00                    db       23h, 00h, 00h, 23h, 14h, 00h +450F:00AE  23 5A 2B 27 08 00                    db       23h, 5Ah, 2Bh, 27h, 08h, 00h +450F:00B4  23 00 00 23 13 00                    db       23h, 00h, 00h, 23h, 13h, 00h +450F:00BA  23 C2 2B 27 08 00                    db       23h,0C2h, 2Bh, 27h, 08h, 00h +450F:00C0  23 19 00 27 09 00                    db       23h, 19h, 00h, 27h, 09h, 00h +450F:00C6  23 01 00 21 26 00                    db       23h, 01h, 00h, 21h, 26h, 00h +450F:00CC  23 01 00 21 56 00                    db       23h, 01h, 00h, 21h, 56h, 00h +450F:00D2  23 01 00 21 58 00                    db       23h, 01h, 00h, 21h, 58h, 00h +450F:00D8  23 01 00 21 6E 00                    db       23h, 01h, 00h, 21h, 6Eh, 00h +450F:00DE  23 02 00 21 32 00                    db       23h, 02h, 00h, 21h, 32h, 00h +450F:00E4  23 2A 00 21 70 00                    db       23h, 2Ah, 00h, 21h, 70h, 00h +450F:00EA  23 E8 03 23 10 27                    db       23h,0E8h, 03h, 23h, 10h, 27h +450F:00F0  27 0A 00 1F 0A 00                    db       27h, 0Ah, 00h, 1Fh, 0Ah, 00h +450F:00F6  23 01 00 0A 2B 1E                    db       23h, 01h, 00h, 0Ah, 2Bh, 1Eh +450F:00FC  00 23 61 01 23 10                    db       00h, 23h, 61h, 01h, 23h, 10h +450F:0102  27 27 0B 00 23 60                    db       27h, 27h, 0Bh, 00h, 23h, 60h +450F:0108  01 23 10 27 27 0C                    db       01h, 23h, 10h, 27h, 27h, 0Ch +450F:010E  00 23 02 00 21 24                    db       00h, 23h, 02h, 00h, 21h, 24h +450F:0114  00 23 01 00 21 8E                    db       00h, 23h, 01h, 00h, 21h, 8Eh +450F:011A  00 23 00 00 27 0D                    db       00h, 23h, 00h, 00h, 27h, 0Dh +450F:0120  00 28 23 EB 03 27                    db       00h, 28h, 23h,0EBh, 03h, 27h +450F:0126  00 00 23 EC 03 27                    db       00h, 00h, 23h,0ECh, 03h, 27h +450F:012C  00 00 23 ED 03 27                    db       00h, 00h, 23h,0EDh, 03h, 27h +450F:0132  00 00 23 EE 03 27                    db       00h, 00h, 23h,0EEh, 03h, 27h +450F:0138  00 00 23 EF 03 27                    db       00h, 00h, 23h,0EFh, 03h, 27h +450F:013E  00 00 23 F0 03 27                    db       00h, 00h, 23h,0F0h, 03h, 27h +450F:0144  00 00 23 F1 03 27                    db       00h, 00h, 23h,0F1h, 03h, 27h +450F:014A  00 00 23 36 04 27                    db       00h, 00h, 23h, 36h, 04h, 27h +450F:0150  00 00 23 15 27 27                    db       00h, 00h, 23h, 15h, 27h, 27h +450F:0156  00 00 23 16 27 27                    db       00h, 00h, 23h, 16h, 27h, 27h +450F:015C  00 00 23 17 27 27                    db       00h, 00h, 23h, 17h, 27h, 27h +450F:0162  00 00 23 18 27 27                    db       00h, 00h, 23h, 18h, 27h, 27h +450F:0168  00 00 23 19 27 27                    db       00h, 00h, 23h, 19h, 27h, 27h +450F:016E  00 00 23 1A 27 27                    db       00h, 00h, 23h, 1Ah, 27h, 27h +450F:0174  00 00 23 20 04 27                    db       00h, 00h, 23h, 20h, 04h, 27h +450F:017A  00 00 23 29 04 27                    db       00h, 00h, 23h, 29h, 04h, 27h +450F:0180  00 00 23 1E 27 27                    db       00h, 00h, 23h, 1Eh, 27h, 27h +450F:0186  00 00 23 1F 27 27                    db       00h, 00h, 23h, 1Fh, 27h, 27h +450F:018C  00 00 23 20 27 27                    db       00h, 00h, 23h, 20h, 27h, 27h +450F:0192  00 00 23 21 27 27                    db       00h, 00h, 23h, 21h, 27h, 27h +450F:0198  00 00 23 22 27 27                    db       00h, 00h, 23h, 22h, 27h, 27h +450F:019E  00 00 23 25 27 27                    db       00h, 00h, 23h, 25h, 27h, 27h +450F:01A4  00 00 23 26 27 27                    db       00h, 00h, 23h, 26h, 27h, 27h +450F:01AA  00 00 28 27 0E 00                    db       00h, 00h, 28h, 27h, 0Eh, 00h +450F:01B0  28 1F 8A 00 23 00                    db       28h, 1Fh, 8Ah, 00h, 23h, 00h +450F:01B6  00 0A 2B 1B 00 23                    db       00h, 0Ah, 2Bh, 1Bh, 00h, 23h +450F:01BC  03 00 27 05 00 27                    db       03h, 00h, 27h, 05h, 00h, 27h +450F:01C2  0F 00 23 01 00 21                    db       0Fh, 00h, 23h, 01h, 00h, 21h +450F:01C8  8A 00 23 01 00 23                    db       8Ah, 00h, 23h, 01h, 00h, 23h +450F:01CE  01 00 23 D7 01 27                    db       01h, 00h, 23h,0D7h, 01h, 27h +450F:01D4  08 00 28 23 9C 0C                    db       08h, 00h, 28h, 23h, 9Ch, 0Ch +450F:01DA  27 10 00 28 1F 8C                    db       27h, 10h, 00h, 28h, 1Fh, 8Ch +450F:01E0  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:01E6  15 00 27 11 00 23                    db       15h, 00h, 27h, 11h, 00h, 23h +450F:01EC  01 00 21 8C 00 23                    db       01h, 00h, 21h, 8Ch, 00h, 23h +450F:01F2  01 00 23 01 00 23                    db       01h, 00h, 23h, 01h, 00h, 23h +450F:01F8  FE 01 27 08 00 28                    db      0FEh, 01h, 27h, 08h, 00h, 28h +450F:01FE  23 16 10 27 10 00                    db       23h, 16h, 10h, 27h, 10h, 00h +450F:0204  28 25 22 01 23 E9                    db       28h, 25h, 22h, 01h, 23h,0E9h +450F:020A  03 27 00 00 1F 4A                    db       03h, 27h, 00h, 00h, 1Fh, 4Ah +450F:0210  00 23 01 00 0A 2B                    db       00h, 23h, 01h, 00h, 0Ah, 2Bh +450F:0216  06 00 23 02 00 21                    db       06h, 00h, 23h, 02h, 00h, 21h +450F:021C  4A 00 28 1F 02 00                    db       4Ah, 00h, 28h, 1Fh, 02h, 00h +450F:0222  23 E8 03 0C 2B 09                    db       23h,0E8h, 03h, 0Ch, 2Bh, 09h +450F:0228  00 23 2A 00 21 08                    db       00h, 23h, 2Ah, 00h, 21h, 08h +450F:022E  00 2D 09 00 23 04                    db       00h, 2Dh, 09h, 00h, 23h, 04h +450F:0234  00 21 0E 00 27 12                    db       00h, 21h, 0Eh, 00h, 27h, 12h +450F:023A  00 28 1F 02 00 23                    db       00h, 28h, 1Fh, 02h, 00h, 23h +450F:0240  E8 03 0C 2B 09 00                    db      0E8h, 03h, 0Ch, 2Bh, 09h, 00h +450F:0246  23 2A 00 21 08 00                    db       23h, 2Ah, 00h, 21h, 08h, 00h +450F:024C  2D 09 00 23 23 00                    db       2Dh, 09h, 00h, 23h, 23h, 00h +450F:0252  21 0E 00 27 12 00                    db       21h, 0Eh, 00h, 27h, 12h, 00h +450F:0258  28 1F 12 00 23 01                    db       28h, 1Fh, 12h, 00h, 23h, 01h +450F:025E  00 0A 2B 22 00 1F                    db       00h, 0Ah, 2Bh, 22h, 00h, 1Fh +450F:0264  02 00 23 E9 03 0C                    db       02h, 00h, 23h,0E9h, 03h, 0Ch +450F:026A  2B 09 00 23 06 00                    db       2Bh, 09h, 00h, 23h, 06h, 00h +450F:0270  21 08 00 2D 0F 00                    db       21h, 08h, 00h, 2Dh, 0Fh, 00h +450F:0276  23 73 01 23 E9 03                    db       23h, 73h, 01h, 23h,0E9h, 03h +450F:027C  27 13 00 23 01 00                    db       27h, 13h, 00h, 23h, 01h, 00h +450F:0282  21 08 00 28 1F 02                    db       21h, 08h, 00h, 28h, 1Fh, 02h +450F:0288  00 23 EA 03 0A 2B                    db       00h, 23h,0EAh, 03h, 0Ah, 2Bh +450F:028E  06 00 23 00 00 21                    db       06h, 00h, 23h, 00h, 00h, 21h +450F:0294  12 00 1F 12 00 23                    db       12h, 00h, 1Fh, 12h, 00h, 23h +450F:029A  01 00 0A 2B 09 00                    db       01h, 00h, 0Ah, 2Bh, 09h, 00h +450F:02A0  23 06 00 21 08 00                    db       23h, 06h, 00h, 21h, 08h, 00h +450F:02A6  2D 0D 00 1F 02 00                    db       2Dh, 0Dh, 00h, 1Fh, 02h, 00h +450F:02AC  23 E8 03 0A 2B 03                    db       23h,0E8h, 03h, 0Ah, 2Bh, 03h +450F:02B2  00 27 14 00 28 1F                    db       00h, 27h, 14h, 00h, 28h, 1Fh +450F:02B8  02 00 23 EA 03 0A                    db       02h, 00h, 23h,0EAh, 03h, 0Ah +450F:02BE  2B 06 00 23 01 00                    db       2Bh, 06h, 00h, 23h, 01h, 00h +450F:02C4  21 12 00 23 15 00                    db       21h, 12h, 00h, 23h, 15h, 00h +450F:02CA  27 15 00 28 23 11                    db       27h, 15h, 00h, 28h, 23h, 11h +450F:02D0  27 27 16 00 1F 0A                    db       27h, 27h, 16h, 00h, 1Fh, 0Ah +450F:02D6  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:02DC  09 00 23 88 00 27                    db       09h, 00h, 23h, 88h, 00h, 27h +450F:02E2  10 00 2D 10 00 1F                    db       10h, 00h, 2Dh, 10h, 00h, 1Fh +450F:02E8  02 00 23 E8 03 0A                    db       02h, 00h, 23h,0E8h, 03h, 0Ah +450F:02EE  2B 06 00 23 87 00                    db       2Bh, 06h, 00h, 23h, 87h, 00h +450F:02F4  27 10 00 28 23 11                    db       27h, 10h, 00h, 28h, 23h, 11h +450F:02FA  27 27 16 00 1F 0A                    db       27h, 27h, 16h, 00h, 1Fh, 0Ah +450F:0300  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:0306  13 00 1F 02 00 23                    db       13h, 00h, 1Fh, 02h, 00h, 23h +450F:030C  E8 03 0A 2B 06 00                    db      0E8h, 03h, 0Ah, 2Bh, 06h, 00h +450F:0312  23 88 00 27 10 00                    db       23h, 88h, 00h, 27h, 10h, 00h +450F:0318  2D 09 00 25 8B 03                    db       2Dh, 09h, 00h, 25h, 8Bh, 03h +450F:031E  23 01 00 21 12 00                    db       23h, 01h, 00h, 21h, 12h, 00h +450F:0324  28 23 11 27 27 16                    db       28h, 23h, 11h, 27h, 27h, 16h +450F:032A  00 1F 0A 00 23 00                    db       00h, 1Fh, 0Ah, 00h, 23h, 00h +450F:0330  00 0A 2B 13 00 1F                    db       00h, 0Ah, 2Bh, 13h, 00h, 1Fh +450F:0336  02 00 23 E8 03 0A                    db       02h, 00h, 23h,0E8h, 03h, 0Ah +450F:033C  2B 06 00 23 88 00                    db       2Bh, 06h, 00h, 23h, 88h, 00h +450F:0342  27 10 00 2D 42 00                    db       27h, 10h, 00h, 2Dh, 42h, 00h +450F:0348  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:034E  0A 2B 22 00 1F 12                    db       0Ah, 2Bh, 22h, 00h, 1Fh, 12h +450F:0354  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:035A  09 00 23 6A 01 27                    db       09h, 00h, 23h, 6Ah, 01h, 27h +450F:0360  10 00 2D 0C 00 23                    db       10h, 00h, 2Dh, 0Ch, 00h, 23h +450F:0366  19 00 27 0D 00 23                    db       19h, 00h, 27h, 0Dh, 00h, 23h +450F:036C  69 01 27 10 00 2D                    db       69h, 01h, 27h, 10h, 00h, 2Dh +450F:0372  10 00 1F 12 00 23                    db       10h, 00h, 1Fh, 12h, 00h, 23h +450F:0378  01 00 0A 2B 06 00                    db       01h, 00h, 0Ah, 2Bh, 06h, 00h +450F:037E  23 19 00 27 0D 00                    db       23h, 19h, 00h, 27h, 0Dh, 00h +450F:0384  23 00 00 21 12 00                    db       23h, 00h, 00h, 21h, 12h, 00h +450F:038A  28 1F 02 00 23 E8                    db       28h, 1Fh, 02h, 00h, 23h,0E8h +450F:0390  03 0A 2B 4E 00 27                    db       03h, 0Ah, 2Bh, 4Eh, 00h, 27h +450F:0396  17 00 1F 0A 00 23                    db       17h, 00h, 1Fh, 0Ah, 00h, 23h +450F:039C  00 00 0A 2B 22 00                    db       00h, 00h, 0Ah, 2Bh, 22h, 00h +450F:03A2  1F 12 00 23 00 00                    db       1Fh, 12h, 00h, 23h, 00h, 00h +450F:03A8  0A 2B 0F 00 23 19                    db       0Ah, 2Bh, 0Fh, 00h, 23h, 19h +450F:03AE  00 27 0D 00 23 D2                    db       00h, 27h, 0Dh, 00h, 23h,0D2h +450F:03B4  00 27 10 00 2D 06                    db       00h, 27h, 10h, 00h, 2Dh, 06h +450F:03BA  00 23 68 01 27 10                    db       00h, 23h, 68h, 01h, 27h, 10h +450F:03C0  00 2D 1F 00 1F 12                    db       00h, 2Dh, 1Fh, 00h, 1Fh, 12h +450F:03C6  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:03CC  0F 00 23 19 00 27                    db       0Fh, 00h, 23h, 19h, 00h, 27h +450F:03D2  0D 00 23 43 01 27                    db       0Dh, 00h, 23h, 43h, 01h, 27h +450F:03D8  10 00 2D 06 00 23                    db       10h, 00h, 2Dh, 06h, 00h, 23h +450F:03DE  68 01 27 10 00 28                    db       68h, 01h, 27h, 10h, 00h, 28h +450F:03E4  1F 14 00 23 00 00                    db       1Fh, 14h, 00h, 23h, 00h, 00h +450F:03EA  0A 2B 24 00 23 0F                    db       0Ah, 2Bh, 24h, 00h, 23h, 0Fh +450F:03F0  04 27 06 00 23 38                    db       04h, 27h, 06h, 00h, 23h, 38h +450F:03F6  75 27 06 00 23 0E                    db       75h, 27h, 06h, 00h, 23h, 0Eh +450F:03FC  04 27 00 00 23 01                    db       04h, 27h, 00h, 00h, 23h, 01h +450F:0402  00 21 14 00 23 A8                    db       00h, 21h, 14h, 00h, 23h,0A8h +450F:0408  00 27 10 00 23 01                    db       00h, 27h, 10h, 00h, 23h, 01h +450F:040E  00 21 08 00 28 1F                    db       00h, 21h, 08h, 00h, 28h, 1Fh +450F:0414  02 00 23 E8 03 0A                    db       02h, 00h, 23h,0E8h, 03h, 0Ah +450F:041A  2B 09 00 23 01 10                    db       2Bh, 09h, 00h, 23h, 01h, 10h +450F:0420  27 10 00 2D 09 00                    db       27h, 10h, 00h, 2Dh, 09h, 00h +450F:0426  23 1B 10 1F 02 00                    db       23h, 1Bh, 10h, 1Fh, 02h, 00h +450F:042C  27 13 00 28 1F 02                    db       27h, 13h, 00h, 28h, 1Fh, 02h +450F:0432  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:0438  0F 00 23 F7 0F 27                    db       0Fh, 00h, 23h,0F7h, 0Fh, 27h +450F:043E  10 00 23 01 00 21                    db       10h, 00h, 23h, 01h, 00h, 21h +450F:0444  08 00 2D 06 00 23                    db       08h, 00h, 2Dh, 06h, 00h, 23h +450F:044A  11 00 21 08 00 28                    db       11h, 00h, 21h, 08h, 00h, 28h +450F:0450  23 11 00 21 08 00                    db       23h, 11h, 00h, 21h, 08h, 00h +450F:0456  1F 04 00 23 36 27                    db       1Fh, 04h, 00h, 23h, 36h, 27h +450F:045C  0A 2B 3D 00 1F 02                    db       0Ah, 2Bh, 3Dh, 00h, 1Fh, 02h +450F:0462  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:0468  06 00 23 E5 0F 27                    db       06h, 00h, 23h,0E5h, 0Fh, 27h +450F:046E  10 00 23 4D 75 27                    db       10h, 00h, 23h, 4Dh, 75h, 27h +450F:0474  06 00 23 E4 0F 23                    db       06h, 00h, 23h,0E4h, 0Fh, 23h +450F:047A  4E 75 27 0B 00 23                    db       4Eh, 75h, 27h, 0Bh, 00h, 23h +450F:0480  39 04 27 00 00 23                    db       39h, 04h, 27h, 00h, 00h, 23h +450F:0486  01 00 21 7E 00 23                    db       01h, 00h, 21h, 7Eh, 00h, 23h +450F:048C  00 00 21 08 00 23                    db       00h, 00h, 21h, 08h, 00h, 23h +450F:0492  00 00 23 5F 00 23                    db       00h, 00h, 23h, 5Fh, 00h, 23h +450F:0498  9E 04 27 08 00 28                    db       9Eh, 04h, 27h, 08h, 00h, 28h +450F:049E  1F 80 00 23 01 00                    db       1Fh, 80h, 00h, 23h, 01h, 00h +450F:04A4  0A 2B 0C 00 23 04                    db       0Ah, 2Bh, 0Ch, 00h, 23h, 04h +450F:04AA  00 23 38 04 27 01                    db       00h, 23h, 38h, 04h, 27h, 01h +450F:04B0  00 2D 09 00 23 05                    db       00h, 2Dh, 09h, 00h, 23h, 05h +450F:04B6  00 23 39 04 27 01                    db       00h, 23h, 39h, 04h, 27h, 01h +450F:04BC  00 23 02 00 21 7E                    db       00h, 23h, 02h, 00h, 21h, 7Eh +450F:04C2  00 23 FB 0F 23 4E                    db       00h, 23h,0FBh, 0Fh, 23h, 4Eh +450F:04C8  75 27 0B 00 23 2D                    db       75h, 27h, 0Bh, 00h, 23h, 2Dh +450F:04CE  00 27 15 00 28 1F                    db       00h, 27h, 15h, 00h, 28h, 1Fh +450F:04D4  9C 00 23 00 00 0A                    db       9Ch, 00h, 23h, 00h, 00h, 0Ah +450F:04DA  2B 0C 00 23 01 00                    db       2Bh, 0Ch, 00h, 23h, 01h, 00h +450F:04E0  23 3C 00 23 EA 04                    db       23h, 3Ch, 00h, 23h,0EAh, 04h +450F:04E6  27 08 00 28 23 0E                    db       27h, 08h, 00h, 28h, 23h, 0Eh +450F:04EC  00 23 53 04 27 01                    db       00h, 23h, 53h, 04h, 27h, 01h +450F:04F2  00 23 01 00 21 9C                    db       00h, 23h, 01h, 00h, 21h, 9Ch +450F:04F8  00 28 23 D6 00 23                    db       00h, 28h, 23h,0D6h, 00h, 23h +450F:04FE  E8 03 27 13 00 28                    db      0E8h, 03h, 27h, 13h, 00h, 28h +450F:0504  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:050A  0A 2B 0F 00 23 A9                    db       0Ah, 2Bh, 0Fh, 00h, 23h,0A9h +450F:0510  00 27 10 00 23 01                    db       00h, 27h, 10h, 00h, 23h, 01h +450F:0516  00 21 08 00 2D 03                    db       00h, 21h, 08h, 00h, 2Dh, 03h +450F:051C  00 27 18 00 28 25                    db       00h, 27h, 18h, 00h, 28h, 25h +450F:0522  1F 02 1F 0E 00 23                    db       1Fh, 02h, 1Fh, 0Eh, 00h, 23h +450F:0528  00 00 0C 2B 06 00                    db       00h, 00h, 0Ch, 2Bh, 06h, 00h +450F:052E  23 01 00 21 0E 00                    db       23h, 01h, 00h, 21h, 0Eh, 00h +450F:0534  1F 02 00 23 E9 03                    db       1Fh, 02h, 00h, 23h,0E9h, 03h +450F:053A  0A 2B 16 00 27 17                    db       0Ah, 2Bh, 16h, 00h, 27h, 17h +450F:0540  00 1F 0A 00 23 00                    db       00h, 1Fh, 0Ah, 00h, 23h, 00h +450F:0546  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:054C  9D 00 23 E9 03 27                    db       9Dh, 00h, 23h,0E9h, 03h, 27h +450F:0552  13 00 28 1F 02 00                    db       13h, 00h, 28h, 1Fh, 02h, 00h +450F:0558  23 E9 03 0A 2B 18                    db       23h,0E9h, 03h, 0Ah, 2Bh, 18h +450F:055E  00 23 08 00 23 F3                    db       00h, 23h, 08h, 00h, 23h,0F3h +450F:0564  00 23 0C 01 27 19                    db       00h, 23h, 0Ch, 01h, 27h, 19h +450F:056A  00 27 1A 00 23 14                    db       00h, 27h, 1Ah, 00h, 23h, 14h +450F:0570  27 27 06 00 2D 18                    db       27h, 27h, 06h, 00h, 2Dh, 18h +450F:0576  00 23 00 00 27 05                    db       00h, 23h, 00h, 00h, 27h, 05h +450F:057C  00 23 07 00 23 80                    db       00h, 23h, 07h, 00h, 23h, 80h +450F:0582  00 23 88 00 27 19                    db       00h, 23h, 88h, 00h, 27h, 19h +450F:0588  00 23 01 00 21 98                    db       00h, 23h, 01h, 00h, 21h, 98h +450F:058E  00 28 1F 84 00 23                    db       00h, 28h, 1Fh, 84h, 00h, 23h +450F:0594  00 00 0A 2B 17 00                    db       00h, 00h, 0Ah, 2Bh, 17h, 00h +450F:059A  23 2F 00 23 00 20                    db       23h, 2Fh, 00h, 23h, 00h, 20h +450F:05A0  02 23 9A 01 23 40                    db       02h, 23h, 9Ah, 01h, 23h, 40h +450F:05A6  01 23 08 00 04 27                    db       01h, 23h, 08h, 00h, 04h, 27h +450F:05AC  19 00 2D 14 00 23                    db       19h, 00h, 2Dh, 14h, 00h, 23h +450F:05B2  31 00 23 00 20 02                    db       31h, 00h, 23h, 00h, 20h, 02h +450F:05B8  23 9A 01 23 40 01                    db       23h, 9Ah, 01h, 23h, 40h, 01h +450F:05BE  23 08 00 04 27 19                    db       23h, 08h, 00h, 04h, 27h, 19h +450F:05C4  00 28 1F 02 00 23                    db       00h, 28h, 1Fh, 02h, 00h, 23h +450F:05CA  E8 03 0A 1F 1C 00                    db      0E8h, 03h, 0Ah, 1Fh, 1Ch, 00h +450F:05D0  23 00 00 0A 1A 2B                    db       23h, 00h, 00h, 0Ah, 1Ah, 2Bh +450F:05D6  19 00 1F 20 00 23                    db       19h, 00h, 1Fh, 20h, 00h, 23h +450F:05DC  00 00 0A 2B 0F 00                    db       00h, 00h, 0Ah, 2Bh, 0Fh, 00h +450F:05E2  23 01 00 21 20 00                    db       23h, 01h, 00h, 21h, 20h, 00h +450F:05E8  23 98 00 23 11 04                    db       23h, 98h, 00h, 23h, 11h, 04h +450F:05EE  27 13 00 28 1F 02                    db       27h, 13h, 00h, 28h, 1Fh, 02h +450F:05F4  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:05FA  53 00 1F 84 00 23                    db       53h, 00h, 1Fh, 84h, 00h, 23h +450F:0600  00 00 0A 2B 40 00                    db       00h, 00h, 0Ah, 2Bh, 40h, 00h +450F:0606  1F 82 00 23 01 00                    db       1Fh, 82h, 00h, 23h, 01h, 00h +450F:060C  0A 2B 2D 00 23 06                    db       0Ah, 2Bh, 2Dh, 00h, 23h, 06h +450F:0612  00 23 E8 03 27 1B                    db       00h, 23h,0E8h, 03h, 27h, 1Bh +450F:0618  00 23 07 00 23 3A                    db       00h, 23h, 07h, 00h, 23h, 3Ah +450F:061E  04 27 01 00 23 07                    db       04h, 27h, 01h, 00h, 23h, 07h +450F:0624  00 23 3B 04 27 01                    db       00h, 23h, 3Bh, 04h, 27h, 01h +450F:062A  00 23 07 00 23 3C                    db       00h, 23h, 07h, 00h, 23h, 3Ch +450F:0630  04 27 01 00 23 01                    db       04h, 27h, 01h, 00h, 23h, 01h +450F:0636  00 21 84 00 2D 06                    db       00h, 21h, 84h, 00h, 2Dh, 06h +450F:063C  00 23 EC 0F 27 10                    db       00h, 23h,0ECh, 0Fh, 27h, 10h +450F:0642  00 2D 06 00 23 EC                    db       00h, 2Dh, 06h, 00h, 23h,0ECh +450F:0648  0F 27 10 00 2D 09                    db       0Fh, 27h, 10h, 00h, 2Dh, 09h +450F:064E  00 23 EE 0F 1F 02                    db       00h, 23h,0EEh, 0Fh, 1Fh, 02h +450F:0654  00 27 13 00 28 23                    db       00h, 27h, 13h, 00h, 28h, 23h +450F:065A  11 00 21 08 00 1F                    db       11h, 00h, 21h, 08h, 00h, 1Fh +450F:0660  04 00 23 35 27 0A                    db       04h, 00h, 23h, 35h, 27h, 0Ah +450F:0666  2B 25 00 23 01 00                    db       2Bh, 25h, 00h, 23h, 01h, 00h +450F:066C  21 9A 00 23 00 00                    db       21h, 9Ah, 00h, 23h, 00h, 00h +450F:0672  21 08 00 23 35 27                    db       21h, 08h, 00h, 23h, 35h, 27h +450F:0678  27 06 00 1F 02 00                    db       27h, 06h, 00h, 1Fh, 02h, 00h +450F:067E  23 E8 03 0A 2B 09                    db       23h,0E8h, 03h, 0Ah, 2Bh, 09h +450F:0684  00 23 11 10 27 10                    db       00h, 23h, 11h, 10h, 27h, 10h +450F:068A  00 27 1C 00 28 1F                    db       00h, 27h, 1Ch, 00h, 28h, 1Fh +450F:0690  9A 00 23 01 00 0A                    db       9Ah, 00h, 23h, 01h, 00h, 0Ah +450F:0696  2B 3D 00 1F 02 00                    db       2Bh, 3Dh, 00h, 1Fh, 02h, 00h +450F:069C  23 E8 03 0A 2B 0C                    db       23h,0E8h, 03h, 0Ah, 2Bh, 0Ch +450F:06A2  00 23 08 00 23 E8                    db       00h, 23h, 08h, 00h, 23h,0E8h +450F:06A8  03 27 1B 00 2D 09                    db       03h, 27h, 1Bh, 00h, 2Dh, 09h +450F:06AE  00 23 09 00 1F 02                    db       00h, 23h, 09h, 00h, 1Fh, 02h +450F:06B4  00 27 1B 00 23 0A                    db       00h, 27h, 1Bh, 00h, 23h, 0Ah +450F:06BA  00 23 3D 04 27 01                    db       00h, 23h, 3Dh, 04h, 27h, 01h +450F:06C0  00 23 01 00 21 82                    db       00h, 23h, 01h, 00h, 21h, 82h +450F:06C6  00 23 00 00 23 05                    db       00h, 23h, 00h, 00h, 23h, 05h +450F:06CC  00 23 F6 06 27 08                    db       00h, 23h,0F6h, 06h, 27h, 08h +450F:06D2  00 2D 1F 00 1F 02                    db       00h, 2Dh, 1Fh, 00h, 1Fh, 02h +450F:06D8  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:06DE  09 00 23 0F 10 27                    db       09h, 00h, 23h, 0Fh, 10h, 27h +450F:06E4  10 00 2D 0C 00 23                    db       10h, 00h, 2Dh, 0Ch, 00h, 23h +450F:06EA  10 10 23 E8 03 23                    db       10h, 10h, 23h,0E8h, 03h, 23h +450F:06F0  F2 03 27 1D 00 28                    db      0F2h, 03h, 27h, 1Dh, 00h, 28h +450F:06F6  23 00 00 21 82 00                    db       23h, 00h, 00h, 21h, 82h, 00h +450F:06FC  28 23 01 00 21 20                    db       28h, 23h, 01h, 00h, 21h, 20h +450F:0702  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:0708  00 28 23 01 00 21                    db       00h, 28h, 23h, 01h, 00h, 21h +450F:070E  20 00 1F 1C 00 23                    db       20h, 00h, 1Fh, 1Ch, 00h, 23h +450F:0714  00 00 0C 2B 09 00                    db       00h, 00h, 0Ch, 2Bh, 09h, 00h +450F:071A  23 11 00 21 08 00                    db       23h, 11h, 00h, 21h, 08h, 00h +450F:0720  2D 89 00 23 01 00                    db       2Dh, 89h, 00h, 23h, 01h, 00h +450F:0726  23 11 04 27 1E 00                    db       23h, 11h, 04h, 27h, 1Eh, 00h +450F:072C  1F 02 00 23 EA 03                    db       1Fh, 02h, 00h, 23h,0EAh, 03h +450F:0732  0A 2B 24 00 23 00                    db       0Ah, 2Bh, 24h, 00h, 23h, 00h +450F:0738  00 23 EA 03 27 1B                    db       00h, 23h,0EAh, 03h, 27h, 1Bh +450F:073E  00 23 97 00 23 11                    db       00h, 23h, 97h, 00h, 23h, 11h +450F:0744  04 23 EA 03 27 1F                    db       04h, 23h,0EAh, 03h, 27h, 1Fh +450F:074A  00 23 96 00 23 EA                    db       00h, 23h, 96h, 00h, 23h,0EAh +450F:0750  03 23 11 04 27 1D                    db       03h, 23h, 11h, 04h, 27h, 1Dh +450F:0756  00 2D 52 00 23 14                    db       00h, 2Dh, 52h, 00h, 23h, 14h +450F:075C  00 23 E8 03 27 1B                    db       00h, 23h,0E8h, 03h, 27h, 1Bh +450F:0762  00 1F 78 00 23 00                    db       00h, 1Fh, 78h, 00h, 23h, 00h +450F:0768  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:076E  ED 0A 23 11 04 27                    db      0EDh, 0Ah, 23h, 11h, 04h, 27h +450F:0774  13 00 1F 78 00 23                    db       13h, 00h, 1Fh, 78h, 00h, 23h +450F:077A  01 00 0A 2B 09 00                    db       01h, 00h, 0Ah, 2Bh, 09h, 00h +450F:0780  23 EE 0A 23 11 04                    db       23h,0EEh, 0Ah, 23h, 11h, 04h +450F:0786  27 13 00 1F 78 00                    db       27h, 13h, 00h, 1Fh, 78h, 00h +450F:078C  23 01 00 02 21 78                    db       23h, 01h, 00h, 02h, 21h, 78h +450F:0792  00 1F 78 00 23 02                    db       00h, 1Fh, 78h, 00h, 23h, 02h +450F:0798  00 0A 2B 0F 00 23                    db       00h, 0Ah, 2Bh, 0Fh, 00h, 23h +450F:079E  02 00 21 1C 00 23                    db       02h, 00h, 21h, 1Ch, 00h, 23h +450F:07A4  F0 0A 23 11 04 27                    db      0F0h, 0Ah, 23h, 11h, 04h, 27h +450F:07AA  0B 00 28 23 11 00                    db       0Bh, 00h, 28h, 23h, 11h, 00h +450F:07B0  21 08 00 1F 04 00                    db       21h, 08h, 00h, 1Fh, 04h, 00h +450F:07B6  23 13 27 0A 2B 3A                    db       23h, 13h, 27h, 0Ah, 2Bh, 3Ah +450F:07BC  00 23 00 00 21 08                    db       00h, 23h, 00h, 00h, 21h, 08h +450F:07C2  00 23 35 75 27 06                    db       00h, 23h, 35h, 75h, 27h, 06h +450F:07C8  00 1F 1C 00 23 00                    db       00h, 1Fh, 1Ch, 00h, 23h, 00h +450F:07CE  00 0A 2B 1E 00 23                    db       00h, 0Ah, 2Bh, 1Eh, 00h, 23h +450F:07D4  01 00 21 1C 00 23                    db       01h, 00h, 21h, 1Ch, 00h, 23h +450F:07DA  1A 00 27 0D 00 23                    db       1Ah, 00h, 27h, 0Dh, 00h, 23h +450F:07E0  03 00 23 11 04 27                    db       03h, 00h, 23h, 11h, 04h, 27h +450F:07E6  1E 00 23 11 04 27                    db       1Eh, 00h, 23h, 11h, 04h, 27h +450F:07EC  20 00 2D 06 00 23                    db       20h, 00h, 2Dh, 06h, 00h, 23h +450F:07F2  6F 01 27 10 00 28                    db       6Fh, 01h, 27h, 10h, 00h, 28h +450F:07F8  23 11 00 21 08 00                    db       23h, 11h, 00h, 21h, 08h, 00h +450F:07FE  1F 04 00 23 10 27                    db       1Fh, 04h, 00h, 23h, 10h, 27h +450F:0804  0A 2B 3B 00 1F 24                    db       0Ah, 2Bh, 3Bh, 00h, 1Fh, 24h +450F:080A  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:0810  2B 00 23 01 00 21                    db       2Bh, 00h, 23h, 01h, 00h, 21h +450F:0816  24 00 23 00 00 21                    db       24h, 00h, 23h, 00h, 00h, 21h +450F:081C  08 00 23 04 00 27                    db       08h, 00h, 23h, 04h, 00h, 27h +450F:0822  0D 00 1F 02 00 23                    db       0Dh, 00h, 1Fh, 02h, 00h, 23h +450F:0828  E8 03 0A 2B 0C 00                    db      0E8h, 03h, 0Ah, 2Bh, 0Ch, 00h +450F:082E  23 ED 00 27 10 00                    db       23h,0EDh, 00h, 27h, 10h, 00h +450F:0834  23 04 00 27 15 00                    db       23h, 04h, 00h, 27h, 15h, 00h +450F:083A  2D 06 00 23 1C 00                    db       2Dh, 06h, 00h, 23h, 1Ch, 00h +450F:0840  21 08 00 28 23 11                    db       21h, 08h, 00h, 28h, 23h, 11h +450F:0846  00 21 08 00 1F 04                    db       00h, 21h, 08h, 00h, 1Fh, 04h +450F:084C  00 23 13 27 0A 2B                    db       00h, 23h, 13h, 27h, 0Ah, 2Bh +450F:0852  2F 00 1F 28 00 23                    db       2Fh, 00h, 1Fh, 28h, 00h, 23h +450F:0858  00 00 0A 2B 25 00                    db       00h, 00h, 0Ah, 2Bh, 25h, 00h +450F:085E  23 01 00 21 28 00                    db       23h, 01h, 00h, 21h, 28h, 00h +450F:0864  23 00 00 21 08 00                    db       23h, 00h, 00h, 21h, 08h, 00h +450F:086A  27 21 00 23 1A 00                    db       27h, 21h, 00h, 23h, 1Ah, 00h +450F:0870  27 0D 00 1F 02 00                    db       27h, 0Dh, 00h, 1Fh, 02h, 00h +450F:0876  23 E8 03 0A 2B 06                    db       23h,0E8h, 03h, 0Ah, 2Bh, 06h +450F:087C  00 23 F0 00 27 10                    db       00h, 23h,0F0h, 00h, 27h, 10h +450F:0882  00 28 23 01 00 21                    db       00h, 28h, 23h, 01h, 00h, 21h +450F:0888  08 00 1F 28 00 23                    db       08h, 00h, 1Fh, 28h, 00h, 23h +450F:088E  00 00 0A 2B 06 00                    db       00h, 00h, 0Ah, 2Bh, 06h, 00h +450F:0894  23 00 00 21 08 00                    db       23h, 00h, 00h, 21h, 08h, 00h +450F:089A  1F 28 00 23 02 00                    db       1Fh, 28h, 00h, 23h, 02h, 00h +450F:08A0  0A 2B 06 00 23 D8                    db       0Ah, 2Bh, 06h, 00h, 23h,0D8h +450F:08A6  00 27 10 00 1F 28                    db       00h, 27h, 10h, 00h, 1Fh, 28h +450F:08AC  00 23 01 00 0A 2B                    db       00h, 23h, 01h, 00h, 0Ah, 2Bh +450F:08B2  15 00 23 0B 01 27                    db       15h, 00h, 23h, 0Bh, 01h, 27h +450F:08B8  10 00 23 01 00 1F                    db       10h, 00h, 23h, 01h, 00h, 1Fh +450F:08BE  02 00 27 22 00 23                    db       02h, 00h, 27h, 22h, 00h, 23h +450F:08C4  02 00 21 28 00 28                    db       02h, 00h, 21h, 28h, 00h, 28h +450F:08CA  27 17 00 1F 0A 00                    db       27h, 17h, 00h, 1Fh, 0Ah, 00h +450F:08D0  23 00 00 0C 2B 0C                    db       23h, 00h, 00h, 0Ch, 2Bh, 0Ch +450F:08D6  00 23 01 00 21 08                    db       00h, 23h, 01h, 00h, 21h, 08h +450F:08DC  00 23 44 01 27 10                    db       00h, 23h, 44h, 01h, 27h, 10h +450F:08E2  00 28 23 1E 00 21                    db       00h, 28h, 23h, 1Eh, 00h, 21h +450F:08E8  08 00 1F 28 00 23                    db       08h, 00h, 1Fh, 28h, 00h, 23h +450F:08EE  00 00 0C 2B 06 00                    db       00h, 00h, 0Ch, 2Bh, 06h, 00h +450F:08F4  23 33 00 21 08 00                    db       23h, 33h, 00h, 21h, 08h, 00h +450F:08FA  28 23 01 00 1F 02                    db       28h, 23h, 01h, 00h, 1Fh, 02h +450F:0900  00 27 1B 00 28 1F                    db       00h, 27h, 1Bh, 00h, 28h, 1Fh +450F:0906  30 00 23 00 00 0A                    db       30h, 00h, 23h, 00h, 00h, 0Ah +450F:090C  2B 09 00 23 06 00                    db       2Bh, 09h, 00h, 23h, 06h, 00h +450F:0912  21 08 00 2D 06 00                    db       21h, 08h, 00h, 2Dh, 06h, 00h +450F:0918  23 3C 75 27 20 00                    db       23h, 3Ch, 75h, 27h, 20h, 00h +450F:091E  28 23 3C 75 27 23                    db       28h, 23h, 3Ch, 75h, 27h, 23h +450F:0924  00 1F 02 00 23 F1                    db       00h, 1Fh, 02h, 00h, 23h,0F1h +450F:092A  03 0A 2B 06 00 23                    db       03h, 0Ah, 2Bh, 06h, 00h, 23h +450F:0930  00 00 21 30 00 28                    db       00h, 00h, 21h, 30h, 00h, 28h +450F:0936  1F 02 00 23 E9 03                    db       1Fh, 02h, 00h, 23h,0E9h, 03h +450F:093C  0A 2B 34 00 23 E9                    db       0Ah, 2Bh, 34h, 00h, 23h,0E9h +450F:0942  03                                   db       03h +450F:0943                       loc_2367: +450F:0943  23 1B                                and     bx,[bp+di] +450F:0945  27                                   daa                             ; Decimal adjust +450F:0946  27                                   daa                             ; Decimal adjust +450F:0947  0A 00                                or      al,[bx+si] +450F:0949  1F                                   pop     ds +450F:094A  0A 00                                or      al,[bx+si] +450F:094C  23 01                                and     ax,[bx+di] +450F:094E  00 0A                                add     [bp+si],cl +450F:0950  2B 12                                sub     dx,[bp+si] +450F:0952  00 23                                add     [bp+di],ah +450F:0954  01 00                                add     [bx+si],ax +450F:0956  21 30                                and     [bx+si],si +450F:0958  00 23                                add     [bp+di],ah +450F:095A  35 1F08                              xor     ax,1F08h +450F:095D  02 00                                add     al,[bx+si] +450F:095F  27                                   daa                             ; Decimal adjust +450F:0960  13 00                                adc     ax,[bx+si] +450F:0962  2D 000C                              sub     ax,0Ch +450F:0965  23 00                                and     ax,[bx+si] +450F:0967  00 1F                                add     [bx],bl +450F:0969  02 00                                add     al,[bx+si] +450F:096B  23 2A                                and     bp,[bp+si] +450F:096D  00 27                                add     [bx],ah +450F:096F  24 00                                and     al,0 +450F:0971  2D 000C                              sub     ax,0Ch +450F:0974  23 00                                and     ax,[bx+si] +450F:0976  00 1F                                add     [bx],bl +450F:0978  02 00                                add     al,[bx+si] +450F:097A  23 2A                                and     bp,[bp+si] +450F:097C  00 27                                add     [bx],ah +450F:097E  24 00                                and     al,0 +450F:0980  28 23                                sub     [bp+di],ah +450F:0982  11 00                                adc     [bx+si],ax +450F:0984  21 08                                and     [bx+si],cx +450F:0986  00 1F                                add     [bx],bl +450F:0988  04 00                                add     al,0 +450F:098A  23 1B                                and     bx,[bp+di] +450F:098C  27                                   daa                             ; Decimal adjust +450F:098D  0A 2B                                or      ch,[bp+di] +450F:098F  35 1F00                              xor     ax,1F00h +450F:0992  02 00                                add     al,[bx+si] +450F:0994  23 E9                                and     bp,cx +450F:0996  03 0A                                add     cx,[bp+si] +450F:0998  2B 15                                sub     dx,[di] +450F:099A  00 23                                add     [bp+di],ah +450F:099C  01 00                                add     [bx+si],ax +450F:099E  21 30                                and     [bx+si],si +450F:09A0  00 23                                add     [bp+di],ah +450F:09A2  00 00                                add     [bx+si],al +450F:09A4  21 08                                and     [bx+si],cx +450F:09A6  00 23                                add     [bp+di],ah +450F:09A8  35 1F08                              xor     ax,1F08h +450F:09AB  02 00                                add     al,[bx+si] +450F:09AD  27                                   daa                             ; Decimal adjust +450F:09AE  13 00                                adc     ax,[bx+si] +450F:09B0  1F                                   pop     ds +450F:09B1  02 00                                add     al,[bx+si] +450F:09B3  23 E8                                and     bp,ax +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 625 + +450F:09B5  03 0A                                add     cx,[bp+si] +450F:09B7  2B 0C                                sub     cx,[si] +450F:09B9  00 23                                add     [bp+di],ah +450F:09BB  34 08                                xor     al,8 +450F:09BD  27                                   daa                             ; Decimal adjust +450F:09BE  10 00                                adc     [bx+si],al +450F:09C0  23 00                                and     ax,[bx+si] +450F:09C2  00 21                                add     [bx+di],ah +450F:09C4  08 00                                or      [bx+si],al +450F:09C6  28 23                                sub     [bp+di],ah +450F:09C8  01 00                                add     [bx+si],ax +450F:09CA  21 08                                and     [bx+si],cx +450F:09CC  00 1F                                add     [bx],bl +450F:09CE  32 00                                xor     al,[bx+si] +450F:09D0  23 01                                and     ax,[bx+di] +450F:09D2  00 0A                                add     [bp+si],cl +450F:09D4  2B 09                                sub     cx,[bx+di] +450F:09D6  00 23                                add     [bp+di],ah +450F:09D8  87 01                                xchg    [bx+di],ax +450F:09DA  27                                   daa                             ; Decimal adjust +450F:09DB  10 00                                adc     [bx+si],al +450F:09DD  2D 003F                              sub     ax,3Fh +450F:09E0  1F                                   pop     ds +450F:09E1  32 00                                xor     al,[bx+si] +450F:09E3  23 02                                and     ax,[bp+si] +450F:09E5  00 0A                                add     [bp+si],cl +450F:09E7  2B 09                                sub     cx,[bx+di] +450F:09E9  00 23                                add     [bp+di],ah +450F:09EB  86 01                                xchg    [bx+di],al +450F:09ED  27                                   daa                             ; Decimal adjust +450F:09EE  10 00                                adc     [bx+si],al +450F:09F0  2D 002C                              sub     ax,2Ch +450F:09F3  1F                                   pop     ds +450F:09F4  32 00                                xor     al,[bx+si] +450F:09F6  23 03                                and     ax,[bp+di] +450F:09F8  00 0A                                add     [bp+si],cl +450F:09FA  2B 09                                sub     cx,[bx+di] +450F:09FC  00 23                                add     [bp+di],ah +450F:09FE  89 01                                mov     [bx+di],ax +450F:0A00  27                                   daa                             ; Decimal adjust +450F:0A01  10 00                                adc     [bx+si],al +450F:0A03  2D 0019                              sub     ax,19h +450F:0A06  1F                                   pop     ds +450F:0A07  32 00                                xor     al,[bx+si] +450F:0A09  23 04                                and     ax,[si] +450F:0A0B  00 0A                                add     [bp+si],cl +450F:0A0D  2B 09                                sub     cx,[bx+di] +450F:0A0F  00 23                                add     [bp+di],ah +450F:0A11  88 01                                mov     [bx+di],al +450F:0A13  27                                   daa                             ; Decimal adjust +450F:0A14  10 00                                adc     [bx+si],al +450F:0A16  2D 0006                              sub     ax,6 +450F:0A19  23 00                                and     ax,[bx+si] +450F:0A1B  00 21                                add     [bx+di],ah +450F:0A1D  08 00                                or      [bx+si],al +450F:0A1F  28 1F                                sub     [bx],bl +450F:0A21  34 00                                xor     al,0 +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 626 + +450F:0A23  23 01                                and     ax,[bx+di] +450F:0A25  00 0A                                add     [bp+si],cl +450F:0A27  2B 0C                                sub     cx,[si] +450F:0A29  00 23                                add     [bp+di],ah +450F:0A2B  01 00                                add     [bx+si],ax +450F:0A2D  21 08                                and     [bx+si],cx +450F:0A2F  00 23                                add     [bp+di],ah +450F:0A31  50                                   push    ax +450F:0A32  08 27                                or      [bx],ah +450F:0A34  10 00                                adc     [bx+si],al +450F:0A36  28 23                                sub     [bp+di],ah +450F:0A38  11 00                                adc     [bx+si],ax +450F:0A3A  21 08                                and     [bx+si],cx +450F:0A3C  00 1F                                add     [bx],bl +450F:0A3E  34 00                                xor     al,0 +450F:0A40  23 00                                and     ax,[bx+si] +450F:0A42  00 0A                                add     [bp+si],cl +450F:0A44  2B 65 00             ;*              sub     sp,[di+0] +450F:0A44  2B 65 00                             db       2Bh, 65h, 00h +450F:0A47  1F 04 00 23 1C 27                    db       1Fh, 04h, 00h, 23h, 1Ch, 27h +450F:0A4D  0A 2B 5B 00 1F 02                    db       0Ah, 2Bh, 5Bh, 00h, 1Fh, 02h +450F:0A53  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:0A59  2D 00 23 01 00 21                    db       2Dh, 00h, 23h, 01h, 00h, 21h +450F:0A5F  34 00 23 00 00 21                    db       34h, 00h, 23h, 00h, 00h, 21h +450F:0A65  08 00 23 51 08 27                    db       08h, 00h, 23h, 51h, 08h, 27h +450F:0A6B  10 00 23 01 00 23                    db       10h, 00h, 23h, 01h, 00h, 23h +450F:0A71  02 00 23 AD 0A 27                    db       02h, 00h, 23h,0ADh, 0Ah, 27h +450F:0A77  08 00 27 25 00 23                    db       08h, 00h, 27h, 25h, 00h, 23h +450F:0A7D  0C 00 23 23 04 27                    db       0Ch, 00h, 23h, 23h, 04h, 27h +450F:0A83  01 00 2D 24 00 23                    db       01h, 00h, 2Dh, 24h, 00h, 23h +450F:0A89  01 00 21 34 00 23                    db       01h, 00h, 21h, 34h, 00h, 23h +450F:0A8F  01 00 23 02 00 23                    db       01h, 00h, 23h, 02h, 00h, 23h +450F:0A95  AD 0A 27 08 00 27                    db      0ADh, 0Ah, 27h, 08h, 00h, 27h +450F:0A9B  25 00 23 0C 00 23                    db       25h, 00h, 23h, 0Ch, 00h, 23h +450F:0AA1  23 04 27 01 00 23                    db       23h, 04h, 27h, 01h, 00h, 23h +450F:0AA7  00 00 21 08 00 28                    db       00h, 00h, 21h, 08h, 00h, 28h +450F:0AAD  23 52 08 23 E9 03                    db       23h, 52h, 08h, 23h,0E9h, 03h +450F:0AB3  27 13 00 28 23 11                    db       27h, 13h, 00h, 28h, 23h, 11h +450F:0AB9  00 21 08 00 1F 04                    db       00h, 21h, 08h, 00h, 1Fh, 04h +450F:0ABF  00 23 1D 27 0A 2B                    db       00h, 23h, 1Dh, 27h, 0Ah, 2Bh +450F:0AC5  3B 00 1F 32 00 23                    db       3Bh, 00h, 1Fh, 32h, 00h, 23h +450F:0ACB  00 00 0A 2B 2B 00                    db       00h, 00h, 0Ah, 2Bh, 2Bh, 00h +450F:0AD1  23 03 00 21 32 00                    db       23h, 03h, 00h, 21h, 32h, 00h +450F:0AD7  23 00 00 21 08 00                    db       23h, 00h, 00h, 21h, 08h, 00h +450F:0ADD  23 04 00 27 0D 00                    db       23h, 04h, 00h, 27h, 0Dh, 00h +450F:0AE3  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:0AE9  0A 2B 0C 00 23 AC                    db       0Ah, 2Bh, 0Ch, 00h, 23h,0ACh +450F:0AEF  0C 27 10 00 23 04                    db       0Ch, 27h, 10h, 00h, 23h, 04h +450F:0AF5  00 27 15 00 2D 06                    db       00h, 27h, 15h, 00h, 2Dh, 06h +450F:0AFB  00 23 1C 00 21 08                    db       00h, 23h, 1Ch, 00h, 21h, 08h +450F:0B01  00 28 23 11 00 21                    db       00h, 28h, 23h, 11h, 00h, 21h +450F:0B07  08 00 1F 04 00 23                    db       08h, 00h, 1Fh, 04h, 00h, 23h +450F:0B0D  1D 27 0A 2B 3B 00                    db       1Dh, 27h, 0Ah, 2Bh, 3Bh, 00h +450F:0B13  1F 32 00 23 00 00                    db       1Fh, 32h, 00h, 23h, 00h, 00h +450F:0B19  0A 2B 2B 00 23 04                    db       0Ah, 2Bh, 2Bh, 00h, 23h, 04h +450F:0B1F  00 21 32 00 23 00                    db       00h, 21h, 32h, 00h, 23h, 00h +450F:0B25  00 21 08 00 23 04                    db       00h, 21h, 08h, 00h, 23h, 04h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 627 + +450F:0B2B  00 27 0D 00 1F 02                    db       00h, 27h, 0Dh, 00h, 1Fh, 02h +450F:0B31  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:0B37  0C 00 23 B0 0C 27                    db       0Ch, 00h, 23h,0B0h, 0Ch, 27h +450F:0B3D  10 00 23 04 00 27                    db       10h, 00h, 23h, 04h, 00h, 27h +450F:0B43  15 00 2D 06 00 23                    db       15h, 00h, 2Dh, 06h, 00h, 23h +450F:0B49  1C 00 21 08 00 28                    db       1Ch, 00h, 21h, 08h, 00h, 28h +450F:0B4F  23 11 00 21 08 00                    db       23h, 11h, 00h, 21h, 08h, 00h +450F:0B55  1F 04 00 23 1D 27                    db       1Fh, 04h, 00h, 23h, 1Dh, 27h +450F:0B5B  0A 2B 54 00 1F 36                    db       0Ah, 2Bh, 54h, 00h, 1Fh, 36h +450F:0B61  00 23 01 00 0A 2B                    db       00h, 23h, 01h, 00h, 0Ah, 2Bh +450F:0B67  4A 00 1F 32 00 23                    db       4Ah, 00h, 1Fh, 32h, 00h, 23h +450F:0B6D  00 00 0A 2B 3A 00                    db       00h, 00h, 0Ah, 2Bh, 3Ah, 00h +450F:0B73  23 01 00 21 32 00                    db       23h, 01h, 00h, 21h, 32h, 00h +450F:0B79  23 0B 00 23 23 04                    db       23h, 0Bh, 00h, 23h, 23h, 04h +450F:0B7F  27 01 00 23 00 00                    db       27h, 01h, 00h, 23h, 00h, 00h +450F:0B85  21 08 00 23 00 00                    db       21h, 08h, 00h, 23h, 00h, 00h +450F:0B8B  21 36 00 23 04 00                    db       21h, 36h, 00h, 23h, 04h, 00h +450F:0B91  27 0D 00 1F 02 00                    db       27h, 0Dh, 00h, 1Fh, 02h, 00h +450F:0B97  23 E8 03 0A 2B 0C                    db       23h,0E8h, 03h, 0Ah, 2Bh, 0Ch +450F:0B9D  00 23 53 08 27 10                    db       00h, 23h, 53h, 08h, 27h, 10h +450F:0BA3  00 23 04 00 27 15                    db       00h, 23h, 04h, 00h, 27h, 15h +450F:0BA9  00 2D 06 00 23 1C                    db       00h, 2Dh, 06h, 00h, 23h, 1Ch +450F:0BAF  00 21 08 00 28 23                    db       00h, 21h, 08h, 00h, 28h, 23h +450F:0BB5  18 00 21 08 00 1F                    db       18h, 00h, 21h, 08h, 00h, 1Fh +450F:0BBB  32 00 23 01 00 0A                    db       32h, 00h, 23h, 01h, 00h, 0Ah +450F:0BC1  2B 48 00 23 01 00                    db       2Bh, 48h, 00h, 23h, 01h, 00h +450F:0BC7  21 08 00 1F 02 00                    db       21h, 08h, 00h, 1Fh, 02h, 00h +450F:0BCD  23 E8 03 0A 2B 22                    db       23h,0E8h, 03h, 0Ah, 2Bh, 22h +450F:0BD3  00 1F 38 00 23 00                    db       00h, 1Fh, 38h, 00h, 23h, 00h +450F:0BD9  00 0A 2B 03 00 27                    db       00h, 0Ah, 2Bh, 03h, 00h, 27h +450F:0BDF  26 00 23 02 00 21                    db       26h, 00h, 23h, 02h, 00h, 21h +450F:0BE5  3A 00 23 00 00 21                    db       3Ah, 00h, 23h, 00h, 00h, 21h +450F:0BEB  32 00 23 06 00 21                    db       32h, 00h, 23h, 06h, 00h, 21h +450F:0BF1  26 00 2D 16 00 1F                    db       26h, 00h, 2Dh, 16h, 00h, 1Fh +450F:0BF7  02 00 23 E9 03 0A                    db       02h, 00h, 23h,0E9h, 03h, 0Ah +450F:0BFD  2B 0C 00 23 DB 08                    db       2Bh, 0Ch, 00h, 23h,0DBh, 08h +450F:0C03  23 E8 03 23 E9 03                    db       23h,0E8h, 03h, 23h,0E9h, 03h +450F:0C09  27 1D 00 1F 32 00                    db       27h, 1Dh, 00h, 1Fh, 32h, 00h +450F:0C0F  23 02 00 0A 2B 25                    db       23h, 02h, 00h, 0Ah, 2Bh, 25h +450F:0C15  00 23 01 00 21 08                    db       00h, 23h, 01h, 00h, 21h, 08h +450F:0C1B  00 1F 02 00 23 E8                    db       00h, 1Fh, 02h, 00h, 23h,0E8h +450F:0C21  03 0A 2B 12 00 23                    db       03h, 0Ah, 2Bh, 12h, 00h, 23h +450F:0C27  54 0B 27 10 00 23                    db       54h, 0Bh, 27h, 10h, 00h, 23h +450F:0C2D  55 0B 27 10 00 23                    db       55h, 0Bh, 27h, 10h, 00h, 23h +450F:0C33  82 0C 27 10 00 2D                    db       82h, 0Ch, 27h, 10h, 00h, 2Dh +450F:0C39  7B 00 1F 32 00 23                    db       7Bh, 00h, 1Fh, 32h, 00h, 23h +450F:0C3F  03 00 0A 2B 32 00                    db       03h, 00h, 0Ah, 2Bh, 32h, 00h +450F:0C45  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:0C4B  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:0C51  0A 2B 09 00 23 56                    db       0Ah, 2Bh, 09h, 00h, 23h, 56h +450F:0C57  0B 27 10 00 2D 16                    db       0Bh, 27h, 10h, 00h, 2Dh, 16h +450F:0C5D  00 1F 02 00 23 E9                    db       00h, 1Fh, 02h, 00h, 23h,0E9h +450F:0C63  03 0A 2B 0C 00 23                    db       03h, 0Ah, 2Bh, 0Ch, 00h, 23h +450F:0C69  AD 0C 23 E8 03 23                    db      0ADh, 0Ch, 23h,0E8h, 03h, 23h +450F:0C6F  E9 03 27 1D 00 2D                    db      0E9h, 03h, 27h, 1Dh, 00h, 2Dh +450F:0C75  3F 00 1F 32 00 23                    db       3Fh, 00h, 1Fh, 32h, 00h, 23h +450F:0C7B  04 00 0A 2B 35 00                    db       04h, 00h, 0Ah, 2Bh, 35h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 628 + +450F:0C81  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:0C87  23 00 00 21 32 00                    db       23h, 00h, 00h, 21h, 32h, 00h +450F:0C8D  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:0C93  0A 2B 09 00 23 AE                    db       0Ah, 2Bh, 09h, 00h, 23h,0AEh +450F:0C99  0C 27 10 00 2D 16                    db       0Ch, 27h, 10h, 00h, 2Dh, 16h +450F:0C9F  00 1F 02 00 23 E9                    db       00h, 1Fh, 02h, 00h, 23h,0E9h +450F:0CA5  03 0A 2B 0C 00 23                    db       03h, 0Ah, 2Bh, 0Ch, 00h, 23h +450F:0CAB  AF 0C 23 E8 03 23                    db      0AFh, 0Ch, 23h,0E8h, 03h, 23h +450F:0CB1  E9 03 27 1D 00 28                    db      0E9h, 03h, 27h, 1Dh, 00h, 28h +450F:0CB7  27 26 00 23 05 00                    db       27h, 26h, 00h, 23h, 05h, 00h +450F:0CBD  21 26 00 1F 40 00                    db       21h, 26h, 00h, 1Fh, 40h, 00h +450F:0CC3  23 01 00 0A 2B 06                    db       23h, 01h, 00h, 0Ah, 2Bh, 06h +450F:0CC9  00 23 07 00 21 26                    db       00h, 23h, 07h, 00h, 21h, 26h +450F:0CCF  00 28 1F 38 00 23                    db       00h, 28h, 1Fh, 38h, 00h, 23h +450F:0CD5  00 00 0A 2B 15 00                    db       00h, 00h, 0Ah, 2Bh, 15h, 00h +450F:0CDB  23 5B 08 23 27 04                    db       23h, 5Bh, 08h, 23h, 27h, 04h +450F:0CE1  27 13 00 25 13 0D                    db       27h, 13h, 00h, 25h, 13h, 0Dh +450F:0CE7  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:0CED  2D 12 00 23 C6 08                    db       2Dh, 12h, 00h, 23h,0C6h, 08h +450F:0CF3  23 27 04 27 13 00                    db       23h, 27h, 04h, 27h, 13h, 00h +450F:0CF9  23 01 00 23 27 04                    db       23h, 01h, 00h, 23h, 27h, 04h +450F:0CFF  27 1E 00 28 23 01                    db       27h, 1Eh, 00h, 28h, 23h, 01h +450F:0D05  00 23 27 04 27 1E                    db       00h, 23h, 27h, 04h, 27h, 1Eh +450F:0D0B  00 23 00 00 21 42                    db       00h, 23h, 00h, 00h, 21h, 42h +450F:0D11  00 28 1F 42 00 23                    db       00h, 28h, 1Fh, 42h, 00h, 23h +450F:0D17  00 00 0A 2B 1B 00                    db       00h, 00h, 0Ah, 2Bh, 1Bh, 00h +450F:0D1D  23 00 00 23 0F 00                    db       23h, 00h, 00h, 23h, 0Fh, 00h +450F:0D23  23 03 0D 27 08 00                    db       23h, 03h, 0Dh, 27h, 08h, 00h +450F:0D29  23 00 00 23 27 04                    db       23h, 00h, 00h, 23h, 27h, 04h +450F:0D2F  27 1E 00 23 01 00                    db       27h, 1Eh, 00h, 23h, 01h, 00h +450F:0D35  21 42 00 28 1F 02                    db       21h, 42h, 00h, 28h, 1Fh, 02h +450F:0D3B  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:0D41  03 00 27 27 00 25                    db       03h, 00h, 27h, 27h, 00h, 25h +450F:0D47  13 0D 23 01 00 21                    db       13h, 0Dh, 23h, 01h, 00h, 21h +450F:0D4D  42 00 28 23 01 00                    db       42h, 00h, 28h, 23h, 01h, 00h +450F:0D53  21 08 00 1F 02 00                    db       21h, 08h, 00h, 1Fh, 02h, 00h +450F:0D59  23 E8 03 0A 2B 09                    db       23h,0E8h, 03h, 0Ah, 2Bh, 09h +450F:0D5F  00 23 75 08 27 10                    db       00h, 23h, 75h, 08h, 27h, 10h +450F:0D65  00 2D 09 00 23 76                    db       00h, 2Dh, 09h, 00h, 23h, 76h +450F:0D6B  08 1F 02 00 27 13                    db       08h, 1Fh, 02h, 00h, 27h, 13h +450F:0D71  00 28 23 44 75 27                    db       00h, 28h, 23h, 44h, 75h, 27h +450F:0D77  20 00 28 23 44 75                    db       20h, 00h, 28h, 23h, 44h, 75h +450F:0D7D  27 23 00 28 1F 02                    db       27h, 23h, 00h, 28h, 1Fh, 02h +450F:0D83  00 23 E8 03 0A 1F                    db       00h, 23h,0E8h, 03h, 0Ah, 1Fh +450F:0D89  26 00 23 08 00 0E                    db       26h, 00h, 23h, 08h, 00h, 0Eh +450F:0D8F  1F 26 00 23 0D 00                    db       1Fh, 26h, 00h, 23h, 0Dh, 00h +450F:0D95  10 1C 1A 2B 06 00                    db       10h, 1Ch, 1Ah, 2Bh, 06h, 00h +450F:0D9B  23 06 00                             db       23h, 06h, 00h +450F:0D9E                       loc_2368: +450F:0D9E  21 08                                and     [bx+si],cx +450F:0DA0  00 1F                                add     [bx],bl +450F:0DA2  02 00                                add     al,[bx+si] +450F:0DA4  23 E9                                and     bp,cx +450F:0DA6  03 0A                                add     cx,[bp+si] +450F:0DA8  1F                                   pop     ds +450F:0DA9  26: 00 23                            add     es:[bp+di],ah +450F:0DAC  08 00                                or      [bx+si],al +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 629 + +450F:0DAE  0E                                   push    cs +450F:0DAF  1F                                   pop     ds +450F:0DB0  26: 00 23                            add     es:[bp+di],ah +450F:0DB3  0D 1000                              or      ax,1000h +450F:0DB6  1C 1A                                sbb     al,1Ah +450F:0DB8  2B 09                                sub     cx,[bx+di] +450F:0DBA  00 23                                add     [bp+di],ah +450F:0DBC  06                                   push    es +450F:0DBD  00 21                                add     [bx+di],ah +450F:0DBF  08 00                                or      [bx+si],al +450F:0DC1  2D 002C                              sub     ax,2Ch +450F:0DC4  1F                                   pop     ds +450F:0DC5  02 00                                add     al,[bx+si] +450F:0DC7  23 E9                                and     bp,cx +450F:0DC9  03 0A                                add     cx,[bp+si] +450F:0DCB  2B 22                                sub     sp,[bp+si] +450F:0DCD  00 23                                add     [bp+di],ah +450F:0DCF  E9 2303                              jmp     $+2306h +450F:0DD2  1B 27 27 28 00 1F                    db       1Bh, 27h, 27h, 28h, 00h, 1Fh +450F:0DD8  08 00 23 01 00 0A                    db       08h, 00h, 23h, 01h, 00h, 0Ah +450F:0DDE  2B 09 00 23 00 00                    db       2Bh, 09h, 00h, 23h, 00h, 00h +450F:0DE4  21 08 00 2D 06 00                    db       21h, 08h, 00h, 2Dh, 06h, 00h +450F:0DEA  23 06 00 21 08 00                    db       23h, 06h, 00h, 21h, 08h, 00h +450F:0DF0  28 23 0E 09 27 10                    db       28h, 23h, 0Eh, 09h, 27h, 10h +450F:0DF6  00 23 01 00 21 08                    db       00h, 23h, 01h, 00h, 21h, 08h +450F:0DFC  00 28 23 8A 01 27                    db       00h, 28h, 23h, 8Ah, 01h, 27h +450F:0E02  10 00 23 8B 01 27                    db       10h, 00h, 23h, 8Bh, 01h, 27h +450F:0E08  10 00 23 8C 01 27                    db       10h, 00h, 23h, 8Ch, 01h, 27h +450F:0E0E  10 00 23 8D 01 27                    db       10h, 00h, 23h, 8Dh, 01h, 27h +450F:0E14  10 00 23 8E 01 27                    db       10h, 00h, 23h, 8Eh, 01h, 27h +450F:0E1A  10 00 23 8F 01 27                    db       10h, 00h, 23h, 8Fh, 01h, 27h +450F:0E20  10 00 23 01 00 21                    db       10h, 00h, 23h, 01h, 00h, 21h +450F:0E26  96 00 23 01 00 21                    db       96h, 00h, 23h, 01h, 00h, 21h +450F:0E2C  08 00 28 23 01 00                    db       08h, 00h, 28h, 23h, 01h, 00h +450F:0E32  21 08 00 1F 96 00                    db       21h, 08h, 00h, 1Fh, 96h, 00h +450F:0E38  23 00 00 0A 2B 09                    db       23h, 00h, 00h, 0Ah, 2Bh, 09h +450F:0E3E  00 23 55 0C 27 10                    db       00h, 23h, 55h, 0Ch, 27h, 10h +450F:0E44  00 2D 12 00 23 57                    db       00h, 2Dh, 12h, 00h, 23h, 57h +450F:0E4A  0C 27 10 00 23 24                    db       0Ch, 27h, 10h, 00h, 23h, 24h +450F:0E50  04 27 23 00 23 3D                    db       04h, 27h, 23h, 00h, 23h, 3Dh +450F:0E56  75 27 23 00 28 1F                    db       75h, 27h, 23h, 00h, 28h, 1Fh +450F:0E5C  02 00 23 EF 03 0A                    db       02h, 00h, 23h,0EFh, 03h, 0Ah +450F:0E62  2B 09 00 23 00 00                    db       2Bh, 09h, 00h, 23h, 00h, 00h +450F:0E68  21 08 00 2D 22 00                    db       21h, 08h, 00h, 2Dh, 22h, 00h +450F:0E6E  23 22 00 23 EF 03                    db       23h, 22h, 00h, 23h,0EFh, 03h +450F:0E74  27 28 00 1F 08 00                    db       27h, 28h, 00h, 1Fh, 08h, 00h +450F:0E7A  23 01 00 0A 2B 09                    db       23h, 01h, 00h, 0Ah, 2Bh, 09h +450F:0E80  00 23 00 00 21 08                    db       00h, 23h, 00h, 00h, 21h, 08h +450F:0E86  00 2D 06 00 23 06                    db       00h, 2Dh, 06h, 00h, 23h, 06h +450F:0E8C  00 21 08 00 28 1F                    db       00h, 21h, 08h, 00h, 28h, 1Fh +450F:0E92  5E 00 23 00 00 0A                    db       5Eh, 00h, 23h, 00h, 00h, 0Ah +450F:0E98  2B 21 00 23 00 00                    db       2Bh, 21h, 00h, 23h, 00h, 00h +450F:0E9E  23 01 00 23 BD 0E                    db       23h, 01h, 00h, 23h,0BDh, 0Eh +450F:0EA4  27 08 00 23 04 00                    db       27h, 08h, 00h, 23h, 04h, 00h +450F:0EAA  27 03 00 27 29 00                    db       27h, 03h, 00h, 27h, 29h, 00h +450F:0EB0  23 01 00 21 5E 00                    db       23h, 01h, 00h, 21h, 5Eh, 00h +450F:0EB6  23 15 00 21 26 00                    db       23h, 15h, 00h, 21h, 26h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 630 + +450F:0EBC  28 23 26 00 23 EF                    db       28h, 23h, 26h, 00h, 23h,0EFh +450F:0EC2  03 27 28 00 1F 08                    db       03h, 27h, 28h, 00h, 1Fh, 08h +450F:0EC8  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:0ECE  0F 00 23 00 00 23                    db       0Fh, 00h, 23h, 00h, 00h, 23h +450F:0ED4  02 00 23 BD 0E 27                    db       02h, 00h, 23h,0BDh, 0Eh, 27h +450F:0EDA  08 00 2D 12 00 23                    db       08h, 00h, 2Dh, 12h, 00h, 23h +450F:0EE0  29 27 27 2A 00 23                    db       29h, 27h, 27h, 2Ah, 00h, 23h +450F:0EE6  01 00 21 62 00 23                    db       01h, 00h, 21h, 62h, 00h, 23h +450F:0EEC  01 00 21 64 00 28                    db       01h, 00h, 21h, 64h, 00h, 28h +450F:0EF2  1F 26 00 23 15 00                    db       1Fh, 26h, 00h, 23h, 15h, 00h +450F:0EF8  10 2B 10 00 23 0F                    db       10h, 2Bh, 10h, 00h, 23h, 0Fh +450F:0EFE  00 23 00 40 02 23                    db       00h, 23h, 00h, 40h, 02h, 23h +450F:0F04  F4 00 23 06 01 27                    db      0F4h, 00h, 23h, 06h, 01h, 27h +450F:0F0A  19 00 28 1F 26 00                    db       19h, 00h, 28h, 1Fh, 26h, 00h +450F:0F10  23 15 00 10 2B 1E                    db       23h, 15h, 00h, 10h, 2Bh, 1Eh +450F:0F16  00 23 00 00 23 04                    db       00h, 23h, 00h, 00h, 23h, 04h +450F:0F1C  00 23 36 0F 27 08                    db       00h, 23h, 36h, 0Fh, 27h, 08h +450F:0F22  00 23 02 00 27 03                    db       00h, 23h, 02h, 00h, 27h, 03h +450F:0F28  00 23 01 00 27 05                    db       00h, 23h, 01h, 00h, 27h, 05h +450F:0F2E  00 23 17 00 21 26                    db       00h, 23h, 17h, 00h, 21h, 26h +450F:0F34  00 28 23 0F 00 23                    db       00h, 28h, 23h, 0Fh, 00h, 23h +450F:0F3A  EF 03 27 28 00 1F                    db      0EFh, 03h, 27h, 28h, 00h, 1Fh +450F:0F40  08 00 23 00 00 0A                    db       08h, 00h, 23h, 00h, 00h, 0Ah +450F:0F46  2B 0F 00 23 00 00                    db       2Bh, 0Fh, 00h, 23h, 00h, 00h +450F:0F4C  23 02 00 23 36 0F                    db       23h, 02h, 00h, 23h, 36h, 0Fh +450F:0F52  27 08 00 2D 0C 00                    db       27h, 08h, 00h, 2Dh, 0Ch, 00h +450F:0F58  23 00 00 23 04 00                    db       23h, 00h, 00h, 23h, 04h, 00h +450F:0F5E  23 65 0F 27 08 00                    db       23h, 65h, 0Fh, 27h, 08h, 00h +450F:0F64  28 23 29 27 27 2A                    db       28h, 23h, 29h, 27h, 27h, 2Ah +450F:0F6A  00 27 2B 00 28 1F                    db       00h, 27h, 2Bh, 00h, 28h, 1Fh +450F:0F70  62 00 23 00 00 0A                    db       62h, 00h, 23h, 00h, 00h, 0Ah +450F:0F76  2B 09 00 23 2D 00                    db       2Bh, 09h, 00h, 23h, 2Dh, 00h +450F:0F7C  21 08 00 2D 3C 00                    db       21h, 08h, 00h, 2Dh, 3Ch, 00h +450F:0F82  23 00 00 21 62 00                    db       23h, 00h, 00h, 21h, 62h, 00h +450F:0F88  23 01 00 21 64 00                    db       23h, 01h, 00h, 21h, 64h, 00h +450F:0F8E  23 01 00 21 66 00                    db       23h, 01h, 00h, 21h, 66h, 00h +450F:0F94  23 01 00 21 68 00                    db       23h, 01h, 00h, 21h, 68h, 00h +450F:0F9A  23 00 00 21 6A 00                    db       23h, 00h, 00h, 21h, 6Ah, 00h +450F:0FA0  23 01 00 21 6C 00                    db       23h, 01h, 00h, 21h, 6Ch, 00h +450F:0FA6  23 2C 27 27 2C 00                    db       23h, 2Ch, 27h, 27h, 2Ch, 00h +450F:0FAC  23 2A 27 27 2A 00                    db       23h, 2Ah, 27h, 27h, 2Ah, 00h +450F:0FB2  23 2E 27 27 2A 00                    db       23h, 2Eh, 27h, 27h, 2Ah, 00h +450F:0FB8  23 0D 00 27 0D 00                    db       23h, 0Dh, 00h, 27h, 0Dh, 00h +450F:0FBE  28 1F 62 00 23 01                    db       28h, 1Fh, 62h, 00h, 23h, 01h +450F:0FC4  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:0FCA  2D 00 21 08 00 2D                    db       2Dh, 00h, 21h, 08h, 00h, 2Dh +450F:0FD0  12 00 23 01 00 21                    db       12h, 00h, 23h, 01h, 00h, 21h +450F:0FD6  62 00 23 2C 27 27                    db       62h, 00h, 23h, 2Ch, 27h, 27h +450F:0FDC  2A 00 23 0D 00 27                    db       2Ah, 00h, 23h, 0Dh, 00h, 27h +450F:0FE2  0D 00 28 1F 64 00                    db       0Dh, 00h, 28h, 1Fh, 64h, 00h +450F:0FE8  23 00 00 0A 2B 09                    db       23h, 00h, 00h, 0Ah, 2Bh, 09h +450F:0FEE  00 23 2D 00 21 08                    db       00h, 23h, 2Dh, 00h, 21h, 08h +450F:0FF4  00 2D 3C 00 23 01                    db       00h, 2Dh, 3Ch, 00h, 23h, 01h +450F:0FFA  00 21 62 00 23 00                    db       00h, 21h, 62h, 00h, 23h, 00h +450F:1000  00 21 64 00 23 01                    db       00h, 21h, 64h, 00h, 23h, 01h +450F:1006  00 21 6A 00 23 00                    db       00h, 21h, 6Ah, 00h, 23h, 00h +450F:100C  00 21 6C 00 23 00                    db       00h, 21h, 6Ch, 00h, 23h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 631 + +450F:1012  00 21 66 00 23 01                    db       00h, 21h, 66h, 00h, 23h, 01h +450F:1018  00 21 68 00 23 2A                    db       00h, 21h, 68h, 00h, 23h, 2Ah +450F:101E  27 27 2C 00 23 2C                    db       27h, 27h, 2Ch, 00h, 23h, 2Ch +450F:1024  27 27 2A 00 23 2E                    db       27h, 27h, 2Ah, 00h, 23h, 2Eh +450F:102A  27 27 2A 00 23 0D                    db       27h, 27h, 2Ah, 00h, 23h, 0Dh +450F:1030  00 27 0D 00 28 1F                    db       00h, 27h, 0Dh, 00h, 28h, 1Fh +450F:1036  64 00 23 01 00 0A                    db       64h, 00h, 23h, 01h, 00h, 0Ah +450F:103C  2B 09 00 23 2D 00                    db       2Bh, 09h, 00h, 23h, 2Dh, 00h +450F:1042  21 08 00 2D 12 00                    db       21h, 08h, 00h, 2Dh, 12h, 00h +450F:1048  23 01 00 21 64 00                    db       23h, 01h, 00h, 21h, 64h, 00h +450F:104E  23 2A 27 27 2A 00                    db       23h, 2Ah, 27h, 27h, 2Ah, 00h +450F:1054  23 0D 00 27 0D 00                    db       23h, 0Dh, 00h, 27h, 0Dh, 00h +450F:105A  28 1F 66 00 23 00                    db       28h, 1Fh, 66h, 00h, 23h, 00h +450F:1060  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:1066  2D 00 21 08 00 2D                    db       2Dh, 00h, 21h, 08h, 00h, 2Dh +450F:106C  3C 00 23 01 00 21                    db       3Ch, 00h, 23h, 01h, 00h, 21h +450F:1072  62 00 23 00 00 21                    db       62h, 00h, 23h, 00h, 00h, 21h +450F:1078  64 00 23 00 00 21                    db       64h, 00h, 23h, 00h, 00h, 21h +450F:107E  66 00 23 01 00 21                    db       66h, 00h, 23h, 01h, 00h, 21h +450F:1084  68 00 23 01 00 21                    db       68h, 00h, 23h, 01h, 00h, 21h +450F:108A  6A 00 23 00 00 21                    db       6Ah, 00h, 23h, 00h, 00h, 21h +450F:1090  6C 00 23 2A 27 27                    db       6Ch, 00h, 23h, 2Ah, 27h, 27h +450F:1096  2C 00 23 2C 27 27                    db       2Ch, 00h, 23h, 2Ch, 27h, 27h +450F:109C  2A 00 23 2E 27 27                    db       2Ah, 00h, 23h, 2Eh, 27h, 27h +450F:10A2  2A 00 23 0D 00 27                    db       2Ah, 00h, 23h, 0Dh, 00h, 27h +450F:10A8  0D 00 28 1F 66 00                    db       0Dh, 00h, 28h, 1Fh, 66h, 00h +450F:10AE  23 01 00 0A 2B 09                    db       23h, 01h, 00h, 0Ah, 2Bh, 09h +450F:10B4  00 23 2D 00 21 08                    db       00h, 23h, 2Dh, 00h, 21h, 08h +450F:10BA  00 2D 12 00 23 01                    db       00h, 2Dh, 12h, 00h, 23h, 01h +450F:10C0  00 21 66 00 23 2A                    db       00h, 21h, 66h, 00h, 23h, 2Ah +450F:10C6  27 27 2A 00 23 0D                    db       27h, 27h, 2Ah, 00h, 23h, 0Dh +450F:10CC  00 27 0D 00 28 1F                    db       00h, 27h, 0Dh, 00h, 28h, 1Fh +450F:10D2  68 00 23 00 00 0A                    db       68h, 00h, 23h, 00h, 00h, 0Ah +450F:10D8  2B 09 00 23 2D 00                    db       2Bh, 09h, 00h, 23h, 2Dh, 00h +450F:10DE  21 08 00 2D 3C 00                    db       21h, 08h, 00h, 2Dh, 3Ch, 00h +450F:10E4  23 01 00 21 62 00                    db       23h, 01h, 00h, 21h, 62h, 00h +450F:10EA  23 01 00 21 64 00                    db       23h, 01h, 00h, 21h, 64h, 00h +450F:10F0  23 01 00 21 66 00                    db       23h, 01h, 00h, 21h, 66h, 00h +450F:10F6  23 00 00 21 68 00                    db       23h, 00h, 00h, 21h, 68h, 00h +450F:10FC  23 01 00 21 6A 00                    db       23h, 01h, 00h, 21h, 6Ah, 00h +450F:1102  23 01 00 21 6C 00                    db       23h, 01h, 00h, 21h, 6Ch, 00h +450F:1108  23 2E 27 27 2C 00                    db       23h, 2Eh, 27h, 27h, 2Ch, 00h +450F:110E  23 2C 27 27 2A 00                    db       23h, 2Ch, 27h, 27h, 2Ah, 00h +450F:1114  23 2A 27 27 2A 00                    db       23h, 2Ah, 27h, 27h, 2Ah, 00h +450F:111A  23 0D 00 27 0D 00                    db       23h, 0Dh, 00h, 27h, 0Dh, 00h +450F:1120  28 1F 68 00 23 01                    db       28h, 1Fh, 68h, 00h, 23h, 01h +450F:1126  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:112C  2D 00 21 08 00 2D                    db       2Dh, 00h, 21h, 08h, 00h, 2Dh +450F:1132  12 00 23 01 00 21                    db       12h, 00h, 23h, 01h, 00h, 21h +450F:1138  68 00 23 2E 27 27                    db       68h, 00h, 23h, 2Eh, 27h, 27h +450F:113E  2A 00 23 0D 00 27                    db       2Ah, 00h, 23h, 0Dh, 00h, 27h +450F:1144  0D 00 28 1F 6A 00                    db       0Dh, 00h, 28h, 1Fh, 6Ah, 00h +450F:114A  23 00 00 0A 2B 09                    db       23h, 00h, 00h, 0Ah, 2Bh, 09h +450F:1150  00 23 2D 00 21 08                    db       00h, 23h, 2Dh, 00h, 21h, 08h +450F:1156  00 2D 3C 00 23 00                    db       00h, 2Dh, 3Ch, 00h, 23h, 00h +450F:115C  00 21 62 00 23 01                    db       00h, 21h, 62h, 00h, 23h, 01h +450F:1162  00 21 64 00 23 01                    db       00h, 21h, 64h, 00h, 23h, 01h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 632 + +450F:1168  00 21 66 00 23 01                    db       00h, 21h, 66h, 00h, 23h, 01h +450F:116E  00 21 68 00 23 00                    db       00h, 21h, 68h, 00h, 23h, 00h +450F:1174  00 21 6A 00 23 01                    db       00h, 21h, 6Ah, 00h, 23h, 01h +450F:117A  00 21 6C 00 23 2C                    db       00h, 21h, 6Ch, 00h, 23h, 2Ch +450F:1180  27 27 2C 00 23 2A                    db       27h, 27h, 2Ch, 00h, 23h, 2Ah +450F:1186  27 27 2A 00 23 2E                    db       27h, 27h, 2Ah, 00h, 23h, 2Eh +450F:118C  27 27 2A 00 23 0D                    db       27h, 27h, 2Ah, 00h, 23h, 0Dh +450F:1192  00 27 0D 00 28 1F                    db       00h, 27h, 0Dh, 00h, 28h, 1Fh +450F:1198  6A 00 23 01 00 0A                    db       6Ah, 00h, 23h, 01h, 00h, 0Ah +450F:119E  2B 09 00 23 2D 00                    db       2Bh, 09h, 00h, 23h, 2Dh, 00h +450F:11A4  21 08 00 2D 12 00                    db       21h, 08h, 00h, 2Dh, 12h, 00h +450F:11AA  23 01 00 21 6A 00                    db       23h, 01h, 00h, 21h, 6Ah, 00h +450F:11B0  23 2C 27 27 2A 00                    db       23h, 2Ch, 27h, 27h, 2Ah, 00h +450F:11B6  23 0D 00 27 0D 00                    db       23h, 0Dh, 00h, 27h, 0Dh, 00h +450F:11BC  28 1F 6C 00 23 00                    db       28h, 1Fh, 6Ch, 00h, 23h, 00h +450F:11C2  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:11C8  2D 00 21 08 00 2D                    db       2Dh, 00h, 21h, 08h, 00h, 2Dh +450F:11CE  36 00 23 01 00 21                    db       36h, 00h, 23h, 01h, 00h, 21h +450F:11D4  62 00 23 00 00 21                    db       62h, 00h, 23h, 00h, 00h, 21h +450F:11DA  66 00 23 01 00 21                    db       66h, 00h, 23h, 01h, 00h, 21h +450F:11E0  68 00 23 01 00 21                    db       68h, 00h, 23h, 01h, 00h, 21h +450F:11E6  6A 00 23 00 00 21                    db       6Ah, 00h, 23h, 00h, 00h, 21h +450F:11EC  6C 00 23 2A 27 27                    db       6Ch, 00h, 23h, 2Ah, 27h, 27h +450F:11F2  2C 00 23 2C 27 27                    db       2Ch, 00h, 23h, 2Ch, 27h, 27h +450F:11F8  2A 00 23 2E 27 27                    db       2Ah, 00h, 23h, 2Eh, 27h, 27h +450F:11FE  2A 00 23 0D 00 27                    db       2Ah, 00h, 23h, 0Dh, 00h, 27h +450F:1204  0D 00 28 1F 6C 00                    db       0Dh, 00h, 28h, 1Fh, 6Ch, 00h +450F:120A  23 01 00 0A 2B 09                    db       23h, 01h, 00h, 0Ah, 2Bh, 09h +450F:1210  00 23 2D 00 21 08                    db       00h, 23h, 2Dh, 00h, 21h, 08h +450F:1216  00 2D 12 00 23 01                    db       00h, 2Dh, 12h, 00h, 23h, 01h +450F:121C  00 21 6C 00 23 2A                    db       00h, 21h, 6Ch, 00h, 23h, 2Ah +450F:1222  27 27 2A 00 23 0D                    db       27h, 27h, 2Ah, 00h, 23h, 0Dh +450F:1228  00 27 0D 00 28 1F                    db       00h, 27h, 0Dh, 00h, 28h, 1Fh +450F:122E  04 00 23 28 27 0A                    db       04h, 00h, 23h, 28h, 27h, 0Ah +450F:1234  2B 28 00 1F 70 00                    db       2Bh, 28h, 00h, 1Fh, 70h, 00h +450F:123A  23 00 00 0A 2B 06                    db       23h, 00h, 00h, 0Ah, 2Bh, 06h +450F:1240  00 23 01 00 21 72                    db       00h, 23h, 01h, 00h, 21h, 72h +450F:1246  00 27 1C 00 23 28                    db       00h, 27h, 1Ch, 00h, 23h, 28h +450F:124C  27 27 06 00 23 FA                    db       27h, 27h, 06h, 00h, 23h,0FAh +450F:1252  09 27 10 00 23 00                    db       09h, 27h, 10h, 00h, 23h, 00h +450F:1258  00 21 08 00 2D 06                    db       00h, 21h, 08h, 00h, 2Dh, 06h +450F:125E  00 23 11 00 21 08                    db       00h, 23h, 11h, 00h, 21h, 08h +450F:1264  00 28 1F 04 00 23                    db       00h, 28h, 1Fh, 04h, 00h, 23h +450F:126A  13 27 0A 2B 38 00                    db       13h, 27h, 0Ah, 2Bh, 38h, 00h +450F:1270  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:1276  0A 2B 06 00 23 5F                    db       0Ah, 2Bh, 06h, 00h, 23h, 5Fh +450F:127C  01 27 10 00 23 0C                    db       01h, 27h, 10h, 00h, 23h, 0Ch +450F:1282  04 27 06 00 23 2B                    db       04h, 27h, 06h, 00h, 23h, 2Bh +450F:1288  01 23 12 04 27 0B                    db       01h, 23h, 12h, 04h, 27h, 0Bh +450F:128E  00 1F 1E 00 23 03                    db       00h, 1Fh, 1Eh, 00h, 23h, 03h +450F:1294  00 0C 2B 0C 00 23                    db       00h, 0Ch, 2Bh, 0Ch, 00h, 23h +450F:129A  67 01 23 E8 03 23                    db       67h, 01h, 23h,0E8h, 03h, 23h +450F:12A0  12 04 27 1D 00 2D                    db       12h, 04h, 27h, 1Dh, 00h, 2Dh +450F:12A6  06 00 23 11 00                       db       06h, 00h, 23h, 11h, 00h +450F:12AB  21 08 00                             db      '!', 8, 0 +450F:12AE  28 23 31 75 27 23                    db      '(#1u', 27h, '#', 0 +450F:12B4  00 +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 633 + +450F:12B5  28 23 4D 75 27 23                    db      '(#Mu', 27h, '#', 0 +450F:12BB  00 +450F:12BC  28 23 35 27 27 23                    db      '(#5', 27h, 27h, '#', 0 +450F:12C2  00 +450F:12C3  28 23 3C 75 27 23                    db      '(#<u', 27h, '#', 0 +450F:12C9  00 +450F:12CA  28 23 0C                             db      '(#', 0Ch +450F:12CD  04 27 23 00 28 1F                    db       04h, 27h, 23h, 00h, 28h, 1Fh +450F:12D3  24 00 23 01 00 0A                    db       24h, 00h, 23h, 01h, 00h, 0Ah +450F:12D9  2B 0C 00 23 D7 00                    db       2Bh, 0Ch, 00h, 23h,0D7h, 00h +450F:12DF  27 10 00 23 01 00                    db       27h, 10h, 00h, 23h, 01h, 00h +450F:12E5  21 08 00 28 23 70                    db       21h, 08h, 00h, 28h, 23h, 70h +450F:12EB  01 1F 02 00 27 13                    db       01h, 1Fh, 02h, 00h, 27h, 13h +450F:12F1  00 23 01 00 21 16                    db       00h, 23h, 01h, 00h, 21h, 16h +450F:12F7  00 28 23 90 0C 21                    db       00h, 28h, 23h, 90h, 0Ch, 21h +450F:12FD  A0 00 1F 04 00 23                    db      0A0h, 00h, 1Fh, 04h, 00h, 23h +450F:1303  EA 03 0A 2B 06 00                    db      0EAh, 03h, 0Ah, 2Bh, 06h, 00h +450F:1309  23 6F 00 21 A0 00                    db       23h, 6Fh, 00h, 21h,0A0h, 00h +450F:130F  1F 04 00 23 EF 03                    db       1Fh, 04h, 00h, 23h,0EFh, 03h +450F:1315  0A 2B 06 00 23 91                    db       0Ah, 2Bh, 06h, 00h, 23h, 91h +450F:131B  0C 21 A0 00 1F 04                    db       0Ch, 21h,0A0h, 00h, 1Fh, 04h +450F:1321  00 23 F1 03 0A 2B                    db       00h, 23h,0F1h, 03h, 0Ah, 2Bh +450F:1327  06 00 23 92 0C 21                    db       06h, 00h, 23h, 92h, 0Ch, 21h +450F:132D  A0 00 1F 04 00 23                    db      0A0h, 00h, 1Fh, 04h, 00h, 23h +450F:1333  EE 03 0A 1F 04 00                    db      0EEh, 03h, 0Ah, 1Fh, 04h, 00h +450F:1339  23 F0 03 0A 1C 2B                    db       23h,0F0h, 03h, 0Ah, 1Ch, 2Bh +450F:133F  06 00 23 93 0C 21                    db       06h, 00h, 23h, 93h, 0Ch, 21h +450F:1345  A0 00 1F A0 00 1F                    db      0A0h, 00h, 1Fh,0A0h, 00h, 1Fh +450F:134B  04 00 1F 02 00 27                    db       04h, 00h, 1Fh, 02h, 00h, 27h +450F:1351  1F 00 28 23 83 0C                    db       1Fh, 00h, 28h, 23h, 83h, 0Ch +450F:1357  21 A0 00 1F 04 00                    db       21h,0A0h, 00h, 1Fh, 04h, 00h +450F:135D  23 EF 03 0A 2B 06                    db       23h,0EFh, 03h, 0Ah, 2Bh, 06h +450F:1363  00 23 85 0C 21 A0                    db       00h, 23h, 85h, 0Ch, 21h,0A0h +450F:1369  00 1F 04 00 23 F1                    db       00h, 1Fh, 04h, 00h, 23h,0F1h +450F:136F  03 0A 2B 06 00 23                    db       03h, 0Ah, 2Bh, 06h, 00h, 23h +450F:1375  86 0C 21 A0 00 1F                    db       86h, 0Ch, 21h,0A0h, 00h, 1Fh +450F:137B  04 00 23 EE 03 0A                    db       04h, 00h, 23h,0EEh, 03h, 0Ah +450F:1381  1F 04 00 23 F0 03                    db       1Fh, 04h, 00h, 23h,0F0h, 03h +450F:1387  0A 1C 2B 06 00 23                    db       0Ah, 1Ch, 2Bh, 06h, 00h, 23h +450F:138D  84 0C 21 A0 00 1F                    db       84h, 0Ch, 21h,0A0h, 00h, 1Fh +450F:1393  A0 00 1F 04 00 1F                    db      0A0h, 00h, 1Fh, 04h, 00h, 1Fh +450F:1399  02 00 27 1F 00 28                    db       02h, 00h, 27h, 1Fh, 00h, 28h +450F:139F  23 87 0C 21 A0 00                    db       23h, 87h, 0Ch, 21h,0A0h, 00h +450F:13A5  1F 04 00 23 F1 03                    db       1Fh, 04h, 00h, 23h,0F1h, 03h +450F:13AB  0A 2B 06 00 23 89                    db       0Ah, 2Bh, 06h, 00h, 23h, 89h +450F:13B1  0C 21 A0 00 1F 04                    db       0Ch, 21h,0A0h, 00h, 1Fh, 04h +450F:13B7  00 23 EE 03 0A 1F                    db       00h, 23h,0EEh, 03h, 0Ah, 1Fh +450F:13BD  04 00 23 F0 03 0A                    db       04h, 00h, 23h,0F0h, 03h, 0Ah +450F:13C3  1C 2B 06 00 23 88                    db       1Ch, 2Bh, 06h, 00h, 23h, 88h +450F:13C9  0C 21 A0 00 1F A0                    db       0Ch, 21h,0A0h, 00h, 1Fh,0A0h +450F:13CF  00 1F 04 00 1F 02                    db       00h, 1Fh, 04h, 00h, 1Fh, 02h +450F:13D5  00 27 1F 00 28 23                    db       00h, 27h, 1Fh, 00h, 28h, 23h +450F:13DB  8F 0C 21 A0 00 1F                    db       8Fh, 0Ch, 21h,0A0h, 00h, 1Fh +450F:13E1  04 00 23 EF 03 0A                    db       04h, 00h, 23h,0EFh, 03h, 0Ah +450F:13E7  1F 04 00 1C 23 EC                    db       1Fh, 04h, 00h, 1Ch, 23h,0ECh +450F:13ED  03 0A 2B 06 00 23                    db       03h, 0Ah, 2Bh, 06h, 00h, 23h +450F:13F3  8E 0C 21 A0 00 1F                    db       8Eh, 0Ch, 21h,0A0h, 00h, 1Fh +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 634 + +450F:13F9  04 00 23 F1 03 0A                    db       04h, 00h, 23h,0F1h, 03h, 0Ah +450F:13FF  2B 06 00 23 8D 0C                    db       2Bh, 06h, 00h, 23h, 8Dh, 0Ch +450F:1405  21 A0 00 1F 04 00                    db       21h,0A0h, 00h, 1Fh, 04h, 00h +450F:140B  23 EE 03 0A 1F 04                    db       23h,0EEh, 03h, 0Ah, 1Fh, 04h +450F:1411  00 23 F0 03 0A 1C                    db       00h, 23h,0F0h, 03h, 0Ah, 1Ch +450F:1417  2B 06 00 23 84 0C                    db       2Bh, 06h, 00h, 23h, 84h, 0Ch +450F:141D  21 A0 00 1F A0 00                    db       21h,0A0h, 00h, 1Fh,0A0h, 00h +450F:1423  1F 04 00 1F 02 00                    db       1Fh, 04h, 00h, 1Fh, 02h, 00h +450F:1429  27 1F 00 28 23 8C                    db       27h, 1Fh, 00h, 28h, 23h, 8Ch +450F:142F  0C 21 A0 00 1F 04                    db       0Ch, 21h,0A0h, 00h, 1Fh, 04h +450F:1435  00 23 EC 03 0A 2B                    db       00h, 23h,0ECh, 03h, 0Ah, 2Bh +450F:143B  06 00 23 8A 0C 21                    db       06h, 00h, 23h, 8Ah, 0Ch, 21h +450F:1441  A0 00 1F 04 00 23                    db      0A0h, 00h, 1Fh, 04h, 00h, 23h +450F:1447  E8 03 0A 2B 06 00                    db      0E8h, 03h, 0Ah, 2Bh, 06h, 00h +450F:144D  23 8B 0C 21 A0 00                    db       23h, 8Bh, 0Ch, 21h,0A0h, 00h +450F:1453  1F 04 00 23 F1 03                    db       1Fh, 04h, 00h, 23h,0F1h, 03h +450F:1459  0A 2B 06 00 23 8D                    db       0Ah, 2Bh, 06h, 00h, 23h, 8Dh +450F:145F  0C 21 A0 00 1F 04                    db       0Ch, 21h,0A0h, 00h, 1Fh, 04h +450F:1465  00 23 EE 03 0A 1F                    db       00h, 23h,0EEh, 03h, 0Ah, 1Fh +450F:146B  04 00 23 F0 03 0A                    db       04h, 00h, 23h,0F0h, 03h, 0Ah +450F:1471  1C 2B 06 00 23 84                    db       1Ch, 2Bh, 06h, 00h, 23h, 84h +450F:1477  0C 21 A0 00 1F A0                    db       0Ch, 21h,0A0h, 00h, 1Fh,0A0h +450F:147D  00 1F 04 00 1F 02                    db       00h, 1Fh, 04h, 00h, 1Fh, 02h +450F:1483  00 27 1F 00 28 23                    db       00h, 27h, 1Fh, 00h, 28h, 23h +450F:1489  F6 0F 21 A0 00 1F                    db      0F6h, 0Fh, 21h,0A0h, 00h, 1Fh +450F:148F  04 00 23 E8 03 0A                    db       04h, 00h, 23h,0E8h, 03h, 0Ah +450F:1495  2B 06 00 23 F4 0F                    db       2Bh, 06h, 00h, 23h,0F4h, 0Fh +450F:149B  21 A0 00 1F A0 00                    db       21h,0A0h, 00h, 1Fh,0A0h, 00h +450F:14A1  1F 04 00 1F 02 00                    db       1Fh, 04h, 00h, 1Fh, 02h, 00h +450F:14A7  27 1F 00 28 1F 04                    db       27h, 1Fh, 00h, 28h, 1Fh, 04h +450F:14AD  00 23 F2 03 0A 2B                    db       00h, 23h,0F2h, 03h, 0Ah, 2Bh +450F:14B3  0C 00 23 F5 0F 1F                    db       0Ch, 00h, 23h,0F5h, 0Fh, 1Fh +450F:14B9  04 00 1F 02 00 27                    db       04h, 00h, 1Fh, 02h, 00h, 27h +450F:14BF  1F 00 28 1F 04 00                    db       1Fh, 00h, 28h, 1Fh, 04h, 00h +450F:14C5  23 E8 03 0C 2B 0C                    db       23h,0E8h, 03h, 0Ch, 2Bh, 0Ch +450F:14CB  00 23 6E 00 1F 04                    db       00h, 23h, 6Eh, 00h, 1Fh, 04h +450F:14D1  00 1F 02 00 27 1F                    db       00h, 1Fh, 02h, 00h, 27h, 1Fh +450F:14D7  00 28 1F 26 00 23                    db       00h, 28h, 1Fh, 26h, 00h, 23h +450F:14DD  06 00 0A 1F 04 00                    db       06h, 00h, 0Ah, 1Fh, 04h, 00h +450F:14E3  23 E8 03 0A 1A 2B                    db       23h,0E8h, 03h, 0Ah, 1Ah, 2Bh +450F:14E9  0F 00 23 B7 0C 1F                    db       0Fh, 00h, 23h,0B7h, 0Ch, 1Fh +450F:14EF  04 00 1F 02 00 27                    db       04h, 00h, 1Fh, 02h, 00h, 27h +450F:14F5  1F 00 2D 0C 00 23                    db       1Fh, 00h, 2Dh, 0Ch, 00h, 23h +450F:14FB  95 0C 1F 04 00 1F                    db       95h, 0Ch, 1Fh, 04h, 00h, 1Fh +450F:1501  02 00 27 1F 00 28                    db       02h, 00h, 27h, 1Fh, 00h, 28h +450F:1507  28 23 3D 01 1F 04                    db       28h, 23h, 3Dh, 01h, 1Fh, 04h +450F:150D  00 1F 02 00 27 1F                    db       00h, 1Fh, 02h, 00h, 27h, 1Fh +450F:1513  00 28 1F 26 00 23                    db       00h, 28h, 1Fh, 26h, 00h, 23h +450F:1519  18 00 0E 1F 26 00                    db       18h, 00h, 0Eh, 1Fh, 26h, 00h +450F:151F  23 06 00 0C 1A 2B                    db       23h, 06h, 00h, 0Ch, 1Ah, 2Bh +450F:1525  15 00 23 01 00 21                    db       15h, 00h, 23h, 01h, 00h, 21h +450F:152B  08 00 23 A0 0A 1F                    db       08h, 00h, 23h,0A0h, 0Ah, 1Fh +450F:1531  04 00 1F 02 00 27                    db       04h, 00h, 1Fh, 02h, 00h, 27h +450F:1537  1D 00 2D 06 00 1F                    db       1Dh, 00h, 2Dh, 06h, 00h, 1Fh +450F:153D  02 00 27 2D 00 28                    db       02h, 00h, 27h, 2Dh, 00h, 28h +450F:1543  1F 14 00 23 00 00                    db       1Fh, 14h, 00h, 23h, 00h, 00h +450F:1549  0C 2B 06 00 23 01                    db       0Ch, 2Bh, 06h, 00h, 23h, 01h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 635 + +450F:154F  00 21 08 00 28 1F                    db       00h, 21h, 08h, 00h, 28h, 1Fh +450F:1555  02 00 27 2D 00 28                    db       02h, 00h, 27h, 2Dh, 00h, 28h +450F:155B  1F 26 00 23 13 00                    db       1Fh, 26h, 00h, 23h, 13h, 00h +450F:1561  0A 2B 0F 00 23 AB                    db       0Ah, 2Bh, 0Fh, 00h, 23h,0ABh +450F:1567  09 1F 04 00 23 EC                    db       09h, 1Fh, 04h, 00h, 23h,0ECh +450F:156D  03 27 1D 00 2D 06                    db       03h, 27h, 1Dh, 00h, 2Dh, 06h +450F:1573  00 1F 02 00 27 2D                    db       00h, 1Fh, 02h, 00h, 27h, 2Dh +450F:1579  00 28 27 2E 00 1F                    db       00h, 28h, 27h, 2Eh, 00h, 1Fh +450F:157F  26 00 23 01 00 0A                    db       26h, 00h, 23h, 01h, 00h, 0Ah +450F:1585  2B 0F 00 23 D1 0F                    db       2Bh, 0Fh, 00h, 23h,0D1h, 0Fh +450F:158B  1F 04 00 23 F2 03                    db       1Fh, 04h, 00h, 23h,0F2h, 03h +450F:1591  27 1D 00 2D 10 00                    db       27h, 1Dh, 00h, 2Dh, 10h, 00h +450F:1597  1F 26 00 23 04 00                    db       1Fh, 26h, 00h, 23h, 04h, 00h +450F:159D  0C 2B 06 00 1F 02                    db       0Ch, 2Bh, 06h, 00h, 1Fh, 02h +450F:15A3  00 27 2D 00 28 1F                    db       00h, 27h, 2Dh, 00h, 28h, 1Fh +450F:15A9  00 00 23 24 00 0A                    db       00h, 00h, 23h, 24h, 00h, 0Ah +450F:15AF  2B 09 00 1F 02 00                    db       2Bh, 09h, 00h, 1Fh, 02h, 00h +450F:15B5  27 2D 00 2D 06 00                    db       27h, 2Dh, 00h, 2Dh, 06h, 00h +450F:15BB  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:15C1  28 1F 18 00 23 01                    db       28h, 1Fh, 18h, 00h, 23h, 01h +450F:15C7  00 02 21 18 00 23                    db       00h, 02h, 21h, 18h, 00h, 23h +450F:15CD  01 00 21 08 00 1F                    db       01h, 00h, 21h, 08h, 00h, 1Fh +450F:15D3  18 00 23 01 00 0A                    db       18h, 00h, 23h, 01h, 00h, 0Ah +450F:15D9  2B 0F 00 23 8D 00                    db       2Bh, 0Fh, 00h, 23h, 8Dh, 00h +450F:15DF  1F 04 00 1F 02 00                    db       1Fh, 04h, 00h, 1Fh, 02h, 00h +450F:15E5  27 1D 00 2D 16 00                    db       27h, 1Dh, 00h, 2Dh, 16h, 00h +450F:15EB  1F 18 00 23 02 00                    db       1Fh, 18h, 00h, 23h, 02h, 00h +450F:15F1  0A 2B 0C 00 23 8E                    db       0Ah, 2Bh, 0Ch, 00h, 23h, 8Eh +450F:15F7  00 1F 04 00 1F 02                    db       00h, 1Fh, 04h, 00h, 1Fh, 02h +450F:15FD  00 27 1D 00 28 23                    db       00h, 27h, 1Dh, 00h, 28h, 23h +450F:1603  DE 0F 1F 04 00 1F                    db      0DEh, 0Fh, 1Fh, 04h, 00h, 1Fh +450F:1609  02 00 27 1D 00 23                    db       02h, 00h, 27h, 1Dh, 00h, 23h +450F:160F  01 00 21 08 00 28                    db       01h, 00h, 21h, 08h, 00h, 28h +450F:1615  1F 04 00 23 E8 03                    db       1Fh, 04h, 00h, 23h,0E8h, 03h +450F:161B  0A 2B 25 00 1F 26                    db       0Ah, 2Bh, 25h, 00h, 1Fh, 26h +450F:1621  00 23 06 00 0A 2B                    db       00h, 23h, 06h, 00h, 0Ah, 2Bh +450F:1627  1B 00 23 01 00 21                    db       1Bh, 00h, 23h, 01h, 00h, 21h +450F:162D  08 00 23 E8 03 1F                    db       08h, 00h, 23h,0E8h, 03h, 1Fh +450F:1633  02 00 23 2C 00 27                    db       02h, 00h, 23h, 2Ch, 00h, 27h +450F:1639  2F 00 23 ED 03 23                    db       2Fh, 00h, 23h,0EDh, 03h, 23h +450F:163F  05 00 27 30 00 1F                    db       05h, 00h, 27h, 30h, 00h, 1Fh +450F:1645  08 00 23 00 00 0A                    db       08h, 00h, 23h, 00h, 00h, 0Ah +450F:164B  2B 06 00 1F 02 00                    db       2Bh, 06h, 00h, 1Fh, 02h, 00h +450F:1651  27 2D 00 28 1F 4A                    db       27h, 2Dh, 00h, 28h, 1Fh, 4Ah +450F:1657  00 23 01 00 0C 2B                    db       00h, 23h, 01h, 00h, 0Ch, 2Bh +450F:165D  31 00 1F 26 00 23                    db       31h, 00h, 1Fh, 26h, 00h, 23h +450F:1663  06 00 0A 2B 1E 00                    db       06h, 00h, 0Ah, 2Bh, 1Eh, 00h +450F:1669  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:166F  23 E8 03 1F 02 00                    db       23h,0E8h, 03h, 1Fh, 02h, 00h +450F:1675  23 2C 00 27 2F 00                    db       23h, 2Ch, 00h, 27h, 2Fh, 00h +450F:167B  23 E9 03 23 04 00                    db       23h,0E9h, 03h, 23h, 04h, 00h +450F:1681  27 30 00 2D 06 00                    db       27h, 30h, 00h, 2Dh, 06h, 00h +450F:1687  1F 02 00 27 2D 00                    db       1Fh, 02h, 00h, 27h, 2Dh, 00h +450F:168D  2D 06 00 23 01 00                    db       2Dh, 06h, 00h, 23h, 01h, 00h +450F:1693  21 08 00 28 1F 26                    db       21h, 08h, 00h, 28h, 1Fh, 26h +450F:1699  00 23 06 00 0A 2B                    db       00h, 23h, 06h, 00h, 0Ah, 2Bh +450F:169F  09 00 23 04 00 23                    db       09h, 00h, 23h, 04h, 00h, 23h +450F:16A5  E9 03 27 31 00 28                    db      0E9h, 03h, 27h, 31h, 00h, 28h +450F:16AB  1F 04 00 23 31 27                    db       1Fh, 04h, 00h, 23h, 31h, 27h +450F:16B1  0A 2B 15 00 23 11                    db       0Ah, 2Bh, 15h, 00h, 23h, 11h +450F:16B7  0C 1F 02 00 1F 06                    db       0Ch, 1Fh, 02h, 00h, 1Fh, 06h +450F:16BD  00 27 1D 00 23 01                    db       00h, 27h, 1Dh, 00h, 23h, 01h +450F:16C3  00 21 08 00 2D 06                    db       00h, 21h, 08h, 00h, 2Dh, 06h +450F:16C9  00 23 24 00 21 08                    db       00h, 23h, 24h, 00h, 21h, 08h +450F:16CF  00 28 1F 04 00 23                    db       00h, 28h, 1Fh, 04h, 00h, 23h +450F:16D5  30 27 0A 2B 15 00                    db       30h, 27h, 0Ah, 2Bh, 15h, 00h +450F:16DB  23 9E 0C 1F 02 00                    db       23h, 9Eh, 0Ch, 1Fh, 02h, 00h +450F:16E1  1F 06 00 27 1D 00                    db       1Fh, 06h, 00h, 27h, 1Dh, 00h +450F:16E7  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:16ED  2D 06 00 23 24 00                    db       2Dh, 06h, 00h, 23h, 24h, 00h +450F:16F3  21 08 00 28 1F 26                    db       21h, 08h, 00h, 28h, 1Fh, 26h +450F:16F9  00 23 06 00 0A 2B                    db       00h, 23h, 06h, 00h, 0Ah, 2Bh +450F:16FF  09 00 23 31 00 21                    db       09h, 00h, 23h, 31h, 00h, 21h +450F:1705  08 00 2D 3E 00 1F                    db       08h, 00h, 2Dh, 3Eh, 00h, 1Fh +450F:170B  04 00 23 31 27 0A                    db       04h, 00h, 23h, 31h, 27h, 0Ah +450F:1711  2B 15 00 23 53 0B                    db       2Bh, 15h, 00h, 23h, 53h, 0Bh +450F:1717  1F 02 00 1F 06 00                    db       1Fh, 02h, 00h, 1Fh, 06h, 00h +450F:171D  27 1D 00 23 01 00                    db       27h, 1Dh, 00h, 23h, 01h, 00h +450F:1723  21 08 00 2D 1F 00                    db       21h, 08h, 00h, 2Dh, 1Fh, 00h +450F:1729  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:172F  0A 2B 0F 00 23 03                    db       0Ah, 2Bh, 0Fh, 00h, 23h, 03h +450F:1735  00 21 0C 00 23 E7                    db       00h, 21h, 0Ch, 00h, 23h,0E7h +450F:173B  03 21 08 00 2D 06                    db       03h, 21h, 08h, 00h, 2Dh, 06h +450F:1741  00 23 24 00 21 08                    db       00h, 23h, 24h, 00h, 21h, 08h +450F:1747  00 28 1F 04 00 23                    db       00h, 28h, 1Fh, 04h, 00h, 23h +450F:174D  31 27 0A 2B 2E 00                    db       31h, 27h, 0Ah, 2Bh, 2Eh, 00h +450F:1753  1F 02 00 23 E8 03                    db       1Fh, 02h, 00h, 23h,0E8h, 03h +450F:1759  0A 2B 0F 00 23 00                    db       0Ah, 2Bh, 0Fh, 00h, 23h, 00h +450F:175F  00 21 0C 00 23 E7                    db       00h, 21h, 0Ch, 00h, 23h,0E7h +450F:1765  03 21 08 00 2D 12                    db       03h, 21h, 08h, 00h, 2Dh, 12h +450F:176B  00 23 43 0B 1F 02                    db       00h, 23h, 43h, 0Bh, 1Fh, 02h +450F:1771  00 23 29 04 27 1D                    db       00h, 23h, 29h, 04h, 27h, 1Dh +450F:1777  00 23 01 00 21 08                    db       00h, 23h, 01h, 00h, 21h, 08h +450F:177D  00 2D 06 00 23 24                    db       00h, 2Dh, 06h, 00h, 23h, 24h +450F:1783  00 21 08 00 28 23                    db       00h, 21h, 08h, 00h, 28h, 23h +450F:1789  24 00 21 08 00 1F                    db       24h, 00h, 21h, 08h, 00h, 1Fh +450F:178F  06 00 23 27 04 0A                    db       06h, 00h, 23h, 27h, 04h, 0Ah +450F:1795  1F 06 00 23 F1 03                    db       1Fh, 06h, 00h, 23h,0F1h, 03h +450F:179B  0A 1C 1F 06 00 23                    db       0Ah, 1Ch, 1Fh, 06h, 00h, 23h +450F:17A1  EC 03 0A 1C 1F 06                    db      0ECh, 03h, 0Ah, 1Ch, 1Fh, 06h +450F:17A7  00 23 36 04 0A 1C                    db       00h, 23h, 36h, 04h, 0Ah, 1Ch +450F:17AD  1F 06 00 23 20 04                    db       1Fh, 06h, 00h, 23h, 20h, 04h +450F:17B3  0A 1C 1F 06 00 23                    db       0Ah, 1Ch, 1Fh, 06h, 00h, 23h +450F:17B9  1F 04 0A 1C 1F 06                    db       1Fh, 04h, 0Ah, 1Ch, 1Fh, 06h +450F:17BF  00 23 EB 03 0A 1C                    db       00h, 23h,0EBh, 03h, 0Ah, 1Ch +450F:17C5  2B 10 00 1F 26 00                    db       2Bh, 10h, 00h, 1Fh, 26h, 00h +450F:17CB  23 06 00 0A 2B 06                    db       23h, 06h, 00h, 0Ah, 2Bh, 06h +450F:17D1  00 23 31 00 21 08                    db       00h, 23h, 31h, 00h, 21h, 08h +450F:17D7  00 28 23 24 00 21                    db       00h, 28h, 23h, 24h, 00h, 21h +450F:17DD  08 00 1F 26 00 23                    db       08h, 00h, 1Fh, 26h, 00h, 23h +450F:17E3  06 00 0A 2B 09 00                    db       06h, 00h, 0Ah, 2Bh, 09h, 00h +450F:17E9  23 31 00 21 08 00                    db       23h, 31h, 00h, 21h, 08h, 00h +450F:17EF  2D 40 00 1F 04 00                    db       2Dh, 40h, 00h, 1Fh, 04h, 00h +450F:17F5  23 1D 27 0A 1F 32                    db       23h, 1Dh, 27h, 0Ah, 1Fh, 32h +450F:17FB  00 23 02 00 0A 1A                    db       00h, 23h, 02h, 00h, 0Ah, 1Ah +450F:1801  2B 2E 00 23 01 00                    db       2Bh, 2Eh, 00h, 23h, 01h, 00h +450F:1807  21 08 00 23 90 0B                    db       21h, 08h, 00h, 23h, 90h, 0Bh +450F:180D  1F 02 00 23 EB 03                    db       1Fh, 02h, 00h, 23h,0EBh, 03h +450F:1813  27 1D 00 23 00 00                    db       27h, 1Dh, 00h, 23h, 00h, 00h +450F:1819  21 32 00 1F 02 00                    db       21h, 32h, 00h, 1Fh, 02h, 00h +450F:181F  23 E8 03 0A 2B 0C                    db       23h,0E8h, 03h, 0Ah, 2Bh, 0Ch +450F:1825  00 23 02 00 21 0C                    db       00h, 23h, 02h, 00h, 21h, 0Ch +450F:182B  00 23 E7 03 21 08                    db       00h, 23h,0E7h, 03h, 21h, 08h +450F:1831  00 28 1F 04 00 23                    db       00h, 28h, 1Fh, 04h, 00h, 23h +450F:1837  1D 27 0A 1F 32 00                    db       1Dh, 27h, 0Ah, 1Fh, 32h, 00h +450F:183D  23 02 00 0A 1A 2B                    db       23h, 02h, 00h, 0Ah, 1Ah, 2Bh +450F:1843  0F 00 23 E7 03 21                    db       0Fh, 00h, 23h,0E7h, 03h, 21h +450F:1849  08 00 23 04 00 21                    db       08h, 00h, 23h, 04h, 00h, 21h +450F:184F  0C 00 2D 4A 00 1F                    db       0Ch, 00h, 2Dh, 4Ah, 00h, 1Fh +450F:1855  04 00 23 38 27 0A                    db       04h, 00h, 23h, 38h, 27h, 0Ah +450F:185B  2B 15 00 23 76 01                    db       2Bh, 15h, 00h, 23h, 76h, 01h +450F:1861  1F                                   db       1Fh +450F:1862                       loc_2370: +450F:1862  02 00                                add     al,[bx+si] +450F:1864  23 E9                                and     bp,cx +450F:1866  03 27                                add     sp,[bx] +450F:1868  1D 2300                              sbb     ax,2300h +450F:186B  01 00                                add     [bx+si],ax +450F:186D  21 08                                and     [bx+si],cx +450F:186F  00 2D                                add     [di],ch +450F:1871  2B 00                                sub     ax,[bx+si] +450F:1873  1F                                   pop     ds +450F:1874  04 00                                add     al,0 +450F:1876  23 37                                and     si,[bx] +450F:1878  27                                   daa                             ; Decimal adjust +450F:1879  0A 2B                                or      ch,[bp+di] +450F:187B  15 2300                              adc     ax,2300h +450F:187E  78 01                                js      loc_2371                ; Jump if sign=1 +450F:1880  1F                                   pop     ds +450F:1881                       loc_2371:                                       ;  xref 450F:187E +450F:1881  02 00                                add     al,[bx+si] +450F:1883  23 E9                                and     bp,cx +450F:1885  03 27                                add     sp,[bx] +450F:1887  1D 2300                              sbb     ax,2300h +450F:188A  01 00                                add     [bx+si],ax +450F:188C  21 08                                and     [bx+si],cx +450F:188E  00 2D                                add     [di],ch +450F:1890  0C 00                                or      al,0 +450F:1892  1F                                   pop     ds +450F:1893  02 00                                add     al,[bx+si] +450F:1895  1F                                   pop     ds +450F:1896  06                                   push    es +450F:1897  00 23                                add     [bp+di],ah +450F:1899  24 00                                and     al,0 +450F:189B  27                                   daa                             ; Decimal adjust +450F:189C  2F                                   das                             ; Decimal adjust +450F:189D  00 28                                add     [bx+si],ch +450F:189F  23 24                                and     sp,[si] +450F:18A1  00 21                                add     [bx+di],ah +450F:18A3  08 00                                or      [bx+si],al +450F:18A5  1F                                   pop     ds +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 638 + +450F:18A6  26: 00 23                            add     es:[bp+di],ah +450F:18A9  06                                   push    es +450F:18AA  00 0A                                add     [bp+si],cl +450F:18AC  2B 09                                sub     cx,[bx+di] +450F:18AE  00 23                                add     [bp+di],ah +450F:18B0  31 00                                xor     [bx+si],ax +450F:18B2  21 08                                and     [bx+si],cx +450F:18B4  00 2D                                add     [di],ch +450F:18B6  4D                                   dec     bp +450F:18B7  00 1F                                add     [bx],bl +450F:18B9  04 00                                add     al,0 +450F:18BB  23 30                                and     si,[bx+si] +450F:18BD  27                                   daa                             ; Decimal adjust +450F:18BE  0A 2B                                or      ch,[bp+di] +450F:18C0  43                                   inc     bx +450F:18C1  00 1F                                add     [bx],bl +450F:18C3  02 00                                add     al,[bx+si] +450F:18C5  23 E8                                and     bp,ax +450F:18C7  03 0A                                add     cx,[bp+si] +450F:18C9  2B 27                                sub     sp,[bx] +450F:18CB  00 23                                add     [bp+di],ah +450F:18CD  E7 03                                out     3,ax                    ; port 3, DMA-1 bas&cnt ch 1 +450F:18CF  21 08                                and     [bx+si],cx +450F:18D1  00 23                                add     [bp+di],ah +450F:18D3  08 00                                or      [bx+si],al +450F:18D5  1F                                   pop     ds +450F:18D6  02 00                                add     al,[bx+si] +450F:18D8  27                                   daa                             ; Decimal adjust +450F:18D9  22 00                                and     al,[bx+si] +450F:18DB  23 31                                and     si,[bx+di] +450F:18DD  27                                   daa                             ; Decimal adjust +450F:18DE  27                                   daa                             ; Decimal adjust +450F:18DF  32 00                                xor     al,[bx+si] +450F:18E1  27                                   daa                             ; Decimal adjust +450F:18E2  1C 00                                sbb     al,0 +450F:18E4  23 30                                and     si,[bx+si] +450F:18E6  27                                   daa                             ; Decimal adjust +450F:18E7  27                                   daa                             ; Decimal adjust +450F:18E8  06                                   push    es +450F:18E9  00 23                                add     [bp+di],ah +450F:18EB  05 2100                              add     ax,2100h +450F:18EE  0C 00                                or      al,0 +450F:18F0  2D 0012                              sub     ax,12h +450F:18F3  23 01                                and     ax,[bx+di] +450F:18F5  00 21                                add     [bx+di],ah +450F:18F7  08 00                                or      [bx+si],al +450F:18F9  23 FC                                and     di,sp +450F:18FB  0B 1F                                or      bx,[bx] +450F:18FD  02 00                                add     al,[bx+si] +450F:18FF  23 36 2704                           and     si,data_1430            ; (450F:2704=28h) +450F:1903  1D 2800                              sbb     ax,2800h +450F:1906  23 46 0B                             and     ax,[bp+0Bh] +450F:1909  27                                   daa                             ; Decimal adjust +450F:190A  10 00                                adc     [bx+si],al +450F:190C  23 92 2110                           and     dx,[bp+si+2110h] +450F:1910  08 00                                or      [bx+si],al +450F:1912  28 23                                sub     [bp+di],ah +450F:1914  01 00                                add     [bx+si],ax +450F:1916  21 08                                and     [bx+si],cx +450F:1918  00 1F                                add     [bx],bl +450F:191A  04 00                                add     al,0 +450F:191C  23 23                                and     sp,[bp+di] +450F:191E  27                                   daa                             ; Decimal adjust +450F:191F  0C 2B                                or      al,2Bh                  ; '+' +450F:1921  79 00                                jns     $+2                     ; delay for I/O +450F:1923  1F                                   pop     ds +450F:1924  04 00                                add     al,0 +450F:1926  23 1D                                and     bx,[di] +450F:1928  27                                   daa                             ; Decimal adjust +450F:1929  0A 2B                                or      ch,[bp+di] +450F:192B  60 00 1F 32 00 23                    db       60h, 00h, 1Fh, 32h, 00h, 23h +450F:1931  03 00 0A 2B 15 00                    db       03h, 00h, 0Ah, 2Bh, 15h, 00h +450F:1937  23 B4 0C 1F 02 00                    db       23h,0B4h, 0Ch, 1Fh, 02h, 00h +450F:193D  1F 06 00 27 1D 00                    db       1Fh, 06h, 00h, 27h, 1Dh, 00h +450F:1943  23 00 00 21 32 00                    db       23h, 00h, 00h, 21h, 32h, 00h +450F:1949  2D 3E 00 1F 32 00                    db       2Dh, 3Eh, 00h, 1Fh, 32h, 00h +450F:194F  23 04 00 0A 2B 0F                    db       23h, 04h, 00h, 0Ah, 2Bh, 0Fh +450F:1955  00 23 B5 0C 1F 02                    db       00h, 23h,0B5h, 0Ch, 1Fh, 02h +450F:195B  00 1F 06 00 27 1D                    db       00h, 1Fh, 06h, 00h, 27h, 1Dh +450F:1961  00 2D 25 00 1F 32                    db       00h, 2Dh, 25h, 00h, 1Fh, 32h +450F:1967  00 23 00 00 0C 2B                    db       00h, 23h, 00h, 00h, 0Ch, 2Bh +450F:196D  0F 00 23 B6 0C 1F                    db       0Fh, 00h, 23h,0B6h, 0Ch, 1Fh +450F:1973  02 00 1F 06 00 27                    db       02h, 00h, 1Fh, 06h, 00h, 27h +450F:1979  1D 00 2D 0C 00 1F                    db       1Dh, 00h, 2Dh, 0Ch, 00h, 1Fh +450F:197F  02 00 1F 06 00 23                    db       02h, 00h, 1Fh, 06h, 00h, 23h +450F:1985  24 00 27 2F 00 2D                    db       24h, 00h, 27h, 2Fh, 00h, 2Dh +450F:198B  0C 00 1F 02 00 1F                    db       0Ch, 00h, 1Fh, 02h, 00h, 1Fh +450F:1991  06 00 23 24 00 27                    db       06h, 00h, 23h, 24h, 00h, 27h +450F:1997  2F 00 2D 5A 00 1F                    db       2Fh, 00h, 2Dh, 5Ah, 00h, 1Fh +450F:199D  02 00 23 E8 03 0A                    db       02h, 00h, 23h,0E8h, 03h, 0Ah +450F:19A3  2B 0F 00 23 01 00                    db       2Bh, 0Fh, 00h, 23h, 01h, 00h +450F:19A9  23 03 00 23 8C 1A                    db       23h, 03h, 00h, 23h, 8Ch, 1Ah +450F:19AF  27 08 00 2D 41 00                    db       27h, 08h, 00h, 2Dh, 41h, 00h +450F:19B5  1F 48 00 23 00 00                    db       1Fh, 48h, 00h, 23h, 00h, 00h +450F:19BB  0A 2B 21 00 23 0A                    db       0Ah, 2Bh, 21h, 00h, 23h, 0Ah +450F:19C1  09 1F 02 00 1F 06                    db       09h, 1Fh, 02h, 00h, 1Fh, 06h +450F:19C7  00 27 1D 00 23 00                    db       00h, 27h, 1Dh, 00h, 23h, 00h +450F:19CD  00 21 08 00 23 0B                    db       00h, 21h, 08h, 00h, 23h, 0Bh +450F:19D3  00 21 26 00 23 01                    db       00h, 21h, 26h, 00h, 23h, 01h +450F:19D9  00 21 48 00 2D 16                    db       00h, 21h, 48h, 00h, 2Dh, 16h +450F:19DF  00 1F 48 00 23 01                    db       00h, 1Fh, 48h, 00h, 23h, 01h +450F:19E5  00 0A 2B 0C 00 1F                    db       00h, 0Ah, 2Bh, 0Ch, 00h, 1Fh +450F:19EB  02 00 1F 06 00 23                    db       02h, 00h, 1Fh, 06h, 00h, 23h +450F:19F1  24 00 27 2F 00 28                    db       24h, 00h, 27h, 2Fh, 00h, 28h +450F:19F7  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:19FD  1F 04 00 23 23 27                    db       1Fh, 04h, 00h, 23h, 23h, 27h +450F:1A03  0C 2B 0F 00 1F 02                    db       0Ch, 2Bh, 0Fh, 00h, 1Fh, 02h +450F:1A09  00 1F 06 00 23 24                    db       00h, 1Fh, 06h, 00h, 23h, 24h +450F:1A0F  00 27 2F 00 2D 24                    db       00h, 27h, 2Fh, 00h, 2Dh, 24h +450F:1A15  00 23 32 09 1F 02                    db       00h, 23h, 32h, 09h, 1Fh, 02h +450F:1A1B  00 1F 06 00 27 1D                    db       00h, 1Fh, 06h, 00h, 27h, 1Dh +450F:1A21  00 23 00 00 21 08                    db       00h, 23h, 00h, 00h, 21h, 08h +450F:1A27  00 23 0C 00 21 26                    db       00h, 23h, 0Ch, 00h, 21h, 26h +450F:1A2D  00 23 01 00 23 08                    db       00h, 23h, 01h, 00h, 23h, 08h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 640 + +450F:1A33  00 23 7F 1A 27 08                    db       00h, 23h, 7Fh, 1Ah, 27h, 08h +450F:1A39  00 28 23 01 00 21                    db       00h, 28h, 23h, 01h, 00h, 21h +450F:1A3F  08 00 1F 04 00 23                    db       08h, 00h, 1Fh, 04h, 00h, 23h +450F:1A45  23 27 0C 2B 0F 00                    db       23h, 27h, 0Ch, 2Bh, 0Fh, 00h +450F:1A4B  1F 02 00 1F 06 00                    db       1Fh, 02h, 00h, 1Fh, 06h, 00h +450F:1A51  23 24 00 27 2F 00                    db       23h, 24h, 00h, 27h, 2Fh, 00h +450F:1A57  2D 24 00 23 3C 09                    db       2Dh, 24h, 00h, 23h, 3Ch, 09h +450F:1A5D  1F 02 00 1F 06 00                    db       1Fh, 02h, 00h, 1Fh, 06h, 00h +450F:1A63  27 1D 00 23 00 00                    db       27h, 1Dh, 00h, 23h, 00h, 00h +450F:1A69  21 08 00 23 0C 00                    db       21h, 08h, 00h, 23h, 0Ch, 00h +450F:1A6F  21 26 00 23 01 00                    db       21h, 26h, 00h, 23h, 01h, 00h +450F:1A75  23 08 00 23 7F 1A                    db       23h, 08h, 00h, 23h, 7Fh, 1Ah +450F:1A7B  27 08 00 28 23 33                    db       27h, 08h, 00h, 28h, 23h, 33h +450F:1A81  09 27 10 00 23 27                    db       09h, 27h, 10h, 00h, 23h, 27h +450F:1A87  27 27 32 00 28 23                    db       27h, 27h, 32h, 00h, 28h, 23h +450F:1A8D  F7 08 27 10 00 28                    db      0F7h, 08h, 27h, 10h, 00h, 28h +450F:1A93  1F 1C 00 23 02 00                    db       1Fh, 1Ch, 00h, 23h, 02h, 00h +450F:1A99  0A 2B 12 00 23 01                    db       0Ah, 2Bh, 12h, 00h, 23h, 01h +450F:1A9F  00 21 08 00 23 01                    db       00h, 21h, 08h, 00h, 23h, 01h +450F:1AA5  00 23 02 00 23 B0                    db       00h, 23h, 02h, 00h, 23h,0B0h +450F:1AAB  1A 27 08 00 28 23                    db       1Ah, 27h, 08h, 00h, 28h, 23h +450F:1AB1  EF 0A 27 10 00 28                    db      0EFh, 0Ah, 27h, 10h, 00h, 28h +450F:1AB7  1F 1E 00 23 03 00                    db       1Fh, 1Eh, 00h, 23h, 03h, 00h +450F:1ABD  0A 2B 12 00 23 01                    db       0Ah, 2Bh, 12h, 00h, 23h, 01h +450F:1AC3  00 21 08 00 23 01                    db       00h, 21h, 08h, 00h, 23h, 01h +450F:1AC9  00 23 02 00 23 85                    db       00h, 23h, 02h, 00h, 23h, 85h +450F:1ACF  1B 27 08 00 28 23                    db       1Bh, 27h, 08h, 00h, 28h, 23h +450F:1AD5  01 00 21 08 00 1F                    db       01h, 00h, 21h, 08h, 00h, 1Fh +450F:1ADB  1E 00 23 03 00 0C                    db       1Eh, 00h, 23h, 03h, 00h, 0Ch +450F:1AE1  2B 83 00 23 01 00                    db       2Bh, 83h, 00h, 23h, 01h, 00h +450F:1AE7  23 12 04 27 1E 00                    db       23h, 12h, 04h, 27h, 1Eh, 00h +450F:1AED  1F 04 00 23 10 27                    db       1Fh, 04h, 00h, 23h, 10h, 27h +450F:1AF3  0A 2B 61 00 1F 24                    db       0Ah, 2Bh, 61h, 00h, 1Fh, 24h +450F:1AF9  00 23 01 00 0A 2B                    db       00h, 23h, 01h, 00h, 0Ah, 2Bh +450F:1AFF  34 00 23 01 00 21                    db       34h, 00h, 23h, 01h, 00h, 21h +450F:1B05  1E 00 23 00 00 21                    db       1Eh, 00h, 23h, 00h, 00h, 21h +450F:1B0B  24 00 1F 02 00 23                    db       24h, 00h, 1Fh, 02h, 00h, 23h +450F:1B11  E8 03 0A 2B 0F 00                    db      0E8h, 03h, 0Ah, 2Bh, 0Fh, 00h +450F:1B17  23 01 00 21 0C 00                    db       23h, 01h, 00h, 21h, 0Ch, 00h +450F:1B1D  23 E7 03 21 08 00                    db       23h,0E7h, 03h, 21h, 08h, 00h +450F:1B23  2D 0C 00 23 FA 00                    db       2Dh, 0Ch, 00h, 23h,0FAh, 00h +450F:1B29  1F 02 00 23 12 04                    db       1Fh, 02h, 00h, 23h, 12h, 04h +450F:1B2F  27 1D 00 2D 20 00                    db       27h, 1Dh, 00h, 2Dh, 20h, 00h +450F:1B35  1F 24 00 23 00 00                    db       1Fh, 24h, 00h, 23h, 00h, 00h +450F:1B3B  0A 2B 16 00 1F 02                    db       0Ah, 2Bh, 16h, 00h, 1Fh, 02h +450F:1B41  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:1B47  0C 00 23 01 00 23                    db       0Ch, 00h, 23h, 01h, 00h, 23h +450F:1B4D  02 00 23 7E 1B 27                    db       02h, 00h, 23h, 7Eh, 1Bh, 27h +450F:1B53  08 00 2D 0C 00 23                    db       08h, 00h, 2Dh, 0Ch, 00h, 23h +450F:1B59  FD 00 23 E8 03 23                    db      0FDh, 00h, 23h,0E8h, 03h, 23h +450F:1B5F  12 04 27 1D 00 2D                    db       12h, 04h, 27h, 1Dh, 00h, 2Dh +450F:1B65  16 00 1F 02 00 23                    db       16h, 00h, 1Fh, 02h, 00h, 23h +450F:1B6B  E8 03 0A 2B 0C 00                    db      0E8h, 03h, 0Ah, 2Bh, 0Ch, 00h +450F:1B71  23 01 00 23 03 00                    db       23h, 01h, 00h, 23h, 03h, 00h +450F:1B77  23 85 1B 27 08 00                    db       23h, 85h, 1Bh, 27h, 08h, 00h +450F:1B7D  28 23 F8 00 27 10                    db       28h, 23h,0F8h, 00h, 27h, 10h +450F:1B83  00 28 23 03 01 27                    db       00h, 28h, 23h, 03h, 01h, 27h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 641 + +450F:1B89  10 00 28 1F 06 00                    db       10h, 00h, 28h, 1Fh, 06h, 00h +450F:1B8F  1F 04 00 27 0A 00                    db       1Fh, 04h, 00h, 27h, 0Ah, 00h +450F:1B95  1F 0A 00 23 00 00                    db       1Fh, 0Ah, 00h, 23h, 00h, 00h +450F:1B9B  0A 2B 06 00 23 0A                    db       0Ah, 2Bh, 06h, 00h, 23h, 0Ah +450F:1BA1  00 21 08 00 1F 06                    db       00h, 21h, 08h, 00h, 1Fh, 06h +450F:1BA7  00 23 27 04 0A 1F                    db       00h, 23h, 27h, 04h, 0Ah, 1Fh +450F:1BAD  06 00 23 36 04 0A                    db       06h, 00h, 23h, 36h, 04h, 0Ah +450F:1BB3  1C 1F 06 00 23 20                    db       1Ch, 1Fh, 06h, 00h, 23h, 20h +450F:1BB9  04 0A 1C 2B 10 00                    db       04h, 0Ah, 1Ch, 2Bh, 10h, 00h +450F:1BBF  1F 26 00 23 06 00                    db       1Fh, 26h, 00h, 23h, 06h, 00h +450F:1BC5  0A 2B 06 00 23 32                    db       0Ah, 2Bh, 06h, 00h, 23h, 32h +450F:1BCB  00 21 08 00 28 1F                    db       00h, 21h, 08h, 00h, 28h, 1Fh +450F:1BD1  04 00 23 32 27 0A                    db       04h, 00h, 23h, 32h, 27h, 0Ah +450F:1BD7  2B 15 00 23 75 0B                    db       2Bh, 15h, 00h, 23h, 75h, 0Bh +450F:1BDD  1F 02 00 23 1F 04                    db       1Fh, 02h, 00h, 23h, 1Fh, 04h +450F:1BE3  27 1D 00 23 01 00                    db       27h, 1Dh, 00h, 23h, 01h, 00h +450F:1BE9  21 08 00 2D 06 00                    db       21h, 08h, 00h, 2Dh, 06h, 00h +450F:1BEF  23 0A 00 21 08 00                    db       23h, 0Ah, 00h, 21h, 08h, 00h +450F:1BF5  28 23 24 00 21 08                    db       28h, 23h, 24h, 00h, 21h, 08h +450F:1BFB  00 1F 26 00 23 06                    db       00h, 1Fh, 26h, 00h, 23h, 06h +450F:1C01  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:1C07  31 00 21 08 00 2D                    db       31h, 00h, 21h, 08h, 00h, 2Dh +450F:1C0D  22 00 1F 04 00 23                    db       22h, 00h, 1Fh, 04h, 00h, 23h +450F:1C13  34 27 0A 2B 18 00                    db       34h, 27h, 0Ah, 2Bh, 18h, 00h +450F:1C19  23 76 0B 1F 02 00                    db       23h, 76h, 0Bh, 1Fh, 02h, 00h +450F:1C1F  23 1F 04 27 1D 00                    db       23h, 1Fh, 04h, 27h, 1Dh, 00h +450F:1C25  23 32 27 27 23 00                    db       23h, 32h, 27h, 27h, 23h, 00h +450F:1C2B  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:1C31  28 1F 06 00 1F 04                    db       28h, 1Fh, 06h, 00h, 1Fh, 04h +450F:1C37  00 27 0A 00 1F 0A                    db       00h, 27h, 0Ah, 00h, 1Fh, 0Ah +450F:1C3D  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:1C43  09 00 23 0A 00 21                    db       09h, 00h, 23h, 0Ah, 00h, 21h +450F:1C49  08 00 2D 4E 00 1F                    db       08h, 00h, 2Dh, 4Eh, 00h, 1Fh +450F:1C4F  04 00 23 10 27 0A                    db       04h, 00h, 23h, 10h, 27h, 0Ah +450F:1C55  2B 44 00 1F 26 00                    db       2Bh, 44h, 00h, 1Fh, 26h, 00h +450F:1C5B  23 00 00 10 2B 3A                    db       23h, 00h, 00h, 10h, 2Bh, 3Ah +450F:1C61  00 1F 8E 00 23 00                    db       00h, 1Fh, 8Eh, 00h, 23h, 00h +450F:1C67  00 0A 2B 30 00 23                    db       00h, 0Ah, 2Bh, 30h, 00h, 23h +450F:1C6D  01 00 23 02 00 23                    db       01h, 00h, 23h, 02h, 00h, 23h +450F:1C73  9D 1C 27 08 00 23                    db       9Dh, 1Ch, 27h, 08h, 00h, 23h +450F:1C79  6C 0B 23 E8 03 23                    db       6Ch, 0Bh, 23h,0E8h, 03h, 23h +450F:1C7F  E9 03 27 1D 00 23                    db      0E9h, 03h, 27h, 1Dh, 00h, 23h +450F:1C85  01 00 21 08 00 23                    db       01h, 00h, 21h, 08h, 00h, 23h +450F:1C8B  10 27 27 32 00 23                    db       10h, 27h, 27h, 32h, 00h, 23h +450F:1C91  02 00 21 24 00 23                    db       02h, 00h, 21h, 24h, 00h, 23h +450F:1C97  01 00 21 8E 00 28                    db       01h, 00h, 21h, 8Eh, 00h, 28h +450F:1C9D  23 61 01 23 10 27                    db       23h, 61h, 01h, 23h, 10h, 27h +450F:1CA3  27 0B 00 23 60 01                    db       27h, 0Bh, 00h, 23h, 60h, 01h +450F:1CA9  23 10 27 27 0C 00                    db       23h, 10h, 27h, 27h, 0Ch, 00h +450F:1CAF  28 23 7D 00 1F 02                    db       28h, 23h, 7Dh, 00h, 1Fh, 02h +450F:1CB5  00 1F 04 00 27 1D                    db       00h, 1Fh, 04h, 00h, 27h, 1Dh +450F:1CBB  00 28 23 EF 0F 1F                    db       00h, 28h, 23h,0EFh, 0Fh, 1Fh +450F:1CC1  02 00 1F 04 00 27                    db       02h, 00h, 1Fh, 04h, 00h, 27h +450F:1CC7  1D 00 28 1F 88 00                    db       1Dh, 00h, 28h, 1Fh, 88h, 00h +450F:1CCD  21 A0 00 1F A0 00                    db       21h,0A0h, 00h, 1Fh,0A0h, 00h +450F:1CD3  23 A0 0C 02 21 A0                    db       23h,0A0h, 0Ch, 02h, 21h,0A0h +450F:1CD9  00 1F 88 00 23 01                    db       00h, 1Fh, 88h, 00h, 23h, 01h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 642 + +450F:1CDF  00 02 21 88 00 1F                    db       00h, 02h, 21h, 88h, 00h, 1Fh +450F:1CE5  88 00 23 06 00 0A                    db       88h, 00h, 23h, 06h, 00h, 0Ah +450F:1CEB  2B 06 00 23 00 00                    db       2Bh, 06h, 00h, 23h, 00h, 00h +450F:1CF1  21 88 00 1F A0 00                    db       21h, 88h, 00h, 1Fh,0A0h, 00h +450F:1CF7  1F 02 00 1F 04 00                    db       1Fh, 02h, 00h, 1Fh, 04h, 00h +450F:1CFD  27 1D 00 28 23 01                    db       27h, 1Dh, 00h, 28h, 23h, 01h +450F:1D03  00 1F 02 00 27 31                    db       00h, 1Fh, 02h, 00h, 27h, 31h +450F:1D09  00 28 1F 14 00 23                    db       00h, 28h, 1Fh, 14h, 00h, 23h +450F:1D0F  01 00 0A 2B 1B 00                    db       01h, 00h, 0Ah, 2Bh, 1Bh, 00h +450F:1D15  23 02 00 21 14 00                    db       23h, 02h, 00h, 21h, 14h, 00h +450F:1D1B  23 02 00 1F 02 00                    db       23h, 02h, 00h, 1Fh, 02h, 00h +450F:1D21  27 31 00 23 77 00                    db       27h, 31h, 00h, 23h, 77h, 00h +450F:1D27  23 0F 04 1F 02 00                    db       23h, 0Fh, 04h, 1Fh, 02h, 00h +450F:1D2D  27 1F 00 28 23 01                    db       27h, 1Fh, 00h, 28h, 23h, 01h +450F:1D33  00 23 E8 03 27 28                    db       00h, 23h,0E8h, 03h, 27h, 28h +450F:1D39  00 1F 08 00 23 00                    db       00h, 1Fh, 08h, 00h, 23h, 00h +450F:1D3F  00 0A 2B 13 00 1F                    db       00h, 0Ah, 2Bh, 13h, 00h, 1Fh +450F:1D45  12 00 23 00 00 0A                    db       12h, 00h, 23h, 00h, 00h, 0Ah +450F:1D4B  2B 09 00 23 03 00                    db       2Bh, 09h, 00h, 23h, 03h, 00h +450F:1D51  1F 02 00 27 31 00                    db       1Fh, 02h, 00h, 27h, 31h, 00h +450F:1D57  28 23 01 00 23 E8                    db       28h, 23h, 01h, 00h, 23h,0E8h +450F:1D5D  03 27 28 00 1F 08                    db       03h, 27h, 28h, 00h, 1Fh, 08h +450F:1D63  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:1D69  15 00 23 03 00 1F                    db       15h, 00h, 23h, 03h, 00h, 1Fh +450F:1D6F  02 00 27 31 00 23                    db       02h, 00h, 27h, 31h, 00h, 23h +450F:1D75  01 00 21 14 00 23                    db       01h, 00h, 21h, 14h, 00h, 23h +450F:1D7B  01 00 21 16 00 28                    db       01h, 00h, 21h, 16h, 00h, 28h +450F:1D81  23 01 00 23 E8 03                    db       23h, 01h, 00h, 23h,0E8h, 03h +450F:1D87  27 33 00 28 23 01                    db       27h, 33h, 00h, 28h, 23h, 01h +450F:1D8D  00 21 08 00 23 01                    db       00h, 21h, 08h, 00h, 23h, 01h +450F:1D93  00 23 E8 03 27 33                    db       00h, 23h,0E8h, 03h, 27h, 33h +450F:1D99  00 23 01 00 21 2C                    db       00h, 23h, 01h, 00h, 21h, 2Ch +450F:1D9F  00 1F 26 00 23 06                    db       00h, 1Fh, 26h, 00h, 23h, 06h +450F:1DA5  00 0A 2B 0F 00 23                    db       00h, 0Ah, 2Bh, 0Fh, 00h, 23h +450F:1DAB  C4 0C 23 E8 03 23                    db      0C4h, 0Ch, 23h,0E8h, 03h, 23h +450F:1DB1  21 04 27 1D 00 2D                    db       21h, 04h, 27h, 1Dh, 00h, 2Dh +450F:1DB7  0C 00 23 7A 08 23                    db       0Ch, 00h, 23h, 7Ah, 08h, 23h +450F:1DBD  E8 03 23 21 04 27                    db      0E8h, 03h, 23h, 21h, 04h, 27h +450F:1DC3  1D 00 28 23 18 08                    db       1Dh, 00h, 28h, 23h, 18h, 08h +450F:1DC9  27 10 00 28 27 34                    db       27h, 10h, 00h, 28h, 27h, 34h +450F:1DCF  00 28 1F 26 00 23                    db       00h, 28h, 1Fh, 26h, 00h, 23h +450F:1DD5  17 00 0C 2B 06 00                    db       17h, 00h, 0Ch, 2Bh, 06h, 00h +450F:1DDB  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:1DE1  28 23 23 00 23 E8                    db       28h, 23h, 23h, 00h, 23h,0E8h +450F:1DE7  03 27 28 00 1F 08                    db       03h, 27h, 28h, 00h, 1Fh, 08h +450F:1DED  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:1DF3  09 00 23 23 00 23                    db       09h, 00h, 23h, 23h, 00h, 23h +450F:1DF9  EC 03 27 28 00 28                    db      0ECh, 03h, 27h, 28h, 00h, 28h +450F:1DFF  23 03 00 23 37 04                    db       23h, 03h, 00h, 23h, 37h, 04h +450F:1E05  27 01 00 23 03 00                    db       27h, 01h, 00h, 23h, 03h, 00h +450F:1E0B  21 26 00 23 01 00                    db       21h, 26h, 00h, 23h, 01h, 00h +450F:1E11  21 86 00 28 1F 02                    db       21h, 86h, 00h, 28h, 1Fh, 02h +450F:1E17  00 23 E8 03 0A 2B                    db       00h, 23h,0E8h, 03h, 0Ah, 2Bh +450F:1E1D  22 00 1F 86 00 23                    db       22h, 00h, 1Fh, 86h, 00h, 23h +450F:1E23  00 00 0A 2B 18 00                    db       00h, 00h, 0Ah, 2Bh, 18h, 00h +450F:1E29  25 FF 1D 23 ED 0F                    db       25h,0FFh, 1Dh, 23h,0EDh, 0Fh +450F:1E2F  23 E8 03 23 37 04                    db       23h,0E8h, 03h, 23h, 37h, 04h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 643 + +450F:1E35  27 1D 00 23 F3 03                    db       27h, 1Dh, 00h, 23h,0F3h, 03h +450F:1E3B  23 0D 00 27 31 00                    db       23h, 0Dh, 00h, 27h, 31h, 00h +450F:1E41  28 1F 02 00 27 35                    db       28h, 1Fh, 02h, 00h, 27h, 35h +450F:1E47  00 28 1F 7E 00 23                    db       00h, 28h, 1Fh, 7Eh, 00h, 23h +450F:1E4D  01 00 0A 2B 18 00                    db       01h, 00h, 0Ah, 2Bh, 18h, 00h +450F:1E53  1F 02 00 27 06 00                    db       1Fh, 02h, 00h, 27h, 06h, 00h +450F:1E59  23 39 04 27 06 00                    db       23h, 39h, 04h, 27h, 06h, 00h +450F:1E5F  23 38 04 27 00 00                    db       23h, 38h, 04h, 27h, 00h, 00h +450F:1E65  23 01 00 21 80 00                    db       23h, 01h, 00h, 21h, 80h, 00h +450F:1E6B  28 1F 4A 00 23 01                    db       28h, 1Fh, 4Ah, 00h, 23h, 01h +450F:1E71  00 0A 2B 06 00 1F                    db       00h, 0Ah, 2Bh, 06h, 00h, 1Fh +450F:1E77  4A 00 21 08 00 28                    db       4Ah, 00h, 21h, 08h, 00h, 28h +450F:1E7D  23 17 27 27 16 00                    db       23h, 17h, 27h, 27h, 16h, 00h +450F:1E83  1F 0A 00 21 08 00                    db       1Fh, 0Ah, 00h, 21h, 08h, 00h +450F:1E89  28 23 1E 00 23 E8                    db       28h, 23h, 1Eh, 00h, 23h,0E8h +450F:1E8F  03 27 28 00 1F 08                    db       03h, 27h, 28h, 00h, 1Fh, 08h +450F:1E95  00 23 01 00 0A 2B                    db       00h, 23h, 01h, 00h, 0Ah, 2Bh +450F:1E9B  3D 00 1F 26 00 23                    db       3Dh, 00h, 1Fh, 26h, 00h, 23h +450F:1EA1  06 00 0C 2B 1E 00                    db       06h, 00h, 0Ch, 2Bh, 1Eh, 00h +450F:1EA7  27 36 00 23 0E 00                    db       27h, 36h, 00h, 23h, 0Eh, 00h +450F:1EAD  1F 02 00 27 31 00                    db       1Fh, 02h, 00h, 27h, 31h, 00h +450F:1EB3  23 02 00 21 16 00                    db       23h, 02h, 00h, 21h, 16h, 00h +450F:1EB9  23 8E 0B 1F 02 00                    db       23h, 8Eh, 0Bh, 1Fh, 02h, 00h +450F:1EBF  27 13 00 2D 12 00                    db       27h, 13h, 00h, 2Dh, 12h, 00h +450F:1EC5  23 A6 0C 1F 02 00                    db       23h,0A6h, 0Ch, 1Fh, 02h, 00h +450F:1ECB  27 13 00 23 19 00                    db       27h, 13h, 00h, 23h, 19h, 00h +450F:1ED1  1F 02 00 27 31 00                    db       1Fh, 02h, 00h, 27h, 31h, 00h +450F:1ED7  2D 09 00 23 50 0B                    db       2Dh, 09h, 00h, 23h, 50h, 0Bh +450F:1EDD  1F 02 00 27 13 00                    db       1Fh, 02h, 00h, 27h, 13h, 00h +450F:1EE3  28 1F 30 00 21 08                    db       28h, 1Fh, 30h, 00h, 21h, 08h +450F:1EE9  00 23 8F 0B 1F 02                    db       00h, 23h, 8Fh, 0Bh, 1Fh, 02h +450F:1EEF  00 27 13 00 28 1F                    db       00h, 27h, 13h, 00h, 28h, 1Fh +450F:1EF5  90 00 23 01 00 02                    db       90h, 00h, 23h, 01h, 00h, 02h +450F:1EFB  21 90 00 1F 90 00                    db       21h, 90h, 00h, 1Fh, 90h, 00h +450F:1F01  23 03 00 0A 2B 06                    db       23h, 03h, 00h, 0Ah, 2Bh, 06h +450F:1F07  00 23 00 00 21 90                    db       00h, 23h, 00h, 00h, 21h, 90h +450F:1F0D  00 23 0F 00 1F 90                    db       00h, 23h, 0Fh, 00h, 1Fh, 90h +450F:1F13  00 02 23 F1 03 27                    db       00h, 02h, 23h,0F1h, 03h, 27h +450F:1F19  31 00 28 1F 9E 00                    db       31h, 00h, 28h, 1Fh, 9Eh, 00h +450F:1F1F  23 01 00 02 21 9E                    db       23h, 01h, 00h, 02h, 21h, 9Eh +450F:1F25  00 1F 9E 00 23 03                    db       00h, 1Fh, 9Eh, 00h, 23h, 03h +450F:1F2B  00 0A 2B 06 00 23                    db       00h, 0Ah, 2Bh, 06h, 00h, 23h +450F:1F31  00 00 21 9E 00 23                    db       00h, 00h, 21h, 9Eh, 00h, 23h +450F:1F37  1B 00 1F 9E 00 02                    db       1Bh, 00h, 1Fh, 9Eh, 00h, 02h +450F:1F3D  23 EB 03 27 31 00                    db       23h,0EBh, 03h, 27h, 31h, 00h +450F:1F43  28 1F 92 00 23 01                    db       28h, 1Fh, 92h, 00h, 23h, 01h +450F:1F49  00 02 21 92 00 1F                    db       00h, 02h, 21h, 92h, 00h, 1Fh +450F:1F4F  92 00 23 03 00 0A                    db       92h, 00h, 23h, 03h, 00h, 0Ah +450F:1F55  2B 06 00 23 00 00                    db       2Bh, 06h, 00h, 23h, 00h, 00h +450F:1F5B  21 92 00 23 14 00                    db       21h, 92h, 00h, 23h, 14h, 00h +450F:1F61  1F 92 00 02 23 EC                    db       1Fh, 92h, 00h, 02h, 23h,0ECh +450F:1F67  03 27 31 00 28 1F                    db       03h, 27h, 31h, 00h, 28h, 1Fh +450F:1F6D  26 00 23 14 00 10                    db       26h, 00h, 23h, 14h, 00h, 10h +450F:1F73  2B 09 00 23 1E 00                    db       2Bh, 09h, 00h, 23h, 1Eh, 00h +450F:1F79  23 EC 03 27 31 00                    db       23h,0ECh, 03h, 27h, 31h, 00h +450F:1F7F  28 1F 26 00 23 07                    db       28h, 1Fh, 26h, 00h, 23h, 07h +450F:1F85  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 644 + +450F:1F8B  1F 00 23 ED 03 27                    db       1Fh, 00h, 23h,0EDh, 03h, 27h +450F:1F91  31 00 28 1F 26 00                    db       31h, 00h, 28h, 1Fh, 26h, 00h +450F:1F97  23 0A 00 0A 2B 09                    db       23h, 0Ah, 00h, 0Ah, 2Bh, 09h +450F:1F9D  00 23 20 00 23 ED                    db       00h, 23h, 20h, 00h, 23h,0EDh +450F:1FA3  03 27 31 00 28 1F                    db       03h, 27h, 31h, 00h, 28h, 1Fh +450F:1FA9  1A 00 23 01 00 0A                    db       1Ah, 00h, 23h, 01h, 00h, 0Ah +450F:1FAF  2B 09 00 23 00 00                    db       2Bh, 09h, 00h, 23h, 00h, 00h +450F:1FB5  21 08 00 2D 06 00                    db       21h, 08h, 00h, 2Dh, 06h, 00h +450F:1FBB  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:1FC1  28 23 01 00 21 1A                    db       28h, 23h, 01h, 00h, 21h, 1Ah +450F:1FC7  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:1FCD  00 28 1F 1E 00 23                    db       00h, 28h, 1Fh, 1Eh, 00h, 23h +450F:1FD3  00 00 0A 2B 09 00                    db       00h, 00h, 0Ah, 2Bh, 09h, 00h +450F:1FD9  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:1FDF  2D 06 00 23 01 00                    db       2Dh, 06h, 00h, 23h, 01h, 00h +450F:1FE5  21 08 00 28 23 14                    db       21h, 08h, 00h, 28h, 23h, 14h +450F:1FEB  27 27 23 00 23 02                    db       27h, 27h, 23h, 00h, 23h, 02h +450F:1FF1  01 27 10 00 23 03                    db       01h, 27h, 10h, 00h, 23h, 03h +450F:1FF7  01 23 12 04 27 0B                    db       01h, 23h, 12h, 04h, 27h, 0Bh +450F:1FFD  00 23 03 00 21 1E                    db       00h, 23h, 03h, 00h, 21h, 1Eh +450F:2003  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:2009  00 28 23 92 10 21                    db       00h, 28h, 23h, 92h, 10h, 21h +450F:200F  08 00 23 3F 01 23                    db       08h, 00h, 23h, 3Fh, 01h, 23h +450F:2015  12 04 27 0C 00 28                    db       12h, 04h, 27h, 0Ch, 00h, 28h +450F:201B  23 D6 07 21 08 00                    db       23h,0D6h, 07h, 21h, 08h, 00h +450F:2021  23 D4 07 23 EC 03                    db       23h,0D4h, 07h, 23h,0ECh, 03h +450F:2027  27 0C 00 28 1F 26                    db       27h, 0Ch, 00h, 28h, 1Fh, 26h +450F:202D  00 23 01 00 0A 2B                    db       00h, 23h, 01h, 00h, 0Ah, 2Bh +450F:2033  06 00 23 01 00 21                    db       06h, 00h, 23h, 01h, 00h, 21h +450F:2039  08 00 28 1F 26 00                    db       08h, 00h, 28h, 1Fh, 26h, 00h +450F:203F  23 02 00 0A 2B 06                    db       23h, 02h, 00h, 0Ah, 2Bh, 06h +450F:2045  00 23 01 00 21 08                    db       00h, 23h, 01h, 00h, 21h, 08h +450F:204B  00 28 23 EE 07 21                    db       00h, 28h, 23h,0EEh, 07h, 21h +450F:2051  08 00 23 4C 01 23                    db       08h, 00h, 23h, 4Ch, 01h, 23h +450F:2057  EB 03 27 0C 00 28                    db      0EBh, 03h, 27h, 0Ch, 00h, 28h +450F:205D  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:2063  1F 00 00 23 1C 00                    db       1Fh, 00h, 00h, 23h, 1Ch, 00h +450F:2069  0A 2B 06 00 23 02                    db       0Ah, 2Bh, 06h, 00h, 23h, 02h +450F:206F  00 21 08 00 1F 00                    db       00h, 21h, 08h, 00h, 1Fh, 00h +450F:2075  00 23 1D 00 0A 2B                    db       00h, 23h, 1Dh, 00h, 0Ah, 2Bh +450F:207B  06 00 23 02 00 21                    db       06h, 00h, 23h, 02h, 00h, 21h +450F:2081  08 00 1F 08 00 23                    db       08h, 00h, 1Fh, 08h, 00h, 23h +450F:2087  01 00 0A 2B 09 00                    db       01h, 00h, 0Ah, 2Bh, 09h, 00h +450F:208D  23 1A 00 23 EB 03                    db       23h, 1Ah, 00h, 23h,0EBh, 03h +450F:2093  27 31 00 28 23 03                    db       27h, 31h, 00h, 28h, 23h, 03h +450F:2099  00 21 08 00 1F 00                    db       00h, 21h, 08h, 00h, 1Fh, 00h +450F:209F  00 23 1C 00 0A 2B                    db       00h, 23h, 1Ch, 00h, 0Ah, 2Bh +450F:20A5  06 00 23 04 00 21                    db       06h, 00h, 23h, 04h, 00h, 21h +450F:20AB  08 00 1F 00 00 23                    db       08h, 00h, 1Fh, 00h, 00h, 23h +450F:20B1  1D 00 0A 2B 06 00                    db       1Dh, 00h, 0Ah, 2Bh, 06h, 00h +450F:20B7  23 04 00 21 08 00                    db       23h, 04h, 00h, 21h, 08h, 00h +450F:20BD  28 23 02 00 21 26                    db       28h, 23h, 02h, 00h, 21h, 26h +450F:20C3  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:20C9  00 28 23 01 08 21                    db       00h, 28h, 23h, 01h, 08h, 21h +450F:20CF  08 00 1F 2A 00 23                    db       08h, 00h, 1Fh, 2Ah, 00h, 23h +450F:20D5  00 00 0A 2B 06 00                    db       00h, 00h, 0Ah, 2Bh, 06h, 00h +450F:20DB  23 FF 07 21 08 00                    db       23h,0FFh, 07h, 21h, 08h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 645 + +450F:20E1  28 23 04 00 21 26                    db       28h, 23h, 04h, 00h, 21h, 26h +450F:20E7  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:20ED  00 28 23 13 08 23                    db       00h, 28h, 23h, 13h, 08h, 23h +450F:20F3  21 04 27 0C 00 23                    db       21h, 04h, 27h, 0Ch, 00h, 23h +450F:20F9  0A 08 21 08 00                       db       0Ah, 08h, 21h, 08h, 00h +450F:20FE  28 23                                db       28h, 23h +450F:2100  0000                 data_1426       dw      0 +450F:2102  23 01 00 23 12 21                    db       23h, 01h, 00h, 23h, 12h, 21h +450F:2108  0827                 data_1427       dw      827h                    ; Data table (indexed access) +450F:210A  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:2110  00 28 23 C3 08 23                    db       00h, 28h, 23h,0C3h, 08h, 23h +450F:2116  29 04 27 13 00 28                    db       29h, 04h, 27h, 13h, 00h, 28h +450F:211C  1F 2C 00 23 00 00                    db       1Fh, 2Ch, 00h, 23h, 00h, 00h +450F:2122  0C 2B 0F 00 23 02                    db       0Ch, 2Bh, 0Fh, 00h, 23h, 02h +450F:2128  00 21 08 00 23 03                    db       00h, 21h, 08h, 00h, 23h, 03h +450F:212E  00 21 26 00 2D 06                    db       00h, 21h, 26h, 00h, 2Dh, 06h +450F:2134  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:213A  00 28 23 92 10 21                    db       00h, 28h, 23h, 92h, 10h, 21h +450F:2140  08 00 23 18 08 27                    db       08h, 00h, 23h, 18h, 08h, 27h +450F:2146  10 00 28 23 47 01                    db       10h, 00h, 28h, 23h, 47h, 01h +450F:214C  23 22 04 27 0C 00                    db       23h, 22h, 04h, 27h, 0Ch, 00h +450F:2152  23 1F 08 21 08 00                    db       23h, 1Fh, 08h, 21h, 08h, 00h +450F:2158  28 23 28 08 27 10                    db       28h, 23h, 28h, 08h, 27h, 10h +450F:215E  00 23 05 00 21 26                    db       00h, 23h, 05h, 00h, 21h, 26h +450F:2164  00 23 1B 27 27 32                    db       00h, 23h, 1Bh, 27h, 27h, 32h +450F:216A  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:2170  00 28 23 45 01 23                    db       00h, 28h, 23h, 45h, 01h, 23h +450F:2176  22 04 27 0C 00 23                    db       22h, 04h, 27h, 0Ch, 00h, 23h +450F:217C  92 10 21 08 00 28                    db       92h, 10h, 21h, 08h, 00h, 28h +450F:2182  27 37 00 23 01 00                    db       27h, 37h, 00h, 23h, 01h, 00h +450F:2188  23 26 04 27 1E 00                    db       23h, 26h, 04h, 27h, 1Eh, 00h +450F:218E  23 01 00 23 28 04                    db       23h, 01h, 00h, 23h, 28h, 04h +450F:2194  27 1E 00 23 01 00                    db       27h, 1Eh, 00h, 23h, 01h, 00h +450F:219A  21 40 00 23 92 10                    db       21h, 40h, 00h, 23h, 92h, 10h +450F:21A0  21 08 00 28 23 94                    db       21h, 08h, 00h, 28h, 23h, 94h +450F:21A6  08 23 20 04 27 0C                    db       08h, 23h, 20h, 04h, 27h, 0Ch +450F:21AC  00 23 8F 08 21 08                    db       00h, 23h, 8Fh, 08h, 21h, 08h +450F:21B2  00 28 23 01 00 21                    db       00h, 28h, 23h, 01h, 00h, 21h +450F:21B8  3E 00 27 38 00 23                    db       3Eh, 00h, 27h, 38h, 00h, 23h +450F:21BE  95 08 21 08 00 23                    db       95h, 08h, 21h, 08h, 00h, 23h +450F:21C4  00 00 23 32 00 23                    db       00h, 00h, 23h, 32h, 00h, 23h +450F:21CA  D9 21 27 08 00 23                    db      0D9h, 21h, 27h, 08h, 00h, 23h +450F:21D0  01 00 23 E8 03 27                    db       01h, 00h, 23h,0E8h, 03h, 27h +450F:21D6  33 00 28 23 00 00                    db       33h, 00h, 28h, 23h, 00h, 00h +450F:21DC  21 3E 00 28 1F 3E                    db       21h, 3Eh, 00h, 28h, 1Fh, 3Eh +450F:21E2  00 23 00 00 0C 2B                    db       00h, 23h, 00h, 00h, 0Ch, 2Bh +450F:21E8  06 00 23 92 10 21                    db       06h, 00h, 23h, 92h, 10h, 21h +450F:21EE  08 00 28 1F 3E 00                    db       08h, 00h, 28h, 1Fh, 3Eh, 00h +450F:21F4  23 00 00 0A 2B 06                    db       23h, 00h, 00h, 0Ah, 2Bh, 06h +450F:21FA  00 23 91 08 21 08                    db       00h, 23h, 91h, 08h, 21h, 08h +450F:2200  00 28 23 92 10 21                    db       00h, 28h, 23h, 92h, 10h, 21h +450F:2206  08 00 27 39 00 1F                    db       08h, 00h, 27h, 39h, 00h, 1Fh +450F:220C  0A 00 23 00 00 0A                    db       0Ah, 00h, 23h, 00h, 00h, 0Ah +450F:2212  2B 06 00 23 01 00                    db       2Bh, 06h, 00h, 23h, 01h, 00h +450F:2218  21 08 00 28 23 1D                    db       21h, 08h, 00h, 28h, 23h, 1Dh +450F:221E  00 23 EB 03 27 28                    db       00h, 23h,0EBh, 03h, 27h, 28h +450F:2224  00 1F 08 00 23 00                    db       00h, 1Fh, 08h, 00h, 23h, 00h +450F:222A  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:2230  93 08 21 08 00 2D                    db       93h, 08h, 21h, 08h, 00h, 2Dh +450F:2236  06 00 23 92 08 21                    db       06h, 00h, 23h, 92h, 08h, 21h +450F:223C  08 00 28 23 A7 08                    db       08h, 00h, 28h, 23h,0A7h, 08h +450F:2242  23 1F 04 27 0C 00                    db       23h, 1Fh, 04h, 27h, 0Ch, 00h +450F:2248  23 A8 08 21 08 00                    db       23h,0A8h, 08h, 21h, 08h, 00h +450F:224E  28 23 1C 00 23 EB                    db       28h, 23h, 1Ch, 00h, 23h,0EBh +450F:2254  03 27 28 00 1F 08                    db       03h, 27h, 28h, 00h, 1Fh, 08h +450F:225A  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:2260  09 00 23 A9 08 21                    db       09h, 00h, 23h,0A9h, 08h, 21h +450F:2266  08 00 2D 06 00 23                    db       08h, 00h, 2Dh, 06h, 00h, 23h +450F:226C  AA 08 21 08 00 28                    db      0AAh, 08h, 21h, 08h, 00h, 28h +450F:2272  23 B6 08 27 10 00                    db       23h,0B6h, 08h, 27h, 10h, 00h +450F:2278  23 08 00 21 26 00                    db       23h, 08h, 00h, 21h, 26h, 00h +450F:227E  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:2284  28 23 BB 08 23 29                    db       28h, 23h,0BBh, 08h, 23h, 29h +450F:228A  04 27 0C 00 23 BC                    db       04h, 27h, 0Ch, 00h, 23h,0BCh +450F:2290  08 21 08 00 28 27                    db       08h, 21h, 08h, 00h, 28h, 27h +450F:2296  38 00 23 01 00 23                    db       38h, 00h, 23h, 01h, 00h, 23h +450F:229C  E8 03 27 33 00 23                    db      0E8h, 03h, 27h, 33h, 00h, 23h +450F:22A2  95 08 21 08 00 28                    db       95h, 08h, 21h, 08h, 00h, 28h +450F:22A8  23 DA 08 27 10 00                    db       23h,0DAh, 08h, 27h, 10h, 00h +450F:22AE  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:22B4  28 23 4F 01 23 ED                    db       28h, 23h, 4Fh, 01h, 23h,0EDh +450F:22BA  03 27 0C 00 23 DD                    db       03h, 27h, 0Ch, 00h, 23h,0DDh +450F:22C0  08 21 08 00 28 23                    db       08h, 21h, 08h, 00h, 28h, 23h +450F:22C6  EB 08 21 08 00 1F                    db      0EBh, 08h, 21h, 08h, 00h, 1Fh +450F:22CC  44 00 23 01                          db       44h, 00h, 23h, 01h +450F:22D0                       loc_2372: +450F:22D0  00 0A                                add     [bp+si],cl +450F:22D2  2B 06 2300                           sub     ax,word ptr ds:[2300h]  ; (450F:2300=26h) +450F:22D6  EC                                   in      al,dx                   ; port 0FFD0h ??I/O Non-standard +450F:22D7  08 21                                or      [bx+di],ah +450F:22D9  08 00                                or      [bx+si],al +450F:22DB  1F                                   pop     ds +450F:22DC  44                                   inc     sp +450F:22DD  00 23                                add     [bp+di],ah +450F:22DF  01 00                                add     [bx+si],ax +450F:22E1  10 2B                                adc     [bp+di],ch +450F:22E3  06                                   push    es +450F:22E4  00 23                                add     [bp+di],ah +450F:22E6  ED                                   in      ax,dx                   ; port 0FFD0h ??I/O Non-standard +450F:22E7  08 21                                or      [bx+di],ah +450F:22E9  08 00                                or      [bx+si],al +450F:22EB  1F                                   pop     ds +450F:22EC  44                                   inc     sp +450F:22ED  00 23                                add     [bp+di],ah +450F:22EF  01 00                                add     [bx+si],ax +450F:22F1  02 21                                add     ah,[bx+di] +450F:22F3  44                                   inc     sp +450F:22F4  00 28                                add     [bx+si],ch +450F:22F6  23 92 2110                           and     dx,[bp+si+2110h] +450F:22FA  08 00                                or      [bx+si],al +450F:22FC  23 0A                                and     cx,[bp+si] +450F:22FE  00 21                                add     [bx+di],ah +450F:2300  26: 00 23                            add     es:[bp+di],ah +450F:2303  F0> 08 27                                       lock or      [bx],ah +450F:2306  10 00                                adc     [bx+si],al +450F:2308  23 23                                and     sp,[bp+di] +450F:230A  27                                   daa                             ; Decimal adjust +450F:230B  27                                   daa                             ; Decimal adjust +450F:230C  32 00                                xor     al,[bx+si] +450F:230E  28 23                                sub     [bp+di],ah +450F:2310  F9                                   stc                             ; Set carry flag +450F:2311  08 21                                or      [bx+di],ah +450F:2313  08 00                                or      [bx+si],al +450F:2315  1F                                   pop     ds +450F:2316  08 00                                or      [bx+si],al +450F:2318  1F                                   pop     ds +450F:2319  46                                   inc     si +450F:231A  00 02                                add     [bp+si],al +450F:231C  21 08                                and     [bx+si],cx +450F:231E  00 1F                                add     [bx],bl +450F:2320  46                                   inc     si +450F:2321  00 23                                add     [bp+di],ah +450F:2323  04 00                                add     al,0 +450F:2325  0E                                   push    cs +450F:2326  2B 0A                                sub     cx,[bp+si] +450F:2328  00 1F                                add     [bx],bl +450F:232A  46                                   inc     si +450F:232B  00 23                                add     [bp+di],ah +450F:232D  01 00                                add     [bx+si],ax +450F:232F  02 21                                add     ah,[bx+di] +450F:2331  46                                   inc     si +450F:2332  00 28                                add     [bx+si],ch +450F:2334  1F                                   pop     ds +450F:2335  46                                   inc     si +450F:2336  00 23                                add     [bp+di],ah +450F:2338  03 00                                add     ax,[bx+si] +450F:233A  0A 2B                                or      ch,[bp+di] +450F:233C  0C 00                                or      al,0 +450F:233E  23 00                                and     ax,[bx+si] +450F:2340  00 23                                add     [bp+di],ah +450F:2342  01 00                                add     [bx+si],ax +450F:2344  23 51 23                             and     dx,[bx+di+23h] +450F:2347  27                                   daa                             ; Decimal adjust +450F:2348  08 00                                or      [bx+si],al +450F:234A  23 92 2110                           and     dx,[bp+si+2110h] +450F:234E  08 00                                or      [bx+si],al +450F:2350  28 23                                sub     [bp+di],ah +450F:2352  FE 08                                dec     byte ptr [bx+si] +450F:2354  23 29                                and     bp,[bx+di] +450F:2356  04 27                                add     al,27h                  ; ''' +450F:2358  13 00                                adc     ax,[bx+si] +450F:235A  28 27                                sub     [bx],ah +450F:235C  3A 00                                cmp     al,[bx+si] +450F:235E  1F                                   pop     ds +450F:235F  08 00                                or      [bx+si],al +450F:2361  1F                                   pop     ds +450F:2362  48                                   dec     ax +450F:2363  00 04                                add     [si],al +450F:2365  21 08                                and     [bx+si],cx +450F:2367  00 28                                add     [bx+si],ch +450F:2369  27                                   daa                             ; Decimal adjust +450F:236A  3A 00                                cmp     al,[bx+si] +450F:236C  28 27                                sub     [bx],ah +450F:236E  3A 00                                cmp     al,[bx+si] +450F:2370  1F                                   pop     ds +450F:2371  08 00                                or      [bx+si],al +450F:2373  23 01                                and     ax,[bx+di] +450F:2375  00 0A                                add     [bp+si],cl +450F:2377  2B 09                                sub     cx,[bx+di] +450F:2379  00 23                                add     [bp+di],ah +450F:237B  00 00                                add     [bx+si],al +450F:237D  21 08                                and     [bx+si],cx +450F:237F  00 2D                                add     [di],ch +450F:2381  10 00                                adc     [bx+si],al +450F:2383  1F                                   pop     ds +450F:2384  08 00                                or      [bx+si],al +450F:2386  23 00                                and     ax,[bx+si] +450F:2388  00 0A                                add     [bp+si],cl +450F:238A  2B 06 2300                           sub     ax,ds:data_33e          ; (0000:2300=1226h) +450F:238E  01 00                                add     [bx+si],ax +450F:2390  21 08                                and     [bx+si],cx +450F:2392  00 28                                add     [bx+si],ch +450F:2394  23 21                                and     sp,[bx+di] +450F:2396  09 27                                or      [bx],sp +450F:2398  10 00                                adc     [bx+si],al +450F:239A  23 23                                and     sp,[bp+di] +450F:239C  27                                   daa                             ; Decimal adjust +450F:239D  27                                   daa                             ; Decimal adjust +450F:239E  32 00                                xor     al,[bx+si] +450F:23A0  23 92 2110                           and     dx,[bp+si+2110h] +450F:23A4  08 00                                or      [bx+si],al +450F:23A6  23 01                                and     ax,[bx+di] +450F:23A8  00 21                                add     [bx+di],ah +450F:23AA  4A                                   dec     dx +450F:23AB  00 23                                add     [bp+di],ah +450F:23AD  0A 00                                or      al,[bx+si] +450F:23AF  21 26 2300                           and     ds:data_33e,sp          ; (0000:2300=1226h) +450F:23B3  01 00                                add     [bx+si],ax +450F:23B5  21 48 00             ;*              and     [bx+si+0],cx +450F:23B5  21 48 00                             db       21h, 48h, 00h +450F:23B8  28 23 00 00 23 E9                    db       28h, 23h, 00h, 00h, 23h,0E9h +450F:23BE  03 23 0D 00 27 24                    db       03h, 23h, 0Dh, 00h, 27h, 24h +450F:23C4  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:23CA  00 28 23 FC 08 21                    db       00h, 28h, 23h,0FCh, 08h, 21h +450F:23D0  08 00 28 1F 00 00                    db       08h, 00h, 28h, 1Fh, 00h, 00h +450F:23D6  23 E9 03 27 28 00                    db       23h,0E9h, 03h, 27h, 28h, 00h +450F:23DC  1F 08 00 23 01 00                    db       1Fh, 08h, 00h, 23h, 01h, 00h +450F:23E2  0A 2B 09 00 23 92                    db       0Ah, 2Bh, 09h, 00h, 23h, 92h +450F:23E8  10 21 08 00 2D 0C                    db       10h, 21h, 08h, 00h, 2Dh, 0Ch +450F:23EE  00 23 0B 00 21 08                    db       00h, 23h, 0Bh, 00h, 21h, 08h +450F:23F4  00 23 01 00 21 4C                    db       00h, 23h, 01h, 00h, 21h, 4Ch +450F:23FA  00 28                                db       00h, 28h + +450F:23FC  23 01 00 21      startup_sequence    db       23h, 01h, 00h, 21h +450F:2400  12 00 23 E8 03 27                    db       12h, 00h, 23h,0E8h, 03h, 27h +450F:2406  00 00 23 EA 03 27                    db       00h, 00h, 23h,0EAh, 03h, 27h +450F:240C  00 00 23 12 27 27                    db       00h, 00h, 23h, 12h, 27h, 27h +450F:2412  00 00 23 14 27 27                    db       00h, 00h, 23h, 14h, 27h, 27h +450F:2418  00 00 23 00 00 23                    db       00h, 00h, 23h, 00h, 00h, 23h +450F:241E  14 00 23 C7 2A 27                    db       14h, 00h, 23h,0C7h, 2Ah, 27h +450F:2424  08 00 23 6B 04 27                    db       08h, 00h, 23h, 6Bh, 04h, 27h +450F:242A  00 00 28 23 92 10                    db       00h, 00h, 28h, 23h, 92h, 10h +450F:2430  21 08 00 1F 4C 00                    db       21h, 08h, 00h, 1Fh, 4Ch, 00h +450F:2436  23 01 00 0A 2B 22                    db       23h, 01h, 00h, 0Ah, 2Bh, 22h +450F:243C  00 1F 00 00 23 E9                    db       00h, 1Fh, 00h, 00h, 23h,0E9h +450F:2442  03 27 28 00 1F 08                    db       03h, 27h, 28h, 00h, 1Fh, 08h +450F:2448  00 23 01 00 0A 2B                    db       00h, 23h, 01h, 00h, 0Ah, 2Bh +450F:244E  09 00 23 0D 00 21                    db       09h, 00h, 23h, 0Dh, 00h, 21h +450F:2454  08 00 2D 06 00 23                    db       08h, 00h, 2Dh, 06h, 00h, 23h +450F:245A  0C 00 21 08 00 28                    db       0Ch, 00h, 21h, 08h, 00h, 28h +450F:2460  23 0F 09 23 EE 03                    db       23h, 0Fh, 09h, 23h,0EEh, 03h +450F:2466  27 0C 00 23 28 09                    db       27h, 0Ch, 00h, 23h, 28h, 09h +450F:246C  21 08 00 28 1F 26                    db       21h, 08h, 00h, 28h, 1Fh, 26h +450F:2472  00 23 0B 00 0A 2B                    db       00h, 23h, 0Bh, 00h, 0Ah, 2Bh +450F:2478  0C 00 23 2D 09 27                    db       0Ch, 00h, 23h, 2Dh, 09h, 27h +450F:247E  10 00 23 01 00 21                    db       10h, 00h, 23h, 01h, 00h, 21h +450F:2484  4E 00 23 92 10 21                    db       4Eh, 00h, 23h, 92h, 10h, 21h +450F:248A  08 00 28 1F 4E 00                    db       08h, 00h, 28h, 1Fh, 4Eh, 00h +450F:2490  21 08 00 28 23 34                    db       21h, 08h, 00h, 28h, 23h, 34h +450F:2496  09 23 F0 03 27 0C                    db       09h, 23h,0F0h, 03h, 27h, 0Ch +450F:249C  00 23 35 09 21 08                    db       00h, 23h, 35h, 09h, 21h, 08h +450F:24A2  00 28 23 92 10 21                    db       00h, 28h, 23h, 92h, 10h, 21h +450F:24A8  08 00 1F 50 00 23                    db       08h, 00h, 1Fh, 50h, 00h, 23h +450F:24AE  01 00 0A 2B 06 00                    db       01h, 00h, 0Ah, 2Bh, 06h, 00h +450F:24B4  23 01 00 21 08 00                    db       23h, 01h, 00h, 21h, 08h, 00h +450F:24BA  28 23 92 10 21 08                    db       28h, 23h, 92h, 10h, 21h, 08h +450F:24C0  00 23 01 00 21 50                    db       00h, 23h, 01h, 00h, 21h, 50h +450F:24C6  00 28 23 92 10 21                    db       00h, 28h, 23h, 92h, 10h, 21h +450F:24CC  08 00 1F 52 00 23                    db       08h, 00h, 1Fh, 52h, 00h, 23h +450F:24D2  01 00 0A 2B 06 00                    db       01h, 00h, 0Ah, 2Bh, 06h, 00h +450F:24D8  23 05 00 21 08 00                    db       23h, 05h, 00h, 21h, 08h, 00h +450F:24DE  28 23 92 10 21 08                    db       28h, 23h, 92h, 10h, 21h, 08h +450F:24E4  00 23 01 00 21 52                    db       00h, 23h, 01h, 00h, 21h, 52h +450F:24EA  00 28 23 55 09 23                    db       00h, 28h, 23h, 55h, 09h, 23h +450F:24F0  2B 04 27 0C 00 23                    db       2Bh, 04h, 27h, 0Ch, 00h, 23h +450F:24F6  58 09 21 08 00 28                    db       58h, 09h, 21h, 08h, 00h, 28h +450F:24FC  23 00 00 21 56 00                    db       23h, 00h, 00h, 21h, 56h, 00h +450F:2502  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:2508  28 23 00 00 21 58                    db       28h, 23h, 00h, 00h, 21h, 58h +450F:250E  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:2514  00 28 1F 56 00 21                    db       00h, 28h, 1Fh, 56h, 00h, 21h +450F:251A  08 00 28 1F 58 00                    db       08h, 00h, 28h, 1Fh, 58h, 00h +450F:2520  21 08 00 28 23 0E                    db       21h, 08h, 00h, 28h, 23h, 0Eh +450F:2526  00 21 26 00 1F 70                    db       00h, 21h, 26h, 00h, 1Fh, 70h +450F:252C  00 23 02 00 0A 2B                    db       00h, 23h, 02h, 00h, 0Ah, 2Bh +450F:2532  21 00 23 01 00 21                    db       21h, 00h, 23h, 01h, 00h, 21h +450F:2538  5A 00 23 0D 00 23                    db       5Ah, 00h, 23h, 0Dh, 00h, 23h +450F:253E  EF 03 27 01 00 23                    db      0EFh, 03h, 27h, 01h, 00h, 23h +450F:2544  00 00 23 28 00 23                    db       00h, 00h, 23h, 28h, 00h, 23h +450F:254A  80 26 27 08 00 23                    db       80h, 26h, 27h, 08h, 00h, 23h +450F:2550  92 10 21 08 00 1F                    db       92h, 10h, 21h, 08h, 00h, 1Fh +450F:2556  70 00 23 01 00 0A                    db       70h, 00h, 23h, 01h, 00h, 0Ah +450F:255C  2B 0C 00 23 0A 00                    db       2Bh, 0Ch, 00h, 23h, 0Ah, 00h +450F:2562  21 08 00 23 33 27                    db       21h, 08h, 00h, 23h, 33h, 27h +450F:2568  27 23 00 1F 70 00                    db       27h, 23h, 00h, 1Fh, 70h, 00h +450F:256E  23 00 00 0A 2B 0C                    db       23h, 00h, 00h, 0Ah, 2Bh, 0Ch +450F:2574  00 23 32 27 27 23                    db       00h, 23h, 32h, 27h, 27h, 23h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 650 + +450F:257A  00 23 09 00 21 08                    db       00h, 23h, 09h, 00h, 21h, 08h +450F:2580  00 28 23 00 00 21                    db       00h, 28h, 23h, 00h, 00h, 21h +450F:2586  70 00 23 92 10 21                    db       70h, 00h, 23h, 92h, 10h, 21h +450F:258C  08 00 28 23 01 00                    db       08h, 00h, 28h, 23h, 01h, 00h +450F:2592  21 70 00 23 92 10                    db       21h, 70h, 00h, 23h, 92h, 10h +450F:2598  21 08 00 28 23 02                    db       21h, 08h, 00h, 28h, 23h, 02h +450F:259E  00 21 70 00 23 92                    db       00h, 21h, 70h, 00h, 23h, 92h +450F:25A4  10 21 08 00 28 1F                    db       10h, 21h, 08h, 00h, 28h, 1Fh +450F:25AA  5A 00 23 00 00 0A                    db       5Ah, 00h, 23h, 00h, 00h, 0Ah +450F:25B0  2B 06 00 23 01 00                    db       2Bh, 06h, 00h, 23h, 01h, 00h +450F:25B6  21 08 00 28 1F 5A                    db       21h, 08h, 00h, 28h, 1Fh, 5Ah +450F:25BC  00 23 00 00 0C 2B                    db       00h, 23h, 00h, 00h, 0Ch, 2Bh +450F:25C2  06 00 23 01 00 21                    db       06h, 00h, 23h, 01h, 00h, 21h +450F:25C8  08 00 28 23 24 00                    db       08h, 00h, 28h, 23h, 24h, 00h +450F:25CE  21 08 00 1F 02 00                    db       21h, 08h, 00h, 1Fh, 02h, 00h +450F:25D4  23 E9 03 0A 2B 06                    db       23h,0E9h, 03h, 0Ah, 2Bh, 06h +450F:25DA  00 23 34 00 21 08                    db       00h, 23h, 34h, 00h, 21h, 08h +450F:25E0  00 1F 70 00 23 01                    db       00h, 1Fh, 70h, 00h, 23h, 01h +450F:25E6  00 0A 2B 37 00 1F                    db       00h, 0Ah, 2Bh, 37h, 00h, 1Fh +450F:25EC  04 00 23 33 27 0A                    db       04h, 00h, 23h, 33h, 27h, 0Ah +450F:25F2  2B 2D 00 23 00 00                    db       2Bh, 2Dh, 00h, 23h, 00h, 00h +450F:25F8  21 08 00 23 01 00                    db       21h, 08h, 00h, 23h, 01h, 00h +450F:25FE  21 5A 00 23 0D 00                    db       21h, 5Ah, 00h, 23h, 0Dh, 00h +450F:2604  23 EF 03 27 01 00                    db       23h,0EFh, 03h, 27h, 01h, 00h +450F:260A  23 00 00 23 28 00                    db       23h, 00h, 00h, 23h, 28h, 00h +450F:2610  23 80 26 27 08 00                    db       23h, 80h, 26h, 27h, 08h, 00h +450F:2616  23 6A 0B 1F 02 00                    db       23h, 6Ah, 0Bh, 1Fh, 02h, 00h +450F:261C  23 EF 03 27 1D 00                    db       23h,0EFh, 03h, 27h, 1Dh, 00h +450F:2622  1F 70 00 23 00 00                    db       1Fh, 70h, 00h, 23h, 00h, 00h +450F:2628  0A 2B 37 00 1F 04                    db       0Ah, 2Bh, 37h, 00h, 1Fh, 04h +450F:262E  00 23 32 27 0A 2B                    db       00h, 23h, 32h, 27h, 0Ah, 2Bh +450F:2634  2D 00 23 00 00 21                    db       2Dh, 00h, 23h, 00h, 00h, 21h +450F:263A  08 00 23 01 00 21                    db       08h, 00h, 23h, 01h, 00h, 21h +450F:2640  5A 00 23 00 00 23                    db       5Ah, 00h, 23h, 00h, 00h, 23h +450F:2646  28 00 23 80 26 27                    db       28h, 00h, 23h, 80h, 26h, 27h +450F:264C  08 00 23 0D 00 23                    db       08h, 00h, 23h, 0Dh, 00h, 23h +450F:2652  EF 03 27 01 00 23                    db      0EFh, 03h, 27h, 01h, 00h, 23h +450F:2658  69 0B 1F 02 00 23                    db       69h, 0Bh, 1Fh, 02h, 00h, 23h +450F:265E  EF 03 27 1D 00 1F                    db      0EFh, 03h, 27h, 1Dh, 00h, 1Fh +450F:2664  04 00 23 34 27 0A                    db       04h, 00h, 23h, 34h, 27h, 0Ah +450F:266A  2B 12 00 23 01 00                    db       2Bh, 12h, 00h, 23h, 01h, 00h +450F:2670  21 08 00 23 73 0B                    db       21h, 08h, 00h, 23h, 73h, 0Bh +450F:2676  1F 02 00 23 EF 03                    db       1Fh, 02h, 00h, 23h,0EFh, 03h +450F:267C  27 1D 00 28 23 02                    db       27h, 1Dh, 00h, 28h, 23h, 02h +450F:2682  00 21 5A 00 28 23                    db       00h, 21h, 5Ah, 00h, 28h, 23h +450F:2688  92 10 21 08 00 1F                    db       92h, 10h, 21h, 08h, 00h, 1Fh +450F:268E  5A 00 23 02 00 0A                    db       5Ah, 00h, 23h, 02h, 00h, 0Ah +450F:2694  2B 06 00 23 01 00                    db       2Bh, 06h, 00h, 23h, 01h, 00h +450F:269A  21 08 00 28 23 28                    db       21h, 08h, 00h, 28h, 23h, 28h +450F:26A0  27 27 32 00 23 92                    db       27h, 27h, 32h, 00h, 23h, 92h +450F:26A6  10 21 08 00 23 03                    db       10h, 21h, 08h, 00h, 23h, 03h +450F:26AC  00 21 5A 00 23 0F                    db       00h, 21h, 5Ah, 00h, 23h, 0Fh +450F:26B2  00 21 26 00 28 23                    db       00h, 21h, 26h, 00h, 28h, 23h +450F:26B8  92 10 21 08 00 27                    db       92h, 10h, 21h, 08h, 00h, 27h +450F:26BE  3B 00 28 23 10 00                    db       3Bh, 00h, 28h, 23h, 10h, 00h +450F:26C4  21 26 00 23 92 10                    db       21h, 26h, 00h, 23h, 92h, 10h +450F:26CA  21 08 00 28 23 11                    db       21h, 08h, 00h, 28h, 23h, 11h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 651 + +450F:26D0  00 21 26 00 27 3C                    db       00h, 21h, 26h, 00h, 27h, 3Ch +450F:26D6  00 23 06 00 23 EF                    db       00h, 23h, 06h, 00h, 23h,0EFh +450F:26DC  03 27 31 00 23 92                    db       03h, 27h, 31h, 00h, 23h, 92h +450F:26E2  10 21 08 00 28 23                    db       10h, 21h, 08h, 00h, 28h, 23h +450F:26E8  12 00 21 26 00 23                    db       12h, 00h, 21h, 26h, 00h, 23h +450F:26EE  08 00 23 EC 03 27                    db       08h, 00h, 23h,0ECh, 03h, 27h +450F:26F4  31 00 23 92 10 21                    db       31h, 00h, 23h, 92h, 10h, 21h +450F:26FA  08 00 28 23 0F 00                    db       08h, 00h, 28h, 23h, 0Fh, 00h +450F:2700  EF23                 data_1429       dw      0EF23h                  ; Data table (indexed access) +450F:2702  03 27                                db       03h, 27h +450F:2704  0028                 data_1430       dw      28h                     ;  xref 450F:18FF +450F:2706  1F 08 00 23 00 00                    db       1Fh, 08h, 00h, 23h, 00h, 00h +450F:270C  0A 2B                                db       0Ah, 2Bh +450F:270E  0006                 data_1431       dw      6                       ; Data table (indexed access) +450F:2710  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:2716  28 23 0F 00 23 EC                    db       28h, 23h, 0Fh, 00h, 23h,0ECh +450F:271C  03 27 28 00 1F 08                    db       03h, 27h, 28h, 00h, 1Fh, 08h +450F:2722  00 23 00 00 0A 2B                    db       00h, 23h, 00h, 00h, 0Ah, 2Bh +450F:2728  06 00 23 92 10 21                    db       06h, 00h, 23h, 92h, 10h, 21h +450F:272E  08 00 28 23 10 00                    db       08h, 00h, 28h, 23h, 10h, 00h +450F:2734  21 26 00 28 23 1E                    db       21h, 26h, 00h, 28h, 23h, 1Eh +450F:273A  27 27 2C 00 23 00                    db       27h, 27h, 2Ch, 00h, 23h, 00h +450F:2740  00 23 1E 00 23 60                    db       00h, 23h, 1Eh, 00h, 23h, 60h +450F:2746  27 27 08 00 23 07                    db       27h, 27h, 08h, 00h, 23h, 07h +450F:274C  00 23 EF 03 27 31                    db       00h, 23h,0EFh, 03h, 27h, 31h +450F:2752  00 23 13 00 21 26                    db       00h, 23h, 13h, 00h, 21h, 26h +450F:2758  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:275E  00 28 23 26 00 23                    db       00h, 28h, 23h, 26h, 00h, 23h +450F:2764  EF 03 27 28 00 1F                    db      0EFh, 03h, 27h, 28h, 00h, 1Fh +450F:276A  08 00 23 00 00 0A                    db       08h, 00h, 23h, 00h, 00h, 0Ah +450F:2770  2B 0F 00 23 00 00                    db       2Bh, 0Fh, 00h, 23h, 00h, 00h +450F:2776  23 0A 00 23 60 27                    db       23h, 0Ah, 00h, 23h, 60h, 27h +450F:277C  27 08 00 2D 1C 00                    db       27h, 08h, 00h, 2Dh, 1Ch, 00h +450F:2782  1F 26 00 23 15 00                    db       1Fh, 26h, 00h, 23h, 15h, 00h +450F:2788  0C 2B 12 00 23 1E                    db       0Ch, 2Bh, 12h, 00h, 23h, 1Eh +450F:278E  27 27 2A 00 23 00                    db       27h, 27h, 2Ah, 00h, 23h, 00h +450F:2794  00 23 02 00 23 9F                    db       00h, 23h, 02h, 00h, 23h, 9Fh +450F:279A  27 27 08 00 28 23                    db       27h, 27h, 08h, 00h, 28h, 23h +450F:27A0  C5 09 27 10 00 23                    db      0C5h, 09h, 27h, 10h, 00h, 23h +450F:27A6  C6 09 27 10 00 23                    db      0C6h, 09h, 27h, 10h, 00h, 23h +450F:27AC  C7 09 27 10 00 27                    db      0C7h, 09h, 27h, 10h, 00h, 27h +450F:27B2  3D 00 28 1F 40 00                    db       3Dh, 00h, 28h, 1Fh, 40h, 00h +450F:27B8  21 08 00 1F 08 00                    db       21h, 08h, 00h, 1Fh, 08h, 00h +450F:27BE  23 00 00 0A 2B 09                    db       23h, 00h, 00h, 0Ah, 2Bh, 09h +450F:27C4  00 23 01 00 21 08                    db       00h, 23h, 01h, 00h, 21h, 08h +450F:27CA  00 2D 06 00 23 00                    db       00h, 2Dh, 06h, 00h, 23h, 00h +450F:27D0  00 21 08 00 28 1F                    db       00h, 21h, 08h, 00h, 28h, 1Fh +450F:27D6  40 00 21 08 00 28                    db       40h, 00h, 21h, 08h, 00h, 28h +450F:27DC  1F 5C 00 21 08 00                    db       1Fh, 5Ch, 00h, 21h, 08h, 00h +450F:27E2  1F 08 00 23 00 00                    db       1Fh, 08h, 00h, 23h, 00h, 00h +450F:27E8  0A 2B 06 00 23 92                    db       0Ah, 2Bh, 06h, 00h, 23h, 92h +450F:27EE  10 21 08 00 28 23                    db       10h, 21h, 08h, 00h, 28h, 23h +450F:27F4  00 00 23 07 00 23                    db       00h, 00h, 23h, 07h, 00h, 23h +450F:27FA  1E 28 27 08 00 23                    db       1Eh, 28h, 27h, 08h, 00h, 23h +450F:2800  00 00 23 01 00 23                    db       00h, 00h, 23h, 01h, 00h, 23h +450F:2806  31 28 27 08 00 23                    db       31h, 28h, 27h, 08h, 00h, 23h +450F:280C  01 00 21 5C 00 23                    db       01h, 00h, 21h, 5Ch, 00h, 23h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 652 + +450F:2812  10 00 21 26 00 23                    db       10h, 00h, 21h, 26h, 00h, 23h +450F:2818  92 10 21 08 00 28                    db       92h, 10h, 21h, 08h, 00h, 28h +450F:281E  23 C4 09 23 EC 03                    db       23h,0C4h, 09h, 23h,0ECh, 03h +450F:2824  27 13 00 23 09 00                    db       27h, 13h, 00h, 23h, 09h, 00h +450F:282A  23 EC 03 27 31 00                    db       23h,0ECh, 03h, 27h, 31h, 00h +450F:2830  28 23 C3 09 23 2C                    db       28h, 23h,0C3h, 09h, 23h, 2Ch +450F:2836  04 27 13 00 28 23                    db       04h, 27h, 13h, 00h, 28h, 23h +450F:283C  00 00 23 01 00 23                    db       00h, 00h, 23h, 01h, 00h, 23h +450F:2842  4E 28 27 08 00 23                    db       4Eh, 28h, 27h, 08h, 00h, 23h +450F:2848  92 10 21 08 00 28                    db       92h, 10h, 21h, 08h, 00h, 28h +450F:284E  23 EA 09 23 21 04                    db       23h,0EAh, 09h, 23h, 21h, 04h +450F:2854  27 13 00 28 23 92                    db       27h, 13h, 00h, 28h, 23h, 92h +450F:285A  10 21 08 00 23 30                    db       10h, 21h, 08h, 00h, 23h, 30h +450F:2860  27 27 32 00 23 F3                    db       27h, 27h, 32h, 00h, 23h,0F3h +450F:2866  09 27 10 00 23 00                    db       09h, 27h, 10h, 00h, 23h, 00h +450F:286C  00 21 6E 00 28 1F                    db       00h, 21h, 6Eh, 00h, 28h, 1Fh +450F:2872  6E 00 21 08 00 28                    db       6Eh, 00h, 21h, 08h, 00h, 28h +450F:2878  1F 72 00 23 00 00                    db       1Fh, 72h, 00h, 23h, 00h, 00h +450F:287E  0A 2B 15 00 23 92                    db       0Ah, 2Bh, 15h, 00h, 23h, 92h +450F:2884  10 21 08 00 23 00                    db       10h, 21h, 08h, 00h, 23h, 00h +450F:288A  00 23 03 00 23 9E                    db       00h, 23h, 03h, 00h, 23h, 9Eh +450F:2890  28 27 08 00 2D 06                    db       28h, 27h, 08h, 00h, 2Dh, 06h +450F:2896  00 23 01 00 21 08                    db       00h, 23h, 01h, 00h, 21h, 08h +450F:289C  00 28 23 35 04 27                    db       00h, 28h, 23h, 35h, 04h, 27h +450F:28A2  3E 00 28 23 29 27                    db       3Eh, 00h, 28h, 23h, 29h, 27h +450F:28A8  27 2C 00 23 02 00                    db       27h, 2Ch, 00h, 23h, 02h, 00h +450F:28AE  23 34 04 27 01 00                    db       23h, 34h, 04h, 27h, 01h, 00h +450F:28B4  23 37 27 27 32 00                    db       23h, 37h, 27h, 27h, 32h, 00h +450F:28BA  23 16 00 21 26 00                    db       23h, 16h, 00h, 21h, 26h, 00h +450F:28C0  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:28C6  28 1F 74 00 23 00                    db       28h, 1Fh, 74h, 00h, 23h, 00h +450F:28CC  00 0A 2B 09 00 23                    db       00h, 0Ah, 2Bh, 09h, 00h, 23h +450F:28D2  92 10 21 08 00 2D                    db       92h, 10h, 21h, 08h, 00h, 2Dh +450F:28D8  06 00 23 03 00 21                    db       06h, 00h, 23h, 03h, 00h, 21h +450F:28DE  08 00 28 23 82 0A                    db       08h, 00h, 28h, 23h, 82h, 0Ah +450F:28E4  23 36 04 27 0C 00                    db       23h, 36h, 04h, 27h, 0Ch, 00h +450F:28EA  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:28F0  28 23 19 00 21 26                    db       28h, 23h, 19h, 00h, 21h, 26h +450F:28F6  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:28FC  00 28 23 00 00 23                    db       00h, 28h, 23h, 00h, 00h, 23h +450F:2902  02 00 23 11 29 27                    db       02h, 00h, 23h, 11h, 29h, 27h +450F:2908  08 00 23 92 10 21                    db       08h, 00h, 23h, 92h, 10h, 21h +450F:290E  08 00 28 23 E8 03                    db       08h, 00h, 28h, 23h,0E8h, 03h +450F:2914  21 02 00 23 2A 00                    db       21h, 02h, 00h, 23h, 2Ah, 00h +450F:291A  23 00 40 02 23 E7                    db       23h, 00h, 40h, 02h, 23h,0E7h +450F:2920  00 23 1C 01 27 19                    db       00h, 23h, 1Ch, 01h, 27h, 19h +450F:2926  00 23 02 00 21 98                    db       00h, 23h, 02h, 00h, 21h, 98h +450F:292C  00 28 23 92 10 21                    db       00h, 28h, 23h, 92h, 10h, 21h +450F:2932  08 00 23 00 00 23                    db       08h, 00h, 23h, 00h, 00h, 23h +450F:2938  02 00 23 41 29 27                    db       02h, 00h, 23h, 41h, 29h, 27h +450F:293E  08 00 28 23 E2 0A                    db       08h, 00h, 28h, 23h,0E2h, 0Ah +450F:2944  23 21 04 23 29 04                    db       23h, 21h, 04h, 23h, 29h, 04h +450F:294A  27 1D 00 28 1F 4A                    db       27h, 1Dh, 00h, 28h, 1Fh, 4Ah +450F:2950  00 21 08 00 28 23                    db       00h, 21h, 08h, 00h, 28h, 23h +450F:2956  46 0B 27 10 00 23                    db       46h, 0Bh, 27h, 10h, 00h, 23h +450F:295C  92 10 21 08 00 28                    db       92h, 10h, 21h, 08h, 00h, 28h +450F:2962  23 4C 0B 27 10 00                    db       23h, 4Ch, 0Bh, 27h, 10h, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 653 + +450F:2968  23 31 27 27 32 00                    db       23h, 31h, 27h, 27h, 32h, 00h +450F:296E  23 05 00 23 E8 03                    db       23h, 05h, 00h, 23h,0E8h, 03h +450F:2974  27 22 00 23 92 10                    db       27h, 22h, 00h, 23h, 92h, 10h +450F:297A  21 08 00 28 27 1C                    db       21h, 08h, 00h, 28h, 27h, 1Ch +450F:2980  00 23 42 0B 27 10                    db       00h, 23h, 42h, 0Bh, 27h, 10h +450F:2986  00 23 31 27 27 06                    db       00h, 23h, 31h, 27h, 27h, 06h +450F:298C  00 23 1D 27 27 32                    db       00h, 23h, 1Dh, 27h, 27h, 32h +450F:2992  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:2998  00 28 23 A3 0F 23                    db       00h, 28h, 23h,0A3h, 0Fh, 23h +450F:299E  F2 03 27 0C 00 23                    db      0F2h, 03h, 27h, 0Ch, 00h, 23h +450F:29A4  92 10 21 08 00 28                    db       92h, 10h, 21h, 08h, 00h, 28h +450F:29AA  23 01 00 21 26 00                    db       23h, 01h, 00h, 21h, 26h, 00h +450F:29B0  23 0A 00 23 F2 03                    db       23h, 0Ah, 00h, 23h,0F2h, 03h +450F:29B6  27 31 00 23 92 10                    db       27h, 31h, 00h, 23h, 92h, 10h +450F:29BC  21 08 00 28 23 01                    db       21h, 08h, 00h, 28h, 23h, 01h +450F:29C2  00 21 26 00 23 0B                    db       00h, 21h, 26h, 00h, 23h, 0Bh +450F:29C8  00 23 F2 03 27 31                    db       00h, 23h,0F2h, 03h, 27h, 31h +450F:29CE  00 23 92 10 21 08                    db       00h, 23h, 92h, 10h, 21h, 08h +450F:29D4  00 28 23 01 00 21                    db       00h, 28h, 23h, 01h, 00h, 21h +450F:29DA  26 00 23 0C 00 23                    db       26h, 00h, 23h, 0Ch, 00h, 23h +450F:29E0  F2 03 27 31 00 23                    db      0F2h, 03h, 27h, 31h, 00h, 23h +450F:29E6  92 10 21 08 00 28                    db       92h, 10h, 21h, 08h, 00h, 28h +450F:29EC  23 0A 00 23 F2 03                    db       23h, 0Ah, 00h, 23h,0F2h, 03h +450F:29F2  27 31 00 23 04 00                    db       27h, 31h, 00h, 23h, 04h, 00h +450F:29F8  21 26 00 23 92 10                    db       21h, 26h, 00h, 23h, 92h, 10h +450F:29FE  21 08 00 28 1F 7E                    db       21h, 08h, 00h, 28h, 1Fh, 7Eh +450F:2A04  00 21 08 00 28 23                    db       00h, 21h, 08h, 00h, 28h, 23h +450F:2A0A  05 00 21 26 00 23                    db       05h, 00h, 21h, 26h, 00h, 23h +450F:2A10  00 10 23 F2 03 27                    db       00h, 10h, 23h,0F2h, 03h, 27h +450F:2A16  3F 00 23 92 10 21                    db       3Fh, 00h, 23h, 92h, 10h, 21h +450F:2A1C  08 00 28 23 03 00                    db       08h, 00h, 28h, 23h, 03h, 00h +450F:2A22  23 37 04 27 01 00                    db       23h, 37h, 04h, 27h, 01h, 00h +450F:2A28  23 92 10 21 08 00                    db       23h, 92h, 10h, 21h, 08h, 00h +450F:2A2E  28 23 71 0B 27 10                    db       28h, 23h, 71h, 0Bh, 27h, 10h +450F:2A34  00 23 34 27 27 32                    db       00h, 23h, 34h, 27h, 27h, 32h +450F:2A3A  00 23 92                             db       00h, 23h, 92h +450F:2A3D                       loc_2373: +450F:2A3D  10 21                                adc     [bx+di],ah +450F:2A3F  08 00                                or      [bx+si],al +450F:2A41  28 23                                sub     [bp+di],ah +450F:2A43  0D 2100                              or      ax,2100h +450F:2A46  26: 00 23                            add     es:[bp+di],ah +450F:2A49  92                                   xchg    dx,ax +450F:2A4A  10 21                                adc     [bx+di],ah +450F:2A4C  08 00                                or      [bx+si],al +450F:2A4E  28 1F                                sub     [bx],bl +450F:2A50  4A                                   dec     dx +450F:2A51  00 23                                add     [bp+di],ah +450F:2A53  02 00                                add     al,[bx+si] +450F:2A55  0A 2B                                or      ch,[bp+di] +450F:2A57  06                                   push    es +450F:2A58  00 23                                add     [bp+di],ah +450F:2A5A  01 00                                add     [bx+si],ax +450F:2A5C  21 08                                and     [bx+si],cx +450F:2A5E  00 28                                add     [bx+si],ch +450F:2A60  23 91 270B                           and     dx,ds:data_36e[bx+di]   ; (0000:270B=113h) +450F:2A64  10 00                                adc     [bx+si],al +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 654 + +450F:2A66  23 92 270B                           and     dx,[bp+si+270Bh] +450F:2A6A  10 00                                adc     [bx+si],al +450F:2A6C  23 92 2110                           and     dx,[bp+si+2110h] +450F:2A70  08 00                                or      [bx+si],al +450F:2A72  28 23                                sub     [bp+di],ah +450F:2A74  92                                   xchg    dx,ax +450F:2A75  10 21                                adc     [bx+di],ah +450F:2A77  08 00                                or      [bx+si],al +450F:2A79  23 4D 01                             and     cx,[di+1] +450F:2A7C  23 42 04                             and     ax,[bp+si+4] +450F:2A7F  27                                   daa                             ; Decimal adjust +450F:2A80  0C 00                                or      al,0 +450F:2A82  28 23                                sub     [bp+di],ah +450F:2A84  24 27                                and     al,27h                  ; ''' +450F:2A86  27                                   daa                             ; Decimal adjust +450F:2A87  32 00                                xor     al,[bx+si] +450F:2A89  23 4C 0C                             and     cx,[si+0Ch] +450F:2A8C  27                                   daa                             ; Decimal adjust +450F:2A8D  10 00                                adc     [bx+si],al +450F:2A8F  23 92 2110                           and     dx,[bp+si+2110h] +450F:2A93  08 00                                or      [bx+si],al +450F:2A95  28 23                                sub     [bp+di],ah +450F:2A97  92                                   xchg    dx,ax +450F:2A98  10 21                                adc     [bx+di],ah +450F:2A9A  08 00                                or      [bx+si],al +450F:2A9C  23 56 0C                             and     dx,[bp+0Ch] +450F:2A9F  27                                   daa                             ; Decimal adjust +450F:2AA0  10 00                                adc     [bx+si],al +450F:2AA2  23 01                                and     ax,[bx+di] +450F:2AA4  00 21                                add     [bx+di],ah +450F:2AA6  94                                   xchg    sp,ax +450F:2AA7  00 28                                add     [bx+si],ch +450F:2AA9  23 71 01                             and     si,[bx+di+1] +450F:2AAC  23 27                                and     sp,[bx] +450F:2AAE  04 27                                add     al,27h                  ; ''' +450F:2AB0  0C 00                                or      al,0 +450F:2AB2  23 92 2110                           and     dx,[bp+si+2110h] +450F:2AB6  08 00                                or      [bx+si],al +450F:2AB8  28 23                                sub     [bp+di],ah +450F:2ABA  01 00                                add     [bx+si],ax +450F:2ABC  21 A2 2800                           and     [bp+si+2800h],sp +450F:2AC0  23 00                                and     ax,[bx+si] +450F:2AC2  00 21                                add     [bx+di],ah +450F:2AC4  A2 2800                              mov     ds:data_37e,al          ; (0000:2800=12h) +450F:2AC7  1F                                   pop     ds +450F:2AC8  A4                                   movsb                           ; Mov [si] to es:[di] +450F:2AC9  00 23                                add     [bp+di],ah +450F:2ACB  00 00                                add     [bx+si],al +450F:2ACD  0A 2B                                or      ch,[bp+di] +450F:2ACF  18 00                                sbb     [bx+si],al +450F:2AD1  23 2C                                and     bp,[si] +450F:2AD3  00 23                                add     [bp+di],ah +450F:2AD5  32 00                                xor     al,[bx+si] +450F:2AD7  27                                   daa                             ; Decimal adjust +450F:2AD8  40                                   inc     ax +450F:2AD9  00 1F                                add     [bx],bl +450F:2ADB  0A 00                                or      al,[bx+si] +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 655 + +450F:2ADD  27                                   daa                             ; Decimal adjust +450F:2ADE  0D 2300                              or      ax,2300h +450F:2AE1  0C 00                                or      al,0 +450F:2AE3  21 A6 2D00                           and     [bp+2D00h],sp +450F:2AE7  3C 00                                cmp     al,0 +450F:2AE9  1F                                   pop     ds +450F:2AEA  A4                                   movsb                           ; Mov [si] to es:[di] +450F:2AEB  00 23                                add     [bp+di],ah +450F:2AED  01 00                                add     [bx+si],ax +450F:2AEF  0A 2B                                or      ch,[bp+di] +450F:2AF1  09 00                                or      [bx+si],ax +450F:2AF3  23 01                                and     ax,[bx+di] +450F:2AF5  00 27                                add     [bx],ah +450F:2AF7  0D 2D00                              or      ax,2D00h +450F:2AFA  29 00                                sub     [bx+si],ax +450F:2AFC  1F                                   pop     ds +450F:2AFD  A4                                   movsb                           ; Mov [si] to es:[di] +450F:2AFE  00 23                                add     [bp+di],ah +450F:2B00  02 00                                add     al,[bx+si] +450F:2B02  0A 2B                                or      ch,[bp+di] +450F:2B04  09 00                                or      [bx+si],ax +450F:2B06  23 0B                                and     cx,[bp+di] +450F:2B08  00 27                                add     [bx],ah +450F:2B0A  0D 2D00                              or      ax,2D00h +450F:2B0D  16                                   push    ss +450F:2B0E  00 1F                                add     [bx],bl +450F:2B10  A4                                   movsb                           ; Mov [si] to es:[di] +450F:2B11  00 23                                add     [bp+di],ah +450F:2B13  03 00                                add     ax,[bx+si] +450F:2B15  0A 2B                                or      ch,[bp+di] +450F:2B17  0C 00                                or      al,0 +450F:2B19  23 21                                and     sp,[bx+di] +450F:2B1B  00 27                                add     [bx],ah +450F:2B1D  0D 2300                              or      ax,2300h +450F:2B20  0C 00                                or      al,0 +450F:2B22  21 A6 1F00                           and     [bp+1F00h],sp +450F:2B26  A6                                   cmpsb                           ; Cmp [si] to es:[di] +450F:2B27  00 23                                add     [bp+di],ah +450F:2B29  0C 00                                or      al,0 +450F:2B2B  0E                                   push    cs +450F:2B2C  2B 0F                                sub     cx,[bx] +450F:2B2E  00 23                                add     [bp+di],ah +450F:2B30  00 00                                add     [bx+si],al +450F:2B32  23 03                                and     ax,[bp+di] +450F:2B34  00 23                                add     [bp+di],ah +450F:2B36  C7 2A 27 08 00 2D                    db      0C7h, 2Ah, 27h, 08h, 00h, 2Dh +450F:2B3C  1B 00 23 00 00 21                    db       1Bh, 00h, 23h, 00h, 00h, 21h +450F:2B42  A6 00 23 3C 00 23                    db      0A6h, 00h, 23h, 3Ch, 00h, 23h +450F:2B48  C8 00 27 40 00 23                    db      0C8h, 00h, 27h, 40h, 00h, 23h +450F:2B4E  00 00 1F 0A 00 23                    db       00h, 00h, 1Fh, 0Ah, 00h, 23h +450F:2B54  C7 2A 27 08 00 28                    db      0C7h, 2Ah, 27h, 08h, 00h, 28h +450F:2B5A  1F A4 00 23 01 00                    db       1Fh,0A4h, 00h, 23h, 01h, 00h +450F:2B60  0A 2B 06 00 23 03                    db       0Ah, 2Bh, 06h, 00h, 23h, 03h +450F:2B66  00 27 02 00 1F A8                    db       00h, 27h, 02h, 00h, 1Fh,0A8h +450F:2B6C  00 23 01 00 02 21                    db       00h, 23h, 01h, 00h, 02h, 21h +450F:2B72  A8 00 1F A8 00 23                    db      0A8h, 00h, 1Fh,0A8h, 00h, 23h +450F:2B78  04 00 0A 2B 0F 00                    db       04h, 00h, 0Ah, 2Bh, 0Fh, 00h +           nlure.lst                           Sourcer v6.09   17-Nov- 5   5:53 pm   Page 656 + +450F:2B7E  23 00 00 23 02 00                    db       23h, 00h, 00h, 23h, 02h, 00h +450F:2B84  23 5A 2B 27 08 00                    db       23h, 5Ah, 2Bh, 27h, 08h, 00h +450F:2B8A  2D 34 00 1F A8 00                    db       2Dh, 34h, 00h, 1Fh,0A8h, 00h +450F:2B90  23 07 00 0E 2B 0F                    db       23h, 07h, 00h, 0Eh, 2Bh, 0Fh +450F:2B96  00 23 00 00 23 01                    db       00h, 23h, 00h, 00h, 23h, 01h +450F:2B9C  00 23 5A 2B 27 08                    db       00h, 23h, 5Ah, 2Bh, 27h, 08h +450F:2BA2  00 2D 1B 00 23 00                    db       00h, 2Dh, 1Bh, 00h, 23h, 00h +450F:2BA8  00 21 A8 00 23 3C                    db       00h, 21h,0A8h, 00h, 23h, 3Ch +450F:2BAE  00 23 C8 00 27 40                    db       00h, 23h,0C8h, 00h, 27h, 40h +450F:2BB4  00 23 00 00 1F 0A                    db       00h, 23h, 00h, 00h, 1Fh, 0Ah +450F:2BBA  00 23 5A 2B 27 08                    db       00h, 23h, 5Ah, 2Bh, 27h, 08h +450F:2BC0  00 28 1F A4 00 23                    db       00h, 28h, 1Fh,0A4h, 00h, 23h +450F:2BC6  01 00 0A 2B 06 00                    db       01h, 00h, 0Ah, 2Bh, 06h, 00h +450F:2BCC  23 18 00 27 02 00                    db       23h, 18h, 00h, 27h, 02h, 00h +450F:2BD2  23 14 00 23 96 00                    db       23h, 14h, 00h, 23h, 96h, 00h +450F:2BD8  27 40 00 23 00 00                    db       27h, 40h, 00h, 23h, 00h, 00h +450F:2BDE  1F 0A 00 23 C2 2B                    db       1Fh, 0Ah, 00h, 23h,0C2h, 2Bh +450F:2BE4  27 08 00 28 27 41                    db       27h, 08h, 00h, 28h, 27h, 41h +450F:2BEA  00 28 23 12 00 27                    db       00h, 28h, 23h, 12h, 00h, 27h +450F:2BF0  0D 00 28 23 15 00                    db       0Dh, 00h, 28h, 23h, 15h, 00h +450F:2BF6  27 0D 00 28 23 0C                    db       27h, 0Dh, 00h, 28h, 23h, 0Ch +450F:2BFC  00 27 0D 00 28 23                    db       00h, 27h, 0Dh, 00h, 28h, 23h +450F:2C02  0C 00 27 0D 00 28                    db       0Ch, 00h, 27h, 0Dh, 00h, 28h +450F:2C08  23 15 00 27 0D 00                    db       23h, 15h, 00h, 27h, 0Dh, 00h +450F:2C0E  28 23 0F 00 27 0D                    db       28h, 23h, 0Fh, 00h, 27h, 0Dh +450F:2C14  00 28 23 0E 00 27                    db       00h, 28h, 23h, 0Eh, 00h, 27h +450F:2C1A  0D 00 28 23 15 00                    db       0Dh, 00h, 28h, 23h, 15h, 00h +450F:2C20  27 42 00 1F 0A 00                    db       27h, 42h, 00h, 1Fh, 0Ah, 00h +450F:2C26  21 08 00 1F 08 00                    db       21h, 08h, 00h, 1Fh, 08h, 00h +450F:2C2C  23 00 00 0A 2B 06                    db       23h, 00h, 00h, 0Ah, 2Bh, 06h +450F:2C32  00 23 19 00 27 0D                    db       00h, 23h, 19h, 00h, 27h, 0Dh +450F:2C38  00 28 23 19 00 27                    db       00h, 28h, 23h, 19h, 00h, 27h +450F:2C3E  0D 00 28 23 04 00                    db       0Dh, 00h, 28h, 23h, 04h, 00h +450F:2C44  27 0D 00                             db       27h, 0Dh, 00h +450F:2C47                       loc_2374: +450F:2C47  23 16 2701                           and     dx,ds:data_35e          ; (0000:2701=2EE4h) +450F:2C4B  10 00                                adc     [bx+si],al +450F:2C4D  23 01                                and     ax,[bx+di] +450F:2C4F  00 21                                add     [bx+di],ah +450F:2C51  08 00                                or      [bx+si],al +450F:2C53  28 00                                sub     [bx+si],al +450F:2C55  000B[00]                             db      11 dup (0) + +                                scripts_seg     ends + + + +                                ;--------------------------------------------------  messages_seg ---------- + +                                messages_seg    segment byte public +                                                assume cs:messages_seg, ds:messages_seg, ss:stack_seg_k + +47D5:0000  E8                   data_1437       db      0E8h                    ;  xref 273F:63CC +47D5:0001  03 5C 00 E9 03 EE                    db       03h, 5Ch, 00h,0E9h, 03h,0EEh +47D5:0007  00 11 04 EE 00 EA                    db       00h, 11h, 04h,0EEh, 00h,0EAh +47D5:000D  03 A0 01 12 04 EE                    db       03h,0A0h, 01h, 12h, 04h,0EEh +47D5:0013  00 EB 03 B6 01 F2                    db       00h,0EBh, 03h,0B6h, 01h,0F2h +47D5:0019  03 E8 01 EC 03 F2                    db       03h,0E8h, 01h,0ECh, 03h,0F2h +47D5:001F  03 ED 03 12 03 F1                    db       03h,0EDh, 03h, 12h, 03h,0F1h +47D5:0025  03 DC 02 EE 03 76                    db       03h,0DCh, 02h,0EEh, 03h, 76h +47D5:002B  03 F0 03 44 03 EF                    db       03h,0F0h, 03h, 44h, 03h,0EFh +47D5:0031  03 A8 03 29 04 46                    db       03h,0A8h, 03h, 29h, 04h, 46h +47D5:0037  04 20 04 60 04 1F                    db       04h, 20h, 04h, 60h, 04h, 1Fh +47D5:003D  04 40 02 21 04 5E                    db       04h, 40h, 02h, 21h, 04h, 5Eh +47D5:0043  02 2B 04 78 02 36                    db       02h, 2Bh, 04h, 78h, 02h, 36h +47D5:0049  04 B6 02 22 04 2C                    db       04h,0B6h, 02h, 22h, 04h, 2Ch +47D5:004F  04 27 04 12 02 42                    db       04h, 27h, 04h, 12h, 02h, 42h +47D5:0055  04 92 02 34 04 AC                    db       04h, 92h, 02h, 34h, 04h,0ACh +47D5:005B  02 80 00 00 00 A1                    db       02h, 80h, 00h, 00h, 00h,0A1h +47D5:0061  80 0B 00 EC 80 10                    db       80h, 0Bh, 00h,0ECh, 80h, 10h +47D5:0067  00 68 80 11 00 0F                    db       00h, 68h, 80h, 11h, 00h, 0Fh +47D5:006D  8A 2D 00 08 81 12                    db       8Ah, 2Dh, 00h, 08h, 81h, 12h +47D5:0073  00 1E 81 19 00 1F                    db       00h, 1Eh, 81h, 19h, 00h, 1Fh +47D5:0079  81 1A 00 82 80 02                    db       81h, 1Ah, 00h, 82h, 80h, 02h +47D5:007F  00 89 80 06 00 83                    db       00h, 89h, 80h, 06h, 00h, 83h +47D5:0085  80 03 00 88 80 04                    db       80h, 03h, 00h, 88h, 80h, 04h +47D5:008B  00 A4 80 33 00 75                    db       00h,0A4h, 80h, 33h, 00h, 75h +47D5:0091  00 05 00 9E 00 07                    db       00h, 05h, 00h, 9Eh, 00h, 07h +47D5:0097  00 9F 00 08 00 A0                    db       00h, 9Fh, 00h, 08h, 00h,0A0h +47D5:009D  00 09 00 76 00 0D                    db       00h, 09h, 00h, 76h, 00h, 0Dh +47D5:00A3  00 00 00 0E 00 09                    db       00h, 00h, 00h, 0Eh, 00h, 09h +47D5:00A9  81 13 00 0A 81 14                    db       81h, 13h, 00h, 0Ah, 81h, 14h +47D5:00AF  00 18 81 16 00 14                    db       00h, 18h, 81h, 16h, 00h, 14h +47D5:00B5  81 17 00 13 81 18                    db       81h, 17h, 00h, 13h, 81h, 18h +47D5:00BB  00 15 88 28 00 16                    db       00h, 15h, 88h, 28h, 00h, 16h +47D5:00C1  81 1B 00 26 81 1C                    db       81h, 1Bh, 00h, 26h, 81h, 1Ch +47D5:00C7  00 2D 81 1D 00 2E                    db       00h, 2Dh, 81h, 1Dh, 00h, 2Eh +47D5:00CD  81 1E 00 2F 81 1F                    db       81h, 1Eh, 00h, 2Fh, 81h, 1Fh +47D5:00D3  00 73 80 21 00 37                    db       00h, 73h, 80h, 21h, 00h, 37h +47D5:00D9  81 23 00 B1 8C 2F                    db       81h, 23h, 00h,0B1h, 8Ch, 2Fh +47D5:00DF  00 00 00 29 00 4A                    db       00h, 00h, 00h, 29h, 00h, 4Ah +47D5:00E5  81 2A 00 6D 81 2E                    db       81h, 2Ah, 00h, 6Dh, 81h, 2Eh +47D5:00EB  00 FF FF 80 00 00                    db       00h,0FFh,0FFh, 80h, 00h, 00h +47D5:00F1  00 A1 00 0B 00 EC                    db       00h,0A1h, 00h, 0Bh, 00h,0ECh +47D5:00F7  00 10 00 08 01 12                    db       00h, 10h, 00h, 08h, 01h, 12h +47D5:00FD  00 20 01 19 00 20                    db       00h, 20h, 01h, 19h, 00h, 20h +47D5:0103  01 1A 00 6A 00 0F                    db       01h, 1Ah, 00h, 6Ah, 00h, 0Fh +47D5:0109  00 76 00 0D 00 82                    db       00h, 76h, 00h, 0Dh, 00h, 82h +47D5:010F  00 02 00 83 00 03                    db       00h, 02h, 00h, 83h, 00h, 03h +47D5:0115  00 88 00 04 00 A4                    db       00h, 88h, 00h, 04h, 00h,0A4h +47D5:011B  00 33 00 72 01 06                    db       00h, 33h, 00h, 72h, 01h, 06h +47D5:0121  00 75 00 05 00 9E                    db       00h, 75h, 00h, 05h, 00h, 9Eh +47D5:0127  00 07 00 9F 00 08                    db       00h, 07h, 00h, 9Fh, 00h, 08h +47D5:012D  00 A0 00 09 00 7E                    db       00h,0A0h, 00h, 09h, 00h, 7Eh +47D5:0133  00 0A 00 7F 00 20                    db       00h, 0Ah, 00h, 7Fh, 00h, 20h +47D5:0139  00 7B 00 24 00 76                    db       00h, 7Bh, 00h, 24h, 00h, 76h +47D5:013F  00 01 00 76 00 0C                    db       00h, 01h, 00h, 76h, 00h, 0Ch +47D5:0145  00 76 00 2B 00 00                    db       00h, 76h, 00h, 2Bh, 00h, 00h +47D5:014B  00 0E 00 E9 08 2C                    db       00h, 0Eh, 00h,0E9h, 08h, 2Ch +47D5:0151  00 68 00 11 00 18                    db       00h, 68h, 00h, 11h, 00h, 18h +47D5:0157  01 16 00 17 01 17                    db       01h, 16h, 00h, 17h, 01h, 17h +47D5:015D  00 76 00 18 00 76                    db       00h, 76h, 00h, 18h, 00h, 76h +47D5:0163  00 1C 00 14 08 28                    db       00h, 1Ch, 00h, 14h, 08h, 28h +47D5:0169  00 74 00 22 00 20                    db       00h, 74h, 00h, 22h, 00h, 20h +47D5:016F  01 23 00 76 00 2F                    db       01h, 23h, 00h, 76h, 00h, 2Fh +47D5:0175  00 C8 08 29 00 77                    db       00h,0C8h, 08h, 29h, 00h, 77h +47D5:017B  01 2A 00 20 01 1B                    db       01h, 2Ah, 00h, 20h, 01h, 1Bh +47D5:0181  00 20 01 1D 00 76                    db       00h, 20h, 01h, 1Dh, 00h, 76h +47D5:0187  00 1E 00 76 00 1F                    db       00h, 1Eh, 00h, 76h, 00h, 1Fh +47D5:018D  00 20 01 21 00 68                    db       00h, 20h, 01h, 21h, 00h, 68h +47D5:0193  00 13 00 34 01 14                    db       00h, 13h, 00h, 34h, 01h, 14h +47D5:0199  00 6E 01 2E 00 FF                    db       00h, 6Eh, 01h, 2Eh, 00h,0FFh +47D5:019F  FF 76 00 02 00 76                    db      0FFh, 76h, 00h, 02h, 00h, 76h +47D5:01A5  00 06 00 76 00 0D                    db       00h, 06h, 00h, 76h, 00h, 0Dh +47D5:01AB  00 9B 00 0C 00 76                    db       00h, 9Bh, 00h, 0Ch, 00h, 76h +47D5:01B1  00 2B 00 FF FF 82                    db       00h, 2Bh, 00h,0FFh,0FFh, 82h +47D5:01B7  00 02 00 76 00 0D                    db       00h, 02h, 00h, 76h, 00h, 0Dh +47D5:01BD  00 00 00 03 00 00                    db       00h, 00h, 00h, 03h, 00h, 00h +47D5:01C3  00 04 00 AE 0B 0A                    db       00h, 04h, 00h,0AEh, 0Bh, 0Ah +47D5:01C9  00 C0 0B 24 00 C3                    db       00h,0C0h, 0Bh, 24h, 00h,0C3h +47D5:01CF  0C 31 00 76 00 01                    db       0Ch, 31h, 00h, 76h, 00h, 01h +47D5:01D5  00 76 00 0C 00 76                    db       00h, 76h, 00h, 0Ch, 00h, 76h +47D5:01DB  00 2B 00 D3 08 29                    db       00h, 2Bh, 00h,0D3h, 08h, 29h +47D5:01E1  00 C3 0C 30 00 FF                    db       00h,0C3h, 0Ch, 30h, 00h,0FFh +47D5:01E7  FF 76 00 00 00 76                    db      0FFh, 76h, 00h, 00h, 00h, 76h +47D5:01ED  00 11 00 76 00 0D                    db       00h, 11h, 00h, 76h, 00h, 0Dh +47D5:01F3  00 91 01 0A 00 90                    db       00h, 91h, 01h, 0Ah, 00h, 90h +47D5:01F9  01 24 00 1C 10 20                    db       01h, 24h, 00h, 1Ch, 10h, 20h +47D5:01FF  00 76 00 01 00 76                    db       00h, 76h, 00h, 01h, 00h, 76h +47D5:0205  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:020B  00 92 01 29 00 FF                    db       00h, 92h, 01h, 29h, 00h,0FFh +47D5:0211  FF 76 00 01 00 82                    db      0FFh, 76h, 00h, 01h, 00h, 82h +47D5:0217  00 02 00 B6 0B 0A                    db       00h, 02h, 00h,0B6h, 0Bh, 0Ah +47D5:021D  00 BA 0C 32 00 C7                    db       00h,0BAh, 0Ch, 32h, 00h,0C7h +47D5:0223  0B 24 00 BD 0C 31                    db       0Bh, 24h, 00h,0BDh, 0Ch, 31h +47D5:0229  00 76 00 0C 00 76                    db       00h, 76h, 00h, 0Ch, 00h, 76h +47D5:022F  00 2B 00 76 00 0D                    db       00h, 2Bh, 00h, 76h, 00h, 0Dh +47D5:0235  00 8B 08 29 00 C5                    db       00h, 8Bh, 08h, 29h, 00h,0C5h +47D5:023B  0C 30 00 FF FF B3                    db       0Ch, 30h, 00h,0FFh,0FFh,0B3h +47D5:0241  0B 0A 00 C5 0B 24                    db       0Bh, 0Ah, 00h,0C5h, 0Bh, 24h +47D5:0247  00 C2 0C 31 00 76                    db       00h,0C2h, 0Ch, 31h, 00h, 76h +47D5:024D  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:0253  00 C5 08 29 00 C5                    db       00h,0C5h, 08h, 29h, 00h,0C5h +47D5:0259  08 30 00 FF FF 76                    db       08h, 30h, 00h,0FFh,0FFh, 76h +47D5:025F  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:0265  00 7A 08 29 00 01                    db       00h, 7Ah, 08h, 29h, 00h, 01h +47D5:026B  09 24 00 B1 0B 0A                    db       09h, 24h, 00h,0B1h, 0Bh, 0Ah +47D5:0271  00 C3 0B 24 00 FF                    db       00h,0C3h, 0Bh, 24h, 00h,0FFh +47D5:0277  FF B5 0B 0A 00 76                    db      0FFh,0B5h, 0Bh, 0Ah, 00h, 76h +47D5:027D  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:0283  00 57 09 29 00 57                    db       00h, 57h, 09h, 29h, 00h, 57h +47D5:0289  09 30 00 4F 0B 24                    db       09h, 30h, 00h, 4Fh, 0Bh, 24h +47D5:028F  00 FF FF 0B 0C 0A                    db       00h,0FFh,0FFh, 0Bh, 0Ch, 0Ah +47D5:0295  00 76 00 0C 00 76                    db       00h, 76h, 00h, 0Ch, 00h, 76h +47D5:029B  00 2B 00 0E 0C 29                    db       00h, 2Bh, 00h, 0Eh, 0Ch, 29h +47D5:02A1  00 C6 0C 30 00 0C                    db       00h,0C6h, 0Ch, 30h, 00h, 0Ch +47D5:02A7  0C 24 00 FF FF 76                    db       0Ch, 24h, 00h,0FFh,0FFh, 76h +47D5:02AD  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:02B3  00 FF FF 76 00 0C                    db       00h,0FFh,0FFh, 76h, 00h, 0Ch +47D5:02B9  00 76 00 2B 00 35                    db       00h, 76h, 00h, 2Bh, 00h, 35h +47D5:02BF  0B 29 00 01 09 24                    db       0Bh, 29h, 00h, 01h, 09h, 24h +47D5:02C5  00 A9 0B 0A 00 BB                    db       00h,0A9h, 0Bh, 0Ah, 00h,0BBh +47D5:02CB  0C 32 00 B9 0B 24                    db       0Ch, 32h, 00h,0B9h, 0Bh, 24h +47D5:02D1  00 C0 0C 31 00 C0                    db       00h,0C0h, 0Ch, 31h, 00h,0C0h +47D5:02D7  0C 30 00 FF FF B7                    db       0Ch, 30h, 00h,0FFh,0FFh,0B7h +47D5:02DD  0B 0A 00 C8 0B 24                    db       0Bh, 0Ah, 00h,0C8h, 0Bh, 24h +47D5:02E3  00 BE 0C 31 00 76                    db       00h,0BEh, 0Ch, 31h, 00h, 76h +47D5:02E9  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:02EF  00 76 00 01 00 82                    db       00h, 76h, 00h, 01h, 00h, 82h +47D5:02F5  00 02 00 00 00 03                    db       00h, 02h, 00h, 00h, 00h, 03h +47D5:02FB  00 00 00 04 00 76                    db       00h, 00h, 00h, 04h, 00h, 76h +47D5:0301  00 0D 00 E9 0B 29                    db       00h, 0Dh, 00h,0E9h, 0Bh, 29h +47D5:0307  00 C7 0C 30 00 E8                    db       00h,0C7h, 0Ch, 30h, 00h,0E8h +47D5:030D  08 2C 00 FF FF AF                    db       08h, 2Ch, 00h,0FFh,0FFh,0AFh +47D5:0313  0B 0A 00 C1 0B 24                    db       0Bh, 0Ah, 00h,0C1h, 0Bh, 24h +47D5:0319  00 76 00 0C 00 76                    db       00h, 76h, 00h, 0Ch, 00h, 76h +47D5:031F  00 2B 00 76 00 01                    db       00h, 2Bh, 00h, 76h, 00h, 01h +47D5:0325  00 82 00 02 00 00                    db       00h, 82h, 00h, 02h, 00h, 00h +47D5:032B  00 03 00 00 00 04                    db       00h, 03h, 00h, 00h, 00h, 04h +47D5:0331  00 76 00 0D 00 16                    db       00h, 76h, 00h, 0Dh, 00h, 16h +47D5:0337  0B 29 00 16 0B 30                    db       0Bh, 29h, 00h, 16h, 0Bh, 30h +47D5:033D  00 E8 08 2C 00 FF                    db       00h,0E8h, 08h, 2Ch, 00h,0FFh +47D5:0343  FF B4 0B 0A 00 C6                    db      0FFh,0B4h, 0Bh, 0Ah, 00h,0C6h +47D5:0349  0B 24 00 76 00 0C                    db       0Bh, 24h, 00h, 76h, 00h, 0Ch +47D5:034F  00 76 00 2B 00 76                    db       00h, 76h, 00h, 2Bh, 00h, 76h +47D5:0355  00 01 00 82 00 02                    db       00h, 01h, 00h, 82h, 00h, 02h +47D5:035B  00 00 00 03 00 00                    db       00h, 00h, 00h, 03h, 00h, 00h +47D5:0361  00 04 00 76 00 0D                    db       00h, 04h, 00h, 76h, 00h, 0Dh +47D5:0367  00 E8 0B 29 00 CA                    db       00h,0E8h, 0Bh, 29h, 00h,0CAh +47D5:036D  0C 30 00 E8 08 2C                    db       0Ch, 30h, 00h,0E8h, 08h, 2Ch +47D5:0373  00 FF FF B8 0B 0A                    db       00h,0FFh,0FFh,0B8h, 0Bh, 0Ah +47D5:0379  00 C9 0B 24 00 76                    db       00h,0C9h, 0Bh, 24h, 00h, 76h +47D5:037F  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:0385  00 76 00 01 00 82                    db       00h, 76h, 00h, 01h, 00h, 82h +47D5:038B  00 02 00 00 00 03                    db       00h, 02h, 00h, 00h, 00h, 03h +47D5:0391  00 00 00 04 00 76                    db       00h, 00h, 00h, 04h, 00h, 76h +47D5:0397  00 0D 00 EA 0B 29                    db       00h, 0Dh, 00h,0EAh, 0Bh, 29h +47D5:039D  00 EA 0B 30 00 E8                    db       00h,0EAh, 0Bh, 30h, 00h,0E8h +47D5:03A3  08 2C 00 FF FF AB                    db       08h, 2Ch, 00h,0FFh,0FFh,0ABh +47D5:03A9  0B 0A 00 BB 0B 24                    db       0Bh, 0Ah, 00h,0BBh, 0Bh, 24h +47D5:03AF  00 0E 0A 2D 00 76                    db       00h, 0Eh, 0Ah, 2Dh, 00h, 76h +47D5:03B5  00 0C 00 76 00 2B                    db       00h, 0Ch, 00h, 76h, 00h, 2Bh +47D5:03BB  00 76 00 01 00 82                    db       00h, 76h, 00h, 01h, 00h, 82h +47D5:03C1  00 02 00 00 00 03                    db       00h, 02h, 00h, 00h, 00h, 03h +47D5:03C7  00 00 00 04 00 76                    db       00h, 00h, 00h, 04h, 00h, 76h +47D5:03CD  00 06 00 76 00 0D                    db       00h, 06h, 00h, 76h, 00h, 0Dh +47D5:03D3  00 76 09 29 00 76                    db       00h, 76h, 09h, 29h, 00h, 76h +47D5:03D9  09 30 00 E8 08 2C                    db       09h, 30h, 00h,0E8h, 08h, 2Ch +47D5:03DF  00 80 00 00 00 A1                    db       00h, 80h, 00h, 00h, 00h,0A1h +47D5:03E5  00 0B 00 9D 0C 10                    db       00h, 0Bh, 00h, 9Dh, 0Ch, 10h +47D5:03EB  00 CB 0C 34 00 FF                    db       00h,0CBh, 0Ch, 34h, 00h,0FFh +47D5:03F1  FF AD 0B 0A 00 BD                    db      0FFh,0ADh, 0Bh, 0Ah, 00h,0BDh +47D5:03F7  0B 24 00 BF 0C 31                    db       0Bh, 24h, 00h,0BFh, 0Ch, 31h +47D5:03FD  00 76 00 0C 00 76                    db       00h, 76h, 00h, 0Ch, 00h, 76h +47D5:0403  00 2B 00 76 00 01                    db       00h, 2Bh, 00h, 76h, 00h, 01h +47D5:0409  00 82 00 02 00 00                    db       00h, 82h, 00h, 02h, 00h, 00h +47D5:040F  00 03 00 00 00 04                    db       00h, 03h, 00h, 00h, 00h, 04h +47D5:0415  00 76 00 0D 00 71                    db       00h, 76h, 00h, 0Dh, 00h, 71h +47D5:041B  09 29 00 BF 0C 30                    db       09h, 29h, 00h,0BFh, 0Ch, 30h +47D5:0421  00 E8 08 2C 00 75                    db       00h,0E8h, 08h, 2Ch, 00h, 75h +47D5:0427  00 05 00 FF FF AC                    db       00h, 05h, 00h,0FFh,0FFh,0ACh +47D5:042D  0B 0A 00 BC 0B 24                    db       0Bh, 0Ah, 00h,0BCh, 0Bh, 24h +47D5:0433  00 76 00 0C 00 76                    db       00h, 76h, 00h, 0Ch, 00h, 76h +47D5:0439  00 2B 00 D5 08 29                    db       00h, 2Bh, 00h,0D5h, 08h, 29h +47D5:043F  00 D5 08 30 00 FF                    db       00h,0D5h, 08h, 30h, 00h,0FFh +47D5:0445  FF B2 0B 0A 00 C4                    db      0FFh,0B2h, 0Bh, 0Ah, 00h,0C4h +47D5:044B  0B 24 00 76 00 0C                    db       0Bh, 24h, 00h, 76h, 00h, 0Ch +47D5:0451  00 76 00 2B 00 D2                    db       00h, 76h, 00h, 2Bh, 00h,0D2h +47D5:0457  08 29 00 C8 0C 30                    db       08h, 29h, 00h,0C8h, 0Ch, 30h +47D5:045D  00 FF FF AA 0B 0A                    db       00h,0FFh,0FFh,0AAh, 0Bh, 0Ah +47D5:0463  00 BC 0C 32 00 BA                    db       00h,0BCh, 0Ch, 32h, 00h,0BAh +47D5:0469  0B 24 00 C1 0C 31                    db       0Bh, 24h, 00h,0C1h, 0Ch, 31h +47D5:046F  00 76 00 0C 00 76                    db       00h, 76h, 00h, 0Ch, 00h, 76h +47D5:0475  00 2B 00 D7 08 29                    db       00h, 2Bh, 00h,0D7h, 08h, 29h +47D5:047B  00 C9 0C 30 00 FF                    db       00h,0C9h, 0Ch, 30h, 00h,0FFh +47D5:0481  FF 00                                db      0FFh, 00h +47D5:0483  000D[00]                             db      13 dup (0) + +                                messages_seg    ends + + + +                                ;------------------------------------------------------  stack_seg_k   ---- + +                                stack_seg_k     segment word stack 'STACK' + +481E:0000  03E8[00]                             db      1000 dup (0) +481E:03E8  33 33                                db       33h, 33h +481E:03EA  0190[00]                             db      400 dup (0) +481E:057A  55 55                                db       55h, 55h +481E:057C  0190[00]                             db      400 dup (0) + +                                stack_seg_k     ends + + + +                                                end     start + +                                ±±±±±±±±±±±±±±±±±±±± CROSS REFERENCE - KEY ENTRY POINTS ±±±±±±±±±±±±±±±±±±± + +                                    seg:off    type                label +                                   ---- ----   ----   -------------------------------- +                                   273F:0000   far    start +                                   273F:0944   far    critical_handler +                                   273F:48C6   far    timer_handler +                                   273F:94DB   far    keyboard_handler + +                                 ±±±±±±±±±±±±±±±±±± Interrupt Usage Synopsis ±±±±±±±±±±±±±±±±±± + +                                        Interrupt 10h : Video display   ah=functn xxh +                                        Interrupt 10h :  ah=00h  set display mode in al +                                        Interrupt 10h :  ah=05h  set display page al +                                        Interrupt 10h :  ah=0Fh  get state, al=mode, bh=page +                                        Interrupt 10h :  ax=1002h  set palette regs from es:dx +                                        Interrupt 10h :  ax=1012h  set cx color registers from +                                        Interrupt 10h :  ah=12h  EGA/VGA special, bl=function +                                        Interrupt 10h :  ax=1A00h  get display type in bx +                                        Interrupt 11h : Put equipment bits in ax +                                        Interrupt 21h : DOS Services  ah=function xxh +                                        Interrupt 21h :  ah=06h  special char i/o, dl=subfunc +                                        Interrupt 21h :  ah=09h  display char string at ds:dx +                                        Interrupt 21h :  ah=0Eh  set default drive dl  (0=a:) +                                        Interrupt 21h :  ah=19h  get default drive al  (0=a:) +                                        Interrupt 21h :  ah=25h  set intrpt vector al to ds:dx +                                        Interrupt 21h :  ah=30h  get DOS version number ax +                                        Interrupt 21h :  ax=3300h  get ctrl-break flag in dl +                                        Interrupt 21h :  ax=3301h  set ctrl-break flag dl=off/on +                                        Interrupt 21h :  ah=35h  get intrpt vector al in es:bx +                                        Interrupt 21h :  ah=3Ch  create/truncate file @ ds:dx +                                        Interrupt 21h :  ah=3Dh  open file, al=mode,name@ds:dx +                                        Interrupt 21h :  ah=3Eh  close file, bx=file handle +                                        Interrupt 21h :  ah=3Fh  read file, bx=file handle +                                        Interrupt 21h :  ah=40h  write file  bx=file handle +                                        Interrupt 21h :  ah=42h  move file ptr, bx=file handle +                                        Interrupt 21h :  ah=48h  allocate memory, bx=bytes/16 +                                        Interrupt 21h :  ah=4Ah  change memory allocation +                                        Interrupt 21h :  ah=4Ch  terminate with al=return code +                                        Interrupt 21h :  ah=62h  get Program Segment Prefix bx +                                        Interrupt 33h : Mouse driver    ax=func xxxxh +                                        Interrupt 33h :  ax=0000h  installed?, ax=0 no, =-1 yes +                                        Interrupt 33h :  ax=0003h  get position, cx=horz,dx=vert +                                        Interrupt 33h :  ax=0004h  set position, cx=horz,dx=vert +                                        Interrupt 33h :  ax=0007h  set horz range, cx=min,dx=max +                                        Interrupt 33h :  ax=0008h  set vert range, cx=min,dx=max +                                        Interrupt 33h :  ax=000Bh  read motion counters, cx & dx +                                        Interrupt 33h :  ax=000Ch  set user handler at es:dx + +                                 ±±±±±±±±±±±±±±±±±± I/O Port Usage Synopsis  ±±±±±±±±±±±±±±±±±± + +                                        Port 0     : DMA-1 bas&add ch 0 +                                        Port 3     : DMA-1 bas&cnt ch 1 +                                        Port 20h   : 8259-1 int command +                                        Port 20h   :  al = 20h, end of interrupt +                                        Port 40h   : 8253 timer 0 clock +                                        Port 42h   : 8253 timer 2 spkr +                                        Port 43h   : 8253 timer control +                                        Port 82h   : DMA page reg ch 3 +                                        Port 3C4h  : EGA sequencr index +                                        Port 3C4h  :  al = 2, map mask register +                                        Port 3C8h  : VGA pel address +                                        Port 3C9h  : VGA pel data reg +                                        Port 3CEh  : EGA graphic index +                                        Port 3CEh  :  al = 3, data rotate +                                        Port 3CEh  :  al = 4, read map select +                                        Port 3CEh  :  al = 5, mode +                                        Port 3CEh  :  al = 7, ignore color bits +                                        Port 3CEh  :  al = 8, data bit mask +                                        Port 3DAh  : CGA/EGA vid status +                                           29 Ocurrences of non-standard I/O ports used (search for ??). + diff --git a/engines/lure/disassembly/Lure_notes.txt b/engines/lure/disassembly/Lure_notes.txt new file mode 100644 index 0000000000..abd5e14f38 --- /dev/null +++ b/engines/lure/disassembly/Lure_notes.txt @@ -0,0 +1,1422 @@ +Methods +======= +action_dispatch - Dispatches an action for being handled +   Input:  si = Hotspot record +           bx = ??? + +add_sequence_delay - Adds in a sequence to be executed after a given delay +              of tick procs +  Input:  bx = Sequence offset +          cx = Number of ticks delay +          dl = ??? + +animation_draw - Wrapper for the [add_animation_proc] lookup method for +             drawing an animation onto the screen +     Input:  ax = Animation index in animation table +             bx = Frame number + +animation_decode - Decodes the data for an animation into compressed nibble +                      format +     Input:  bx = Pointer to data: [bx] = animation disk resource id + +animation_decode_inner - Handles the decoding of an animation disk resource +     Input:  dx:si = Start of data following header +             es = Output for decoded resource +    Output:  di = size of decoded data + +animation_find_slot - Finds the first free animation slot in memory. If no slots +                      are free, the returned pointer points to the last slot +    Output:  di = Returns a pointer to the free slto    + +animation_load/animation_load_2 - Makes a hotspot 'active' by loading it into +           the active hotspot list (aka. the animation list). +     Input:  load   =>  bx = resource Id +             load_2 =>  si = offset of hotspot record + +Seems to load a single animation entry into the runtime +             location for animations. + +animation_load_entry - Not sure if this method is just for loading animations; it +                  does some checks, and if passed, then takes the word at offset +                  9h in the resource and jumps to that location. In calls I've +                  seen so far, this is 7167h, which then calls animation_load  +     Input:  bx = Resource Id for animation entry + +animation_load_entry_2 - Alternate form of the animation load +     Input:  si = Animation resource + +animation_resolve_segment - Resolves the segment at which an animation begins, +     taking care of preparing the data for the animation +     Input:  bx = pointer to animation entry +    Output:  ax = segment +             CF = If set, skip the animation + +animation_set_entry - Sets the details for an animation slot entry +     Input:  ax = Decoded animation segment +             bx = Offset of animation record +             dl = Colour offset for animation + +animation_tick - Every frame calls the defined handler proc for any active +             hotspots (ie. that are loaded into the animation list) + +animation_unload/animation_unload_2 - Removes a hotspot from the active hotspot +        list. Both are almost the same except animation_unload additionally +        sets field 0Bh of the hotspot (the offset in the animation list where +        a hotspot is loaded) to zero. + +char_face_up/char_face_down/char_face_left/char_face_right - Faces the character +              represented by a given hotspot in the given direction +     Input:  si = Hotspot record +             di = Animation slot + +character_change_room - Changes the current room for a given character +     Input:  current_hotspot = Character hotspot Id +             dx = New room number +             cx = New X position +             bx = New Y position + +character_check_room_change - Checks whether the given character is within the +              bounds of a room exit, and if so, handles moving the player to +              the new room +    Input:  si = Character hotspot Id +            di = Chracter animation slot + +character_face_hotspot - Makes a given character face a given hotspot +    Input:  di = Character animation slot +            si = Hotspot record being used + +character_face_hotspot_2 - Makes a given character face a given hotspot +    Input:  ax = Character Id +            bx = Hotspot Id of object being used + +character_find_impinging_chars - Scans through the animation list for any +              characters whose position is impinging that of the given character +    Input:  di = Character animation slot + +character_pathfind_clear - Checks the pathfinding set flag for the given hotspot, +              and if it set (ie. the hotspot has it's covering cells in the +              pathfinding layer for the room set), then clears the flag and +              clears the accompanying pathfinding cells +     Input:  ax = Character Id +             bx = Destination X +             cx = Destination Y +              + +character_pathfind - Handles pathfinding a segment of a walking path to a +              given destination +    Input:  ax = character Id +            bx = Dest X Pos +            cx = Dest Y Pos +            dl = Hotspot[4Ch] +   Output:  bx = Pointer to list of walking segments that gets built +            ax = 1 => end of pathfinding reached, 0 => pathfinding still needed + +character_reset_direction - Rounds off the given character's position, and sets +              their current frame to the default frame for the character's +              current direction +    Input:  si = Character hotspot record +            di = Character animation slot + +character_set_random_dest - Chooses a random destination for a given character, +              within a rectangle specified in the room data +    Input:  si = Character hotspot record +            di = Character animation slot +            bx = Offset to a current action record within the character hotspot  + +character_start_walking - Starts the character walking towards a given position +    Input:  si = Character hotspot record +            cx = Destination X +            dx = Destination Y + +character_translate_movements - Translates a set of instructions of movement +              instructions into a set of offsets to movement records +              (containing frame number sequence and position changes) for each +              direction, followed by the number of steps to go in that direction +    Input:  si = Hotspot offset +            dx = Offset to a sequence of source movement data to process, +                 which consist of a repeating set of number of steps followed +                 by a direction number. It ends with a step count of 0ffffh +   Output:  Hotspot[HS_MOVEMENT_SRC_OFFSET] => translated movement data + +character_update_frame - Handles updating a character's current frame in a +           movement sequence each tick. +  Output:  ax = 1 => for end of the path finding list (ie. at destination), +                0 => Some walking still remaining + +character_walking_check - Scans through a list for X/Y proximity for different +              hotspots, and if the character is not within proximity, starts +              the character walking to it +     Input:  si = character hotspot record +             di = character animation slot, +             bx = used object hotspot record +    Output:  ax => 1 = No movement was required, 0 = Wakling has started + +characters_impinging_check - Checks to see if the given character is close enough +              to the player +     Input:  bx = First character hotspot record +             si = Second character hotspot record +    Output:  ax = 1 -> Characters are close together, 0 -> Characters are not + +check_for_impinging_characters - Scans through the animation list for any +              animations that are impinging the specified character +     Input:  si = Character hotspot record +    Output:  ZF = Set => Character found, Clear => No character found +             bx = animation slot of found character + +check_keypress - Non-blocking method to return the next pending keypress, if any +    Output:  zero-flag = if set, indicates no key was pending +             al = character + +clear_layer_rects - Clears the data structure storing the status of each 32x32 +              rect in each layer of a room + +confirm_quit - Displays a dialog asking the user whether they want to quit +    Output:  ZF = If set, indicates the user wants to quit + +copy_rectangle - Copys a 32x32 rectangular area from a source buffer to a +              destination buffer +   Input:  ds:si = Position of rectangle in source screen buffer +           es:di = Position to place rectangle in destination screen buffer +  Output:  dx = If non-zero, indicates that at least one pixel was non-zero + +copy_protection_check - Performs the copy protection check. Note that in the +     English version of the game supplied by Revolution, this has been cracked. +     This is  + +decode_character - Decodes a character from a compressed bit-stream of text +     Input:  DL = current bit position for read is set +             DS:SI = current byte to read data from +    Output:  AL = output byte + +decode_file_entry -  Decodes a file resource, normally a graphics screen +  Input: dx = source data segment +         es = destination segment (for example, A000h for direct to screen) + + Output: es:0 holds decoded data +         dx = first segment beyond the end of the decoded data + +decode_string - Decodes a string resource from a compressed bit-stream +     Input:  es:di = output buffer for string +             ax = Id for string + +decode_string_init - Initialises a source pointer for decoding a compressed +                     bit-stream string +     Input:  ax = Id for string +    Output:  ds:si = address of compressed string +             dl = Starting bit position for reading string + + +decode_and_fade_in_display - Decodes the data for a given screen, and then fades it into +                  view by using the defined fade in proc for the given video mode +  Input: [buffer_segment1] = Loaded entry data + +display_dialog - Displays a dialog with a given String Id's text +  Input:  bx = String resource Id + +display_message - Displays a message to the user +             ax = messagae index in table of messages +             dh = 0=>non fatal error, 1=>fatal error +                  If a fatal error, function does not return + +display_message_dialog - Uses the message segment data to look up the +              specific response to an action for a specific character +   Input:  cx = character Id +           ?? + +display_message_dialog_3 - Uses the message segment data to look up the +              specific response to an action for a specific character +   Input:  ax = Message Id. Commonly stored in the sequence field for +                hotspot actions, and identified by the high bit being set +           si = Character hotspot record +           di = Player animation slot + +door_close_check - Checks the passed hotspot, which is one half of a doorway, +              to make sure there's no character within it, preventing closing +   Input:  bx = Hotspot offset +  Output:  al = 1 => Door can close, 0 => Door can't close + +draw_dialog_frame - Draws the frame for a dialog in an off-screen buffer +   Input:  es:di = Destination buffer +              bx = Horizontal size of dialog - 16 +              dx = Vertical size of dialog - 18 + +flag_covered_cells - Marks any of the 32x32 rectangles making up the screen +              that are covered by the given hotspot as being enabled. This +              is used for optmisation that extra layers only add for areas +              that may need to cover hotspots +   Input:  di = animation slot + + +floating_dialog_mouse_check - Checks to see if a floating talk dialog is present, +              the text has completed, and the mouse is inside it. +  Output:  floating_dialog_close_flag: 1=conditions met, 0=not met +           al=1, ZF=clear -> conditions not met, al=0, ZF=set -> not met + +get_entry_size - Returns the size of the specified resource in paragraphs. +        Input:  ax = Resource Id +       Output:  dx = number of paragraphs + +get_room_resource_pointer/2  - Gets a pointer to a data block of information for +              a given hotspot or room +         Input:   bx = Id for _pointer, ax = Id for _pointer2 +         Output:  si = pointer to data block + +get_room_resource_pointer3/4 -  Gets a pointer to the header entry for a given +              hotspot or room +         Input:   bx = Id for _pointer3, ax = Id for _pointer4 +         Output:  si = pointer to header entry + +hotspot_action_precheck - Does the common prechecking for hotspot actions, +              such as whether the player needs to walk to it or not +     Input:  ax = Hotspot Id to be used +             si = Character hotspot record +             di = Character animation slot +    Output:  al = 3 => Player is starting to walk to hotspot + +hotspot_get_action_sequence - Returns a script offset for the given action on +              a hotspot +   Input: bx = Hotspot record +  Output: ax = Sequence offset if found, or 0 otherwise +          zf = clear if a sequence offset was found + +hotscript_script_execute - Executes a given hotspot's script +    Input:  si = pointer to hotspot resource +            di = pointer to animation slot + +hotspot_disable - Disables a hotspot from being highlightable +    Input:  bx = Hotspot Id + +hotspot_enable - Enables a hotspot that was previously disabled +    Input:  bx = Hotspot Id + +hotspots_load - Loads any hotspots registered for the current room into the +             animation list, automatically checking to prevent duplicates from +             being added. + +hotspots_unload - Unloads all hotspots from the animation list that don't have +             the special hotspot Id of 0ffffh    + +increment_action_offset - Moves the current action offset for the given +              character to the next record position +    Input:  si = Character hotspot record + +install_palette - Installs a sub-palette of 64 entries from a set of palettes, +                  each of which is 64*3 bytes long +          Input:  ax = index of sub-palette in list of sub-palettes +                  palette_segment = Segment set of palettes was loaded into + +is_roomexit_hotspot - Checks whether the given hotspot Id is in the list of +              of room exit hotspots +   Input:  si = Pointer to list of hotspots +           ax = 0 if hotspot found, 1 if not + +load_pic_with_animation - Loads up a picture that has animation data after it, +             as well as the following resource, which contains the animation +             line segment offsets and lengths +     Input:  AX = Id of the resource + +menu_create_popmenu - Creates a popup menu in an off-screen buffer + +menu_make_selections - Shows a dialog with an arbitrary list of selections. +             Returns the selectd item index, or ffffh for no selection made +     Input:  dx/ax = bitset for actions to display +    Output:  ax = selected item Id + +menu_make_selections_select - Does the actual display of a right-click menu +             and make the selection +    Output:  ax = selected Id + +menubar_copy_to_screen - Copies the data from an off-screen buffer onto +             the secreen + +menubar_clear_menu - Clears the data segment occupied by the menubar + +menubar_create_menu - Creates a drop down menu for display +     Input:  SI = Pointer to data table describing menu + +menuitem_show_credits - Shows the game credits + +mouse_wait - Goes in a loop of resetting the game palette until a held down +             mouse button is released + +open_file - opens up a .vga data file (if not already open), validates that +            it's file number is correct, and loads the entry table into memory +     Input: [file_handle] + +open_file2 - sets the default drive to the specified drive and then calls +             the open_file method +     Input:  al=drive number + +pathfind_clear_covered_cells - Clears the cells covered by the base of a given +              animation from being occupied in the path finding data block. This +              prevents characters from walking through each other +     Input:  di = Animation slot + +pathfind_flag_covered_cells - Flags the cells covered by the base of a given +              animation as occupied in the path finding data block. This +              prevents characters from walking through each other +     Input:  di = Animation slot + +pathfind_get_cell - Returns the byte and bit index for the given animation's +              position in the pathfinding data block for the room +     Input:  di = Animation slot +    Output:  bx = Byte offset in path finding data block +             ax = Bit mask indicating which bit +             cx = Number of bits covering the width of the animation +             ZF = If set, animation is not onscreen + +pathfind_populate_cells - Helper method used by character_pathfind to populate +              a decompressed array indicating which areas of a room are walkable +              with incrementing numbers emnating from the destination. This is +              later used to figure out a walkable path by going from cell to +              cell in order of decrementing index to get from source to dest + +pathfind_scan_line - Support method for the character_pathfind, and is used to +              scan in a given direction +     Input:  bp = Starting position +             bx = Destination position +             cx = Number of loops +             di = Change amount for each loop +             dl = max value for comparison +     Output: bx = New destination position +             dl = New maximum + +pathfind_return_to_sp - Creates a breaking point during processing of the +             character_pathfind method such that the next time character_pathfind +             is called, it will pick up after the call to pathfind_return_to_sp  + +pause_for_input - Waits until either a key or a mouse button is pressed + +player_inc_inventory_items - Checks if the specified hotspot is the player, +              and if so, increments the counter for the number of inventory +              items the player currently has +   Input: si = Character hotspot record + +popmenu_populate_list - Populates the contents of the list used to define +             what is displayed in the right-click popup menu +     Input:  dx:ax = Bitset indicating which actions should be displayed, in +             order of their placement in the action list + +protection_cycle_characters - Cycles through a single frame in the list of +         possible characters in the copy protection check and displays them +         on screen. + +protection_draw_characters - A wrapper method for drawing both of the +         current characters to the screen +   Input:  ax = frame number for left card animation +           bx = frame number for right card animation + +random - Returns a pseudo-random number +  Output:  ax = Random value + +read_and_validate_header - Reads in the header of the .vga file and validates +             that it's valid + +read_bit - Reads in a specified bit from ds:si, and shifts the bit mask one bit +           to the right, resetting it back to 80h (and incrementing SI) if the +           set bit was 1h +    Input:  dl = Current bitmask +            ds:si = data source +   Output:  dl = New bitmask position +            al = and'ed value from ds:si +            ZF = Set if the bit was turned on in the value +            SI = If dl was 1h at input, then SI = SI+1 else SI=SI + +read_screen - Reads in the specified screen resource, and optionally a palette +              if the screen is the first layer to be processed for a given room +   Input:  ax = Screen Id + +read_entry - Outer method for reading an entry - finds and reads in the entry +             with the specified Id +     Input:  ax = Id of entry (bits 15-16 are file # 0 - 3), rest are Id bits +             cx:dx = buffer for entry +    Output:  dx = first segment following end of read in data + +read_entry_into_buffer - Another outer method for reading an entry - reads the +             specified entry into [buffer_segment]:80h +     Input:  ax = Id of entry +     Output: dx = first segment following end of read in data + +read_file_entry - Reads in an entry from the file +     Input:  es:dx - Output buffer to store data in +             bx = File start position in 20h block increments +             cx = Size of entry to read in +             bp = If bp=1, file size is actually 8000h plus the size in CX + +read_into_buffer/read_into_buffer_2 - reads entry into the buffer space, and +             then increments the pointer so future reads will be read at a +             point beyond the loaded entry +    Output:  ax = segment of loaded entry +             dx = segment following end of loaded entry + +read_palette - Reads in the palette from the specified Id resource +     Input:  ax = Id of entry (which is passed onto read_entry) + +read_screen - Reads and decodes a screen into data_segment2. It may also +             be taking care of adding in any animations +     Input:  ax = room/id number + +replace_vga_palette - Replaces two sections of the loaded palette with a +              preset alternate set: 60 entries starting at palette index #129, +              and 8 entries at palette index #220 + +room_add_animations - Adds the player and any room animations to the off-screen +        buffer data_segment2 + +room_check_cursors - Checks the position of the mouse within the current room +          to see whether the cursor needs to change (such as for moving over +          a hotspot) or on the menubar area + +room_check_hotspots - Compares the mouse position against given hotspot lists? +  Input:  dx = room number +          di = offset of info table +          bp = Starting offset number for table + +room_check_x_extents - Checks whether a given hotspot's position is within +              the clipping x range for the room +   Input:  si = Hotspot +  Output:  ax = 0 = Hotspot within valid range, 1 = otherwise + +room_exit_get_coordinates - Gets the walking coordinates for the exit from +              a given room into a secondary room +   Input:  ax = Starting room +           bx = Destination room +  Output:  cx = X-coordinate +           dx = Y-coordinate +           ax =  + +room_exit_hs_get_pointer - Scans through a list of room exit hotspots that +              connect to each other. +   Input:  ax = Hotspot Id +  Output:  si = Record Id for room exit hotspot join +           bx = 2 or 8, representing whether the hotspot was #1 or #2 in the record + +room_exit_play_sound - Plays a sound for a room exit opening or closing if the +              player is in the same room +   Input:  si = Room exit join record +           bx = Index of active hotspot in join record +           cx = 1 for door closing, 0 for door opening + +room_handle_click - Checks to see if the mouse has been clicked, and if so, +           handles the various things that can be done, such as closing floating +           dialogs, showing the right-click menu, etc. + +room_load_layers - Reads in the layers associated with a room + +room_show_rightclick_menu - Shows the right-click menu. If the mouse is over a +            hotspot, it gives that item's action menu. Otherwise, it gives the +            default room Look/Status menu. The method returns when an item is +            selected +   Output:  ???? + +screen_fade_in - Fades in an already loaded screen, by using the defined fade in +                 routine in the video methods lookup table + +screen_fade_out - Fades out the screen, by using the defined fade out routine +                  in the video methods lookup table + +screen_set_palette - Sets the default game palette, using the defined lookup method + +set_upper_vga_palette - Sets the last 16 palette entries of the VGA palette to a +                        predefined set of colours + +sequence_execute - Outer execution method for handling a sequence of script instructions. +     Input: ax = Pointer to script set. See tables section for instruction formats +    Output: ax = sequence result value +            zf = set if the result value is zero + +sequence_execute_inner - Inner handling method for script instructions +     Input:  si = Pointer to script set + +show_introduction - Shows the introduction sequence + +show_arrow_cursor - Shows the arrow cursor + +show_disk_cursor  - Shows the disk cursor + +show_startup - Shows the starting screens of the game, and then calls the +               show_introduction method to show the animated introduction sequence + +skorl_knockout - Runs the animation sequence of a Skorl knocking out the player + +sleep - Sleeps for a given number of clock cycles (each being 1/18th of a second) +     Input:  ax = number of cycles [Note: I think it's from the start of the +                  game or the last time the method was called] + +sleep_with_kbd_mouse_break - Pause with breakout by keypress and mouse +     Input:  ax = timeout in cy cles +    Output:  carry = breakout occurred +             zero  = if set, indicates Escape was pressed + +sub_107 - Gets a ax (0 or 3) and bx pointer used later in a call to sub_132 +              to get a sequence offset +   Input:  ax = Hotspot Id + +talk_add_voice_animation - Adds an animation entry of a talk bubble, which +              gets displayed above a designated character +   Input:  di = Hotspot slot + +talk_clear_line - Clears the talk line at a specified index. Each talk line +              occupies 8 lines +   Input:  ax = Index of talk line to clear + +talk_dialog_init - Initialises a talk dialog for display +   Input:  si = Name of character speaking +           di = Speaking text +           data_433 = Character hotspot Id + +talk_setup_3 - Sets the necessary flags to display a talk dialog +   Input:  al = 1 (??? blocking talk dialog [you can't move until it's closed]) +           cx = Hotspot Id of character talking to +           dx = Talk text string Id +           si = Hotspot record for character doing talking + +talk_toggle_line_highlight - Toggles the highlight on a line being displayed +              to allow the user to select a talk option +   Input:  ax = Index of talk line + +toggle_menu_highlight - Toggles the highlighting of a menu name in the +          off-screen copy of a menu +  Input:  DI = X Pixel start position on screen +          BX = Width in pixels of area +          data_segment2 = segment of off-screen menubar copy + +validate_header - Validates the header of the loaded file +             ah = bits 6-7 is file number + +vga_fade_in - Fades in a given graphic screen by cycling each palette index +              from black to the destination RGB value in increments of one + +wait_for_video_port - Pauses until the video port indicates that it's ready +                      to rceeive data + +word_wrap_string - Word wraps the passed string to a given maximum width +              by +   Input:  di = Text to process + + +Lookup Method Table +=================== +This is a set of procs lookup list that is set to different methods for EGA +and VGA methods + +add_animation_proc - Adds an animation or character frame onto the screen. +     Input:  es:si = source pixel data location  +             bx = Offset of data for animation (see tables later for animation format) + +copy_screen_proc - Copys a screen from [misc_segment]:0 to the screen. Also sets +     up bp:si and dx:bx in preparation for an animation. Coupled with +     load_pic_with_animation that loads a resource with animation data +     Input:  misc_segment - Specifies the segment holding the screen data +    Output:  bp:si - Address of the first byte following the end of the data +             dx:bx - Address of first byte following decoded data segment data + +display_character_proc - Copys a specified character to a graphic buffer +     Input:  al = ASCII character +          es:di = Position within screen of character start +             bp = segment of font, which starts at the space character (32), and +                  each character takes up 8 bytes. Each byte represents one line, +                  with each bit representing whether a pixel is on or off +             dh = Colour to create character as + +draw_talk_dialog_proc - Draws the frame for a talk dialog +     Input:  es:di = Buffer to store drawn dialog in +              + +menu_items_proc - Haven't investigated this method yet. It does get used by +             the right-click popup menu to display the items    + +pic_decode_proc - Handles the RLE decoding of a picture onto the screen +     Input:  dx:bx = Set of copy slice lengths and screen inc amounts in a repeating +                     sequence. Each value can be 1 non-zero byte, or a zero byte +                     followed by a two byte length +             bp:si = Raw data for transfer to the screen. The data block pointed +                     to by dx:bx tells how wide each line slice will be +    Output:  dx:bx = First byte after end of length/inc data +             bp:si = First byte after end of transfer data block + +read_screen - Reads in a screen with the given Id, decodes it, and also loads +              in a palette with the given Id - 1 +     Input:   ax = resource Id of the screen + +read_screen_alt - Reads in a screen with the given Id, decodes it, and also +              loads in a palette with the given Id - 1 +     Input:   ax = resource Id of the screen + +remove_area_proc - Restores the area of screen previously hidden by a menu +     Input:  di = x start position +             bx = width + +segment_screen_proc - Segments the screen into 32x32 rectangles, and sets up +              an array of incrementing rectangle numbers for rectangles that +              have pixels in them +   Input:  es:di = pointer to decoded screen +           bx = buffer to store status of each screen rectangle +           cl = layer number (0 to 3) [Note: layer is only used to see if it's +                layer 0 background.. for the background all rectangles are +                considered "filled in"] + +set_palette_proc - Sets the palette to the default palette + +show_screen_proc - Responsible for displaying a screen from data_segment2 to the +             screen specified in [screen_start_seg]. It uses an array specified +             by display_mask to specify 10x6 sets of 32x32 rectangles for whether +             to display each rectangle on the screen. + +toggle_menu_highlight_proc - Toggles the highlighting of a menu header +  Input:  DI = X Pixel start position on screen +          BX = Width in pixels of area +          data_segment2 = segment of off-screen menubar copy + +word_wrap_string - Applies carriage returns in-sequence to a passed string to +          ensure it fits into a given dialog area +  Input: + +NPC Script Methods +================== +NPC schedules are set up by having a single ACTION_DISPATCH current action in +the NPC's hotspot record (at offset 63h), with a support record pointer +pointing to the start of a sequence of instructions using action numbers +greater than that of all standard actions. As part of the handling of these +"high number" instructions is an incrementing of the offset for the support +data so that the NPC instructions are handled sequentially. + +The table below lists the special methods list. Each entry is represented in +the support data table by a word for the action's value, followed by any +support data as indicated by the method.  + +Index Method +===== ======= +  28  npc_set_hotspot5e(uint16 roomNumber, uint16 hs5e) +      Sets both the current room number on the hotspot's current action entry, +      as well as word offset 5eh in the character's hotspot record +  29  npc_unknown_1() +      ??? +  30  npc_execute_script_proc(uint16 offset) +      Causes the execution of the script at the given offset +  31  npc_unknown_2() +      Sets the currently unknown words at hs[42h] and hs[44h], and calls a +      method to scan for an entry for the hotspot in the hotspot action list +  32  npc_set_random_dest() +      Sets the character's destination position randomly within the area +      rectangle specified for the room +  33  npc_walking_check(uint16 hotspotId) +      Ensures that the given hotspot is in the same room as the character, +      and if so, makes a walking check which starts the character walking if +      the hotspot is not within reach proximity +  34  npc_set_support_offset(uint16 offsetId) +      Sets the offset for support data in the current action. So it can, for +      example, reset an NPC back to the start of it's script +  35  npc_set_support_offset_conditional(uint16 sequenceOffset, uint16 offsetId) +      Executes the given script, and if the return is non-zero, then sets the +      current action's support data offset to the given offset. If not, the +      support data offset, moves on to the following record +  36  npc_dispatch_action(uint16 hotspotId, uint16 offsetId) +      Handles the execution of an action, including standard action prechecks +  37  npc_unknown_3(uint16 v1, uint16 v2, uint16 v3, uint16 v4) +      ??? +  38  npc_unknown_4(uint16 unused, uint16 v) +      Sets hs[42h] = v +  39  npc_start_talking(uint16 messageId, uint16 destCharId???) +      This method, I think, causes the character to say the specified message +      to the given destination character +  40  npc_jump_to_address(uint16 offset) +      Jumps execution to the specified address in the game's code segment + + +Misc Notes +============ +VGA Files +--------- +* Entries with a length of 294h are palettes +* At least entry Id #48, #49 are MIDI music with a MThd block +* Entry Id #10, #15 are code blocks for playing music +* Entry Id #50 is a set of sub-palettes.. a sub palette contains palette entries +  for the first 64 palette entries (each 3 bytes). This entry contains 5 sub-palettes + +VGA File Mapping +================ +This isn't complete; just some resource Ids I noted down for future reference: + +$0001 - Set of 26 16x16 cursors, each taking up 256 bytes +$0004 - Font set: starting with space character, each character taking 8 bytes +$0005 - Menubar +$000A - Music handler code block +$0010 - Strings resource (compressed - see decode_string & decode_string_init) +$0018 - Revolution title screen +$0019 - Revolution title palette +$001A - Virgin games title screen +$001B - Virgin games title palette +$001C - Lure of the Temptress title screen +$001D - Lure of the Temptress title palette  +$001E - Virtual Threatre title screen +$001F - Virtual Threatre title palette +$0021 - Palette for final introduction screen +$0022 - Animation for final screen +$0032 - Another copy of the menubar + +$0040 - Animation for introduction sequence +$0041 - Animation for introduction sequence +$0042 - Animation for introduction sequence +$0043 - Animation for introduction sequence +$0044 - Animation for introduction sequence +$0045 - Animation for introduction sequence +$0046 - Animation for introduction sequence +$0047 - Animation for introduction sequence +$0048 - Animation for introduction sequence +$0049 - Animation for introduction sequence + +$4100 - First screen, first layer +$7900 - Restart/Restore screen + + + +Data Structure Notes +==================== +There are four main lists embedded in the executable, each of which +represents a different range of Ids. Each entry consists of 9 bytes +[see get_room_resource_pointer]. The first two bytes represents an +offset to the specific data for the room. + +       Resource data: +         Offset  Size   Meaning +         ------  ----   ------- +             0h    2    Offset for the resource entry - either room or hotspot data +                        An entry of 0ffffh means the end of the list +             2h    2    For the room list, it's the room number, for the hotspot +                        lists, it's the string Id for the hotspot name +             4h    2    For rooms, the string Id for room description, for +                        hotspots it's the look at description Id +             6h    2    Alternate look at description for hotspots. I think +                        this only comes into player for takable items to give +                        the description when it hasn't yet been picked up +             8h    1    ??? + +For the room list, the format of the room records pointed to are as below: + +       Room data: +         Offset  Size   Meaning +         ------  ----   ------- +             6h    2    Offset for a list of offsets to pixel blocks for the +                        room +             8h    1    Number of layers in room +             9h    8    List of resource Id's for room. Either equal to number +                        of layers, or # layers + 1 for rooms with extra overlay +                        (such as image of cell bars when looking through into cell) +            11h    2    Sequence offset for room, or ffffh for none +            13h    2    The current tick time counter is stored here when a +                        room is exited +            17h    1    ??? +            18h    1    Index into table of 8 byte entries starting at ds:2EB1h +            19h    2    X start for defining valid horizontal areas where hotspots +                        can be highlighted +            1Bh    2    X end, or 0 to indicate no end +            1Dh    ??   Start of room change script. See below: + +The room data record is ended by zero or more room change records, followed by +an ending ffffh value. The format of each record is as follows: + +         Offset  Size   Meaning +         ------  ----   ------- +             0     2    X start +             2     2    X end +             4     2    Y start +             6     2    Y end +             8     2    Sequence offset. If the value is ffffh, then the following +                        four fields come into play. Note that this means that +                        the record can be one of two sizes, dependant on the +                        value of this field +             Ah    1    New room character direction: +                        80h=up, 40h=down, 20h=left, 10h=right +             Bh    1    New room number +             Ch    2    New room X position +             Eh    2    New room Y position + +The format of hotspots are as follows: + +       Hotspot tables: +         Offset  Size   Meaning +         ------  ----   ------- +            0h     4    Bitset for available actions +            3h     1    Flags: Meaning unknown, but the following actions apply: +                           bit 7 = skip checking bit 6 +                           bit 6 = Skip over entry +                           bit 5 = Skip over entry +            4h     2    Offset for actions table +            6h     2    Room number for hotspot. For hotspots that can be +                        inventory items, this can also be the Hotspot Id of +                        the character holdign the item. +            8h     1    Script flag - a non-zero value indicates that the value +                        at offset 9h is a script offset to execute. Otherwise, +                        the offset is treated as a code subroutine, and jumped to +                        Also used by non-visual hotspots to indicate the direction +                        to face the character in when an action is performed on +                        the hotspot +            9h     2    Script sequence to execute, or offset for loading +                        routine for hotspot. So far I'm aware of two code routines: +                           7167h = stub method that calls animation_load +                           3afeh = copy protection check +            Bh     2    Stores offset of animation slot entry the resouce has +                        been loaded into +            Dh     2    X start position + 80h +            Fh     2    Y start position + 80h +           11h     2    Width of hotspot +           13h     2    Height of hotspot +           15h     1    Animation's layer. Animations are added in to a scene in +                        order of layer 3, layer 1, then layer 2. Animations in +                        layer 1 are added in order of the hotspot's bottom row +           16h     1    ??? Flags byte? +           17h     2    Tick handler proc offset +           19h     2    Copy of hotspot width +           1Bh     2    Copy of hotspot height +           1Dh     2    Y correction. Currently only known use is as a Y +                        correction factor when checking if a character is in +                        an exit region +           1fh     2    Timeout decrement value for frame change +           21h     2    Pointer to memory containing disk resource Id for the +                        pixel data for the hotspot's animation (or possibly +                        static image) +           23h     1    Colour offset start for source pixel data +           24h     2    Offset for data in scripts2_seg, used in +                        hotspot_script_execute. Also seems to be used by +                        characters (including the player) as a table offset +                        containing data for movement sequence +           26h     2    Step counter - used as in incrementor when a character +                        is moving in a direction to determine when they have +                        reached the requisite number of steps required before +                        moving to the next direction in a path-finding sequence +           28h     2    Frame offset - used as a pointer within the movement +                        frames for a given direction to quickly retrieve the +                        position change and frame number in a walking sequence - +                        used along with offset 26h to handling walking +           2Ah     1    A counter used to determine the number of times the +                        action precheck method has been called within the +                        handling of an action +           2Bh     2    ??? +           2Dh     2    Script Id of a hotspot the character is to use +           2Fh     2    Hotspot Id of a hotspot the character is to use +           33h     2    ??? Talk data record +           35h     1    x offset within character for speech bubble +           36h     1    y offset within character for speech bubble +           37h     2    ??? +           39h     2    Stores the hotspot Id of the character being talked to +           3Ch     2    Stores the String Id of a response +           42h     2    ??? Copy of selected hotspot +           44h     1    ??? 0 or 2 for further actions in player_tick_proc +                        ??? Copy of low byte of selected hotspot +           45h     2    Hotspot Script Id to execute each tick for NPCs +           47h     2    Hotspot Id to use. +           49h     1    Flags whether the hotspot has currently got the cells +                        of the pathfinding (walkable areas) layer that it's +                        base occupies as covered +           4Ch     1    Only known use so far is in character pathfinding, where +                        if 0, introduces a jz $+2 delay at one point, that is not +                        even inside of a loop. This flag may thus be an artefact +                        of early code that was no longer used in the final build +           50h     2    Character direction: 80h=up, 40h=down, 20h=left, 10h=right +           52h     2    Hotspot Id for selected hotspot +           54h     2    X ending position for character + 80h - 10h +           56h     2    Y ending position for character + 80h +           5Ah     2    For player and other characters indicates the +                        assigned offset in the data segment to load the +                        details of movement frames. Note that this gets copied +                        to offset 24h for use at runtime. +           60h     1    ??? +           61h     2    Index into the table starting at 63h of the hotspot +           63h     3*?  First slot for pending player actions. Each slot +                        consists of three bytes: a single byte command Id, and +                        an offset to a support data record. + +Movement sequence +================= +When a character has to move, sub_90 is  + + +Character actions +================= +Character hotspots have a buffer for a set of current actions. Each record +of this list consists of 5 bytes, with the following format: + +         Offset  Size   Meaning +         ------  ----   ------- +             0      1   Currenat atcion +             1      2   Pointer to support data structure +             3      2   ?? May be room number action occurs in + +The possible commands are listed below: + +  Command +  ------- +    01 = Start walking +         Support data: +           word value = 0 + +    02 = Dispatch action* +         Support data: +           word value = action to perform +           word value = hotspot Id of selected hotspot +           word value = used hotspot Id +         [03] = Room Number + +    03 = Execute Script + +    04 = Processing walking path + +    05 = Walking in progress + + +* Note that actions (both looking at a hotspot and all other actions) are +handled by doing an initial dispatch of the action, then a standard walk sequence, +and finally dispatching the action again when the player is at the appropriate +proximity to the hotspot + + +Actions Table +============= +The actions table offset points to a list that indicates any actions for the +hotspot that have script sequences attached to them. The table has the following +format: + +         Offset  Size   Meaning +         ------  ----   ------- +             0     2    Number of items in the list +            --------- repeated: +             2     1    Action number +             3     2    Sequence offset +            --------- + +Animation Resources +===================          +The raw data for animations is stored in disk resources. They have the following +format: + +       - A single word containing the number of header entries +       - A table of words of the previously given number, each representing +         the number of nibbles in the uncompressed data (ie. number of bytes * 2). +         Note that the pixel data starts at offset 40h of the uncompressed data, +         as the first 40h bytes are used by the decompression process. + + +In addition to the four hotspot lists, there is a master hotspot list, which +contains co-ordinate overrides for some of the hotspots: + +       Hotspot data: +         Offset  Size   Meaning +         ------  ----   ------- +             0     2    Id for hotspot to override +             2     2    X start +             4     2    X end +             6     2    Y start +             8     2    Y end + + +The animation list is made up of a set of animation entry slots, of which there +are 45 entries, each 29h bytes big, and can be loaded dynamically at runtime +from hotspot entries. FURTHER NOTE: Animation list may be a bit of a misnaming +of it - a better name may be "active hotspots" list, since entries in the list +aren't necessarily animated. + +         Offset  Size   Meaning +         ------  ----   ------- +             0h    2    X start position + 80h +             2h    2    Y start position + 80h +             4h    2    Width of animation +             6h    2    Height of animation +             8h    2    Pointer to the start of the current frame for the animation. +             Ah    2    Storage for caching of animation start segment. This is +                        filled out at runtime the first time the animation is to +                        be displayed at runtime +             Ch    1    Animation's layer. Animations are added in to a scene in +                        order of layer 3, layer 1, then layer 2. Animations in +                        layer 1 are added in order of the hotspot's bottom row +             Dh    1    ??? Flags byte? +             Eh    2    Room number for animation +            10h    1    ?? Flag for whether to keep animation active between rooms? +                        Loader defaults it to 1, but loads using 7167h afterwards +                        sets this back to zero +            11h    2    Tick handler proc offset - called every frame for hotspots +                        loaded into the animation table where [0Ch] is non-zero +            13h    2    Copy of the animation width - this and the height copy are +                        used in some areas to, for example, vary the strict +                        Y ordering of objects in a scene (for example, Ratpouch +                        has a larger height copy to make him appear on top of +                        the rack rather than behind it). +            15h    2    Copy of the animation height +            17h    2    Y correction. Currently only known use is as a Y +                        correction factor when checking if a character is in +                        an exit region +            19h    2    Offset of the original resource record used to load this +                        animation entry. +            1Bh    2    Hotspot Id of the entry. Can also be 0ffffh, which seems +                        to be a special code for the player (don't know yet if +                        it's used elsewhere as well) +            1Dh    1    If non-zero, hotspots in layer 1 will be skipped +            1Eh    2    So far it's only known use is to store the hotspot Id +                        of the character the special 'voice' animation is +                        associated with +            22h    2    Related to direction handling: 0 for up/down, +                        4 for left/right +            24h    2    So far it's only known use is as a countdown timer +                        for closing the special "voice" animation shown on +                        top of characters when they're speaking +            26h    1    Character direction: 0=up, 1=down, 2=left, 3=right +            27h    1    ??? Set to 1 by animation loader 1 +            28h    1    Colour offset start for source pixel data +            4Ah    2    ??? Countdown of some form; changed by the action +                        countdown list + +The animation list is built up at runtime one entry at a time from hotspot +resources specified in an instruction sequence. The first sequence executed is +at 23FCh, and is part of the game startup, and the initial resoruce Id is #3e8, +which equates to 6cefh. + + +Animation disk resource records +------------------------------- +The animation disk resource record has the following format: + +         Offset  Size   Meaning +         ------  ----   ------- +             0h    2    Disk resoucre Id of the animation pixels to use +             2h    1    Flags. Known values: +                        Bit  Description +                        ---  ----------- +                          2  If set, takes the first word of the decoded data +                             as the frame offset. I think this used elsewhere +                             as well - this flag may indicate an animation that +                             contains an offset table for the frames, rather than +                             the standard form, where all frames are the same size +             3h    2    Cached copy of loaded pixel data segment +             7h    2    Frame size for decoded animation data +             9h    2    Offset for -Y movement records +             Bh    2    Offset for +Y movement records +             Dh    2    Offset for -X movement records +             Fh    2    Offset for +X movement records +            11h    1    Starting up direction frame number +            12h    1    Starting down direction frame number +            13h    1    Starting left direction frame number +            14h    1    Starting right direction frame number + +A movement record represents data needed for a single frame of a character's +movement. It is represented as a set of 6 byte records of the format listed +below. The end of the set of the set of records is represented by 0ffffh. + +         Offset  Size   Meaning +         ------  ----   ------- +              0    2    Frame number to display +              2    2    16-bit signed integer representing the change in the +                        X position +              4    2    16-bit signed integer representing the change in the +                        Y position + + +W2      description +--      ----------- + 1      * Store offset from PIXEL+0Dh, then word (W1+3)>>2 + 2      * Store offset from PIXEL+0Fh, then word (W1+3)>>2 + 3      * Store offset from PIXEL+0Bh, then word (W1+1)>>1 + 4      * Store offset from PIXEL+09h, then word (W1+1)>>1 + + + + +Room Exits +---------- +A table of the offsets of the room exit records for each room is stored at +room_exits_table. An offset of zero for a particular room indicates there are +no exits. + +The exits for a given room are a series of one or more records of 14 bytes each, +with a word value of 0 following the final entry. The structure of a record is +described below. Note that all co-ordinates are expressed with an offset of 80h. + +         Offset  Size   Meaning +         ------  ----   ------- +             0h    2    X start of exit area rectangle +             2h    2    X end of exit area rectangle +             4h    2    Y start of exit area rectangle +             6h    2    Y end of exit area rectangle +             8h    2    Cursor number to use +             Ah    2    Hotspot Id associated with exit. This can be, for example, +                        2711h for the hotspot Id of the Cell Door in the first room. +                        For exits which are always unblocked, the Id will be 0. +             Ch    2    Destination room number + +There is also a table of room exit hotspots. This contains records containing +all room exit hospots, with the table set up with the hotspots that are joined +together (such as either side of the cell door in room #1 and #2) appearing in +the same record. Each record is 17 bytes long, and the format is as follows: + +         Offset  Size   Meaning +         ------  ----   ------- +             0h    2    First hotspot Id of the pair +             2h    1    Current frame number for hotspot #1 +             3h    1    Ending frame number for hotspot #1 +             4h    1    Sound for hotspot #1 opening +             5h    1    Sound for hotspot #1 closing +             6h    2    Second hotspot Id of the pair +             8h    1    Current frame number for hotspot #2 +             9h    1    Ending frame number for hotspot #1 +             Ah    1    Sound for hotspot #1 opening +             Bh    1    Sound for hotspot #2 closing +             Ch    1    If zero, then exit is currently active. Non-zero +                        indicates that the exit is blocked +             Dh    2    Pointer to first hotspot's record +             Fh    2    Pointer to second hotspot's record + + +Sequence Table +============== +Lure of the Temptress uses a simple scripting set for performing various operations. +A set of instructions consist of a starting byte that contains the 'opcode' number +in bits 1 to 7, whilst bit 0, if set, indicates whether the following two bytes +should be loaded into dx (used as a general purpose register). + +Note that logical operations treat 0 as true, and 1 as false as far as the +interpreter is concerned for calls to conditional jumps after a logical test. +Because of this non-typical logical state representation, I'm still in the +process of validating that all the test opcodes are correct. + +The following commands are available (the values represent the value in bits 1-7): + +Opcode    Description +------    ----------- +  00h     Restore SP - Restores SP to what it was when the sequence started +          (ie. useful for breaking out of any subsequences that were being executed) +  01h     Add - Pops two values off the stack, adds them, and pushes the result +  02h     Subtract - Pops two values off the stack, subtracts the most recently +            pushed value from the second most recent value, and then pushes +            the result back onto the stack +  03h     Multiply - Pops two values off the stack, multiplies them, and pushes +            the result back onto the stack. Any overflow is also stored in DX +  04h     Divide - Pops two values off the stack and divides the second most +            recently pushed value by the most recent value, and pushes the +            result back on the stack. DX stores any remainder +  05h     Not equals - Pops two values off the stack, and if they're not equal +            pushes 0 back onto the stack. If equal, pushes 1 +  06h     Equals - Pops two values off the stack, and if they're equal pushes +            0 back onto the stack. If not equal, pushes 1 +  07h     Greater - Checks to see if the most recently pushed value is greater +            than the second most recent pushed value, and if so pops both of +            them off the stack and pushes a 1 back onto the stack +  08h     Smaller - Checks to see if the most recently pushed value is less +            than the second most recent pushed value, and if so pops both of +            them off the stack and pushes a 1 back onto the stack +  09h     Smaller2 - Identical to Smaller, but uses 'Js' check instead of 'Jc' +  0Ah     Greater2 - Identical to Greater, but uses 'Js' check instead of 'Jc' +  0Bh     And - Pops two values off the stack, ANDs them, and pushes the result +  0Ch     Or - Pops two values off the stack, ORs them, and pushes the result +  0Dh     Logical And - Pops the two top values off the stack, and pushes back +            1 if both of them are non-zero, otherwise 0 +  0Eh     Logical Or - Pops the two top values off the stack, and pushes back +            1 if either of them are non-zero, otherwise 0 +  0Fh     Get Field - Gets a field within the data segment. DX specifies field +                      offset from the room_number_2 field, and the value is +                      pushed onto the stack +  10h     Set Field - Sets a field within the data segment. DX specifies field +                      offset from the room_number_2 field, and the top value +                      on the stack is popped to set the field value +  11h     Push value - Pushes the value of DX onto the stack +  12h     Subroutine - Treats the value in DX as a pointer to a subroutine of +            sequence instructions. The subroutine is processed, and when done, +            the outer sequence resumes execution again. +  13h     Call Method - Calls a method number DX in the sequence method list. +                        If there any any values on the stack, they get popped +                        into bx, cx, and dx respectively. +  14h     Sequence end - ends the script sequence +  15h     Conditional Jump - Pops the top value off the stack, and if it's +            zero, adds the value in DX to the current sequence instructor pointer. +            Note that DX is 16-bit signed, allowing for both negative and +            postivie jumps +  16h     Jump - Adds the value in DX to the current sequence instructor pointer. +            Note that DX is 16-bit signed, allowing for both negative and +            postivie jumps +  17h     Restore SP - Restores SP to what it was when the sequence started +  18h     Restore SP - Restores SP to what it was when the sequence started +  19h     Random - Places a random number between 0 to 255 in DX + +Method List +----------- +The Call Method opcode (13h) can call methods, popping up to three values from +the stack if available, storing them in bx, cx, and dx respectively.  + +Sequence Delay Table +-------------------- +The sequence_delay_table has 40 slots of 7 bytes each that can contain a +sequence that shouldn't be exceed until a ceratin time has been exceeded. +Each slot consists of the following data: + +         Offset  Size   Meaning +         ------  ----   ------- +             2     4    Timer counter value at which point sequence should be +                        executed. When an entry is initially added to the list, +                        the delay amount is added to the current timer value +             4     2    Sequence offset to execute +             6     1    ??? + + +Hotspot Scripts +=============== +Sub_37 is a handler method called by the tick handler code for many animations. +The word at offset 24h of a hotspot entry specifies an offset into seg_c of the +executable. Starting at the given offset in the segment, data is read in one +word at a time. + +Value     Description +-----     ----------- +fff6h     Set bitset actions based on next 2 words +fff7h     Reads bx=next word, then calls sub_258 +fff8h     Reads bx=next word, cx=next word. If cx is either 0 or equal to the +          current room number, then calls sub_247 +fff9h     Sets the pixel data record for the hotspot +fffah     Jump to executing the sequence at the offset given by the following word +fffbh     Sets the dimensions of the animation. The next word is shifted left +          by 4 bits and stored as the width. The following word is stored as +          the height (both values are only set in the animation slot) +fffch     Ends the execution and deactivates the animation +fffdh      +fffeh     Sets the start position of the hotspot - the next following word +          specifies the X start, and the one after that is the Y start +ffffh     Reads in the next word and sets the timeout counter of the hotspot. +          The offset 24h entry of the hotspot is also updated to point to the +          next following word + +others    Set animation frame. If the animation disk resource flags byte has +          bit 2 clear, the frame is calculated by multiplying the opcode word's +          value by the frame size (at offset 7 of the pixel resource record). +          If bit 2 is set, the frame is set by getting the offset from the +          decoded data's offset table. In either case, once the offset is set, +          execution of the script stops. + + +Room List +========= + 1 = THE CELL + 2 = THE OUTER CELL + 3 = THE GUARD ROOM + 4 = THE TORTURE ROOM + 7 = THE SEWER OUTLET + 8 = Alley + 9 = CASTLE GATE +10 = APOTHECARY LANE +11 = Alley +12 = MAPIE COURTYARD +13 = CASTLE WALL +14 = MIDDLE STREET +15 = WEREGATE +17 = WEST STREET +18 = SMITHY STREET +19 = THE MARKET PLACE +20 = BLACKFRIARS ROW +21 = Alley +22 = Alley +23 = Alley +24 = Alley +25 = Alley +27 = Alley +28 = THE FORGE +29 = THE SEVERED ARMS +30 = TAIDGH'S HOUSE +31 = THE TOWN HALL +32 = MAGPIE TAVERN +34 = APOTHECARY WORKSHOP +35 = THE VILLAGE SHOP +36 = MONK'S LODGE +38 = Cave +39 = Cave +40 = Cave +41 = Cavern +42 = ? +43 = ? +44 = ? +45 = ? +46 = ? +47 = ? +48 = ? +3081 = Cave + + +393Ch - loading character movement list +--------------------------------------- +30h, 1, 0, 6feh, a18h, 0 + +Handling: + +If next word (W1) is 0, end decoding. Otherwise, read following word (W2) +and handle as per table below (PIXEL represents the pixel data record): + +Talking records +=============== +A character can specify a current talking record at offset 33h of it's hotspot +record. If the field is empty, then the main talk list talk_table is used to +get the starting talking record for a given character. The table consists of +a series of four byte entries: the first word gives the hotspot Id, the second +gives the offset of the talking record list for that character. + +The actual talking record contains a set of further offsets for talking records; +the current value of talk_record_index specifies which entry is loaded. There +is also a check to see if the hotspot name of the character being talked to is +17Ah "Stranger", in which case the first entry in the list is used. + +The talk data record set pointed to by the above offset has the following +format: + +         Offset  Size   Meaning +         ------  ----   ------- +            0h     2    Offset for a list of sequence Ids for handling results +            ----- following is a set of 6 byte records for talk lines ----- +            0h     2    Precheck sequence offset - and with 3fffh to get actual +                        offset - if the result of execution is 0, then the talk +                        entry isn't added to the list. +                        High bit of word, if set, will cause the looping of +                        talk entry lines to end after processing the record. +                        Additionally, a value of 0ffffh ends the set of records +            2h     2    String resource for talk question, anded with 0x3fffh. +                        The two high bits are flags described in the next entry +            3h     1    Flags - If both bit 7 and bit 6 are set, then the +                        entry is skipped +            4h     2    Post sequence offset - when the high bit is set, the +                        sequence number in the remaining bits is executed, and +                        the result number used as a lookup (discussed below). +                        Otherwise, the value is directly used as a lookup index + +Once an entry has been clicked on, the result index (either from running the +post sequence Id or directly from the field value itself) is used as an index +into the results. The results structure is a set of 6 byte entries with the +following structure: + +         Offset  Size   Meaning +         ------  ----   ------- +            0h     2    Pre sequence offset - If it is non-zero, then the sequence +                        is executed. If the result is not the special value 1092h, +                        then the result is treated as a new response index, +                        which is used instead of the current one +            2h     2    Response String Id - specifies the response spoken by +                        the character to the player +            4h     2    Post sequence offset - A value of 0ffffh indicates the +                        conversation is ended. If the high bit is set, then +                        the conversation continues. Otherwise, the given script +                        offset is executed, and the conversation ended if the +                        result is 0ffffh. +                        The remaining bits can specify a starting offset in the +                        talk entry list to start from next time. + + + +Hotspot Action List +------------------- +The hotspot action list provides a list of hotspots in a "countdown" state.. +every cycle a countdown variable is decremented for each hotspot entry in +the list, and is used to set offset 4Ah of a given hotspot record. When a +countdown counter reaches zero, the entry is removed from the list. + +I currently know that it's got something to do with talking to characters, +but I haven't yet figured out what precisely word 4Ah of a hotspot record +controls. + +         Offset  Size   Meaning +         ------  ----   ------- +            0h     2    Hotspot Id of the source talker +            2h     2    Hotspot Id of the destination talker +            4h     2    Countdown counter +            6h     2    Hotspot record offset for destination talker  | 
