
Page 60
Epson Research and Development
Vancouver Design Center
SED1352
Programming Notes and Examples
X16-BG-007-04
Issue Date: 98/10/08
WriteRegister(8, (unsigned int) val & 0xff);
WriteRegister(9, (unsigned int) val >> 8);
//
// If this is a dual panel, then the split screen has just been shown.
// Otherwise, set up the Screen 1 Display Line Count register for single
// panels.
//
if (PanelType == TYPE_SINGLE)
{
OriginalLineCount =
(unsigned int) ((ReadRegister(0x0b) & 0x03) << 8) | ReadRegister(0x0a);
// Only for 64k of memory
MaxVirtualScanLines = (unsigned int)
((unsigned long) 0x10000 / BytesPerScanLine);
MinLineCount = OriginalLineCount -
(MaxVirtualScanLines - OriginalLineCount) + 1;
Delay(0, 5);
//
// Scroll image 2 down
//
for (val = MinLineCount; val < OriginalLineCount; val += 1)
{
WriteRegister(0x0a, val & 0xff); // Total Display Line Count
WriteRegister(0x0b, (val >> 8) & 0x03); // Total Disp Line Cnt/WF Count
Delay(0, 1);
}
//
// Scroll image 2 up
//
for (val = OriginalLineCount; val > MinLineCount; val -= 1)
{
WriteRegister(0x0a, val & 0xff); // Total Display Line Count
WriteRegister(0x0b, (val >> 8) & 0x03); // Total Disp Line Cnt/WF Count
Delay(0, 1);
}
val = MinLineCount;
WriteRegister(0x0a, val & 0xff); // Total Display Line Count Reg
WriteRegister(0x0b, (val >> 8) & 0x03); // Total Disp Line Cnt/WF Count
Delay(0, 5);
}
}