Commit | Line | Data |
ee0007ab |
1 | # |
2 | # gemdos/xbios/bios interface on the atari |
3 | # |
4 | # ++jrb bammi@cadence.com |
5 | # |
6 | |
7 | # camel book pp204 |
8 | sub enum { |
9 | local($_) = @_; |
10 | local(@specs) = split(/,/); |
11 | local($val); |
12 | for(@specs) { |
13 | if(/=/) { |
14 | $val = eval $_; |
15 | } else { |
16 | eval $_ . ' = ++$val'; |
17 | } |
18 | } |
19 | } |
20 | |
21 | # these must match the defines in atarist.c |
22 | |
23 | &enum(<<'EOL'); |
24 | $_trap_1_w=1, $_trap_1_ww, $_trap_1_wl, $_trap_1_wlw, $_trap_1_www, |
25 | $_trap_1_wll, $_trap_1_wwll, $_trap_1_wlww, $_trap_1_wwlll, $_trap_13_w, |
26 | $_trap_13_ww, $_trap_13_wl, $_trap_13_www, $_trap_13_wwl, $_trap_13_wwlwww, |
27 | $_trap_14_w, $_trap_14_ww, $_trap_14_wl, $_trap_14_www, $_trap_14_wwl, |
28 | $_trap_14_wwll, $_trap_14_wllw, $_trap_14_wlll, $_trap_14_wwwl, |
29 | $_trap_14_wwwwl, $_trap_14_wllww, $_trap_14_wwwwwww, $_trap_14_wllwwwww, |
30 | $_trap_14_wllwwwwlw, $_trap_14_wllwwwwwlw |
31 | EOL |
32 | |
33 | sub Pterm0 { |
34 | syscall($_trap_1_w, 0x00); |
35 | } |
36 | sub Cconin { |
37 | syscall($_trap_1_w, 0x01); |
38 | } |
39 | sub Cconout { |
40 | syscall($_trap_1_ww, 0x02, @_); |
41 | } |
42 | sub Cauxin { |
43 | syscall($_trap_1_w, 0x03); |
44 | } |
45 | sub Cauxout { |
46 | syscall($_trap_1_ww, 0x04, @_); |
47 | } |
48 | sub Cprnout { |
49 | syscall($_trap_1_ww, 0x05, @_); |
50 | } |
51 | sub Crawio { |
52 | syscall($_trap_1_ww, 0x06, @_); |
53 | } |
54 | sub Crawcin { |
55 | syscall($_trap_1_w, 0x07); |
56 | } |
57 | sub Cnecin { |
58 | syscall($_trap_1_w, 0x08); |
59 | } |
60 | sub Cconws { |
61 | syscall($_trap_1_wl, 0x09, @_); |
62 | } |
63 | sub Cconrs { |
64 | syscall($_trap_1_wl, 0x0A, @_); |
65 | } |
66 | sub Cconis { |
67 | syscall($_trap_1_w, 0x0B); |
68 | } |
69 | sub Dsetdrv { |
70 | syscall($_trap_1_ww, 0x0E, @_); |
71 | } |
72 | sub Cconos { |
73 | syscall($_trap_1_w, 0x10); |
74 | } |
75 | sub Cprnos { |
76 | syscall($_trap_1_w, 0x11); |
77 | } |
78 | sub Cauxis { |
79 | syscall($_trap_1_w, 0x12); |
80 | } |
81 | sub Cauxos { |
82 | syscall($_trap_1_w, 0x13); |
83 | } |
84 | sub Dgetdrv { |
85 | syscall($_trap_1_w, 0x19); |
86 | } |
87 | sub Fsetdta { |
88 | syscall($_trap_1_wl, 0x1A, @_); |
89 | } |
90 | sub Super { |
91 | syscall($_trap_1_wl, 0x20, @_); |
92 | } |
93 | sub Tgetdate { |
94 | syscall($_trap_1_w, 0x2A); |
95 | } |
96 | sub Tsetdate { |
97 | syscall($_trap_1_ww, 0x2B, @_); |
98 | } |
99 | sub Tgettime { |
100 | syscall($_trap_1_w, 0x2C); |
101 | } |
102 | sub Tsettime { |
103 | syscall($_trap_1_ww, 0x2D, @_); |
104 | } |
105 | sub Fgetdta { |
106 | syscall($_trap_1_w, 0x2F); |
107 | } |
108 | sub Sversion { |
109 | syscall($_trap_1_w, 0x30); |
110 | } |
111 | sub Ptermres { |
112 | syscall($_trap_1_wlw, 0x31, @_); |
113 | } |
114 | sub Dfree { |
115 | syscall($_trap_1_wlw, 0x36, @_); |
116 | } |
117 | sub Dcreate { |
118 | syscall($_trap_1_wl, 0x39, @_); |
119 | } |
120 | sub Ddelete { |
121 | syscall($_trap_1_wl, 0x3A, @_); |
122 | } |
123 | sub Dsetpath { |
124 | syscall($_trap_1_wl, 0x3B, @_); |
125 | } |
126 | sub Fcreate { |
127 | syscall($_trap_1_wlw, 0x3C, @_); |
128 | } |
129 | sub Fopen { |
130 | syscall($_trap_1_wlw, 0x3D, @_); |
131 | } |
132 | sub Fclose { |
133 | syscall($_trap_1_ww, 0x3E, @_); |
134 | } |
135 | sub Fread { |
136 | syscall($_trap_1_wwll, 0x3F, @_); |
137 | } |
138 | sub Fwrite { |
139 | syscall($_trap_1_wwll, 0x40, @_); |
140 | } |
141 | sub Fdelete { |
142 | syscall($_trap_1_wl, 0x41, @_); |
143 | } |
144 | sub Fseek { |
145 | syscall($_trap_1_wlww, 0x42, @_); |
146 | } |
147 | sub Fattrib { |
148 | syscall($_trap_1_wlww, 0x43, @_); |
149 | } |
150 | sub Fdup { |
151 | syscall($_trap_1_ww, 0x45, @_); |
152 | } |
153 | sub Fforce { |
154 | syscall($_trap_1_www, 0x46, @_); |
155 | } |
156 | sub Dgetpath { |
157 | syscall($_trap_1_wlw, 0x47, @_); |
158 | } |
159 | sub Malloc { |
160 | syscall($_trap_1_wl, 0x48, @_); |
161 | } |
162 | sub Mfree { |
163 | syscall($_trap_1_wl, 0x49, @_); |
164 | } |
165 | sub Mshrink { |
166 | syscall($_trap_1_wwll, 0x4A, @_); |
167 | } |
168 | sub Pexec { |
169 | syscall($_trap_1_wwlll, 0x4B, @_); |
170 | } |
171 | sub Pterm { |
172 | syscall($_trap_1_ww, 0x4C, @_); |
173 | } |
174 | sub Fsfirst { |
175 | syscall($_trap_1_wlw, 0x4E, @_); |
176 | } |
177 | sub Fsnext { |
178 | syscall($_trap_1_w, 0x4F); |
179 | } |
180 | sub Frename { |
181 | syscall($_trap_1_wwll, 0x56, @_); |
182 | } |
183 | sub Fdatime { |
184 | syscall($_trap_1_wlww, 0x57, @_); |
185 | } |
186 | sub Getmpb { |
187 | syscall($_trap_13_wl, 0x00, @_); |
188 | } |
189 | sub Bconstat { |
190 | syscall($_trap_13_ww, 0x01, @_); |
191 | } |
192 | sub Bconin { |
193 | syscall($_trap_13_ww, 0x02, @_); |
194 | } |
195 | sub Bconout { |
196 | syscall($_trap_13_www, 0x03, @_); |
197 | } |
198 | sub Rwabs { |
199 | syscall($_trap_13_wwlwww, 0x04, @_); |
200 | } |
201 | sub Setexc { |
202 | syscall($_trap_13_wwl, 0x05, @_); |
203 | } |
204 | sub Tickcal { |
205 | syscall($_trap_13_w, 0x06); |
206 | } |
207 | sub Getbpb { |
208 | syscall($_trap_13_ww, 0x07, @_); |
209 | } |
210 | sub Bcostat { |
211 | syscall($_trap_13_ww, 0x08, @_); |
212 | } |
213 | sub Mediach { |
214 | syscall($_trap_13_ww, 0x09, @_); |
215 | } |
216 | sub Drvmap { |
217 | syscall($_trap_13_w, 0x0A); |
218 | } |
219 | sub Kbshift { |
220 | syscall($_trap_13_ww, 0x0B, @_); |
221 | } |
222 | sub Getshift { |
223 | &Kbshift(-1); |
224 | } |
225 | sub Initmous { |
226 | syscall($_trap_14_wwll, 0x00, @_); |
227 | } |
228 | sub Ssbrk { |
229 | syscall($_trap_14_ww, 0x01, @_); |
230 | } |
231 | sub Physbase { |
232 | syscall($_trap_14_w, 0x02); |
233 | } |
234 | sub Logbase { |
235 | syscall($_trap_14_w, 0x03); |
236 | } |
237 | sub Getrez { |
238 | syscall($_trap_14_w, 0x04); |
239 | } |
240 | sub Setscreen { |
241 | syscall($_trap_14_wllw, 0x05, @_); |
242 | } |
243 | sub Setpallete { |
244 | syscall($_trap_14_wl, 0x06, @_); |
245 | } |
246 | sub Setcolor { |
247 | syscall($_trap_14_www, 0x07, @_); |
248 | } |
249 | sub Floprd { |
250 | syscall($_trap_14_wllwwwww, 0x08, @_); |
251 | } |
252 | sub Flopwr { |
253 | syscall($_trap_14_wllwwwww, 0x09, @_); |
254 | } |
255 | sub Flopfmt { |
256 | syscall($_trap_14_wllwwwwwlw, 0x0A, @_); |
257 | } |
258 | sub Midiws { |
259 | syscall($_trap_14_wwl, 0x0C, @_); |
260 | } |
261 | sub Mfpint { |
262 | syscall($_trap_14_wwl, 0x0D, @_); |
263 | } |
264 | sub Iorec { |
265 | syscall($_trap_14_ww, 0x0E, @_); |
266 | } |
267 | sub Rsconf { |
268 | syscall($_trap_14_wwwwwww, 0x0F, @_); |
269 | } |
270 | sub Keytbl { |
271 | syscall($_trap_14_wlll, 0x10, @_); |
272 | } |
273 | sub Random { |
274 | syscall($_trap_14_w, 0x11); |
275 | } |
276 | sub Protobt { |
277 | syscall($_trap_14_wllww, 0x12, @_); |
278 | } |
279 | sub Flopver { |
280 | syscall($_trap_14_wllwwwww, 0x13, @_); |
281 | } |
282 | sub Scrdmp { |
283 | syscall($_trap_14_w, 0x14); |
284 | } |
285 | sub Cursconf { |
286 | syscall($_trap_14_www, 0x15, @_); |
287 | } |
288 | sub Settime { |
289 | syscall($_trap_14_wl, 0x16, @_); |
290 | } |
291 | sub Gettime { |
292 | syscall($_trap_14_w, 0x17); |
293 | } |
294 | sub Bioskeys { |
295 | syscall($_trap_14_w, 0x18); |
296 | } |
297 | sub Ikbdws { |
298 | syscall($_trap_14_wwl, 0x19, @_); |
299 | } |
300 | sub Jdisint { |
301 | syscall($_trap_14_ww, 0x1A, @_); |
302 | } |
303 | sub Jenabint { |
304 | syscall($_trap_14_ww, 0x1B, @_); |
305 | } |
306 | sub Giaccess { |
307 | syscall($_trap_14_www, 0x1C, @_); |
308 | } |
309 | sub Offgibit { |
310 | syscall($_trap_14_ww, 0x1D, @_); |
311 | } |
312 | sub Ongibit { |
313 | syscall($_trap_14_ww, 0x1E, @_); |
314 | } |
315 | sub Xbtimer { |
316 | syscall($_trap_14_wwwwl, 0x1E, @_); |
317 | } |
318 | sub Dosound { |
319 | syscall($_trap_14_wl, 0x20, @_); |
320 | } |
321 | sub Setprt { |
322 | syscall($_trap_14_ww, 0x21, @_); |
323 | } |
324 | sub Kbdvbase { |
325 | syscall($_trap_14_w, 0x22); |
326 | } |
327 | sub Kbrate { |
328 | syscall($_trap_14_www, 0x23, @_); |
329 | } |
330 | sub Prtblk { |
331 | syscall($_trap_14_wl, 0x24, @_); |
332 | } |
333 | sub Vsync { |
334 | syscall($_trap_14_w, 0x25); |
335 | } |
336 | sub Supexec { |
337 | syscall($_trap_14_wl, 0x26, @_); |
338 | } |
339 | sub Blitmode { |
340 | syscall($_trap_14_ww, 0x40, @_); |
341 | } |
342 | sub Mxalloc { |
343 | syscall($_trap_1_wlw, 0x44, @_); |
344 | } |
345 | sub Maddalt { |
346 | syscall($_trap_1_wll, 0x14, @_); |
347 | } |
348 | sub Setpalette { |
349 | syscall($_trap_14_wl, 0x06, @_); |
350 | } |
351 | sub EsetShift { |
352 | syscall($_trap_14_ww, 80, @_); |
353 | } |
354 | sub EgetShift { |
355 | syscall($_trap_14_w, 81); |
356 | } |
357 | sub EsetBank { |
358 | syscall($_trap_14_ww, 82, @_); |
359 | } |
360 | sub EsetColor { |
361 | syscall($_trap_14_www, 83, @_); |
362 | } |
363 | sub EsetPalette { |
364 | syscall($_trap_14_wwwl, 84, @_); |
365 | } |
366 | sub EgetPalette { |
367 | syscall($_trap_14_wwwl, 85, @_); |
368 | } |
369 | sub EsetGray { |
370 | syscall($_trap_14_ww, 86, @_); |
371 | } |
372 | sub EsetSmear { |
373 | syscall($_trap_14_ww, 87, @_); |
374 | } |
375 | sub Bconmap { |
376 | syscall($_trap_14_ww, 0x2b, @_); |
377 | } |
378 | sub Bconctl { |
379 | syscall($_trap_14_wwl, 0x2d, @_); |
380 | } |
381 | |
382 | 1; |