home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / program / lynxlib / whichtos.c < prev    next >
C/C++ Source or Header  |  1993-10-23  |  2KB  |  50 lines

  1. /* This source file is part of the LynxLib miscellaneous library by
  2. Robert Fischer, and is Copyright 1990 by Robert Fischer.  It costs no
  3. money, and you may not make money off of it, but you may redistribute
  4. it.  It comes with ABSOLUTELY NO WARRANTY.  See the file LYNXLIB.DOC
  5. for more details.
  6. To contact the author:
  7.     Robert Fischer \\80 Killdeer Rd \\Hamden, CT   06517   USA
  8.     (203) 288-9599     fischer-robert@cs.yale.edu                 */
  9.  
  10. /* Return TOS volume name */
  11.  
  12. #include <osbind.h>
  13. #include <basepage.h>
  14.  
  15. /* System variable                         */
  16. #define SYSBASE         (*( (OS_HEADER **)0x4F2L ))
  17.  
  18. /* ------------------ System Header Block ---------------------- */
  19. /*                                                               */
  20. /* This structure is pointed to by SYSBASE (0x4f2)               */
  21.  
  22. typedef struct os_header {
  23.     unsigned bra;             /* (0x0)  branch to reset handler */    
  24.     unsigned version;         /* (0x2) TOS version number       */
  25.     char *reset_handler;      /* (0x4) pointer to reset handler */
  26.     struct os_header *sysbase;/* (0x8) pointer to this block    */
  27.     char *osram_end;      /* (0xc) pointer to end of os ram */
  28.     long junk1;          /* (0x10) (unused)               */
  29.     char *magic;          /* (0x14) pointer to GEM mem usage block */
  30.     long *build_date;      /* (0x18) system build date              */
  31.     unsigned os_config;      /* (0x1c) OS configuration bits       */
  32.     unsigned tos_date;      /* (0x1e) TOS system build date        */
  33.     char *root;          /* (0x20) pointer to OS pool           */
  34.     unsigned *kbshift;      /* (0x24) pointer to keyboard shift word */
  35.     BASEPAGE **run;          /* (0x28) pointer to current process ptr */
  36.     } OS_HEADER;
  37.  
  38. /*--------------------------------------------------------------------
  39.  * whichtos(&version, &date)
  40.  *  Returns TOS version and TOS build date in its arguments
  41.  */
  42. void whichtos(tosver, tosdate)
  43. unsigned *tosver, *tosdate;
  44. {
  45.     long usp = Super(0L);
  46.     *tosver = SYSBASE->version;
  47.     *tosdate = SYSBASE->tos_date;
  48.     Super(usp);
  49. }
  50.