© 1985 ASCII CORP. / NIPPON GAKKI CO.
Page 75 of 108
© 2010-2015 Eugeny Brychkov
4.4.5. LMMC (Logical move CPU to VRAM)
LMMC command is used to transfer data from the CPU to video or expansion RAM
into a specified rectangular area through VDP. The units used are dots.
Video or expansion RAM
(DX, DY)
NX
→
DIX
CPU
VDP
NY
↓
DIY
LMMC execution order
Step 1: Set necessary coordinates in command registers
MSB
7 6 5 4 3 2 1 0
LSB
R#36
DX7 DX6 DX5 DX4 DX3 DX2 DX1 DX0
R#37
0 0 0 0 0 0 0
DX8
DX: Destination
X (0…511)
R#38
DY7 DY6 DY5 DY4 DY3 DY2 DY1 DY0
R#39
0 0 0 0 0 0
DY9
DY8
DY: Destination
Y (0…1023)
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
Step 2: Set color register value
The first byte transferred from CPU after starting executing the LMMC command
should be located in color register R#44 (CLR). Format of color data depends on the
graphics mode.
MSB
7 6 5 4 3 2 1 0
LSB
R#44
- - - -
CR3
CR2
CR1
CR0 G4,
G6
- - - - - -
CR1
CR0 G5
CR7 CR6 CR5 CR4 CR3 CR2 CR1 CR0
G7