ATcmdSet.s43
上传用户:xhjmsc
上传日期:2019-09-13
资源大小:389k
文件大小:50k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1.         NAME ATcmdSet
  2.         RTMODEL "__double_size", "32"
  3.         RTMODEL "__pic", "no"
  4.         RTMODEL "__reg_r4", "free"
  5.         RTMODEL "__reg_r5", "free"
  6.         RTMODEL "__rt_version", "1"
  7.         RSEG CSTACK:DATA:SORT:NOROOT(1)
  8.         EXTERN gwTxNum
  9.         EXTERN gpucTxBufPnt
  10.         EXTERN aucUartTxBuf
  11.         EXTERN gucTxBufCnt
  12.         EXTERN aucUartRxBuf
  13.         EXTERN gucUartRxCnt
  14.         EXTERN ?CopyMemoryBytes
  15.         EXTERN FTHCSI
  16.         EXTERN FTHDIS
  17.         EXTERN ?longjmp_r4
  18.         EXTERN ?longjmp_r5
  19.         EXTERN ?setjmp_r4
  20.         EXTERN ?setjmp_r5
  21.         PUBWEAK ?setjmp_save_r4
  22.         PUBWEAK ?setjmp_save_r5
  23.         PUBLIC SendATcmd
  24.         FUNCTION SendATcmd,0203H
  25.         LOCFRAME CSTACK, 6, STACK
  26.         PUBLIC SendATcmdATA
  27.         FUNCTION SendATcmdATA,0203H
  28.         LOCFRAME CSTACK, 6, STACK
  29.         PUBLIC SendATcmdDT
  30.         FUNCTION SendATcmdDT,0203H
  31.         LOCFRAME CSTACK, 16, STACK
  32.         PUBLIC SendATcmdFCLASS
  33.         FUNCTION SendATcmdFCLASS,0203H
  34.         LOCFRAME CSTACK, 14, STACK
  35.         PUBLIC SendATcmdFCLASS0
  36.         FUNCTION SendATcmdFCLASS0,0203H
  37.         LOCFRAME CSTACK, 14, STACK
  38.         PUBLIC SendATcmdFRH
  39.         FUNCTION SendATcmdFRH,0203H
  40.         LOCFRAME CSTACK, 12, STACK
  41.         PUBLIC SendATcmdFRM
  42.         FUNCTION SendATcmdFRM,0203H
  43.         LOCFRAME CSTACK, 12, STACK
  44.         PUBLIC SendATcmdFTH
  45.         FUNCTION SendATcmdFTH,0203H
  46.         LOCFRAME CSTACK, 12, STACK
  47.         PUBLIC SendATcmdFTM
  48.         FUNCTION SendATcmdFTM,0203H
  49.         LOCFRAME CSTACK, 12, STACK
  50.         PUBLIC SendATcmdH0
  51.         FUNCTION SendATcmdH0,0203H
  52.         LOCFRAME CSTACK, 8, STACK
  53.         PUBLIC SendATcmdModemSoftReset
  54.         FUNCTION SendATcmdModemSoftReset,0203H
  55.         LOCFRAME CSTACK, 8, STACK
  56.         PUBLIC SendATcmdPrefix
  57.         FUNCTION SendATcmdPrefix,0203H
  58.         LOCFRAME CSTACK, 4, STACK
  59.         PUBLIC SendATcmdSuffix
  60.         FUNCTION SendATcmdSuffix,0203H
  61.         LOCFRAME CSTACK, 4, STACK
  62.         PUBLIC SendATconfigFE0EndofRX
  63.         FUNCTION SendATconfigFE0EndofRX,0203H
  64.         LOCFRAME CSTACK, 28, STACK
  65.         PUBLIC SendATconfigFS0
  66.         FUNCTION SendATconfigFS0,0203H
  67.         LOCFRAME CSTACK, 18, STACK
  68.         PUBLIC SendATconfigS0RX
  69.         FUNCTION SendATconfigS0RX,0203H
  70.         LOCFRAME CSTACK, 10, STACK
  71.         PUBLIC SendATconfigS7
  72.         FUNCTION SendATconfigS7,0203H
  73.         LOCFRAME CSTACK, 16, STACK
  74.         PUBLIC SendATconfigS7RX
  75.         FUNCTION SendATconfigS7RX,0203H
  76.         LOCFRAME CSTACK, 22, STACK
  77.         PUBLIC SendATconfigX4M1
  78.         FUNCTION SendATconfigX4M1,0203H
  79.         LOCFRAME CSTACK, 12, STACK
  80.         PUBLIC SendATdataFTHCFR
  81.         FUNCTION SendATdataFTHCFR,0203H
  82.         LOCFRAME CSTACK, 8, STACK
  83.         PUBLIC SendATdataFTHCSI
  84.         FUNCTION SendATdataFTHCSI,0203H
  85.         LOCFRAME CSTACK, 2, STACK
  86.         PUBLIC SendATdataFTHDIS
  87.         FUNCTION SendATdataFTHDIS,0203H
  88.         LOCFRAME CSTACK, 2, STACK
  89.         PUBLIC SendATdataFTHDNC
  90.         FUNCTION SendATdataFTHDNC,0203H
  91.         LOCFRAME CSTACK, 8, STACK
  92.         PUBLIC SendATdataFTHEOP
  93.         FUNCTION SendATdataFTHEOP,0203H
  94.         LOCFRAME CSTACK, 8, STACK
  95.         PUBLIC SendATdataFTHMCF
  96.         FUNCTION SendATdataFTHMCF,0203H
  97.         LOCFRAME CSTACK, 8, STACK
  98.         PUBLIC SendATdataFTHTSI
  99.         FUNCTION SendATdataFTHTSI,0203H
  100.         LOCFRAME CSTACK, 10, STACK
  101.         PUBWEAK TXBUF0
  102.         
  103.         CFI Names cfiNames0
  104.         CFI StackFrame CFA SP DATA
  105.         CFI Resource PC:16, SP:16, SR:16, R4:16, R5:16, R6:16, R7:16, R8:16
  106.         CFI Resource R9:16, R10:16, R11:16, R12:16, R13:16, R14:16, R15:16
  107.         CFI EndNames cfiNames0
  108.         
  109.         CFI Common cfiCommon0 Using cfiNames0
  110.         CFI CodeAlign 2
  111.         CFI DataAlign 2
  112.         CFI ReturnAddress PC CODE
  113.         CFI CFA SP+2
  114.         CFI PC Frame(CFA, -2)
  115.         CFI SR Undefined
  116.         CFI R4 SameValue
  117.         CFI R5 SameValue
  118.         CFI R6 SameValue
  119.         CFI R7 SameValue
  120.         CFI R8 SameValue
  121.         CFI R9 SameValue
  122.         CFI R10 SameValue
  123.         CFI R11 SameValue
  124.         CFI R12 Undefined
  125.         CFI R13 Undefined
  126.         CFI R14 Undefined
  127.         CFI R15 Undefined
  128.         CFI EndCommon cfiCommon0
  129.         
  130. // E:projectFaxProgramVson_Bryan_Fax_Conexant_070423filesATcmdSet.c
  131. //    1 
  132. //    2 #include "includeH.h"
  133.         ASEGN DATA16_AN:DATA:NOROOT,077H
  134. // unsigned char volatile __data TXBUF0
  135. TXBUF0:
  136.         DS8 1
  137. //    3 
  138. //    4 
  139.         RSEG CODE:CODE:NOROOT(1)
  140. //    5 void SendATcmdModemSoftReset(void)                    //
  141. SendATcmdModemSoftReset:
  142.         CFI Block cfiBlock0 Using cfiCommon0
  143.         CFI Function SendATcmdModemSoftReset
  144. //    6 {       
  145. PUSH.W R10
  146.         CFI R10 Frame(CFA, -4)
  147.         CFI CFA SP+4
  148. SUB.W #0x4, SP
  149.         CFI CFA SP+8
  150. //    7         unsigned char ucGeneralCnt=0,ATcmdSoftReset[]={0x41,0x54,0x5a,0x0d}; //add a ";" , a bug of Jan. 9,2007
  151. MOV.B #0x0, R12
  152. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_17`, 0x0(SP)
  153. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_17` + 0x1, 0x1(SP)
  154. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_17` + 0x2, 0x2(SP)
  155. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_17` + 0x3, 0x3(SP)
  156. //    8         unsigned int wGeneralCount=0;
  157. MOV.W #0x0, R15
  158. //    9         gwTxNum=sizeof (ATcmdSoftReset);
  159. MOV.W #0x4, &gwTxNum
  160. //   10         gpucTxBufPnt=0;
  161. MOV.B #0x0, &gpucTxBufPnt
  162. //   11         
  163. //   12         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  164. MOV.B #0x0, R12
  165. ??SendATcmdModemSoftReset_0:
  166. MOV.B R12, R14
  167. AND.W #0xff, R14
  168. CMP.W &gwTxNum, R14
  169. JC ??SendATcmdModemSoftReset_2
  170. //   13         {
  171. //   14           aucUartTxBuf[ucGeneralCnt]=ATcmdSoftReset[ucGeneralCnt];          
  172. MOV.B R12, R13
  173. AND.W #0xff, R13
  174. MOV.W SP, R10
  175. MOV.B R12, R14
  176. AND.W #0xff, R14
  177. ADD.W R10, R14
  178. MOV.B @R14, aucUartTxBuf(R13)
  179. //   15         }               
  180. ADD.B #0x1, R12
  181. JMP ??SendATcmdModemSoftReset_0
  182. //   16                       
  183. //   17         TXBUF0=aucUartTxBuf[0];    
  184. ??SendATcmdModemSoftReset_2:
  185. MOV.B &aucUartTxBuf, &0x77
  186. //   18         gucTxBufCnt=1;
  187. MOV.B #0x1, &gucTxBufCnt
  188. //   19         while (wGeneralCount++<0xffff)    
  189. ??SendATcmdModemSoftReset_1:
  190. MOV.W R15, R14
  191. MOV.W #0x1, R15
  192. ADD.W R14, R15
  193. CMP.W #0xffff, R14
  194. JEQ ??SendATcmdModemSoftReset_3
  195. //   20         {
  196. //   21           if ((aucUartRxBuf[gucUartRxCnt-2]==0x0d)&&(aucUartRxBuf[gucUartRxCnt-3]==0x4B))
  197. MOV.W #aucUartRxBuf, R13
  198. MOV.B &gucUartRxCnt, R14
  199. AND.W #0xff, R14
  200. ADD.W R14, R13
  201. CMP.B #0xd, 0xfffe(R13)
  202. JNE ??SendATcmdModemSoftReset_1
  203. MOV.W #aucUartRxBuf, R12
  204. MOV.B &gucUartRxCnt, R14
  205. AND.W #0xff, R14
  206. ADD.W R14, R12
  207. CMP.B #0x4b, 0xfffd(R12)
  208. JNE ??SendATcmdModemSoftReset_1
  209. //   22             break;
  210. //   23           
  211. //   24         //if check time>min. 5S, Receive Fax error, progra should be quit  
  212. //   25         //RxFaxTimeOverflowErrorQuit();
  213. //   26         }     
  214. //   27 }    
  215. ??SendATcmdModemSoftReset_3:
  216. ADD.W #0x4, SP
  217.         CFI CFA SP+4
  218. POP.W R10
  219.         CFI R10 SameValue
  220.         CFI CFA SP+2
  221. RET
  222.         CFI EndBlock cfiBlock0
  223. //   28 
  224.         RSEG CODE:CODE:NOROOT(1)
  225. //   29 void SendATcmd(void)                    //
  226. SendATcmd:
  227.         CFI Block cfiBlock1 Using cfiCommon0
  228.         CFI Function SendATcmd
  229. //   30 {       
  230. SUB.W #0x4, SP
  231.         CFI CFA SP+6
  232. //   31         unsigned char ucGeneralCnt=0,ATcmdPrefix[]={0x41,0x54,0x0d};
  233. MOV.B #0x0, R15
  234. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_16`, 0x0(SP)
  235. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_16` + 0x1, 0x1(SP)
  236. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_16` + 0x2, 0x2(SP)
  237. //   32         gwTxNum=sizeof (ATcmdPrefix);
  238. MOV.W #0x3, &gwTxNum
  239. //   33         gpucTxBufPnt=0;
  240. MOV.B #0x0, &gpucTxBufPnt
  241. //   34         
  242. //   35         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  243. MOV.B #0x0, R15
  244. ??SendATcmd_0:
  245. MOV.B R15, R14
  246. AND.W #0xff, R14
  247. CMP.W &gwTxNum, R14
  248. JC ??SendATcmd_1
  249. //   36         {
  250. //   37           aucUartTxBuf[ucGeneralCnt]=ATcmdPrefix[ucGeneralCnt];          
  251. MOV.B R15, R12
  252. AND.W #0xff, R12
  253. MOV.W SP, R13
  254. MOV.B R15, R14
  255. AND.W #0xff, R14
  256. ADD.W R13, R14
  257. MOV.B @R14, aucUartTxBuf(R12)
  258. //   38         }               
  259. ADD.B #0x1, R15
  260. JMP ??SendATcmd_0
  261. //   39                       
  262. //   40         TXBUF0=aucUartTxBuf[0];    
  263. ??SendATcmd_1:
  264. MOV.B &aucUartTxBuf, &0x77
  265. //   41         gucTxBufCnt=1; 
  266. MOV.B #0x1, &gucTxBufCnt
  267. //   42 }    
  268. ADD.W #0x4, SP
  269.         CFI CFA SP+2
  270. RET
  271.         CFI EndBlock cfiBlock1
  272. //   43 
  273.         RSEG CODE:CODE:NOROOT(1)
  274. //   44 void SendATcmdPrefix(void)                    //
  275. SendATcmdPrefix:
  276.         CFI Block cfiBlock2 Using cfiCommon0
  277.         CFI Function SendATcmdPrefix
  278. //   45 {       
  279. SUB.W #0x2, SP
  280.         CFI CFA SP+4
  281. //   46         unsigned char ucGeneralCnt=0,ATcmdPrefix[]={0x41,0x54};
  282. MOV.B #0x0, R15
  283. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_15`, 0x0(SP)
  284. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char_15` + 0x1, 0x1(SP)
  285. //   47         gwTxNum=sizeof (ATcmdPrefix);
  286. MOV.W #0x2, &gwTxNum
  287. //   48         gpucTxBufPnt=0;
  288. MOV.B #0x0, &gpucTxBufPnt
  289. //   49         
  290. //   50         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  291. MOV.B #0x0, R15
  292. ??SendATcmdPrefix_0:
  293. MOV.B R15, R14
  294. AND.W #0xff, R14
  295. CMP.W &gwTxNum, R14
  296. JC ??SendATcmdPrefix_1
  297. //   51         {
  298. //   52           aucUartTxBuf[ucGeneralCnt]=ATcmdPrefix[ucGeneralCnt];          
  299. MOV.B R15, R12
  300. AND.W #0xff, R12
  301. MOV.W SP, R13
  302. MOV.B R15, R14
  303. AND.W #0xff, R14
  304. ADD.W R13, R14
  305. MOV.B @R14, aucUartTxBuf(R12)
  306. //   53         }               
  307. ADD.B #0x1, R15
  308. JMP ??SendATcmdPrefix_0
  309. //   54                       
  310. //   55         TXBUF0=aucUartTxBuf[0];    
  311. ??SendATcmdPrefix_1:
  312. MOV.B &aucUartTxBuf, &0x77
  313. //   56         gucTxBufCnt=1; 
  314. MOV.B #0x1, &gucTxBufCnt
  315. //   57 }    
  316. ADD.W #0x2, SP
  317.         CFI CFA SP+2
  318. RET
  319.         CFI EndBlock cfiBlock2
  320. //   58 
  321.         RSEG CODE:CODE:NOROOT(1)
  322. //   59 void SendATcmdSuffix(void)                    //
  323. SendATcmdSuffix:
  324.         CFI Block cfiBlock3 Using cfiCommon0
  325.         CFI Function SendATcmdSuffix
  326. //   60 {       
  327. SUB.W #0x2, SP
  328.         CFI CFA SP+4
  329. //   61         unsigned char ucGeneralCnt=0,ATcmdSuffix[]={0x0D};
  330. MOV.B #0x0, R15
  331. MOV.B &`?<Constant {(unsigned char)13U}>`, 0x0(SP)
  332. //   62         gwTxNum=sizeof (ATcmdSuffix);
  333. MOV.W #0x1, &gwTxNum
  334. //   63         gpucTxBufPnt=0;
  335. MOV.B #0x0, &gpucTxBufPnt
  336. //   64         
  337. //   65         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  338. MOV.B #0x0, R15
  339. ??SendATcmdSuffix_0:
  340. MOV.B R15, R14
  341. AND.W #0xff, R14
  342. CMP.W &gwTxNum, R14
  343. JC ??SendATcmdSuffix_1
  344. //   66         {
  345. //   67           aucUartTxBuf[ucGeneralCnt]=ATcmdSuffix[ucGeneralCnt];          
  346. MOV.B R15, R12
  347. AND.W #0xff, R12
  348. MOV.W SP, R13
  349. MOV.B R15, R14
  350. AND.W #0xff, R14
  351. ADD.W R13, R14
  352. MOV.B @R14, aucUartTxBuf(R12)
  353. //   68         }               
  354. ADD.B #0x1, R15
  355. JMP ??SendATcmdSuffix_0
  356. //   69                       
  357. //   70         TXBUF0=aucUartTxBuf[0];    
  358. ??SendATcmdSuffix_1:
  359. MOV.B &aucUartTxBuf, &0x77
  360. //   71         gucTxBufCnt=1;
  361. MOV.B #0x1, &gucTxBufCnt
  362. //   72 }
  363. ADD.W #0x2, SP
  364.         CFI CFA SP+2
  365. RET
  366.         CFI EndBlock cfiBlock3
  367. //   73   
  368.         RSEG CODE:CODE:NOROOT(1)
  369. //   74 void SendATconfigFS0(void)
  370. SendATconfigFS0:
  371.         CFI Block cfiBlock4 Using cfiCommon0
  372.         CFI Function SendATconfigFS0
  373. //   75 {       
  374. SUB.W #0x10, SP
  375.         CFI CFA SP+18
  376. //   76         unsigned char ucGeneralCnt=0,
  377. MOV.B #0x0, R15
  378. //   77         ATFS0[] = {0x41,0x54,0x26,0x46,0x53,0x30,0x3d,0x30,0x45,0x31,0x56,0x31,0x51,0x30,0X0d};
  379. MOV.W SP, R12
  380. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_14`, R14
  381. MOV.W #0xf, R13
  382. CALL #?CopyMemoryBytes
  383. //   78         gwTxNum=sizeof (ATFS0);
  384. MOV.W #0xf, &gwTxNum
  385. //   79         gpucTxBufPnt=0;
  386. MOV.B #0x0, &gpucTxBufPnt
  387. //   80         
  388. //   81         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  389. MOV.B #0x0, R15
  390. ??SendATconfigFS0_0:
  391. MOV.B R15, R14
  392. AND.W #0xff, R14
  393. CMP.W &gwTxNum, R14
  394. JC ??SendATconfigFS0_1
  395. //   82         {
  396. //   83           aucUartTxBuf[ucGeneralCnt]=ATFS0[ucGeneralCnt];          
  397. MOV.B R15, R12
  398. AND.W #0xff, R12
  399. MOV.W SP, R13
  400. MOV.B R15, R14
  401. AND.W #0xff, R14
  402. ADD.W R13, R14
  403. MOV.B @R14, aucUartTxBuf(R12)
  404. //   84         }               
  405. ADD.B #0x1, R15
  406. JMP ??SendATconfigFS0_0
  407. //   85                       
  408. //   86         TXBUF0=aucUartTxBuf[0];    
  409. ??SendATconfigFS0_1:
  410. MOV.B &aucUartTxBuf, &0x77
  411. //   87         gucTxBufCnt=1; 
  412. MOV.B #0x1, &gucTxBufCnt
  413. //   88 }
  414. ADD.W #0x10, SP
  415.         CFI CFA SP+2
  416. RET
  417.         CFI EndBlock cfiBlock4
  418. //   89 
  419.         RSEG CODE:CODE:NOROOT(1)
  420. //   90 void SendATconfigS7(void)
  421. SendATconfigS7:
  422.         CFI Block cfiBlock5 Using cfiCommon0
  423.         CFI Function SendATconfigS7
  424. //   91 {       
  425. SUB.W #0xe, SP
  426.         CFI CFA SP+16
  427. //   92         unsigned char ucGeneralCnt=0,
  428. MOV.B #0x0, R15
  429. //   93         //ATS7[] = {0x41,0x54,0x53,0x37,0x3d,0x36,0x30,0x26,0x44,0x33,0x26,
  430. //   94         //0x4b,0x34,0x5c,0x51,0x31,0x5c,0x4a,0x30,0x0d};//Ambient
  431. //   95         ATS7[] = {0x41,0x54,0x53,0x37,0x3d,0x36,0x30,0x26,0x44,0x33,0x26,0x4b,0x34,0x0d};//Conexant
  432. MOV.W SP, R12
  433. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_13`, R14
  434. MOV.W #0xe, R13
  435. CALL #?CopyMemoryBytes
  436. //   96         gwTxNum=sizeof (ATS7);
  437. MOV.W #0xe, &gwTxNum
  438. //   97         gpucTxBufPnt=0;
  439. MOV.B #0x0, &gpucTxBufPnt
  440. //   98         
  441. //   99         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  442. MOV.B #0x0, R15
  443. ??SendATconfigS7_0:
  444. MOV.B R15, R14
  445. AND.W #0xff, R14
  446. CMP.W &gwTxNum, R14
  447. JC ??SendATconfigS7_1
  448. //  100         {
  449. //  101           aucUartTxBuf[ucGeneralCnt]=ATS7[ucGeneralCnt];          
  450. MOV.B R15, R12
  451. AND.W #0xff, R12
  452. MOV.W SP, R13
  453. MOV.B R15, R14
  454. AND.W #0xff, R14
  455. ADD.W R13, R14
  456. MOV.B @R14, aucUartTxBuf(R12)
  457. //  102         }               
  458. ADD.B #0x1, R15
  459. JMP ??SendATconfigS7_0
  460. //  103                       
  461. //  104         TXBUF0=aucUartTxBuf[0];    
  462. ??SendATconfigS7_1:
  463. MOV.B &aucUartTxBuf, &0x77
  464. //  105         gucTxBufCnt=1; 
  465. MOV.B #0x1, &gucTxBufCnt
  466. //  106 }     
  467. ADD.W #0xe, SP
  468.         CFI CFA SP+2
  469. RET
  470.         CFI EndBlock cfiBlock5
  471. //  107 
  472.         RSEG CODE:CODE:NOROOT(1)
  473. //  108 void SendATconfigX4M1(void)
  474. SendATconfigX4M1:
  475.         CFI Block cfiBlock6 Using cfiCommon0
  476.         CFI Function SendATconfigX4M1
  477. //  109 {       
  478. SUB.W #0xa, SP
  479.         CFI CFA SP+12
  480. //  110         unsigned char ucGeneralCnt=0,ATX4M1L0[] = {0x41,0x54,0x58,0x34,0x4d,0x31,0x4c,0x30,0x0d};
  481. MOV.B #0x0, R15
  482. MOV.W SP, R12
  483. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_12`, R14
  484. MOV.W #0x9, R13
  485. CALL #?CopyMemoryBytes
  486. //  111         gwTxNum= sizeof (ATX4M1L0);
  487. MOV.W #0x9, &gwTxNum
  488. //  112         gpucTxBufPnt=0;
  489. MOV.B #0x0, &gpucTxBufPnt
  490. //  113         
  491. //  114         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  492. MOV.B #0x0, R15
  493. ??SendATconfigX4M1_0:
  494. MOV.B R15, R14
  495. AND.W #0xff, R14
  496. CMP.W &gwTxNum, R14
  497. JC ??SendATconfigX4M1_1
  498. //  115         {
  499. //  116           aucUartTxBuf[ucGeneralCnt]=ATX4M1L0[ucGeneralCnt];          
  500. MOV.B R15, R12
  501. AND.W #0xff, R12
  502. MOV.W SP, R13
  503. MOV.B R15, R14
  504. AND.W #0xff, R14
  505. ADD.W R13, R14
  506. MOV.B @R14, aucUartTxBuf(R12)
  507. //  117         }               
  508. ADD.B #0x1, R15
  509. JMP ??SendATconfigX4M1_0
  510. //  118                       
  511. //  119         TXBUF0=aucUartTxBuf[0];    
  512. ??SendATconfigX4M1_1:
  513. MOV.B &aucUartTxBuf, &0x77
  514. //  120         gucTxBufCnt=1; 
  515. MOV.B #0x1, &gucTxBufCnt
  516. //  121 }     
  517. ADD.W #0xa, SP
  518.         CFI CFA SP+2
  519. RET
  520.         CFI EndBlock cfiBlock6
  521. //  122 
  522. //  123 
  523.         RSEG CODE:CODE:NOROOT(1)
  524. //  124 void SendATconfigFE0EndofRX(void)
  525. SendATconfigFE0EndofRX:
  526.         CFI Block cfiBlock7 Using cfiCommon0
  527.         CFI Function SendATconfigFE0EndofRX
  528. //  125 {       
  529. SUB.W #0x1a, SP
  530.         CFI CFA SP+28
  531. //  126         unsigned char ucGeneralCnt=0;
  532. MOV.B #0x0, R15
  533. //  127         //Ambient
  534. //  128         //unsigned char ATFE0EndofRX[] = {0x41,0x54,0x26, 0x46, 0x45, 0x31, 0x56, 0x31, 0x57, 0x32, 0x26, 0x44, 0x32, 0x26, 0x43, 
  535. //  129                                       //0x31, 0x53, 0x30, 0x3d, 0x30, 0x2d, 0x43, 0x30, 0x0d};  // 26 is different of 2b a bug of Sep. 22
  536. //  130         //Conexant
  537. //  131         unsigned char ATFE0EndofRX[] = {0x41,0x54,0x26, 0x46, 0x45, 0x30, 0x56, 0x31, 0x26, 0x43, 0x31, 0x26, 0x44, 
  538. //  132                                       0x32, 0x53, 0x39, 0x35, 0x3d, 0x34, 0x37, 0x53, 0x30, 0x3d, 0x30,0x0d};  // 26 is different of 2b a bug of Sep. 22
  539. MOV.W SP, R12
  540. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_11`, R14
  541. MOV.W #0x19, R13
  542. CALL #?CopyMemoryBytes
  543. //  133         gwTxNum=sizeof (ATFE0EndofRX);
  544. MOV.W #0x19, &gwTxNum
  545. //  134         gpucTxBufPnt=0;
  546. MOV.B #0x0, &gpucTxBufPnt
  547. //  135         
  548. //  136         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  549. MOV.B #0x0, R15
  550. ??SendATconfigFE0EndofRX_0:
  551. MOV.B R15, R14
  552. AND.W #0xff, R14
  553. CMP.W &gwTxNum, R14
  554. JC ??SendATconfigFE0EndofRX_1
  555. //  137         {
  556. //  138           aucUartTxBuf[ucGeneralCnt]=ATFE0EndofRX[ucGeneralCnt];          
  557. MOV.B R15, R12
  558. AND.W #0xff, R12
  559. MOV.W SP, R13
  560. MOV.B R15, R14
  561. AND.W #0xff, R14
  562. ADD.W R13, R14
  563. MOV.B @R14, aucUartTxBuf(R12)
  564. //  139         }               
  565. ADD.B #0x1, R15
  566. JMP ??SendATconfigFE0EndofRX_0
  567. //  140                       
  568. //  141         TXBUF0=aucUartTxBuf[0];    
  569. ??SendATconfigFE0EndofRX_1:
  570. MOV.B &aucUartTxBuf, &0x77
  571. //  142         gucTxBufCnt=1; 
  572. MOV.B #0x1, &gucTxBufCnt
  573. //  143 }
  574. ADD.W #0x1a, SP
  575.         CFI CFA SP+2
  576. RET
  577.         CFI EndBlock cfiBlock7
  578. //  144 
  579.         RSEG CODE:CODE:NOROOT(1)
  580. //  145 void SendATconfigS7RX(void)
  581. SendATconfigS7RX:
  582.         CFI Block cfiBlock8 Using cfiCommon0
  583.         CFI Function SendATconfigS7RX
  584. //  146 {       
  585. SUB.W #0x14, SP
  586.         CFI CFA SP+22
  587. //  147         unsigned char ucGeneralCnt=0;
  588. MOV.B #0x0, R15
  589. //  148         unsigned char ATS7RX[] = {0x41,0x54,0x53,0x37,0x3d,0x36,0x30,
  590. //  149          0x4c,0x30,0x4d,0x31,0x26,0x4b,0x33,0x4e,0x31,0x58,0x34,0x0d};
  591. MOV.W SP, R12
  592. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_10`, R14
  593. MOV.W #0x13, R13
  594. CALL #?CopyMemoryBytes
  595. //  150         gwTxNum=sizeof (ATS7RX);
  596. MOV.W #0x13, &gwTxNum
  597. //  151         gpucTxBufPnt=0;
  598. MOV.B #0x0, &gpucTxBufPnt
  599. //  152         
  600. //  153         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  601. MOV.B #0x0, R15
  602. ??SendATconfigS7RX_0:
  603. MOV.B R15, R14
  604. AND.W #0xff, R14
  605. CMP.W &gwTxNum, R14
  606. JC ??SendATconfigS7RX_1
  607. //  154         {
  608. //  155           aucUartTxBuf[ucGeneralCnt]=ATS7RX[ucGeneralCnt];          
  609. MOV.B R15, R12
  610. AND.W #0xff, R12
  611. MOV.W SP, R13
  612. MOV.B R15, R14
  613. AND.W #0xff, R14
  614. ADD.W R13, R14
  615. MOV.B @R14, aucUartTxBuf(R12)
  616. //  156         }               
  617. ADD.B #0x1, R15
  618. JMP ??SendATconfigS7RX_0
  619. //  157                       
  620. //  158         TXBUF0=aucUartTxBuf[0];    
  621. ??SendATconfigS7RX_1:
  622. MOV.B &aucUartTxBuf, &0x77
  623. //  159         gucTxBufCnt=1; 
  624. MOV.B #0x1, &gucTxBufCnt
  625. //  160 }     
  626. ADD.W #0x14, SP
  627.         CFI CFA SP+2
  628. RET
  629.         CFI EndBlock cfiBlock8
  630. //  161 
  631.         RSEG CODE:CODE:NOROOT(1)
  632. //  162 void SendATconfigS0RX(void)
  633. SendATconfigS0RX:
  634.         CFI Block cfiBlock9 Using cfiCommon0
  635.         CFI Function SendATconfigS0RX
  636. //  163 {       
  637. SUB.W #0x8, SP
  638.         CFI CFA SP+10
  639. //  164         unsigned char ucGeneralCnt=0,ATS0RX[]={0x41,0x54,0x53,0x30,0x3d,0x30,0x0d};
  640. MOV.B #0x0, R15
  641. MOV.W SP, R12
  642. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_9`, R14
  643. MOV.W #0x7, R13
  644. CALL #?CopyMemoryBytes
  645. //  165         gwTxNum=sizeof (ATS0RX);
  646. MOV.W #0x7, &gwTxNum
  647. //  166         gpucTxBufPnt=0;
  648. MOV.B #0x0, &gpucTxBufPnt
  649. //  167         
  650. //  168         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  651. MOV.B #0x0, R15
  652. ??SendATconfigS0RX_0:
  653. MOV.B R15, R14
  654. AND.W #0xff, R14
  655. CMP.W &gwTxNum, R14
  656. JC ??SendATconfigS0RX_1
  657. //  169         {
  658. //  170           aucUartTxBuf[ucGeneralCnt]=ATS0RX[ucGeneralCnt];          
  659. MOV.B R15, R12
  660. AND.W #0xff, R12
  661. MOV.W SP, R13
  662. MOV.B R15, R14
  663. AND.W #0xff, R14
  664. ADD.W R13, R14
  665. MOV.B @R14, aucUartTxBuf(R12)
  666. //  171         }               
  667. ADD.B #0x1, R15
  668. JMP ??SendATconfigS0RX_0
  669. //  172                       
  670. //  173         TXBUF0=aucUartTxBuf[0];    
  671. ??SendATconfigS0RX_1:
  672. MOV.B &aucUartTxBuf, &0x77
  673. //  174         gucTxBufCnt=1; 
  674. MOV.B #0x1, &gucTxBufCnt
  675. //  175 }     
  676. ADD.W #0x8, SP
  677.         CFI CFA SP+2
  678. RET
  679.         CFI EndBlock cfiBlock9
  680. //  176 
  681.         RSEG CODE:CODE:NOROOT(1)
  682. //  177 void SendATcmdFCLASS0(void)
  683. SendATcmdFCLASS0:
  684.         CFI Block cfiBlock10 Using cfiCommon0
  685.         CFI Function SendATcmdFCLASS0
  686. //  178 {       
  687. SUB.W #0xc, SP
  688.         CFI CFA SP+14
  689. //  179         unsigned char ucGeneralCnt=0,
  690. MOV.B #0x0, R15
  691. //  180         FCLASS0[]={0x41,0x54,0x2b,0x46,0x43,0x4c,0x41,0x53,0x53,0x3d,0x30,0x0d};
  692. MOV.W SP, R12
  693. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_8`, R14
  694. MOV.W #0xc, R13
  695. CALL #?CopyMemoryBytes
  696. //  181         gwTxNum=sizeof (FCLASS0);
  697. MOV.W #0xc, &gwTxNum
  698. //  182         gpucTxBufPnt=0;
  699. MOV.B #0x0, &gpucTxBufPnt
  700. //  183         
  701. //  184         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  702. MOV.B #0x0, R15
  703. ??SendATcmdFCLASS0_0:
  704. MOV.B R15, R14
  705. AND.W #0xff, R14
  706. CMP.W &gwTxNum, R14
  707. JC ??SendATcmdFCLASS0_1
  708. //  185         {
  709. //  186           aucUartTxBuf[ucGeneralCnt]=FCLASS0[ucGeneralCnt];//a bug of Sep. 21 Fclass---->Fclass0          
  710. MOV.B R15, R12
  711. AND.W #0xff, R12
  712. MOV.W SP, R13
  713. MOV.B R15, R14
  714. AND.W #0xff, R14
  715. ADD.W R13, R14
  716. MOV.B @R14, aucUartTxBuf(R12)
  717. //  187         }               
  718. ADD.B #0x1, R15
  719. JMP ??SendATcmdFCLASS0_0
  720. //  188                       
  721. //  189         TXBUF0=aucUartTxBuf[0];    
  722. ??SendATcmdFCLASS0_1:
  723. MOV.B &aucUartTxBuf, &0x77
  724. //  190         gucTxBufCnt=1; 
  725. MOV.B #0x1, &gucTxBufCnt
  726. //  191 }     
  727. ADD.W #0xc, SP
  728.         CFI CFA SP+2
  729. RET
  730.         CFI EndBlock cfiBlock10
  731. //  192 
  732.         RSEG CODE:CODE:NOROOT(1)
  733. //  193 void SendATcmdFCLASS(void)
  734. SendATcmdFCLASS:
  735.         CFI Block cfiBlock11 Using cfiCommon0
  736.         CFI Function SendATcmdFCLASS
  737. //  194 {       
  738. SUB.W #0xc, SP
  739.         CFI CFA SP+14
  740. //  195         unsigned char ucGeneralCnt=0,
  741. MOV.B #0x0, R15
  742. //  196         FCLASS[]={0x41,0x54,0x2b,0x46,0x43,0x4c,0x41,0x53,0x53,0x3d,0x31,0x0d};
  743. MOV.W SP, R12
  744. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_7`, R14
  745. MOV.W #0xc, R13
  746. CALL #?CopyMemoryBytes
  747. //  197         gwTxNum=sizeof (FCLASS);
  748. MOV.W #0xc, &gwTxNum
  749. //  198         gpucTxBufPnt=0;
  750. MOV.B #0x0, &gpucTxBufPnt
  751. //  199         
  752. //  200         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  753. MOV.B #0x0, R15
  754. ??SendATcmdFCLASS_0:
  755. MOV.B R15, R14
  756. AND.W #0xff, R14
  757. CMP.W &gwTxNum, R14
  758. JC ??SendATcmdFCLASS_1
  759. //  201         {
  760. //  202           aucUartTxBuf[ucGeneralCnt]=FCLASS[ucGeneralCnt];          
  761. MOV.B R15, R12
  762. AND.W #0xff, R12
  763. MOV.W SP, R13
  764. MOV.B R15, R14
  765. AND.W #0xff, R14
  766. ADD.W R13, R14
  767. MOV.B @R14, aucUartTxBuf(R12)
  768. //  203         }               
  769. ADD.B #0x1, R15
  770. JMP ??SendATcmdFCLASS_0
  771. //  204                       
  772. //  205         TXBUF0=aucUartTxBuf[0];    
  773. ??SendATcmdFCLASS_1:
  774. MOV.B &aucUartTxBuf, &0x77
  775. //  206         gucTxBufCnt=1; 
  776. MOV.B #0x1, &gucTxBufCnt
  777. //  207 }     
  778. ADD.W #0xc, SP
  779.         CFI CFA SP+2
  780. RET
  781.         CFI EndBlock cfiBlock11
  782. //  208      
  783.         RSEG CODE:CODE:NOROOT(1)
  784. //  209 void SendATcmdDT(void)                    //ATDT
  785. SendATcmdDT:
  786.         CFI Block cfiBlock12 Using cfiCommon0
  787.         CFI Function SendATcmdDT
  788. //  210 {       
  789. SUB.W #0xe, SP
  790.         CFI CFA SP+16
  791. //  211         unsigned char ucGeneralCnt=0,
  792. MOV.B #0x0, R15
  793. //  212                       DT[]={0x41,0x54,0x44,0x54,0x39,0x36,0x31,0x31,0x33,0x39,0x35,0x30,0x39,0x0d};
  794. MOV.W SP, R12
  795. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_6`, R14
  796. MOV.W #0xe, R13
  797. CALL #?CopyMemoryBytes
  798. //  213         gwTxNum=sizeof (DT);
  799. MOV.W #0xe, &gwTxNum
  800. //  214         gpucTxBufPnt=0;
  801. MOV.B #0x0, &gpucTxBufPnt
  802. //  215         
  803. //  216         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  804. MOV.B #0x0, R15
  805. ??SendATcmdDT_0:
  806. MOV.B R15, R14
  807. AND.W #0xff, R14
  808. CMP.W &gwTxNum, R14
  809. JC ??SendATcmdDT_1
  810. //  217         {
  811. //  218           aucUartTxBuf[ucGeneralCnt]=DT[ucGeneralCnt];          
  812. MOV.B R15, R12
  813. AND.W #0xff, R12
  814. MOV.W SP, R13
  815. MOV.B R15, R14
  816. AND.W #0xff, R14
  817. ADD.W R13, R14
  818. MOV.B @R14, aucUartTxBuf(R12)
  819. //  219         }               
  820. ADD.B #0x1, R15
  821. JMP ??SendATcmdDT_0
  822. //  220                       
  823. //  221         TXBUF0=aucUartTxBuf[0];    
  824. ??SendATcmdDT_1:
  825. MOV.B &aucUartTxBuf, &0x77
  826. //  222         gucTxBufCnt=1; 
  827. MOV.B #0x1, &gucTxBufCnt
  828. //  223 }    
  829. ADD.W #0xe, SP
  830.         CFI CFA SP+2
  831. RET
  832.         CFI EndBlock cfiBlock12
  833. //  224 
  834.         RSEG CODE:CODE:NOROOT(1)
  835. //  225 void SendATcmdFRH(void)                    //AT+FRH
  836. SendATcmdFRH:
  837.         CFI Block cfiBlock13 Using cfiCommon0
  838.         CFI Function SendATcmdFRH
  839. //  226 {       
  840. SUB.W #0xa, SP
  841.         CFI CFA SP+12
  842. //  227         unsigned char ucGeneralCnt=0,
  843. MOV.B #0x0, R15
  844. //  228                       FRH[]={0x41,0x54,0x2b,0x46,0x52,0x48,0x3d,0x33,0x0d};
  845. MOV.W SP, R12
  846. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_5`, R14
  847. MOV.W #0x9, R13
  848. CALL #?CopyMemoryBytes
  849. //  229         gwTxNum=sizeof (FRH);
  850. MOV.W #0x9, &gwTxNum
  851. //  230         gpucTxBufPnt=0;
  852. MOV.B #0x0, &gpucTxBufPnt
  853. //  231         
  854. //  232         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  855. MOV.B #0x0, R15
  856. ??SendATcmdFRH_0:
  857. MOV.B R15, R14
  858. AND.W #0xff, R14
  859. CMP.W &gwTxNum, R14
  860. JC ??SendATcmdFRH_1
  861. //  233         {
  862. //  234           aucUartTxBuf[ucGeneralCnt]=FRH[ucGeneralCnt];          
  863. MOV.B R15, R12
  864. AND.W #0xff, R12
  865. MOV.W SP, R13
  866. MOV.B R15, R14
  867. AND.W #0xff, R14
  868. ADD.W R13, R14
  869. MOV.B @R14, aucUartTxBuf(R12)
  870. //  235         }               
  871. ADD.B #0x1, R15
  872. JMP ??SendATcmdFRH_0
  873. //  236                       
  874. //  237         TXBUF0=aucUartTxBuf[0];    
  875. ??SendATcmdFRH_1:
  876. MOV.B &aucUartTxBuf, &0x77
  877. //  238         gucTxBufCnt=1; 
  878. MOV.B #0x1, &gucTxBufCnt
  879. //  239 }    
  880. ADD.W #0xa, SP
  881.         CFI CFA SP+2
  882. RET
  883.         CFI EndBlock cfiBlock13
  884. //  240 
  885.         RSEG CODE:CODE:NOROOT(1)
  886. //  241 void SendATcmdFTH(void)                    //AT+FTH
  887. SendATcmdFTH:
  888.         CFI Block cfiBlock14 Using cfiCommon0
  889.         CFI Function SendATcmdFTH
  890. //  242 {       
  891. SUB.W #0xa, SP
  892.         CFI CFA SP+12
  893. //  243         unsigned char ucGeneralCnt=0,
  894. MOV.B #0x0, R15
  895. //  244                       FTH[]={0x41,0x54,0x2b,0x46,0x54,0x48,0x3d,0x33,0x0d};
  896. MOV.W SP, R12
  897. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_4`, R14
  898. MOV.W #0x9, R13
  899. CALL #?CopyMemoryBytes
  900. //  245         gwTxNum=sizeof (FTH);
  901. MOV.W #0x9, &gwTxNum
  902. //  246         gpucTxBufPnt=0;
  903. MOV.B #0x0, &gpucTxBufPnt
  904. //  247         
  905. //  248         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  906. MOV.B #0x0, R15
  907. ??SendATcmdFTH_0:
  908. MOV.B R15, R14
  909. AND.W #0xff, R14
  910. CMP.W &gwTxNum, R14
  911. JC ??SendATcmdFTH_1
  912. //  249         {
  913. //  250           aucUartTxBuf[ucGeneralCnt]=FTH[ucGeneralCnt];          
  914. MOV.B R15, R12
  915. AND.W #0xff, R12
  916. MOV.W SP, R13
  917. MOV.B R15, R14
  918. AND.W #0xff, R14
  919. ADD.W R13, R14
  920. MOV.B @R14, aucUartTxBuf(R12)
  921. //  251         }               
  922. ADD.B #0x1, R15
  923. JMP ??SendATcmdFTH_0
  924. //  252                       
  925. //  253         TXBUF0=aucUartTxBuf[0];    
  926. ??SendATcmdFTH_1:
  927. MOV.B &aucUartTxBuf, &0x77
  928. //  254         gucTxBufCnt=1; 
  929. MOV.B #0x1, &gucTxBufCnt
  930. //  255 }    
  931. ADD.W #0xa, SP
  932.         CFI CFA SP+2
  933. RET
  934.         CFI EndBlock cfiBlock14
  935. //  256 /*
  936. //  257 void SendATdataFTHNSF(void)                    //DataFTHNSF
  937. //  258 {       
  938. //  259         unsigned char ucGeneralCnt=0;
  939. //  260         unsigned char FTHNSF[] = {0xff,0x13,0x54,0x47,0x46,0x33,0x36,0x36,0x43,0x00,0x77,0x9C,0x10,0x03};
  940. //  261         gwTxNum=sizeof (FTHNSF);
  941. //  262         gpucTxBufPnt=0;
  942. //  263         
  943. //  264         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  944. //  265         {
  945. //  266           aucUartTxBuf[ucGeneralCnt]=FTHNSF[ucGeneralCnt];          
  946. //  267         }               
  947. //  268                       
  948. //  269         TXBUF0=aucUartTxBuf[0];    
  949. //  270         gucTxBufCnt=1; 
  950. //  271 }    
  951. //  272 */
  952.         RSEG CODE:CODE:NOROOT(1)
  953. //  273 void SendATdataFTHTSI(void)                    //DataFTHTSI
  954. SendATdataFTHTSI:
  955.         CFI Block cfiBlock15 Using cfiCommon0
  956.         CFI Function SendATdataFTHTSI
  957. //  274 {       
  958. SUB.W #0x8, SP
  959.         CFI CFA SP+10
  960. //  275         unsigned char ucGeneralCnt=0,
  961. MOV.B #0x0, R15
  962. //  276                       FTHTSI[]={0xff,0x03,0x43,0x78,0x61,0x46,0x10,0x03};
  963. MOV.W SP, R12
  964. MOV.W #`?<Constant {(unsigned char)255U, (unsigned cha_4`, R14
  965. MOV.W #0x8, R13
  966. CALL #?CopyMemoryBytes
  967. //  277         gwTxNum=sizeof (FTHTSI);
  968. MOV.W #0x8, &gwTxNum
  969. //  278         gpucTxBufPnt=0;
  970. MOV.B #0x0, &gpucTxBufPnt
  971. //  279         
  972. //  280         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  973. MOV.B #0x0, R15
  974. ??SendATdataFTHTSI_0:
  975. MOV.B R15, R14
  976. AND.W #0xff, R14
  977. CMP.W &gwTxNum, R14
  978. JC ??SendATdataFTHTSI_1
  979. //  281         {
  980. //  282           aucUartTxBuf[ucGeneralCnt]=FTHTSI[ucGeneralCnt];          
  981. MOV.B R15, R12
  982. AND.W #0xff, R12
  983. MOV.W SP, R13
  984. MOV.B R15, R14
  985. AND.W #0xff, R14
  986. ADD.W R13, R14
  987. MOV.B @R14, aucUartTxBuf(R12)
  988. //  283         }               
  989. ADD.B #0x1, R15
  990. JMP ??SendATdataFTHTSI_0
  991. //  284                       
  992. //  285         TXBUF0=aucUartTxBuf[0];    
  993. ??SendATdataFTHTSI_1:
  994. MOV.B &aucUartTxBuf, &0x77
  995. //  286         gucTxBufCnt=1; 
  996. MOV.B #0x1, &gucTxBufCnt
  997. //  287 }    
  998. ADD.W #0x8, SP
  999.         CFI CFA SP+2
  1000. RET
  1001.         CFI EndBlock cfiBlock15
  1002. //  288 
  1003.         RSEG CODE:CODE:NOROOT(1)
  1004. //  289 void SendATdataFTHCSI(void)                    //DataFTHCSI
  1005. SendATdataFTHCSI:
  1006.         CFI Block cfiBlock16 Using cfiCommon0
  1007.         CFI Function SendATdataFTHCSI
  1008. //  290 {       
  1009. //  291         unsigned char ucGeneralCnt=0;//, a bug of Jan.5,2007
  1010. MOV.B #0x0, R15
  1011. //  292                       //FTHCSI[]={0xff,0x03,0x40,0x20,0x20,0x20,0x20,0x20,
  1012. //  293                        //0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
  1013. //  294                        //0x36,0x33,0x38,0x10,0x03};
  1014. //  295         gwTxNum = sizeof (FTHCSI);//gwTxNum=ucDataNum;
  1015. MOV.W #0x19, &gwTxNum
  1016. //  296         gpucTxBufPnt=0;
  1017. MOV.B #0x0, &gpucTxBufPnt
  1018. //  297         
  1019. //  298         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1020. MOV.B #0x0, R15
  1021. ??SendATdataFTHCSI_0:
  1022. MOV.B R15, R14
  1023. AND.W #0xff, R14
  1024. CMP.W &gwTxNum, R14
  1025. JC ??SendATdataFTHCSI_1
  1026. //  299         {
  1027. //  300           aucUartTxBuf[ucGeneralCnt]=FTHCSI[ucGeneralCnt];          
  1028. MOV.B R15, R12
  1029. AND.W #0xff, R12
  1030. MOV.B R15, R14
  1031. AND.W #0xff, R14
  1032. MOV.B FTHCSI(R14), aucUartTxBuf(R12)
  1033. //  301         }               
  1034. ADD.B #0x1, R15
  1035. JMP ??SendATdataFTHCSI_0
  1036. //  302                       
  1037. //  303         TXBUF0=aucUartTxBuf[0];    
  1038. ??SendATdataFTHCSI_1:
  1039. MOV.B &aucUartTxBuf, &0x77
  1040. //  304         gucTxBufCnt=1; 
  1041. MOV.B #0x1, &gucTxBufCnt
  1042. //  305 }    
  1043. RET
  1044.         CFI EndBlock cfiBlock16
  1045. //  306 
  1046.         RSEG CODE:CODE:NOROOT(1)
  1047. //  307 void SendATdataFTHDIS(void)                    //DataFTHDIS
  1048. SendATdataFTHDIS:
  1049.         CFI Block cfiBlock17 Using cfiCommon0
  1050.         CFI Function SendATdataFTHDIS
  1051. //  308 {       
  1052. //  309         unsigned char ucGeneralCnt=0;
  1053. MOV.B #0x0, R15
  1054. //  310                       //FTHDIS[]={0xff,0x13,0x80,0x00,0x46,0x78,0x10,0x03};//c6 T.4 2D
  1055. //  311         gwTxNum=sizeof (FTHDIS);
  1056. MOV.W #0x8, &gwTxNum
  1057. //  312         gpucTxBufPnt=0;
  1058. MOV.B #0x0, &gpucTxBufPnt
  1059. //  313         
  1060. //  314         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1061. MOV.B #0x0, R15
  1062. ??SendATdataFTHDIS_0:
  1063. MOV.B R15, R14
  1064. AND.W #0xff, R14
  1065. CMP.W &gwTxNum, R14
  1066. JC ??SendATdataFTHDIS_1
  1067. //  315         {
  1068. //  316           aucUartTxBuf[ucGeneralCnt]=FTHDIS[ucGeneralCnt];          
  1069. MOV.B R15, R12
  1070. AND.W #0xff, R12
  1071. MOV.B R15, R14
  1072. AND.W #0xff, R14
  1073. MOV.B FTHDIS(R14), aucUartTxBuf(R12)
  1074. //  317         }               
  1075. ADD.B #0x1, R15
  1076. JMP ??SendATdataFTHDIS_0
  1077. //  318                       
  1078. //  319         TXBUF0=aucUartTxBuf[0];    
  1079. ??SendATdataFTHDIS_1:
  1080. MOV.B &aucUartTxBuf, &0x77
  1081. //  320         gucTxBufCnt=1; 
  1082. MOV.B #0x1, &gucTxBufCnt
  1083. //  321 }    
  1084. RET
  1085.         CFI EndBlock cfiBlock17
  1086. //  322 /*
  1087. //  323 void SendATdataFTHDCS(void)                    //DataFTHDCS
  1088. //  324 {       
  1089. //  325         unsigned char ucGeneralCnt=0,
  1090. //  326                       FTHDCS[]={0xff,0x13,0x83,0x00,0x46,0x78,0x10,0x03};
  1091. //  327         gwTxNum=sizeof (FTHDCS);
  1092. //  328         gpucTxBufPnt=0;
  1093. //  329         
  1094. //  330         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1095. //  331         {
  1096. //  332           aucUartTxBuf[ucGeneralCnt]=FTHDCS[ucGeneralCnt];          
  1097. //  333         }               
  1098. //  334                       
  1099. //  335         TXBUF0=aucUartTxBuf[0];    
  1100. //  336         gucTxBufCnt=1; 
  1101. //  337 }
  1102. //  338 */
  1103.         RSEG CODE:CODE:NOROOT(1)
  1104. //  339 void SendATdataFTHCFR(void)                    //DataFTHCFR
  1105. SendATdataFTHCFR:
  1106.         CFI Block cfiBlock18 Using cfiCommon0
  1107.         CFI Function SendATdataFTHCFR
  1108. //  340 {       
  1109. SUB.W #0x6, SP
  1110.         CFI CFA SP+8
  1111. //  341         unsigned char ucGeneralCnt=0,
  1112. MOV.B #0x0, R15
  1113. //  342                       FTHCFR[]={0xff,0x13,0x84,0x10,0x03};
  1114. MOV.W SP, R12
  1115. MOV.W #`?<Constant {(unsigned char)255U, (unsigned cha_3`, R14
  1116. MOV.W #0x5, R13
  1117. CALL #?CopyMemoryBytes
  1118. //  343         gwTxNum=sizeof (FTHCFR);
  1119. MOV.W #0x5, &gwTxNum
  1120. //  344         gpucTxBufPnt=0;
  1121. MOV.B #0x0, &gpucTxBufPnt
  1122. //  345         
  1123. //  346         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1124. MOV.B #0x0, R15
  1125. ??SendATdataFTHCFR_0:
  1126. MOV.B R15, R14
  1127. AND.W #0xff, R14
  1128. CMP.W &gwTxNum, R14
  1129. JC ??SendATdataFTHCFR_1
  1130. //  347         {
  1131. //  348           aucUartTxBuf[ucGeneralCnt]=FTHCFR[ucGeneralCnt];          
  1132. MOV.B R15, R12
  1133. AND.W #0xff, R12
  1134. MOV.W SP, R13
  1135. MOV.B R15, R14
  1136. AND.W #0xff, R14
  1137. ADD.W R13, R14
  1138. MOV.B @R14, aucUartTxBuf(R12)
  1139. //  349         }               
  1140. ADD.B #0x1, R15
  1141. JMP ??SendATdataFTHCFR_0
  1142. //  350                       
  1143. //  351         TXBUF0=aucUartTxBuf[0];    
  1144. ??SendATdataFTHCFR_1:
  1145. MOV.B &aucUartTxBuf, &0x77
  1146. //  352         gucTxBufCnt=1; 
  1147. MOV.B #0x1, &gucTxBufCnt
  1148. //  353 }
  1149. ADD.W #0x6, SP
  1150.         CFI CFA SP+2
  1151. RET
  1152.         CFI EndBlock cfiBlock18
  1153. //  354 
  1154.         RSEG CODE:CODE:NOROOT(1)
  1155. //  355 void SendATdataFTHMCF(void)                    //DataFTHMCF
  1156. SendATdataFTHMCF:
  1157.         CFI Block cfiBlock19 Using cfiCommon0
  1158.         CFI Function SendATdataFTHMCF
  1159. //  356 {       
  1160. SUB.W #0x6, SP
  1161.         CFI CFA SP+8
  1162. //  357         unsigned char ucGeneralCnt=0,
  1163. MOV.B #0x0, R15
  1164. //  358                       FTHMCF[]={0xff,0x13,0x8C,0x10,0x03};
  1165. MOV.W SP, R12
  1166. MOV.W #`?<Constant {(unsigned char)255U, (unsigned cha_2`, R14
  1167. MOV.W #0x5, R13
  1168. CALL #?CopyMemoryBytes
  1169. //  359         gwTxNum=sizeof (FTHMCF);
  1170. MOV.W #0x5, &gwTxNum
  1171. //  360         gpucTxBufPnt=0;
  1172. MOV.B #0x0, &gpucTxBufPnt
  1173. //  361         
  1174. //  362         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1175. MOV.B #0x0, R15
  1176. ??SendATdataFTHMCF_0:
  1177. MOV.B R15, R14
  1178. AND.W #0xff, R14
  1179. CMP.W &gwTxNum, R14
  1180. JC ??SendATdataFTHMCF_1
  1181. //  363         {
  1182. //  364           aucUartTxBuf[ucGeneralCnt]=FTHMCF[ucGeneralCnt];          
  1183. MOV.B R15, R12
  1184. AND.W #0xff, R12
  1185. MOV.W SP, R13
  1186. MOV.B R15, R14
  1187. AND.W #0xff, R14
  1188. ADD.W R13, R14
  1189. MOV.B @R14, aucUartTxBuf(R12)
  1190. //  365         }               
  1191. ADD.B #0x1, R15
  1192. JMP ??SendATdataFTHMCF_0
  1193. //  366                       
  1194. //  367         TXBUF0=aucUartTxBuf[0];    
  1195. ??SendATdataFTHMCF_1:
  1196. MOV.B &aucUartTxBuf, &0x77
  1197. //  368         gucTxBufCnt=1; 
  1198. MOV.B #0x1, &gucTxBufCnt
  1199. //  369 }
  1200. ADD.W #0x6, SP
  1201.         CFI CFA SP+2
  1202. RET
  1203.         CFI EndBlock cfiBlock19
  1204. //  370 
  1205.         RSEG CODE:CODE:NOROOT(1)
  1206. //  371 void SendATdataFTHEOP(void)                    //DataFTHEOP
  1207. SendATdataFTHEOP:
  1208.         CFI Block cfiBlock20 Using cfiCommon0
  1209.         CFI Function SendATdataFTHEOP
  1210. //  372 {       
  1211. SUB.W #0x6, SP
  1212.         CFI CFA SP+8
  1213. //  373         unsigned char ucGeneralCnt=0,
  1214. MOV.B #0x0, R15
  1215. //  374                       FTHEOP[]={0xff,0x13,0x2f,0x10,0x03};
  1216. MOV.W SP, R12
  1217. MOV.W #`?<Constant {(unsigned char)255U, (unsigned cha_1`, R14
  1218. MOV.W #0x5, R13
  1219. CALL #?CopyMemoryBytes
  1220. //  375         gwTxNum=sizeof (FTHEOP);
  1221. MOV.W #0x5, &gwTxNum
  1222. //  376         gpucTxBufPnt=0;
  1223. MOV.B #0x0, &gpucTxBufPnt
  1224. //  377         
  1225. //  378         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1226. MOV.B #0x0, R15
  1227. ??SendATdataFTHEOP_0:
  1228. MOV.B R15, R14
  1229. AND.W #0xff, R14
  1230. CMP.W &gwTxNum, R14
  1231. JC ??SendATdataFTHEOP_1
  1232. //  379         {
  1233. //  380           aucUartTxBuf[ucGeneralCnt]=FTHEOP[ucGeneralCnt];          
  1234. MOV.B R15, R12
  1235. AND.W #0xff, R12
  1236. MOV.W SP, R13
  1237. MOV.B R15, R14
  1238. AND.W #0xff, R14
  1239. ADD.W R13, R14
  1240. MOV.B @R14, aucUartTxBuf(R12)
  1241. //  381         }               
  1242. ADD.B #0x1, R15
  1243. JMP ??SendATdataFTHEOP_0
  1244. //  382                       
  1245. //  383         TXBUF0=aucUartTxBuf[0];    
  1246. ??SendATdataFTHEOP_1:
  1247. MOV.B &aucUartTxBuf, &0x77
  1248. //  384         gucTxBufCnt=1; 
  1249. MOV.B #0x1, &gucTxBufCnt
  1250. //  385 }     
  1251. ADD.W #0x6, SP
  1252.         CFI CFA SP+2
  1253. RET
  1254.         CFI EndBlock cfiBlock20
  1255. //  386 
  1256.         RSEG CODE:CODE:NOROOT(1)
  1257. //  387 void SendATdataFTHDNC(void)                    //DataFTHDNC
  1258. SendATdataFTHDNC:
  1259.         CFI Block cfiBlock21 Using cfiCommon0
  1260.         CFI Function SendATdataFTHDNC
  1261. //  388 {       
  1262. SUB.W #0x6, SP
  1263.         CFI CFA SP+8
  1264. //  389         unsigned char ucGeneralCnt=0,
  1265. MOV.B #0x0, R15
  1266. //  390                       FTHDNC[]={0xff,0x13,0xfb,0x10,0x03};
  1267. MOV.W SP, R12
  1268. MOV.W #`?<Constant {(unsigned char)255U, (unsigned cha`, R14
  1269. MOV.W #0x5, R13
  1270. CALL #?CopyMemoryBytes
  1271. //  391         gwTxNum=sizeof (FTHDNC);
  1272. MOV.W #0x5, &gwTxNum
  1273. //  392         gpucTxBufPnt=0;
  1274. MOV.B #0x0, &gpucTxBufPnt
  1275. //  393         
  1276. //  394         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1277. MOV.B #0x0, R15
  1278. ??SendATdataFTHDNC_0:
  1279. MOV.B R15, R14
  1280. AND.W #0xff, R14
  1281. CMP.W &gwTxNum, R14
  1282. JC ??SendATdataFTHDNC_1
  1283. //  395         {
  1284. //  396           aucUartTxBuf[ucGeneralCnt]=FTHDNC[ucGeneralCnt];          
  1285. MOV.B R15, R12
  1286. AND.W #0xff, R12
  1287. MOV.W SP, R13
  1288. MOV.B R15, R14
  1289. AND.W #0xff, R14
  1290. ADD.W R13, R14
  1291. MOV.B @R14, aucUartTxBuf(R12)
  1292. //  397         }               
  1293. ADD.B #0x1, R15
  1294. JMP ??SendATdataFTHDNC_0
  1295. //  398                       
  1296. //  399         TXBUF0=aucUartTxBuf[0];    
  1297. ??SendATdataFTHDNC_1:
  1298. MOV.B &aucUartTxBuf, &0x77
  1299. //  400         gucTxBufCnt=1; 
  1300. MOV.B #0x1, &gucTxBufCnt
  1301. //  401 } 
  1302. ADD.W #0x6, SP
  1303.         CFI CFA SP+2
  1304. RET
  1305.         CFI EndBlock cfiBlock21
  1306. //  402 /*
  1307. //  403 void SendATcmdFTS(void)                    //
  1308. //  404 {       
  1309. //  405         unsigned char ucGeneralCnt=0,
  1310. //  406                       FTS[]={0x41,0x54,0x2b,0x46,0x54,0x53,0x3d,0x38,0x0d};
  1311. //  407         gwTxNum=sizeof (FTS);
  1312. //  408         gpucTxBufPnt=0;
  1313. //  409         
  1314. //  410         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1315. //  411         {
  1316. //  412           aucUartTxBuf[ucGeneralCnt]=FTS[ucGeneralCnt];          
  1317. //  413         }               
  1318. //  414                       
  1319. //  415         TXBUF0=aucUartTxBuf[0];    
  1320. //  416         gucTxBufCnt=1; 
  1321. //  417 }    
  1322. //  418 */
  1323.         RSEG CODE:CODE:NOROOT(1)
  1324. //  419 void SendATcmdFTM(void)                    //
  1325. SendATcmdFTM:
  1326.         CFI Block cfiBlock22 Using cfiCommon0
  1327.         CFI Function SendATcmdFTM
  1328. //  420 {       
  1329. SUB.W #0xa, SP
  1330.         CFI CFA SP+12
  1331. //  421         unsigned char ucGeneralCnt=0,
  1332. MOV.B #0x0, R15
  1333. //  422                       FTM[]={0x41,0x54,0x2b,0x46,0x54,0x4d,0x3d,0x39,0x36,0x0d};
  1334. MOV.W SP, R12
  1335. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_3`, R14
  1336. MOV.W #0xa, R13
  1337. CALL #?CopyMemoryBytes
  1338. //  423         gwTxNum=sizeof (FTM);
  1339. MOV.W #0xa, &gwTxNum
  1340. //  424         gpucTxBufPnt=0;
  1341. MOV.B #0x0, &gpucTxBufPnt
  1342. //  425         
  1343. //  426         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1344. MOV.B #0x0, R15
  1345. ??SendATcmdFTM_0:
  1346. MOV.B R15, R14
  1347. AND.W #0xff, R14
  1348. CMP.W &gwTxNum, R14
  1349. JC ??SendATcmdFTM_1
  1350. //  427         {
  1351. //  428           aucUartTxBuf[ucGeneralCnt]=FTM[ucGeneralCnt];          
  1352. MOV.B R15, R12
  1353. AND.W #0xff, R12
  1354. MOV.W SP, R13
  1355. MOV.B R15, R14
  1356. AND.W #0xff, R14
  1357. ADD.W R13, R14
  1358. MOV.B @R14, aucUartTxBuf(R12)
  1359. //  429         }               
  1360. ADD.B #0x1, R15
  1361. JMP ??SendATcmdFTM_0
  1362. //  430                       
  1363. //  431         TXBUF0=aucUartTxBuf[0];    
  1364. ??SendATcmdFTM_1:
  1365. MOV.B &aucUartTxBuf, &0x77
  1366. //  432         gucTxBufCnt=1; 
  1367. MOV.B #0x1, &gucTxBufCnt
  1368. //  433 }    
  1369. ADD.W #0xa, SP
  1370.         CFI CFA SP+2
  1371. RET
  1372.         CFI EndBlock cfiBlock22
  1373. //  434 
  1374.         RSEG CODE:CODE:NOROOT(1)
  1375. //  435 void SendATcmdFRM(void)                    //
  1376. SendATcmdFRM:
  1377.         CFI Block cfiBlock23 Using cfiCommon0
  1378.         CFI Function SendATcmdFRM
  1379. //  436 {       
  1380. SUB.W #0xa, SP
  1381.         CFI CFA SP+12
  1382. //  437         unsigned char ucGeneralCnt=0,
  1383. MOV.B #0x0, R15
  1384. //  438                       FRM[]={0x41,0x54,0x2b,0x46,0x52,0x4d,0x3d,0x39,0x36,0x0d};
  1385. MOV.W SP, R12
  1386. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_2`, R14
  1387. MOV.W #0xa, R13
  1388. CALL #?CopyMemoryBytes
  1389. //  439         gwTxNum=sizeof (FRM);
  1390. MOV.W #0xa, &gwTxNum
  1391. //  440         gpucTxBufPnt=0;
  1392. MOV.B #0x0, &gpucTxBufPnt
  1393. //  441         
  1394. //  442         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1395. MOV.B #0x0, R15
  1396. ??SendATcmdFRM_0:
  1397. MOV.B R15, R14
  1398. AND.W #0xff, R14
  1399. CMP.W &gwTxNum, R14
  1400. JC ??SendATcmdFRM_1
  1401. //  443         {
  1402. //  444           aucUartTxBuf[ucGeneralCnt]=FRM[ucGeneralCnt];          
  1403. MOV.B R15, R12
  1404. AND.W #0xff, R12
  1405. MOV.W SP, R13
  1406. MOV.B R15, R14
  1407. AND.W #0xff, R14
  1408. ADD.W R13, R14
  1409. MOV.B @R14, aucUartTxBuf(R12)
  1410. //  445         }               
  1411. ADD.B #0x1, R15
  1412. JMP ??SendATcmdFRM_0
  1413. //  446                       
  1414. //  447         TXBUF0=aucUartTxBuf[0];    
  1415. ??SendATcmdFRM_1:
  1416. MOV.B &aucUartTxBuf, &0x77
  1417. //  448         gucTxBufCnt=1; 
  1418. MOV.B #0x1, &gucTxBufCnt
  1419. //  449 }    
  1420. ADD.W #0xa, SP
  1421.         CFI CFA SP+2
  1422. RET
  1423.         CFI EndBlock cfiBlock23
  1424. //  450 /*
  1425. //  451 void SendATcmdFRM146(void)                    //
  1426. //  452 {       
  1427. //  453         unsigned char ucGeneralCnt=0,
  1428. //  454                       FRM[]={0x41,0x54,0x2b,0x46,0x52,0x4d,0x3d,0x31,0x34,0x36,0x0d};
  1429. //  455         gwTxNum=sizeof (FRM);
  1430. //  456         gpucTxBufPnt=0;
  1431. //  457         
  1432. //  458         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1433. //  459         {
  1434. //  460           aucUartTxBuf[ucGeneralCnt]=FRM[ucGeneralCnt];          
  1435. //  461         }               
  1436. //  462                       
  1437. //  463         TXBUF0=aucUartTxBuf[0];    
  1438. //  464         gucTxBufCnt=1; 
  1439. //  465 }    
  1440. //  466 
  1441. //  467 void SendATdataTF(void)                    //Data DLE ETX
  1442. //  468 {       
  1443. //  469         unsigned char ucGeneralCnt=0,
  1444. //  470                       TerminalFlag[]={0x10,0x03};
  1445. //  471         gwTxNum=sizeof (TerminalFlag);
  1446. //  472         gpucTxBufPnt=0;
  1447. //  473         
  1448. //  474         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1449. //  475         {
  1450. //  476           aucUartTxBuf[ucGeneralCnt]=TerminalFlag[ucGeneralCnt];          
  1451. //  477         }               
  1452. //  478                       
  1453. //  479         TXBUF0=aucUartTxBuf[0];    
  1454. //  480         gucTxBufCnt=1; 
  1455. //  481 }    
  1456. //  482 */
  1457.         RSEG CODE:CODE:NOROOT(1)
  1458. //  483 void SendATcmdH0(void)                    //H 0(0x30) Num 0
  1459. SendATcmdH0:
  1460.         CFI Block cfiBlock24 Using cfiCommon0
  1461.         CFI Function SendATcmdH0
  1462. //  484 {       
  1463. SUB.W #0x6, SP
  1464.         CFI CFA SP+8
  1465. //  485         unsigned char ucGeneralCnt=0,
  1466. MOV.B #0x0, R15
  1467. //  486                       H0[]={0x41,0x54,0x48,0x30,0x0d};//H0[]={0x41,0x54,0x48,0x4f,0x0d};
  1468. MOV.W SP, R12
  1469. MOV.W #`?<Constant {(unsigned char)65U, (unsigned char_1`, R14
  1470. MOV.W #0x5, R13
  1471. CALL #?CopyMemoryBytes
  1472. //  487         gwTxNum=sizeof (H0);
  1473. MOV.W #0x5, &gwTxNum
  1474. //  488         gpucTxBufPnt=0;
  1475. MOV.B #0x0, &gpucTxBufPnt
  1476. //  489         
  1477. //  490         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1478. MOV.B #0x0, R15
  1479. ??SendATcmdH0_0:
  1480. MOV.B R15, R14
  1481. AND.W #0xff, R14
  1482. CMP.W &gwTxNum, R14
  1483. JC ??SendATcmdH0_1
  1484. //  491         {
  1485. //  492           aucUartTxBuf[ucGeneralCnt]=H0[ucGeneralCnt];          
  1486. MOV.B R15, R12
  1487. AND.W #0xff, R12
  1488. MOV.W SP, R13
  1489. MOV.B R15, R14
  1490. AND.W #0xff, R14
  1491. ADD.W R13, R14
  1492. MOV.B @R14, aucUartTxBuf(R12)
  1493. //  493         }               
  1494. ADD.B #0x1, R15
  1495. JMP ??SendATcmdH0_0
  1496. //  494                       
  1497. //  495         TXBUF0=aucUartTxBuf[0];    
  1498. ??SendATcmdH0_1:
  1499. MOV.B &aucUartTxBuf, &0x77
  1500. //  496         gucTxBufCnt=1; 
  1501. MOV.B #0x1, &gucTxBufCnt
  1502. //  497 }                   
  1503. ADD.W #0x6, SP
  1504.         CFI CFA SP+2
  1505. RET
  1506.         CFI EndBlock cfiBlock24
  1507. //  498 
  1508.         RSEG CODE:CODE:NOROOT(1)
  1509. //  499 void SendATcmdATA(void)                    //
  1510. SendATcmdATA:
  1511.         CFI Block cfiBlock25 Using cfiCommon0
  1512.         CFI Function SendATcmdATA
  1513. //  500 {       
  1514. SUB.W #0x4, SP
  1515.         CFI CFA SP+6
  1516. //  501         unsigned char ucGeneralCnt=0,ATA[]={0x41,0x54,0x41,0x0d};
  1517. MOV.B #0x0, R15
  1518. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char`, 0x0(SP)
  1519. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char` + 0x1, 0x1(SP)
  1520. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char` + 0x2, 0x2(SP)
  1521. MOV.B &`?<Constant {(unsigned char)65U, (unsigned char` + 0x3, 0x3(SP)
  1522. //  502         gwTxNum=sizeof (ATA);
  1523. MOV.W #0x4, &gwTxNum
  1524. //  503         gpucTxBufPnt=0;
  1525. MOV.B #0x0, &gpucTxBufPnt
  1526. //  504         
  1527. //  505         for(ucGeneralCnt=0;ucGeneralCnt<gwTxNum;ucGeneralCnt++)
  1528. MOV.B #0x0, R15
  1529. ??SendATcmdATA_0:
  1530. MOV.B R15, R14
  1531. AND.W #0xff, R14
  1532. CMP.W &gwTxNum, R14
  1533. JC ??SendATcmdATA_1
  1534. //  506         {
  1535. //  507           aucUartTxBuf[ucGeneralCnt]=ATA[ucGeneralCnt];          
  1536. MOV.B R15, R12
  1537. AND.W #0xff, R12
  1538. MOV.W SP, R13
  1539. MOV.B R15, R14
  1540. AND.W #0xff, R14
  1541. ADD.W R13, R14
  1542. MOV.B @R14, aucUartTxBuf(R12)
  1543. //  508         }               
  1544. ADD.B #0x1, R15
  1545. JMP ??SendATcmdATA_0
  1546. //  509         TXBUF0=aucUartTxBuf[0];    
  1547. ??SendATcmdATA_1:
  1548. MOV.B &aucUartTxBuf, &0x77
  1549. //  510         gucTxBufCnt=1; 
  1550. MOV.B #0x1, &gucTxBufCnt
  1551. //  511 }                          
  1552. ADD.W #0x4, SP
  1553.         CFI CFA SP+2
  1554. RET
  1555.         CFI EndBlock cfiBlock25
  1556.         RSEG CODE:CODE:NOROOT(1)
  1557. ?setjmp_save_r4:
  1558. REQUIRE ?setjmp_r4
  1559. REQUIRE ?longjmp_r4
  1560.         RSEG CODE:CODE:NOROOT(1)
  1561. ?setjmp_save_r5:
  1562. REQUIRE ?setjmp_r5
  1563. REQUIRE ?longjmp_r5
  1564.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1565. `?<Constant {(unsigned char)65U, (unsigned char`:
  1566.         DC8 65, 84, 65, 13
  1567.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1568. `?<Constant {(unsigned char)65U, (unsigned char_1`:
  1569.         DC8 65, 84, 72, 48, 13
  1570.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1571. `?<Constant {(unsigned char)65U, (unsigned char_2`:
  1572.         DC8 65, 84, 43, 70, 82, 77, 61, 57, 54, 13
  1573.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1574. `?<Constant {(unsigned char)65U, (unsigned char_3`:
  1575.         DC8 65, 84, 43, 70, 84, 77, 61, 57, 54, 13
  1576.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1577. `?<Constant {(unsigned char)255U, (unsigned cha`:
  1578.         DC8 255, 19, 251, 16, 3
  1579.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1580. `?<Constant {(unsigned char)255U, (unsigned cha_1`:
  1581.         DC8 255, 19, 47, 16, 3
  1582.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1583. `?<Constant {(unsigned char)255U, (unsigned cha_2`:
  1584.         DC8 255, 19, 140, 16, 3
  1585.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1586. `?<Constant {(unsigned char)255U, (unsigned cha_3`:
  1587.         DC8 255, 19, 132, 16, 3
  1588.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1589. `?<Constant {(unsigned char)255U, (unsigned cha_4`:
  1590.         DC8 255, 3, 67, 120, 97, 70, 16, 3
  1591.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1592. `?<Constant {(unsigned char)65U, (unsigned char_4`:
  1593.         DC8 65, 84, 43, 70, 84, 72, 61, 51, 13
  1594.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1595. `?<Constant {(unsigned char)65U, (unsigned char_5`:
  1596.         DC8 65, 84, 43, 70, 82, 72, 61, 51, 13
  1597.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1598. `?<Constant {(unsigned char)65U, (unsigned char_6`:
  1599.         DC8 65, 84, 68, 84, 57, 54, 49, 49, 51, 57, 53, 48, 57, 13
  1600.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1601. `?<Constant {(unsigned char)65U, (unsigned char_7`:
  1602.         DC8 65, 84, 43, 70, 67, 76, 65, 83, 83, 61, 49, 13
  1603.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1604. `?<Constant {(unsigned char)65U, (unsigned char_8`:
  1605.         DC8 65, 84, 43, 70, 67, 76, 65, 83, 83, 61, 48, 13
  1606.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1607. `?<Constant {(unsigned char)65U, (unsigned char_9`:
  1608.         DC8 65, 84, 83, 48, 61, 48, 13
  1609.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1610. `?<Constant {(unsigned char)65U, (unsigned char_10`:
  1611.         DC8 65, 84, 83, 55, 61, 54, 48, 76, 48, 77, 49, 38, 75, 51, 78, 49, 88
  1612.         DC8 52, 13
  1613.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1614. `?<Constant {(unsigned char)65U, (unsigned char_11`:
  1615.         DC8 65, 84, 38, 70, 69, 48, 86, 49, 38, 67, 49, 38, 68, 50, 83, 57, 53
  1616.         DC8 61, 52, 55, 83, 48, 61, 48, 13
  1617.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1618. `?<Constant {(unsigned char)65U, (unsigned char_12`:
  1619.         DC8 65, 84, 88, 52, 77, 49, 76, 48, 13
  1620.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1621. `?<Constant {(unsigned char)65U, (unsigned char_13`:
  1622.         DC8 65, 84, 83, 55, 61, 54, 48, 38, 68, 51, 38, 75, 52, 13
  1623.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1624. `?<Constant {(unsigned char)65U, (unsigned char_14`:
  1625.         DC8 65, 84, 38, 70, 83, 48, 61, 48, 69, 49, 86, 49, 81, 48, 13
  1626.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1627. `?<Constant {(unsigned char)13U}>`:
  1628.         DC8 13
  1629.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1630. `?<Constant {(unsigned char)65U, (unsigned char_15`:
  1631.         DC8 65, 84
  1632.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1633. `?<Constant {(unsigned char)65U, (unsigned char_16`:
  1634.         DC8 65, 84, 13
  1635.         RSEG DATA16_C:CONST:SORT:NOROOT(0)
  1636. `?<Constant {(unsigned char)65U, (unsigned char_17`:
  1637.         DC8 65, 84, 90, 13
  1638.         END
  1639. // 
  1640. // 2 168 bytes in segment CODE
  1641. //     1 byte  in segment DATA16_AN
  1642. //   212 bytes in segment DATA16_C
  1643. // 
  1644. // 2 168 bytes of CODE  memory
  1645. //   212 bytes of CONST memory
  1646. //     0 bytes of DATA  memory (+ 1 byte shared)
  1647. //
  1648. //Errors: none
  1649. //Warnings: none