MCUME/MCUME_teensy41/teensymsx/I8251.h

58 wiersze
2.5 KiB
C

/** EMULib Emulation Library *********************************/
/** **/
/** I8251.h **/
/** **/
/** This file contains definitions and declarations for **/
/** routines in I8251.c. **/
/** **/
/** Copyright (C) Marat Fayzullin 2004-2005 **/
/** Maarten ter Huurne 2000 **/
/** You are not allowed to distribute this software **/
/** commercially. Please, notify me, if you make any **/
/** changes to this file. **/
/*************************************************************/
#ifndef I8251_H
#define I8251_H
#include <stdio.h>
#ifndef BYTE_TYPE_DEFINED
#define BYTE_TYPE_DEFINED
typedef unsigned char byte;
#endif
/** I8251 ****************************************************/
/** This data structure stores I8251 state. **/
/*************************************************************/
typedef struct
{
byte Control; /* 8251 ACIA control reg. */
byte IRQMask; /* RS232 interrupt mask */
byte IRQs; /* RS232 interrupts */
byte Mode; /* 8251 mode/cmd select */
byte Flow; /* Flow control state */
int NextChr; /* Next char or -1 */
FILE *In; /* Input stream */
FILE *Out; /* Output stream */
} I8251;
/** Reset8251 ************************************************/
/** Reset 8251 chip, assigning In and Out to the input and **/
/** output streams. **/
/*************************************************************/
void Reset8251(register I8251 *D,FILE *In,FILE *Out);
/** Rd8251 ***************************************************/
/** Read a byte from a given 8251 register. All values of R **/
/** will be truncated to 3 bits as there are only 8 regs. **/
/*************************************************************/
byte Rd8251(register I8251 *D,register byte R);
/** Wr8251 ***************************************************/
/** Write a byte to a given 8251 register. All values of R **/
/** will be truncated to 3 bits as there are only 8 regs. **/
/*************************************************************/
void Wr8251(register I8251 *D,register byte R,register byte V);
#endif /* I8251_H */