Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
54 pj 1
#include "libvga.h"
2
 
3
int __svgalib_io_reloc;
4
 
5
int __svgalib_rel_inmisc(void)
6
{
7
   return port_in(MIS_R+__svgalib_io_reloc);
8
}
9
 
10
void __svgalib_rel_outmisc(int i)
11
{
12
   outb(MIS_W+__svgalib_io_reloc,i);
13
}
14
 
15
int __svgalib_rel_incrtc(int i)
16
{
17
   outb(__svgalib_CRT_I+__svgalib_io_reloc,i);
18
   return port_in(__svgalib_CRT_D+__svgalib_io_reloc);
19
}
20
 
21
void __svgalib_rel_outcrtc(int i, int d)
22
{
23
    outb(__svgalib_CRT_I+__svgalib_io_reloc, i);
24
    outb(__svgalib_CRT_D+__svgalib_io_reloc, d);
25
}
26
 
27
int __svgalib_rel_inseq(int index)
28
{
29
    outb(SEQ_I+__svgalib_io_reloc, index);
30
    return port_in(SEQ_D+__svgalib_io_reloc);
31
}
32
 
33
void __svgalib_rel_outseq(int index, int val)
34
{
35
    outb(SEQ_I+__svgalib_io_reloc, index);
36
    outb(SEQ_D+__svgalib_io_reloc, val);
37
}
38
 
39
int __svgalib_rel_ingra(int index)
40
{
41
    outb(GRA_I+__svgalib_io_reloc, index);
42
    return port_in(GRA_D+__svgalib_io_reloc);
43
}
44
 
45
void __svgalib_rel_outgra(int index, int val)
46
{
47
    outb(GRA_I+__svgalib_io_reloc, index);
48
    outb(GRA_D+__svgalib_io_reloc, val);
49
}
50
 
51
int __svgalib_rel_inis1(void)
52
{
53
   return port_in(__svgalib_IS1_R+__svgalib_io_reloc);
54
}
55
 
56
#ifdef NO_DELAY
57
 
58
int __svgalib_rel_inatt(int index)
59
{
60
    __svgalib_rel_inis1();
61
    outb(ATT_IW+__svgalib_io_reloc, index);
62
    return port_in(ATT_R+__svgalib_io_reloc);
63
}
64
 
65
void __svgalib_rel_outatt(int index, int val)
66
{
67
    __svgalib_rel_inis1();
68
    outb(ATT_IW+__svgalib_io_reloc, index);
69
    outb(ATT_IW+__svgalib_io_reloc, val);
70
}
71
 
72
void __svgalib_rel_attscreen(int i)
73
{
74
    __svgalib_rel_inis1();
75
    outb(ATT_IW+__svgalib_io_reloc, i);
76
}
77
 
78
void __svgalib_rel_inpal(int i, int *r, int *g, int *b)
79
{
80
    outb(PEL_IR+__svgalib_io_reloc,i);
81
    *r=port_in(PEL_D+__svgalib_io_reloc);
82
    *g=port_in(PEL_D+__svgalib_io_reloc);
83
    *b=port_in(PEL_D+__svgalib_io_reloc);
84
}
85
 
86
void __svgalib_rel_outpal(int i, int r, int g, int b)
87
{
88
 
89
    outb(PEL_IW+__svgalib_io_reloc,i);
90
    outb(PEL_D+__svgalib_io_reloc,r);
91
    outb(PEL_D+__svgalib_io_reloc,g);
92
    outb(PEL_D+__svgalib_io_reloc,b);
93
}
94
 
95
#else /* NO_DELAY */
96
 
97
int __svgalib_rel_inatt(int index)
98
{
99
    __svgalib_delay();
100
    __svgalib_rel_inis1();
101
    __svgalib_delay();
102
    outb(ATT_IW+__svgalib_io_reloc, index);
103
    __svgalib_delay();
104
    return port_in(ATT_R+__svgalib_io_reloc);
105
}
106
 
107
void __svgalib_rel_outatt(int index, int val)
108
{
109
    __svgalib_delay();
110
    __svgalib_rel_inis1();
111
    __svgalib_delay();
112
    outb(ATT_IW+__svgalib_io_reloc, index);
113
    __svgalib_delay();
114
    outb(ATT_IW+__svgalib_io_reloc, val);
115
}
116
 
117
void __svgalib_rel_attscreen(int i)
118
{
119
    __svgalib_delay();
120
    __svgalib_rel_inis1();
121
    __svgalib_delay();
122
    outb(ATT_IW+__svgalib_io_reloc, i);
123
}
124
 
125
void __svgalib_rel_inpal(int i, int *r, int *g, int *b)
126
{
127
    outb(PEL_IR+__svgalib_io_reloc,i);
128
    __svgalib_delay();
129
    *r=port_in(PEL_D+__svgalib_io_reloc);
130
    __svgalib_delay();
131
    *g=port_in(PEL_D+__svgalib_io_reloc);
132
    __svgalib_delay();
133
    *b=port_in(PEL_D+__svgalib_io_reloc);
134
}
135
 
136
void __svgalib_rel_outpal(int i, int r, int g, int b)
137
{
138
 
139
    outb(PEL_D+__svgalib_io_reloc,i);
140
    __svgalib_delay();
141
    outb(PEL_D+__svgalib_io_reloc,r);
142
    __svgalib_delay();
143
    outb(PEL_D+__svgalib_io_reloc,g);
144
    __svgalib_delay();
145
    outb(PEL_D+__svgalib_io_reloc,b);
146
}
147
 
148
#endif /* NO_DELAY */
149
 
150
void __svgalib_rel_io_mapio(void)
151
{
152
    __svgalib_inmisc=__svgalib_rel_inmisc;
153
    __svgalib_outmisc=__svgalib_rel_outmisc;
154
    __svgalib_incrtc=__svgalib_rel_incrtc;
155
    __svgalib_outcrtc=__svgalib_rel_outcrtc;
156
    __svgalib_inseq=__svgalib_rel_inseq;
157
    __svgalib_outseq=__svgalib_rel_outseq;
158
    __svgalib_ingra=__svgalib_rel_ingra;
159
    __svgalib_outgra=__svgalib_rel_outgra;
160
    __svgalib_inatt=__svgalib_rel_inatt;
161
    __svgalib_outatt=__svgalib_rel_outatt;
162
    __svgalib_attscreen=__svgalib_rel_attscreen;
163
    __svgalib_inis1=__svgalib_rel_inis1;
164
    __svgalib_inpal=__svgalib_rel_inpal;
165
    __svgalib_outpal=__svgalib_rel_outpal;
166
}