© 1985 ASCII CORP. / NIPPON GAKKI CO.
Page 71 of 108
© 2010-2015 Eugeny Brychkov
4.4.3. HMMM (High speed move VRAM to VRAM)
HMMM command is used to transfer data from one specific rectangular area in VRAM
of expansion RAM to another area within VRAM of expansion RAM. Note the limitation on
the X coordinate, which is dependent on the current graphics mode (255 or 511).
Video or expansion RAM
(SX, SY)
NX
→
DIX
NY
↓
DIY
(DX, DY)
HMMM execution order
Step 1: Set necessary coordinates in command registers
MSB
7 6 5 4 3 2 1 0
LSB
R#32
SX7 SX6 SX5 SX4 SX3 SX2 SX1 SX0
R#33
0 0 0 0 0 0 0 SX8
SX*: Source
transfer point X
R#34
SY7 SY6 SY5 SY4 SY3 SY2 SY1 SY0
R#35
0 0 0 0 0 0 SY9
SY8
SY: Source
transfer point Y
R#36
DX7 DX6 DX5 DX4 DX3 DX2 DX1 DX0
R#37
0 0 0 0 0 0 0
DX8
DX*:Destination
transfer point X
R#38
DY7 DY6 DY5 DY4 DY3 DY2 DY1 DY0
R#39
0 0 0 0 0 0
DY9
DY8
DY: Destination
transfer point Y
R#40
NX7 NX6 NX5 NX4 NX3 NX2 NX1 NX0
R#41
0 0 0 0 0 0 0
NX8
NX*: Number of
dots in x-axis
R#42
NY7 NY6 NY5 NY4 NY3 NY2 NY1 NY0
R#43
0 0 0 0 0 0
NY9
NY8
NY: Number of
dots in Y-axis
*In G4 and G6 modes, the lower one bit, and in G5 mode, the lower two bits are lost in registers related to
X-coordinate (DX, NX)