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 | } |