summaryrefslogtreecommitdiff
path: root/os/mpc/screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/mpc/screen.h')
-rw-r--r--os/mpc/screen.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/os/mpc/screen.h b/os/mpc/screen.h
new file mode 100644
index 00000000..8f8288a8
--- /dev/null
+++ b/os/mpc/screen.h
@@ -0,0 +1,60 @@
+enum {
+ Pcolours = 256, /* Palette */
+ Pred = 0,
+ Pgreen = 1,
+ Pblue = 2,
+
+ Pblack = 0x00,
+ Pwhite = 0xFF,
+};
+
+typedef struct Cursor Cursor;
+struct Cursor
+{
+ Point offset;
+ uchar clr[2*16];
+ uchar set[2*16];
+};
+
+/*
+ * MPC8xx LCD controller
+ */
+typedef struct LCDconfig {
+ long freq; /* ideal panel frequency in Hz */
+ int wbl; /* wait between lines (shift/clk cycles) */
+ int vpw; /* vertical sync pulse width (lines) */
+ int wbf; /* wait between frames (lines) */
+ int ac; /* AC timing (frames) */
+ ulong flags;
+ ulong notpdpar; /* reset mask for pdpar */
+} LCDconfig;
+
+enum {
+ /* lccr flags stored in LCDconfig.flags */
+ ClockLow = 1<<11,
+ OELow = 1<<10,
+ HsyncLow = 1<<9,
+ VsyncLow = 1<<8,
+ DataLow = 1<<7,
+ Passive8 = 1<<4,
+ DualScan = 1<<3,
+ IsColour = 1<<2,
+ IsTFT = 1<<1,
+};
+
+/*
+ * physical graphics device properties set by archlcdmode
+ */
+typedef struct Mode {
+ int x;
+ int y;
+ int d;
+
+ uchar* aperture;
+ int apsize;
+ LCDconfig lcd;
+} Mode;
+
+int archlcdmode(Mode*);
+extern Point mousexy(void);
+extern void blankscreen(int); \ No newline at end of file