Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
54 pj 1
#include "libvga.h"
2
#include <stdio.h>
3
 
4
int __svgalib_vga_inmisc(void)
5
{
6
   return port_in(MIS_R);
7
}
8
 
9
void __svgalib_vga_outmisc(int i)
10
{
11
   outb(MIS_W,i);
12
}
13
 
14
int __svgalib_vga_incrtc(int i)
15
{
16
   outb(__svgalib_CRT_I,i);
17
   return port_in(__svgalib_CRT_D);
18
}
19
 
20
void __svgalib_vga_outcrtc(int i, int d)
21
{
22
    outb(__svgalib_CRT_I, i);
23
    outb(__svgalib_CRT_D, d);
24
}
25
 
26
int __svgalib_vga_inseq(int index)
27
{
28
    outb(SEQ_I, index);
29
    return port_in(SEQ_D);
30
}
31
 
32
void __svgalib_vga_outseq(int index, int val)
33
{
34
    outb(SEQ_I, index);
35
    outb(SEQ_D, val);
36
}
37
 
38
int __svgalib_vga_ingra(int index)
39
{
40
    outb(GRA_I, index);
41
    return port_in(GRA_D);
42
}
43
 
44
void __svgalib_vga_outgra(int index, int val)
45
{
46
    outb(GRA_I, index);
47
    outb(GRA_D, val);
48
}
49
 
50
int __svgalib_vga_inis1(void)
51
{
52
   return port_in(__svgalib_IS1_R);
53
}
54
 
55
#ifdef NO_DELAY
56
 
57
int __svgalib_vga_inatt(int index)
58
{
59
    __svgalib_vga_inis1();
60
    outb(ATT_IW, index);
61
    return port_in(ATT_R);
62
}
63
 
64
void __svgalib_vga_outatt(int index, int val)
65
{
66
    __svgalib_vga_inis1();
67
    outb(ATT_IW, index);
68
    outb(ATT_IW, val);
69
}
70
 
71
void __svgalib_vga_attscreen(int i)
72
{
73
    __svgalib_vga_inis1();
74
    outb(ATT_IW, i);
75
}
76
 
77
void __svgalib_vga_inpal(int i, int *r, int *g, int *b)
78
{
79
    outb(PEL_IR,i);
80
    *r=port_in(PEL_D);
81
    *g=port_in(PEL_D);
82
    *b=port_in(PEL_D);
83
}
84
 
85
void __svgalib_vga_outpal(int i, int r, int g, int b)
86
{
87
 
88
    outb(PEL_IW,i);
89
    outb(PEL_D,r);
90
    outb(PEL_D,g);
91
    outb(PEL_D,b);
92
}
93
 
94
#else /* NO_DELAY */
95
 
96
int __svgalib_vga_inatt(int index)
97
{
98
    __svgalib_delay();
99
    __svgalib_vga_inis1();
100
    __svgalib_delay();
101
    outb(ATT_IW, index);
102
    __svgalib_delay();
103
    return port_in(ATT_R);
104
}
105
 
106
void __svgalib_vga_outatt(int index, int val)
107
{
108
    __svgalib_delay();
109
    __svgalib_vga_inis1();
110
    __svgalib_delay();
111
    outb(ATT_IW, index);
112
    __svgalib_delay();
113
    outb(ATT_IW, val);
114
}
115
 
116
void __svgalib_vga_attscreen(int i)
117
{
118
    __svgalib_delay();
119
    __svgalib_vga_inis1();
120
    __svgalib_delay();
121
    outb(ATT_IW, i);
122
}
123
 
124
void __svgalib_vga_inpal(int i, int *r, int *g, int *b)
125
{
126
    outb(PEL_IR,i);
127
    __svgalib_delay();
128
    *r=port_in(PEL_D);
129
    __svgalib_delay();
130
    *g=port_in(PEL_D);
131
    __svgalib_delay();
132
    *b=port_in(PEL_D);
133
}
134
 
135
void __svgalib_vga_outpal(int i, int r, int g, int b)
136
{
137
 
138
    outb(PEL_IW,i);
139
    __svgalib_delay();
140
    outb(PEL_D,r);
141
    __svgalib_delay();
142
    outb(PEL_D,g);
143
    __svgalib_delay();
144
    outb(PEL_D,b);
145
}
146
 
147
#endif /* NO_DELAY */