diff options
Diffstat (limited to 'engines/lure/disassembly')
-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 |