FT_CHDIR() Change the current directory FT_DEFAULT() Retrieve and optionally change the current default drive FT_DOSVER() Return the current DOS major and minor version as a string FT_DSKFREE() Return the amount of available disk space FT_DSKSIZE() Return the maximum capacity of a fixed disk FT_FLOPTST() Test diskette drive status FT_HANDCNT() Count number of available DOS (not network) file handles FT_INP() Retrieve a byte from a specified I/O port FT_INT86() Execute a software interrupt FT_ISPRINT() Check printer status FT_ISSHARE() Determine if DOS "Share" is installed FT_MKDIR() Create a subdirectory FT_OUTP() Write a byte to a specified I/O port FT_PEEK() Retrieve a byte from a specified memory location. FT_POKE() Write a byte to a specified memory location FT_REBOOT() Force a warm or cold boot FT_RMDIR() Delete a subdirectory FT_SETDATE() Set the DOS system date FT_SETTIME() Set the DOS system time FT_SYSMEM() Determine the amount of conventional memory installed FT_TEMPFIL() Create a file with a unique name
Tag Archives: FT_ISPRINT
FT_ISPRINT
FT_ISPRINT() Check printer status ------------------------------------------------------------------------------ Syntax FT_ISPRINT( [ <cDevice> ] ) -> lResult Arguments <cDevice> is optional and is the device to test (LPT2, COM1, etc.). If omitted, the function will default to the PRN device. Returns .T. if device is ready for output. .F. if one of the following conditions occurs: 1) The device is not ready. 2) The device does not exist. 3) DOS couldn't open the device for some reason (such as no file handles available). Description The Clipper IsPrinter() function is somewhat limited because it only works with LPT1. Furthermore, it talks directly to the hardware, so if you have redirected LPT1 via the DOS MODE command, the IsPrinter() function will return erroneous results. This function offers a better alternative. Instead of talking to the hardware, it issues a DOS call that checks to see if the device is ready or not. That gives DOS an opportunity to deal with any redirections, and since you pass the device name as a parameter, you can test any device, not just LPT1 (note that the function defaults to PRN if you fail to pass a valid parameter). The function also temporarily traps the DOS critical error handler so you don't get any nasty error messages if the device isn't ready. It restores the old critical error handler before exiting. Note that although this function is mainly designed for testing printers, you can also check to see if a drive is ready. Since DOS thinks the NUL device exists on every drive, you can pass a drive letter followed by NUL as a parameter. If DOS is able to open the NUL device, then the drive is ready, otherwise the door is open or something else is wrong. The source code is written to adhere to Turbo Assembler's IDEAL mode. To use another assembler, you will need to rearrange the PROC and SEGMENT directives, and also the ENDP and ENDS directives (a very minor task). Examples IF ! FT_ISPRINT() Qout( "PRN is not ready!" ) ENDIF IF ! FT_ISPRINT( "COM2" ) Qout( "Check the device on COM2. Something is wrong." ) ENDIF IF ! FT_ISPRINT( "A:\NUL" ) Qout( "Oops, better check drive A!" ) ENDIF Source: ISPRINT.ASM Author: Ted Means