home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / sys / atari / st / tech / 4587 < prev    next >
Encoding:
Text File  |  1992-08-26  |  2.2 KB  |  86 lines

  1. Newsgroups: comp.sys.atari.st.tech
  2. Path: sparky!uunet!Cadence.COM!cadence.com!bammi
  3. From: bammi@acae127.cadence.com (Jwahar R. Bammi)
  4. Subject: Re: Detecting GDOS presence
  5. In-Reply-To: hartlenk@newton.ccs.tuns.ca's message of Wed, 19 Aug 1992 00:56:21 GMT
  6. Message-ID: <BAMMI.92Aug26113011@acae127.cadence.com>
  7. Sender: usenet@Cadence.COM (Usenet News)
  8. Nntp-Posting-Host: acae127
  9. Organization: Cadence Design Systems
  10. References: <1992Aug19.005621.8575@newton.ccs.tuns.ca>
  11. Date: Fri, 14 Aug 1992 03:46:11 GMT
  12. Lines: 72
  13.  
  14. In article <1992Aug19.005621.8575@newton.ccs.tuns.ca> hartlenk@newton.ccs.tuns.ca (Kenneth W Hartlen) writes:
  15.  
  16. > Lattice  C v5.x provides a Lattice specific VDI  function  called 
  17. > vq_gdos()  which returns 0 if GDOS is not loaded and non-zero  if 
  18. > GDOS is loaded.
  19. > The  description  says "This function does not have  an  official 
  20. > name  but  uses  an Atari approved  method  for  determining  the 
  21. > presence  of GDOS." Anyone know what the "approved method" is  so 
  22. > GDOS presence can be checked from Heat & Serve/Sozobon C?
  23.  
  24. i seem to recall seeing an atari document that used the same name:
  25. here is what i have from the gcc gemlib: it should be easy to adapt to
  26. whatever: ( __MSHORT__ is defined when compiling for 16 bit integers)
  27.  
  28. int
  29. vq_gdos(void)
  30. {
  31.   register int retvalue __asm__("d0");
  32.  
  33. #ifdef __MSHORT__
  34.   __asm__ volatile
  35.     ("    movw    #-2,d0
  36.     trap    #2
  37.     cmpw    #-2,d0
  38.     sne    d0
  39.     extw    d0"
  40.      : "=r"(retvalue)        /* output */
  41.      :                /* no input */
  42.      : "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */
  43.      );
  44. #else
  45.   __asm__ volatile
  46.     ("    movw    #-2,d0
  47.     trap    #2
  48.     cmpw    #-2,d0
  49.     sne    d0
  50.     extw    d0
  51.     extl    d0"
  52.      : "=r"(retvalue)        /* output */
  53.      :                /* no input */
  54.      : "d0", "d1", "d2", "a0", "a1", "a2"    /* clobbered regs */
  55.      );
  56. #endif
  57.  
  58.   return retvalue;
  59. }
  60.  
  61. /*
  62.  * return type of GDOS
  63.  * -2L     no GDOS installed
  64.  *  0x5F46534DL     '_FSM' gdos
  65.  *  0x5F464E54L     '_FNT' gdos
  66.  */
  67. unsigned long vq_vgdos(void)
  68. {
  69.     register unsigned long ret __asm__("d0");
  70.     __asm__ volatile ("
  71.      movq    #-2,d0
  72.      trap    #2"
  73.       : "=r"(ret)
  74.           :
  75.           : "d0", "d1", "d2", "a0", "a1", "a2" );
  76.     return ret;
  77. }
  78.  
  79. --
  80. --
  81. bang:   uunet!cadence!bammi            jwahar r. bammi
  82. domain: bammi@cadence.com
  83. GEnie:    J.Bammi
  84. CIS:    71515,155
  85.