Thursday, March 31, 2005
Create Console
A simple Console program to display some information about the video (LCD)
// TestVideoConsole.hcl
#define PAL_TARGET_CLOCK_RATE 25175000
#include "pal_master.hch"
#include "pal_console.hch"
#include "stdlib.hch"
// Declaration
static macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
static macro proc MyConsole(ConsolePtr);
// Main program
void main (void)
{
PalConsole *ConsolePtr;
macro expr VideoOut = PalVideoOutOptimalCT (ClockRate);
// Check we've got everything we need
PalVersionRequire (1, 0);
PalVideoOutRequire (1);
//
par
{
PalConsoleRun (&ConsolePtr, PAL_CONSOLE_FONT_ADVENTURE,
VideoOut, ClockRate);
seq
{
PalVideoOutEnable (VideoOut);
PalConsoleEnable (ConsolePtr);
MyConsole (ConsolePtr);
}
}
}
static macro proc MyConsole(ConsolePtr)
{
macro expr VideoOut = PalVideoOutOptimalCT (ClockRate);
macro expr endl = '\n';
static unsigned int 32 unInt;
static ram unsigned char string[80] = "\n\nShaohen's Celoxica Console\n"
"======================================\n\n";
static ram unsigned char visibleXctStr[13] = "Visible Xct: ";
static ram unsigned char visibleYctStr[13] = "Visible Yct: ";
static ram unsigned char visibleXWidth[18] = "Visible X Width : ";
static ram unsigned char visibleYWidth[18] = "Visible Y Width : ";
// Clear the screen
PalConsoleClear (ConsolePtr);
// Print the string
PalConsolePutString (ConsolePtr, string);
// Visible pixels per scan line at compile time
PalConsolePutString(ConsolePtr, visibleXctStr);
//unInt = adju(PalVideoOutGetVisibleX(VideoOut, ClockRate), 32);
unInt = PalVideoOutGetVisibleXCT(VideoOut, ClockRate);
PalConsolePutUInt(ConsolePtr, unInt);
PalConsolePutChar(ConsolePtr, endl);
// Number of visible scan lines, determined at compile time
PalConsolePutString(ConsolePtr, visibleYctStr);
unInt = PalVideoOutGetVisibleYCT(VideoOut);
PalConsolePutUInt(ConsolePtr, unInt);
PalConsolePutChar(ConsolePtr, endl);
// Number of vixible pixels per scan line, determined at run time
// width needed for a variable that holds the X coordinate of a visible pixel
PalConsolePutString(ConsolePtr, visibleXWidth );
unInt = PalVideoOutGetXWidth(VideoOut);
PalConsolePutUInt(ConsolePtr, unInt);
PalConsolePutChar(ConsolePtr, endl);
}