mirror of https://github.com/nmlgc/ReC98.git
41 lines
945 B
NASM
41 lines
945 B
NASM
; Fills the playfield around the 256×256 pixels starting at (64, 56) with the
|
||
; current GRCG tile.
|
||
; Assumes that the GRCG is set to TDW mode.
|
||
|
||
; void pascal playfield_fillm_64_56_256_256();
|
||
public playfield_fillm_64_56_256_256
|
||
playfield_fillm_64_56_256_256 proc near
|
||
push di
|
||
mov ax, GRAM_400 + (PLAYFIELD_Y * ROW_SIZE) shr 4
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov di, (55 * ROW_SIZE) + PLAYFIELD_VRAM_X
|
||
nop
|
||
|
||
@@rows_next:
|
||
mov cx, PLAYFIELD_VRAM_W / 4
|
||
|
||
@@rows_top_and_bottom:
|
||
mov es:[di+(312 * ROW_SIZE)], eax
|
||
stosd
|
||
loop @@rows_top_and_bottom
|
||
sub di, ROW_SIZE + PLAYFIELD_VRAM_W
|
||
jge short @@rows_next
|
||
mov ax, GRAM_400 + ((56 + PLAYFIELD_Y) * ROW_SIZE) shr 4
|
||
mov es, ax
|
||
assume es:nothing
|
||
mov di, (255 * ROW_SIZE) + PLAYFIELD_VRAM_X
|
||
nop
|
||
|
||
@@cols:
|
||
mov es:[di+(320 / 8)], eax
|
||
stosd
|
||
mov es:[di+(320 / 8)], eax
|
||
stosd
|
||
sub di, ROW_SIZE + 8
|
||
jge short @@cols
|
||
pop di
|
||
retn
|
||
playfield_fillm_64_56_256_256 endp
|
||
even
|