View difference between Paste ID: bHsb7ZAC and aF43Sipw
SHOW: | | - or go back to the newest paste.
1-
                 xor     bh, bh
1+
do_planeBits:                           ; CODE XREF: draw_sprite_whiteflash+8Fj
2
seg000:E8DF                 lods    byte ptr es:[si] ; get the first byte of the plane (i.e., the planeBits), which
3
seg000:E8DF                                         ; determines to which planes data should be written
4
seg000:E8E1                 xchg    ax, bx          ; bl = planeBits; bh = sprite height (from function start)
5
seg000:E8E1                                         ; al = Bytes per plane, if it's bit-1 image
6
seg000:E8E2                 lds     di, page_1_address
7
seg000:E8E6                 add     di, dx          ; di = offset from start addres
8
seg000:E8E8                 mov     word ptr [bp+sprite_drawstruct.planeBits], bx
9
seg000:E8EB                 add     dx, ss:page_2_offset
10
seg000:E8F0                 mov     [bp+sprite_drawstruct.page2_offset], dx
11
seg000:E8F3                 mov     [bp+sprite_drawstruct.page1_offset], di
12
seg000:E8F6                 mov     ch, bh
13
seg000:E8F8                 mov     dl, ch          ; dl = ch = sprite height
14
seg000:E8FA                 xor     dh, dh
15
seg000:E8FC                 xor     bh, bh
16
seg000:E8FE                 shl     bx, 1           ; Jump to plane-bit dependent drawing code
17-
seg000:E916 ; ----------------------------------------
17+
18
seg000:E903                 jz      short draw_left_aligned
19
seg000:E905
20
seg000:E905 draw_non_left_aligned:                  ; draw sprite where source is
21
seg000:E905                 mov     [bp+sprite_drawstruct.planeBits], al ; not aligned on a byte boundary
22
seg000:E908                 mov     bp, di
23
seg000:E90A                 jmp     word ptr cs:off_E888[bx-2]
24
seg000:E90F ; ---------------------------------------------------------------------------
25
seg000:E90F
26
seg000:E90F draw_left_aligned:                      ; CODE XREF: draw_sprite_whiteflash+58j
27
seg000:E90F                 mov     bp, di          ; draw sprite whose source is aligned
28
seg000:E90F                                         ; on a left boundary
29
seg000:E90F                                         ; This includes shifted sprites
30
seg000:E911                 jmp     cs:off_E896[bx]
31
seg000:E916 ; ---------------------------------------------------------------------------