|
|
1.1 ! root 1: /* ! 2: * Generic VGA registers. ! 3: */ ! 4: enum { ! 5: MiscW = 0x03C2, /* Miscellaneous Output (W) */ ! 6: MiscR = 0x03CC, /* Miscellaneous Output (R) */ ! 7: Status0 = 0x03C2, /* Input status 0 (R) */ ! 8: Status1 = 0x03DA, /* Input Status 1 (R) */ ! 9: FeatureR = 0x03CA, /* Feature Control (R) */ ! 10: FeatureW = 0x03DA, /* Feature Control (W) */ ! 11: ! 12: Seqx = 0x03C4, /* Sequencer Index, Data at Seqx+1 */ ! 13: Crtx = 0x03D4, /* CRT Controller Index, Data at Crtx+1 */ ! 14: Grx = 0x03CE, /* Graphics Controller Index, Data at Grx+1 */ ! 15: Attrx = 0x03C0, /* Attribute Controller Index and Data */ ! 16: ! 17: PaddrW = 0x03C8, /* Palette Address Register, write */ ! 18: Pdata = 0x03C9, /* Palette Data Register */ ! 19: Pixmask = 0x03C6, /* Pixel Mask Register */ ! 20: PaddrR = 0x03C7, /* Palette Address Register, read */ ! 21: Pstatus = 0x03C7, /* DAC Status (RO) */ ! 22: ! 23: Pcolours = 256, /* Palette */ ! 24: Pred = 0, ! 25: Pgreen = 1, ! 26: Pblue = 2, ! 27: }; ! 28: ! 29: #define vgai(port) inb(port) ! 30: #define vgao(port, data) outb(port, data) ! 31: ! 32: extern int vgaxi(long, uchar); ! 33: extern int vgaxo(long, uchar, uchar); ! 34: ! 35: /* ! 36: * Definitions of known VGA controllers. ! 37: */ ! 38: typedef struct Vgac Vgac; ! 39: struct Vgac { ! 40: char *name; ! 41: void (*page)(int); ! 42: ! 43: Vgac* link; ! 44: }; ! 45: ! 46: /* ! 47: * Definition of known hardware graphics cursors. ! 48: */ ! 49: typedef struct Hwgc Hwgc; ! 50: struct Hwgc { ! 51: char* name; ! 52: void (*enable)(void); ! 53: void (*load)(Cursor*); ! 54: int (*move)(Point); ! 55: void (*disable)(void); ! 56: ! 57: Hwgc* link; ! 58: }; ! 59: ! 60: extern void addvgaclink(Vgac*); ! 61: extern void addhwgclink(Hwgc*); ! 62: ! 63: extern Hwgc *hwgc; ! 64: ! 65: extern Lock palettelock;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.