home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast.iso / sysutil / check87.asm < prev    next >
Assembly Source File  |  1994-03-05  |  2KB  |  53 lines

  1. name    check_coproc
  2. ;
  3. ;
  4. ;
  5. ;
  6. ;
  7.         cc_cr           equ     0DH     ; carriage return
  8.         cc_lf           equ     0AH     ; line feed
  9.  
  10. assume  cs:code,ds:data
  11. ;
  12. code    segment         public
  13. start:
  14.         mov     ax,data                 ; set data segment
  15.         mov     ds,ax
  16. ;
  17. ; Test if 8087 is present in PC or PC/XT, or 80287 is in PC/AT
  18. ;
  19.         fninit                          ; initialize coprocessor
  20.         xor     ah,ah                   ; zero ah register and memory byte
  21.         mov     byte ptr control+1,ah
  22.         fnstcw  control    ; store coprocessor's control word in memory
  23.         mov     ah,byte ptr control+1
  24.         cmp     ah,03h     ; upper byte of control word will be 03 if
  25.                            ; 8087 or 80287 coprocessor is present
  26.         jne     no_coproc
  27. ;
  28. coproc:
  29.         mov     ah,09h                  ; print string - coprocessor present
  30.         mov     dx,offset msg_yes
  31.         int     21h
  32.         jmp     done
  33. ;
  34. no_coproc:
  35.         mov     ah,09h                  ; print string - coprocessor not present
  36.         mov     dx,offset msg_no
  37.         int     21h
  38. ;
  39. done:
  40.         mov     ah,4CH                  ; terminate program
  41.         int     21h
  42. code    ends
  43.  
  44. data    segment        public
  45. control dw             00
  46. msg_yes db      cc_cr,cc_lf,
  47.         db      'System has an 8087 or 80287',cc_cr,cc_lf,'$'
  48. msg_no  db      cc_cr,cc_lf,
  49.         db      'System does not have an 8087 or 80287',cc_cr,cc_lf,'$'
  50. data    ends
  51.  
  52.         end     start                   ; start is entry point
  53.