home *** CD-ROM | disk | FTP | other *** search
- #ifndef FOSSIL_H
- #define FOSSIL_H
-
- /*--------------------------------------------------------------------*/
- /* f o s s i l . h */
- /* */
- /* UUPC/extended defines for accessing FOSSIL functions via */
- /* INT 14 under MS-DOS. */
- /*--------------------------------------------------------------------*/
-
- /*--------------------------------------------------------------------*/
- /* Changes Copyright (c) 1990-1993 by Kendra Electronic */
- /* Wonderworks. */
- /* */
- /* All rights reserved except those explicitly granted by the */
- /* UUPC/extended license agreement. */
- /*--------------------------------------------------------------------*/
-
- /*--------------------------------------------------------------------*/
- /* RCS Information */
- /*--------------------------------------------------------------------*/
-
- /*
- * $Id: FOSSIL.H 1.2 1993/05/30 15:27:22 ahd Exp $
- *
- * Revision history:
- * $Log: FOSSIL.H $
- * Revision 1.2 1993/05/30 15:27:22 ahd
- * Correct CTS high macro
- *
- * Revision 1.1 1993/05/30 00:16:35 ahd
- * Initial revision
- *
- */
-
- /*--------------------------------------------------------------------*/
- /* FOSSIL function calls, taken from "Fundamentals of FOSSIL */
- /* Implementation and Use: Version 5, February 11, 1988 by */
- /* Rick Moore of Solar Wind Computing. */
- /*--------------------------------------------------------------------*/
-
- #define FS_INTERRUPT 0x14 // Fossil uses INT 14
-
- /*--------------------------------------------------------------------*/
- /* Function calls numbers, placed in AH before interrupt */
- /*--------------------------------------------------------------------*/
-
- #define FS_SPEED 0x00 // Set speed, parity, stop bits, char len
- #define FS_XMIT1 0x01 // Transmit one character (blocking write)
- #define FS_RECV1 0x02 // Receive one character (blocking read)
- #define FS_STATPORT 0x03 // Return port status
- #define FS_OPENPORT 0x04 // Initialize port
- #define FS_CLOSPORT 0x05 // Close port
- #define FS_DTR 0x06 // Raise/lower DTR
- #define FS_TIMESTAT 0x07 // Return system timer parameters
- #define FS_XMITWAIT 0x08 // Wait for output queue to transmit
- #define FS_XMITPURG 0X09 // Purge output queue w/o transmit
- #define FS_RECVPURG 0x0a // Purge unread input queue
- #define FS_XMIT1NOW 0x0b // Transmit one character (nonblocking)
- #define FS_PEEK1 0x0c // Non-destructive port read
- #define FS_KEYBPEEK 0x0d // Non-destructive keyboard read
- #define FS_KEYBREAD 0x0e // Destructive keyboard read (blocking)
- #define FS_FLOWCNTL 0x0f // Enable/disable flow control
- #define FS_CNTLCHEK 0x10 // Enable/disable Cntl-C/Cntl-K checking
- #define FS_SCURSOR 0x11 // Set screeen cursor location
- #define FS_RCURSOR 0x12 // Read screen cursor location
- #define FS_ANSICHAR 0x13 // Write character with ANSI control
- #define FS_WATCHDOG 0x14 // Auto-reboot on lost carrier
- #define FS_PUTCHAR 0x15 // BIOS level screen put
- #define FS_TIMECHN 0x16 // Insert/delete items on timer chain
- #define FS_REBOOT 0x17 // Perform Vulcan nerve pinch on system
- #define FS_READBLOK 0x18 // Read block of data from port
- #define FS_WRITBLOK 0x19 // Write block of data to port
- #define FS_BREAK 0x1A // Enable/disable break on port
- #define FS_DRIVINFO 0x1B // Get driver information
-
- typedef struct _FS_INFO { // Data returned by FS_DRIVINFO
- short size; // Data bytes returned
- char version; // FOSSIL specification version used
- char revision; // Driver revision level
- char UUFAR *id; // Pointer to ASCII driver id
- short inputSize; // Input buffer size
- short inputFree; // Bytes free in input queue
- short outputSize; // Bytes queued for output;
- short outputFree; // Bytes free in output queue
- char width; // Screen width in characters
- char height; // Screen height in characters
- char baudmask; // Baud rate in format used by FS_SPEED
- } FS_INFO;
-
- /*--------------------------------------------------------------------*/
- /* Define macros to perform basic functions */
- /*--------------------------------------------------------------------*/
-
- #define FSSetSpeed( speed, parity, stopBits, charLen ) \
- FossilCntl(FS_SPEED, (char) \
- ((speed << 5) | (parity << 3) | \
- (stopBits << 2) | charLen))
-
- #define FS_NO_PARITY 0
- #define FS_NO_PARITYX 1
- #define FS_ODD_PARITY 2
- #define FS_EVEN_PARITY 3
-
- #define FS_STOPBIT_1 0
- #define FS_STOPBIT_15 1 // For five bit character only
- #define FS_STOPBIT_2 1 // For all but five bit characters
-
- #define FS_CHARLEN_5 0
- #define FS_CHARLEN_6 1
- #define FS_CHARLEN_7 2
- #define FS_CHARLEN_8 3
-
- #define FSOpen( ) FossilCntl(FS_OPENPORT, 0)
-
- #define FS_COOKIE 0x1954 // Success result from FS_OPENPORT
-
- #define FSClose( ) FossilCntl(FS_CLOSPORT, 0)
-
- #define FSStatus( ) FossilCntl(FS_STATPORT, 0)
-
- #define FS_STAT_OUTPEMPT 0x4000 // Output buffer empty
- #define FS_STAT_OUTPROOM 0x2000 // Output buffer not full
- #define FS_STAT_OVERRUN 0x0200 // Input buffer overrun
- #define FS_STAT_INQUEUED 0x0100 // Characters in input buffer
- #define FS_STAT_DCD 0x0080 // Data carrier detected
-
- #define FSFlushXmit( ) FossilCntl(FS_XMITPURG, 0)
-
- #define FSFlushRecv( ) FossilCntl(FS_RECVPURG, 0)
-
- #define FSFlowControl(type) FossilCntl(FS_FLOWCNTL, (char) (0xf0 | (type)))
-
- #define FS_NOFLOW 0x00
- #define FS_XONXMIT 0x01
- #define FS_CTSRTS 0x04
- #define FS_XONRECV 0x08
-
- #define FSDTR( onoroff ) FossilCntl(FS_DTR, onoroff)
-
- #define FSBreak( onoroff ) FossilCntl(FS_BREAK, onoroff)
-
- /*--------------------------------------------------------------------*/
- /* Define information for routines and data in fossil.c */
- /*--------------------------------------------------------------------*/
-
- extern short portNum; // Must be set by openline()
-
- short FossilCntl( const char function, const char info );
-
- #endif
-