ReactOS
0.4.16-dev-2528-g7139e57
serial.h
Go to the documentation of this file.
1
/*
2
* PROJECT: NEC PC-98 series onboard hardware
3
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4
* PURPOSE: Intel 8251A-based UART header file
5
* COPYRIGHT: Copyright 2020-2026 Dmitry Borisov <di.sean@protonmail.com>
6
*/
7
8
#pragma once
9
10
#define SER_8251A_REG_DATA 0x30
11
#define SER_8251A_REG_STATUS 0x32
12
13
#define SR_8251A_STATUS_TxRDY 0x01
/* Transmitter ready */
14
#define SR_8251A_STATUS_RxRDY 0x02
/* Receiver ready */
15
#define SR_8251A_STATUS_TxEMPTY 0x04
/* Transmitter empty */
16
#define SR_8251A_STATUS_PE 0x08
/* Parity error */
17
#define SR_8251A_STATUS_OE 0x10
/* Overrun error */
18
#define SR_8251A_STATUS_FE 0x20
/* Framing error */
19
#define SR_8251A_STATUS_SYNDET 0x40
/* Sync detect / Break detect */
20
#define SR_8251A_STATUS_DSR 0x80
/* Data set ready */
21
22
/* Parity generate/check */
23
#define SR_8251A_MODE_PEN 0x10
/* Parity enable */
24
#define SR_8251A_MODE_EP 0x20
/* Even parity generation/check */
25
#define SR_8251A_MODE_ESD 0x40
/* External sync detect */
26
#define SR_8251A_MODE_SCS 0x80
/* Single character sync */
27
/* Character length */
28
#define SR_8251A_MODE_LENGTH_5 0x00
29
#define SR_8251A_MODE_LENGTH_6 0x04
30
#define SR_8251A_MODE_LENGTH_7 0x08
31
#define SR_8251A_MODE_LENGTH_8 0x0C
32
/* Baud rate factor */
33
#define SR_8251A_MODE_SYNC 0x00
34
#define SR_8251A_MODE_CLOCKx1 0x01
35
#define SR_8251A_MODE_CLOCKx16 0x02
36
#define SR_8251A_MODE_CLOCKx64 0x03
37
/* Number of stop bits */
38
#define SR_8251A_MODE_1_STOP 0x40
39
#define SR_8251A_MODE_1_5_STOP 0x80
40
#define SR_8251A_MODE_2_STOP 0xC0
41
/* Command bits */
42
#define SR_8251A_COMMMAND_TxEN 0x01
/* Transmit enable */
43
#define SR_8251A_COMMMAND_DTR 0x02
/* Data terminal ready */
44
#define SR_8251A_COMMMAND_RxEN 0x04
/* Receive enable */
45
#define SR_8251A_COMMMAND_SBRK 0x08
/* Send break character */
46
#define SR_8251A_COMMMAND_ER 0x10
/* Error reset */
47
#define SR_8251A_COMMMAND_RTS 0x20
/* Request to send */
48
#define SR_8251A_COMMMAND_IR 0x40
/* Internal reset */
49
#define SR_8251A_COMMMAND_EH 0x80
/* Enter hunt mode */
50
51
#define SER_8251F_REG_RBR 0x130
/* Receive Buffer */
52
#define SER_8251F_REG_LSR 0x132
/* Line Status */
53
#define SER_8251F_REG_MSR 0x134
/* Modem Status */
54
#define SER_8251F_REG_IIR 0x136
/* Interrupt ID */
55
#define SER_8251F_REG_FCR 0x138
/* FIFO Control */
56
#define SER_8251F_REG_DLR 0x13A
/* Divisor Latch */
57
58
#define SR_8251F_LSR_TxEMPTY 0x01
/* Transmitter empty */
59
#define SR_8251F_LSR_TxRDY 0x02
/* Transmitter ready */
60
#define SR_8251F_LSR_RxRDY 0x04
/* Receiver ready */
61
#define SR_8251F_LSR_OE 0x10
/* Overrun error */
62
#define SR_8251F_LSR_PE 0x20
/* Parity error */
63
#define SR_8251F_LSR_BI 0x80
/* Break detect */
64
65
#define SR_8251F_MSR_CTS_CHANGED 0x01
/* Change in clear to send */
66
#define SR_8251F_MSR_DSR_CHANGED 0x02
/* Change in data set ready */
67
#define SR_8251F_MSR_RI_CHANGED 0x04
/* Trailing edge ring indicator */
68
#define SR_8251F_MSR_DCD_CHANGED 0x08
/* Change in carrier detect */
69
#define SR_8251F_MSR_CTS 0x10
/* Clear to send */
70
#define SR_8251F_MSR_DSR 0x20
/* Data set ready */
71
#define SR_8251F_MSR_RI 0x40
/* Ring indicator */
72
#define SR_8251F_MSR_DCD 0x80
/* Data carrier detect */
73
74
#define SR_8251F_IIR_MS 0x00
/* Modem status change */
75
#define SR_8251F_IIR_THR 0x02
/* Transmitter holding register empty */
76
#define SR_8251F_IIR_RDA 0x04
/* Received data acailable */
77
#define SR_8251F_IIR_RLS 0x06
/* Receiver line status change */
78
#define SR_8251F_IIR_CTI 0x0C
/* Character timeout */
79
#define SR_8251F_IIR_ID_MASK 0x0F
80
#define SR_8251F_IIR_SELF 0x01
/* No interrupt pending */
81
#define SR_8251F_IIR_MUST_BE_ZERO 0x20
82
#define SR_8251F_IIR_FIFO_DET 0x40
/* Toggles for each read */
83
84
#define SR_8251F_FCR_DISABLE 0x00
/* Disable FIFO */
85
#define SR_8251F_FCR_ENABLE 0x01
/* Enable FIFO */
86
#define SR_8251F_FCR_RCVR_RESET 0x02
/* Clear receive FIFO */
87
#define SR_8251F_FCR_TXMT_RESET 0x04
/* Clear transmit FIFO */
88
/* Receive FIFO interrupt trigger level */
89
#define SR_8251F_FCR_1_BYTE_HIGH_WATER 0x00
90
#define SR_8251F_FCR_4_BYTE_HIGH_WATER 0x40
91
#define SR_8251F_FCR_8_BYTE_HIGH_WATER 0x80
92
#define SR_8251F_FCR_14_BYTE_HIGH_WATER 0xC0
93
94
#define SR_8251F_DLR_BAUD_115200 0x01
95
#define SR_8251F_DLR_BAUD_57600 0x02
96
#define SR_8251F_DLR_BAUD_38400 0x03
97
#define SR_8251F_DLR_BAUD_28800 0x04
98
#define SR_8251F_DLR_BAUD_19200 0x06
99
#define SR_8251F_DLR_BAUD_14400 0x08
100
#define SR_8251F_DLR_BAUD_9600 0x0C
101
#define SR_8251F_DLR_MODE_VFAST 0x80
102
#define SR_8251F_DLR_MODE_LEGACY 0x00
sdk
include
reactos
drivers
pc98
serial.h
Generated on Wed Apr 1 2026 06:14:56 for ReactOS by
1.9.6