|
@@ -155,3 +155,123 @@ static inline void dma_cache_maintenance( unsigned long paddr,
|
|
|
/*
|
|
|
** Shifter
|
|
|
*/
|
|
|
+#define ST_LOW 0
|
|
|
+#define ST_MID 1
|
|
|
+#define ST_HIGH 2
|
|
|
+#define TT_LOW 7
|
|
|
+#define TT_MID 4
|
|
|
+#define TT_HIGH 6
|
|
|
+
|
|
|
+#define SHF_BAS (0xffff8200)
|
|
|
+struct SHIFTER
|
|
|
+ {
|
|
|
+ u_char pad1;
|
|
|
+ u_char bas_hi;
|
|
|
+ u_char pad2;
|
|
|
+ u_char bas_md;
|
|
|
+ u_char pad3;
|
|
|
+ u_char volatile vcounthi;
|
|
|
+ u_char pad4;
|
|
|
+ u_char volatile vcountmid;
|
|
|
+ u_char pad5;
|
|
|
+ u_char volatile vcountlow;
|
|
|
+ u_char volatile syncmode;
|
|
|
+ u_char pad6;
|
|
|
+ u_char pad7;
|
|
|
+ u_char bas_lo;
|
|
|
+ };
|
|
|
+# define shifter ((*(volatile struct SHIFTER *)SHF_BAS))
|
|
|
+
|
|
|
+#define SHF_FBAS (0xffff820e)
|
|
|
+struct SHIFTER_F030
|
|
|
+ {
|
|
|
+ u_short off_next;
|
|
|
+ u_short scn_width;
|
|
|
+ };
|
|
|
+# define shifter_f030 ((*(volatile struct SHIFTER_F030 *)SHF_FBAS))
|
|
|
+
|
|
|
+
|
|
|
+#define SHF_TBAS (0xffff8200)
|
|
|
+struct SHIFTER_TT {
|
|
|
+ u_char char_dummy0;
|
|
|
+ u_char bas_hi; /* video mem base addr, high and mid byte */
|
|
|
+ u_char char_dummy1;
|
|
|
+ u_char bas_md;
|
|
|
+ u_char char_dummy2;
|
|
|
+ u_char vcount_hi; /* pointer to currently displayed byte */
|
|
|
+ u_char char_dummy3;
|
|
|
+ u_char vcount_md;
|
|
|
+ u_char char_dummy4;
|
|
|
+ u_char vcount_lo;
|
|
|
+ u_short st_sync; /* ST compatible sync mode register, unused */
|
|
|
+ u_char char_dummy5;
|
|
|
+ u_char bas_lo; /* video mem addr, low byte */
|
|
|
+ u_char char_dummy6[2+3*16];
|
|
|
+ /* $ffff8240: */
|
|
|
+ u_short color_reg[16]; /* 16 color registers */
|
|
|
+ u_char st_shiftmode; /* ST compatible shift mode register, unused */
|
|
|
+ u_char char_dummy7;
|
|
|
+ u_short tt_shiftmode; /* TT shift mode register */
|
|
|
+
|
|
|
+
|
|
|
+};
|
|
|
+#define shifter_tt ((*(volatile struct SHIFTER_TT *)SHF_TBAS))
|
|
|
+
|
|
|
+/* values for shifter_tt->tt_shiftmode */
|
|
|
+#define TT_SHIFTER_STLOW 0x0000
|
|
|
+#define TT_SHIFTER_STMID 0x0100
|
|
|
+#define TT_SHIFTER_STHIGH 0x0200
|
|
|
+#define TT_SHIFTER_TTLOW 0x0700
|
|
|
+#define TT_SHIFTER_TTMID 0x0400
|
|
|
+#define TT_SHIFTER_TTHIGH 0x0600
|
|
|
+#define TT_SHIFTER_MODEMASK 0x0700
|
|
|
+#define TT_SHIFTER_NUMMODE 0x0008
|
|
|
+#define TT_SHIFTER_PALETTE_MASK 0x000f
|
|
|
+#define TT_SHIFTER_GRAYMODE 0x1000
|
|
|
+
|
|
|
+/* 256 TT palette registers */
|
|
|
+#define TT_PALETTE_BASE (0xffff8400)
|
|
|
+#define tt_palette ((volatile u_short *)TT_PALETTE_BASE)
|
|
|
+
|
|
|
+#define TT_PALETTE_RED_MASK 0x0f00
|
|
|
+#define TT_PALETTE_GREEN_MASK 0x00f0
|
|
|
+#define TT_PALETTE_BLUE_MASK 0x000f
|
|
|
+
|
|
|
+/*
|
|
|
+** Falcon030 VIDEL Video Controller
|
|
|
+** for description see File 'linux\tools\atari\hardware.txt
|
|
|
+ */
|
|
|
+#define f030_col ((u_long *) 0xffff9800)
|
|
|
+#define f030_xreg ((u_short*) 0xffff8282)
|
|
|
+#define f030_yreg ((u_short*) 0xffff82a2)
|
|
|
+#define f030_creg ((u_short*) 0xffff82c0)
|
|
|
+#define f030_sreg ((u_short*) 0xffff8260)
|
|
|
+#define f030_mreg ((u_short*) 0xffff820a)
|
|
|
+#define f030_linewidth ((u_short*) 0xffff820e)
|
|
|
+#define f030_hscroll ((u_char*) 0xffff8265)
|
|
|
+
|
|
|
+#define VIDEL_BAS (0xffff8260)
|
|
|
+struct VIDEL {
|
|
|
+ u_short st_shift;
|
|
|
+ u_short pad1;
|
|
|
+ u_char xoffset_s;
|
|
|
+ u_char xoffset;
|
|
|
+ u_short f_shift;
|
|
|
+ u_char pad2[0x1a];
|
|
|
+ u_short hht;
|
|
|
+ u_short hbb;
|
|
|
+ u_short hbe;
|
|
|
+ u_short hdb;
|
|
|
+ u_short hde;
|
|
|
+ u_short hss;
|
|
|
+ u_char pad3[0x14];
|
|
|
+ u_short vft;
|
|
|
+ u_short vbb;
|
|
|
+ u_short vbe;
|
|
|
+ u_short vdb;
|
|
|
+ u_short vde;
|
|
|
+ u_short vss;
|
|
|
+ u_char pad4[0x12];
|
|
|
+ u_short control;
|
|
|
+ u_short mode;
|
|
|
+};
|