-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPUTCHAR.LST
More file actions
179 lines (164 loc) · 7.16 KB
/
PUTCHAR.LST
File metadata and controls
179 lines (164 loc) · 7.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
C51 COMPILER V7.00 PUTCHAR 08/24/2006 22:10:07 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE PUTCHAR
OBJECT MODULE PLACED IN PUTCHAR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PUTCHAR.C LARGE BROWSE OMF251 DEBUG
stmt level source
1 /***********************************************************************/
2 /* This file is part of the C51 Compiler package */
3 /* Copyright KEIL ELEKTRONIK GmbH 1990 - 2002 */
4 /***********************************************************************/
5 /* */
6 /* PUTCHAR.C: This routine is the general character output of C51. */
7 /* You may add this file to a uVision2 project. */
8 /* */
9 /* To translate this file use C51 with the following invocation: */
10 /* C51 PUTCHAR.C <memory model> */
11 /* */
12 /* To link the modified PUTCHAR.OBJ file to your application use the */
13 /* following Lx51 invocation: */
14 /* Lx51 <your object file list>, PUTCHAR.OBJ <controls> */
15 /* */
16 /***********************************************************************/
17
18 #include <Chipcon/reg1010.h>
19
20 #define XON 0x11
21 #define XOFF 0x13
22 #define MINI;
23
24
25 /*
26 * putchar (full version): expands '\n' into CR LF and handles
27 * XON/XOFF (Ctrl+S/Ctrl+Q) protocol
28 */
29 #ifdef FULL
#ifdef UART0
char putchar (char c) {
if (c == '\n') {
if (RI_0) {
if (SBUF0 == XOFF) {
do {
RI_0 = 0;
while (!RI_0);
}
while (SBUF0 != XON);
RI_0 = 0;
}
}
while (!TI_0);
TI_0 = 0;
SBUF0 = 0x0d; /* output CR */
}
if (RI_0) {
if (SBUF0 == XOFF) {
do {
RI_ = 0;
while (!RI_0);
}
while (SBUF0 != XON);
C51 COMPILER V7.00 PUTCHAR 08/24/2006 22:10:07 PAGE 2
RI_0 = 0;
}
}
while (!TI_0);
TI_0 = 0;
return (SBUF0 = c);
}
#else
char putchar (char c) {
if (c == '\n') {
if (RI_1) {
if (SBUF1 == XOFF) {
do {
RI_1 = 0;
while (!RI_1);
}
while (SBUF1 != XON);
RI_1 = 0;
}
}
while (!TI_1);
TI_1 = 0;
SBUF1 = 0x0d; /* output CR */
}
if (RI_1) {
if (SBUF1 == XOFF) {
do {
RI_1 = 0;
while (!RI_1);
}
while (SBUF1 != XON);
RI_1 = 0;
}
}
while (!TI_1);
TI_1 = 0;
return (SBUF1 = c);
}
#endif
#endif
97
98 /*
99 * putchar (basic version): expands '\n' into CR LF
100 */
101 #ifdef BASIC
#ifdef UART0
char putchar (char c) {
if (c == '\n') {
while (!TI_0);
TI_0 = 0;
SBUF0 = 0x0d; /* output CR */
}
while (!TI_0);
TI_0 = 0;
return (SBUF0 = c);
}
#else
char putchar (char c) {
if (c == '\n') {
while (!TI_1);
C51 COMPILER V7.00 PUTCHAR 08/24/2006 22:10:07 PAGE 3
TI_1 = 0;
SBUF1 = 0x0d; /* output CR */
}
while (!TI_1);
TI_1 = 0;
return (SBUF1 = c);
}
#endif
#endif
128
129 /*
130 * putchar (mini version): outputs charcter only
131 */
132 #ifdef MINI
133
134 #ifdef UART0
char putchar (char c) {
while (!TI_0);
TI_0 = 0;
return (SBUF0 = c);
}
#else
141 char putchar (char c) {
142 1 while (!TI_1);
143 1 TI_1 = 0;
144 1 return (SBUF1 = c);
145 1 }
146 #endif
147
148 #endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 8 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)