Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
139 lines
36 KiB
HTML
139 lines
36 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>vdp_inl.h</title><link rel="stylesheet" type="text/css" href="../styles/main.css" /><script type="text/javascript" src="../styles/main.js"></script><script type="text/javascript">NDLoader.LoadJS("Content", "../styles/");</script></head>
|
|
|
|
<!-- Generated by Natural Docs, version 2.2 -->
|
|
|
|
<!-- saved from url=(0016)http://localhost -->
|
|
|
|
<body onload="NDLoader.OnLoad('Content');" class="NDPage NDContentPage">
|
|
|
|
<a name="Functions"></a><a name="Topic469"></a><div class="CTopic TGroup LC first">
|
|
<div class="CTitle">Functions</div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandHMMC_Arg"></a><a name="Topic470"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandHMMC_Arg</div>
|
|
<div id="NDPrototype470" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandHMMC_Arg(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PModifierQualifier first"><span class="SHKeyword">const</span> </td><td class="PType">u8* </td><td class="PName last">addr,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dy,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">nx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">ny,</td></tr><tr><td class="first"></td><td class="PType">u8 </td><td class="PName last">arg</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>High speed move CPU to VRAM. [MSX2/2+/TR]</p></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandHMMC"></a><a name="Topic471"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandHMMC</div>
|
|
<div id="NDPrototype471" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandHMMC(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PModifierQualifier first"><span class="SHKeyword">const</span> </td><td class="PType">u8* </td><td class="PName last">addr,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dy,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">nx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">ny</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>High speed move CPU to VRAM. [MSX2/2+/TR]</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">addr<div class="CDLParameterType"><span class="SHKeyword">const</span> u8*</div></td><td class="CDLDefinition"><p>Address of the source data</p></td></tr><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area (must be multiple of 2 in GM4 and GM6 mode, and multiple of 4 in GM5)</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the destinatio area (same limitation as DX)</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the destination area</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandYMMM"></a><a name="Topic472"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandYMMM</div>
|
|
<div id="NDPrototype472" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandYMMM(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">sy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">dir</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>High speed move VRAM to VRAM, Y coordinate only. [MSX2/2+/TR] This function copies data from the coordinates (dx, sy)-(255, sy+ny) to (dx, dy)-(255,dy+ny).</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">sy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the source area</p></td></tr><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area (must be multiple of 2 in GM4 and GM6 mode, and multiple of 4 in GM5)</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area to move</p></td></tr><tr><td class="CDLEntry">dir<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Direction of the move from the destination: 0 when sy < dy 1 when sy > dy</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandHMMM_Arg"></a><a name="Topic473"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandHMMM_Arg</div>
|
|
<div id="NDPrototype473" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandHMMM_Arg(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">sx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">sy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">arg</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>High speed move VRAM to VRAM. [MSX2/2+/TR]</p><p>This function copies rectangular sections from VRAM to VRAM.</p><p>By default, the copy is done from (sx,sy)-(sx+nx,sy+ny) to (dx,dy)-(dx+nx,dy+ny), that is, left to right and top to bottom. However, this order can be changed by specifying values in the argument register parameter (see below). Also, this function by default copies data from and to the standard MSX2/2+/TR VRAM addresses, that is, below 128kb. To deal with addresses above that (in the rare case of a MSX with 192kb VRAM), there is an argument register value for that too.</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">sx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the source area (must be multiple of 2 in GM4 and GM6 mode, and multiple of 4 in GM5)</p></td></tr><tr><td class="CDLEntry">sy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the source area</p></td></tr><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area (same limitation as SX)</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area (same limitation as SX)</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr><tr><td class="CDLEntry">arg<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Argument register: VDP_ARG_DIY_DOWN (0) copies from line sy to line sy + ny</p></td></tr><tr><td class="CDLEntry">VDP_ARG_DIY_UP (4) copies from line sy</td><td class="CDLDefinition"><p>ny to line sy VDP_ARG_DIX_RIGHT (0) copies from column sx to sx + nx</p></td></tr><tr><td class="CDLEntry">VDP_ARG_DIX_LEFT (8) copies from column sx</td><td class="CDLDefinition"><p>nx to sx 16 copies from extended VRAM (between 128kb and 192kb) 32 copies to extended VRAM (between 128kb and 192kb)</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandHMMM"></a><a name="Topic474"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandHMMM</div>
|
|
<div id="NDPrototype474" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandHMMM(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">sx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">sy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>High speed move VRAM to VRAM. [MSX2/2+/TR]</p><p>This function copies data from the coordinates (sx, sy)-(sx+nx, sy+ny) to (dx, dy)-(dx+nx,dy+ny).</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">sx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the source area (must be multiple of 2 in GM4 and GM6 mode, and multiple of 4 in GM5)</p></td></tr><tr><td class="CDLEntry">sy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the source area</p></td></tr><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area (same limitation as SX)</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area (same limitation as SX)</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandHMMV_Arg"></a><a name="Topic475"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandHMMV_Arg</div>
|
|
<div id="NDPrototype475" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandHMMV_Arg(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">col,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">arg</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>High speed move VDP to VRAM. [MSX2/2+/TR]</p><p>This function fills a retangular area with the byte col (bear in mind the bit depth of the mode you're using).</p><p>By default, the filling is done from (sx,sy)-(sx+nx,sy+ny) to (dx,dy)-(dx+nx,dy+ny), that is, left to right and top to bottom. However, this order can be changed by specifying values in the argument register parameter (see below). Also, this function by default filling data inside standard MSX2/2+/TR VRAM addresses, that is, below 128kb. To deal with addresses above that (in the rare case of a MSX with 192kb VRAM), there is an argument register value for that too;</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">sx</td><td class="CDLDefinition"><p>X coordinate of the source area (must be multiple of 2 in GM4 and GM6 mode, and multiple of 4 in GM5)</p></td></tr><tr><td class="CDLEntry">sy</td><td class="CDLDefinition"><p>Y coordinate of the source area</p></td></tr><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area (same limitation as SX)</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area (same limitation as SX)</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr><tr><td class="CDLEntry">col<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Byte to fill the area</p></td></tr><tr><td class="CDLEntry">arg<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Argument register: VDP_ARG_DIY_DOWN (0) fills from line sy to line sy + ny</p></td></tr><tr><td class="CDLEntry">VDP_ARG_DIY_UP (4) fills from line sy</td><td class="CDLDefinition"><p>ny to line sy VDP_ARG_DIX_RIGHT (0) fills from column sx to sx + nx</p></td></tr><tr><td class="CDLEntry">VDP_ARG_DIX_LEFT (8) fills from column sx</td><td class="CDLDefinition"><p>nx to sx 16 fills extended VRAM (between 128kb and 192kb)</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandHMMV"></a><a name="Topic476"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandHMMV</div>
|
|
<div id="NDPrototype476" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandHMMV(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">col</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>High speed move VDP to VRAM. [MSX2/2+/TR]</p><p>This function fills a retangular area (dx,dy)-(dx+nx,dy+ny) with the byte col (bear in mind the bit depth of the mode you're using), from left to right, top to bottom.</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area (must be multiple of 2 in GM4 and GM6 mode, and multiple of 4 in GM5)</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area (same limitation as DX)</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr><tr><td class="CDLEntry">col<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color data</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLMMC_Arg"></a><a name="Topic477"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLMMC_Arg</div>
|
|
<div id="NDPrototype477" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLMMC_Arg(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PModifierQualifier first"><span class="SHKeyword">const</span> </td><td class="PType">u8* </td><td class="PName last">addr,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dy,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">nx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">ny,</td></tr><tr><td class="first"></td><td class="PType">u8 </td><td class="PName last">op,</td></tr><tr><td class="first"></td><td class="PType">u8 </td><td class="PName last">arg</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Logical move CPU to VRAM. [MSX2/2+/TR]</p></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLMMC"></a><a name="Topic478"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLMMC</div>
|
|
<div id="NDPrototype478" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLMMC(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PModifierQualifier first"><span class="SHKeyword">const</span> </td><td class="PType">u8* </td><td class="PName last">addr,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">dy,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">nx,</td></tr><tr><td class="first"></td><td class="PType">u16 </td><td class="PName last">ny,</td></tr><tr><td class="first"></td><td class="PType">u8 </td><td class="PName last">op</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Logical move CPU to VRAM. [MSX2/2+/TR]</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">addr<div class="CDLParameterType"><span class="SHKeyword">const</span> u8*</div></td><td class="CDLDefinition"><p>Address of the source data</p></td></tr><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr><tr><td class="CDLEntry">op<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color blend operation</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLMCM"></a><a name="Topic479"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLMCM</div>
|
|
<div id="NDPrototype479" class="NDPrototype"><div class="PSection PPlainSection"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLMCM()</div></div>
|
|
<div class="CBody"><p>Logical move VRAM to CPU (not implemented). [MSX2/2+/TR]</p></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLMMM_Arg"></a><a name="Topic480"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLMMM_Arg</div>
|
|
<div id="NDPrototype480" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLMMM_Arg(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">sx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">sy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">op,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">arg</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Logical move VRAM to VRAM. [MSX2/2+/TR]</p></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLMMM"></a><a name="Topic481"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLMMM</div>
|
|
<div id="NDPrototype481" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLMMM(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">sx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">sy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">op</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Logical move VRAM to VRAM. [MSX2/2+/TR]</p><p>This function copies rectangular sections from VRAM to VRAM, applying a logical operator between the value on source and the value on destination.</p><p>Specifying AND operation means that the final pixel will be the source pixel AND the destination pixel. Same goes for OR and XOR.</p><p>NOT disregards the pixel at destination, and copies a negated pixel from the source.</p><p>All logic operators preceded by a "T" (TAND, TOR, TXOR, TNOT) behaves as the regular versions, but they keep the destination pixel untouched if the source pixel is transparent (usually 0)</p><table class="CDefinitionList"><tr><td class="CDLEntry">The TIMP operation copies data from source to value, except transparent ones</td><td class="CDLDefinition"><p>useful for</p></td></tr><tr><td class="CDLEntry">superimposing two images. IMP copies everything, including the transparent pixels</td><td class="CDLDefinition"><p>so consider using the faster command VDP_CommandHMMM instead)</p></td></tr></table><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">sx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the source area</p></td></tr><tr><td class="CDLEntry">sy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the source area</p></td></tr><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr><tr><td class="CDLEntry">op<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color blend operation VDP_OP_IMP (0x00) copies everything (consider using the faster function HMMM) VDP_OP_AND (0x01) applies an AND operation between source and destination VDP_OP_OR (0x02) applies an OR operation between source and destination VDP_OP_XOR (0x03) applies a XOR operation between source and destination VDP_OP_NOT (0x04) applies a NOT operation in the source pixel VDP_OP_TIMP (0x08) copies only non-transparent pixels (superimpose) VDP_OP_TAND (0x09) same as AND, but dont change pixels transparent at the source VDP_OP_TOR (0x0A) same as OR, but dont change pixels transparent at the source VDP_OP_TXOR (0x0B) same as XOR, but dont change pixels transparent at the source VDP_OP_TNOT (0x0C) same as NOT, but dont change pixels transparent at the source</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLMMV_Arg"></a><a name="Topic482"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLMMV_Arg</div>
|
|
<div id="NDPrototype482" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLMMV_Arg(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">col,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">op,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">arg</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Logical move VDP to VRAM. [MSX2/2+/TR]</p></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLMMV"></a><a name="Topic483"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLMMV</div>
|
|
<div id="NDPrototype483" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLMMV(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">col,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">op</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Logical move VDP to VRAM. [MSX2/2+/TR]</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr><tr><td class="CDLEntry">col<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color data</p></td></tr><tr><td class="CDLEntry">op<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color blend operation</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandLINE"></a><a name="Topic484"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandLINE</div>
|
|
<div id="NDPrototype484" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandLINE(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">nx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">ny,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">col,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">arg,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">op</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Draw straight line in VRAM. [MSX2/2+/TR]</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">nx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Width of the area</p></td></tr><tr><td class="CDLEntry">ny<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Height of the area</p></td></tr><tr><td class="CDLEntry">col<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color data</p></td></tr><tr><td class="CDLEntry">arg<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Command argument</p></td></tr><tr><td class="CDLEntry">op<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color blend operation</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandSRCH"></a><a name="Topic485"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandSRCH</div>
|
|
<div id="NDPrototype485" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandSRCH(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">sx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">sy,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">col,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">arg</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Search for the specific color in VRAM to the right or left of the starting point (not fonctional). [MSX2/2+/TR]</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">sx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the source area</p></td></tr><tr><td class="CDLEntry">sy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the source area</p></td></tr><tr><td class="CDLEntry">col<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color data</p></td></tr><tr><td class="CDLEntry">arg<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Command argument</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandPSET"></a><a name="Topic486"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandPSET</div>
|
|
<div id="NDPrototype486" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandPSET(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">dx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">dy,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">col,</td></tr><tr><td class="PType first">u8 </td><td class="PName last">op</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Draw a dot in VRAM. [MSX2/2+/TR]</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">dx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">dy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the destination area</p></td></tr><tr><td class="CDLEntry">col<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color data</p></td></tr><tr><td class="CDLEntry">op<div class="CDLParameterType">u8</div></td><td class="CDLDefinition"><p>Color blend operation</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandPOINT"></a><a name="Topic487"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandPOINT</div>
|
|
<div id="NDPrototype487" class="NDPrototype WideForm"><div class="PSection PParameterSection CStyle"><table><tr><td class="PBeforeParameters"><span class="SHKeyword">inline</span> u8 VDP_CommandPOINT(</td><td class="PParametersParentCell"><table class="PParameters"><tr><td class="PType first">u16 </td><td class="PName last">sx,</td></tr><tr><td class="PType first">u16 </td><td class="PName last">sy</td></tr></table></td><td class="PAfterParameters">)</td></tr></table></div></div>
|
|
<div class="CBody"><p>Read the color of the specified dot located in VRAM. [MSX2/2+/TR]</p><div class="CHeading">Parameters</div><table class="CDefinitionList"><tr><td class="CDLEntry">sx<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>X coordinate of the source area</p></td></tr><tr><td class="CDLEntry">sy<div class="CDLParameterType">u16</div></td><td class="CDLDefinition"><p>Y coordinate of the source area</p></td></tr></table></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandSTOP"></a><a name="Topic488"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandSTOP</div>
|
|
<div id="NDPrototype488" class="NDPrototype"><div class="PSection PPlainSection"><span class="SHKeyword">inline</span> <span class="SHKeyword">void</span> VDP_CommandSTOP()</div></div>
|
|
<div class="CBody"><p>Abort the current command. [MSX2/2+/TR]</p></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandCustomR32"></a><a name="Topic489"></a><div class="CTopic TFunction LC">
|
|
<div class="CTitle">VDP_CommandCustomR32</div>
|
|
<div class="CBody"><p>Set a command from a given buffer starting mapped from VDP register R32 (15 bytes buffer)</p></div>
|
|
</div>
|
|
|
|
<a name="VDP_CommandCustomR36"></a><a name="Topic490"></a><div class="CTopic TFunction LC last">
|
|
<div class="CTitle">VDP_CommandCustomR36</div>
|
|
<div class="CBody"><p>Set a command from a given buffer starting mapped from VDP register R36 (11 bytes buffer)</p></div>
|
|
</div>
|
|
|
|
</body></html> |