summaryrefslogtreecommitdiff
path: root/atarist
diff options
context:
space:
mode:
authorLarry Wall <lwall@netlabs.com>1992-06-08 04:50:30 +0000
committerLarry Wall <lwall@netlabs.com>1992-06-08 04:50:30 +0000
commitee0007abcec11102eeaa49662e5ebb838e04aac6 (patch)
tree8bd2b45245f7c74167adac89abd7285c65989bfb /atarist
parent7b0cd887a13445cfae2c23db0b7efd05a47758e6 (diff)
downloadperl-ee0007abcec11102eeaa49662e5ebb838e04aac6.tar.gz
perl 4.0 patch 28: patch #20, continued
See patch #20.
Diffstat (limited to 'atarist')
-rw-r--r--atarist/osbind.pl382
1 files changed, 382 insertions, 0 deletions
diff --git a/atarist/osbind.pl b/atarist/osbind.pl
new file mode 100644
index 0000000000..84f64fb2ae
--- /dev/null
+++ b/atarist/osbind.pl
@@ -0,0 +1,382 @@
+#
+# gemdos/xbios/bios interface on the atari
+#
+# ++jrb bammi@cadence.com
+#
+
+# camel book pp204
+sub enum {
+ local($_) = @_;
+ local(@specs) = split(/,/);
+ local($val);
+ for(@specs) {
+ if(/=/) {
+ $val = eval $_;
+ } else {
+ eval $_ . ' = ++$val';
+ }
+ }
+}
+
+# these must match the defines in atarist.c
+
+&enum(<<'EOL');
+$_trap_1_w=1, $_trap_1_ww, $_trap_1_wl, $_trap_1_wlw, $_trap_1_www,
+$_trap_1_wll, $_trap_1_wwll, $_trap_1_wlww, $_trap_1_wwlll, $_trap_13_w,
+$_trap_13_ww, $_trap_13_wl, $_trap_13_www, $_trap_13_wwl, $_trap_13_wwlwww,
+$_trap_14_w, $_trap_14_ww, $_trap_14_wl, $_trap_14_www, $_trap_14_wwl,
+$_trap_14_wwll, $_trap_14_wllw, $_trap_14_wlll, $_trap_14_wwwl,
+$_trap_14_wwwwl, $_trap_14_wllww, $_trap_14_wwwwwww, $_trap_14_wllwwwww,
+$_trap_14_wllwwwwlw, $_trap_14_wllwwwwwlw
+EOL
+
+sub Pterm0 {
+ syscall($_trap_1_w, 0x00);
+}
+sub Cconin {
+ syscall($_trap_1_w, 0x01);
+}
+sub Cconout {
+ syscall($_trap_1_ww, 0x02, @_);
+}
+sub Cauxin {
+ syscall($_trap_1_w, 0x03);
+}
+sub Cauxout {
+ syscall($_trap_1_ww, 0x04, @_);
+}
+sub Cprnout {
+ syscall($_trap_1_ww, 0x05, @_);
+}
+sub Crawio {
+ syscall($_trap_1_ww, 0x06, @_);
+}
+sub Crawcin {
+ syscall($_trap_1_w, 0x07);
+}
+sub Cnecin {
+ syscall($_trap_1_w, 0x08);
+}
+sub Cconws {
+ syscall($_trap_1_wl, 0x09, @_);
+}
+sub Cconrs {
+ syscall($_trap_1_wl, 0x0A, @_);
+}
+sub Cconis {
+ syscall($_trap_1_w, 0x0B);
+}
+sub Dsetdrv {
+ syscall($_trap_1_ww, 0x0E, @_);
+}
+sub Cconos {
+ syscall($_trap_1_w, 0x10);
+}
+sub Cprnos {
+ syscall($_trap_1_w, 0x11);
+}
+sub Cauxis {
+ syscall($_trap_1_w, 0x12);
+}
+sub Cauxos {
+ syscall($_trap_1_w, 0x13);
+}
+sub Dgetdrv {
+ syscall($_trap_1_w, 0x19);
+}
+sub Fsetdta {
+ syscall($_trap_1_wl, 0x1A, @_);
+}
+sub Super {
+ syscall($_trap_1_wl, 0x20, @_);
+}
+sub Tgetdate {
+ syscall($_trap_1_w, 0x2A);
+}
+sub Tsetdate {
+ syscall($_trap_1_ww, 0x2B, @_);
+}
+sub Tgettime {
+ syscall($_trap_1_w, 0x2C);
+}
+sub Tsettime {
+ syscall($_trap_1_ww, 0x2D, @_);
+}
+sub Fgetdta {
+ syscall($_trap_1_w, 0x2F);
+}
+sub Sversion {
+ syscall($_trap_1_w, 0x30);
+}
+sub Ptermres {
+ syscall($_trap_1_wlw, 0x31, @_);
+}
+sub Dfree {
+ syscall($_trap_1_wlw, 0x36, @_);
+}
+sub Dcreate {
+ syscall($_trap_1_wl, 0x39, @_);
+}
+sub Ddelete {
+ syscall($_trap_1_wl, 0x3A, @_);
+}
+sub Dsetpath {
+ syscall($_trap_1_wl, 0x3B, @_);
+}
+sub Fcreate {
+ syscall($_trap_1_wlw, 0x3C, @_);
+}
+sub Fopen {
+ syscall($_trap_1_wlw, 0x3D, @_);
+}
+sub Fclose {
+ syscall($_trap_1_ww, 0x3E, @_);
+}
+sub Fread {
+ syscall($_trap_1_wwll, 0x3F, @_);
+}
+sub Fwrite {
+ syscall($_trap_1_wwll, 0x40, @_);
+}
+sub Fdelete {
+ syscall($_trap_1_wl, 0x41, @_);
+}
+sub Fseek {
+ syscall($_trap_1_wlww, 0x42, @_);
+}
+sub Fattrib {
+ syscall($_trap_1_wlww, 0x43, @_);
+}
+sub Fdup {
+ syscall($_trap_1_ww, 0x45, @_);
+}
+sub Fforce {
+ syscall($_trap_1_www, 0x46, @_);
+}
+sub Dgetpath {
+ syscall($_trap_1_wlw, 0x47, @_);
+}
+sub Malloc {
+ syscall($_trap_1_wl, 0x48, @_);
+}
+sub Mfree {
+ syscall($_trap_1_wl, 0x49, @_);
+}
+sub Mshrink {
+ syscall($_trap_1_wwll, 0x4A, @_);
+}
+sub Pexec {
+ syscall($_trap_1_wwlll, 0x4B, @_);
+}
+sub Pterm {
+ syscall($_trap_1_ww, 0x4C, @_);
+}
+sub Fsfirst {
+ syscall($_trap_1_wlw, 0x4E, @_);
+}
+sub Fsnext {
+ syscall($_trap_1_w, 0x4F);
+}
+sub Frename {
+ syscall($_trap_1_wwll, 0x56, @_);
+}
+sub Fdatime {
+ syscall($_trap_1_wlww, 0x57, @_);
+}
+sub Getmpb {
+ syscall($_trap_13_wl, 0x00, @_);
+}
+sub Bconstat {
+ syscall($_trap_13_ww, 0x01, @_);
+}
+sub Bconin {
+ syscall($_trap_13_ww, 0x02, @_);
+}
+sub Bconout {
+ syscall($_trap_13_www, 0x03, @_);
+}
+sub Rwabs {
+ syscall($_trap_13_wwlwww, 0x04, @_);
+}
+sub Setexc {
+ syscall($_trap_13_wwl, 0x05, @_);
+}
+sub Tickcal {
+ syscall($_trap_13_w, 0x06);
+}
+sub Getbpb {
+ syscall($_trap_13_ww, 0x07, @_);
+}
+sub Bcostat {
+ syscall($_trap_13_ww, 0x08, @_);
+}
+sub Mediach {
+ syscall($_trap_13_ww, 0x09, @_);
+}
+sub Drvmap {
+ syscall($_trap_13_w, 0x0A);
+}
+sub Kbshift {
+ syscall($_trap_13_ww, 0x0B, @_);
+}
+sub Getshift {
+ &Kbshift(-1);
+}
+sub Initmous {
+ syscall($_trap_14_wwll, 0x00, @_);
+}
+sub Ssbrk {
+ syscall($_trap_14_ww, 0x01, @_);
+}
+sub Physbase {
+ syscall($_trap_14_w, 0x02);
+}
+sub Logbase {
+ syscall($_trap_14_w, 0x03);
+}
+sub Getrez {
+ syscall($_trap_14_w, 0x04);
+}
+sub Setscreen {
+ syscall($_trap_14_wllw, 0x05, @_);
+}
+sub Setpallete {
+ syscall($_trap_14_wl, 0x06, @_);
+}
+sub Setcolor {
+ syscall($_trap_14_www, 0x07, @_);
+}
+sub Floprd {
+ syscall($_trap_14_wllwwwww, 0x08, @_);
+}
+sub Flopwr {
+ syscall($_trap_14_wllwwwww, 0x09, @_);
+}
+sub Flopfmt {
+ syscall($_trap_14_wllwwwwwlw, 0x0A, @_);
+}
+sub Midiws {
+ syscall($_trap_14_wwl, 0x0C, @_);
+}
+sub Mfpint {
+ syscall($_trap_14_wwl, 0x0D, @_);
+}
+sub Iorec {
+ syscall($_trap_14_ww, 0x0E, @_);
+}
+sub Rsconf {
+ syscall($_trap_14_wwwwwww, 0x0F, @_);
+}
+sub Keytbl {
+ syscall($_trap_14_wlll, 0x10, @_);
+}
+sub Random {
+ syscall($_trap_14_w, 0x11);
+}
+sub Protobt {
+ syscall($_trap_14_wllww, 0x12, @_);
+}
+sub Flopver {
+ syscall($_trap_14_wllwwwww, 0x13, @_);
+}
+sub Scrdmp {
+ syscall($_trap_14_w, 0x14);
+}
+sub Cursconf {
+ syscall($_trap_14_www, 0x15, @_);
+}
+sub Settime {
+ syscall($_trap_14_wl, 0x16, @_);
+}
+sub Gettime {
+ syscall($_trap_14_w, 0x17);
+}
+sub Bioskeys {
+ syscall($_trap_14_w, 0x18);
+}
+sub Ikbdws {
+ syscall($_trap_14_wwl, 0x19, @_);
+}
+sub Jdisint {
+ syscall($_trap_14_ww, 0x1A, @_);
+}
+sub Jenabint {
+ syscall($_trap_14_ww, 0x1B, @_);
+}
+sub Giaccess {
+ syscall($_trap_14_www, 0x1C, @_);
+}
+sub Offgibit {
+ syscall($_trap_14_ww, 0x1D, @_);
+}
+sub Ongibit {
+ syscall($_trap_14_ww, 0x1E, @_);
+}
+sub Xbtimer {
+ syscall($_trap_14_wwwwl, 0x1E, @_);
+}
+sub Dosound {
+ syscall($_trap_14_wl, 0x20, @_);
+}
+sub Setprt {
+ syscall($_trap_14_ww, 0x21, @_);
+}
+sub Kbdvbase {
+ syscall($_trap_14_w, 0x22);
+}
+sub Kbrate {
+ syscall($_trap_14_www, 0x23, @_);
+}
+sub Prtblk {
+ syscall($_trap_14_wl, 0x24, @_);
+}
+sub Vsync {
+ syscall($_trap_14_w, 0x25);
+}
+sub Supexec {
+ syscall($_trap_14_wl, 0x26, @_);
+}
+sub Blitmode {
+ syscall($_trap_14_ww, 0x40, @_);
+}
+sub Mxalloc {
+ syscall($_trap_1_wlw, 0x44, @_);
+}
+sub Maddalt {
+ syscall($_trap_1_wll, 0x14, @_);
+}
+sub Setpalette {
+ syscall($_trap_14_wl, 0x06, @_);
+}
+sub EsetShift {
+ syscall($_trap_14_ww, 80, @_);
+}
+sub EgetShift {
+ syscall($_trap_14_w, 81);
+}
+sub EsetBank {
+ syscall($_trap_14_ww, 82, @_);
+}
+sub EsetColor {
+ syscall($_trap_14_www, 83, @_);
+}
+sub EsetPalette {
+ syscall($_trap_14_wwwl, 84, @_);
+}
+sub EgetPalette {
+ syscall($_trap_14_wwwl, 85, @_);
+}
+sub EsetGray {
+ syscall($_trap_14_ww, 86, @_);
+}
+sub EsetSmear {
+ syscall($_trap_14_ww, 87, @_);
+}
+sub Bconmap {
+ syscall($_trap_14_ww, 0x2b, @_);
+}
+sub Bconctl {
+ syscall($_trap_14_wwl, 0x2d, @_);
+}
+
+1;