[Scummvm-cvs-logs] SF.net SVN: scummvm: [21256] scummvm/trunk/engines/lure/diassembly/LURE.ASM

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Mon Mar 13 03:34:07 CET 2006


Revision: 21256
Author:   dreammaster
Date:     2006-03-13 03:33:17 -0800 (Mon, 13 Mar 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=21256&view=rev

Log Message:
-----------
Added further disassembly of animation decoder routine

Modified Paths:
--------------
    scummvm/trunk/engines/lure/diassembly/LURE.ASM
Modified: scummvm/trunk/engines/lure/diassembly/LURE.ASM
===================================================================
--- scummvm/trunk/engines/lure/diassembly/LURE.ASM	2006-03-13 11:20:58 UTC (rev 21255)
+++ scummvm/trunk/engines/lure/diassembly/LURE.ASM	2006-03-13 11:33:17 UTC (rev 21256)
@@ -193,8 +193,9 @@
 PIXEL_DISK_ID             equ   0
 PIXEL_FLAGS               equ   2
 PIXEL_DATA_SEGMENT        equ   3
-PIXEL_OFFSETS_SEGMENT     equ   4
+PIXEL_DATA_SIZE           equ   5
 PIXEL_FRAME_SIZE          equ   7
+PIXELFLAG_HAS_TABLE       equ   4
 
 NOONE_HOTSPOT_ID          equ   3E7h
 PLAYER_HOTSPOT_ID         equ  3E8h
@@ -17854,17 +17855,17 @@
 273F:7804  F9                                   stc                             ; Set carry flag
 273F:7805  C3                                   retn
 273F:7806                       loc_1517:                                       ;  xref 273F:7802
-273F:7806  89 0E 4D04                           mov     word ptr ds:[4D04h],cx
-273F:780A  89 0E 4D06                           mov     word ptr ds:[4D06h],cx
+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     word ptr ds:[4D06h],dx  ; Save end of animation
+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,word ptr ds:[4D06h]
+273F:781B  A1 4D06                              mov     ax, anim_src_segment
 273F:781E  8E C0                                mov     es,ax
-273F:7820  A1 4D04                              mov     ax,word ptr ds:[4D04h]  ; (273F:4D04=0B957h)
+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
@@ -17905,27 +17906,25 @@
 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,word ptr ds:[4D04h]
+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+5],di               ; Store size of decoded rsc?
-273F:787D  83 6C 05 40                          sub     word ptr [si+5],40h     ; ???
-273F:7881  33 FF                                xor     di,di                  
-273F:7883  F6 44 02 04                          test    byte ptr [si+2],4
-273F:7887  74 34                                jz      loc_1523                ; Jump if zero
+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,word ptr ds:[4D06h]  ; (273F:4D06=28h)
-273F:7892  8E D8                                mov     ds,ax
+273F:788F  A1 4D06                              mov     ax, anim_src_segment
+273F:7892  8E D8                                mov     ds, ax
 273F:7894 \xFABE 0002                              mov     si, 2                   ; Offset of 1st header entry
-273F:7897  8B 0E 0000                           mov     cx, ds:[0]
-273F:789B  8B E9                                mov     bp,cx
-273F:789D  D1 E5                                shl     bp,1
+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
 
-; bp=first byte after header, dl=0 or 1, si=2, di=0
-
-273F:789F                       locloop_1521:                                   
+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]
@@ -17982,7 +17981,7 @@
 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,word ptr ds:[4D06h]  ; Get ptr to copy of
+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                    
@@ -18006,7 +18005,7 @@
 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,word ptr ds:[4D06h]  ; (273F:4D06=28h)
+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
@@ -18026,8 +18025,8 @@
 273F:7964  5F                                   pop     di
 273F:7965  1F                                   pop     ds
 273F:7966  1E                                   push    ds
-273F:7967  A1 4D06                              mov     ax,word ptr ds:[4D06h]  ; (273F:4D06=28h)
-273F:796A  8E D8                                mov     ds,ax
+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 \xFABE 0002                              mov     si,data_67e             ; (0028:0002=0)
 273F:7973  83 EF 01                             sub     di,1
@@ -26315,7 +26314,9 @@
 31E4:4D00  0000               buffer_segment    dw      0
 31E4:4D02  0000           buffer_segment_end    dw      0
 
-31E4:4D04  000C[00]                             db      12 dup (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


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





More information about the Scummvm-git-logs mailing list