- mov ax, FRAMEBUF_SEG
- mov es, ax
- mov ax, [bp + 8] ; ax <- y
- sub ax, 16 ; ax <- y - 16 (center sprite vertically)
- mov bx, ax
- shl ax, 8
- shl bx, 6
- add ax, bx ; ax <- (y - 16) * 320
- mov di, [bp + 6] ; di <- x
- sub di, 16 ; di <- x - 16 (center sprite horizontally)
- add di, ax ; di <- (y - 16) * 320 + (x - 16)
-
- mov si, sprsheet_tiles
+ mov eax, [ebp + 16] ; ax <- y
+ sub eax, 16 ; ax <- y - 16 (center sprite vertically)
+ mov ebx, eax
+ shl eax, 8
+ shl ebx, 6
+ add eax, ebx ; ax <- (y - 16) * 320
+ mov edi, [ebp + 12] ; di <- x
+ sub edi, 16 ; di <- x - 16 (center sprite horizontally)
+ add edi, eax ; di <- (y - 16) * 320 + (x - 16)
+ add edi, FRAMEBUF_ADDR
+
+ mov esi, sprsheet_tiles