=========================================================================== BBS: The Abacus * HST/DS * Potterville, MI Date: 03-15-93 (21:58) Number: 67 From: TODD SWANSON Refer#: NONE To: ALL Recvd: NO Subj: Fossil Routine Conf: (36) C Language --------------------------------------------------------------------------- /* This code is placed in the public domain by Todd Swanson. Source derived from Ralf Brown's Interrupt List. */ int port; void init_comm(void) /* Init Fossil */ { asm { push ax push dx push bx mov ah,04h mov dx,port mov bx,4F50h int 14h pop ax pop dx pop bx } } int set_baud_rate(char flags) /* Set baud rate, see Fossil docs v5+ for */ { /* flags to use */ unsigned int hold; asm { push ax push dx mov ah,0h mov dx,port mov al,flags int 14h mov hold,ax pop ax pop dx } return(hold); } void send_char(char let) /* send character to comport via fossil */ { asm { push ax push dx mov ah,1 int 0x16 mov al,let mov ah,01h mov dx,port int 14h pop ax pop dx } } int input_ready(void) /* Check for data ready in input buffer */ { unsigned char hold; asm { push ax push dx mov ah,03h mov dx,port int 14h mov hold,ah pop ax pop dx } return ((hold & 0x01) !=0); } int CD(void) /* Check for Carrier */ { unsigned char hold; asm { push ax push dx mov ah,03h mov dx,port int 14h mov hold,al pop ax pop dx } return ((hold & 0x80) != 0); } int get_char(void) /* Get a character from input buffer */ { unsigned char let; asm { push ax push dx mov ah,0x01 int 0x16 mov ah,02h mov dx,port int 14h mov let,al } return(let); } void deinit_comm(void) /* deinit Fossil driver */ { asm { push ax push dx mov ah,05h mov dx,port mov al,0 int 14h pop ax pop dx } } void dtr(char dtr) /* Raise/Lower DTR status */ { asm { push ax push dx mov ah,06h mov al,dtr mov dx,port int 14h pop ax pop dx } } void purge_out(void) /* Purge all data in output buffer */ { asm { push ax push dx mov dx,port mov ah,09h int 14h pop ax pop dx } } void purge_in(void) /* Purge all data in input buffer */ { asm { push ax push dx mov dx,port