📄 modem.lst
字号:
1 ;************************
2 ;start at:March 3, 2006
3 ;************************
4
5 001F R5_TEMP==0X1F
6 001E A_TEMP==0X1E
7 001D R3_TEMP==0X1D
8 001C R4_TEMP==0X1C
9 001B RC_TEMP==0X1B
10
11 ;=====PORT9===== ;0 OUTPUT ; 1 INPUT
12 0004 STD_9170==4
13 0005 EN_9170==5
14 0006 HKS_1==6
15 0007 HKS_2==7
16
17 ;=====PORT7=====
18 0000 DSR==0
19 0001 BUSY==1
20 0002 CLOCK==2
21 0003 DATA==3
22
23 ;=====PORT6=====
24 ;NORMAL IO PORT
25
26 ;===============
27 0002 REC_BUF_ADDR==0X02
28 0000 I2C_SEND_ADDR==0X00
29 0040 I2C_REC_ADDR==0X40
30
31
32 0020 STA_FLAG==0X20
33 0000 IN_REC_FSK==0
34 0001 IN_REC_DTMF==1
35 ; IN_REC_9170==2
36 0003 IN_SEND_FSK==3
37 0004 IN_SEND_DTMF==4
38 0005 IN_I2C_SEND==5
39 0006 IN_I2C_REC==6
40
41 0021 OPT_FLAG==0X21
42
43 0000 OPT_RING==0
44 0001 OPT_RING_START==1
45 0002 OPT_RING_END==2
46 0004 OPT_100MS_START==4
47 0005 OPT_100MS_OK==5
48
49 0022 OPT_TEMP1==0X22
50 0023 OPT_TEMP2==0X23
51
52 0024 OPT_100MS_COUNT==0X24
53 0025 OPT_CONT==0X25
54 0026 RING_TIMES==0X26
55
56 0027 COUNTER_5MS==0X27
57 0028 C2_1S_COUNTER==0X28
58 0029 COUNTER_1S==0X29
59
60
61 002A I2C_TOTAL==0X2A
62 0014 i2c_temp==0x14
63 0012 i2c_bit_cont==0x12
64 0013 i2c_send_total==0x13
65 0013 i2c_rec_total==0x13
66 0015 i2c_checksum==0X15
67
68 002B I2C_FLAG==0X2b
69 0000 WAIT_BUSY==0
70 0001 WAIT_START==1
71 0002 MCU_OVER_TIME==2 ;WAIT BUSY OR START ,OVERTIME
72 0003 NO_ACK==3 ;
73 0004 end_bit==4
74
75 002C dtmf_flag==0x2c
76 0000 dtmf_send_start==0
77
78
79 002D FSK_SEND_ADD==0X2d ;FSK SEND 复用
80 002E FSK_BYTE_TOTAL==0X2e
81 002F FSK_SEND_TOTAL==0X2f
82 0031 fsk_bit_cont==0x31
83
84
85
86 ;INT_TEMP==0X26
87
88
89 ;==================CID RAM==================
90 ;00-01 SEND COMMAND : instruction,data_total
91 ;02-3F FSK/DTMF REC BUF,OPT STA,9170 OUTPUT
92 ;40-7F I2C RECEIVE BUF
93 ;80-8F I2C SEND BUF
94 ;90 806 ADD
95
96
97
98 ;=============================
99 ;=======PROG START HERE=======
100 ;=============================
101 ORG 0X000
102 00000 0011 DISI
103 00001 1E81 PAGE @01
104 00002 1400 JMP _RESET
105
106 ORG 0X008
107 00008 0011 DISI
108 00009 005E MOV A_TEMP,A ;protect local
109 0000A 0405 MOV A,0X05
110 0000B 005F MOV R5_TEMP,A
111 0000C 0403 MOV A,0X03
112 0000D 005D MOV R3_TEMP,A
113 0000E 0404 MOV A,0X04
114 0000F 005C MOV R4_TEMP,A
115 00010 040C MOV A,0X0C
116 00011 005B MOV RC_TEMP,A
117 00012 1E80 PAGE @00
118 00013 00C4 CLR 0X04
119
120
121 00014 0C0F JBC 0X0F,0
122 00015 1425 JMP _INT_TCC
123 00016 0C4F JBC 0X0F,1
124 00017 1427 JMP _INT_INT0
125 00018 0C8F JBC 0X0F,2
126 00019 1429 JMP _INT_INT1
127 0001A 0CCF JBC 0X0F,3
128 0001B 142B JMP _INT_INT23
129 0001C 0D0F JBC 0X0F,4
130 0001D 142D JMP _INT_C1
131 0001E 0D4F JBC 0X0F,5
132 0001F 142F JMP _INT_C2
133 00020 0D8F JBC 0X0F,6
134 00021 14C2 JMP _INT_FSK
135 00022 0DCF JBC 0X0F,7
136 00023 14C4 JMP _INT_DTMF
137
138 00024 14C6 JMP _INT_EXIT
139
140 00025 _INT_TCC:
141 00025 080F BC 0X0F,0
142 00026 14C6 JMP _INT_EXIT
143
144 00027 _INT_INT0:
145 00027 084F BC 0X0F,1
146 00028 14C6 JMP _INT_EXIT
147
148 00029 _INT_INT1:
149 00029 088F BC 0X0F,2
150 0002A 14C6 JMP _INT_EXIT
151
152 0002B _INT_INT23:
153 0002B 08CF BC 0X0F,3
154 0002C 14C6 JMP _INT_EXIT
155
156 0002D _INT_C1:
157 0002D 090F BC 0X0F,4
158 0002E 14C6 JMP _INT_EXIT
159
160 0002F _INT_C2:
161 0002F 094F BC 0X0F,5 ;5MS CHECK OPT
162
163 00030 0BC3 BS 0X03,7 ;IOCE PAGE 1
164 00031 185B MOV A,@91 ;5ms
165 00032 000C IOW 0X0C
166
167 00033 0D20 jbc sta_flag,in_send_dtmf
168 00034 143A jmp _dtmf_send_80ms
169 00035 0C2B JBC I2C_FLAG,WAIT_BUSY
170 00036 1445 JMP _BUSY_START_OVER_COUNT
171 00037 0C6B JBC I2C_FLAG,WAIT_START
172 00038 1445 JMP _BUSY_START_OVER_COUNT
173 00039 144F JMP _C2_OPT
174
175 0003A _dtmf_send_80ms:
176 0003A 0567 inc counter_5ms
177 0003B 1845 mov a,@0x45
178 0003C 004C mov 0x0c,a
179 0003D 0803 bc 0x03,0
180 0003E 068D rlca 0x0d
181 0003F 0127 sub a,counter_5ms
182 00040 0E03 jbs 0x03,0
183 00041 144F jmp _C2_OPT
184
185 00042 00E7 CLR COUNTER_5MS
186 00043 0920 bc sta_flag,in_send_dtmf
187 00044 144F jmp _C2_OPT
188
189 00045 _BUSY_START_OVER_COUNT:
190 00045 0567 INC COUNTER_5MS
191 00046 0427 MOV A,COUNTER_5MS
192 00047 1D1D SUB A,@29
193 00048 0C03 JBC 0X03,0
194 00049 144F JMP _C2_OPT
195 0004A 00E7 CLR COUNTER_5MS
196 0004B 082B BC I2C_FLAG,WAIT_BUSY
197 0004C 086B BC I2C_FLAG,WAIT_START
198 0004D 0AAB BS I2C_FLAG,MCU_OVER_TIME
199 0004E 144F JMP _C2_OPT
200
201
202 0004F _C2_OPT:
203 0004F 0EA1 JBS OPT_FLAG,OPT_RING_END
204 00050 1462 JMP _C2_OPT_MS
205
206 00051 0568 INC C2_1S_COUNTER
207 00052 0428 MOV A,C2_1S_COUNTER
208 00053 1DC7 SUB A,@199
209 00054 0C03 JBC 0X03,0
210 00055 1462 JMP _C2_OPT_MS
211
212 00056 00E8 CLR C2_1S_COUNTER
213
214 00057 0569 INC COUNTER_1S
215 00058 1D05 SUB A,@0X05
216 00059 0C03 JBC 0X03,0
217 0005A 1462 JMP _C2_OPT_MS
218 0005B 00E1 CLR OPT_FLAG
219 0005C 00E4 CLR OPT_100MS_COUNT
220
221 0005D 10D0 CALL RESET_SEND_06 ;RING_END
222
223 0005E 054C INC 0X0C
224 0005F 1890 MOV A,@0X90
225 00060 004D MOV 0X0D,A
226 00061 148D JMP _OPT_WRITE_CHECK_SUM
227
228
229 00062 _C2_OPT_MS:
230
231 00062 0F21 JBS OPT_FLAG,OPT_100MS_START
232 00063 146B JMP _INT_GET_OPT
233 00064 0564 INC OPT_100MS_COUNT
234 00065 1D13 SUB A,@19
235 00066 0C03 JBC 0X03,0
236 00067 146B JMP _INT_GET_OPT
237 00068 00E4 CLR OPT_100MS_COUNT
238 00069 0921 BC OPT_FLAG,OPT_100MS_START
239 0006A 0B61 BS OPT_FLAG,OPT_100MS_OK
240
241 0006B _INT_GET_OPT:
242 0006B 00E3 CLR OPT_TEMP2 ;GET OPT_TEMP2
243 0006C 0823 BC OPT_TEMP2,0 ;OPT1
244 0006D 0D89 JBC 0X09,HKS_1
245 0006E 0A23 BS OPT_TEMP2,0
246
247 0006F 0923 BC OPT_TEMP2,4 ;OPT2
248 00070 0DC9 JBC 0X09,HKS_2
249 00071 0B23 BS OPT_TEMP2,4
250
251 00072 0422 MOV A,OPT_TEMP1
252 00073 0323 XOR A,OPT_TEMP2
253 00074 0E83 JBS 0X03,2
254 00075 0565 INC OPT_CONT ;OPT STA CHANG TIMES
255 00076 0E21 JBS OPT_FLAG,OPT_RING ;if opt_ring,go on counte change
256 00077 14BF JMP _OPT_CHECK_EXIT
257
258 00078 0D21 JBC OPT_FLAG,OPT_100MS_START
259 00079 147D JMP _JUDGE_OPT_COUNT_OK
260
261 0007A 00E4 CLR OPT_100MS_COUNT ;100MS RESET
262 0007B 0B21 BS OPT_FLAG,OPT_100MS_START
263 0007C 14BF JMP _OPT_CHECK_EXIT
264
265 0007D _JUDGE_OPT_COUNT_OK:
266 0007D 0D61 JBC OPT_FLAG,OPT_100MS_OK
267 0007E 1480 JMP _OPT_CHECK
268 0007F 14BF JMP _OPT_CHECK_EXIT
269
270 00080 _OPT_CHECK:
271 00080 00E4 CLR OPT_100MS_COUNT
272 00081 0425 MOV A,OPT_CONT
273 00082 0E83 JBS 0X03,2
274 00083 14AC JMP _OPT_STA_RING
275 00084 0423 MOV A,OPT_TEMP2
276 00085 1B11 XOR A,@0X11
277 00086 0E83 JBS 0X03,2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -