Files

546 lines
35 KiB
Plaintext

1 ;--------------------------------------------------------
2 ; File Created by SDCC : free open source ANSI-C Compiler
3 ; Version 4.2.0 #13081 (Linux)
4 ;--------------------------------------------------------
5 .module model
6 .optsdcc -mmcs51 --model-small
7
8 ;--------------------------------------------------------
9 ; Public variables in this module
10 ;--------------------------------------------------------
11 .globl ___memcpy
12 .globl _nrf24_set_address
13 .globl _nrf24_set_channel
14 .globl _eeprom_write
15 .globl _eeprom_read
16 .globl _eeprom_init
17 .globl _EADC
18 .globl _ET1
19 .globl _ET0
20 .globl _ES
21 .globl _EA
22 .globl _REN
23 .globl _RI
24 .globl _TI
25 .globl _TR1
26 .globl _TF1
27 .globl _IT0
28 .globl _IE0
29 .globl _TR0
30 .globl _TF0
31 .globl _CMPCR2
32 .globl _CMPCR1
33 .globl _TA
34 .globl _IRCBAND_REG
35 .globl _IAP_TPS
36 .globl _IAP_CONTR
37 .globl _IAP_TRIG
38 .globl _IAP_CMD
39 .globl _IAP_ADDRL
40 .globl _IAP_ADDRH
41 .globl _IAP_DATA
42 .globl _WDT_CONTR
43 .globl _PCA_PWM3
44 .globl _PCA_PWM2
45 .globl _PCA_PWM1
46 .globl _PCA_PWM0
47 .globl _CCAP3L
48 .globl _CCAP2L
49 .globl _CCAP1L
50 .globl _CCAP0L
51 .globl _CCAPM3
52 .globl _CCAPM2
53 .globl _CCAPM1
54 .globl _CCAPM0
55 .globl _CMOD
56 .globl _CCON
57 .globl _ADCTIM_X
58 .globl _ADCCFG
59 .globl _ADC_RESL
60 .globl _ADC_RES
61 .globl _ADC_CONTR
62 .globl _SPDAT
63 .globl _SPCTL
64 .globl _SPSTAT
65 .globl _IP2H
66 .globl _IP2
67 .globl _IP
68 .globl _IE2
69 .globl _IE
70 .globl _BRT
71 .globl _P_SW1
72 .globl _SADEN
73 .globl _SADDR
74 .globl _S2BUF
75 .globl _S2CON
76 .globl _SBUF
77 .globl _SCON
78 .globl _TM4PS_X
79 .globl _TM3PS_X
80 .globl _TM2PS_X
81 .globl _T4T3M
82 .globl _T4L
83 .globl _T4H
84 .globl _T3L
85 .globl _T3H
86 .globl _T2L
87 .globl _T2H
88 .globl _INTCLKO
89 .globl _AUXR
90 .globl _TH1
91 .globl _TH0
92 .globl _TL1
93 .globl _TL0
94 .globl _TMOD
95 .globl _TCON
96 .globl _P_SW2
97 .globl _P5M0
98 .globl _P5M1
99 .globl _P4M0
100 .globl _P4M1
101 .globl _P3M0
102 .globl _P3M1
103 .globl _P2M0
104 .globl _P2M1
105 .globl _P1M0
106 .globl _P1M1
107 .globl _P0M0
108 .globl _P0M1
109 .globl _PSW
110 .globl _B
111 .globl _ACC
112 .globl _PCON
113 .globl _DPH
114 .globl _DPL
115 .globl _SP
116 .globl _P5
117 .globl _P4
118 .globl _P3
119 .globl _P2
120 .globl _P1
121 .globl _P0
122 .globl _model_init
123 .globl _model_get_mode
124 .globl _model_get_channel
125 .globl _model_get_address
126 .globl _model_set_mode
127 .globl _model_set_address
128 .globl _model_set_channel
129 .globl _model_apply
130 ;--------------------------------------------------------
131 ; special function registers
132 ;--------------------------------------------------------
133 .area RSEG (ABS,DATA)
000000 134 .org 0x0000
000080 135 _P0 = 0x0080
000090 136 _P1 = 0x0090
0000A0 137 _P2 = 0x00a0
0000B0 138 _P3 = 0x00b0
0000C0 139 _P4 = 0x00c0
0000C8 140 _P5 = 0x00c8
000081 141 _SP = 0x0081
000082 142 _DPL = 0x0082
000083 143 _DPH = 0x0083
000087 144 _PCON = 0x0087
0000E0 145 _ACC = 0x00e0
0000F0 146 _B = 0x00f0
0000D0 147 _PSW = 0x00d0
000093 148 _P0M1 = 0x0093
000094 149 _P0M0 = 0x0094
000091 150 _P1M1 = 0x0091
000092 151 _P1M0 = 0x0092
000095 152 _P2M1 = 0x0095
000096 153 _P2M0 = 0x0096
0000B1 154 _P3M1 = 0x00b1
0000B2 155 _P3M0 = 0x00b2
0000B3 156 _P4M1 = 0x00b3
0000B4 157 _P4M0 = 0x00b4
0000C9 158 _P5M1 = 0x00c9
0000CA 159 _P5M0 = 0x00ca
0000BA 160 _P_SW2 = 0x00ba
000088 161 _TCON = 0x0088
000089 162 _TMOD = 0x0089
00008A 163 _TL0 = 0x008a
00008B 164 _TL1 = 0x008b
00008C 165 _TH0 = 0x008c
00008D 166 _TH1 = 0x008d
00008E 167 _AUXR = 0x008e
00008F 168 _INTCLKO = 0x008f
0000D6 169 _T2H = 0x00d6
0000D7 170 _T2L = 0x00d7
0000D4 171 _T3H = 0x00d4
0000D5 172 _T3L = 0x00d5
0000D2 173 _T4H = 0x00d2
0000D3 174 _T4L = 0x00d3
0000D1 175 _T4T3M = 0x00d1
00FEA1 176 _TM2PS_X = 0xfea1
00FEA2 177 _TM3PS_X = 0xfea2
00FEA3 178 _TM4PS_X = 0xfea3
000098 179 _SCON = 0x0098
000099 180 _SBUF = 0x0099
00009A 181 _S2CON = 0x009a
00009B 182 _S2BUF = 0x009b
0000A9 183 _SADDR = 0x00a9
0000B9 184 _SADEN = 0x00b9
0000A2 185 _P_SW1 = 0x00a2
00009C 186 _BRT = 0x009c
0000A8 187 _IE = 0x00a8
0000AF 188 _IE2 = 0x00af
0000B8 189 _IP = 0x00b8
0000B6 190 _IP2 = 0x00b6
0000B7 191 _IP2H = 0x00b7
0000CD 192 _SPSTAT = 0x00cd
0000CE 193 _SPCTL = 0x00ce
0000CF 194 _SPDAT = 0x00cf
0000BC 195 _ADC_CONTR = 0x00bc
0000BD 196 _ADC_RES = 0x00bd
0000BE 197 _ADC_RESL = 0x00be
0000DE 198 _ADCCFG = 0x00de
00FEA8 199 _ADCTIM_X = 0xfea8
0000D8 200 _CCON = 0x00d8
0000D9 201 _CMOD = 0x00d9
0000DA 202 _CCAPM0 = 0x00da
0000DB 203 _CCAPM1 = 0x00db
0000DC 204 _CCAPM2 = 0x00dc
0000DD 205 _CCAPM3 = 0x00dd
0000EA 206 _CCAP0L = 0x00ea
0000EB 207 _CCAP1L = 0x00eb
0000EC 208 _CCAP2L = 0x00ec
0000ED 209 _CCAP3L = 0x00ed
0000F2 210 _PCA_PWM0 = 0x00f2
0000F3 211 _PCA_PWM1 = 0x00f3
0000F4 212 _PCA_PWM2 = 0x00f4
0000F5 213 _PCA_PWM3 = 0x00f5
0000C1 214 _WDT_CONTR = 0x00c1
0000C2 215 _IAP_DATA = 0x00c2
0000C3 216 _IAP_ADDRH = 0x00c3
0000C4 217 _IAP_ADDRL = 0x00c4
0000C5 218 _IAP_CMD = 0x00c5
0000C6 219 _IAP_TRIG = 0x00c6
0000C7 220 _IAP_CONTR = 0x00c7
0000F7 221 _IAP_TPS = 0x00f7
00009D 222 _IRCBAND_REG = 0x009d
0000AE 223 _TA = 0x00ae
0000E6 224 _CMPCR1 = 0x00e6
0000E7 225 _CMPCR2 = 0x00e7
226 ;--------------------------------------------------------
227 ; special function bits
228 ;--------------------------------------------------------
229 .area RSEG (ABS,DATA)
000000 230 .org 0x0000
00008D 231 _TF0 = 0x008d
00008C 232 _TR0 = 0x008c
000089 233 _IE0 = 0x0089
000088 234 _IT0 = 0x0088
00008F 235 _TF1 = 0x008f
00008E 236 _TR1 = 0x008e
000099 237 _TI = 0x0099
000098 238 _RI = 0x0098
00009C 239 _REN = 0x009c
0000AF 240 _EA = 0x00af
0000AC 241 _ES = 0x00ac
0000A9 242 _ET0 = 0x00a9
0000AB 243 _ET1 = 0x00ab
0000AD 244 _EADC = 0x00ad
245 ;--------------------------------------------------------
246 ; overlayable register banks
247 ;--------------------------------------------------------
248 .area REG_BANK_0 (REL,OVR,DATA)
000000 249 .ds 8
250 ;--------------------------------------------------------
251 ; internal ram data
252 ;--------------------------------------------------------
253 .area DSEG (DATA)
000000 254 _s_mode:
000000 255 .ds 1
000001 256 _s_channel:
000001 257 .ds 1
000002 258 _s_address:
000002 259 .ds 5
000007 260 _model_init_m_131072_48:
000007 261 .ds 1
000008 262 _model_init_ch_131072_48:
000008 263 .ds 1
000009 264 _model_init_addr_131072_48:
000009 265 .ds 5
266 ;--------------------------------------------------------
267 ; overlayable items in internal ram
268 ;--------------------------------------------------------
269 ;--------------------------------------------------------
270 ; indirectly addressable internal ram data
271 ;--------------------------------------------------------
272 .area ISEG (DATA)
273 ;--------------------------------------------------------
274 ; absolute internal ram data
275 ;--------------------------------------------------------
276 .area IABS (ABS,DATA)
277 .area IABS (ABS,DATA)
278 ;--------------------------------------------------------
279 ; bit data
280 ;--------------------------------------------------------
281 .area BSEG (BIT)
282 ;--------------------------------------------------------
283 ; paged external ram data
284 ;--------------------------------------------------------
285 .area PSEG (PAG,XDATA)
286 ;--------------------------------------------------------
287 ; external ram data
288 ;--------------------------------------------------------
289 .area XSEG (XDATA)
290 ;--------------------------------------------------------
291 ; absolute external ram data
292 ;--------------------------------------------------------
293 .area XABS (ABS,XDATA)
294 ;--------------------------------------------------------
295 ; external initialized ram data
296 ;--------------------------------------------------------
297 .area XISEG (XDATA)
298 .area HOME (CODE)
299 .area GSINIT0 (CODE)
300 .area GSINIT1 (CODE)
301 .area GSINIT2 (CODE)
302 .area GSINIT3 (CODE)
303 .area GSINIT4 (CODE)
304 .area GSINIT5 (CODE)
305 .area GSINIT (CODE)
306 .area GSFINAL (CODE)
307 .area CSEG (CODE)
308 ;--------------------------------------------------------
309 ; global & static initialisations
310 ;--------------------------------------------------------
311 .area HOME (CODE)
312 .area GSINIT (CODE)
313 .area GSFINAL (CODE)
314 .area GSINIT (CODE)
315 ; src/model.c:11: static uint8_t s_mode = MODE_SBUS;
000000 75*00 00 [24] 316 mov _s_mode,#0x00
317 ; src/model.c:12: static uint8_t s_channel = DEFAULT_RF_CH;
000003 75*01 4C [24] 318 mov _s_channel,#0x4c
319 ; src/model.c:13: static uint8_t s_address[5] = { 0xE7, 0xE7, 0xE7, 0xE7, 0xC2 };
000006 75*02 E7 [24] 320 mov _s_address,#0xe7
000009 75*03 E7 [24] 321 mov (_s_address + 0x0001),#0xe7
00000C 75*04 E7 [24] 322 mov (_s_address + 0x0002),#0xe7
00000F 75*05 E7 [24] 323 mov (_s_address + 0x0003),#0xe7
000012 75*06 C2 [24] 324 mov (_s_address + 0x0004),#0xc2
325 ;--------------------------------------------------------
326 ; Home
327 ;--------------------------------------------------------
328 .area HOME (CODE)
329 .area HOME (CODE)
330 ;--------------------------------------------------------
331 ; code
332 ;--------------------------------------------------------
333 .area CSEG (CODE)
334 ;------------------------------------------------------------
335 ;Allocation info for local variables in function 'model_init'
336 ;------------------------------------------------------------
337 ;m Allocated with name '_model_init_m_131072_48'
338 ;ch Allocated with name '_model_init_ch_131072_48'
339 ;addr Allocated with name '_model_init_addr_131072_48'
340 ;------------------------------------------------------------
341 ; src/model.c:15: void model_init(void)
342 ; -----------------------------------------
343 ; function model_init
344 ; -----------------------------------------
000000 345 _model_init:
000007 346 ar7 = 0x07
000006 347 ar6 = 0x06
000005 348 ar5 = 0x05
000004 349 ar4 = 0x04
000003 350 ar3 = 0x03
000002 351 ar2 = 0x02
000001 352 ar1 = 0x01
000000 353 ar0 = 0x00
354 ; src/model.c:17: if (eeprom_init() == EEPROM_OK) {
000000 12r00r00 [24] 355 lcall _eeprom_init
000003 E5 82 [12] 356 mov a,dpl
357 ; src/model.c:19: if (eeprom_read(&m, &ch, addr) == EEPROM_OK) {
000005 70 3D [24] 358 jnz 00104$
000007 75*00r08 [24] 359 mov _eeprom_read_PARM_2,#_model_init_ch_131072_48
00000A F5*01 [12] 360 mov (_eeprom_read_PARM_2 + 1),a
00000C 75*02 40 [24] 361 mov (_eeprom_read_PARM_2 + 2),#0x40
00000F 75*00r09 [24] 362 mov _eeprom_read_PARM_3,#_model_init_addr_131072_48
000012 75*01 00 [24] 363 mov (_eeprom_read_PARM_3 + 1),#0x00
000015 75*02 40 [24] 364 mov (_eeprom_read_PARM_3 + 2),#0x40
000018 90r00r07 [24] 365 mov dptr,#_model_init_m_131072_48
00001B 75 F0 40 [24] 366 mov b,#0x40
00001E 12r00r00 [24] 367 lcall _eeprom_read
000021 E5 82 [12] 368 mov a,dpl
369 ; src/model.c:20: s_mode = m;
370 ; src/model.c:21: s_channel = ch;
371 ; src/model.c:22: memcpy(s_address, addr, 5);
000023 70 31 [24] 372 jnz 00105$
000025 85*07*00 [24] 373 mov _s_mode,_model_init_m_131072_48
000028 85*08*01 [24] 374 mov _s_channel,_model_init_ch_131072_48
00002B 75*00r09 [24] 375 mov ___memcpy_PARM_2,#_model_init_addr_131072_48
00002E F5*01 [12] 376 mov (___memcpy_PARM_2 + 1),a
000030 75*02 40 [24] 377 mov (___memcpy_PARM_2 + 2),#0x40
000033 75*00 05 [24] 378 mov ___memcpy_PARM_3,#0x05
000036 75*01 00 [24] 379 mov (___memcpy_PARM_3 + 1),#0x00
000039 90r00r02 [24] 380 mov dptr,#_s_address
00003C 75 F0 40 [24] 381 mov b,#0x40
00003F 12r00r00 [24] 382 lcall ___memcpy
000042 80 12 [24] 383 sjmp 00105$
000044 384 00104$:
385 ; src/model.c:26: eeprom_write(MODE_SBUS, DEFAULT_RF_CH, DEFAULT_ADDR);
000044 75*00r00 [24] 386 mov _eeprom_write_PARM_3,#_DEFAULT_ADDR
000047 75*01s00 [24] 387 mov (_eeprom_write_PARM_3 + 1),#(_DEFAULT_ADDR >> 8)
00004A 75*02 80 [24] 388 mov (_eeprom_write_PARM_3 + 2),#0x80
00004D 75*00 4C [24] 389 mov _eeprom_write_PARM_2,#0x4c
000050 75 82 00 [24] 390 mov dpl,#0x00
000053 12r00r00 [24] 391 lcall _eeprom_write
000056 392 00105$:
393 ; src/model.c:28: model_apply();
394 ; src/model.c:29: }
000056 02r00rDF [24] 395 ljmp _model_apply
396 ;------------------------------------------------------------
397 ;Allocation info for local variables in function 'model_get_mode'
398 ;------------------------------------------------------------
399 ; src/model.c:31: uint8_t model_get_mode(void) { return s_mode; }
400 ; -----------------------------------------
401 ; function model_get_mode
402 ; -----------------------------------------
000059 403 _model_get_mode:
000059 85*00 82 [24] 404 mov dpl,_s_mode
00005C 22 [24] 405 ret
406 ;------------------------------------------------------------
407 ;Allocation info for local variables in function 'model_get_channel'
408 ;------------------------------------------------------------
409 ; src/model.c:32: uint8_t model_get_channel(void) { return s_channel; }
410 ; -----------------------------------------
411 ; function model_get_channel
412 ; -----------------------------------------
00005D 413 _model_get_channel:
00005D 85*01 82 [24] 414 mov dpl,_s_channel
000060 22 [24] 415 ret
416 ;------------------------------------------------------------
417 ;Allocation info for local variables in function 'model_get_address'
418 ;------------------------------------------------------------
419 ; src/model.c:33: const uint8_t *model_get_address(void) { return s_address; }
420 ; -----------------------------------------
421 ; function model_get_address
422 ; -----------------------------------------
000061 423 _model_get_address:
000061 90r00r02 [24] 424 mov dptr,#_s_address
000064 75 F0 40 [24] 425 mov b,#0x40
000067 22 [24] 426 ret
427 ;------------------------------------------------------------
428 ;Allocation info for local variables in function 'model_set_mode'
429 ;------------------------------------------------------------
430 ;mode Allocated to registers r7
431 ;------------------------------------------------------------
432 ; src/model.c:35: void model_set_mode(uint8_t mode)
433 ; -----------------------------------------
434 ; function model_set_mode
435 ; -----------------------------------------
000068 436 _model_set_mode:
437 ; src/model.c:37: if (mode > MODE_UART) return;
000068 E5 82 [12] 438 mov a,dpl
00006A FF [12] 439 mov r7,a
00006B 24 FD [12] 440 add a,#0xff - 0x02
00006D 50 01 [24] 441 jnc 00102$
00006F 22 [24] 442 ret
000070 443 00102$:
444 ; src/model.c:38: s_mode = mode;
000070 8F*00 [24] 445 mov _s_mode,r7
446 ; src/model.c:39: eeprom_write(s_mode, s_channel, s_address);
000072 75*00r02 [24] 447 mov _eeprom_write_PARM_3,#_s_address
000075 75*01 00 [24] 448 mov (_eeprom_write_PARM_3 + 1),#0x00
000078 75*02 40 [24] 449 mov (_eeprom_write_PARM_3 + 2),#0x40
00007B 85*01*00 [24] 450 mov _eeprom_write_PARM_2,_s_channel
00007E 85*00 82 [24] 451 mov dpl,_s_mode
452 ; src/model.c:40: }
000081 02r00r00 [24] 453 ljmp _eeprom_write
454 ;------------------------------------------------------------
455 ;Allocation info for local variables in function 'model_set_address'
456 ;------------------------------------------------------------
457 ;addr Allocated to registers r5 r6 r7
458 ;------------------------------------------------------------
459 ; src/model.c:42: void model_set_address(const uint8_t *addr)
460 ; -----------------------------------------
461 ; function model_set_address
462 ; -----------------------------------------
000084 463 _model_set_address:
000084 AD 82 [24] 464 mov r5,dpl
000086 AE 83 [24] 465 mov r6,dph
000088 AF F0 [24] 466 mov r7,b
467 ; src/model.c:44: memcpy(s_address, addr, 5);
00008A 8D*00 [24] 468 mov ___memcpy_PARM_2,r5
00008C 8E*01 [24] 469 mov (___memcpy_PARM_2 + 1),r6
00008E 8F*02 [24] 470 mov (___memcpy_PARM_2 + 2),r7
000090 75*00 05 [24] 471 mov ___memcpy_PARM_3,#0x05
000093 75*01 00 [24] 472 mov (___memcpy_PARM_3 + 1),#0x00
000096 90r00r02 [24] 473 mov dptr,#_s_address
000099 75 F0 40 [24] 474 mov b,#0x40
00009C 12r00r00 [24] 475 lcall ___memcpy
476 ; src/model.c:45: eeprom_write(s_mode, s_channel, s_address);
00009F 75*00r02 [24] 477 mov _eeprom_write_PARM_3,#_s_address
0000A2 75*01 00 [24] 478 mov (_eeprom_write_PARM_3 + 1),#0x00
0000A5 75*02 40 [24] 479 mov (_eeprom_write_PARM_3 + 2),#0x40
0000A8 85*01*00 [24] 480 mov _eeprom_write_PARM_2,_s_channel
0000AB 85*00 82 [24] 481 mov dpl,_s_mode
0000AE 12r00r00 [24] 482 lcall _eeprom_write
483 ; src/model.c:46: nrf24_set_address(s_address);
0000B1 90r00r02 [24] 484 mov dptr,#_s_address
0000B4 75 F0 40 [24] 485 mov b,#0x40
486 ; src/model.c:47: }
0000B7 02r00r00 [24] 487 ljmp _nrf24_set_address
488 ;------------------------------------------------------------
489 ;Allocation info for local variables in function 'model_set_channel'
490 ;------------------------------------------------------------
491 ;ch Allocated to registers r7
492 ;------------------------------------------------------------
493 ; src/model.c:49: void model_set_channel(uint8_t ch)
494 ; -----------------------------------------
495 ; function model_set_channel
496 ; -----------------------------------------
0000BA 497 _model_set_channel:
498 ; src/model.c:51: if (ch > 125) return;
0000BA E5 82 [12] 499 mov a,dpl
0000BC FF [12] 500 mov r7,a
0000BD 24 82 [12] 501 add a,#0xff - 0x7d
0000BF 50 01 [24] 502 jnc 00102$
0000C1 22 [24] 503 ret
0000C2 504 00102$:
505 ; src/model.c:52: s_channel = ch;
0000C2 8F*01 [24] 506 mov _s_channel,r7
507 ; src/model.c:53: eeprom_write(s_mode, s_channel, s_address);
0000C4 75*00r02 [24] 508 mov _eeprom_write_PARM_3,#_s_address
0000C7 75*01 00 [24] 509 mov (_eeprom_write_PARM_3 + 1),#0x00
0000CA 75*02 40 [24] 510 mov (_eeprom_write_PARM_3 + 2),#0x40
0000CD 85*01*00 [24] 511 mov _eeprom_write_PARM_2,_s_channel
0000D0 85*00 82 [24] 512 mov dpl,_s_mode
0000D3 C0 07 [24] 513 push ar7
0000D5 12r00r00 [24] 514 lcall _eeprom_write
0000D8 D0 07 [24] 515 pop ar7
516 ; src/model.c:54: nrf24_set_channel(ch);
0000DA 8F 82 [24] 517 mov dpl,r7
518 ; src/model.c:55: }
0000DC 02r00r00 [24] 519 ljmp _nrf24_set_channel
520 ;------------------------------------------------------------
521 ;Allocation info for local variables in function 'model_apply'
522 ;------------------------------------------------------------
523 ; src/model.c:57: void model_apply(void)
524 ; -----------------------------------------
525 ; function model_apply
526 ; -----------------------------------------
0000DF 527 _model_apply:
528 ; src/model.c:59: nrf24_set_address(s_address);
0000DF 90r00r02 [24] 529 mov dptr,#_s_address
0000E2 75 F0 40 [24] 530 mov b,#0x40
0000E5 12r00r00 [24] 531 lcall _nrf24_set_address
532 ; src/model.c:60: nrf24_set_channel(s_channel);
0000E8 85*01 82 [24] 533 mov dpl,_s_channel
534 ; src/model.c:61: }
0000EB 02r00r00 [24] 535 ljmp _nrf24_set_channel
536 .area CSEG (CODE)
537 .area CONST (CODE)
000000 538 _DEFAULT_ADDR:
000000 E7 539 .db #0xe7 ; 231
000001 E7 540 .db #0xe7 ; 231
000002 E7 541 .db #0xe7 ; 231
000003 E7 542 .db #0xe7 ; 231
000004 C2 543 .db #0xc2 ; 194
544 .area XINIT (CODE)
545 .area CABS (ABS,CODE)