; vi:filetype=nasm ts=8 sts=8 sw=8:
-;
-; list of functions
-; -----------------
-; init_gfx
-; initializes the video hardware and graphics routines
-; clear
-; clears the framebuffer (not vmem)
-; clobbers: eax, ecx, edi
-; swap_buffers
-; copies the framebuffer to video memory
-; clobbers: eax, ecx, edi, esi
-; wait_vsync
-; clobbers: al, dx
-; set_palette_entry(idx[al], r[ah], g[bl], b[bh])
-; colors are 0-255
bits 32
section .text
-VIDMEM_ADDR equ 0a0000h
-FRAMEBUF_ADDR equ 090000h
+%define GFX_ASM_
+%include "gfx.inc"
REG_CRTC_STATUS equ 3dah
CRTC_VBLANK_BIT equ 08h
REG_DAC_ADDR equ 3c8h
REG_DAC_DATA equ 3c9h
+ extern sprsheet
extern sprsheet_cmap
- extern sprsheet_tiles
-
global init_gfx
init_gfx:
add edi, eax ; di <- (y - 16) * 320 + (x - 16)
add edi, FRAMEBUF_ADDR
- mov esi, sprsheet_tiles
+ mov esi, sprsheet
; calculate sprite id offset (each spr is 32*32=1k)
mov eax, [ebp + 8]
shl eax, 10