home *** CD-ROM | disk | FTP | other *** search
/ Acorn User 10 / AU_CD10.iso / Updates / Perl / Non-RPC / !Perl / scripts / TrySyscall < prev    next >
Text File  |  1998-07-14  |  759b  |  26 lines

  1. use RiscosLib;
  2.  
  3. $buffer = ' ' x 255;
  4.  
  5. # Getting the SWI number
  6. $str="OS_SWINumberToString";
  7. $no = SWINumberFromString($str);
  8. print "Swi number for \'$str\' is $no\n";
  9.  
  10.  
  11. # Calculation of the register mask;
  12. @in = (0 .. 2);
  13. @out = (2);
  14. $mask = ®mask(\@in,\@out);
  15. print "The mask is $mask\n";
  16.  
  17. # Fudge to return integer values
  18. $len = ' 'x4;                    # Reserve space for an integer
  19. RISCOS::SWI::swi("OS_SWINumberToString",$mask,0x3C,$buffer,255,$len);    # Perl passes its address as a param
  20. # syscall($no,$mask,0x3C,$buffer,255,$len);    # Perl passes its address as a parameter
  21. $len = unpack("i",$len);            # Interpret the result as an integer
  22. print "len is $len\n";
  23. $len -= 1;                    # We don't want the null
  24. $buffer = substr($buffer, 0, $len);
  25. print "Buffer is $buffer\n";
  26.