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