Metropoli BBS
VIEWER: portaddr.c MODE: TEXT (ASCII)
/*
Copyright (C) Magna Carta Software, Inc. 1990.  All Rights Reserved
C COMMUNICATIONS TOOLKIT
PORTADDR.C -- Examine the BIOS to see if a COM port exists.
*/

#if (defined(CCTW) || defined(_WINDOWS))
    #include <windows.h>
#endif
#include <dos.h>
#include <compat.h>
#include <stdio.h>

/* TYPE DEFINITIONS */
#if !defined(TYPES_DEFINED)
    typedef unsigned char   BYTE;
    typedef unsigned short  WORD;
    typedef unsigned long   DWORD;
    #define TYPES_DEFINED
#endif

#include <cctdef.h>

#define PORT_PTR_ADDR   0X400       /* BIOS data area addr. of COM1-COM4    */

/*
GET_PORT_ADDR -- Examine the BIOS to see if a com port exists.
*/
WORD get_port_addr(WORD portnum)
{
    WORD ret;

    switch(portnum) {
        case COM1:
            ret= peek(0, PORT_PTR_ADDR);
            break;
        case COM2:
            ret = peek(0, PORT_PTR_ADDR + 2);
            break;
        case COM3:
            ret = peek(0, PORT_PTR_ADDR + 4);
            break;
        case COM4:
            ret = peek(0, PORT_PTR_ADDR + 6);
            break;
        default:
            ret = 0;
    }
    return (ret);
}
[ RETURN TO DIRECTORY ]