diff options
author | Larry Wall <lwall@netlabs.com> | 1992-06-08 04:50:30 +0000 |
---|---|---|
committer | Larry Wall <lwall@netlabs.com> | 1992-06-08 04:50:30 +0000 |
commit | ee0007abcec11102eeaa49662e5ebb838e04aac6 (patch) | |
tree | 8bd2b45245f7c74167adac89abd7285c65989bfb /atarist | |
parent | 7b0cd887a13445cfae2c23db0b7efd05a47758e6 (diff) | |
download | perl-ee0007abcec11102eeaa49662e5ebb838e04aac6.tar.gz |
perl 4.0 patch 28: patch #20, continued
See patch #20.
Diffstat (limited to 'atarist')
-rw-r--r-- | atarist/osbind.pl | 382 |
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; |