Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- seg000:E8DF do_planeBits: ; CODE XREF: draw_sprite_whiteflash+8Fj
- seg000:E8DF lods byte ptr es:[si] ; get the first byte of the plane (i.e., the planeBits), which
- seg000:E8DF ; determines to which planes data should be written
- seg000:E8E1 xchg ax, bx ; bl = planeBits; bh = sprite height (from function start)
- seg000:E8E1 ; al = Bytes per plane, if it's bit-1 image
- seg000:E8E2 lds di, page_1_address
- seg000:E8E6 add di, dx ; di = offset from start addres
- seg000:E8E8 mov word ptr [bp+sprite_drawstruct.planeBits], bx
- seg000:E8EB add dx, ss:page_2_offset
- seg000:E8F0 mov [bp+sprite_drawstruct.page2_offset], dx
- seg000:E8F3 mov [bp+sprite_drawstruct.page1_offset], di
- seg000:E8F6 mov ch, bh
- seg000:E8F8 mov dl, ch ; dl = ch = sprite height
- seg000:E8FA xor dh, dh
- seg000:E8FC xor bh, bh
- seg000:E8FE shl bx, 1 ; Jump to plane-bit dependent drawing code
- seg000:E900 and cl, 7 ; cl = left edge of sprite x-coord MOD 8
- seg000:E903 jz short draw_left_aligned
- seg000:E905
- seg000:E905 draw_non_left_aligned: ; draw sprite where dest is
- seg000:E905 mov [bp+sprite_drawstruct.planeBits], al ; not aligned on a byte boundary
- seg000:E908 mov bp, di
- seg000:E90A jmp word ptr cs:off_E888[bx-2]
- seg000:E90F ; ---------------------------------------------------------------------------
- seg000:E90F
- seg000:E90F draw_left_aligned: ; CODE XREF: draw_sprite_whiteflash+58j
- seg000:E90F mov bp, di ; draw sprite whose dest is aligned
- seg000:E90F ; on a left boundary
- seg000:E90F ; This includes shifted sprites
- seg000:E911 jmp cs:off_E896[bx]
- seg000:E916 ; ---------------------------------------------------------------------------
- seg000:E916
Advertisement
Add Comment
Please, Sign In to add comment