ef8681.h
上传用户:sdttscl
上传日期:2010-01-04
资源大小:683k
文件大小:19k
源码类别:

Modem编程

开发平台:

C/C++

  1. //---------------------------------------------------------------------------------------------------
  2. // Project:- DE8681
  3. //   Filename:- EF8681.H
  4. // Description:- EF8681 Header File.
  5. // Programmer:- D.T.F
  6. // Version:- 2.0
  7. // Created:- 28th February 2002
  8. // Last modified:-
  9. //---------------------------------------------------------------------------------------------------
  10. // (C) Consumer Microcircuits Ltd 2002
  11. //
  12. // This firmware was designed by:-
  13. // Consumer Microcircuits Ltd,
  14. // Langford, Maldon,
  15. // ESSEX
  16. // CM9 6WG.
  17. // in the UK for use with CML evaluation kits only and is based on UK originated technology.
  18. // Please contact
  19. // sales@cmlmicro.co.uk
  20. // +44 (0)1621 875500
  21. // for licensing details.
  22. //---------------------------------------------------------------------------------------------------
  23. //////////////////////////////////////////////////
  24. /* Include additional Header files */
  25. //////////////////////////////////////////////////
  26. #include <pic.h>
  27. #include <string.h>
  28. #include <stdlib.h>
  29. #include "sci.h"
  30. #include "cbus.h"
  31. #include "chars.h"
  32. #include "delay.h"
  33. #include "atcmd.h"
  34. #include "hndshake.h"
  35. #include "dataxfer.h"
  36. #include "bert.h"
  37. #define BITDEF(reg,bit) ((unsigned)&(reg)*8+(bit))
  38. #ifdef EF8681_C
  39. void init_regs(void);
  40. void init_micro(void);
  41. void init_ports(void);
  42. void resmsgtopc(unsigned char);
  43. void init_sregs(unsigned char);
  44. void init_GPTs(void);
  45. void update_GPTs(void);
  46. void dial(void);
  47. void hook(unsigned char);
  48. void genmsgtopc(unsigned char);
  49. void ringdetection(void);
  50. void hexnum2scrn(unsigned int,unsigned char,unsigned char);
  51. void decnum2scrn(unsigned int,unsigned char,unsigned char);
  52. unsigned char dut_chksum(void);
  53. void testfunc1(void);
  54. #else 
  55. extern void init_sregs(unsigned char);
  56. extern void dial(void);
  57. extern void hook(unsigned char);
  58. extern void init_GPTs(void);
  59. extern void update_GPTs(void);
  60. extern void genmsgtopc(unsigned char);
  61. extern void hexnum2scrn(unsigned int,unsigned char,unsigned char);
  62. extern void decnum2scrn(unsigned int,unsigned char,unsigned char);
  63. #endif
  64. //////////////////////////////////////////
  65. /* EF8681 CMX868 Shadow Registers */
  66. //////////////////////////////////////////
  67. static volatile unsigned int bank3 CMXGENCTRL @ 0x190; // 16 Bit General Control Reg (Least Sig. Byte @ 0x190)
  68. static volatile unsigned int bank3 CMXTXMODE @ 0x192; // 16 Bit Tx Mode Reg (Least Sig. Byte @ 0x192)
  69. static volatile unsigned int bank3 CMXRXMODE @ 0x194; // 16 Bit Rx Mode Reg (Least Sig. Byte @ 0x194)
  70. static volatile unsigned char bank3 CMXTXDATA @ 0x196; // 8 Bit Tx Data Reg
  71. static volatile unsigned char bank3 CMXTXDATAV14 @ 0x197; // 8 Bit V14 Tx Data Reg
  72. static volatile unsigned char bank3 CMXRXDATA @ 0x198; // 8 Bit Rx Data Reg
  73. static volatile unsigned int bank3 CMXSTAT @ 0x199; // 16 Bit Status Reg (Least Sig. Byte @ 0x199)
  74. static volatile unsigned int bank3 CMXPROG @ 0x19B; // 16 Bit Programming Reg (Least Sig. Byte @ 0x19B)
  75. static volatile unsigned int bank3 CMXTESTADDR @ 0x19D; // Reserved
  76. static volatile unsigned int bank3 CMXTESTWR @ 0x19F; // Reserved
  77. static volatile unsigned int bank3 CMXTESTRD @ 0x1A1; // Reserved
  78. //////////////////////////////////////////
  79. /* EF8681 GPT Registers */
  80. //////////////////////////////////////////
  81. static volatile unsigned char bank3 GPT1 @ 0x1A3;
  82. static volatile unsigned char bank3 GPT2 @ 0x1A4;
  83. static volatile unsigned char bank3 GPT3 @ 0x1A5;
  84. static volatile unsigned char bank3 GPT4 @ 0x1A6;
  85. static volatile unsigned char bank3 GPT5 @ 0x1A7;
  86. static volatile unsigned char bank3 GPT6 @ 0x1A8;
  87. static volatile unsigned char bank3 ESCTMR @ 0x1A9;
  88. static volatile unsigned char bank3 ESCPS @ 0x1AA;
  89. static volatile unsigned char bank3 PS10ms @ 0x1AB;
  90. static volatile unsigned char bank3 PS100ms @ 0x1AC;
  91. static volatile unsigned char bank3 PS1s @ 0x1AD;
  92. static volatile unsigned char bank3 POLLTMR @ 0x1AE;
  93. static volatile unsigned char bank3 RDTIMEOUT @ 0x1AF;
  94. static volatile unsigned char bank3 CDLOSTTMR @ 0x1B0;
  95. //////////////////////////////////////////
  96. /* EF8681 Status Registers */
  97. //////////////////////////////////////////
  98. static volatile unsigned char bank3 MODEMSTAT @ 0x1B2;
  99. static volatile unsigned char bank3 ATCMDSTAT @ 0x1B3;
  100. static volatile unsigned char bank3 XFERSTAT @ 0x1B4;
  101. //////////////////////////////////////////
  102. /* EF8681 array pointers */
  103. //////////////////////////////////////////
  104. static volatile unsigned char bank3 ATBUFPTR @ 0x1B5;
  105. static volatile unsigned char bank3 MSGBUFLDPTR @ 0x1B6;
  106. static volatile unsigned char bank3 MSGBUFRDPTR @ 0x1B7;
  107. static volatile unsigned char bank3 DATABUFLDPTR @ 0x1B8;
  108. static volatile unsigned char bank3 DATABUFRDPTR @ 0x1B9;
  109. //////////////////////////////////////////
  110. /* EF8681 Ring Detect Register */
  111. //////////////////////////////////////////
  112. static volatile unsigned char bank3 RDCNT @ 0x1BA;
  113. //////////////////////////////////////////
  114. /* EF8681 BERT Registers */
  115. //////////////////////////////////////////
  116. static volatile unsigned char bank3 BERTSTAT @ 0x1BB;
  117. static volatile unsigned char bank3 BERCNT @ 0x1BC;
  118. static volatile unsigned char bank3 BERTXBYTE @ 0x1BD;
  119. static volatile unsigned char bank3 BERTMR0ADJ @ 0x1BE;
  120. /////////////////////////////////////////
  121. /* EF8681 AT Command Buffer */
  122. //////////////////////////////////////////
  123. static volatile unsigned char bank3 ATBUF[48] @ 0x1C0;
  124. //////////////////////////////////////////////////
  125. /*  EF8681 Status Register Bits */
  126. //////////////////////////////////////////////////
  127. /* Modem Status Register */
  128. static volatile bank3 bit EVMODE @ BITDEF(MODEMSTAT,0);
  129. static volatile bank3 bit ATCMDMODE @ BITDEF(MODEMSTAT,1); // AT Command Mode Flag
  130. static volatile bank3 bit DATAXFER @ BITDEF(MODEMSTAT,2); // Data Transfer Flag
  131. static volatile bank3 bit FALLBACK @ BITDEF(MODEMSTAT,3); // Modulation Fallback Flag
  132. static volatile bank3 bit TESTFUNC1 @ BITDEF(MODEMSTAT,4); // Test Function One Flag
  133. static volatile bank3 bit TESTFUNC2 @ BITDEF(MODEMSTAT,5); // Test Function Two Flag
  134. static volatile bank3 bit KEYABORT @ BITDEF(MODEMSTAT,6); // Flag to indicate key pushed, used for aborting routines
  135. static volatile bank3 bit RDINPROG @ BITDEF(MODEMSTAT,7); // Flag to indicate ringing in progress
  136. /* AT Command Status Register */
  137. static volatile bank3 bit ACHAR @ BITDEF(ATCMDSTAT,0);
  138. static volatile bank3 bit ATCHAR @ BITDEF(ATCMDSTAT,1);
  139. static volatile bank3 bit REPCMD @ BITDEF(ATCMDSTAT,2);
  140. static volatile bank3 bit INTERPRET @ BITDEF(ATCMDSTAT,3);
  141. static volatile bank3 bit LOADCHAR @ BITDEF(ATCMDSTAT,4); // Flag set within Rx AT Command interrupt routine
  142. static volatile bank3 bit LED_OVERRIDE  @ BITDEF(ATCMDSTAT,5);
  143. /* BERT Status Register */
  144. static volatile bank3 bit BERTFLAG @ BITDEF(BERTSTAT,0);
  145. static volatile bank3 bit BERTXRDY @ BITDEF(BERTSTAT,1);
  146. static volatile bank3 bit BERRXDATACLR @ BITDEF(BERTSTAT,2);
  147. /* Data Transfer Status Register */
  148. static volatile bank3 bit ESCTMREXP @ BITDEF(XFERSTAT,0);
  149. static volatile bank3 bit ESC1CHAR @ BITDEF(XFERSTAT,1);
  150. static volatile bank3 bit ESC2CHAR @ BITDEF(XFERSTAT,2);
  151. static volatile bank3 bit CDLOST @ BITDEF(XFERSTAT,3);
  152. static volatile bank3 bit TX_WAITING @ BITDEF(XFERSTAT,4);
  153. //////////////////////////////////////////
  154. /* PIC16LF876 Port Definitions */
  155. //////////////////////////////////////////
  156. /*      PORTA bits      */
  157. static volatile bit TXDIND @ BITDEF(PORTA,3);
  158. static volatile bit DTRIND @ BITDEF(PORTA,2);
  159. static volatile bit RXDIND @ BITDEF(PORTA,1);
  160. static volatile bit DCDIND @ BITDEF(PORTA,0);
  161. static volatile bit BER_TXD @ BITDEF(PORTA,3);
  162. static volatile bit BER_TXDCLK @ BITDEF(PORTA,2);
  163. static volatile bit BER_RXD @ BITDEF(PORTA,1);
  164. static volatile bit BER_RXDCLK @ BITDEF(PORTA,0);
  165. /*      PORTB bits      */
  166. static volatile bit CTSN @ BITDEF(PORTB,7);
  167. static volatile bit RTSN @ BITDEF(PORTB,6);
  168. static volatile bit DTRN @ BITDEF(PORTB,4);
  169. static volatile bit DSRN @ BITDEF(PORTB,3);
  170. static volatile bit RIN @ BITDEF(PORTB,2);
  171. static volatile bit DCDN @ BITDEF(PORTB,1);
  172. static volatile bit PICIRQN @ BITDEF(PORTB,0);
  173. /*      PORTC bits      */
  174. static volatile bit PICRXDN @ BITDEF(PORTC,7);
  175. static volatile bit PICTXDN @ BITDEF(PORTC,6);
  176. static volatile bit PICCDATA @ BITDEF(PORTC,5);
  177. static volatile bit PICRDATA @ BITDEF(PORTC,4);
  178. static volatile bit PICSCLK @ BITDEF(PORTC,3);
  179. static volatile bit PICCSN @ BITDEF(PORTC,2);
  180. /* Port Configuration (direction 1 = Input, 0 = Output) */
  181. /* All unused pins are i/p's (RA4-5, RC0, RC1 and RB5) */
  182. #define CONFIGPA 0b00110000 // Port A I/O config
  183. #define CONFIGPB 0b01110001 // Port B I/O config
  184. // (PICIRQN, DTRN and RTSN i/p's, RIN, DSRN, DCDN and CTSN o/p's)
  185. #define CONFIGPC 0b10010011 // Port C I/O config 
  186. // (Bits 4 and 7 i/p's, bits 2,3,5 and 6 o/p's)
  187. // (PICRDATA and PICRXDN i/p's, PICCSN, PICSCLK, PICCDATA and PICTXDN o/p's)
  188. #define CONFIGBERTPA 0b00101000 // Port A I/O config for BERT
  189. // (Bits 0,1,2 and 4 o/p's and Bit 3 is i/p)
  190. // (BER_TXDCLK, BER_RXD, BER_RXDCLK and CDN o/p's and BER_TXD is i/p)
  191. /*  Initial Port Settings */
  192. #define INITPA 0b00000000 // Initial Port A Settings
  193. // (TXDIND, DCDIND, RXDIND LEDs turned off, DTRIND LED turned on) 
  194. #define INITPB 0b10101100 // Initial Port B Settings
  195. // (Bits 2, 3, 5 and 7 set)
  196. // (RIN, DCDN, DSRN and CTSN set)
  197. #define INITPC 0b01001100 // Initial Port C Settings
  198. // (Bit 5 is clear, Bits 2,3 and 6 are set) 
  199. // (PICCDATA clear, PICCSN, PICSCLK and PICTXDN set)
  200. //////////////////////////////////////////
  201. /*  CMX868 Register Bits */
  202. //////////////////////////////////////////
  203. // General Control Register
  204. static volatile bank3 bit IRQNOP_EN @ BITDEF(CMXGENCTRL,6);
  205. static volatile bank3 bit RESET @ BITDEF(CMXGENCTRL,7);
  206. static volatile bank3 bit PWRUP @ BITDEF(CMXGENCTRL,8);
  207. static volatile bank3 bit RLYDRV_ON @ BITDEF(CMXGENCTRL,9);
  208. static volatile bank3 bit FIX_EQU @ BITDEF(CMXGENCTRL,10);
  209. static volatile bank3 bit LOOPBACK_EN @ BITDEF(CMXGENCTRL,11);
  210. static volatile bank3 bit XTAL @ BITDEF(CMXGENCTRL,12);
  211. // Rx Mode Register
  212. static volatile bank3 bit AUTO_EQU @ BITDEF(CMXRXMODE,8);
  213. static volatile bank3 bit RXUSART @ BITDEF(CMXRXMODE,5);
  214. // Status Register
  215. static volatile bank3 bit FSKOUT @ BITDEF(CMXSTAT,0);
  216. static volatile bank3 bit RXEVENPAR @ BITDEF(CMXSTAT,3);
  217. static volatile bank3 bit RXFERR @ BITDEF(CMXSTAT,4);
  218. static volatile bank3 bit RXOF @ BITDEF(CMXSTAT,5);
  219. static volatile bank3 bit DTMFDET @ BITDEF(CMXSTAT,5);
  220. static volatile bank3 bit RXRDY @ BITDEF(CMXSTAT,6);
  221. static volatile bank3 bit ANS2225DET @ BITDEF(CMXSTAT,6);
  222. static volatile bank3 bit T1DET @ BITDEF(CMXSTAT,6);
  223. static volatile bank3 bit ANS2100DET @ BITDEF(CMXSTAT,7);
  224. static volatile bank3 bit T2DET @ BITDEF(CMXSTAT,7);
  225. static volatile bank3 bit CONTA @ BITDEF(CMXSTAT,7);
  226. static volatile bank3 bit CONTB @ BITDEF(CMXSTAT,8);
  227. static volatile bank3 bit FSK0101 @ BITDEF(CMXSTAT,9);
  228. static volatile bank3 bit S1DET @ BITDEF(CMXSTAT,9);
  229. static volatile bank3 bit RXENERGYDET @ BITDEF(CMXSTAT,10);
  230. static volatile bank3 bit CPENERGYDET @ BITDEF(CMXSTAT,10);
  231. static volatile bank3 bit T1T2DET @ BITDEF(CMXSTAT,10);
  232. static volatile bank3 bit TXUF @ BITDEF(CMXSTAT,11);
  233. static volatile bank3 bit TXRDY @ BITDEF(CMXSTAT,12);
  234. static volatile bank3 bit PROGFLAG @ BITDEF(CMXSTAT,13);
  235. static volatile bank3 bit RDET @ BITDEF(CMXSTAT,14);
  236. static volatile bank3 bit IRQ @ BITDEF(CMXSTAT,15);
  237. //////////////////////////////////////////////////////////
  238. /*  CMX868 Register Address Definitions */
  239. //////////////////////////////////////////////////////////
  240. #define CMXGENRESET 0x01
  241. #define CMXGENCTRL_ADDR 0xE0
  242. #define CMXTXMODE_ADDR 0xE1
  243. #define CMXRXMODE_ADDR 0xE2
  244. #define CMXTXDATA_ADDR 0xE3
  245. #define CMXTXDATAV14_ADDR 0xE4
  246. #define CMXRXDATA_ADDR 0xE5
  247. #define CMXSTAT_ADDR 0xE6
  248. #define CMXPROG_ADDR 0xE8
  249. #define CMXTESTADDR_ADDR 0xE9
  250. #define CMXTESTWR_ADDR 0xEA
  251. #define CMXTESTRD_ADDR 0xEB
  252. //////////////////////////////////////////
  253. /*  CMX868 DTMF Definitions */
  254. //////////////////////////////////////////
  255. #define DTMF_D 0x00
  256. #define DTMF_1 0x01
  257. #define DTMF_2 0x02
  258. #define DTMF_3 0x03
  259. #define DTMF_4 0x04
  260. #define DTMF_5 0x05
  261. #define DTMF_6 0x06
  262. #define DTMF_7 0x07
  263. #define DTMF_8 0x08
  264. #define DTMF_9 0x09
  265. #define DTMF_0 0x0A
  266. #define DTMF_star 0x0B
  267. #define DTMF_hash 0x0C
  268. #define DTMF_A 0x0D
  269. #define DTMF_B 0x0E
  270. #define DTMF_C 0x0F
  271. //////////////////////////////////////////
  272. /* AT Command S-Registers */
  273. //////////////////////////////////////////
  274. #define sregmin 0x110
  275. #define numsregs 30
  276. #define SREGADDR(reg,offset) (reg + offset)
  277. static volatile unsigned char bank2 S0 @ SREGADDR(sregmin,0); // Automatic answer
  278. static volatile unsigned char bank2 S1 @ SREGADDR(sregmin,1); // Count incoming rings
  279. static volatile unsigned char bank2 S2 @ SREGADDR(sregmin,2); // Escape Sequence character value
  280. static volatile unsigned char bank2 S3 @ SREGADDR(sregmin,3); // Carriage return character
  281. static volatile unsigned char bank2 S4 @ SREGADDR(sregmin,4); // Line feed character
  282. static volatile unsigned char bank2 S5 @ SREGADDR(sregmin,5); // Backspace character
  283. static volatile unsigned char bank2 S6 @ SREGADDR(sregmin,6); // Wait time for blind dialling
  284. static volatile unsigned char bank2 S7 @ SREGADDR(sregmin,7); // Wait for carrier after dial
  285. static volatile unsigned char bank2 S8 @ SREGADDR(sregmin,8); // Pause Time for Comma Dial Modifier
  286. static volatile unsigned char bank2 S9 @ SREGADDR(sregmin,9); // Carrier Detect Response Time
  287. static volatile unsigned char bank2 S10 @ SREGADDR(sregmin,10); // Lost carrier to hang up delay 
  288. static volatile unsigned char bank2 S11 @ SREGADDR(sregmin,11); // DTMF tone duration
  289. static volatile unsigned char bank2 S12 @ SREGADDR(sregmin,12); // Escape code guard time
  290. static volatile unsigned char bank2 S13 @ SREGADDR(sregmin,13); // Reserved
  291. static volatile unsigned char bank2 S14 @ SREGADDR(sregmin,14); // General bit mapped options
  292. static volatile unsigned char bank2 S15 @ SREGADDR(sregmin,15); // Reserved
  293. static volatile unsigned char bank2 S16 @ SREGADDR(sregmin,16); // Reserved
  294. static volatile unsigned char bank2 S17 @ SREGADDR(sregmin,17); // Reserved
  295. static volatile unsigned char bank2 S18 @ SREGADDR(sregmin,18); // General Purpose Timer (s)
  296. static volatile unsigned char bank2 S19 @ SREGADDR(sregmin,19); // General Purpose Timer (10ms)
  297. static volatile unsigned char bank2 S20 @ SREGADDR(sregmin,20); // Reserved
  298. static volatile unsigned char bank2 S21 @ SREGADDR(sregmin,21); // BERT Setup Register
  299. static volatile unsigned char bank2 S22 @ SREGADDR(sregmin,22); // Bit Mapped Register
  300. static volatile unsigned char bank2 S23 @ SREGADDR(sregmin,23); // Bit Mapped Register
  301. static volatile unsigned char bank2 S24 @ SREGADDR(sregmin,24); // Bit Mapped Register
  302. static volatile unsigned char bank2 S25 @ SREGADDR(sregmin,25); // Bit Mapped Register
  303. static volatile unsigned char bank2 S26 @ SREGADDR(sregmin,26); // Bit Mapped Register
  304. static volatile unsigned char bank2 S27 @ SREGADDR(sregmin,27); // Bit Mapped Register
  305. static volatile unsigned char bank2 S28 @ SREGADDR(sregmin,28); // Reserved
  306. static volatile unsigned char bank2 S29 @ SREGADDR(sregmin,29); // Reserved
  307. //////////////////////////////////////////
  308. /* DF8681 Telephone Number Buffer */
  309. //////////////////////////////////////////
  310. static volatile unsigned char bank2 TELNUM[16] @ 0x130;
  311. #define maxteldigits 16
  312. //////////////////////////////////////////
  313. /* DF8681 Message Buffer */
  314. //////////////////////////////////////////
  315. static volatile unsigned char bank2 MSGBUF[32] @ 0x150;
  316. #define msgbufwrap 31
  317. //////////////////////////////////////////
  318. /* DF8681 Data Buffer */
  319. //////////////////////////////////////////
  320. static volatile unsigned char bank2 DATABUF[16] @ 0x140;
  321. #define databufwrap 15
  322. #define databufpause 8
  323. //////////////////////////////////////////////////
  324. /*  AT Command S-Register Bits */
  325. //////////////////////////////////////////////////
  326. /* S14 Register */
  327. static volatile bank2 bit ECHO @ BITDEF(S14,1); // Echo Command Characters (0=Disabled, 1=Enabled)
  328. static volatile bank2 bit RESOFF @ BITDEF(S14,2); // Result Code Display (0=Send, 1=Do Not Send)
  329. static volatile bank2 bit WORDRES @ BITDEF(S14,3); // Word or Number Responses (0=Number, 1=Word)
  330. static volatile bank2 bit HEXOP @ BITDEF(S14,4); // Decimal or Hex Responses (0=Decimal, 1=Hex)
  331. static volatile bank2 bit ANSORIG @ BITDEF(S14,7); // Answer/Originate Operation (0=Answer, 1= Originate)
  332. /* S21 Register */
  333. static volatile bank2 bit BERTEND @ BITDEF(S21,0); // BERT End (0=Rx End, 1=Tx End)
  334. static volatile bank2 bit BERTBAND @ BITDEF(S21,1); // BERT Operating Band (0=Low Band, 1=High Band)
  335. /* S24 Register */
  336. static volatile bank2 bit USER_XTAL @ BITDEF(S24,0); // User Xtal setting (0=12.2880MHz, 1=11.0592MHz)
  337. static volatile bank2 bit USER_FIX_EQU @ BITDEF(S24,1); // User Fixed Equaliser setting (0=Enabled, 1=Disabled)
  338. static volatile bank2 bit USER_AUTO_EQU @ BITDEF(S24,2); // User Auto Equaliser setting (0=Disabled, 1=Enabled)
  339. // Required Auto Equaliser setting is ignored during V22bis 
  340. //////////////////////////////////////////////////
  341. /*  S Register Definitions */
  342. //////////////////////////////////////////////////
  343. #define PROTB0 0b00000000 // Bits 4,5,6 and 7 contain info all other bits masked
  344. #define PROTB1 0b00010000
  345. #define PROTB2 0b00100000
  346. #define PROTB3 0b00110000
  347. #define PROTB4 0b01000000
  348. #define PROTB5 0b01010000
  349. #define PROTB6 0b01100000
  350. #define PROTB7 0b01110000
  351. #define PROTB8 0b10000000
  352. #define PROTB9 0b10010000
  353. #define X0CALLING 0b00000000 // Bits 5,6 and 7 contain info all other bits masked
  354. #define X1CALLING 0b10000000
  355. #define X2CALLING 0b10100000
  356. #define X3CALLING 0b11000000
  357. #define X4CALLING 0b11100000
  358. #define NOGUARD 0b00000000 // Bits 6 and 7 contain info all other bits masked
  359. #define GUARD550 0b11000000
  360. #define GUARD1800 0b10000000
  361. //////////////////////////////////////////////////
  362. /*  General Definitions */
  363. //////////////////////////////////////////////////
  364. #define TRUE 1
  365. #define FALSE 0
  366. #define ON 1
  367. #define OFF 0
  368. #define NUL 0
  369. #define OK 0
  370. #define CONNECT 1
  371. #define RING 2
  372. #define NOCARRIER 3
  373. #define ERROR 4
  374. #define NODIALTONE 5
  375. #define BUSY 6
  376. #define CON2400 7
  377. #define CON1200 8
  378. #define CON600 9
  379. #define CON300 10
  380. #define CON120075 11
  381. #define CON751200 12
  382. #define CON1200150 13
  383. #define CON1501200 14
  384. #define NYI 15
  385. #define NORESULT 16
  386. #define idmsg 0
  387. #define prodmsg 1
  388. #define cmlukmsg 2
  389. #define cmlsgmsg 3
  390. #define mxcommsg 4
  391. #define cmlukemmsg 5
  392. #define cmlsgemmsg 6
  393. #define mxcomemmsg 7
  394. #define cmluktelmsg 8
  395. #define cmlukwwwmsg 9
  396. #define dutrevmsg 10