2018-12-06 19:11:13 +00:00
|
|
|
; Redefined versions of master.lib's grcg_setmode() and grcg_setcolor().
|
|
|
|
|
|
|
|
GRCG_SETMODE_RMW_DEF macro instance
|
|
|
|
; void grcg_setmode_rmw(void);
|
|
|
|
public _grcg_setmode_rmw_&instance
|
|
|
|
_grcg_setmode_rmw_&instance proc near
|
|
|
|
GRCG_SETMODE_VIA_MOV al, GC_RMW
|
|
|
|
ret
|
|
|
|
_grcg_setmode_rmw_&instance endp
|
|
|
|
nop
|
|
|
|
endm
|
|
|
|
|
|
|
|
GRCG_SETCOLOR_DIRECT_NOINT_DEF macro instance
|
|
|
|
; Takes the GC_* color parameter in AH.
|
|
|
|
|
|
|
|
; void grcg_setcolor_direct_noint(void);
|
|
|
|
public _grcg_setcolor_direct_noint_&instance
|
|
|
|
_grcg_setcolor_direct_noint_&instance proc near
|
|
|
|
cli
|
|
|
|
GRCG_SETCOLOR_DIRECT_CLOBBERING dx, ah
|
|
|
|
sti
|
|
|
|
ret
|
|
|
|
_grcg_setcolor_direct_noint_&instance endp
|
|
|
|
endm
|
2018-12-21 22:03:25 +00:00
|
|
|
|
|
|
|
; Convenience macro to prepare ES:DI.
|
|
|
|
GRCG_FILL_PLAYFIELD_ROWS macro y:req, num_rows:req, scratch_sgm:=<ax>
|
|
|
|
mov scratch_sgm, GRAM_400 + (((y + PLAYFIELD_Y) * ROW_SIZE) shr 4)
|
|
|
|
mov es, scratch_sgm
|
|
|
|
mov di, ((num_rows - 1) * ROW_SIZE) + PLAYFIELD_VRAM_X
|
|
|
|
call _grcg_fill_playfield_rows
|
|
|
|
endm
|