home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 2 / APDL_PD2A.iso / demos / demo_1 / demo4 / !Demo4 / c / misc < prev    next >
Encoding:
Text File  |  1992-02-10  |  2.3 KB  |  110 lines

  1. /******************************************************************************
  2. *                                                                             *
  3. *    misc.c                                                                   *
  4. *                                                                             *
  5. ******************************************************************************/
  6.  
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <math.h>
  10. #include <swis.h>
  11. #include <os.h>
  12. #include <bbc.h>
  13. #include "GrpLib.h"
  14. #include "extern.h"
  15.  
  16. /*****************************************************************************/
  17. void SetTxtCurPos(int x, int y)
  18. {
  19.   os_error *err;
  20.   err=bbc_tab(x,y);
  21. }
  22.  
  23. int GetClock(void)
  24. {
  25.   os_regset regs;
  26.   char blk[16];
  27.   int  i=0;
  28.   int  t=0;
  29.  
  30.   regs.r[0]=0x01; /* read system clock */
  31.   regs.r[1]=(int)blk;
  32.   os_swi(OS_Word,®s);
  33.  
  34.   t+=(int)(blk[i++])<<0;
  35.   t+=(int)(blk[i++])<<8;
  36.   t+=(int)(blk[i++])<<16;
  37.   t+=(int)(blk[i++])<<24;
  38.  
  39.   return(t);
  40. }
  41.  
  42. void ReadMouse(int *x, int *y, int *b)
  43. {
  44.   os_regset regs;
  45.  
  46.   os_swi(OS_Mouse,®s);
  47.     *x=regs.r[0];
  48.     *y=regs.r[1];
  49.     *b=regs.r[2];
  50. }
  51.  
  52. int Inkey()
  53. {
  54.   os_regset regs;
  55.  
  56.   regs.r[0] = 129;  /* kb read */
  57.   regs.r[1] = 0; /* wait time low byte */
  58.   regs.r[2] = 0; /* wait time high byte */
  59.   os_swi(OS_Byte,®s);
  60.   return( (regs.r[2]==0) ? regs.r[1] : 0);
  61. }
  62.  
  63. void SetMousePos(int x, int y)
  64. {
  65.   os_regset regs;
  66.   char blk[16];
  67.   int  i=0;
  68.  
  69.   blk[i++]=(char) 3; /* set mouse position */
  70.   blk[i++]=(char) (x & 0xFF);  blk[i++]=(char) ((x>>8) & 0xFF);
  71.   blk[i++]=(char) (y & 0xFF);  blk[i++]=(char) ((y>>8) & 0xFF);
  72.  
  73.   regs.r[0]=0x15; /* define pointer and mouse parameters */
  74.   regs.r[1]=(int)blk;
  75.   os_swi(OS_Word,®s);
  76. }
  77.  
  78. void SaveTraject(char *name,signed char traject[][4],int nb)
  79. {
  80.   FILE *f;
  81.   int  i;
  82.  
  83.   f = fopen(name,"w");
  84.   for (i=0 ; i<nb ; i++) {
  85.     fputc(traject[i][0],f);
  86.     fputc(traject[i][1],f);
  87.     fputc(traject[i][2],f);
  88.     fputc(traject[i][3],f);
  89.   }
  90.   fclose(f);
  91. }
  92.  
  93. void LoadTraject(char *name,signed char traject[][4],int nb)
  94. {
  95.   FILE *f;
  96.   int  i;
  97.  
  98.   f = fopen(name,"r");
  99.   for (i=0 ; i<nb ; i++) {
  100.     traject[i][0] = (signed char)fgetc(f);
  101.     traject[i][1] = (signed char)fgetc(f);
  102.     traject[i][2] = (signed char)fgetc(f);
  103.     traject[i][3] = (signed char)fgetc(f);
  104.   }
  105.   fclose(f);
  106. }
  107.  
  108.  
  109.  
  110.