MBS
0
0
0
TECLA LARGA
BIT 3
BIT 2
BIT 1
LSB
BIT 0
Bit 4 = 0: TECLA LARGA INACTIVA = 1: TECLA
LARGA ACTIVA
BIT 3 BIT 2 BIT 1 BIT 0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
5.3.4 Programa de Muestra (FICOM.H)
El siguiente programa es un ejemplo del
programa de lenguaje C el cual ayuda a los
usuarios a entender el formato de datos y
el método de poder conectar mediante
interfase, y también desarrollar sus propios
programas.
[Interrupt Usage and Selection between COM1 and COM2]
#define COM1 0
#define COM2 1
/* Base addresses of serial ports */
#define COM1BASE 0x03f8
#define COM2BASE 0xx02f8
= NO TECLA
= TECLA DE RANGO
= TECLA MANTENER
= TECLA CA/CD
= TECLA DE REGISTRO
= TECLA DE RELATIVO
= TECLA DE PORCENTAJE
= TECLA COMPARAR
= TECLA DE EDICIÓN
= CAPACITANCIA (μF)
= FRECUENCIA (Hz)
#define COMBASE (comport= =COM1) ? COM1BASE: COM2BASE)
/* Registers */
#define THR (COMBASE+0) /* Transmit Holding Register */
#define RBR (COMBASE+0) /* Receive Buffer Register */
#define IER (COMBASE+1) /* Interrupt Enable Register */
#define IIR (COMBASE+2) /* Interrupt Identification Register */
#define LCR (COMBASE+3) /* Line Control Register */
#define MCR (COMBASE+4) /* Modem Control Register */
#define LSR (COMBASE+5) /* Line Status Register */
#define MSR (COMBASE+6) /* Modem Status Register */
/* Parameters to bioscom function */
#define DATABIT7 0x02 /* Data bit */
#define DATABIT8 0x03
#define STOPBIT1 0x00 /* Stop bit */
#define STOPBIT2 0x04
#define NOPARITY 0x00 /* Parity bit */
#define ODDPARITY 0x08
#define EVENPARITY 0x18
#define BAUD1200 0x80 /* Baud rate */
#define BAUD2400 0xa0
#define BAUD4800 0xc0
#define BAUD9600 0xe0
/* 8259 PIC (Programmable Interrupt Controller) */
#define IMR 0x21 /* I/O address of 0CW1 (IMR) of 8529 PIC */
#define 0CW 0x20 /* I/O address of 0CW2 of 8259 PIC */
/* 0CW: Operation Command Word */
/* IMR: Interrupt Mask Register */
#define MASKON Oxe7 /* Mask IRQ3/IRQ4 on IMR */
#define MASKOFF Ox18 /* Mask IRQ3/IRQ4 off IMR */
#define EOI 0x20 /* Non-specific End of Interrupt command
0CW2 */
/* Interrupt Request Numbers */
#define IRQ0 0x08 /* Interrupt Vector for Timer */
#define IRQ3 0x0b /* Interrupt Vector for COM2 */
#define IRQ4 0x0c/* Interrupt Vector for COM1 */
#define IRQ8 0x70 /* Interrupt Vector for RTC (Real Time Clock) */
#define IRQ16 0x1c /* Interrupt Vector to called Timer */
#define IRQNUM (comport= =COM1) ? IRQ4 : IRQ3)
*/ Miscellaneous */
#define BUFSIZE 0x4000 /* Size of comm buffer
*/
E S P A Ñ O L
23