I was bored. So I edited your program to run on an ILI9341 with a Uno. You must change the constructor for your SSD1963 and LINES value to 480:
#include <SPI.h>
#include <UTFT.h>
// Declare which fonts we will be using
extern uint8_t BigFont[];
// Uncomment the line for your display:
//UTFT myGLCD(TFT01_22SP,9,8,12,11,10); // ElecFreaks TFT01-2.2SP
//UTFT myGLCD(TFT01_22SP,51, 52, 53, 8, 9); // ElecFreaks TFT01-2.2SP
//UTFT myGLCD(MI0283QT9,11,13,7,8); // Watterott MI0283QT9
UTFT myGLCD(ILI9341_S5P, 11, 13, 10, 8, 9);
//UTFT myGLCD(ILI9341_S5P,75,76,10,8,9); //bit-bash on Due
//UTFT myGLCD(SSD1963_800,38,39,40,41);
const int LINES = 320; //for my ILI9341
//const int LINES = 480; //for your SSD1963
void setup()
{
int scrollines = LINES;
uint16_t TFA = 0, BFA = LINES - scrollines;
myGLCD.InitLCD(0); //Portrait for my ILI9341
myGLCD.setFont(BigFont);
// scroll frame
cbi(myGLCD.P_CS, myGLCD.B_CS);
myGLCD.LCD_Write_COM(0x33);
myGLCD.LCD_Write_DATA(TFA >> 8); //TFA
myGLCD.LCD_Write_DATA(TFA & 0xFF); //TFA
myGLCD.LCD_Write_DATA(scrollines >> 8); //SCROLL AREA
myGLCD.LCD_Write_DATA(scrollines & 0xFF);//
myGLCD.LCD_Write_DATA(BFA >> 8);//BFA
myGLCD.LCD_Write_DATA(BFA & 0xFF);
sbi(myGLCD.P_CS, myGLCD.B_CS);
myGLCD.clrScr();
}
void loop()
{
myGLCD.print("scroll centre", CENTER, LINES / 2);
delay(1000);
for (int i = 0; i < LINES; i++) {
cbi(myGLCD.P_CS, myGLCD.B_CS);
myGLCD.LCD_Write_COM(0x37);
myGLCD.LCD_Write_DATA(i >> 8); //OFFSET
myGLCD.LCD_Write_DATA(i & 0xFF); //
sbi(myGLCD.P_CS, myGLCD.B_CS);
delay(100);
}
}
void WriteCmdParamN(uint16_t cmd, int8_t N, uint8_t *block)
{
cbi(myGLCD.P_CS, myGLCD.B_CS);
myGLCD.LCD_Write_COM(cmd);
while (N-- > 0) {
myGLCD.LCD_Write_DATA(*block++);
}
sbi(myGLCD.P_CS, myGLCD.B_CS);
}
Multi-argument commands are easier with a helper function.
David.