📄 tvp3025.c
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include "pci.h"#include "vga.h"/* * Tvp3025 Viewpoint Video Interface Pallette. * Assumes hooked up to an S3 Vision964. * The #9GXE64pro uses bit 5 of Crt5C as RS4, * giving access to the Bt485 emulation mode registers. */static voidoptions(Vga* vga, Ctlr* ctlr){ tvp3020.options(vga, ctlr);}static voidinit(Vga* vga, Ctlr* ctlr){ /* * Although the Tvp3025 has a higher default * speed-grade (135MHz), just use the 3020 code. */ tvp3020.init(vga, ctlr);}static voidload(Vga* vga, Ctlr* ctlr){ uchar crt5c, x; crt5c = vgaxi(Crtx, 0x5C) & ~0x20; vgaxo(Crtx, 0x5C, crt5c); x = tvp3020xi(0x06) & ~0x80; tvp3020xo(0x06, x); tvp3020xo(0x0E, 0x00); (tvp3020.load)(vga, ctlr); if(ctlr->flag & Uenhanced) tvp3020xo(0x29, 0x01); ctlr->flag |= Fload;}static ulongdumpclock(ulong d, ulong n, ulong p){ ulong f; f = RefFreq*((n+2)*8); f /= (d+2); f >>= p; return f;}static voiddump(Vga* vga, Ctlr* ctlr){ uchar crt5c; int i; ulong clock[4]; crt5c = vgaxi(Crtx, 0x5C); vgaxo(Crtx, 0x5C, crt5c & ~0x20); tvp3020.dump(vga, ctlr); printitem(ctlr->name, "PCLK"); for(i = 0; i < 4; i++){ tvp3020xo(0x2C, (i<<4)|(i<<2)|i); printreg(clock[i] = tvp3020xi(0x2D)); } Bprint(&stdout, "%23ld\n", dumpclock(clock[0], clock[1], clock[2] & 0x07)); printitem(ctlr->name, "MCLK"); for(i = 0; i < 4; i++){ tvp3020xo(0x2C, (i<<4)|(i<<2)|i); printreg(clock[i] = tvp3020xi(0x2E)); } Bprint(&stdout, "%23ld\n", dumpclock(clock[0], clock[1], clock[2] & 0x07)); printitem(ctlr->name, "RCLK"); for(i = 0; i < 4; i++){ tvp3020xo(0x2C, (i<<4)|(i<<2)|i); printreg(clock[i] = tvp3020xi(0x2F)); } Bprint(&stdout, "%23ld\n", dumpclock(clock[0], clock[1], clock[2] & 0x07)); vgaxo(Crtx, 0x5C, crt5c);}Ctlr tvp3025 = { "tvp3025", /* name */ 0, /* snarf */ options, /* options */ init, /* init */ load, /* load */ dump, /* dump */};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -