16 for(s = 32 - n; s > 0; s -= n)
24 setcolour(uchar p[3], ulong r, ulong g, ulong b)
35 snarf(Vga* vga, Ctlr* ctlr)
39 vga->pixmask = vgai(Pixmask);
40 vga->pstatus = vgai(Pstatus);
42 for(i = 0; i < Pcolours; i++){
43 vga->palette[i][Red] = vgai(Pdata);
44 vga->palette[i][Green] = vgai(Pdata);
45 vga->palette[i][Blue] = vgai(Pdata);
52 init(Vga* vga, Ctlr* ctlr)
58 memset(vga->palette, 0, sizeof(vga->palette));
60 if(vga->mode->z == 8){
61 for(i = 0; i < Pcolours; i++){
62 p = vga->palette[i^0xFF];
63 setcolour(p, xnto32(i>>5, 3), xnto32(i>>2, 3), xnto32(i, 2));
65 p = vga->palette[0x55^0xFF];
66 setcolour(p, xnto32(0x15, 6), xnto32(0x15, 6), xnto32(0x15, 6));
67 p = vga->palette[0xAA^0xFF];
68 setcolour(p, xnto32(0x2A, 6), xnto32(0x2A, 6), xnto32(0x2A, 6));
69 p = vga->palette[0xFF^0xFF];
70 setcolour(p, xnto32(0x3F, 6), xnto32(0x3F, 6), xnto32(0x3F, 6));
72 else for(i = 0; i < 16; i++){
73 x = xnto32((i*63)/15, 6);
74 setcolour(vga->palette[i^0xFF], x, x, x);
81 load(Vga* vga, Ctlr* ctlr)
85 vgao(Pixmask, vga->pixmask);
87 for(i = 0; i < Pcolours; i++){
88 vgao(Pdata, vga->palette[i][Red]);
89 vgao(Pdata, vga->palette[i][Green]);
90 vgao(Pdata, vga->palette[i][Blue]);
97 dump(Vga* vga, Ctlr* ctlr)
101 printitem(ctlr->name, "palette");
102 for(i = 0; i < Pcolours; i++){
104 Bprint(&stdout, "\n%-20s", "");
105 Bprint(&stdout, " %2.2X/%2.2X/%2.2X", vga->palette[i][Red],
106 vga->palette[i][Green], vga->palette[i][Blue]);
108 Bprint(&stdout, "\n");
112 "palette", /* name */