/* Project 16 Source Code~\r
- * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669\r
+ * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
*\r
* This file is part of Project 16.\r
*\r
};*/\r
\r
static const word ModeX_256x192regs[] = {\r
-\r
- 0x3f01, /* horizontal display enable end */\r
- 0x4002, /* Start horizontal blanking */\r
-\r
- 0x4a04, /* End horizontal blanking */\r
- 0x9a05, /* End horizontal retrace */\r
- 0x0b06, /* vertical total */\r
+ 0x3200, /* Horizontal total */\r
+ 0x2701, /* horizontal display enable end */\r
+ 0x2802, /* Start horizontal blanking */\r
+ 0x2003, /* End horizontal blanking */\r
+ 0x2b04, /* Start horizontal retrace */\r
+ 0x7005, /* End horizontal retrace */\r
+ 0x0d06, /* vertical total */\r
0x3e07, /* overflow (bit 8 of vertical counts) */\r
- 0x4109, /* cell height (2 to double-scan */\r
- 0xda10, /* v sync start */\r
- 0x9c11, /* v sync end and protect cr0-cr7 */\r
- 0x7f12, /* vertical displayed */\r
- 0x2013, /* offset/logical width */\r
+ 0x4309, /* cell height (2 to double-scan */\r
+ 0xea10, /* v sync start */\r
+ 0xac11, /* v sync end and protect cr0-cr7 */\r
+ 0xdf12, /* vertical displayed */\r
+ 0x1413, /* offset/logical width */\r
0x0014, /* turn off dword mode */\r
- 0xc715, /* v blank start */\r
- 0x0416, /* v blank end */\r
+ 0xe715, /* v blank start */\r
+ 0x0616, /* v blank end */\r
0xe317 /* turn on byte mode */\r
};\r
\r
#endif /*_DIX_H_*/\r
-/*void\r
-tg::mode160x120()\r
-{\r
- int crtc11;\r
-\r
- outp(0x3d4, 0x11); // unlock crtc\r
- crtc11 = inp(0x3d5) & 0x7f;\r
- outp(0x3d4, 0x11);\r
- outp(0x3d5, crtc11);\r
-\r
- width = 160;\r
- height = 120;\r
- maxx = 159;\r
- maxy = 119;\r
- pages = 13;\r
- lineSize = 40;\r
- pageSize = 19200;\r
- modeName = "160x120";\r
-\r
- outp(0x3c2, 0xe3); // mor\r
-\r
- outp(0x3d4, 0x00); // crtc\r
- outp(0x3d5, 0x32);\r
-\r
- outp(0x3d4, 0x01); // crtc\r
- outp(0x3d5, 0x27);\r
-\r
- outp(0x3d4, 0x02); // crtc\r
- outp(0x3d5, 0x28);\r
-\r
- outp(0x3d4, 0x03); // crtc\r
- outp(0x3d5, 0x20);\r
-\r
- outp(0x3d4, 0x04); // crtc\r
- outp(0x3d5, 0x2b);\r
-\r
- outp(0x3d4, 0x05); // crtc\r
- outp(0x3d5, 0x70);\r
-\r
- outp(0x3d4, 0x06); // crtc\r
- outp(0x3d5, 0x0d);\r
-\r
- outp(0x3d4, 0x07); // crtc\r
- outp(0x3d5, 0x3e);\r
-\r
- outp(0x3d4, 0x08); // crtc\r
- outp(0x3d5, 0x00);\r
-\r
- outp(0x3d4, 0x09); // crtc\r
- outp(0x3d5, 0x43);\r
-\r
- outp(0x3d4, 0x10); // crtc\r
- outp(0x3d5, 0xea);\r
-\r
- outp(0x3d4, 0x11); // crtc\r
- outp(0x3d5, 0xac);\r
-\r
- outp(0x3d4, 0x12); // crtc\r
- outp(0x3d5, 0xdf);\r
-\r
- outp(0x3d4, 0x13); // crtc\r
- outp(0x3d5, 0x14);\r
-\r
- outp(0x3d4, 0x14); // crtc\r
- outp(0x3d5, 0x00);\r
-\r
- outp(0x3d4, 0x15); // crtc\r
- outp(0x3d5, 0xe7);\r
-\r
- outp(0x3d4, 0x16); // crtc\r
- outp(0x3d5, 0x06);\r
-\r
- outp(0x3d4, 0x17); // crtc\r
- outp(0x3d5, 0xe3);\r
-\r
- outp(0x3c4, 0x01); // seq\r
- outp(0x3c5, 0x01);\r
-\r
- outp(0x3c4, 0x03); // seq\r
- outp(0x3c5, 0x00);\r
-\r
- outp(0x3c4, 0x04); // seq\r
- outp(0x3c5, 0x06);\r
-\r
- outp(0x3ce, 0x05); // gcr\r
- outp(0x3cf, 0x40);\r
-\r
- outp(0x3ce, 0x06); // gcr\r
- outp(0x3cf, 0x05);\r
-\r
- inp(0x3da); // acr\r
- outp(0x3c0, 0x10 | 0x20);\r
- outp(0x3c0, 0x41);\r
-\r
- inp(0x3da); // acr\r
- outp(0x3c0, 0x11 | 0x20);\r
- outp(0x3c0, 0x00);\r
-\r
- inp(0x3da); // acr\r
- outp(0x3c0, 0x12 | 0x20);\r
- outp(0x3c0, 0x0f);\r
-\r
- inp(0x3da); // acr\r
- outp(0x3c0, 0x13 | 0x20);\r
- outp(0x3c0, 0x00);\r
-\r
- inp(0x3da); // acr\r
- outp(0x3c0, 0x14 | 0x20);\r
- outp(0x3c0, 0x00);\r
-\r
- outp(0x3d4, 0x11); // lock crtc\r
- crtc11 = inp(0x3d5) | 0x80;\r
- outp(0x3d4, 0x11);\r
- outp(0x3d5, crtc11);\r
-}*/\r
+/*\r
+voidtg::mode160x120(){\r
+ int crtc11; outp(CRTC_INDEX, 0x11); // unlock crtc\r
+ crtc11 = inp(CRTC_DATA) & 0x7f;\r
+ outp(CRTC_INDEX, 0x11);\r
+ outp(CRTC_DATA, crtc11);\r
+ width = 160;\r
+ height = 120;\r
+ maxx = 159;\r
+ maxy = 119;\r
+ pages = 13;\r
+ lineSize = 40;\r
+ pageSize = 19200;\r
+ modeName = "160x120";\r
+ outp(MISC_OUTPUT, 0xe3); // mor\r
+\r
+ outp(CRTC_INDEX, 0x00); outp(CRTC_DATA, 0x32);\r
+ outp(CRTC_INDEX, 0x01); outp(CRTC_DATA, 0x27);\r
+ outp(CRTC_INDEX, 0x02); outp(CRTC_DATA, 0x28);\r
+ outp(CRTC_INDEX, 0x03); outp(CRTC_DATA, 0x20);\r
+ outp(CRTC_INDEX, 0x04); outp(CRTC_DATA, 0x2b);\r
+ outp(CRTC_INDEX, 0x05); outp(CRTC_DATA, 0x70);\r
+ outp(CRTC_INDEX, 0x06); outp(CRTC_DATA, 0x0d);\r
+ outp(CRTC_INDEX, 0x07); outp(CRTC_DATA, 0x3e);\r
+ outp(CRTC_INDEX, 0x08); outp(CRTC_DATA, 0x00);\r
+ outp(CRTC_INDEX, 0x09); outp(CRTC_DATA, 0x43);\r
+ outp(CRTC_INDEX, 0x10); outp(CRTC_DATA, 0xea);\r
+ outp(CRTC_INDEX, 0x11); outp(CRTC_DATA, 0xac);\r
+ outp(CRTC_INDEX, 0x12); outp(CRTC_DATA, 0xdf);\r
+ outp(CRTC_INDEX, 0x13); outp(CRTC_DATA, 0x14);\r
+ outp(CRTC_INDEX, 0x14); outp(CRTC_DATA, 0x00);\r
+ outp(CRTC_INDEX, 0x15); outp(CRTC_DATA, 0xe7);\r
+ outp(CRTC_INDEX, 0x16); outp(CRTC_DATA, 0x06);\r
+ outp(CRTC_INDEX, 0x17); outp(CRTC_DATA, 0xe3);\r
+\r
+ outp(0xSC_INDEX, 0x01); // seq\r
+ outp(0xSC_DATA, 0x01);\r
+ outp(0xSC_INDEX, 0x03); // seq\r
+ outp(0xSC_DATA, 0x00);\r
+ outp(0xSC_INDEX, 0x04); // seq\r
+ outp(0xSC_DATA, 0x06);\r
+\r
+ outp(GC_INDEX, 0x05); // gcr\r
+ outp(0x3cf, 0x40);\r
+ outp(GC_INDEX, 0x06); // gcr\r
+ outp(0x3cf, 0x05);\r
+\r
+ inp(0x3da); // acr\r
+ outp(0x3c0, 0x10 | 0x20);\r
+ outp(0x3c0, 0x41);\r
+ inp(0x3da); // acr\r
+ outp(0x3c0, 0x11 | 0x20);\r
+ outp(0x3c0, 0x00);\r
+ inp(0x3da); // acr\r
+ outp(0x3c0, 0x12 | 0x20);\r
+ outp(0x3c0, 0x0f);\r
+ inp(0x3da); // acr\r
+ outp(0x3c0, 0x13 | 0x20);\r
+ outp(0x3c0, 0x00);\r
+ inp(0x3da); // acr\r
+ outp(0x3c0, 0x14 | 0x20);\r
+ outp(0x3c0, 0x00);\r
+\r
+ outp(CRTC_INDEX, 0x11); // lock crtc\r
+ crtc11 = inp(CRTC_DATA) | 0x80;\r
+ outp(CRTC_INDEX, 0x11);\r
+ outp(CRTC_DATA, crtc11);\r
+}\r
+*/\r