ef8681.h
上传用户:lilishw
上传日期:2021-05-28
资源大小:1542k
文件大小:19k
源码类别:

Modem编程

开发平台:

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