home *** CD-ROM | disk | FTP | other *** search
- name check_coproc
- ;
- ;
- ;
- ;
- ;
- cc_cr equ 0DH ; carriage return
- cc_lf equ 0AH ; line feed
-
- assume cs:code,ds:data
- ;
- code segment public
- start:
- mov ax,data ; set data segment
- mov ds,ax
- ;
- ; Test if 8087 is present in PC or PC/XT, or 80287 is in PC/AT
- ;
- fninit ; initialize coprocessor
- xor ah,ah ; zero ah register and memory byte
- mov byte ptr control+1,ah
- fnstcw control ; store coprocessor's control word in memory
- mov ah,byte ptr control+1
- cmp ah,03h ; upper byte of control word will be 03 if
- ; 8087 or 80287 coprocessor is present
- jne no_coproc
- ;
- coproc:
- mov ah,09h ; print string - coprocessor present
- mov dx,offset msg_yes
- int 21h
- jmp done
- ;
- no_coproc:
- mov ah,09h ; print string - coprocessor not present
- mov dx,offset msg_no
- int 21h
- ;
- done:
- mov ah,4CH ; terminate program
- int 21h
- code ends
-
- data segment public
- control dw 00
- msg_yes db cc_cr,cc_lf,
- db 'System has an 8087 or 80287',cc_cr,cc_lf,'$'
- msg_no db cc_cr,cc_lf,
- db 'System does not have an 8087 or 80287',cc_cr,cc_lf,'$'
- data ends
-
- end start ; start is entry point
-