1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 2047
3      0000 :           org     0
4               
5                       ; Define start addresses for data regions
6    00000070 = shared___globals equ 112
7    00000020 = globals___0 equ 32
8    000000a0 = globals___1 equ 160
9    00000120 = globals___2 equ 288
10   00000000 = __indf equ 0
11   00000002 = __pcl equ 2
12   00000003 = __status equ 3
13   00000004 = __fsr equ 4
14   00000003 = __c___byte equ 3
15   00000000 = __c___bit equ 0
16   00000003 = __z___byte equ 3
17   00000002 = __z___bit equ 2
18   00000003 = __rp0___byte equ 3
19   00000005 = __rp0___bit equ 5
20   00000003 = __rp1___byte equ 3
21   00000006 = __rp1___bit equ 6
22   00000003 = __irp___byte equ 3
23   00000007 = __irp___bit equ 7
24   0000000a = __pclath equ 10
25   0000000a = __cb0___byte equ 10
26   00000003 = __cb0___bit equ 3
27   0000000a = __cb1___byte equ 10
28   00000004 = __cb1___bit equ 4
29              
30                      ; # Copyright (c) 2005-2006 by Wayne C. Gramlich
31                      ; # All rights reserved.
32              
33                      ; buffer = 'bus'
34                      ; line_number = 6
35                      ; library _pic16f688 entered
36              
37                      ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
38                      ; # All rights reserved.
39              
40                      ; buffer = '_pic16f688'
41                      ; line_number = 6
42                      ; processor pic16f688
43                      ; line_number = 7
44                      ; configure_address 0x2007
45                      ; line_number = 8
46                      ;  configure_fill 0x3000
47                      ; line_number = 9
48                      ;  configure_option fcmen: on = 0x800
49                      ; line_number = 10
50                      ;  configure_option fcmen: off = 0x000
51                      ; line_number = 11
52                      ;  configure_option ieso: on = 0x400
53                      ; line_number = 12
54                      ;  configure_option ieso: off = 0x000
55                      ; line_number = 13
56                      ;  configure_option boden: on = 0x300
57                      ; line_number = 14
58                      ;  configure_option boden: partial = 0x200
59                      ; line_number = 15
60                      ;  configure_option boden: sboden = 0x100
61                      ; line_number = 16
62                      ;  configure_option boden: off = 0x000
63                      ; line_number = 17
64                      ;  configure_option cpd: on = 0x00
65                      ; line_number = 18
66                      ;  configure_option cpd: off = 0x80
67                      ; line_number = 19
68                      ;  configure_option cp: on = 0x00
69                      ; line_number = 20
70                      ;  configure_option cp: off = 0x40
71                      ; line_number = 21
72                      ;  configure_option mclre: on = 0x20
73                      ; line_number = 22
74                      ;  configure_option mclre: off = 0x00
75                      ; line_number = 23
76                      ;  configure_option pwrte: on = 0x00
77                      ; line_number = 24
78                      ;  configure_option pwrte: off = 0x10
79                      ; line_number = 25
80                      ;  configure_option wdte: on = 8
81                      ; line_number = 26
82                      ;  configure_option wdte: off = 0
83                      ; line_number = 27
84                      ;  configure_option fosc: rc_clk = 7
85                      ; line_number = 28
86                      ;  configure_option fosc: rc_no_clk = 6
87                      ; line_number = 29
88                      ;  configure_option fosc: int_clk = 5
89                      ; line_number = 30
90                      ;  configure_option fosc: int_no_clk = 4
91                      ; line_number = 31
92                      ;  configure_option fosc: ec = 3
93                      ; line_number = 32
94                      ;  configure_option fosc: hs = 2
95                      ; line_number = 33
96                      ;  configure_option fosc: xt = 1
97                      ; line_number = 34
98                      ;  configure_option fosc: lp = 0
99              
100                     ; line_number = 36
101                     ;  code_bank 0x0 : 0x7ff
102                     ; line_number = 37
103                     ;  code_bank 0x800 : 0xfff
104                     ; line_number = 38
105                     ;  data_bank 0x0 : 0x7f
106                     ; line_number = 39
107                     ;  data_bank 0x80 : 0xff
108                     ; line_number = 40
109                     ;  data_bank 0x100 : 0x17f
110                     ; line_number = 41
111                     ;  data_bank 0x180 : 0x1ff
112             
113                     ; line_number = 43
114                     ;  global_region 0x20 : 0x6f
115                     ; line_number = 44
116                     ;  icd2_global_region 0x20 : 0x6f
117             
118                     ; line_number = 46
119                     ;  global_region 0xa0 : 0xef
120                     ; line_number = 47
121                     ;  icd2_global_region 0xa0 : 0xef
122             
123                     ; line_number = 49
124                     ;  global_region 0x120 : 0x16f
125                     ; line_number = 50
126                     ;  icd2_global_region 0x120 : 0x164
127             
128                     ; line_number = 52
129                     ;  shared_region 0x70 : 0x7f
130                     ; line_number = 53
131                     ;  icd2_shared_region 0x71 : 0x7f
132             
133                     ; line_number = 55
134                     ;  interrupts_possible
135                     ; line_number = 56
136                     ;  packages pdip=14, soic=14, tssop=14
137                     ; line_number = 57
138                     ;  pin vdd, power_supply
139                     ; line_number = 58
140                     ; pin_bindings pdip=1, soic=1, tssop=1
141                     ; line_number = 59
142                     ; pin ra5_in, ra5_nc, ra5_out, t1cki, osc1, clkin
143                     ; line_number = 60
144                     ; pin_bindings pdip=2, soic=2, tssop=2
145                     ; line_number = 61
146                     ;  bind_to _porta@5
147                     ; line_number = 62
148                     ;  or_if ra5_in _trisa 32
149                     ; line_number = 63
150                     ;  or_if ra5_nc _trisa 32
151                     ; line_number = 64
152                     ;  or_if ra5_out _trisa 0
153                     ; line_number = 65
154                     ;  or_if osc1 _trisa 32
155                     ; line_number = 66
156                     ; pin ra4_in, ra4_nc, ra4_out, t1g, osc2, an3, clkout
157                     ; line_number = 67
158                     ; pin_bindings pdip=3, soic=3, tssop=3
159                     ; line_number = 68
160                     ;  bind_to _porta@4
161                     ; line_number = 69
162                     ;  or_if ra4_in _trisa 16
163                     ; line_number = 70
164                     ;  or_if ra4_nc _trisa 16
165                     ; line_number = 71
166                     ;  or_if ra4_out _trisa 0
167                     ; line_number = 72
168                     ;  or_if an3 _trisa 16
169                     ; line_number = 73
170                     ;  or_if osc2 _trisa 16
171                     ; line_number = 74
172                     ;  or_if ra4_in _ansel 0
173                     ; line_number = 75
174                     ;  or_if ra4_out _ansel 0
175                     ; line_number = 76
176                     ;  or_if an3 _ansel 8
177                     ; line_number = 77
178                     ;  or_if ra4_in _adcon0 0
179                     ; line_number = 78
180                     ;  or_if ra4_out _adcon0 0
181                     ; line_number = 79
182                     ;  or_if an3 _adcon0 1
183                     ; line_number = 80
184                     ; pin ra3_in, ra3_nc, mclr, vpp
185                     ; line_number = 81
186                     ; pin_bindings pdip=4, soic=4, tssop=4
187                     ; line_number = 82
188                     ;  bind_to _porta@3
189                     ; line_number = 83
190                     ;  or_if ra3_in _trisa 8
191                     ; line_number = 84
192                     ;  or_if ra3_nc _trisa 8
193                     ; line_number = 85
194                     ; pin rc5_in, rc5_nc, rc5_out, rx, dt
195                     ; line_number = 86
196                     ; pin_bindings pdip=5, soic=5, tssop=5
197                     ; line_number = 87
198                     ;  bind_to _portc@5
199                     ; line_number = 88
200                     ;  or_if rc5_in _trisc 32
201                     ; line_number = 89
202                     ;  or_if rc5_nc _trisc 32
203                     ; line_number = 90
204                     ;  or_if rc5_out _trisc 0
205                     ; line_number = 91
206                     ;  or_if rx _trisc 32
207                     ; line_number = 92
208                     ; pin rc4_in, rc4_nc, rc4_out, c2out, tx, ck
209                     ; line_number = 93
210                     ; pin_bindings pdip=6, soic=6, tssop=6
211                     ; line_number = 94
212                     ;  bind_to _portc@4
213                     ; line_number = 95
214                     ;  or_if rc4_in _trisc 16
215                     ; line_number = 96
216                     ;  or_if rc4_nc _trisc 16
217                     ; line_number = 97
218                     ;  or_if rc4_out _trisc 0
219                     ; # The UART documentation says TX must be marked as in input:
220                     ; line_number = 99
221                     ;  or_if tx _trisc 16
222                     ; line_number = 100
223                     ; pin rc3_in, rc3_nc, rc3_out, an7
224                     ; line_number = 101
225                     ; pin_bindings pdip=7, soic=7, tssop=7
226                     ; line_number = 102
227                     ;  bind_to _portc@3
228                     ; line_number = 103
229                     ;  or_if rc3_in _trisc 8
230                     ; line_number = 104
231                     ;  or_if rc3_nc _trisc 8
232                     ; line_number = 105
233                     ;  or_if rc3_out _trisc 0
234                     ; line_number = 106
235                     ;  or_if an7 _trisc 8
236                     ; line_number = 107
237                     ;  or_if rc3_in _ansel 0
238                     ; line_number = 108
239                     ;  or_if rc3_out _ansel 0
240                     ; line_number = 109
241                     ;  or_if an7 _ansel 128
242                     ; line_number = 110
243                     ;  or_if rc3_in _adcon0 0
244                     ; line_number = 111
245                     ;  or_if rc3_out _adcon0 0
246                     ; line_number = 112
247                     ;  or_if an7 _adcon0 1
248                     ; line_number = 113
249                     ; pin rc2_in, rc2_nc, rc2_out, an6
250                     ; line_number = 114
251                     ; pin_bindings pdip=8, soic=8, tssop=8
252                     ; line_number = 115
253                     ;  bind_to _portc@2
254                     ; line_number = 116
255                     ;  or_if rc2_in _trisc 4
256                     ; line_number = 117
257                     ;  or_if rc2_nc _trisc 4
258                     ; line_number = 118
259                     ;  or_if rc2_out _trisc 0
260                     ; line_number = 119
261                     ;  or_if an6 _trisc 4
262                     ; line_number = 120
263                     ;  or_if rc2_in _ansel 0
264                     ; line_number = 121
265                     ;  or_if rc2_out _ansel 0
266                     ; line_number = 122
267                     ;  or_if an6 _ansel 64
268                     ; line_number = 123
269                     ;  or_if rc2_in _adcon0 0
270                     ; line_number = 124
271                     ;  or_if rc2_out _adcon0 0
272                     ; line_number = 125
273                     ;  or_if an6 _adcon0 1
274                     ; line_number = 126
275                     ; pin rc1_in, rc1_nc, rc1_out, an5, c2in_minus
276                     ; line_number = 127
277                     ; pin_bindings pdip=9, soic=9, tssop=9
278                     ; line_number = 128
279                     ;  bind_to _portc@1
280                     ; line_number = 129
281                     ;  or_if rc1_in _trisc 2
282                     ; line_number = 130
283                     ;  or_if rc1_nc _trisc 2
284                     ; line_number = 131
285                     ;  or_if rc1_out _trisc 0
286                     ; line_number = 132
287                     ;  or_if rc1_in _cmcon0 7
288                     ; line_number = 133
289                     ;  or_if rc1_out _cmcon0 7
290                     ; line_number = 134
291                     ;  or_if an5 _trisc 2
292                     ; line_number = 135
293                     ;  or_if rc1_in _ansel 0
294                     ; line_number = 136
295                     ;  or_if rc1_out _ansel 0
296                     ; line_number = 137
297                     ;  or_if an5 _ansel 32
298                     ; line_number = 138
299                     ;  or_if rc1_in _adcon0 0
300                     ; line_number = 139
301                     ;  or_if rc1_out _adcon0 0
302                     ; line_number = 140
303                     ;  or_if an5 _adcon0 1
304                     ; line_number = 141
305                     ; pin rc0_in, rc0_nc, rc0_out, an4, c2in_plus
306                     ; line_number = 142
307                     ; pin_bindings pdip=10, soic=10, tssop=10
308                     ; line_number = 143
309                     ;  bind_to _portc@0
310                     ; line_number = 144
311                     ;  or_if rc0_in _trisc 1
312                     ; line_number = 145
313                     ;  or_if rc0_nc _trisc 1
314                     ; line_number = 146
315                     ;  or_if rc0_out _trisc 0
316                     ; line_number = 147
317                     ;  or_if rc0_in _cmcon0 7
318                     ; line_number = 148
319                     ;  or_if rc0_out _cmcon0 7
320                     ; line_number = 149
321                     ;  or_if an4 _trisc 1
322                     ; line_number = 150
323                     ;  or_if rc0_in _ansel 0
324                     ; line_number = 151
325                     ;  or_if rc0_out _ansel 0
326                     ; line_number = 152
327                     ;  or_if an4 _ansel 16
328                     ; line_number = 153
329                     ;  or_if rc0_in _adcon0 0
330                     ; line_number = 154
331                     ;  or_if rc0_out _adcon0 0
332                     ; line_number = 155
333                     ;  or_if an4 _adcon0 1
334                     ; line_number = 156
335                     ; pin ra2_in, ra2_nc, ra2_out, an2, c1out, t0cki, int
336                     ; line_number = 157
337                     ; pin_bindings pdip=11, soic=11, tssop=11
338                     ; line_number = 158
339                     ;  bind_to _porta@2
340                     ; line_number = 159
341                     ;  or_if ra2_in _trisa 4
342                     ; line_number = 160
343                     ;  or_if ra2_nc _trisa 4
344                     ; line_number = 161
345                     ;  or_if ra2_out _trisa 0
346                     ; line_number = 162
347                     ;  or_if an2 _trisa 4
348                     ; line_number = 163
349                     ;  or_if ra2_in _ansel 0
350                     ; line_number = 164
351                     ;  or_if ra2_out _ansel 0
352                     ; line_number = 165
353                     ;  or_if an2 _ansel 4
354                     ; line_number = 166
355                     ;  or_if ra2_in _adcon0 0
356                     ; line_number = 167
357                     ;  or_if ra2_out _adcon0 0
358                     ; line_number = 168
359                     ;  or_if an2 _adcon0 1
360                     ; line_number = 169
361                     ; pin ra1_in, ra1_nc, ra1_out, an1, c1in_minus, vref, icspclk
362                     ; line_number = 170
363                     ; pin_bindings pdip=12, soic=12, tssop=12
364                     ; line_number = 171
365                     ;  bind_to _porta@1
366                     ; line_number = 172
367                     ;  or_if ra1_in _trisa 2
368                     ; line_number = 173
369                     ;  or_if ra1_nc _trisa 2
370                     ; line_number = 174
371                     ;  or_if ra1_out _trisa 0
372                     ; line_number = 175
373                     ;  or_if ra1_in _cmcon0 7
374                     ; line_number = 176
375                     ;  or_if ra1_out _cmcon0 7
376                     ; line_number = 177
377                     ;  or_if an1 _trisa 2
378                     ; line_number = 178
379                     ;  or_if vref _trisa 2
380                     ; line_number = 179
381                     ;  or_if ra1_in _ansel 0
382                     ; line_number = 180
383                     ;  or_if ra1_out _ansel 0
384                     ; line_number = 181
385                     ;  or_if an1 _ansel 2
386                     ; line_number = 182
387                     ;  or_if vref _ansel 2
388                     ; line_number = 183
389                     ;  or_if ra1_in _adcon0 0
390                     ; line_number = 184
391                     ;  or_if ra1_out _adcon0 0
392                     ; line_number = 185
393                     ;  or_if an1 _adcon0 1		# Turn on _addon
394                     ; line_number = 186
395                     ;  or_if vref _adcon0 1		# Turn on _addon
396                     ; line_number = 187
397                     ;  or_if vref _adcon0 64		# Turn of _vcfg
398                     ; line_number = 188
399                     ; pin ra0_in, ra0_nc, ra0_out, an0, c1in_plus, icspdat, ulpwu
400                     ; line_number = 189
401                     ; pin_bindings pdip=13, soic=13, tssop=13
402                     ; line_number = 190
403                     ;  bind_to _porta@0
404                     ; line_number = 191
405                     ;  or_if ra0_in _trisa 1
406                     ; line_number = 192
407                     ;  or_if ra0_nc _trisa 1
408                     ; line_number = 193
409                     ;  or_if ra0_out _trisa 0
410                     ; line_number = 194
411                     ;  or_if ra0_in _cmcon0 7
412                     ; line_number = 195
413                     ;  or_if ra0_out _cmcon0 7
414                     ; line_number = 196
415                     ;  or_if an0 _trisa 1
416                     ; line_number = 197
417                     ;  or_if ra0_in _ansel 0
418                     ; line_number = 198
419                     ;  or_if ra0_out _ansel 0
420                     ; line_number = 199
421                     ;  or_if an0 _ansel 1
422                     ; line_number = 200
423                     ;  or_if ra0_in _adcon0 0
424                     ; line_number = 201
425                     ;  or_if ra0_out _adcon0 0
426                     ; line_number = 202
427                     ;  or_if an0 _adcon0 1
428                     ; line_number = 203
429                     ; pin vss, ground
430                     ; line_number = 204
431                     ; pin_bindings pdip=14, soic=14, tssop=14
432             
433                     ; line_number = 206
434                     ; library _standard entered
435             
436                     ; # Copyright (c) 2006 by Wayne C. Gramlich
437                     ; # All rights reserved.
438             
439                     ; # Standard definition for uCL:
440             
441                     ; buffer = '_standard'
442                     ; line_number = 8
443                     ; constant _true = (1 = 1)
444  00000001 = _true equ 1
445                     ; line_number = 9
446                     ; constant _false = (0 != 0)
447  00000000 = _false equ 0
448             
449             
450                     ; buffer = '_pic16f688'
451                     ; line_number = 206
452                     ; library _standard exited
453             
454             
455                     ; # Register/bit bindings:
456             
457                     ; # Databank 0 (0x0 - 0x7f):
458             
459                     ; line_number = 217
460                     ; register _indf = 
461  00000000 = _indf equ 0
462             
463                     ; line_number = 219
464                     ; register _tmr0 = 
465  00000001 = _tmr0 equ 1
466             
467                     ; line_number = 221
468                     ; register _pcl = 
469  00000002 = _pcl equ 2
470             
471                     ; line_number = 223
472                     ; register _status = 
473  00000003 = _status equ 3
474                     ; line_number = 224
475                     ; bind _irp = _status@7
476  00000003 = _irp___byte equ _status
477  00000007 = _irp___bit equ 7
478                     ; line_number = 225
479                     ; bind _rp1 = _status@5
480  00000003 = _rp1___byte equ _status
481  00000005 = _rp1___bit equ 5
482                     ; line_number = 226
483                     ; bind _rp0 = _status@5
484  00000003 = _rp0___byte equ _status
485  00000005 = _rp0___bit equ 5
486                     ; line_number = 227
487                     ; bind _to = _status@4
488  00000003 = _to___byte equ _status
489  00000004 = _to___bit equ 4
490                     ; line_number = 228
491                     ; bind _pd = _status@3
492  00000003 = _pd___byte equ _status
493  00000003 = _pd___bit equ 3
494                     ; line_number = 229
495                     ; bind _z = _status@2
496  00000003 = _z___byte equ _status
497  00000002 = _z___bit equ 2
498                     ; line_number = 230
499                     ; bind _dc = _status@1
500  00000003 = _dc___byte equ _status
501  00000001 = _dc___bit equ 1
502                     ; line_number = 231
503                     ; bind _c = _status@0
504  00000003 = _c___byte equ _status
505  00000000 = _c___bit equ 0
506             
507                     ; line_number = 233
508                     ; register _fsr = 
509  00000004 = _fsr equ 4
510             
511                     ; line_number = 235
512                     ; register _porta = 
513  00000005 = _porta equ 5
514                     ; line_number = 236
515                     ; register _ra = 
516  00000005 = _ra equ 5
517                     ; line_number = 237
518                     ; bind _ra5 = _porta@5
519  00000005 = _ra5___byte equ _porta
520  00000005 = _ra5___bit equ 5
521                     ; line_number = 238
522                     ; bind _ra4 = _porta@4
523  00000005 = _ra4___byte equ _porta
524  00000004 = _ra4___bit equ 4
525                     ; line_number = 239
526                     ; bind _ra3 = _porta@3
527  00000005 = _ra3___byte equ _porta
528  00000003 = _ra3___bit equ 3
529                     ; line_number = 240
530                     ; bind _ra2 = _porta@2
531  00000005 = _ra2___byte equ _porta
532  00000002 = _ra2___bit equ 2
533                     ; line_number = 241
534                     ; bind _ra1 = _porta@1
535  00000005 = _ra1___byte equ _porta
536  00000001 = _ra1___bit equ 1
537                     ; line_number = 242
538                     ; bind _ra0 = _porta@0
539  00000005 = _ra0___byte equ _porta
540  00000000 = _ra0___bit equ 0
541             
542                     ; line_number = 244
543                     ; register _portc = 
544  00000007 = _portc equ 7
545                     ; line_number = 245
546                     ; register _rc = 
547  00000007 = _rc equ 7
548                     ; line_number = 246
549                     ; bind _rc5 = _portc@5
550  00000007 = _rc5___byte equ _portc
551  00000005 = _rc5___bit equ 5
552                     ; line_number = 247
553                     ; bind _rc4 = _portc@4
554  00000007 = _rc4___byte equ _portc
555  00000004 = _rc4___bit equ 4
556                     ; line_number = 248
557                     ; bind _rc3 = _portc@3
558  00000007 = _rc3___byte equ _portc
559  00000003 = _rc3___bit equ 3
560                     ; line_number = 249
561                     ; bind _rc2 = _portc@2
562  00000007 = _rc2___byte equ _portc
563  00000002 = _rc2___bit equ 2
564                     ; line_number = 250
565                     ; bind _rc1 = _portc@1
566  00000007 = _rc1___byte equ _portc
567  00000001 = _rc1___bit equ 1
568                     ; line_number = 251
569                     ; bind _rc0 = _portc@0
570  00000007 = _rc0___byte equ _portc
571  00000000 = _rc0___bit equ 0
572             
573                     ; line_number = 253
574                     ; register _pclath = 
575  0000000a = _pclath equ 10
576             
577                     ; line_number = 255
578                     ; register _intcon = 
579  0000000b = _intcon equ 11
580                     ; line_number = 256
581                     ; bind _gie = _intcon@7
582  0000000b = _gie___byte equ _intcon
583  00000007 = _gie___bit equ 7
584                     ; line_number = 257
585                     ; bind _peie = _intcon@6
586  0000000b = _peie___byte equ _intcon
587  00000006 = _peie___bit equ 6
588                     ; line_number = 258
589                     ; bind _t0ie = _intcon@5
590  0000000b = _t0ie___byte equ _intcon
591  00000005 = _t0ie___bit equ 5
592                     ; line_number = 259
593                     ; bind _inte = _intcon@4
594  0000000b = _inte___byte equ _intcon
595  00000004 = _inte___bit equ 4
596                     ; line_number = 260
597                     ; bind _raie = _intcon@3
598  0000000b = _raie___byte equ _intcon
599  00000003 = _raie___bit equ 3
600                     ; line_number = 261
601                     ; bind _t0if = _intcon@2
602  0000000b = _t0if___byte equ _intcon
603  00000002 = _t0if___bit equ 2
604                     ; line_number = 262
605                     ; bind _intf = _intcon@1
606  0000000b = _intf___byte equ _intcon
607  00000001 = _intf___bit equ 1
608                     ; line_number = 263
609                     ; bind _raif = _intcon@0
610  0000000b = _raif___byte equ _intcon
611  00000000 = _raif___bit equ 0
612             
613                     ; line_number = 265
614                     ; register _pir1 = 
615  0000000c = _pir1 equ 12
616                     ; line_number = 266
617                     ; bind _eeif = _pir1@7
618  0000000c = _eeif___byte equ _pir1
619  00000007 = _eeif___bit equ 7
620                     ; line_number = 267
621                     ; bind _adif = _pir1@6
622  0000000c = _adif___byte equ _pir1
623  00000006 = _adif___bit equ 6
624                     ; line_number = 268
625                     ; bind _rcif = _pir1@5
626  0000000c = _rcif___byte equ _pir1
627  00000005 = _rcif___bit equ 5
628                     ; line_number = 269
629                     ; bind _c2if = _pir1@4
630  0000000c = _c2if___byte equ _pir1
631  00000004 = _c2if___bit equ 4
632                     ; line_number = 270
633                     ; bind _c1if = _pir1@3
634  0000000c = _c1if___byte equ _pir1
635  00000003 = _c1if___bit equ 3
636                     ; line_number = 271
637                     ; bind _osfif = _pir1@2
638  0000000c = _osfif___byte equ _pir1
639  00000002 = _osfif___bit equ 2
640                     ; line_number = 272
641                     ; bind _txif = _pir1@1
642  0000000c = _txif___byte equ _pir1
643  00000001 = _txif___bit equ 1
644                     ; line_number = 273
645                     ; bind _tmr1if = _pir1@0
646  0000000c = _tmr1if___byte equ _pir1
647  00000000 = _tmr1if___bit equ 0
648             
649                     ; line_number = 275
650                     ; register _tmr1l = 
651  0000000e = _tmr1l equ 14
652             
653                     ; line_number = 277
654                     ; register _tmr1h = 
655  0000000f = _tmr1h equ 15
656             
657                     ; line_number = 279
658                     ; register _t1con = 
659  00000010 = _t1con equ 16
660                     ; line_number = 280
661                     ; bind t1ginv = _t1con@7
662  00000010 = t1ginv___byte equ _t1con
663  00000007 = t1ginv___bit equ 7
664                     ; line_number = 281
665                     ; bind _tmr1ge = _t1con@6
666  00000010 = _tmr1ge___byte equ _t1con
667  00000006 = _tmr1ge___bit equ 6
668                     ; line_number = 282
669                     ; bind _t1ckps1 = _t1con@5
670  00000010 = _t1ckps1___byte equ _t1con
671  00000005 = _t1ckps1___bit equ 5
672                     ; line_number = 283
673                     ; bind _t1ckps0 = _t1con@4
674  00000010 = _t1ckps0___byte equ _t1con
675  00000004 = _t1ckps0___bit equ 4
676                     ; line_number = 284
677                     ; bind _t1oscen = _t1con@3
678  00000010 = _t1oscen___byte equ _t1con
679  00000003 = _t1oscen___bit equ 3
680                     ; line_number = 285
681                     ; bind _t1sync = _t1con@2
682  00000010 = _t1sync___byte equ _t1con
683  00000002 = _t1sync___bit equ 2
684                     ; line_number = 286
685                     ; bind _tmr1cs = _t1con@1
686  00000010 = _tmr1cs___byte equ _t1con
687  00000001 = _tmr1cs___bit equ 1
688                     ; line_number = 287
689                     ; bind _tmr1on = _t1con@0
690  00000010 = _tmr1on___byte equ _t1con
691  00000000 = _tmr1on___bit equ 0
692             
693                     ; line_number = 289
694                     ; register _baudctl = 
695  00000011 = _baudctl equ 17
696                     ; line_number = 290
697                     ; bind _abdovf = _baudctl@7
698  00000011 = _abdovf___byte equ _baudctl
699  00000007 = _abdovf___bit equ 7
700                     ; line_number = 291
701                     ; bind _rcidl = _baudctl@6
702  00000011 = _rcidl___byte equ _baudctl
703  00000006 = _rcidl___bit equ 6
704                     ; line_number = 292
705                     ; bind _sckp = _baudctl@4
706  00000011 = _sckp___byte equ _baudctl
707  00000004 = _sckp___bit equ 4
708                     ; line_number = 293
709                     ; bind _brg16 = _baudctl@3
710  00000011 = _brg16___byte equ _baudctl
711  00000003 = _brg16___bit equ 3
712                     ; line_number = 294
713                     ; bind _wue = _baudctl@1
714  00000011 = _wue___byte equ _baudctl
715  00000001 = _wue___bit equ 1
716                     ; line_number = 295
717                     ; bind _abden = _baudctl@0
718  00000011 = _abden___byte equ _baudctl
719  00000000 = _abden___bit equ 0
720             
721                     ; line_number = 297
722                     ; register _spbrgh = 
723  00000012 = _spbrgh equ 18
724             
725                     ; line_number = 299
726                     ; register _spbrg = 
727  00000013 = _spbrg equ 19
728             
729                     ; line_number = 301
730                     ; register _rcreg = 
731  00000014 = _rcreg equ 20
732             
733                     ; line_number = 303
734                     ; register _txreg = 
735  00000015 = _txreg equ 21
736             
737                     ; line_number = 305
738                     ; register _txsta = 
739  00000016 = _txsta equ 22
740                     ; line_number = 306
741                     ; bind _csrc = _txsta@7
742  00000016 = _csrc___byte equ _txsta
743  00000007 = _csrc___bit equ 7
744                     ; line_number = 307
745                     ; bind _tx9 = _txsta@6
746  00000016 = _tx9___byte equ _txsta
747  00000006 = _tx9___bit equ 6
748                     ; line_number = 308
749                     ; bind _txen = _txsta@5
750  00000016 = _txen___byte equ _txsta
751  00000005 = _txen___bit equ 5
752                     ; line_number = 309
753                     ; bind _sync = _txsta@4
754  00000016 = _sync___byte equ _txsta
755  00000004 = _sync___bit equ 4
756                     ; line_number = 310
757                     ; bind _sendb = _txsta@3
758  00000016 = _sendb___byte equ _txsta
759  00000003 = _sendb___bit equ 3
760                     ; line_number = 311
761                     ; bind _brgh = _txsta@2
762  00000016 = _brgh___byte equ _txsta
763  00000002 = _brgh___bit equ 2
764                     ; line_number = 312
765                     ; bind _trmt = _txsta@1
766  00000016 = _trmt___byte equ _txsta
767  00000001 = _trmt___bit equ 1
768                     ; line_number = 313
769                     ; bind _tx9d = _txsta@0
770  00000016 = _tx9d___byte equ _txsta
771  00000000 = _tx9d___bit equ 0
772             
773                     ; line_number = 315
774                     ; register _rcsta = 
775  00000017 = _rcsta equ 23
776                     ; line_number = 316
777                     ; bind _spen = _rcsta@7
778  00000017 = _spen___byte equ _rcsta
779  00000007 = _spen___bit equ 7
780                     ; line_number = 317
781                     ; bind _rx9 = _rcsta@6
782  00000017 = _rx9___byte equ _rcsta
783  00000006 = _rx9___bit equ 6
784                     ; line_number = 318
785                     ; bind _sren = _rcsta@5
786  00000017 = _sren___byte equ _rcsta
787  00000005 = _sren___bit equ 5
788                     ; line_number = 319
789                     ; bind _cren = _rcsta@4
790  00000017 = _cren___byte equ _rcsta
791  00000004 = _cren___bit equ 4
792                     ; line_number = 320
793                     ; bind _adden = _rcsta@3
794  00000017 = _adden___byte equ _rcsta
795  00000003 = _adden___bit equ 3
796                     ; line_number = 321
797                     ; bind _ferr = _rcsta@2
798  00000017 = _ferr___byte equ _rcsta
799  00000002 = _ferr___bit equ 2
800                     ; line_number = 322
801                     ; bind _oerr = _rcsta@1
802  00000017 = _oerr___byte equ _rcsta
803  00000001 = _oerr___bit equ 1
804                     ; line_number = 323
805                     ; bind _rx9d = _rcsta@0
806  00000017 = _rx9d___byte equ _rcsta
807  00000000 = _rx9d___bit equ 0
808             
809                     ; line_number = 325
810                     ; register _wdtcon = 
811  00000018 = _wdtcon equ 24
812                     ; line_number = 326
813                     ; bind _wdtps3 = _wdtcon@4
814  00000018 = _wdtps3___byte equ _wdtcon
815  00000004 = _wdtps3___bit equ 4
816                     ; line_number = 327
817                     ; bind _wdtps2 = _wdtcon@3
818  00000018 = _wdtps2___byte equ _wdtcon
819  00000003 = _wdtps2___bit equ 3
820                     ; line_number = 328
821                     ; bind _wdtps1 = _wdtcon@2
822  00000018 = _wdtps1___byte equ _wdtcon
823  00000002 = _wdtps1___bit equ 2
824                     ; line_number = 329
825                     ; bind _wdtps0 = _wdtcon@1
826  00000018 = _wdtps0___byte equ _wdtcon
827  00000001 = _wdtps0___bit equ 1
828                     ; line_number = 330
829                     ; bind _swdten = _wdtcon@0
830  00000018 = _swdten___byte equ _wdtcon
831  00000000 = _swdten___bit equ 0
832             
833                     ; line_number = 332
834                     ; register _cmcon0 = 
835  00000019 = _cmcon0 equ 25
836                     ; line_number = 333
837                     ; bind _c1out = _cmcon0@7
838  00000019 = _c1out___byte equ _cmcon0
839  00000007 = _c1out___bit equ 7
840                     ; line_number = 334
841                     ; bind _c2out = _cmcon0@6
842  00000019 = _c2out___byte equ _cmcon0
843  00000006 = _c2out___bit equ 6
844                     ; line_number = 335
845                     ; bind _c1inv = _cmcon0@5
846  00000019 = _c1inv___byte equ _cmcon0
847  00000005 = _c1inv___bit equ 5
848                     ; line_number = 336
849                     ; bind _c2inv = _cmcon0@4
850  00000019 = _c2inv___byte equ _cmcon0
851  00000004 = _c2inv___bit equ 4
852                     ; line_number = 337
853                     ; bind _cis = _cmcon0@3
854  00000019 = _cis___byte equ _cmcon0
855  00000003 = _cis___bit equ 3
856                     ; line_number = 338
857                     ; bind _cm2 = _cmcon0@2
858  00000019 = _cm2___byte equ _cmcon0
859  00000002 = _cm2___bit equ 2
860                     ; line_number = 339
861                     ; bind _cm1 = _cmcon0@1
862  00000019 = _cm1___byte equ _cmcon0
863  00000001 = _cm1___bit equ 1
864                     ; line_number = 340
865                     ; bind _cm0 = _cmcon0@0
866  00000019 = _cm0___byte equ _cmcon0
867  00000000 = _cm0___bit equ 0
868             
869                     ; line_number = 342
870                     ; register _cmcon1 = 
871  0000001a = _cmcon1 equ 26
872                     ; line_number = 343
873                     ; bind _t1gss = _cmcon1@0
874  0000001a = _t1gss___byte equ _cmcon1
875  00000000 = _t1gss___bit equ 0
876                     ; line_number = 344
877                     ; bind _c2sync = _cmcon1@1
878  0000001a = _c2sync___byte equ _cmcon1
879  00000001 = _c2sync___bit equ 1
880             
881                     ; line_number = 346
882                     ; register _adresh = 
883  0000001e = _adresh equ 30
884             
885                     ; line_number = 348
886                     ; register _adcon0 = 
887  0000001f = _adcon0 equ 31
888                     ; line_number = 349
889                     ; bind _adfm = _adcon0@7
890  0000001f = _adfm___byte equ _adcon0
891  00000007 = _adfm___bit equ 7
892                     ; line_number = 350
893                     ; bind _vcfg = _adcon0@6
894  0000001f = _vcfg___byte equ _adcon0
895  00000006 = _vcfg___bit equ 6
896                     ; line_number = 351
897                     ; bind _chs2 = _adcon0@4
898  0000001f = _chs2___byte equ _adcon0
899  00000004 = _chs2___bit equ 4
900                     ; line_number = 352
901                     ; bind _chs1 = _adcon0@3
902  0000001f = _chs1___byte equ _adcon0
903  00000003 = _chs1___bit equ 3
904                     ; line_number = 353
905                     ; bind _chs0 = _adcon0@2
906  0000001f = _chs0___byte equ _adcon0
907  00000002 = _chs0___bit equ 2
908                     ; line_number = 354
909                     ; bind _go = _adcon0@1
910  0000001f = _go___byte equ _adcon0
911  00000001 = _go___bit equ 1
912                     ; line_number = 355
913                     ; bind _adon = _adcon0@0
914  0000001f = _adon___byte equ _adcon0
915  00000000 = _adon___bit equ 0
916             
917                     ; # Data bank 1 (0x80-0xff):
918             
919                     ; line_number = 359
920                     ; register _option_reg = 
921  00000081 = _option_reg equ 129
922                     ; line_number = 360
923                     ; bind _rapu = _option_reg@7
924  00000081 = _rapu___byte equ _option_reg
925  00000007 = _rapu___bit equ 7
926                     ; line_number = 361
927                     ; bind _intedg = _option_reg@6
928  00000081 = _intedg___byte equ _option_reg
929  00000006 = _intedg___bit equ 6
930                     ; line_number = 362
931                     ; bind _t0cs = _option_reg@5
932  00000081 = _t0cs___byte equ _option_reg
933  00000005 = _t0cs___bit equ 5
934                     ; line_number = 363
935                     ; bind _t0se = _option_reg@4
936  00000081 = _t0se___byte equ _option_reg
937  00000004 = _t0se___bit equ 4
938                     ; line_number = 364
939                     ; bind _psa = _option_reg@3
940  00000081 = _psa___byte equ _option_reg
941  00000003 = _psa___bit equ 3
942                     ; line_number = 365
943                     ; bind _ps2 = _option_reg@2
944  00000081 = _ps2___byte equ _option_reg
945  00000002 = _ps2___bit equ 2
946                     ; line_number = 366
947                     ; bind _ps1 = _option_reg@1
948  00000081 = _ps1___byte equ _option_reg
949  00000001 = _ps1___bit equ 1
950                     ; line_number = 367
951                     ; bind _ps0 = _option_reg@0
952  00000081 = _ps0___byte equ _option_reg
953  00000000 = _ps0___bit equ 0
954             
955                     ; line_number = 369
956                     ; register _trisa = 
957  00000085 = _trisa equ 133
958                     ; line_number = 370
959                     ; bind _trisa5 = _trisa@5
960  00000085 = _trisa5___byte equ _trisa
961  00000005 = _trisa5___bit equ 5
962                     ; line_number = 371
963                     ; bind _trisa4 = _trisa@4
964  00000085 = _trisa4___byte equ _trisa
965  00000004 = _trisa4___bit equ 4
966                     ; line_number = 372
967                     ; bind _trisa3 = _trisa@3
968  00000085 = _trisa3___byte equ _trisa
969  00000003 = _trisa3___bit equ 3
970                     ; line_number = 373
971                     ; bind _trisa2 = _trisa@2
972  00000085 = _trisa2___byte equ _trisa
973  00000002 = _trisa2___bit equ 2
974                     ; line_number = 374
975                     ; bind _trisa1 = _trisa@1
976  00000085 = _trisa1___byte equ _trisa
977  00000001 = _trisa1___bit equ 1
978                     ; line_number = 375
979                     ; bind _trisa0 = _trisa@0
980  00000085 = _trisa0___byte equ _trisa
981  00000000 = _trisa0___bit equ 0
982             
983                     ; line_number = 377
984                     ; register _trisc = 
985  00000087 = _trisc equ 135
986                     ; line_number = 378
987                     ; bind _trisc5 = _trisc@5
988  00000087 = _trisc5___byte equ _trisc
989  00000005 = _trisc5___bit equ 5
990                     ; line_number = 379
991                     ; bind _trisc4 = _trisc@4
992  00000087 = _trisc4___byte equ _trisc
993  00000004 = _trisc4___bit equ 4
994                     ; line_number = 380
995                     ; bind _trisc3 = _trisc@3
996  00000087 = _trisc3___byte equ _trisc
997  00000003 = _trisc3___bit equ 3
998                     ; line_number = 381
999                     ; bind _trisc2 = _trisc@2
1000 00000087 = _trisc2___byte equ _trisc
1001 00000002 = _trisc2___bit equ 2
1002                    ; line_number = 382
1003                    ; bind _trisc1 = _trisc@1
1004 00000087 = _trisc1___byte equ _trisc
1005 00000001 = _trisc1___bit equ 1
1006                    ; line_number = 383
1007                    ; bind _trisc0 = _trisc@0
1008 00000087 = _trisc0___byte equ _trisc
1009 00000000 = _trisc0___bit equ 0
1010            
1011                    ; line_number = 385
1012                    ; register _pie1 = 
1013 0000008c = _pie1 equ 140
1014                    ; line_number = 386
1015                    ; bind _eeie = _pie1@7
1016 0000008c = _eeie___byte equ _pie1
1017 00000007 = _eeie___bit equ 7
1018                    ; line_number = 387
1019                    ; bind _adie = _pie1@6
1020 0000008c = _adie___byte equ _pie1
1021 00000006 = _adie___bit equ 6
1022                    ; line_number = 388
1023                    ; bind _rcie = _pie1@5
1024 0000008c = _rcie___byte equ _pie1
1025 00000005 = _rcie___bit equ 5
1026                    ; line_number = 389
1027                    ; bind _c2ie = _pie1@4
1028 0000008c = _c2ie___byte equ _pie1
1029 00000004 = _c2ie___bit equ 4
1030                    ; line_number = 390
1031                    ; bind _c1ie = _pie1@3
1032 0000008c = _c1ie___byte equ _pie1
1033 00000003 = _c1ie___bit equ 3
1034                    ; line_number = 391
1035                    ; bind _osfie = _pie1@2
1036 0000008c = _osfie___byte equ _pie1
1037 00000002 = _osfie___bit equ 2
1038                    ; line_number = 392
1039                    ; bind _txie = _pie1@1
1040 0000008c = _txie___byte equ _pie1
1041 00000001 = _txie___bit equ 1
1042                    ; line_number = 393
1043                    ; bind _tmr1ie = _pie1@0
1044 0000008c = _tmr1ie___byte equ _pie1
1045 00000000 = _tmr1ie___bit equ 0
1046            
1047                    ; line_number = 395
1048                    ; register _pcon = 
1049 0000008e = _pcon equ 142
1050                    ; line_number = 396
1051                    ; bind _ulpwue = _pcon@5
1052 0000008e = _ulpwue___byte equ _pcon
1053 00000005 = _ulpwue___bit equ 5
1054                    ; line_number = 397
1055                    ; bind _sboden = _pcon@4
1056 0000008e = _sboden___byte equ _pcon
1057 00000004 = _sboden___bit equ 4
1058                    ; line_number = 398
1059                    ; bind _por = _pcon@1
1060 0000008e = _por___byte equ _pcon
1061 00000001 = _por___bit equ 1
1062                    ; line_number = 399
1063                    ; bind _bod = _pcon@0
1064 0000008e = _bod___byte equ _pcon
1065 00000000 = _bod___bit equ 0
1066            
1067                    ; line_number = 401
1068                    ; register _osccon = 
1069 0000008f = _osccon equ 143
1070                    ; line_number = 402
1071                    ; bind _ircf2 = _osccon@6
1072 0000008f = _ircf2___byte equ _osccon
1073 00000006 = _ircf2___bit equ 6
1074                    ; line_number = 403
1075                    ; bind _ircf1 = _osccon@5
1076 0000008f = _ircf1___byte equ _osccon
1077 00000005 = _ircf1___bit equ 5
1078                    ; line_number = 404
1079                    ; bind _ircf0 = _osccon@4
1080 0000008f = _ircf0___byte equ _osccon
1081 00000004 = _ircf0___bit equ 4
1082                    ; line_number = 405
1083                    ; bind _osts = _osccon@3
1084 0000008f = _osts___byte equ _osccon
1085 00000003 = _osts___bit equ 3
1086                    ; line_number = 406
1087                    ; bind _hts = _osccon@2
1088 0000008f = _hts___byte equ _osccon
1089 00000002 = _hts___bit equ 2
1090                    ; line_number = 407
1091                    ; bind _lts = _osccon@3
1092 0000008f = _lts___byte equ _osccon
1093 00000003 = _lts___bit equ 3
1094                    ; line_number = 408
1095                    ; bind _scs = _osccon@2
1096 0000008f = _scs___byte equ _osccon
1097 00000002 = _scs___bit equ 2
1098            
1099                    ; line_number = 410
1100                    ; register _osctune = 
1101 00000090 = _osctune equ 144
1102                    ; line_number = 411
1103                    ; bind _tun4 = _osctune@4
1104 00000090 = _tun4___byte equ _osctune
1105 00000004 = _tun4___bit equ 4
1106                    ; line_number = 412
1107                    ; bind _tun3 = _osctune@3
1108 00000090 = _tun3___byte equ _osctune
1109 00000003 = _tun3___bit equ 3
1110                    ; line_number = 413
1111                    ; bind _tun2 = _osctune@2
1112 00000090 = _tun2___byte equ _osctune
1113 00000002 = _tun2___bit equ 2
1114                    ; line_number = 414
1115                    ; bind _tun1 = _osctune@1
1116 00000090 = _tun1___byte equ _osctune
1117 00000001 = _tun1___bit equ 1
1118                    ; line_number = 415
1119                    ; bind _tun0 = _osctune@0
1120 00000090 = _tun0___byte equ _osctune
1121 00000000 = _tun0___bit equ 0
1122                    ; line_number = 416
1123                    ; constant _osccal_lsb = 1
1124 00000001 = _osccal_lsb equ 1
1125            
1126                    ; line_number = 418
1127                    ; register _ansel = 
1128 00000091 = _ansel equ 145
1129                    ; line_number = 419
1130                    ; bind _ans7 = _ansel@7
1131 00000091 = _ans7___byte equ _ansel
1132 00000007 = _ans7___bit equ 7
1133                    ; line_number = 420
1134                    ; bind _ans6 = _ansel@6
1135 00000091 = _ans6___byte equ _ansel
1136 00000006 = _ans6___bit equ 6
1137                    ; line_number = 421
1138                    ; bind _ans5 = _ansel@5
1139 00000091 = _ans5___byte equ _ansel
1140 00000005 = _ans5___bit equ 5
1141                    ; line_number = 422
1142                    ; bind _ans4 = _ansel@4
1143 00000091 = _ans4___byte equ _ansel
1144 00000004 = _ans4___bit equ 4
1145                    ; line_number = 423
1146                    ; bind _ans3 = _ansel@3
1147 00000091 = _ans3___byte equ _ansel
1148 00000003 = _ans3___bit equ 3
1149                    ; line_number = 424
1150                    ; bind _ans2 = _ansel@2
1151 00000091 = _ans2___byte equ _ansel
1152 00000002 = _ans2___bit equ 2
1153                    ; line_number = 425
1154                    ; bind _ans1 = _ansel@1
1155 00000091 = _ans1___byte equ _ansel
1156 00000001 = _ans1___bit equ 1
1157                    ; line_number = 426
1158                    ; bind _ans0 = _ansel@0
1159 00000091 = _ans0___byte equ _ansel
1160 00000000 = _ans0___bit equ 0
1161            
1162                    ; line_number = 428
1163                    ; register _wpua = 
1164 00000095 = _wpua equ 149
1165                    ; line_number = 429
1166                    ; bind _wpua5 = _wpua@5
1167 00000095 = _wpua5___byte equ _wpua
1168 00000005 = _wpua5___bit equ 5
1169                    ; line_number = 430
1170                    ; bind _wpua4 = _wpua@4
1171 00000095 = _wpua4___byte equ _wpua
1172 00000004 = _wpua4___bit equ 4
1173                    ; line_number = 431
1174                    ; bind _wpua2 = _wpua@2
1175 00000095 = _wpua2___byte equ _wpua
1176 00000002 = _wpua2___bit equ 2
1177                    ; line_number = 432
1178                    ; bind _wpua1 = _wpua@1
1179 00000095 = _wpua1___byte equ _wpua
1180 00000001 = _wpua1___bit equ 1
1181                    ; line_number = 433
1182                    ; bind _wpua0 = _wpua@0
1183 00000095 = _wpua0___byte equ _wpua
1184 00000000 = _wpua0___bit equ 0
1185            
1186                    ; line_number = 435
1187                    ; register _ioca = 
1188 00000096 = _ioca equ 150
1189                    ; line_number = 436
1190                    ; bind _ioca5 = _ioca@5
1191 00000096 = _ioca5___byte equ _ioca
1192 00000005 = _ioca5___bit equ 5
1193                    ; line_number = 437
1194                    ; bind _ioca4 = _ioca@4
1195 00000096 = _ioca4___byte equ _ioca
1196 00000004 = _ioca4___bit equ 4
1197                    ; line_number = 438
1198                    ; bind _ioca3 = _ioca@3
1199 00000096 = _ioca3___byte equ _ioca
1200 00000003 = _ioca3___bit equ 3
1201                    ; line_number = 439
1202                    ; bind _ioca2 = _ioca@2
1203 00000096 = _ioca2___byte equ _ioca
1204 00000002 = _ioca2___bit equ 2
1205                    ; line_number = 440
1206                    ; bind _ioca1 = _ioca@1
1207 00000096 = _ioca1___byte equ _ioca
1208 00000001 = _ioca1___bit equ 1
1209                    ; line_number = 441
1210                    ; bind _ioca0 = _ioca@0
1211 00000096 = _ioca0___byte equ _ioca
1212 00000000 = _ioca0___bit equ 0
1213            
1214                    ; line_number = 443
1215                    ; register _eedath = 
1216 00000097 = _eedath equ 151
1217            
1218                    ; line_number = 445
1219                    ; register _eeadrh = 
1220 00000098 = _eeadrh equ 152
1221            
1222                    ; line_number = 447
1223                    ; register _vrcon = 
1224 00000099 = _vrcon equ 153
1225                    ; line_number = 448
1226                    ; bind _vren = _vrcon@7
1227 00000099 = _vren___byte equ _vrcon
1228 00000007 = _vren___bit equ 7
1229                    ; line_number = 449
1230                    ; bind _vrr = _vrcon@5
1231 00000099 = _vrr___byte equ _vrcon
1232 00000005 = _vrr___bit equ 5
1233                    ; line_number = 450
1234                    ; bind _vr3 = _vrcon@3
1235 00000099 = _vr3___byte equ _vrcon
1236 00000003 = _vr3___bit equ 3
1237                    ; line_number = 451
1238                    ; bind _vr2 = _vrcon@2
1239 00000099 = _vr2___byte equ _vrcon
1240 00000002 = _vr2___bit equ 2
1241                    ; line_number = 452
1242                    ; bind _vr1 = _vrcon@1
1243 00000099 = _vr1___byte equ _vrcon
1244 00000001 = _vr1___bit equ 1
1245                    ; line_number = 453
1246                    ; bind _vr0 = _vrcon@0
1247 00000099 = _vr0___byte equ _vrcon
1248 00000000 = _vr0___bit equ 0
1249            
1250                    ; line_number = 455
1251                    ; register _eedat = 
1252 0000009a = _eedat equ 154
1253                    ; line_number = 456
1254                    ; bind _eedat7 = _eedat@7
1255 0000009a = _eedat7___byte equ _eedat
1256 00000007 = _eedat7___bit equ 7
1257                    ; line_number = 457
1258                    ; bind _eedat6 = _eedat@6
1259 0000009a = _eedat6___byte equ _eedat
1260 00000006 = _eedat6___bit equ 6
1261                    ; line_number = 458
1262                    ; bind _eedat5 = _eedat@5
1263 0000009a = _eedat5___byte equ _eedat
1264 00000005 = _eedat5___bit equ 5
1265                    ; line_number = 459
1266                    ; bind _eedat4 = _eedat@4
1267 0000009a = _eedat4___byte equ _eedat
1268 00000004 = _eedat4___bit equ 4
1269                    ; line_number = 460
1270                    ; bind _eedat3 = _eedat@3
1271 0000009a = _eedat3___byte equ _eedat
1272 00000003 = _eedat3___bit equ 3
1273                    ; line_number = 461
1274                    ; bind _eedat2 = _eedat@2
1275 0000009a = _eedat2___byte equ _eedat
1276 00000002 = _eedat2___bit equ 2
1277                    ; line_number = 462
1278                    ; bind _eedat1 = _eedat@1
1279 0000009a = _eedat1___byte equ _eedat
1280 00000001 = _eedat1___bit equ 1
1281                    ; line_number = 463
1282                    ; bind _eedat0 = _eedat@0
1283 0000009a = _eedat0___byte equ _eedat
1284 00000000 = _eedat0___bit equ 0
1285            
1286                    ; line_number = 465
1287                    ; register _eeadr = 
1288 0000009b = _eeadr equ 155
1289                    ; line_number = 466
1290                    ; bind _eeadr7 = _eeadr@7
1291 0000009b = _eeadr7___byte equ _eeadr
1292 00000007 = _eeadr7___bit equ 7
1293                    ; line_number = 467
1294                    ; bind _eeadr6 = _eeadr@6
1295 0000009b = _eeadr6___byte equ _eeadr
1296 00000006 = _eeadr6___bit equ 6
1297                    ; line_number = 468
1298                    ; bind _eeadr5 = _eeadr@5
1299 0000009b = _eeadr5___byte equ _eeadr
1300 00000005 = _eeadr5___bit equ 5
1301                    ; line_number = 469
1302                    ; bind _eeadr4 = _eeadr@4
1303 0000009b = _eeadr4___byte equ _eeadr
1304 00000004 = _eeadr4___bit equ 4
1305                    ; line_number = 470
1306                    ; bind _eeadr3 = _eeadr@3
1307 0000009b = _eeadr3___byte equ _eeadr
1308 00000003 = _eeadr3___bit equ 3
1309                    ; line_number = 471
1310                    ; bind _eeadr2 = _eeadr@2
1311 0000009b = _eeadr2___byte equ _eeadr
1312 00000002 = _eeadr2___bit equ 2
1313                    ; line_number = 472
1314                    ; bind _eeadr1 = _eeadr@1
1315 0000009b = _eeadr1___byte equ _eeadr
1316 00000001 = _eeadr1___bit equ 1
1317                    ; line_number = 473
1318                    ; bind _eeadr0 = _eeadr@0
1319 0000009b = _eeadr0___byte equ _eeadr
1320 00000000 = _eeadr0___bit equ 0
1321            
1322                    ; line_number = 475
1323                    ; register _eecon1 = 
1324 0000009c = _eecon1 equ 156
1325                    ; line_number = 476
1326                    ; bind _eepgd = _eecon1@7
1327 0000009c = _eepgd___byte equ _eecon1
1328 00000007 = _eepgd___bit equ 7
1329                    ; line_number = 477
1330                    ; bind _wrerr = _eecon1@3
1331 0000009c = _wrerr___byte equ _eecon1
1332 00000003 = _wrerr___bit equ 3
1333                    ; line_number = 478
1334                    ; bind _wren = _eecon1@2
1335 0000009c = _wren___byte equ _eecon1
1336 00000002 = _wren___bit equ 2
1337                    ; line_number = 479
1338                    ; bind _wr = _eecon1@1
1339 0000009c = _wr___byte equ _eecon1
1340 00000001 = _wr___bit equ 1
1341                    ; line_number = 480
1342                    ; bind _rd = _eecon1@0
1343 0000009c = _rd___byte equ _eecon1
1344 00000000 = _rd___bit equ 0
1345            
1346                    ; line_number = 482
1347                    ; register _eecon2 = 
1348 0000009d = _eecon2 equ 157
1349            
1350                    ; line_number = 484
1351                    ; register _adresl = 
1352 0000009e = _adresl equ 158
1353            
1354                    ; line_number = 486
1355                    ; register _adcon1 = 
1356 0000009f = _adcon1 equ 159
1357                    ; line_number = 487
1358                    ; bind _adcs2 = _adcon1@6
1359 0000009f = _adcs2___byte equ _adcon1
1360 00000006 = _adcs2___bit equ 6
1361                    ; line_number = 488
1362                    ; bind _adcs1 = _adcon1@5
1363 0000009f = _adcs1___byte equ _adcon1
1364 00000005 = _adcs1___bit equ 5
1365                    ; line_number = 489
1366                    ; bind _adcs0 = _adcon1@4
1367 0000009f = _adcs0___byte equ _adcon1
1368 00000004 = _adcs0___bit equ 4
1369            
1370                    ; # Data Bank 2 (0x100 - 0x17f):
1371            
1372                    ; buffer = 'bus'
1373                    ; line_number = 6
1374                    ; library _pic16f688 exited
1375                    ; line_number = 7
1376                    ; library clock16mhz entered
1377                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1378                    ; # All rights reserved.
1379            
1380                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1381                    ; # and {clocks_per_instruction}.
1382            
1383                    ; # Define processor constants:
1384                    ; buffer = 'clock16mhz'
1385                    ; line_number = 9
1386                    ; constant clock_rate = 16000000
1387 00f42400 = clock_rate equ 16000000
1388                    ; line_number = 10
1389                    ; constant clocks_per_instruction = 4
1390 00000004 = clocks_per_instruction equ 4
1391                    ; line_number = 11
1392                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1393 003d0900 = instruction_rate equ 4000000
1394            
1395            
1396                    ; buffer = 'bus'
1397                    ; line_number = 7
1398                    ; library clock16mhz exited
1399                    ; line_number = 8
1400                    ; library _uart entered
1401                    ; # Copyright (c) 2004 by Wayne C. Gramlich.
1402                    ; # All rights reserved.
1403            
1404                    ; # This library contains some procedures for accessing the UART.
1405            
1406                    ; Delaying code generation for procedure  _uart_byte_safe_get
1407                    ; Delaying code generation for procedure  _uart_byte_get
1408                    ; Delaying code generation for procedure  _uart_hex_put
1409                    ; Delaying code generation for procedure  _uart_nibble_put
1410                    ; Delaying code generation for procedure  _uart_space_put
1411                    ; Delaying code generation for procedure  _uart_crlf_put
1412                    ; Delaying code generation for procedure  _uart_byte_put
1413            
1414                    ; line_number = 8
1415                    ; library _uart exited
1416                    ; line_number = 9
1417                    ; constant _eusart_clock = clock_rate
1418 00f42400 = _eusart_clock equ 16000000
1419                    ; line_number = 10
1420                    ; constant _eusart_factor = 4
1421 00000004 = _eusart_factor equ 4
1422                    ; line_number = 11
1423                    ; library _eusart entered
1424            
1425                    ; # Copyright (c) 2005 by Wayne C. Gramlich
1426                    ; # All rights reserved.
1427            
1428                    ; # This library contains a bunch of definitions for the Enhanced Universal
1429                    ; # Asynchronous Serial Receiver/Transmitter (EUSART) that is available
1430                    ; # on many of the PIC microcontrollers.
1431            
1432                    ; # In order to use this module you have to get two constants defined
1433                    ; # BEFORE including this library -- {_eusart_factor} and {_eusart_clock}.
1434                    ; # {_eusart_clock} should be set to the frequency oscillator for the chip.
1435                    ; # {_eusart_factor} should be set to 4, 16, or 64 depending upon whether
1436                    ; # the {_brg16} and {_brgh} bits are set.  Use the table below to select:
1437                    ; #
1438                    ; #        _{brg16}	{_brgh}		_{eusart_factor}
1439                    ; #	    0		   0		      64
1440                    ; #	    0		   1		      16
1441                    ; #	    1		   0		      16
1442                    ; #	    1		   1		       4
1443            
1444                    ; # 2400 bits/sec:
1445                    ; buffer = '_eusart'
1446                    ; line_number = 23
1447                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1448 00000681 = _eusart_2400 equ 1665
1449                    ; line_number = 24
1450                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1451 00000081 = _eusart_2400_low equ 129
1452                    ; line_number = 25
1453                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1454 00000006 = _eusart_2400_high equ 6
1455                    ; line_number = 26
1456                    ; constant _eusart_2400_index = 0
1457 00000000 = _eusart_2400_index equ 0
1458                    ; # 4800 bits/sec:
1459                    ; line_number = 28
1460                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1461 00000340 = _eusart_4800 equ 832
1462                    ; line_number = 29
1463                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1464 00000040 = _eusart_4800_low equ 64
1465                    ; line_number = 30
1466                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1467 00000003 = _eusart_4800_high equ 3
1468                    ; line_number = 31
1469                    ; constant _eusart_4800_index = 1
1470 00000001 = _eusart_4800_index equ 1
1471                    ; # 9600 bits/sec:
1472                    ; line_number = 33
1473                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1474 0000019f = _eusart_9600 equ 415
1475                    ; line_number = 34
1476                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1477 0000009f = _eusart_9600_low equ 159
1478                    ; line_number = 35
1479                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1480 00000001 = _eusart_9600_high equ 1
1481                    ; line_number = 36
1482                    ; constant _eusart_9600_index = 2
1483 00000002 = _eusart_9600_index equ 2
1484                    ; # 19200 bits/sec:
1485                    ; line_number = 38
1486                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1487 000000cf = _eusart_19200 equ 207
1488                    ; line_number = 39
1489                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1490 000000cf = _eusart_19200_low equ 207
1491                    ; line_number = 40
1492                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1493 00000000 = _eusart_19200_high equ 0
1494                    ; line_number = 41
1495                    ; constant _eusart_19200_index = 3
1496 00000003 = _eusart_19200_index equ 3
1497                    ; # 38400 bits/sec:
1498                    ; line_number = 43
1499                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1500 00000067 = _eusart_38400 equ 103
1501                    ; line_number = 44
1502                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1503 00000067 = _eusart_38400_low equ 103
1504                    ; line_number = 45
1505                    ; constant _eusart_38400_high = _eusart_38400 >> 8
1506 00000000 = _eusart_38400_high equ 0
1507                    ; line_number = 46
1508                    ; constant _eusart_38400_index = 4
1509 00000004 = _eusart_38400_index equ 4
1510                    ; # 57600 bits/sec:
1511                    ; line_number = 48
1512                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1513 00000044 = _eusart_57600 equ 68
1514                    ; line_number = 49
1515                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1516 00000044 = _eusart_57600_low equ 68
1517                    ; line_number = 50
1518                    ; constant _eusart_57600_high = _eusart_57600 >> 8
1519 00000000 = _eusart_57600_high equ 0
1520                    ; line_number = 51
1521                    ; constant _eusart_57600_index = 5
1522 00000005 = _eusart_57600_index equ 5
1523                    ; # 115200 bits/sec:
1524                    ; line_number = 53
1525                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1526 00000021 = _eusart_115200 equ 33
1527                    ; line_number = 54
1528                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1529 00000021 = _eusart_115200_low equ 33
1530                    ; line_number = 55
1531                    ; constant _eusart_115200_high = _eusart_115200 >> 8
1532 00000000 = _eusart_115200_high equ 0
1533                    ; line_number = 56
1534                    ; constant _eusart_115200_index = 6
1535 00000006 = _eusart_115200_index equ 6
1536                    ; # 203400 bits/sec:
1537                    ; line_number = 58
1538                    ; constant _eusart_230400 = (_eusart_clock / (230400 * _eusart_factor)) - 1
1539 00000010 = _eusart_230400 equ 16
1540                    ; line_number = 59
1541                    ; constant _eusart_230400_low = _eusart_230400 & 0xff
1542 00000010 = _eusart_230400_low equ 16
1543                    ; line_number = 60
1544                    ; constant _eusart_230400_high = _eusart_230400 >> 8
1545 00000000 = _eusart_230400_high equ 0
1546                    ; line_number = 61
1547                    ; constant _eusart_230400_index = 7
1548 00000007 = _eusart_230400_index equ 7
1549                    ; # 406800 bits/sec:
1550                    ; line_number = 63
1551                    ; constant _eusart_460800 = (_eusart_clock / (460800 * _eusart_factor)) - 1
1552 00000007 = _eusart_460800 equ 7
1553                    ; line_number = 64
1554                    ; constant _eusart_460800_low = _eusart_460800 & 0xff
1555 00000007 = _eusart_460800_low equ 7
1556                    ; line_number = 65
1557                    ; constant _eusart_460800_high = _eusart_460800 >> 8
1558 00000000 = _eusart_460800_high equ 0
1559                    ; line_number = 66
1560                    ; constant _eusart_460800_index = 8
1561 00000008 = _eusart_460800_index equ 8
1562                    ; # 500000 bits/sec:
1563                    ; line_number = 68
1564                    ; constant _eusart_500000 = (_eusart_clock / (500000 * _eusart_factor)) - 1
1565 00000007 = _eusart_500000 equ 7
1566                    ; line_number = 69
1567                    ; constant _eusart_500000_low = _eusart_500000 & 0xff
1568 00000007 = _eusart_500000_low equ 7
1569                    ; line_number = 70
1570                    ; constant _eusart_500000_high = _eusart_500000 >> 8
1571 00000000 = _eusart_500000_high equ 0
1572                    ; line_number = 71
1573                    ; constant _eusart_500000_index = 9
1574 00000009 = _eusart_500000_index equ 9
1575                    ; # 576000 bits/sec (1MHz):
1576                    ; line_number = 73
1577                    ; constant _eusart_576000 = (_eusart_clock / (576000 * _eusart_factor)) - 1
1578 00000005 = _eusart_576000 equ 5
1579                    ; line_number = 74
1580                    ; constant _eusart_576000_low = _eusart_576000 & 0xff
1581 00000005 = _eusart_576000_low equ 5
1582                    ; line_number = 75
1583                    ; constant _eusart_576000_high = _eusart_576000 >> 8
1584 00000000 = _eusart_576000_high equ 0
1585                    ; line_number = 76
1586                    ; constant _eusart_576000_index = 10
1587 0000000a = _eusart_576000_index equ 10
1588                    ; # 625000 bits/sec:
1589                    ; line_number = 78
1590                    ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
1591 00000005 = _eusart_625000 equ 5
1592                    ; line_number = 79
1593                    ; constant _eusart_625000_low = _eusart_625000 & 0xff
1594 00000005 = _eusart_625000_low equ 5
1595                    ; line_number = 80
1596                    ; constant _eusart_625000_high = _eusart_625000 >> 8
1597 00000000 = _eusart_625000_high equ 0
1598                    ; line_number = 81
1599                    ; constant _eusart_625000_index = 11
1600 0000000b = _eusart_625000_index equ 11
1601                    ; # 833333 bits/sec:
1602                    ; line_number = 83
1603                    ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
1604 00000003 = _eusart_833333 equ 3
1605                    ; line_number = 84
1606                    ; constant _eusart_833333_low = _eusart_833333 & 0xff
1607 00000003 = _eusart_833333_low equ 3
1608                    ; line_number = 85
1609                    ; constant _eusart_833333_high = _eusart_833333 >> 8
1610 00000000 = _eusart_833333_high equ 0
1611                    ; line_number = 86
1612                    ; constant _eusart_833333_index = 12
1613 0000000c = _eusart_833333_index equ 12
1614                    ; # 921600 bits/sec:
1615                    ; line_number = 88
1616                    ; constant _eusart_921600 = (_eusart_clock / (921600 * _eusart_factor)) - 1
1617 00000003 = _eusart_921600 equ 3
1618                    ; line_number = 89
1619                    ; constant _eusart_921600_low = _eusart_921600 & 0xff
1620 00000003 = _eusart_921600_low equ 3
1621                    ; line_number = 90
1622                    ; constant _eusart_921600_high = _eusart_921600 >> 8
1623 00000000 = _eusart_921600_high equ 0
1624                    ; line_number = 91
1625                    ; constant _eusart_921600_index = 13
1626 0000000d = _eusart_921600_index equ 13
1627                    ; # 1000000 bits/sec (1MHz):
1628                    ; line_number = 93
1629                    ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
1630 00000003 = _eusart_1000000 equ 3
1631                    ; line_number = 94
1632                    ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
1633 00000003 = _eusart_1000000_low equ 3
1634                    ; line_number = 95
1635                    ; constant _eusart_1000000_high = _eusart_1000000 >> 8
1636 00000000 = _eusart_1000000_high equ 0
1637                    ; line_number = 96
1638                    ; constant _eusart_1000000_index = 14
1639 0000000e = _eusart_1000000_index equ 14
1640            
1641                    ; buffer = 'bus'
1642                    ; line_number = 11
1643                    ; library _eusart exited
1644            
1645            
1646                    ; line_number = 15
1647                    ; package pdip
1648                    ; line_number = 16
1649                    ; pin 1 = power_supply
1650                    ; line_number = 17
1651                    ;  pin 2 = osc1
1652                    ; line_number = 18
1653                    ;  pin 3 = osc2
1654                    ; line_number = 19
1655                    ;  pin 4 = ra3_in, name=p6
1656 00000005 = p6___byte equ _porta
1657 00000003 = p6___bit equ 3
1658                    ; line_number = 20
1659                    ;  pin 5 = rx, name=rx
1660 00000007 = rx___byte equ _portc
1661 00000005 = rx___bit equ 5
1662                    ; line_number = 21
1663                    ;  pin 6 = tx, name=tx
1664 00000007 = tx___byte equ _portc
1665 00000004 = tx___bit equ 4
1666                    ; line_number = 22
1667                    ;  pin 7 = rc3_in, name=p3
1668 00000007 = p3___byte equ _portc
1669 00000003 = p3___bit equ 3
1670                    ; line_number = 23
1671                    ;  pin 8 = rc2_in, name=p2
1672 00000007 = p2___byte equ _portc
1673 00000002 = p2___bit equ 2
1674                    ; line_number = 24
1675                    ;  pin 9 = rc1_out, name=p1
1676 00000007 = p1___byte equ _portc
1677 00000001 = p1___bit equ 1
1678                    ; line_number = 25
1679                    ;  pin 10 = rc0_out, name=p0
1680 00000007 = p0___byte equ _portc
1681 00000000 = p0___bit equ 0
1682                    ; line_number = 26
1683                    ;  pin 11 = ra2_out, name=reset
1684 00000005 = reset___byte equ _porta
1685 00000002 = reset___bit equ 2
1686                    ; line_number = 27
1687                    ;  pin 12 = ra1_out, name=p5
1688 00000005 = p5___byte equ _porta
1689 00000001 = p5___bit equ 1
1690                    ; line_number = 28
1691                    ;  pin 13 = ra0_in, name=p4
1692 00000005 = p4___byte equ _porta
1693 00000000 = p4___bit equ 0
1694                    ; line_number = 29
1695                    ;  pin 14 = ground
1696            
1697                    ; line_number = 31
1698                    ; origin 0
1699   0000 :           org     0
1700            
1701                    ; line_number = 33
1702                    ; constant microsecond = clocks_per_instruction / 1000000
1703 00000000 = microsecond equ 0
1704            
1705                    ; line_number = 35
1706                    ; constant buffer_power = 5
1707 00000005 = buffer_power equ 5
1708                    ; line_number = 36
1709                    ; constant buffer_size = 1 << buffer_power
1710 00000020 = buffer_size equ 32
1711                    ; line_number = 37
1712                    ; constant buffer_mask = buffer_size - 1
1713 0000001f = buffer_mask equ 31
1714            
1715                    ; line_number = 39
1716                    ; global lows[buffer_size] array[byte]
1717 00000023 = lows equ globals___0+3
1718                    ; line_number = 40
1719                    ; global highs[buffer_size] array[byte]
1720 00000043 = highs equ globals___0+35
1721                    ; line_number = 41
1722                    ; global buffer_in byte
1723 00000063 = buffer_in equ globals___0+67
1724                    ; line_number = 42
1725                    ; global buffer_out byte
1726 00000064 = buffer_out equ globals___0+68
1727                    ; line_number = 43
1728                    ; global buffer_amount byte
1729 00000065 = buffer_amount equ globals___0+69
1730            
1731                    ; line_number = 45
1732                    ; global command byte
1733 00000066 = command equ globals___0+70
1734                    ; line_number = 46
1735                    ; global response byte
1736 00000067 = response equ globals___0+71
1737            
1738                    ; line_number = 48
1739                    ;info   48, 0
1740                    ; procedure main
1741   0000 :   main:
1742                    ; Initialize some registers
1743 0000 019f          clrf    _adcon0
1744 0001 1683          bsf     __rp0___byte, __rp0___bit
1745 0002 0191          clrf    _ansel
1746 0003 3007          movlw   7
1747 0004 1283          bcf     __rp0___byte, __rp0___bit
1748 0005 0099          movwf   _cmcon0
1749 0006 3039          movlw   57
1750 0007 1683          bsf     __rp0___byte, __rp0___bit
1751 0008 0085          movwf   _trisa
1752 0009 303c          movlw   60
1753 000a 0087          movwf   _trisc
1754                    ; arguments_none
1755                    ; line_number = 50
1756                    ;  returns_nothing
1757            
1758                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:X0=cu=>X0)
1759                    ; line_number = 52
1760                    ;  p0 := _false
1761                    ;info   52, 11
1762 000b 1283          bcf     __rp0___byte, __rp0___bit
1763 000c 1007          bcf     p0___byte, p0___bit
1764                    ; line_number = 53
1765                    ;  p1 := _false
1766                    ;info   53, 13
1767 000d 1087          bcf     p1___byte, p1___bit
1768                    ; line_number = 54
1769                    ;  p5 := _false
1770                    ;info   54, 14
1771 000e 1085          bcf     p5___byte, p5___bit
1772                    ; line_number = 55
1773                    ;  command := 0
1774                    ;info   55, 15
1775 000f 01e6          clrf    command
1776                    ; line_number = 56
1777                    ;  response := 0
1778                    ;info   56, 16
1779 0010 01e7          clrf    response
1780            
1781                    ; line_number = 58
1782                    ;  buffer_in := 0
1783                    ;info   58, 17
1784 0011 01e3          clrf    buffer_in
1785                    ; line_number = 59
1786                    ;  buffer_out := 0
1787                    ;info   59, 18
1788 0012 01e4          clrf    buffer_out
1789                    ; line_number = 60
1790                    ;  buffer_amount := 0
1791                    ;info   60, 19
1792 0013 01e5          clrf    buffer_amount
1793            
1794                    ; # Warm up the UART:
1795                    ; line_number = 63
1796                    ;  _trisc@5 := _true
1797                    ;info   63, 20
1798 00000087 = main__select__1___byte equ _trisc
1799 00000005 = main__select__1___bit equ 5
1800 0014 1683          bsf     __rp0___byte, __rp0___bit
1801 0015 1687          bsf     main__select__1___byte, main__select__1___bit
1802                    ; line_number = 64
1803                    ;  _trisc@4 := _true
1804                    ;info   64, 22
1805 00000087 = main__select__2___byte equ _trisc
1806 00000004 = main__select__2___bit equ 4
1807 0016 1607          bsf     main__select__2___byte, main__select__2___bit
1808            
1809                    ; line_number = 66
1810                    ;  _txsta := 0
1811                    ;info   66, 23
1812 0017 1283          bcf     __rp0___byte, __rp0___bit
1813 0018 0196          clrf    _txsta
1814                    ; line_number = 67
1815                    ;  _tx9 := _true
1816                    ;info   67, 25
1817 0019 1716          bsf     _tx9___byte, _tx9___bit
1818                    ; #_tx9 := _false
1819                    ; line_number = 69
1820                    ;  _txen := _true
1821                    ;info   69, 26
1822 001a 1696          bsf     _txen___byte, _txen___bit
1823                    ; line_number = 70
1824                    ;  _brgh := _true
1825                    ;info   70, 27
1826 001b 1516          bsf     _brgh___byte, _brgh___bit
1827            
1828                    ; line_number = 72
1829                    ;  _rcsta := 0
1830                    ;info   72, 28
1831 001c 0197          clrf    _rcsta
1832                    ; line_number = 73
1833                    ;  _spen := _true
1834                    ;info   73, 29
1835 001d 1797          bsf     _spen___byte, _spen___bit
1836                    ; line_number = 74
1837                    ;  _rx9 := _true
1838                    ;info   74, 30
1839 001e 1717          bsf     _rx9___byte, _rx9___bit
1840                    ; #_rx9 := _false
1841                    ; line_number = 76
1842                    ;  _cren := _true
1843                    ;info   76, 31
1844 001f 1617          bsf     _cren___byte, _cren___bit
1845                    ; #_adden := _true
1846                    ; line_number = 78
1847                    ;  _adden := _false
1848                    ;info   78, 32
1849 0020 1197          bcf     _adden___byte, _adden___bit
1850            
1851                    ; line_number = 80
1852                    ;  _baudctl := 0
1853                    ;info   80, 33
1854 0021 0191          clrf    _baudctl
1855                    ; line_number = 81
1856                    ;  _brg16 := _true
1857                    ;info   81, 34
1858 0022 1591          bsf     _brg16___byte, _brg16___bit
1859            
1860                    ; #_spbrg := _eusart_19200_low
1861                    ; #_spbrgh := _eusart_19200_high
1862                    ; #_spbrg := _eusart_115200_low
1863                    ; #_spbrgh := _eusart_115200_high
1864                    ; #_spbrg := _eusart_230400_low
1865                    ; #_spbrgh := _eusart_230400_high
1866                    ; #_spbrg := _eusart_406800_low
1867                    ; #_spbrgh := _eusart_406800_high
1868                    ; line_number = 91
1869                    ;  _spbrg := _eusart_500000_low
1870                    ;info   91, 35
1871 0023 3007          movlw   7
1872 0024 0093          movwf   _spbrg
1873                    ; line_number = 92
1874                    ;  _spbrgh := _eusart_500000_high
1875                    ;info   92, 37
1876 0025 0192          clrf    _spbrgh
1877                    ; #_spbrg := _eusart_500000_low
1878                    ; #_spbrgh := _eusart_625000_high
1879                    ; #_spbrg := _eusart_833333_low
1880                    ; #_spbrgh := _eusart_833333_high
1881                    ; #_spbrg := _eusart_1000000_low
1882                    ; #_spbrgh := _eusart_1000000_high
1883            
1884                    ; # For debugging only -- Just output pulses on {reset}:
1885                    ; #loop_forever
1886                    ; #	reset := _false
1887                    ; #	reset := _true
1888            
1889                    ; # For debugging only -- Just output pulses on {reset}:
1890                    ; #loop_forever
1891                    ; #	p5 := _false
1892                    ; #	p5 := _true
1893            
1894                    ; #loop_forever
1895                    ; #	if p6
1896                    ; #	    p5 := _true
1897                    ; #	    reset := _true
1898                    ; #	else
1899                    ; #	    p5 := _false
1900                    ; #	    reset := _false
1901            
1902                    ; line_number = 118
1903                    ;  loop_forever start
1904   0026 :   main__3:
1905                    ; line_number = 119
1906                    ; if p6 start
1907                    ;info   119, 38
1908                    ; =>bit_code_emit@symbol(): sym=p6
1909                    ; No 1TEST: true.size=7 false.size=7
1910                    ; No 2TEST: true.size=7 false.size=7
1911                    ; 2GOTO: Single test with two GOTO's
1912 0026 1d85          btfss   p6___byte, p6___bit
1913 0027 2830          goto    main__8
1914                    ; # P6=1; wait for it to go low:
1915                    ; line_number = 121
1916                    ;  while p6 start
1917   0028 :   main__6:
1918                    ;info   121, 40
1919                    ; =>bit_code_emit@symbol(): sym=p6
1920                    ; No 1TEST: true.size=3 false.size=0
1921                    ; No 2TEST: true.size=3 false.size=0
1922                    ; 1GOTO: Single test with GOTO
1923 0028 1d85          btfss   p6___byte, p6___bit
1924 0029 282d          goto    main__7
1925                    ; line_number = 122
1926                    ; if _rcif start
1927                    ;info   122, 42
1928                    ; =>bit_code_emit@symbol(): sym=_rcif
1929                    ; 1TEST: Single test with code in skip slot
1930 002a 1a8c          btfsc   _rcif___byte, _rcif___bit
1931                    ; line_number = 123
1932                    ; call byte_receive()
1933                    ;info   123, 43
1934 002b 2079          call    byte_receive
1935                    ; Recombine size1 = 0 || size2 = 0
1936                    ; line_number = 122
1937                    ; if _rcif done
1938 002c 2828          goto    main__6
1939                    ; Recombine size1 = 0 || size2 = 0
1940   002d :   main__7:
1941                    ; line_number = 121
1942                    ;  while p6 done
1943                    ; line_number = 124
1944                    ; call process()
1945                    ;info   124, 45
1946 002d 2039          call    process
1947                    ; line_number = 125
1948                    ;  p5 := _false
1949                    ;info   125, 46
1950 002e 1085          bcf     p5___byte, p5___bit
1951 002f 2838          goto    main__9
1952                    ; 2GOTO: Starting code 2
1953   0030 :   main__8:
1954 0030 1303          bcf     __rp1___byte, __rp1___bit
1955                    ; # P6=0; wait for it to go high:
1956                    ; line_number = 128
1957                    ;  while !p6 start
1958   0031 :   main__4:
1959                    ;info   128, 49
1960                    ; =>bit_code_emit@symbol(): sym=p6
1961                    ; No 1TEST: true.size=0 false.size=3
1962                    ; No 2TEST: true.size=0 false.size=3
1963                    ; 1GOTO: Single test with GOTO
1964 0031 1985          btfsc   p6___byte, p6___bit
1965 0032 2836          goto    main__5
1966                    ; line_number = 129
1967                    ; if _rcif start
1968                    ;info   129, 51
1969                    ; =>bit_code_emit@symbol(): sym=_rcif
1970                    ; 1TEST: Single test with code in skip slot
1971 0033 1a8c          btfsc   _rcif___byte, _rcif___bit
1972                    ; line_number = 130
1973                    ; call byte_receive()
1974                    ;info   130, 52
1975 0034 2079          call    byte_receive
1976                    ; Recombine size1 = 0 || size2 = 0
1977                    ; line_number = 129
1978                    ; if _rcif done
1979 0035 2831          goto    main__4
1980   0036 :   main__5:
1981                    ; Recombine size1 = 0 || size2 = 0
1982                    ; line_number = 128
1983                    ;  while !p6 done
1984                    ; line_number = 131
1985                    ; call process()
1986                    ;info   131, 54
1987 0036 2039          call    process
1988                    ; line_number = 132
1989                    ;  p5 := _true
1990                    ;info   132, 55
1991 0037 1485          bsf     p5___byte, p5___bit
1992            
1993   0038 :   main__9:
1994                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
1995                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
1996                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
1997                    ; line_number = 119
1998                    ; if p6 done
1999                    ; line_number = 118
2000                    ;  loop_forever wrap-up
2001 0038 2826          goto    main__3
2002                    ; line_number = 118
2003                    ;  loop_forever done
2004                    ; delay after procedure statements=non-uniform
2005            
2006            
2007            
2008            
2009                    ; #    # Process commands:
2010                    ; #    loop_forever
2011                    ; #	# Wait for some data from the host:
2012                    ; #	while !p6
2013                    ; #	    if _rcif
2014                    ; #		call byte_receive()
2015                    ; #	call process()
2016                    ; #
2017                    ; #	# Wait for some data from the host:
2018                    ; #	while p6
2019                    ; #	    if _rcif
2020                    ; #		call byte_receive()
2021                    ; #	call process()
2022            
2023            
2024                    ; line_number = 149
2025                    ;info   149, 57
2026                    ; procedure process
2027   0039 :   process:
2028                    ; arguments_none
2029                    ; line_number = 151
2030                    ;  returns_nothing
2031            
2032                    ; # This procedure will process the bits coming in on P4:2 and
2033                    ; # respond with two bits on P1:0.
2034            
2035                    ; line_number = 156
2036                    ;  local low byte
2037 00000068 = process__low equ globals___0+72
2038                    ; line_number = 157
2039                    ;  local high byte
2040 00000069 = process__high equ globals___0+73
2041            
2042                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2043                    ; line_number = 159
2044                    ;  p1 := _false
2045                    ;info   159, 57
2046 0039 1087          bcf     p1___byte, p1___bit
2047                    ; line_number = 160
2048                    ;  p0 := _false
2049                    ;info   160, 58
2050 003a 1007          bcf     p0___byte, p0___bit
2051            
2052                    ; line_number = 162
2053                    ;  if p4 start
2054                    ;info   162, 59
2055                    ; =>bit_code_emit@symbol(): sym=p4
2056                    ; No 1TEST: true.size=42 false.size=16
2057                    ; No 2TEST: true.size=42 false.size=16
2058                    ; 2GOTO: Single test with two GOTO's
2059 003b 1c05          btfss   p4___byte, p4___bit
2060 003c 2868          goto    process__13
2061                    ; # We have a command to process:
2062                    ; line_number = 164
2063                    ;  if p3 start
2064                    ;info   164, 61
2065                    ; =>bit_code_emit@symbol(): sym=p3
2066                    ; No 1TEST: true.size=28 false.size=10
2067                    ; No 2TEST: true.size=28 false.size=10
2068                    ; 2GOTO: Single test with two GOTO's
2069 003d 1d87          btfss   p3___byte, p3___bit
2070 003e 285c          goto    process__11
2071                    ; # Command 1x:
2072                    ; line_number = 166
2073                    ;  if p2 start
2074                    ;info   166, 63
2075                    ; =>bit_code_emit@symbol(): sym=p2
2076                    ; No 1TEST: true.size=2 false.size=23
2077                    ; No 2TEST: true.size=2 false.size=23
2078                    ; 2GOTO: Single test with two GOTO's
2079 003f 1d07          btfss   p2___byte, p2___bit
2080 0040 2844          goto    process__9
2081                    ; # Command 11 (Reset):
2082                    ; line_number = 168
2083                    ;  reset := _false
2084                    ;info   168, 65
2085 0041 1105          bcf     reset___byte, reset___bit
2086                    ; line_number = 169
2087                    ;  delay 10 * microsecond start
2088                    ;info   169, 66
2089                    ; Delay expression evaluates to 0
2090                    ; line_number = 170
2091                    ; do_nothing
2092                    ;info   170, 66
2093                    ; line_number = 169
2094                    ;  delay 10 * microsecond done
2095                    ; line_number = 171
2096                    ; reset := _true
2097                    ;info   171, 66
2098 0042 1505          bsf     reset___byte, reset___bit
2099                    ; Recombine code1_bit_states != code2_bit_states
2100 0043 285b          goto    process__10
2101                    ; 2GOTO: Starting code 2
2102   0044 :   process__9:
2103                    ; # Command 10 (Receive Byte):
2104                    ; line_number = 174
2105                    ;  if buffer_amount = 0 start
2106                    ;info   174, 68
2107                    ; Left minus Right
2108 0044 0865          movf    buffer_amount,w
2109                    ; =>bit_code_emit@symbol(): sym=__z
2110                    ; No 1TEST: true.size=1 false.size=18
2111                    ; No 2TEST: true.size=1 false.size=18
2112                    ; 2GOTO: Single test with two GOTO's
2113 0045 1d03          btfss   __z___byte, __z___bit
2114 0046 2849          goto    process__7
2115                    ; # Empty buffer:
2116                    ; line_number = 176
2117                    ;  p1 := _true
2118                    ;info   176, 71
2119 0047 1487          bsf     p1___byte, p1___bit
2120                    ; Recombine code1_bit_states != code2_bit_states
2121 0048 285b          goto    process__8
2122                    ; 2GOTO: Starting code 2
2123   0049 :   process__7:
2124                    ; # We've got one:
2125                    ; line_number = 179
2126                    ;  high := highs[buffer_out & buffer_mask]
2127                    ;info   179, 73
2128 0049 301f          movlw   31
2129 004a 0564          andwf   buffer_out,w
2130 004b 3e43          addlw   highs
2131 004c 0084          movwf   __fsr
2132 004d 1383          bcf     __irp___byte, __irp___bit
2133 004e 0800          movf    __indf,w
2134 004f 00e9          movwf   process__high
2135                    ; line_number = 180
2136                    ;  if high@0 start
2137                    ;info   180, 80
2138 00000069 = process__select__6___byte equ process__high
2139 00000000 = process__select__6___bit equ 0
2140                    ; =>bit_code_emit@symbol(): sym=process__select__6
2141                    ; 1TEST: Single test with code in skip slot
2142 0050 1869          btfsc   process__select__6___byte, process__select__6___bit
2143                    ; line_number = 181
2144                    ; p0 := _true
2145                    ;info   181, 81
2146 0051 1407          bsf     p0___byte, p0___bit
2147                    ; Recombine size1 = 0 || size2 = 0
2148                    ; line_number = 180
2149                    ;  if high@0 done
2150                    ; line_number = 182
2151                    ; response := lows[buffer_out & buffer_mask]
2152                    ;info   182, 82
2153 0052 301f          movlw   31
2154 0053 0564          andwf   buffer_out,w
2155 0054 3e23          addlw   lows
2156 0055 0084          movwf   __fsr
2157 0056 1383          bcf     __irp___byte, __irp___bit
2158 0057 0800          movf    __indf,w
2159 0058 00e7          movwf   response
2160                    ; line_number = 183
2161                    ;  buffer_out := buffer_out + 1
2162                    ;info   183, 89
2163 0059 0ae4          incf    buffer_out,f
2164                    ; line_number = 184
2165                    ;  buffer_amount := buffer_amount - 1
2166                    ;info   184, 90
2167 005a 03e5          decf    buffer_amount,f
2168   005b :   process__8:
2169                    ; 2GOTO: code1 final bitstates:(data:X0=cu=>X0 code:XX=cc=>XX)
2170                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2171                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2172                    ; line_number = 174
2173                    ;  if buffer_amount = 0 done
2174   005b :   process__10:
2175                    ; 2GOTO: code1 final bitstates:(data:X0=cu=>X0 code:XX=cc=>XX)
2176                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2177                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2178                    ; line_number = 166
2179                    ;  if p2 done
2180 005b 2867          goto    process__12
2181                    ; 2GOTO: Starting code 2
2182   005c :   process__11:
2183 005c 1303          bcf     __rp1___byte, __rp1___bit
2184                    ; # Command 0x (Send a byte):
2185                    ; line_number = 187
2186                    ;  _tx9d := _false
2187                    ;info   187, 93
2188 005d 1016          bcf     _tx9d___byte, _tx9d___bit
2189                    ; line_number = 188
2190                    ;  if p2 start
2191                    ;info   188, 94
2192                    ; =>bit_code_emit@symbol(): sym=p2
2193                    ; 1TEST: Single test with code in skip slot
2194 005e 1907          btfsc   p2___byte, p2___bit
2195                    ; line_number = 189
2196                    ; _tx9d := _true
2197                    ;info   189, 95
2198 005f 1416          bsf     _tx9d___byte, _tx9d___bit
2199                    ; Recombine size1 = 0 || size2 = 0
2200                    ; line_number = 188
2201                    ;  if p2 done
2202                    ; line_number = 190
2203                    ; _txreg := command
2204                    ;info   190, 96
2205 0060 0866          movf    command,w
2206 0061 0095          movwf   _txreg
2207            
2208                    ; # Eat the echo:
2209                    ; line_number = 193
2210                    ;  while !_rcif start
2211   0062 :   process__5:
2212                    ;info   193, 98
2213                    ; =>bit_code_emit@symbol(): sym=_rcif
2214                    ; 1TEST: Single test with code in skip slot
2215 0062 1e8c          btfss   _rcif___byte, _rcif___bit
2216                    ; line_number = 194
2217                    ; do_nothing
2218                    ;info   194, 99
2219 0063 2862          goto    process__5
2220                    ; Recombine size1 = 0 || size2 = 0
2221                    ; line_number = 193
2222                    ;  while !_rcif done
2223                    ; line_number = 195
2224                    ; command := _rcreg
2225                    ;info   195, 100
2226 0064 0814          movf    _rcreg,w
2227 0065 00e6          movwf   command
2228                    ; line_number = 196
2229                    ;  p1 := _true
2230                    ;info   196, 102
2231 0066 1487          bsf     p1___byte, p1___bit
2232   0067 :   process__12:
2233                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2234                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2235                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2236                    ; line_number = 164
2237                    ;  if p3 done
2238                    ; Recombine code1_bit_states != code2_bit_states
2239 0067 2878          goto    process__14
2240                    ; 2GOTO: Starting code 2
2241   0068 :   process__13:
2242                    ; # We just need to shift command data in and the response data out:
2243                    ; line_number = 199
2244                    ;  command := command >> 2
2245                    ;info   199, 104
2246                    ; Assignment of variable to self (no code needed)
2247 0068 0ce6          rrf     command,f
2248 0069 0ce6          rrf     command,f
2249 006a 303f          movlw   63
2250 006b 05e6          andwf   command,f
2251                    ; line_number = 200
2252                    ;  if p3 start
2253                    ;info   200, 108
2254                    ; =>bit_code_emit@symbol(): sym=p3
2255                    ; 1TEST: Single test with code in skip slot
2256 006c 1987          btfsc   p3___byte, p3___bit
2257                    ; line_number = 201
2258                    ; command@7 := _true
2259                    ;info   201, 109
2260 00000066 = process__select__1___byte equ command
2261 00000007 = process__select__1___bit equ 7
2262 006d 17e6          bsf     process__select__1___byte, process__select__1___bit
2263                    ; Recombine size1 = 0 || size2 = 0
2264                    ; line_number = 200
2265                    ;  if p3 done
2266                    ; line_number = 202
2267                    ; if p2 start
2268                    ;info   202, 110
2269                    ; =>bit_code_emit@symbol(): sym=p2
2270                    ; 1TEST: Single test with code in skip slot
2271 006e 1907          btfsc   p2___byte, p2___bit
2272                    ; line_number = 203
2273                    ; command@6 := _true
2274                    ;info   203, 111
2275 00000066 = process__select__2___byte equ command
2276 00000006 = process__select__2___bit equ 6
2277 006f 1766          bsf     process__select__2___byte, process__select__2___bit
2278            
2279                    ; Recombine size1 = 0 || size2 = 0
2280                    ; line_number = 202
2281                    ; if p2 done
2282                    ; line_number = 205
2283                    ; if response@7 start
2284                    ;info   205, 112
2285 00000067 = process__select__3___byte equ response
2286 00000007 = process__select__3___bit equ 7
2287                    ; =>bit_code_emit@symbol(): sym=process__select__3
2288                    ; 1TEST: Single test with code in skip slot
2289 0070 1be7          btfsc   process__select__3___byte, process__select__3___bit
2290                    ; line_number = 206
2291                    ; p1 := _true
2292                    ;info   206, 113
2293 0071 1487          bsf     p1___byte, p1___bit
2294                    ; Recombine size1 = 0 || size2 = 0
2295                    ; line_number = 205
2296                    ; if response@7 done
2297                    ; line_number = 207
2298                    ; if response@6 start
2299                    ;info   207, 114
2300 00000067 = process__select__4___byte equ response
2301 00000006 = process__select__4___bit equ 6
2302                    ; =>bit_code_emit@symbol(): sym=process__select__4
2303                    ; 1TEST: Single test with code in skip slot
2304 0072 1b67          btfsc   process__select__4___byte, process__select__4___bit
2305                    ; line_number = 208
2306                    ; p0 := _true
2307                    ;info   208, 115
2308 0073 1407          bsf     p0___byte, p0___bit
2309                    ; Recombine size1 = 0 || size2 = 0
2310                    ; line_number = 207
2311                    ; if response@6 done
2312                    ; line_number = 209
2313                    ; response := response << 2
2314                    ;info   209, 116
2315                    ; Assignment of variable to self (no code needed)
2316 0074 0de7          rlf     response,f
2317 0075 0de7          rlf     response,f
2318 0076 30fc          movlw   252
2319 0077 05e7          andwf   response,f
2320            
2321            
2322   0078 :   process__14:
2323                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2324                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2325                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2326                    ; line_number = 162
2327                    ;  if p4 done
2328                    ; delay after procedure statements=non-uniform
2329                    ; Implied return
2330 0078 3400          retlw   0
2331            
2332            
2333            
2334            
2335                    ; line_number = 212
2336                    ;info   212, 121
2337                    ; procedure byte_receive
2338   0079 :   byte_receive:
2339                    ; arguments_none
2340                    ; line_number = 214
2341                    ;  returns_nothing
2342            
2343                    ; # This procedure will receive a 9-bit "byte" from the UART
2344                    ; # and store the result into the {highs} and {lows} buffers.
2345            
2346                    ; line_number = 219
2347                    ;  local high byte
2348 0000006a = byte_receive__high equ globals___0+74
2349                    ; line_number = 220
2350                    ;  local low byte
2351 0000006b = byte_receive__low equ globals___0+75
2352            
2353                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2354                    ; line_number = 222
2355                    ;  high := 0
2356                    ;info   222, 121
2357 0079 01ea          clrf    byte_receive__high
2358                    ; line_number = 223
2359                    ;  if _rx9d start
2360                    ;info   223, 122
2361                    ; =>bit_code_emit@symbol(): sym=_rx9d
2362                    ; 1TEST: Single test with code in skip slot
2363 007a 1817          btfsc   _rx9d___byte, _rx9d___bit
2364                    ; line_number = 224
2365                    ; high@0 := _true
2366                    ;info   224, 123
2367 0000006a = byte_receive__select__1___byte equ byte_receive__high
2368 00000000 = byte_receive__select__1___bit equ 0
2369 007b 146a          bsf     byte_receive__select__1___byte, byte_receive__select__1___bit
2370                    ; Recombine size1 = 0 || size2 = 0
2371                    ; line_number = 223
2372                    ;  if _rx9d done
2373                    ; line_number = 225
2374                    ; highs[buffer_in & buffer_mask] := high
2375                    ;info   225, 124
2376                    ; index_fsr_first
2377 007c 301f          movlw   31
2378 007d 0563          andwf   buffer_in,w
2379 007e 3e43          addlw   highs
2380 007f 0084          movwf   __fsr
2381 0080 1383          bcf     __irp___byte, __irp___bit
2382 0081 086a          movf    byte_receive__high,w
2383 0082 0080          movwf   __indf
2384                    ; line_number = 226
2385                    ;  lows[buffer_in & buffer_mask] := _rcreg
2386                    ;info   226, 131
2387                    ; index_fsr_first
2388 0083 301f          movlw   31
2389 0084 0563          andwf   buffer_in,w
2390 0085 3e23          addlw   lows
2391 0086 0084          movwf   __fsr
2392 0087 1383          bcf     __irp___byte, __irp___bit
2393 0088 0814          movf    _rcreg,w
2394 0089 0080          movwf   __indf
2395                    ; line_number = 227
2396                    ;  buffer_in := buffer_in + 1
2397                    ;info   227, 138
2398 008a 0ae3          incf    buffer_in,f
2399                    ; line_number = 228
2400                    ;  buffer_amount := buffer_amount + 1
2401                    ;info   228, 139
2402 008b 0ae5          incf    buffer_amount,f
2403            
2404            
2405            
2406            
2407            
2408                    ; delay after procedure statements=non-uniform
2409                    ; Implied return
2410 008c 3400          retlw   0
2411            
2412            
2413            
2414            
2415            
2416                    ; Appending 7 delayed procedures to code bank 0
2417                    ; buffer = '_uart'
2418                    ; line_number = 7
2419                    ;info   7, 141
2420                    ; procedure _uart_byte_safe_get
2421   008d :   _uart_byte_safe_get:
2422                    ; arguments_none
2423                    ; line_number = 9
2424                    ;  returns byte
2425            
2426                    ; # This procedure will the next byte from UART.  If no byte
2427                    ; # received in a reasonable time, 0xfc is returned.
2428            
2429                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2430                    ; line_number = 14
2431                    ;  loop_exactly 255 start
2432                    ;info   14, 141
2433 0000006c = _uart_byte_safe_get__1 equ globals___0+76
2434 008d 30ff          movlw   255
2435 008e 00ec          movwf   _uart_byte_safe_get__1
2436   008f :   _uart_byte_safe_get__2:
2437                    ; line_number = 15
2438                    ; loop_exactly 255 start
2439                    ;info   15, 143
2440 0000006d = _uart_byte_safe_get__3 equ globals___0+77
2441 008f 30ff          movlw   255
2442 0090 00ed          movwf   _uart_byte_safe_get__3
2443   0091 :   _uart_byte_safe_get__4:
2444                    ; line_number = 16
2445                    ; if _rcif start
2446                    ;info   16, 145
2447                    ; =>bit_code_emit@symbol(): sym=_rcif
2448                    ; No 1TEST: true.size=2 false.size=0
2449                    ; No 2TEST: true.size=2 false.size=0
2450                    ; 1GOTO: Single test with GOTO
2451 0091 1e8c          btfss   _rcif___byte, _rcif___bit
2452 0092 2895          goto    _uart_byte_safe_get__5
2453                    ; line_number = 17
2454                    ; return _rcreg start
2455                    ; line_number = 17
2456                    ;info   17, 147
2457 0093 0814          movf    _rcreg,w
2458 0094 0008          return  
2459                    ; line_number = 17
2460                    ; return _rcreg done
2461                    ; Recombine size1 = 0 || size2 = 0
2462   0095 :   _uart_byte_safe_get__5:
2463                    ; line_number = 16
2464                    ; if _rcif done
2465                    ; line_number = 15
2466                    ; loop_exactly 255 wrap-up
2467 0095 0bed          decfsz  _uart_byte_safe_get__3,f
2468 0096 2891          goto    _uart_byte_safe_get__4
2469                    ; line_number = 15
2470                    ; loop_exactly 255 done
2471                    ; line_number = 14
2472                    ;  loop_exactly 255 wrap-up
2473 0097 0bec          decfsz  _uart_byte_safe_get__1,f
2474 0098 288f          goto    _uart_byte_safe_get__2
2475                    ; line_number = 14
2476                    ;  loop_exactly 255 done
2477                    ; line_number = 18
2478                    ; return 0xfc start
2479                    ; line_number = 18
2480                    ;info   18, 153
2481 0099 34fc          retlw   252
2482                    ; line_number = 18
2483                    ; return 0xfc done
2484            
2485            
2486                    ; delay after procedure statements=non-uniform
2487            
2488            
2489            
2490            
2491                    ; line_number = 21
2492                    ;info   21, 154
2493                    ; procedure _uart_byte_get
2494   009a :   _uart_byte_get:
2495                    ; arguments_none
2496                    ; line_number = 23
2497                    ;  returns byte
2498            
2499                    ; # This procedure will return the next byte from the UART.
2500            
2501                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2502                    ; line_number = 27
2503                    ;  while !_rcif start
2504   009a :   _uart_byte_get__1:
2505                    ;info   27, 154
2506                    ; =>bit_code_emit@symbol(): sym=_rcif
2507                    ; 1TEST: Single test with code in skip slot
2508 009a 1e8c          btfss   _rcif___byte, _rcif___bit
2509                    ; line_number = 28
2510                    ; do_nothing
2511                    ;info   28, 155
2512 009b 289a          goto    _uart_byte_get__1
2513                    ; Recombine size1 = 0 || size2 = 0
2514                    ; line_number = 27
2515                    ;  while !_rcif done
2516                    ; line_number = 29
2517                    ; return _rcreg start
2518                    ; line_number = 29
2519                    ;info   29, 156
2520 009c 0814          movf    _rcreg,w
2521 009d 0008          return  
2522                    ; line_number = 29
2523                    ; return _rcreg done
2524            
2525            
2526                    ; delay after procedure statements=non-uniform
2527            
2528            
2529            
2530            
2531                    ; line_number = 32
2532                    ;info   32, 158
2533                    ; procedure _uart_hex_put
2534   009e :   _uart_hex_put:
2535                    ; Last argument is sitting in W; save into argument variable
2536 009e 00a0          movwf   _uart_hex_put__value
2537                    ; delay=4294967295
2538                    ; line_number = 33
2539                    ; argument value byte
2540 00000020 = _uart_hex_put__value equ globals___0
2541                    ; line_number = 34
2542                    ;  returns_nothing
2543            
2544                    ; # This procedure will output {value} to the UART as a 2-digit
2545                    ; # hexadecimal number.
2546            
2547                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2548                    ; line_number = 39
2549                    ;  call _uart_nibble_put(value >> 4)
2550                    ;info   39, 159
2551 0000006e = _uart_hex_put__1 equ globals___0+78
2552 009f 0e20          swapf   _uart_hex_put__value,w
2553 00a0 390f          andlw   15
2554 00a1 20a6          call    _uart_nibble_put
2555                    ; line_number = 40
2556                    ;  call _uart_nibble_put(value & 0xf)
2557                    ;info   40, 162
2558 00a2 300f          movlw   15
2559 00a3 0520          andwf   _uart_hex_put__value,w
2560 00a4 20a6          call    _uart_nibble_put
2561            
2562            
2563                    ; delay after procedure statements=non-uniform
2564                    ; Implied return
2565 00a5 3400          retlw   0
2566            
2567            
2568            
2569            
2570                    ; line_number = 43
2571                    ;info   43, 166
2572                    ; procedure _uart_nibble_put
2573   00a6 :   _uart_nibble_put:
2574                    ; Last argument is sitting in W; save into argument variable
2575 00a6 00a1          movwf   _uart_nibble_put__nibble
2576                    ; delay=4294967295
2577                    ; line_number = 44
2578                    ; argument nibble byte
2579 00000021 = _uart_nibble_put__nibble equ globals___0+1
2580                    ; line_number = 45
2581                    ;  returns_nothing
2582            
2583                    ; # This procedure will output {value} to UART as a 1 digit
2584                    ; # hexadecimal number.
2585            
2586                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2587                    ; line_number = 50
2588                    ;  if nibble < 10 start
2589                    ;info   50, 167
2590 00a7 300a          movlw   10
2591 00a8 0221          subwf   _uart_nibble_put__nibble,w
2592                    ; =>bit_code_emit@symbol(): sym=__c
2593                    ; No 1TEST: true.size=1 false.size=1
2594                    ; 2TEST: two tests with code in both delay slots
2595 00a9 1803          btfsc   __c___byte, __c___bit
2596                    ; line_number = 53
2597                    ; nibble := nibble - 10 + 'A'
2598                    ;info   53, 170
2599 00aa 3037          movlw   55
2600 00ab 1c03          btfss   __c___byte, __c___bit
2601                    ; line_number = 51
2602                    ; nibble := nibble + '0'
2603                    ;info   51, 172
2604 00ac 3030          movlw   48
2605 00ad 07a1          addwf   _uart_nibble_put__nibble,f
2606                    ; line_number = 50
2607                    ;  if nibble < 10 done
2608                    ; line_number = 54
2609                    ; call _uart_byte_put(nibble)
2610                    ;info   54, 174
2611 00ae 0821          movf    _uart_nibble_put__nibble,w
2612 00af 20b9          call    _uart_byte_put
2613            
2614            
2615                    ; delay after procedure statements=non-uniform
2616                    ; Implied return
2617 00b0 3400          retlw   0
2618            
2619            
2620            
2621            
2622                    ; line_number = 57
2623                    ;info   57, 177
2624                    ; procedure _uart_space_put
2625   00b1 :   _uart_space_put:
2626                    ; arguments_none
2627                    ; line_number = 59
2628                    ;  returns_nothing
2629            
2630                    ; # This procedure will output a space to the UART.
2631            
2632                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2633                    ; line_number = 63
2634                    ;  call _uart_byte_put(' ')
2635                    ;info   63, 177
2636 00b1 3020          movlw   32
2637 00b2 20b9          call    _uart_byte_put
2638            
2639            
2640                    ; delay after procedure statements=non-uniform
2641                    ; Implied return
2642 00b3 3400          retlw   0
2643            
2644            
2645            
2646            
2647                    ; line_number = 66
2648                    ;info   66, 180
2649                    ; procedure _uart_crlf_put
2650   00b4 :   _uart_crlf_put:
2651                    ; arguments_none
2652                    ; line_number = 68
2653                    ;  returns_nothing
2654            
2655                    ; # This procedure will output a carriage return line feed sequecne to
2656                    ; # the UART.
2657            
2658                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2659                    ; line_number = 73
2660                    ;  call _uart_byte_put('\cr\')
2661                    ;info   73, 180
2662 00b4 300d          movlw   13
2663 00b5 20b9          call    _uart_byte_put
2664                    ; line_number = 74
2665                    ;  call _uart_byte_put('\lf\')
2666                    ;info   74, 182
2667 00b6 300a          movlw   10
2668 00b7 20b9          call    _uart_byte_put
2669            
2670            
2671                    ; delay after procedure statements=non-uniform
2672                    ; Implied return
2673 00b8 3400          retlw   0
2674            
2675            
2676            
2677            
2678                    ; line_number = 77
2679                    ;info   77, 185
2680                    ; procedure _uart_byte_put
2681   00b9 :   _uart_byte_put:
2682                    ; Last argument is sitting in W; save into argument variable
2683 00b9 00a2          movwf   _uart_byte_put__byte
2684                    ; delay=4294967295
2685                    ; line_number = 78
2686                    ; argument byte byte
2687 00000022 = _uart_byte_put__byte equ globals___0+2
2688                    ; line_number = 79
2689                    ;  returns_nothing
2690            
2691                    ; # This procedure will send {byte} out using to the UART.
2692            
2693                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2694                    ; line_number = 83
2695                    ;  while !_txif start
2696   00ba :   _uart_byte_put__1:
2697                    ;info   83, 186
2698                    ; =>bit_code_emit@symbol(): sym=_txif
2699                    ; 1TEST: Single test with code in skip slot
2700 00ba 1c8c          btfss   _txif___byte, _txif___bit
2701                    ; line_number = 84
2702                    ; do_nothing
2703                    ;info   84, 187
2704 00bb 28ba          goto    _uart_byte_put__1
2705                    ; Recombine size1 = 0 || size2 = 0
2706                    ; line_number = 83
2707                    ;  while !_txif done
2708                    ; line_number = 85
2709                    ; _txreg := byte
2710                    ;info   85, 188
2711 00bc 0822          movf    _uart_byte_put__byte,w
2712 00bd 0095          movwf   _txreg
2713            
2714            
2715                    ; delay after procedure statements=non-uniform
2716                    ; Implied return
2717 00be 3400          retlw   0
2718            
2719            
2720            
2721            
2722                    ; Code bank 1; Start address: 2048; End address: 4095
2723   0800 :           org     2048
2724                    ; Configuration bits
2725                    ; address = 0x2007, fill = 0x3000
2726                    ; fcmen = off (0x0)
2727                    ; ieso = off (0x0)
2728                    ; boden = off (0x0)
2729                    ; cpd = off (0x80)
2730                    ; cp = off (0x40)
2731                    ; mclre = off (0x0)
2732                    ; pwrte = off (0x10)
2733                    ; wdte = off (0x0)
2734                    ; fosc = hs (0x2)
2735                    ; 12498 = 0x30d2
2736   30d2 =           __config 12498
2737                    ; Define start addresses for data regions
2738                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
2739                    ; Region="globals___0" Address=32" Size=80 Bytes=79 Bits=0 Available=1
2740                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
2741                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
2742                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
2743                    end
