1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 4095
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) 2006 by Wayne C. Gramlich
31                      ; # All rights reserved.
32              
33                      ; # This module uses a PIC16F688:
34                      ; buffer = 'sonar4'
35                      ; line_number = 7
36                      ; library _pic16f688 entered
37              
38                      ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
39                      ; # All rights reserved.
40              
41                      ; buffer = '_pic16f688'
42                      ; line_number = 6
43                      ; processor pic16f688
44                      ; line_number = 7
45                      ; configure_address 0x2007
46                      ; line_number = 8
47                      ;  configure_fill 0x3000
48                      ; line_number = 9
49                      ;  configure_option fcmen: on = 0x800
50                      ; line_number = 10
51                      ;  configure_option fcmen: off = 0x000
52                      ; line_number = 11
53                      ;  configure_option ieso: on = 0x400
54                      ; line_number = 12
55                      ;  configure_option ieso: off = 0x000
56                      ; line_number = 13
57                      ;  configure_option boden: on = 0x300
58                      ; line_number = 14
59                      ;  configure_option boden: partial = 0x200
60                      ; line_number = 15
61                      ;  configure_option boden: sboden = 0x100
62                      ; line_number = 16
63                      ;  configure_option boden: off = 0x000
64                      ; line_number = 17
65                      ;  configure_option cpd: on = 0x00
66                      ; line_number = 18
67                      ;  configure_option cpd: off = 0x80
68                      ; line_number = 19
69                      ;  configure_option cp: on = 0x00
70                      ; line_number = 20
71                      ;  configure_option cp: off = 0x40
72                      ; line_number = 21
73                      ;  configure_option mclre: on = 0x20
74                      ; line_number = 22
75                      ;  configure_option mclre: off = 0x00
76                      ; line_number = 23
77                      ;  configure_option pwrte: on = 0x00
78                      ; line_number = 24
79                      ;  configure_option pwrte: off = 0x10
80                      ; line_number = 25
81                      ;  configure_option wdte: on = 8
82                      ; line_number = 26
83                      ;  configure_option wdte: off = 0
84                      ; line_number = 27
85                      ;  configure_option fosc: rc_clk = 7
86                      ; line_number = 28
87                      ;  configure_option fosc: rc_no_clk = 6
88                      ; line_number = 29
89                      ;  configure_option fosc: int_clk = 5
90                      ; line_number = 30
91                      ;  configure_option fosc: int_no_clk = 4
92                      ; line_number = 31
93                      ;  configure_option fosc: ec = 3
94                      ; line_number = 32
95                      ;  configure_option fosc: hs = 2
96                      ; line_number = 33
97                      ;  configure_option fosc: xt = 1
98                      ; line_number = 34
99                      ;  configure_option fosc: lp = 0
100             
101                     ; line_number = 36
102                     ;  code_bank 0x0 : 0xfff
103                     ; line_number = 37
104                     ;  data_bank 0x0 : 0x7f
105                     ; line_number = 38
106                     ;  data_bank 0x80 : 0xff
107                     ; line_number = 39
108                     ;  data_bank 0x100 : 0x17f
109                     ; line_number = 40
110                     ;  data_bank 0x180 : 0x1ff
111             
112                     ; line_number = 42
113                     ;  global_region 0x20 : 0x6f
114                     ; line_number = 43
115                     ;  icd2_global_region 0x20 : 0x6f
116             
117                     ; line_number = 45
118                     ;  global_region 0xa0 : 0xef
119                     ; line_number = 46
120                     ;  icd2_global_region 0xa0 : 0xef
121             
122                     ; line_number = 48
123                     ;  global_region 0x120 : 0x16f
124                     ; line_number = 49
125                     ;  icd2_global_region 0x120 : 0x164
126             
127                     ; line_number = 51
128                     ;  shared_region 0x70 : 0x7f
129                     ; line_number = 52
130                     ;  icd2_shared_region 0x71 : 0x7f
131             
132                     ; line_number = 54
133                     ;  interrupts_possible
134                     ; line_number = 55
135                     ;  packages pdip=14, soic=14, tssop=14
136                     ; line_number = 56
137                     ;  pin vdd, power_supply
138                     ; line_number = 57
139                     ; pin_bindings pdip=1, soic=1, tssop=1
140                     ; line_number = 58
141                     ; pin ra5_in, ra5_nc, ra5_out, t1cki, osc1, clkin
142                     ; line_number = 59
143                     ; pin_bindings pdip=2, soic=2, tssop=2
144                     ; line_number = 60
145                     ;  bind_to _porta@5
146                     ; line_number = 61
147                     ;  or_if ra5_in _trisa 32
148                     ; line_number = 62
149                     ;  or_if ra5_nc _trisa 32
150                     ; line_number = 63
151                     ;  or_if ra5_out _trisa 0
152                     ; line_number = 64
153                     ;  or_if osc1 _trisa 32
154                     ; line_number = 65
155                     ; pin ra4_in, ra4_nc, ra4_out, t1g, osc2, an3, clkout
156                     ; line_number = 66
157                     ; pin_bindings pdip=3, soic=3, tssop=3
158                     ; line_number = 67
159                     ;  bind_to _porta@4
160                     ; line_number = 68
161                     ;  or_if ra4_in _trisa 16
162                     ; line_number = 69
163                     ;  or_if ra4_nc _trisa 16
164                     ; line_number = 70
165                     ;  or_if ra4_out _trisa 0
166                     ; line_number = 71
167                     ;  or_if an3 _trisa 16
168                     ; line_number = 72
169                     ;  or_if osc2 _trisa 16
170                     ; line_number = 73
171                     ;  or_if ra4_in _ansel 0
172                     ; line_number = 74
173                     ;  or_if ra4_out _ansel 0
174                     ; line_number = 75
175                     ;  or_if an3 _ansel 8
176                     ; line_number = 76
177                     ;  or_if ra4_in _adcon0 0
178                     ; line_number = 77
179                     ;  or_if ra4_out _adcon0 0
180                     ; line_number = 78
181                     ;  or_if an3 _adcon0 1
182                     ; line_number = 79
183                     ; pin ra3_in, ra3_nc, mclr, vpp
184                     ; line_number = 80
185                     ; pin_bindings pdip=4, soic=4, tssop=4
186                     ; line_number = 81
187                     ;  bind_to _porta@3
188                     ; line_number = 82
189                     ;  or_if ra3_in _trisa 8
190                     ; line_number = 83
191                     ;  or_if ra3_nc _trisa 8
192                     ; line_number = 84
193                     ; pin rc5_in, rc5_nc, rc5_out, rx, dt
194                     ; line_number = 85
195                     ; pin_bindings pdip=5, soic=5, tssop=5
196                     ; line_number = 86
197                     ;  bind_to _portc@5
198                     ; line_number = 87
199                     ;  or_if rc5_in _trisc 32
200                     ; line_number = 88
201                     ;  or_if rc5_nc _trisc 32
202                     ; line_number = 89
203                     ;  or_if rc5_out _trisc 0
204                     ; line_number = 90
205                     ;  or_if rx _trisc 32
206                     ; line_number = 91
207                     ; pin rc4_in, rc4_nc, rc4_out, c2out, tx, ck
208                     ; line_number = 92
209                     ; pin_bindings pdip=6, soic=6, tssop=6
210                     ; line_number = 93
211                     ;  bind_to _portc@4
212                     ; line_number = 94
213                     ;  or_if rc4_in _trisc 16
214                     ; line_number = 95
215                     ;  or_if rc4_nc _trisc 16
216                     ; line_number = 96
217                     ;  or_if rc4_out _trisc 0
218                     ; # The UART documentation says TX must be marked as in input:
219                     ; line_number = 98
220                     ;  or_if tx _trisc 16
221                     ; line_number = 99
222                     ; pin rc3_in, rc3_nc, rc3_out, an7
223                     ; line_number = 100
224                     ; pin_bindings pdip=7, soic=7, tssop=7
225                     ; line_number = 101
226                     ;  bind_to _portc@3
227                     ; line_number = 102
228                     ;  or_if rc3_in _trisc 8
229                     ; line_number = 103
230                     ;  or_if rc3_nc _trisc 8
231                     ; line_number = 104
232                     ;  or_if rc3_out _trisc 0
233                     ; line_number = 105
234                     ;  or_if an7 _trisc 8
235                     ; line_number = 106
236                     ;  or_if rc3_in _ansel 0
237                     ; line_number = 107
238                     ;  or_if rc3_out _ansel 0
239                     ; line_number = 108
240                     ;  or_if an7 _ansel 128
241                     ; line_number = 109
242                     ;  or_if rc3_in _adcon0 0
243                     ; line_number = 110
244                     ;  or_if rc3_out _adcon0 0
245                     ; line_number = 111
246                     ;  or_if an7 _adcon0 1
247                     ; line_number = 112
248                     ; pin rc2_in, rc2_nc, rc2_out, an6
249                     ; line_number = 113
250                     ; pin_bindings pdip=8, soic=8, tssop=8
251                     ; line_number = 114
252                     ;  bind_to _portc@2
253                     ; line_number = 115
254                     ;  or_if rc2_in _trisc 4
255                     ; line_number = 116
256                     ;  or_if rc2_nc _trisc 4
257                     ; line_number = 117
258                     ;  or_if rc2_out _trisc 0
259                     ; line_number = 118
260                     ;  or_if an6 _trisc 4
261                     ; line_number = 119
262                     ;  or_if rc2_in _ansel 0
263                     ; line_number = 120
264                     ;  or_if rc2_out _ansel 0
265                     ; line_number = 121
266                     ;  or_if an6 _ansel 64
267                     ; line_number = 122
268                     ;  or_if rc2_in _adcon0 0
269                     ; line_number = 123
270                     ;  or_if rc2_out _adcon0 0
271                     ; line_number = 124
272                     ;  or_if an6 _adcon0 1
273                     ; line_number = 125
274                     ; pin rc1_in, rc1_nc, rc1_out, an5, c2in_minus
275                     ; line_number = 126
276                     ; pin_bindings pdip=9, soic=9, tssop=9
277                     ; line_number = 127
278                     ;  bind_to _portc@1
279                     ; line_number = 128
280                     ;  or_if rc1_in _trisc 2
281                     ; line_number = 129
282                     ;  or_if rc1_nc _trisc 2
283                     ; line_number = 130
284                     ;  or_if rc1_out _trisc 0
285                     ; line_number = 131
286                     ;  or_if rc1_in _cmcon0 7
287                     ; line_number = 132
288                     ;  or_if rc1_out _cmcon0 7
289                     ; line_number = 133
290                     ;  or_if an5 _trisc 2
291                     ; line_number = 134
292                     ;  or_if rc1_in _ansel 0
293                     ; line_number = 135
294                     ;  or_if rc1_out _ansel 0
295                     ; line_number = 136
296                     ;  or_if an5 _ansel 32
297                     ; line_number = 137
298                     ;  or_if rc1_in _adcon0 0
299                     ; line_number = 138
300                     ;  or_if rc1_out _adcon0 0
301                     ; line_number = 139
302                     ;  or_if an5 _adcon0 1
303                     ; line_number = 140
304                     ; pin rc0_in, rc0_nc, rc0_out, an4, c2in_plus
305                     ; line_number = 141
306                     ; pin_bindings pdip=10, soic=10, tssop=10
307                     ; line_number = 142
308                     ;  bind_to _portc@0
309                     ; line_number = 143
310                     ;  or_if rc0_in _trisc 1
311                     ; line_number = 144
312                     ;  or_if rc0_nc _trisc 1
313                     ; line_number = 145
314                     ;  or_if rc0_out _trisc 0
315                     ; line_number = 146
316                     ;  or_if rc0_in _cmcon0 7
317                     ; line_number = 147
318                     ;  or_if rc0_out _cmcon0 7
319                     ; line_number = 148
320                     ;  or_if an4 _trisc 1
321                     ; line_number = 149
322                     ;  or_if rc0_in _ansel 0
323                     ; line_number = 150
324                     ;  or_if rc0_out _ansel 0
325                     ; line_number = 151
326                     ;  or_if an4 _ansel 16
327                     ; line_number = 152
328                     ;  or_if rc0_in _adcon0 0
329                     ; line_number = 153
330                     ;  or_if rc0_out _adcon0 0
331                     ; line_number = 154
332                     ;  or_if an4 _adcon0 1
333                     ; line_number = 155
334                     ; pin ra2_in, ra2_nc, ra2_out, an2, c1out, t0cki, int
335                     ; line_number = 156
336                     ; pin_bindings pdip=11, soic=11, tssop=11
337                     ; line_number = 157
338                     ;  bind_to _porta@2
339                     ; line_number = 158
340                     ;  or_if ra2_in _trisa 4
341                     ; line_number = 159
342                     ;  or_if ra2_nc _trisa 4
343                     ; line_number = 160
344                     ;  or_if ra2_out _trisa 0
345                     ; line_number = 161
346                     ;  or_if an2 _trisa 4
347                     ; line_number = 162
348                     ;  or_if ra2_in _ansel 0
349                     ; line_number = 163
350                     ;  or_if ra2_out _ansel 0
351                     ; line_number = 164
352                     ;  or_if an2 _ansel 4
353                     ; line_number = 165
354                     ;  or_if ra2_in _adcon0 0
355                     ; line_number = 166
356                     ;  or_if ra2_out _adcon0 0
357                     ; line_number = 167
358                     ;  or_if an2 _adcon0 1
359                     ; line_number = 168
360                     ; pin ra1_in, ra1_nc, ra1_out, an1, c1in_minus, vref, icspclk
361                     ; line_number = 169
362                     ; pin_bindings pdip=12, soic=12, tssop=12
363                     ; line_number = 170
364                     ;  bind_to _porta@1
365                     ; line_number = 171
366                     ;  or_if ra1_in _trisa 2
367                     ; line_number = 172
368                     ;  or_if ra1_nc _trisa 2
369                     ; line_number = 173
370                     ;  or_if ra1_out _trisa 0
371                     ; line_number = 174
372                     ;  or_if ra1_in _cmcon0 7
373                     ; line_number = 175
374                     ;  or_if ra1_out _cmcon0 7
375                     ; line_number = 176
376                     ;  or_if an1 _trisa 2
377                     ; line_number = 177
378                     ;  or_if vref _trisa 2
379                     ; line_number = 178
380                     ;  or_if ra1_in _ansel 0
381                     ; line_number = 179
382                     ;  or_if ra1_out _ansel 0
383                     ; line_number = 180
384                     ;  or_if an1 _ansel 2
385                     ; line_number = 181
386                     ;  or_if vref _ansel 2
387                     ; line_number = 182
388                     ;  or_if ra1_in _adcon0 0
389                     ; line_number = 183
390                     ;  or_if ra1_out _adcon0 0
391                     ; line_number = 184
392                     ;  or_if an1 _adcon0 1		# Turn on _addon
393                     ; line_number = 185
394                     ;  or_if vref _adcon0 1		# Turn on _addon
395                     ; line_number = 186
396                     ;  or_if vref _adcon0 64		# Turn of _vcfg
397                     ; line_number = 187
398                     ; pin ra0_in, ra0_nc, ra0_out, an0, c1in_plus, icspdat, ulpwu
399                     ; line_number = 188
400                     ; pin_bindings pdip=13, soic=13, tssop=13
401                     ; line_number = 189
402                     ;  bind_to _porta@0
403                     ; line_number = 190
404                     ;  or_if ra0_in _trisa 1
405                     ; line_number = 191
406                     ;  or_if ra0_nc _trisa 1
407                     ; line_number = 192
408                     ;  or_if ra0_out _trisa 0
409                     ; line_number = 193
410                     ;  or_if ra0_in _cmcon0 7
411                     ; line_number = 194
412                     ;  or_if ra0_out _cmcon0 7
413                     ; line_number = 195
414                     ;  or_if an0 _trisa 1
415                     ; line_number = 196
416                     ;  or_if ra0_in _ansel 0
417                     ; line_number = 197
418                     ;  or_if ra0_out _ansel 0
419                     ; line_number = 198
420                     ;  or_if an0 _ansel 1
421                     ; line_number = 199
422                     ;  or_if ra0_in _adcon0 0
423                     ; line_number = 200
424                     ;  or_if ra0_out _adcon0 0
425                     ; line_number = 201
426                     ;  or_if an0 _adcon0 1
427                     ; line_number = 202
428                     ; pin vss, ground
429                     ; line_number = 203
430                     ; pin_bindings pdip=14, soic=14, tssop=14
431             
432                     ; line_number = 205
433                     ; library _standard entered
434             
435                     ; # Copyright (c) 2006 by Wayne C. Gramlich
436                     ; # All rights reserved.
437             
438                     ; # Standard definition for uCL:
439             
440                     ; buffer = '_standard'
441                     ; line_number = 8
442                     ; constant _true = (1 = 1)
443  00000001 = _true equ 1
444                     ; line_number = 9
445                     ; constant _false = (0 != 0)
446  00000000 = _false equ 0
447             
448             
449                     ; buffer = '_pic16f688'
450                     ; line_number = 205
451                     ; library _standard exited
452             
453             
454                     ; # Register/bit bindings:
455             
456                     ; # Databank 0 (0x0 - 0x7f):
457             
458                     ; line_number = 216
459                     ; register _indf = 
460  00000000 = _indf equ 0
461             
462                     ; line_number = 218
463                     ; register _tmr0 = 
464  00000001 = _tmr0 equ 1
465             
466                     ; line_number = 220
467                     ; register _pcl = 
468  00000002 = _pcl equ 2
469             
470                     ; line_number = 222
471                     ; register _status = 
472  00000003 = _status equ 3
473                     ; line_number = 223
474                     ; bind _irp = _status@7
475  00000003 = _irp___byte equ _status
476  00000007 = _irp___bit equ 7
477                     ; line_number = 224
478                     ; bind _rp1 = _status@5
479  00000003 = _rp1___byte equ _status
480  00000005 = _rp1___bit equ 5
481                     ; line_number = 225
482                     ; bind _rp0 = _status@5
483  00000003 = _rp0___byte equ _status
484  00000005 = _rp0___bit equ 5
485                     ; line_number = 226
486                     ; bind _to = _status@4
487  00000003 = _to___byte equ _status
488  00000004 = _to___bit equ 4
489                     ; line_number = 227
490                     ; bind _pd = _status@3
491  00000003 = _pd___byte equ _status
492  00000003 = _pd___bit equ 3
493                     ; line_number = 228
494                     ; bind _z = _status@2
495  00000003 = _z___byte equ _status
496  00000002 = _z___bit equ 2
497                     ; line_number = 229
498                     ; bind _dc = _status@1
499  00000003 = _dc___byte equ _status
500  00000001 = _dc___bit equ 1
501                     ; line_number = 230
502                     ; bind _c = _status@0
503  00000003 = _c___byte equ _status
504  00000000 = _c___bit equ 0
505             
506                     ; line_number = 232
507                     ; register _fsr = 
508  00000004 = _fsr equ 4
509             
510                     ; line_number = 234
511                     ; register _porta = 
512  00000005 = _porta equ 5
513                     ; line_number = 235
514                     ; register _ra = 
515  00000005 = _ra equ 5
516                     ; line_number = 236
517                     ; bind _ra5 = _porta@5
518  00000005 = _ra5___byte equ _porta
519  00000005 = _ra5___bit equ 5
520                     ; line_number = 237
521                     ; bind _ra4 = _porta@4
522  00000005 = _ra4___byte equ _porta
523  00000004 = _ra4___bit equ 4
524                     ; line_number = 238
525                     ; bind _ra3 = _porta@3
526  00000005 = _ra3___byte equ _porta
527  00000003 = _ra3___bit equ 3
528                     ; line_number = 239
529                     ; bind _ra2 = _porta@2
530  00000005 = _ra2___byte equ _porta
531  00000002 = _ra2___bit equ 2
532                     ; line_number = 240
533                     ; bind _ra1 = _porta@1
534  00000005 = _ra1___byte equ _porta
535  00000001 = _ra1___bit equ 1
536                     ; line_number = 241
537                     ; bind _ra0 = _porta@0
538  00000005 = _ra0___byte equ _porta
539  00000000 = _ra0___bit equ 0
540             
541                     ; line_number = 243
542                     ; register _portc = 
543  00000007 = _portc equ 7
544                     ; line_number = 244
545                     ; register _rc = 
546  00000007 = _rc equ 7
547                     ; line_number = 245
548                     ; bind _rc5 = _portc@5
549  00000007 = _rc5___byte equ _portc
550  00000005 = _rc5___bit equ 5
551                     ; line_number = 246
552                     ; bind _rc4 = _portc@4
553  00000007 = _rc4___byte equ _portc
554  00000004 = _rc4___bit equ 4
555                     ; line_number = 247
556                     ; bind _rc3 = _portc@3
557  00000007 = _rc3___byte equ _portc
558  00000003 = _rc3___bit equ 3
559                     ; line_number = 248
560                     ; bind _rc2 = _portc@2
561  00000007 = _rc2___byte equ _portc
562  00000002 = _rc2___bit equ 2
563                     ; line_number = 249
564                     ; bind _rc1 = _portc@1
565  00000007 = _rc1___byte equ _portc
566  00000001 = _rc1___bit equ 1
567                     ; line_number = 250
568                     ; bind _rc0 = _portc@0
569  00000007 = _rc0___byte equ _portc
570  00000000 = _rc0___bit equ 0
571             
572                     ; line_number = 252
573                     ; register _pclath = 
574  0000000a = _pclath equ 10
575             
576                     ; line_number = 254
577                     ; register _intcon = 
578  0000000b = _intcon equ 11
579                     ; line_number = 255
580                     ; bind _gie = _intcon@7
581  0000000b = _gie___byte equ _intcon
582  00000007 = _gie___bit equ 7
583                     ; line_number = 256
584                     ; bind _peie = _intcon@6
585  0000000b = _peie___byte equ _intcon
586  00000006 = _peie___bit equ 6
587                     ; line_number = 257
588                     ; bind _t0ie = _intcon@5
589  0000000b = _t0ie___byte equ _intcon
590  00000005 = _t0ie___bit equ 5
591                     ; line_number = 258
592                     ; bind _inte = _intcon@4
593  0000000b = _inte___byte equ _intcon
594  00000004 = _inte___bit equ 4
595                     ; line_number = 259
596                     ; bind _raie = _intcon@3
597  0000000b = _raie___byte equ _intcon
598  00000003 = _raie___bit equ 3
599                     ; line_number = 260
600                     ; bind _t0if = _intcon@2
601  0000000b = _t0if___byte equ _intcon
602  00000002 = _t0if___bit equ 2
603                     ; line_number = 261
604                     ; bind _intf = _intcon@1
605  0000000b = _intf___byte equ _intcon
606  00000001 = _intf___bit equ 1
607                     ; line_number = 262
608                     ; bind _raif = _intcon@0
609  0000000b = _raif___byte equ _intcon
610  00000000 = _raif___bit equ 0
611             
612                     ; line_number = 264
613                     ; register _pir1 = 
614  0000000c = _pir1 equ 12
615                     ; line_number = 265
616                     ; bind _eeif = _pir1@7
617  0000000c = _eeif___byte equ _pir1
618  00000007 = _eeif___bit equ 7
619                     ; line_number = 266
620                     ; bind _adif = _pir1@6
621  0000000c = _adif___byte equ _pir1
622  00000006 = _adif___bit equ 6
623                     ; line_number = 267
624                     ; bind _rcif = _pir1@5
625  0000000c = _rcif___byte equ _pir1
626  00000005 = _rcif___bit equ 5
627                     ; line_number = 268
628                     ; bind _c2if = _pir1@4
629  0000000c = _c2if___byte equ _pir1
630  00000004 = _c2if___bit equ 4
631                     ; line_number = 269
632                     ; bind _c1if = _pir1@3
633  0000000c = _c1if___byte equ _pir1
634  00000003 = _c1if___bit equ 3
635                     ; line_number = 270
636                     ; bind _osfif = _pir1@2
637  0000000c = _osfif___byte equ _pir1
638  00000002 = _osfif___bit equ 2
639                     ; line_number = 271
640                     ; bind _txif = _pir1@1
641  0000000c = _txif___byte equ _pir1
642  00000001 = _txif___bit equ 1
643                     ; line_number = 272
644                     ; bind _tmr1if = _pir1@0
645  0000000c = _tmr1if___byte equ _pir1
646  00000000 = _tmr1if___bit equ 0
647             
648                     ; line_number = 274
649                     ; register _tmr1l = 
650  0000000e = _tmr1l equ 14
651             
652                     ; line_number = 276
653                     ; register _tmr1h = 
654  0000000f = _tmr1h equ 15
655             
656                     ; line_number = 278
657                     ; register _t1con = 
658  00000010 = _t1con equ 16
659                     ; line_number = 279
660                     ; bind t1ginv = _t1con@7
661  00000010 = t1ginv___byte equ _t1con
662  00000007 = t1ginv___bit equ 7
663                     ; line_number = 280
664                     ; bind _tmr1ge = _t1con@6
665  00000010 = _tmr1ge___byte equ _t1con
666  00000006 = _tmr1ge___bit equ 6
667                     ; line_number = 281
668                     ; bind _t1ckps1 = _t1con@5
669  00000010 = _t1ckps1___byte equ _t1con
670  00000005 = _t1ckps1___bit equ 5
671                     ; line_number = 282
672                     ; bind _t1ckps0 = _t1con@4
673  00000010 = _t1ckps0___byte equ _t1con
674  00000004 = _t1ckps0___bit equ 4
675                     ; line_number = 283
676                     ; bind _t1oscen = _t1con@3
677  00000010 = _t1oscen___byte equ _t1con
678  00000003 = _t1oscen___bit equ 3
679                     ; line_number = 284
680                     ; bind _t1sync = _t1con@2
681  00000010 = _t1sync___byte equ _t1con
682  00000002 = _t1sync___bit equ 2
683                     ; line_number = 285
684                     ; bind _tmr1cs = _t1con@1
685  00000010 = _tmr1cs___byte equ _t1con
686  00000001 = _tmr1cs___bit equ 1
687                     ; line_number = 286
688                     ; bind _tmr1on = _t1con@0
689  00000010 = _tmr1on___byte equ _t1con
690  00000000 = _tmr1on___bit equ 0
691             
692                     ; line_number = 288
693                     ; register _baudctl = 
694  00000011 = _baudctl equ 17
695                     ; line_number = 289
696                     ; bind _abdovf = _baudctl@7
697  00000011 = _abdovf___byte equ _baudctl
698  00000007 = _abdovf___bit equ 7
699                     ; line_number = 290
700                     ; bind _rcidl = _baudctl@6
701  00000011 = _rcidl___byte equ _baudctl
702  00000006 = _rcidl___bit equ 6
703                     ; line_number = 291
704                     ; bind _sckp = _baudctl@4
705  00000011 = _sckp___byte equ _baudctl
706  00000004 = _sckp___bit equ 4
707                     ; line_number = 292
708                     ; bind _brg16 = _baudctl@3
709  00000011 = _brg16___byte equ _baudctl
710  00000003 = _brg16___bit equ 3
711                     ; line_number = 293
712                     ; bind _wue = _baudctl@1
713  00000011 = _wue___byte equ _baudctl
714  00000001 = _wue___bit equ 1
715                     ; line_number = 294
716                     ; bind _abden = _baudctl@0
717  00000011 = _abden___byte equ _baudctl
718  00000000 = _abden___bit equ 0
719             
720                     ; line_number = 296
721                     ; register _spbrgh = 
722  00000012 = _spbrgh equ 18
723             
724                     ; line_number = 298
725                     ; register _spbrg = 
726  00000013 = _spbrg equ 19
727             
728                     ; line_number = 300
729                     ; register _rcreg = 
730  00000014 = _rcreg equ 20
731             
732                     ; line_number = 302
733                     ; register _txreg = 
734  00000015 = _txreg equ 21
735             
736                     ; line_number = 304
737                     ; register _txsta = 
738  00000016 = _txsta equ 22
739                     ; line_number = 305
740                     ; bind _csrc = _txsta@7
741  00000016 = _csrc___byte equ _txsta
742  00000007 = _csrc___bit equ 7
743                     ; line_number = 306
744                     ; bind _tx9 = _txsta@6
745  00000016 = _tx9___byte equ _txsta
746  00000006 = _tx9___bit equ 6
747                     ; line_number = 307
748                     ; bind _txen = _txsta@5
749  00000016 = _txen___byte equ _txsta
750  00000005 = _txen___bit equ 5
751                     ; line_number = 308
752                     ; bind _sync = _txsta@4
753  00000016 = _sync___byte equ _txsta
754  00000004 = _sync___bit equ 4
755                     ; line_number = 309
756                     ; bind _sendb = _txsta@3
757  00000016 = _sendb___byte equ _txsta
758  00000003 = _sendb___bit equ 3
759                     ; line_number = 310
760                     ; bind _brgh = _txsta@2
761  00000016 = _brgh___byte equ _txsta
762  00000002 = _brgh___bit equ 2
763                     ; line_number = 311
764                     ; bind _trmt = _txsta@1
765  00000016 = _trmt___byte equ _txsta
766  00000001 = _trmt___bit equ 1
767                     ; line_number = 312
768                     ; bind _tx9d = _txsta@0
769  00000016 = _tx9d___byte equ _txsta
770  00000000 = _tx9d___bit equ 0
771             
772                     ; line_number = 314
773                     ; register _rcsta = 
774  00000017 = _rcsta equ 23
775                     ; line_number = 315
776                     ; bind _spen = _rcsta@7
777  00000017 = _spen___byte equ _rcsta
778  00000007 = _spen___bit equ 7
779                     ; line_number = 316
780                     ; bind _rx9 = _rcsta@6
781  00000017 = _rx9___byte equ _rcsta
782  00000006 = _rx9___bit equ 6
783                     ; line_number = 317
784                     ; bind _sren = _rcsta@5
785  00000017 = _sren___byte equ _rcsta
786  00000005 = _sren___bit equ 5
787                     ; line_number = 318
788                     ; bind _cren = _rcsta@4
789  00000017 = _cren___byte equ _rcsta
790  00000004 = _cren___bit equ 4
791                     ; line_number = 319
792                     ; bind _adden = _rcsta@3
793  00000017 = _adden___byte equ _rcsta
794  00000003 = _adden___bit equ 3
795                     ; line_number = 320
796                     ; bind _ferr = _rcsta@2
797  00000017 = _ferr___byte equ _rcsta
798  00000002 = _ferr___bit equ 2
799                     ; line_number = 321
800                     ; bind _oerr = _rcsta@1
801  00000017 = _oerr___byte equ _rcsta
802  00000001 = _oerr___bit equ 1
803                     ; line_number = 322
804                     ; bind _rx9d = _rcsta@0
805  00000017 = _rx9d___byte equ _rcsta
806  00000000 = _rx9d___bit equ 0
807             
808                     ; line_number = 324
809                     ; register _wdtcon = 
810  00000018 = _wdtcon equ 24
811                     ; line_number = 325
812                     ; bind _wdtps3 = _wdtcon@4
813  00000018 = _wdtps3___byte equ _wdtcon
814  00000004 = _wdtps3___bit equ 4
815                     ; line_number = 326
816                     ; bind _wdtps2 = _wdtcon@3
817  00000018 = _wdtps2___byte equ _wdtcon
818  00000003 = _wdtps2___bit equ 3
819                     ; line_number = 327
820                     ; bind _wdtps1 = _wdtcon@2
821  00000018 = _wdtps1___byte equ _wdtcon
822  00000002 = _wdtps1___bit equ 2
823                     ; line_number = 328
824                     ; bind _wdtps0 = _wdtcon@1
825  00000018 = _wdtps0___byte equ _wdtcon
826  00000001 = _wdtps0___bit equ 1
827                     ; line_number = 329
828                     ; bind _swdten = _wdtcon@0
829  00000018 = _swdten___byte equ _wdtcon
830  00000000 = _swdten___bit equ 0
831             
832                     ; line_number = 331
833                     ; register _cmcon0 = 
834  00000019 = _cmcon0 equ 25
835                     ; line_number = 332
836                     ; bind _c1out = _cmcon0@7
837  00000019 = _c1out___byte equ _cmcon0
838  00000007 = _c1out___bit equ 7
839                     ; line_number = 333
840                     ; bind _c2out = _cmcon0@6
841  00000019 = _c2out___byte equ _cmcon0
842  00000006 = _c2out___bit equ 6
843                     ; line_number = 334
844                     ; bind _c1inv = _cmcon0@5
845  00000019 = _c1inv___byte equ _cmcon0
846  00000005 = _c1inv___bit equ 5
847                     ; line_number = 335
848                     ; bind _c2inv = _cmcon0@4
849  00000019 = _c2inv___byte equ _cmcon0
850  00000004 = _c2inv___bit equ 4
851                     ; line_number = 336
852                     ; bind _cis = _cmcon0@3
853  00000019 = _cis___byte equ _cmcon0
854  00000003 = _cis___bit equ 3
855                     ; line_number = 337
856                     ; bind _cm2 = _cmcon0@2
857  00000019 = _cm2___byte equ _cmcon0
858  00000002 = _cm2___bit equ 2
859                     ; line_number = 338
860                     ; bind _cm1 = _cmcon0@1
861  00000019 = _cm1___byte equ _cmcon0
862  00000001 = _cm1___bit equ 1
863                     ; line_number = 339
864                     ; bind _cm0 = _cmcon0@0
865  00000019 = _cm0___byte equ _cmcon0
866  00000000 = _cm0___bit equ 0
867             
868                     ; line_number = 341
869                     ; register _cmcon1 = 
870  0000001a = _cmcon1 equ 26
871                     ; line_number = 342
872                     ; bind _t1gss = _cmcon1@0
873  0000001a = _t1gss___byte equ _cmcon1
874  00000000 = _t1gss___bit equ 0
875                     ; line_number = 343
876                     ; bind _c2sync = _cmcon1@1
877  0000001a = _c2sync___byte equ _cmcon1
878  00000001 = _c2sync___bit equ 1
879             
880                     ; line_number = 345
881                     ; register _adresh = 
882  0000001e = _adresh equ 30
883             
884                     ; line_number = 347
885                     ; register _adcon0 = 
886  0000001f = _adcon0 equ 31
887                     ; line_number = 348
888                     ; bind _adfm = _adcon0@7
889  0000001f = _adfm___byte equ _adcon0
890  00000007 = _adfm___bit equ 7
891                     ; line_number = 349
892                     ; bind _vcfg = _adcon0@6
893  0000001f = _vcfg___byte equ _adcon0
894  00000006 = _vcfg___bit equ 6
895                     ; line_number = 350
896                     ; bind _chs2 = _adcon0@4
897  0000001f = _chs2___byte equ _adcon0
898  00000004 = _chs2___bit equ 4
899                     ; line_number = 351
900                     ; bind _chs1 = _adcon0@3
901  0000001f = _chs1___byte equ _adcon0
902  00000003 = _chs1___bit equ 3
903                     ; line_number = 352
904                     ; bind _chs0 = _adcon0@2
905  0000001f = _chs0___byte equ _adcon0
906  00000002 = _chs0___bit equ 2
907                     ; line_number = 353
908                     ; bind _go = _adcon0@1
909  0000001f = _go___byte equ _adcon0
910  00000001 = _go___bit equ 1
911                     ; line_number = 354
912                     ; bind _adon = _adcon0@0
913  0000001f = _adon___byte equ _adcon0
914  00000000 = _adon___bit equ 0
915             
916                     ; # Data bank 1 (0x80-0xff):
917             
918                     ; line_number = 358
919                     ; register _option_reg = 
920  00000081 = _option_reg equ 129
921                     ; line_number = 359
922                     ; bind _rapu = _option_reg@7
923  00000081 = _rapu___byte equ _option_reg
924  00000007 = _rapu___bit equ 7
925                     ; line_number = 360
926                     ; bind _intedg = _option_reg@6
927  00000081 = _intedg___byte equ _option_reg
928  00000006 = _intedg___bit equ 6
929                     ; line_number = 361
930                     ; bind _t0cs = _option_reg@5
931  00000081 = _t0cs___byte equ _option_reg
932  00000005 = _t0cs___bit equ 5
933                     ; line_number = 362
934                     ; bind _t0se = _option_reg@4
935  00000081 = _t0se___byte equ _option_reg
936  00000004 = _t0se___bit equ 4
937                     ; line_number = 363
938                     ; bind _psa = _option_reg@3
939  00000081 = _psa___byte equ _option_reg
940  00000003 = _psa___bit equ 3
941                     ; line_number = 364
942                     ; bind _ps2 = _option_reg@2
943  00000081 = _ps2___byte equ _option_reg
944  00000002 = _ps2___bit equ 2
945                     ; line_number = 365
946                     ; bind _ps1 = _option_reg@1
947  00000081 = _ps1___byte equ _option_reg
948  00000001 = _ps1___bit equ 1
949                     ; line_number = 366
950                     ; bind _ps0 = _option_reg@0
951  00000081 = _ps0___byte equ _option_reg
952  00000000 = _ps0___bit equ 0
953             
954                     ; line_number = 368
955                     ; register _trisa = 
956  00000085 = _trisa equ 133
957                     ; line_number = 369
958                     ; bind _trisa5 = _trisa@5
959  00000085 = _trisa5___byte equ _trisa
960  00000005 = _trisa5___bit equ 5
961                     ; line_number = 370
962                     ; bind _trisa4 = _trisa@4
963  00000085 = _trisa4___byte equ _trisa
964  00000004 = _trisa4___bit equ 4
965                     ; line_number = 371
966                     ; bind _trisa3 = _trisa@3
967  00000085 = _trisa3___byte equ _trisa
968  00000003 = _trisa3___bit equ 3
969                     ; line_number = 372
970                     ; bind _trisa2 = _trisa@2
971  00000085 = _trisa2___byte equ _trisa
972  00000002 = _trisa2___bit equ 2
973                     ; line_number = 373
974                     ; bind _trisa1 = _trisa@1
975  00000085 = _trisa1___byte equ _trisa
976  00000001 = _trisa1___bit equ 1
977                     ; line_number = 374
978                     ; bind _trisa0 = _trisa@0
979  00000085 = _trisa0___byte equ _trisa
980  00000000 = _trisa0___bit equ 0
981             
982                     ; line_number = 376
983                     ; register _trisc = 
984  00000087 = _trisc equ 135
985                     ; line_number = 377
986                     ; bind _trisc5 = _trisc@5
987  00000087 = _trisc5___byte equ _trisc
988  00000005 = _trisc5___bit equ 5
989                     ; line_number = 378
990                     ; bind _trisc4 = _trisc@4
991  00000087 = _trisc4___byte equ _trisc
992  00000004 = _trisc4___bit equ 4
993                     ; line_number = 379
994                     ; bind _trisc3 = _trisc@3
995  00000087 = _trisc3___byte equ _trisc
996  00000003 = _trisc3___bit equ 3
997                     ; line_number = 380
998                     ; bind _trisc2 = _trisc@2
999  00000087 = _trisc2___byte equ _trisc
1000 00000002 = _trisc2___bit equ 2
1001                    ; line_number = 381
1002                    ; bind _trisc1 = _trisc@1
1003 00000087 = _trisc1___byte equ _trisc
1004 00000001 = _trisc1___bit equ 1
1005                    ; line_number = 382
1006                    ; bind _trisc0 = _trisc@0
1007 00000087 = _trisc0___byte equ _trisc
1008 00000000 = _trisc0___bit equ 0
1009            
1010                    ; line_number = 384
1011                    ; register _pie1 = 
1012 0000008c = _pie1 equ 140
1013                    ; line_number = 385
1014                    ; bind _eeie = _pie1@7
1015 0000008c = _eeie___byte equ _pie1
1016 00000007 = _eeie___bit equ 7
1017                    ; line_number = 386
1018                    ; bind _adie = _pie1@6
1019 0000008c = _adie___byte equ _pie1
1020 00000006 = _adie___bit equ 6
1021                    ; line_number = 387
1022                    ; bind _rcie = _pie1@5
1023 0000008c = _rcie___byte equ _pie1
1024 00000005 = _rcie___bit equ 5
1025                    ; line_number = 388
1026                    ; bind _c2ie = _pie1@4
1027 0000008c = _c2ie___byte equ _pie1
1028 00000004 = _c2ie___bit equ 4
1029                    ; line_number = 389
1030                    ; bind _c1ie = _pie1@3
1031 0000008c = _c1ie___byte equ _pie1
1032 00000003 = _c1ie___bit equ 3
1033                    ; line_number = 390
1034                    ; bind _osfie = _pie1@2
1035 0000008c = _osfie___byte equ _pie1
1036 00000002 = _osfie___bit equ 2
1037                    ; line_number = 391
1038                    ; bind _txie = _pie1@1
1039 0000008c = _txie___byte equ _pie1
1040 00000001 = _txie___bit equ 1
1041                    ; line_number = 392
1042                    ; bind _tmr1ie = _pie1@0
1043 0000008c = _tmr1ie___byte equ _pie1
1044 00000000 = _tmr1ie___bit equ 0
1045            
1046                    ; line_number = 394
1047                    ; register _pcon = 
1048 0000008e = _pcon equ 142
1049                    ; line_number = 395
1050                    ; bind _ulpwue = _pcon@5
1051 0000008e = _ulpwue___byte equ _pcon
1052 00000005 = _ulpwue___bit equ 5
1053                    ; line_number = 396
1054                    ; bind _sboden = _pcon@4
1055 0000008e = _sboden___byte equ _pcon
1056 00000004 = _sboden___bit equ 4
1057                    ; line_number = 397
1058                    ; bind _por = _pcon@1
1059 0000008e = _por___byte equ _pcon
1060 00000001 = _por___bit equ 1
1061                    ; line_number = 398
1062                    ; bind _bod = _pcon@0
1063 0000008e = _bod___byte equ _pcon
1064 00000000 = _bod___bit equ 0
1065            
1066                    ; line_number = 400
1067                    ; register _osccon = 
1068 0000008f = _osccon equ 143
1069                    ; line_number = 401
1070                    ; bind _ircf2 = _osccon@6
1071 0000008f = _ircf2___byte equ _osccon
1072 00000006 = _ircf2___bit equ 6
1073                    ; line_number = 402
1074                    ; bind _ircf1 = _osccon@5
1075 0000008f = _ircf1___byte equ _osccon
1076 00000005 = _ircf1___bit equ 5
1077                    ; line_number = 403
1078                    ; bind _ircf0 = _osccon@4
1079 0000008f = _ircf0___byte equ _osccon
1080 00000004 = _ircf0___bit equ 4
1081                    ; line_number = 404
1082                    ; bind _osts = _osccon@3
1083 0000008f = _osts___byte equ _osccon
1084 00000003 = _osts___bit equ 3
1085                    ; line_number = 405
1086                    ; bind _hts = _osccon@2
1087 0000008f = _hts___byte equ _osccon
1088 00000002 = _hts___bit equ 2
1089                    ; line_number = 406
1090                    ; bind _lts = _osccon@3
1091 0000008f = _lts___byte equ _osccon
1092 00000003 = _lts___bit equ 3
1093                    ; line_number = 407
1094                    ; bind _scs = _osccon@2
1095 0000008f = _scs___byte equ _osccon
1096 00000002 = _scs___bit equ 2
1097            
1098                    ; line_number = 409
1099                    ; register _osctune = 
1100 00000090 = _osctune equ 144
1101                    ; line_number = 410
1102                    ; bind _tun4 = _osctune@4
1103 00000090 = _tun4___byte equ _osctune
1104 00000004 = _tun4___bit equ 4
1105                    ; line_number = 411
1106                    ; bind _tun3 = _osctune@3
1107 00000090 = _tun3___byte equ _osctune
1108 00000003 = _tun3___bit equ 3
1109                    ; line_number = 412
1110                    ; bind _tun2 = _osctune@2
1111 00000090 = _tun2___byte equ _osctune
1112 00000002 = _tun2___bit equ 2
1113                    ; line_number = 413
1114                    ; bind _tun1 = _osctune@1
1115 00000090 = _tun1___byte equ _osctune
1116 00000001 = _tun1___bit equ 1
1117                    ; line_number = 414
1118                    ; bind _tun0 = _osctune@0
1119 00000090 = _tun0___byte equ _osctune
1120 00000000 = _tun0___bit equ 0
1121                    ; line_number = 415
1122                    ; constant _osccal_lsb = 1
1123 00000001 = _osccal_lsb equ 1
1124            
1125                    ; line_number = 417
1126                    ; register _ansel = 
1127 00000091 = _ansel equ 145
1128                    ; line_number = 418
1129                    ; bind _ans7 = _ansel@7
1130 00000091 = _ans7___byte equ _ansel
1131 00000007 = _ans7___bit equ 7
1132                    ; line_number = 419
1133                    ; bind _ans6 = _ansel@6
1134 00000091 = _ans6___byte equ _ansel
1135 00000006 = _ans6___bit equ 6
1136                    ; line_number = 420
1137                    ; bind _ans5 = _ansel@5
1138 00000091 = _ans5___byte equ _ansel
1139 00000005 = _ans5___bit equ 5
1140                    ; line_number = 421
1141                    ; bind _ans4 = _ansel@4
1142 00000091 = _ans4___byte equ _ansel
1143 00000004 = _ans4___bit equ 4
1144                    ; line_number = 422
1145                    ; bind _ans3 = _ansel@3
1146 00000091 = _ans3___byte equ _ansel
1147 00000003 = _ans3___bit equ 3
1148                    ; line_number = 423
1149                    ; bind _ans2 = _ansel@2
1150 00000091 = _ans2___byte equ _ansel
1151 00000002 = _ans2___bit equ 2
1152                    ; line_number = 424
1153                    ; bind _ans1 = _ansel@1
1154 00000091 = _ans1___byte equ _ansel
1155 00000001 = _ans1___bit equ 1
1156                    ; line_number = 425
1157                    ; bind _ans0 = _ansel@0
1158 00000091 = _ans0___byte equ _ansel
1159 00000000 = _ans0___bit equ 0
1160            
1161                    ; line_number = 427
1162                    ; register _wpua = 
1163 00000095 = _wpua equ 149
1164                    ; line_number = 428
1165                    ; bind _wpua5 = _wpua@5
1166 00000095 = _wpua5___byte equ _wpua
1167 00000005 = _wpua5___bit equ 5
1168                    ; line_number = 429
1169                    ; bind _wpua4 = _wpua@4
1170 00000095 = _wpua4___byte equ _wpua
1171 00000004 = _wpua4___bit equ 4
1172                    ; line_number = 430
1173                    ; bind _wpua2 = _wpua@2
1174 00000095 = _wpua2___byte equ _wpua
1175 00000002 = _wpua2___bit equ 2
1176                    ; line_number = 431
1177                    ; bind _wpua1 = _wpua@1
1178 00000095 = _wpua1___byte equ _wpua
1179 00000001 = _wpua1___bit equ 1
1180                    ; line_number = 432
1181                    ; bind _wpua0 = _wpua@0
1182 00000095 = _wpua0___byte equ _wpua
1183 00000000 = _wpua0___bit equ 0
1184            
1185                    ; line_number = 434
1186                    ; register _ioca = 
1187 00000096 = _ioca equ 150
1188                    ; line_number = 435
1189                    ; bind _ioca5 = _ioca@5
1190 00000096 = _ioca5___byte equ _ioca
1191 00000005 = _ioca5___bit equ 5
1192                    ; line_number = 436
1193                    ; bind _ioca4 = _ioca@4
1194 00000096 = _ioca4___byte equ _ioca
1195 00000004 = _ioca4___bit equ 4
1196                    ; line_number = 437
1197                    ; bind _ioca3 = _ioca@3
1198 00000096 = _ioca3___byte equ _ioca
1199 00000003 = _ioca3___bit equ 3
1200                    ; line_number = 438
1201                    ; bind _ioca2 = _ioca@2
1202 00000096 = _ioca2___byte equ _ioca
1203 00000002 = _ioca2___bit equ 2
1204                    ; line_number = 439
1205                    ; bind _ioca1 = _ioca@1
1206 00000096 = _ioca1___byte equ _ioca
1207 00000001 = _ioca1___bit equ 1
1208                    ; line_number = 440
1209                    ; bind _ioca0 = _ioca@0
1210 00000096 = _ioca0___byte equ _ioca
1211 00000000 = _ioca0___bit equ 0
1212            
1213                    ; line_number = 442
1214                    ; register _eedath = 
1215 00000097 = _eedath equ 151
1216            
1217                    ; line_number = 444
1218                    ; register _eeadrh = 
1219 00000098 = _eeadrh equ 152
1220            
1221                    ; line_number = 446
1222                    ; register _vrcon = 
1223 00000099 = _vrcon equ 153
1224                    ; line_number = 447
1225                    ; bind _vren = _vrcon@7
1226 00000099 = _vren___byte equ _vrcon
1227 00000007 = _vren___bit equ 7
1228                    ; line_number = 448
1229                    ; bind _vrr = _vrcon@5
1230 00000099 = _vrr___byte equ _vrcon
1231 00000005 = _vrr___bit equ 5
1232                    ; line_number = 449
1233                    ; bind _vr3 = _vrcon@3
1234 00000099 = _vr3___byte equ _vrcon
1235 00000003 = _vr3___bit equ 3
1236                    ; line_number = 450
1237                    ; bind _vr2 = _vrcon@2
1238 00000099 = _vr2___byte equ _vrcon
1239 00000002 = _vr2___bit equ 2
1240                    ; line_number = 451
1241                    ; bind _vr1 = _vrcon@1
1242 00000099 = _vr1___byte equ _vrcon
1243 00000001 = _vr1___bit equ 1
1244                    ; line_number = 452
1245                    ; bind _vr0 = _vrcon@0
1246 00000099 = _vr0___byte equ _vrcon
1247 00000000 = _vr0___bit equ 0
1248            
1249                    ; line_number = 454
1250                    ; register _eedat = 
1251 0000009a = _eedat equ 154
1252                    ; line_number = 455
1253                    ; bind _eedat7 = _eedat@7
1254 0000009a = _eedat7___byte equ _eedat
1255 00000007 = _eedat7___bit equ 7
1256                    ; line_number = 456
1257                    ; bind _eedat6 = _eedat@6
1258 0000009a = _eedat6___byte equ _eedat
1259 00000006 = _eedat6___bit equ 6
1260                    ; line_number = 457
1261                    ; bind _eedat5 = _eedat@5
1262 0000009a = _eedat5___byte equ _eedat
1263 00000005 = _eedat5___bit equ 5
1264                    ; line_number = 458
1265                    ; bind _eedat4 = _eedat@4
1266 0000009a = _eedat4___byte equ _eedat
1267 00000004 = _eedat4___bit equ 4
1268                    ; line_number = 459
1269                    ; bind _eedat3 = _eedat@3
1270 0000009a = _eedat3___byte equ _eedat
1271 00000003 = _eedat3___bit equ 3
1272                    ; line_number = 460
1273                    ; bind _eedat2 = _eedat@2
1274 0000009a = _eedat2___byte equ _eedat
1275 00000002 = _eedat2___bit equ 2
1276                    ; line_number = 461
1277                    ; bind _eedat1 = _eedat@1
1278 0000009a = _eedat1___byte equ _eedat
1279 00000001 = _eedat1___bit equ 1
1280                    ; line_number = 462
1281                    ; bind _eedat0 = _eedat@0
1282 0000009a = _eedat0___byte equ _eedat
1283 00000000 = _eedat0___bit equ 0
1284            
1285                    ; line_number = 464
1286                    ; register _eeadr = 
1287 0000009b = _eeadr equ 155
1288                    ; line_number = 465
1289                    ; bind _eeadr7 = _eeadr@7
1290 0000009b = _eeadr7___byte equ _eeadr
1291 00000007 = _eeadr7___bit equ 7
1292                    ; line_number = 466
1293                    ; bind _eeadr6 = _eeadr@6
1294 0000009b = _eeadr6___byte equ _eeadr
1295 00000006 = _eeadr6___bit equ 6
1296                    ; line_number = 467
1297                    ; bind _eeadr5 = _eeadr@5
1298 0000009b = _eeadr5___byte equ _eeadr
1299 00000005 = _eeadr5___bit equ 5
1300                    ; line_number = 468
1301                    ; bind _eeadr4 = _eeadr@4
1302 0000009b = _eeadr4___byte equ _eeadr
1303 00000004 = _eeadr4___bit equ 4
1304                    ; line_number = 469
1305                    ; bind _eeadr3 = _eeadr@3
1306 0000009b = _eeadr3___byte equ _eeadr
1307 00000003 = _eeadr3___bit equ 3
1308                    ; line_number = 470
1309                    ; bind _eeadr2 = _eeadr@2
1310 0000009b = _eeadr2___byte equ _eeadr
1311 00000002 = _eeadr2___bit equ 2
1312                    ; line_number = 471
1313                    ; bind _eeadr1 = _eeadr@1
1314 0000009b = _eeadr1___byte equ _eeadr
1315 00000001 = _eeadr1___bit equ 1
1316                    ; line_number = 472
1317                    ; bind _eeadr0 = _eeadr@0
1318 0000009b = _eeadr0___byte equ _eeadr
1319 00000000 = _eeadr0___bit equ 0
1320            
1321                    ; line_number = 474
1322                    ; register _eecon1 = 
1323 0000009c = _eecon1 equ 156
1324                    ; line_number = 475
1325                    ; bind _eepgd = _eecon1@7
1326 0000009c = _eepgd___byte equ _eecon1
1327 00000007 = _eepgd___bit equ 7
1328                    ; line_number = 476
1329                    ; bind _wrerr = _eecon1@3
1330 0000009c = _wrerr___byte equ _eecon1
1331 00000003 = _wrerr___bit equ 3
1332                    ; line_number = 477
1333                    ; bind _wren = _eecon1@2
1334 0000009c = _wren___byte equ _eecon1
1335 00000002 = _wren___bit equ 2
1336                    ; line_number = 478
1337                    ; bind _wr = _eecon1@1
1338 0000009c = _wr___byte equ _eecon1
1339 00000001 = _wr___bit equ 1
1340                    ; line_number = 479
1341                    ; bind _rd = _eecon1@0
1342 0000009c = _rd___byte equ _eecon1
1343 00000000 = _rd___bit equ 0
1344            
1345                    ; line_number = 481
1346                    ; register _eecon2 = 
1347 0000009d = _eecon2 equ 157
1348            
1349                    ; line_number = 483
1350                    ; register _adresl = 
1351 0000009e = _adresl equ 158
1352            
1353                    ; line_number = 485
1354                    ; register _adcon1 = 
1355 0000009f = _adcon1 equ 159
1356                    ; line_number = 486
1357                    ; bind _adcs2 = _adcon1@6
1358 0000009f = _adcs2___byte equ _adcon1
1359 00000006 = _adcs2___bit equ 6
1360                    ; line_number = 487
1361                    ; bind _adcs1 = _adcon1@5
1362 0000009f = _adcs1___byte equ _adcon1
1363 00000005 = _adcs1___bit equ 5
1364                    ; line_number = 488
1365                    ; bind _adcs0 = _adcon1@4
1366 0000009f = _adcs0___byte equ _adcon1
1367 00000004 = _adcs0___bit equ 4
1368            
1369                    ; # Data Bank 2 (0x100 - 0x17f):
1370            
1371                    ; buffer = 'sonar4'
1372                    ; line_number = 7
1373                    ; library _pic16f688 exited
1374            
1375                    ; # The system is running at 20MHz:
1376                    ; line_number = 10
1377                    ; library clock20mhz entered
1378                    ; # Copyright (c) 2004 by Wayne C. Gramlich
1379                    ; # All rights reserved.
1380            
1381                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1382                    ; # and {clocks_per_instruction}.
1383            
1384                    ; # Define processor constants:
1385                    ; buffer = 'clock20mhz'
1386                    ; line_number = 9
1387                    ; constant clock_rate = 20000000
1388 01312d00 = clock_rate equ 20000000
1389                    ; line_number = 10
1390                    ; constant clocks_per_instruction = 4
1391 00000004 = clocks_per_instruction equ 4
1392                    ; line_number = 11
1393                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1394 004c4b40 = instruction_rate equ 5000000
1395            
1396            
1397                    ; buffer = 'sonar4'
1398                    ; line_number = 10
1399                    ; library clock20mhz exited
1400                    ; # A microsecond takes 4 cycles at 20MHz:
1401                    ; line_number = 12
1402                    ; constant microsecond = 5
1403 00000005 = microsecond equ 5
1404            
1405                    ; # The {_eusart} library defines some baud rate generator constants:
1406                    ; line_number = 15
1407                    ; constant _eusart_clock = clock_rate
1408 01312d00 = _eusart_clock equ 20000000
1409                    ; line_number = 16
1410                    ; constant _eusart_factor = 4
1411 00000004 = _eusart_factor equ 4
1412                    ; line_number = 17
1413                    ; library _eusart entered
1414            
1415                    ; # Copyright (c) 2005 by Wayne C. Gramlich
1416                    ; # All rights reserved.
1417            
1418                    ; # This library contains a bunch of definitions for the Enhanced Universal
1419                    ; # Asynchronous Serial Receiver/Transmitter (EUSART) that is available
1420                    ; # on many of the PIC microcontrollers.
1421            
1422                    ; # In order to use this module you have to get two constants defined
1423                    ; # BEFORE including this library -- {_eusart_factor} and {_eusart_clock}.
1424                    ; # {_eusart_clock} should be set to the frequency oscillator for the chip.
1425                    ; # {_eusart_factor} should be set to 4, 16, or 64 depending upon whether
1426                    ; # the {_brg16} and {_brgh} bits are set.  Use the table below to select:
1427                    ; #
1428                    ; #        _{brg16}	{_brgh}		_{eusart_factor}
1429                    ; #	    0		   0		      64
1430                    ; #	    0		   1		      16
1431                    ; #	    1		   0		      16
1432                    ; #	    1		   1		       4
1433            
1434                    ; # 2400 baud:
1435                    ; buffer = '_eusart'
1436                    ; line_number = 23
1437                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1438 00000822 = _eusart_2400 equ 2082
1439                    ; line_number = 24
1440                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1441 00000022 = _eusart_2400_low equ 34
1442                    ; line_number = 25
1443                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1444 00000008 = _eusart_2400_high equ 8
1445                    ; line_number = 26
1446                    ; constant _eusart_2400_index = 0
1447 00000000 = _eusart_2400_index equ 0
1448                    ; # 4800 baud:
1449                    ; line_number = 28
1450                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1451 00000410 = _eusart_4800 equ 1040
1452                    ; line_number = 29
1453                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1454 00000010 = _eusart_4800_low equ 16
1455                    ; line_number = 30
1456                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1457 00000004 = _eusart_4800_high equ 4
1458                    ; line_number = 31
1459                    ; constant _eusart_4800_index = 1
1460 00000001 = _eusart_4800_index equ 1
1461                    ; # 9600 baud:
1462                    ; line_number = 33
1463                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1464 00000207 = _eusart_9600 equ 519
1465                    ; line_number = 34
1466                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1467 00000007 = _eusart_9600_low equ 7
1468                    ; line_number = 35
1469                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1470 00000002 = _eusart_9600_high equ 2
1471                    ; line_number = 36
1472                    ; constant _eusart_9600_index = 2
1473 00000002 = _eusart_9600_index equ 2
1474                    ; # 19200 baud:
1475                    ; line_number = 38
1476                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1477 00000103 = _eusart_19200 equ 259
1478                    ; line_number = 39
1479                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1480 00000003 = _eusart_19200_low equ 3
1481                    ; line_number = 40
1482                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1483 00000001 = _eusart_19200_high equ 1
1484                    ; line_number = 41
1485                    ; constant _eusart_19200_index = 3
1486 00000003 = _eusart_19200_index equ 3
1487                    ; # 38400 baud:
1488                    ; line_number = 43
1489                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1490 00000081 = _eusart_38400 equ 129
1491                    ; line_number = 44
1492                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1493 00000081 = _eusart_38400_low equ 129
1494                    ; line_number = 45
1495                    ; constant _eusart_38400_high = _eusart_38400 >> 8
1496 00000000 = _eusart_38400_high equ 0
1497                    ; line_number = 46
1498                    ; constant _eusart_38400_index = 4
1499 00000004 = _eusart_38400_index equ 4
1500                    ; # 57600 baud:
1501                    ; line_number = 48
1502                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1503 00000055 = _eusart_57600 equ 85
1504                    ; line_number = 49
1505                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1506 00000055 = _eusart_57600_low equ 85
1507                    ; line_number = 50
1508                    ; constant _eusart_57600_high = _eusart_57600 >> 8
1509 00000000 = _eusart_57600_high equ 0
1510                    ; line_number = 51
1511                    ; constant _eusart_57600_index = 5
1512 00000005 = _eusart_57600_index equ 5
1513                    ; # 115200 baud:
1514                    ; line_number = 53
1515                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1516 0000002a = _eusart_115200 equ 42
1517                    ; line_number = 54
1518                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1519 0000002a = _eusart_115200_low equ 42
1520                    ; line_number = 55
1521                    ; constant _eusart_115200_high = _eusart_115200 >> 8
1522 00000000 = _eusart_115200_high equ 0
1523                    ; line_number = 56
1524                    ; constant _eusart_115200_index = 6
1525 00000006 = _eusart_115200_index equ 6
1526                    ; # 203400 baud:
1527                    ; line_number = 58
1528                    ; constant _eusart_230400 = (_eusart_clock / (230400 * _eusart_factor)) - 1
1529 00000014 = _eusart_230400 equ 20
1530                    ; line_number = 59
1531                    ; constant _eusart_230400_low = _eusart_230400 & 0xff
1532 00000014 = _eusart_230400_low equ 20
1533                    ; line_number = 60
1534                    ; constant _eusart_230400_high = _eusart_230400 >> 8
1535 00000000 = _eusart_230400_high equ 0
1536                    ; line_number = 61
1537                    ; constant _eusart_230400_index = 7
1538 00000007 = _eusart_230400_index equ 7
1539                    ; # 406800 baud:
1540                    ; line_number = 63
1541                    ; constant _eusart_406800 = (_eusart_clock / (406800 * _eusart_factor)) - 1
1542 0000000b = _eusart_406800 equ 11
1543                    ; line_number = 64
1544                    ; constant _eusart_406800_low = _eusart_406800 & 0xff
1545 0000000b = _eusart_406800_low equ 11
1546                    ; line_number = 65
1547                    ; constant _eusart_406800_high = _eusart_406800 >> 8
1548 00000000 = _eusart_406800_high equ 0
1549                    ; line_number = 66
1550                    ; constant _eusart_406800_index = 8
1551 00000008 = _eusart_406800_index equ 8
1552                    ; # 500000 baud:
1553                    ; line_number = 68
1554                    ; constant _eusart_500000 = (_eusart_clock / (500000 * _eusart_factor)) - 1
1555 00000009 = _eusart_500000 equ 9
1556                    ; line_number = 69
1557                    ; constant _eusart_500000_low = _eusart_500000 & 0xff
1558 00000009 = _eusart_500000_low equ 9
1559                    ; line_number = 70
1560                    ; constant _eusart_500000_high = _eusart_500000 >> 8
1561 00000000 = _eusart_500000_high equ 0
1562                    ; line_number = 71
1563                    ; constant _eusart_500000_index = 8
1564 00000008 = _eusart_500000_index equ 8
1565                    ; # 62500 baud:
1566                    ; line_number = 73
1567                    ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
1568 00000007 = _eusart_625000 equ 7
1569                    ; line_number = 74
1570                    ; constant _eusart_625000_low = _eusart_625000 & 0xff
1571 00000007 = _eusart_625000_low equ 7
1572                    ; line_number = 75
1573                    ; constant _eusart_625000_high = _eusart_625000 >> 8
1574 00000000 = _eusart_625000_high equ 0
1575                    ; line_number = 76
1576                    ; constant _eusart_625000_index = 9
1577 00000009 = _eusart_625000_index equ 9
1578                    ; # 833333 baud:
1579                    ; line_number = 78
1580                    ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
1581 00000005 = _eusart_833333 equ 5
1582                    ; line_number = 79
1583                    ; constant _eusart_833333_low = _eusart_833333 & 0xff
1584 00000005 = _eusart_833333_low equ 5
1585                    ; line_number = 80
1586                    ; constant _eusart_833333_high = _eusart_833333 >> 8
1587 00000000 = _eusart_833333_high equ 0
1588                    ; line_number = 81
1589                    ; constant _eusart_833333_index = 10
1590 0000000a = _eusart_833333_index equ 10
1591                    ; # 1000000 baud (1MHz):
1592                    ; line_number = 83
1593                    ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
1594 00000004 = _eusart_1000000 equ 4
1595                    ; line_number = 84
1596                    ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
1597 00000004 = _eusart_1000000_low equ 4
1598                    ; line_number = 85
1599                    ; constant _eusart_1000000_high = _eusart_1000000 >> 8
1600 00000000 = _eusart_1000000_high equ 0
1601                    ; line_number = 86
1602                    ; constant _eusart_1000000_index = 11
1603 0000000b = _eusart_1000000_index equ 11
1604            
1605                    ; buffer = 'sonar4'
1606                    ; line_number = 17
1607                    ; library _eusart exited
1608            
1609                    ; # The library of bus access routines for use by a PIC16F688.
1610                    ; line_number = 20
1611                    ; library rb2bus_pic16f688 entered
1612            
1613                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1614                    ; # All rights reserved.
1615            
1616                    ; # This module provides some procedures for accessing a RoboBricks2
1617                    ; # bus via a UART.  It is speicialized for the PIC16F688.
1618                    ; #
1619                    ; # It defines the following procedure:
1620                    ; #
1621                    ; # {rb2bus_initialize}({address}) The procedure that initializes the UART
1622                    ; #                                for bus access.
1623            
1624                    ; # All other bus access procedures are defined in the {rb2bus} library
1625                    ; # which is accessed below:
1626                    ; buffer = 'rb2bus_pic16f688'
1627                    ; line_number = 16
1628                    ; library rb2bus entered
1629            
1630                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1631                    ; # All rights reserved.
1632            
1633                    ; # This module provides some procedures for accessing a RoboBricks2
1634                    ; # bus via a UART.
1635                    ; #
1636                    ; # This procedure defines the following procedures:
1637                    ; #
1638                    ; # {rb2bus_select_wait}  This procedure waits for the module to become selected
1639                    ; # {rb2bus_deselect}     This procedure causes this module to be deselected.
1640                    ; # {rb2bus_byte_get}     This procedure will get a byte form the bus.
1641                    ; # {rb2bus_byte_put}     This procedure will send a byte to the bus.
1642                    ; #
1643                    ; # The global variable {rb2bus_error} is set to 1 whenever the procedures
1644                    ; # feel like there is a instruction decoding error.
1645                    ; #
1646                    ; # The way to use these procedures is quite as follows:
1647                    ; #
1648                    ; #    # Comamnd byte variable:
1649                    ; #    local command byte
1650                    ; #
1651                    ; #    # Other initialize code goes here:
1652                    ; #
1653                    ; #    # Process commands from bus master:
1654                    ; #    loop_forever
1655                    ; #        bus_error := 0
1656                    ; #	 while !bus_error
1657                    ; #	     call rb2bus_select_wait()
1658                    ; #	     command := rb2bus_byte_get()
1659                    ; #
1660                    ; #        # Decode command:
1661                    ; #	 switch command >> 6
1662                    ; #	   ...
1663                    ; #             case 5:
1664                    ; #	        # 0000 0101 (Foo command):
1665                    ; #	          if !rb2bus_error
1666                    ; #		      # Do foo command:
1667                    ; #
1668                    ; # The key concept behind these procedures is to make command
1669                    ; # decoding for the slave module easy.  If the slave module
1670                    ; # is in the middle of command decoding and the master suddenly
1671                    ; # sends out a module select command, we need to gracefully recover
1672                    ; # from the problem.  A command should only be executed if
1673                    ; # {rb2bus_error} is not set.  If {rb2bus_error} is set want
1674                    ; # to gracefully, get back to the beginning of the loop without
1675                    ; # doing any damage.  Once {rb2bus_error} is set, all calls to
1676                    ; # {rb2bus_byte_get} return 0 and all calls to {rb2bus_byte_put}
1677                    ; # do nothing.  At the beginning of the loop, {rb2bus_error} is
1678                    ; # explicitly cleared and we have recovered from the situation.
1679            
1680                    ; # These are the global variable defined by this library:
1681                    ; buffer = 'rb2bus'
1682                    ; line_number = 54
1683                    ; global rb2bus_selected bit
1684 0000006f = rb2bus_selected___byte equ globals___0+79
1685 00000000 = rb2bus_selected___bit equ 0
1686                    ; line_number = 55
1687                    ; global rb2bus_error bit
1688 0000006f = rb2bus_error___byte equ globals___0+79
1689 00000001 = rb2bus_error___bit equ 1
1690                    ; line_number = 56
1691                    ; global rb2bus_address byte
1692 00000020 = rb2bus_address equ globals___0
1693                    ; line_number = 57
1694                    ; global rb2bus_index byte
1695 00000021 = rb2bus_index equ globals___0+1
1696            
1697                    ; Delaying code generation for procedure  rb2bus_select_wait
1698                    ; Delaying code generation for procedure  rb2bus_deselect
1699                    ; Delaying code generation for procedure  rb2bus_byte_get
1700                    ; Delaying code generation for procedure  rb2bus_byte_put
1701                    ; Delaying code generation for procedure  rb2bus_command
1702            
1703                    ; buffer = 'rb2bus_pic16f688'
1704                    ; line_number = 16
1705                    ; library rb2bus exited
1706            
1707                    ; Delaying code generation for procedure  rb2bus_initialize
1708                    ; line_number = 62
1709                    ; constant rb2bus_eedata_address = 0xfe
1710 000000fe = rb2bus_eedata_address equ 254
1711            
1712                    ; Delaying code generation for procedure  rb2bus_eedata_read
1713                    ; Delaying code generation for procedure  rb2bus_eedata_write
1714            
1715                    ; buffer = 'sonar4'
1716                    ; line_number = 20
1717                    ; library rb2bus_pic16f688 exited
1718            
1719                    ; # This module uses 16MHz crystal oscillator; hence mode EC=External Clock:
1720            
1721                    ; # All pins on this package are used except RA3.
1722                    ; line_number = 26
1723                    ; package pdip
1724                    ; line_number = 27
1725                    ; pin 1 = power_supply
1726                    ; line_number = 28
1727                    ;  pin 2 = osc1
1728                    ; line_number = 29
1729                    ;  pin 3 = osc2
1730                    ; line_number = 30
1731                    ;  pin 4 = ra3_nc
1732                    ; line_number = 31
1733                    ;  pin 5 = rx, name = rx, bit = rx_bit
1734 00000007 = rx___byte equ _portc
1735 00000005 = rx___bit equ 5
1736 00000005 = rx_bit equ 5
1737                    ; line_number = 32
1738                    ;  pin 6 = tx, name = tx, bit = tx_bit
1739 00000007 = tx___byte equ _portc
1740 00000004 = tx___bit equ 4
1741 00000004 = tx_bit equ 4
1742                    ; line_number = 33
1743                    ;  pin 7 = rc3_in, name = trigger1
1744 00000007 = trigger1___byte equ _portc
1745 00000003 = trigger1___bit equ 3
1746                    ; line_number = 34
1747                    ;  pin 8 = rc2_out, name = response1
1748 00000007 = response1___byte equ _portc
1749 00000002 = response1___bit equ 2
1750                    ; line_number = 35
1751                    ;  pin 9 = rc1_in, name =trigger0
1752 00000007 = trigger0___byte equ _portc
1753 00000001 = trigger0___bit equ 1
1754                    ; line_number = 36
1755                    ;  pin 10 = rc0_out, name = response0
1756 00000007 = response0___byte equ _portc
1757 00000000 = response0___bit equ 0
1758                    ; line_number = 37
1759                    ;  pin 11 = ra2_nc
1760                    ; line_number = 38
1761                    ;  pin 12 = ra1_nc
1762                    ; line_number = 39
1763                    ;  pin 13 = ra0_nc
1764                    ; line_number = 40
1765                    ;  pin 14 = ground
1766            
1767                    ; line_number = 42
1768                    ; origin 0
1769   0000 :           org     0
1770            
1771                    ; line_number = 44
1772                    ;info   44, 0
1773                    ; procedure main
1774   0000 :   main:
1775                    ; Initialize some registers
1776 0000 019f          clrf    _adcon0
1777 0001 1683          bsf     __rp0___byte, __rp0___bit
1778 0002 0191          clrf    _ansel
1779 0003 3007          movlw   7
1780 0004 1283          bcf     __rp0___byte, __rp0___bit
1781 0005 0099          movwf   _cmcon0
1782 0006 303f          movlw   63
1783 0007 1683          bsf     __rp0___byte, __rp0___bit
1784 0008 0085          movwf   _trisa
1785 0009 303a          movlw   58
1786 000a 0087          movwf   _trisc
1787                    ; arguments_none
1788                    ; line_number = 46
1789                    ;  returns_nothing
1790            
1791                    ; # This procedure initializes everything and does command decoding.
1792            
1793                    ; line_number = 50
1794                    ;  local command byte
1795 0000002c = main__command equ globals___0+12
1796                    ; line_number = 51
1797                    ;  local id_index byte
1798 0000002d = main__id_index equ globals___0+13
1799                    ; line_number = 52
1800                    ;  local channel byte
1801 0000002e = main__channel equ globals___0+14
1802                    ; line_number = 53
1803                    ;  local result byte
1804 0000002f = main__result equ globals___0+15
1805            
1806                    ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:XX=>XX)
1807                    ; line_number = 55
1808                    ;  call rb2bus_initialize(9)
1809                    ;info   55, 11
1810 000b 3009          movlw   9
1811 000c 1283          bcf     __rp0___byte, __rp0___bit
1812 000d 2109          call    rb2bus_initialize
1813            
1814                    ; line_number = 57
1815                    ;  id_index := 0
1816                    ;info   57, 14
1817 000e 01ad          clrf    main__id_index
1818            
1819                    ; line_number = 59
1820                    ;  loop_forever start
1821                    ;info   59, 15
1822   000f :   main__1:
1823                    ; # Make sure that we have been selected:
1824                    ; line_number = 61
1825                    ;  rb2bus_error := _true
1826                    ;info   61, 15
1827 000f 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
1828                    ; line_number = 62
1829                    ;  while rb2bus_error start
1830   0010 :   main__2:
1831                    ;info   62, 16
1832                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
1833                    ; No 1TEST: true.size=4 false.size=0
1834                    ; No 2TEST: true.size=4 false.size=0
1835                    ; 1GOTO: Single test with GOTO
1836 0010 1cef          btfss   rb2bus_error___byte, rb2bus_error___bit
1837 0011 2816          goto    main__3
1838                    ; line_number = 63
1839                    ; call rb2bus_select_wait()
1840                    ;info   63, 18
1841 0012 206c          call    rb2bus_select_wait
1842                    ; line_number = 64
1843                    ;  command := rb2bus_byte_get()
1844                    ;info   64, 19
1845 0013 208b          call    rb2bus_byte_get
1846 0014 00ac          movwf   main__command
1847            
1848 0015 2810          goto    main__2
1849                    ; Recombine size1 = 0 || size2 = 0
1850   0016 :   main__3:
1851                    ; <=bit_code_emit@symbol; sym=rb2bus_error (data:00=>00 code:XX=>XX)
1852                    ; line_number = 62
1853                    ;  while rb2bus_error done
1854                    ; line_number = 66
1855                    ; switch command >> 6 start
1856                    ;info   66, 22
1857 0016 3000          movlw   main__15>>8
1858 0017 008a          movwf   __pclath
1859 00000030 = main__16 equ globals___0+16
1860 0018 0e2c          swapf   main__command,w
1861 0019 00b0          movwf   main__16
1862 001a 0cb0          rrf     main__16,f
1863 001b 0c30          rrf     main__16,w
1864 001c 3903          andlw   3
1865 001d 3e1f          addlw   main__15
1866 001e 0082          movwf   __pcl
1867                    ; page_group 4
1868   001f :   main__15:
1869 001f 284e          goto    main__17
1870 0020 284e          goto    main__17
1871 0021 284e          goto    main__17
1872 0022 2823          goto    main__14
1873                    ; line_number = 67
1874                    ; case 3
1875   0023 :   main__14:
1876                    ; line_number = 68
1877                    ; switch (command >> 3) & 7 start
1878                    ;info   68, 35
1879 0023 3000          movlw   main__11>>8
1880 0024 008a          movwf   __pclath
1881 00000030 = main__12 equ globals___0+16
1882 0025 0c2c          rrf     main__command,w
1883 0026 00b0          movwf   main__12
1884 0027 0cb0          rrf     main__12,f
1885 0028 0c30          rrf     main__12,w
1886 0029 3907          andlw   7
1887 002a 3e2c          addlw   main__11
1888 002b 0082          movwf   __pcl
1889                    ; page_group 8
1890   002c :   main__11:
1891 002c 284e          goto    main__13
1892 002d 284e          goto    main__13
1893 002e 284e          goto    main__13
1894 002f 284e          goto    main__13
1895 0030 284e          goto    main__13
1896 0031 284e          goto    main__13
1897 0032 284e          goto    main__13
1898 0033 2834          goto    main__10
1899                    ; line_number = 69
1900                    ; case 7
1901   0034 :   main__10:
1902                    ; line_number = 70
1903                    ; switch command & 7 start
1904                    ;info   70, 52
1905 0034 3000          movlw   main__8>>8
1906 0035 008a          movwf   __pclath
1907 0036 3007          movlw   7
1908 0037 052c          andwf   main__command,w
1909 0038 3e3a          addlw   main__8
1910 0039 0082          movwf   __pcl
1911                    ; page_group 8
1912   003a :   main__8:
1913 003a 284e          goto    main__9
1914 003b 284e          goto    main__9
1915 003c 284e          goto    main__9
1916 003d 284e          goto    main__9
1917 003e 284e          goto    main__9
1918 003f 2842          goto    main__5
1919 0040 284b          goto    main__6
1920 0041 284d          goto    main__7
1921                    ; line_number = 71
1922                    ; case 5
1923   0042 :   main__5:
1924                    ; # 1111 1101 (Id_next):
1925                    ; line_number = 73
1926                    ;  if id_index < id.size start
1927                    ;info   73, 66
1928 0042 3016          movlw   22
1929 0043 022d          subwf   main__id_index,w
1930                    ; =>bit_code_emit@symbol(): sym=__c
1931                    ; No 1TEST: true.size=0 false.size=4
1932                    ; No 2TEST: true.size=0 false.size=4
1933                    ; 1GOTO: Single test with GOTO
1934 0044 1803          btfsc   __c___byte, __c___bit
1935 0045 284a          goto    main__4
1936                    ; line_number = 74
1937                    ; call rb2bus_byte_put(id[id_index])
1938                    ;info   74, 70
1939 0046 082d          movf    main__id_index,w
1940 0047 2050          call    id
1941 0048 20ad          call    rb2bus_byte_put
1942                    ; line_number = 75
1943                    ;  id_index := id_index + 1
1944                    ;info   75, 73
1945 0049 0aad          incf    main__id_index,f
1946   004a :   main__4:
1947                    ; Recombine size1 = 0 || size2 = 0
1948                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
1949                    ; line_number = 73
1950                    ;  if id_index < id.size done
1951 004a 284e          goto    main__9
1952                    ; line_number = 76
1953                    ; case 6
1954   004b :   main__6:
1955                    ; # 1111 1110 (Id_start):
1956                    ; line_number = 78
1957                    ;  id_index := 0
1958                    ;info   78, 75
1959 004b 01ad          clrf    main__id_index
1960 004c 284e          goto    main__9
1961                    ; line_number = 79
1962                    ; case 7
1963   004d :   main__7:
1964                    ; # 1111 1111 (Deselect):
1965                    ; line_number = 81
1966                    ;  call rb2bus_deselect()
1967                    ;info   81, 77
1968 004d 2089          call    rb2bus_deselect
1969            
1970   004e :   main__9:
1971                    ; line_number = 70
1972                    ; switch command & 7 done
1973   004e :   main__13:
1974                    ; line_number = 68
1975                    ; switch (command >> 3) & 7 done
1976   004e :   main__17:
1977                    ; line_number = 66
1978                    ; switch command >> 6 done
1979                    ; line_number = 59
1980                    ;  loop_forever wrap-up
1981 004e 280f          goto    main__1
1982                    ; line_number = 59
1983                    ;  loop_forever done
1984                    ; delay after procedure statements=non-uniform
1985            
1986            
1987            
1988            
1989                    ; line_number = 83
1990                    ;info   83, 79
1991                    ; procedure wait
1992   004f :   wait:
1993                    ; arguments_none
1994                    ; line_number = 85
1995                    ;  returns_nothing
1996            
1997                    ; # This procedure is repeatably called whenever the software
1998                    ; # is waiting for a byte to arrive from the bus.
1999            
2000                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2001                    ; line_number = 90
2002                    ;  do_nothing
2003                    ;info   90, 79
2004            
2005            
2006                    ; delay after procedure statements=non-uniform
2007                    ; Implied return
2008 004f 3400          retlw   0
2009            
2010            
2011            
2012            
2013                    ; line_number = 93
2014                    ; string id = "\16,0,101,1,3,8\Sonar4-A\7\Gramson" start
2015                    ; id = '\16,0\e\1,3,8\Sonar4-A\7\Gramson'
2016   0050 :   id:
2017                    ; Temporarily save index into FSR
2018 0050 0084          movwf   __fsr
2019                    ; Initialize PCLATH to point to this code page
2020 0051 3000          movlw   id___base>>8
2021 0052 008a          movwf   __pclath
2022                    ; Restore index from FSR
2023 0053 0804          movf    __fsr,w
2024 0054 3e56          addlw   id___base
2025                    ; Index to the correct return value
2026 0055 0082          movwf   __pcl
2027                    ; page_group 22
2028   0056 :   id___base:
2029 0056 3410          retlw   16
2030 0057 3400          retlw   0
2031 0058 3465          retlw   101
2032 0059 3401          retlw   1
2033 005a 3403          retlw   3
2034 005b 3408          retlw   8
2035 005c 3453          retlw   83
2036 005d 346f          retlw   111
2037 005e 346e          retlw   110
2038 005f 3461          retlw   97
2039 0060 3472          retlw   114
2040 0061 3434          retlw   52
2041 0062 342d          retlw   45
2042 0063 3441          retlw   65
2043 0064 3407          retlw   7
2044 0065 3447          retlw   71
2045 0066 3472          retlw   114
2046 0067 3461          retlw   97
2047 0068 346d          retlw   109
2048 0069 3473          retlw   115
2049 006a 346f          retlw   111
2050 006b 346e          retlw   110
2051                    ; line_number = 93
2052                    ; string id = "\16,0,101,1,3,8\Sonar4-A\7\Gramson" start
2053            
2054            
2055                    ; Appending 8 delayed procedures to code bank 0
2056                    ; buffer = 'rb2bus'
2057                    ; line_number = 59
2058                    ;info   59, 108
2059                    ; procedure rb2bus_select_wait
2060   006c :   rb2bus_select_wait:
2061                    ; arguments_none
2062                    ; line_number = 61
2063                    ;  returns_nothing
2064            
2065                    ; # This procedure will in an infinite loop until the select
2066                    ; # address matches {rb2bus_address}.  {rb2bus_address} is
2067                    ; # typically set in the {rb2bus_initialize} procedure.
2068                    ; #
2069                    ; # This module will repeatably call the {wait} procedure until
2070                    ; # it is properly selected.
2071            
2072                    ; line_number = 70
2073                    ;  local value byte
2074 00000022 = rb2bus_select_wait__value equ globals___0+2
2075                    ; line_number = 71
2076                    ;  local address_bit bit
2077 0000006f = rb2bus_select_wait__address_bit___byte equ globals___0+79
2078 00000002 = rb2bus_select_wait__address_bit___bit equ 2
2079            
2080                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2081                    ; line_number = 73
2082                    ;  rb2bus_error := _false
2083                    ;info   73, 108
2084 006c 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
2085                    ; line_number = 74
2086                    ;  while !rb2bus_selected start
2087   006d :   rb2bus_select_wait__1:
2088                    ;info   74, 109
2089                    ; =>bit_code_emit@symbol(): sym=rb2bus_selected
2090                    ; No 1TEST: true.size=0 false.size=25
2091                    ; No 2TEST: true.size=0 false.size=25
2092                    ; 1GOTO: Single test with GOTO
2093 006d 186f          btfsc   rb2bus_selected___byte, rb2bus_selected___bit
2094 006e 2888          goto    rb2bus_select_wait__6
2095                    ; line_number = 75
2096                    ; _adden := _true
2097                    ;info   75, 111
2098 006f 1597          bsf     _adden___byte, _adden___bit
2099                    ; # Wait for a byte to arrive.
2100                    ; line_number = 77
2101                    ;  while !_rcif start
2102   0070 :   rb2bus_select_wait__2:
2103                    ;info   77, 112
2104                    ; =>bit_code_emit@symbol(): sym=_rcif
2105                    ; No 1TEST: true.size=0 false.size=2
2106                    ; No 2TEST: true.size=0 false.size=2
2107                    ; 1GOTO: Single test with GOTO
2108 0070 1a8c          btfsc   _rcif___byte, _rcif___bit
2109 0071 2874          goto    rb2bus_select_wait__3
2110                    ; line_number = 78
2111                    ; call wait()
2112                    ;info   78, 114
2113 0072 204f          call    wait
2114            
2115 0073 2870          goto    rb2bus_select_wait__2
2116   0074 :   rb2bus_select_wait__3:
2117                    ; Recombine size1 = 0 || size2 = 0
2118                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
2119                    ; line_number = 77
2120                    ;  while !_rcif done
2121                    ; # Capture the received value:
2122                    ; line_number = 81
2123                    ;  address_bit := _false
2124                    ;info   81, 116
2125 0074 116f          bcf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
2126                    ; line_number = 82
2127                    ;  if _rx9d start
2128                    ;info   82, 117
2129                    ; =>bit_code_emit@symbol(): sym=_rx9d
2130                    ; 1TEST: Single test with code in skip slot
2131 0075 1817          btfsc   _rx9d___byte, _rx9d___bit
2132                    ; line_number = 83
2133                    ; address_bit := _true
2134                    ;info   83, 118
2135 0076 156f          bsf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
2136                    ; Recombine size1 = 0 || size2 = 0
2137                    ; <=bit_code_emit@symbol; sym=_rx9d (data:00=>00 code:XX=>XX)
2138                    ; line_number = 82
2139                    ;  if _rx9d done
2140                    ; line_number = 84
2141                    ; value := _rcreg
2142                    ;info   84, 119
2143 0077 0814          movf    _rcreg,w
2144 0078 00a2          movwf   rb2bus_select_wait__value
2145            
2146                    ; # Clear any UART errors by toggling {_cren}:
2147                    ; line_number = 87
2148                    ;  if _oerr start
2149                    ;info   87, 121
2150                    ; =>bit_code_emit@symbol(): sym=_oerr
2151                    ; 1TEST: Single test with code in skip slot
2152 0079 1897          btfsc   _oerr___byte, _oerr___bit
2153                    ; line_number = 88
2154                    ; _cren := _false
2155                    ;info   88, 122
2156 007a 1217          bcf     _cren___byte, _cren___bit
2157                    ; Recombine size1 = 0 || size2 = 0
2158                    ; <=bit_code_emit@symbol; sym=_oerr (data:00=>00 code:XX=>XX)
2159                    ; line_number = 87
2160                    ;  if _oerr done
2161                    ; line_number = 89
2162                    ; if _ferr start
2163                    ;info   89, 123
2164                    ; =>bit_code_emit@symbol(): sym=_ferr
2165                    ; 1TEST: Single test with code in skip slot
2166 007b 1917          btfsc   _ferr___byte, _ferr___bit
2167                    ; line_number = 90
2168                    ; _cren := _false
2169                    ;info   90, 124
2170 007c 1217          bcf     _cren___byte, _cren___bit
2171                    ; Recombine size1 = 0 || size2 = 0
2172                    ; <=bit_code_emit@symbol; sym=_ferr (data:00=>00 code:XX=>XX)
2173                    ; line_number = 89
2174                    ; if _ferr done
2175                    ; line_number = 91
2176                    ; _cren := _true
2177                    ;info   91, 125
2178 007d 1617          bsf     _cren___byte, _cren___bit
2179            
2180                    ; line_number = 93
2181                    ;  if address_bit start
2182                    ;info   93, 126
2183                    ; =>bit_code_emit@symbol(): sym=rb2bus_select_wait__address_bit
2184                    ; No 1TEST: true.size=7 false.size=0
2185                    ; No 2TEST: true.size=7 false.size=0
2186                    ; 1GOTO: Single test with GOTO
2187 007e 1d6f          btfss   rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
2188 007f 2887          goto    rb2bus_select_wait__5
2189                    ; line_number = 94
2190                    ; if value = rb2bus_address start
2191                    ;info   94, 128
2192                    ; Left minus Right
2193 0080 0820          movf    rb2bus_address,w
2194 0081 0222          subwf   rb2bus_select_wait__value,w
2195                    ; =>bit_code_emit@symbol(): sym=__z
2196                    ; No 1TEST: true.size=3 false.size=0
2197                    ; No 2TEST: true.size=3 false.size=0
2198                    ; 1GOTO: Single test with GOTO
2199 0082 1d03          btfss   __z___byte, __z___bit
2200 0083 2887          goto    rb2bus_select_wait__4
2201                    ; line_number = 95
2202                    ; rb2bus_selected := _true
2203                    ;info   95, 132
2204 0084 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
2205                    ; line_number = 96
2206                    ;  call rb2bus_byte_put(0xa5)
2207                    ;info   96, 133
2208 0085 30a5          movlw   165
2209 0086 20ad          call    rb2bus_byte_put
2210            
2211            
2212                    ; Recombine size1 = 0 || size2 = 0
2213   0087 :   rb2bus_select_wait__4:
2214                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2215                    ; line_number = 94
2216                    ; if value = rb2bus_address done
2217                    ; Recombine size1 = 0 || size2 = 0
2218   0087 :   rb2bus_select_wait__5:
2219                    ; <=bit_code_emit@symbol; sym=rb2bus_select_wait__address_bit (data:00=>00 code:XX=>XX)
2220                    ; line_number = 93
2221                    ;  if address_bit done
2222 0087 286d          goto    rb2bus_select_wait__1
2223   0088 :   rb2bus_select_wait__6:
2224                    ; Recombine size1 = 0 || size2 = 0
2225                    ; <=bit_code_emit@symbol; sym=rb2bus_selected (data:00=>00 code:XX=>XX)
2226                    ; line_number = 74
2227                    ;  while !rb2bus_selected done
2228                    ; delay after procedure statements=non-uniform
2229                    ; Implied return
2230 0088 3400          retlw   0
2231            
2232            
2233            
2234            
2235                    ; line_number = 99
2236                    ;info   99, 137
2237                    ; procedure rb2bus_deselect
2238   0089 :   rb2bus_deselect:
2239                    ; arguments_none
2240                    ; line_number = 101
2241                    ;  returns_nothing
2242            
2243                    ; # This procedure forces this module into the deselected state until
2244                    ; # it is reselected by some master module on the bus.
2245            
2246                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2247                    ; line_number = 106
2248                    ;  rb2bus_selected := _false
2249                    ;info   106, 137
2250 0089 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
2251            
2252            
2253                    ; delay after procedure statements=non-uniform
2254                    ; Implied return
2255 008a 3400          retlw   0
2256            
2257            
2258            
2259            
2260                    ; line_number = 109
2261                    ;info   109, 139
2262                    ; procedure rb2bus_byte_get
2263   008b :   rb2bus_byte_get:
2264                    ; arguments_none
2265                    ; line_number = 111
2266                    ;  returns byte
2267            
2268                    ; # This procedure will return the next byte received from the bus.
2269                    ; # The address (9th) bit is stored in the global {is_address}.
2270                    ; #
2271                    ; # If {rb2bus_error} is set, 0 is returned.  Otherwise, the {wait}
2272                    ; # procedure is repeatably called until a command byte is successfully
2273                    ; # received.  If an module select byte comes in, we enter a bus
2274                    ; # error condition by setting {rb2bus_error} and returning 0.
2275            
2276                    ; line_number = 121
2277                    ;  local value byte
2278 00000023 = rb2bus_byte_get__value equ globals___0+3
2279                    ; line_number = 122
2280                    ;  local address_bit bit
2281 0000006f = rb2bus_byte_get__address_bit___byte equ globals___0+79
2282 00000003 = rb2bus_byte_get__address_bit___bit equ 3
2283            
2284                    ; # Return 0 in a bus flush condition to get us back to {rb2bus_select_wait}:
2285                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2286                    ; line_number = 125
2287                    ;  if rb2bus_error start
2288                    ;info   125, 139
2289                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2290                    ; 1TEST: Single test with code in skip slot
2291 008b 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2292                    ; line_number = 126
2293                    ; return 0 start
2294                    ; line_number = 126
2295                    ;info   126, 140
2296 008c 3400          retlw   0
2297                    ; line_number = 126
2298                    ; return 0 done
2299            
2300                    ; Recombine size1 = 0 || size2 = 0
2301                    ; <=bit_code_emit@symbol; sym=rb2bus_error (data:00=>00 code:XX=>XX)
2302                    ; line_number = 125
2303                    ;  if rb2bus_error done
2304                    ; # Wait for a byte to arrive.
2305                    ; line_number = 129
2306                    ;  _adden := _false
2307                    ;info   129, 141
2308 008d 1197          bcf     _adden___byte, _adden___bit
2309                    ; line_number = 130
2310                    ;  while !_rcif start
2311   008e :   rb2bus_byte_get__1:
2312                    ;info   130, 142
2313                    ; =>bit_code_emit@symbol(): sym=_rcif
2314                    ; No 1TEST: true.size=0 false.size=2
2315                    ; No 2TEST: true.size=0 false.size=2
2316                    ; 1GOTO: Single test with GOTO
2317 008e 1a8c          btfsc   _rcif___byte, _rcif___bit
2318 008f 2892          goto    rb2bus_byte_get__2
2319                    ; line_number = 131
2320                    ; call wait()
2321                    ;info   131, 144
2322 0090 204f          call    wait
2323            
2324 0091 288e          goto    rb2bus_byte_get__1
2325   0092 :   rb2bus_byte_get__2:
2326                    ; Recombine size1 = 0 || size2 = 0
2327                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
2328                    ; line_number = 130
2329                    ;  while !_rcif done
2330                    ; # Record the 9th bit in {address_bit}:
2331                    ; line_number = 134
2332                    ;  address_bit := _false
2333                    ;info   134, 146
2334 0092 11ef          bcf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
2335                    ; line_number = 135
2336                    ;  if _rx9d start
2337                    ;info   135, 147
2338                    ; =>bit_code_emit@symbol(): sym=_rx9d
2339                    ; 1TEST: Single test with code in skip slot
2340 0093 1817          btfsc   _rx9d___byte, _rx9d___bit
2341                    ; line_number = 136
2342                    ; address_bit := _true
2343                    ;info   136, 148
2344 0094 15ef          bsf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
2345                    ; Recombine size1 = 0 || size2 = 0
2346                    ; <=bit_code_emit@symbol; sym=_rx9d (data:00=>00 code:XX=>XX)
2347                    ; line_number = 135
2348                    ;  if _rx9d done
2349                    ; line_number = 137
2350                    ; value := _rcreg
2351                    ;info   137, 149
2352 0095 0814          movf    _rcreg,w
2353 0096 00a3          movwf   rb2bus_byte_get__value
2354            
2355                    ; # Clear any errors by toggling _{cren}:
2356                    ; line_number = 140
2357                    ;  if _oerr start
2358                    ;info   140, 151
2359                    ; =>bit_code_emit@symbol(): sym=_oerr
2360                    ; 1TEST: Single test with code in skip slot
2361 0097 1897          btfsc   _oerr___byte, _oerr___bit
2362                    ; line_number = 141
2363                    ; _cren := _false
2364                    ;info   141, 152
2365 0098 1217          bcf     _cren___byte, _cren___bit
2366                    ; Recombine size1 = 0 || size2 = 0
2367                    ; <=bit_code_emit@symbol; sym=_oerr (data:00=>00 code:XX=>XX)
2368                    ; line_number = 140
2369                    ;  if _oerr done
2370                    ; line_number = 142
2371                    ; if _ferr start
2372                    ;info   142, 153
2373                    ; =>bit_code_emit@symbol(): sym=_ferr
2374                    ; 1TEST: Single test with code in skip slot
2375 0099 1917          btfsc   _ferr___byte, _ferr___bit
2376                    ; line_number = 143
2377                    ; _cren := _false
2378                    ;info   143, 154
2379 009a 1217          bcf     _cren___byte, _cren___bit
2380                    ; Recombine size1 = 0 || size2 = 0
2381                    ; <=bit_code_emit@symbol; sym=_ferr (data:00=>00 code:XX=>XX)
2382                    ; line_number = 142
2383                    ; if _ferr done
2384                    ; line_number = 144
2385                    ; _cren := _true
2386                    ;info   144, 155
2387 009b 1617          bsf     _cren___byte, _cren___bit
2388            
2389                    ; line_number = 146
2390                    ;  if address_bit start
2391                    ;info   146, 156
2392                    ; =>bit_code_emit@symbol(): sym=rb2bus_byte_get__address_bit
2393                    ; No 1TEST: true.size=13 false.size=0
2394                    ; No 2TEST: true.size=13 false.size=0
2395                    ; 1GOTO: Single test with GOTO
2396 009c 1def          btfss   rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
2397 009d 28ab          goto    rb2bus_byte_get__5
2398                    ; # We have an unexpected address select coming in:
2399                    ; line_number = 148
2400                    ;  if value = rb2bus_address start
2401                    ;info   148, 158
2402                    ; Left minus Right
2403 009e 0820          movf    rb2bus_address,w
2404 009f 0223          subwf   rb2bus_byte_get__value,w
2405                    ; =>bit_code_emit@symbol(): sym=__z
2406                    ; No 1TEST: true.size=4 false.size=2
2407                    ; No 2TEST: true.size=4 false.size=2
2408                    ; 2GOTO: Single test with two GOTO's
2409 00a0 1d03          btfss   __z___byte, __z___bit
2410 00a1 28a7          goto    rb2bus_byte_get__3
2411                    ; # We are being selected again:
2412                    ; line_number = 150
2413                    ;  rb2bus_selected := _true
2414                    ;info   150, 162
2415 00a2 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
2416                    ; line_number = 151
2417                    ;  _adden := _false
2418                    ;info   151, 163
2419 00a3 1197          bcf     _adden___byte, _adden___bit
2420            
2421                    ; line_number = 153
2422                    ;  call rb2bus_byte_put(0xa5)
2423                    ;info   153, 164
2424 00a4 30a5          movlw   165
2425 00a5 20ad          call    rb2bus_byte_put
2426 00a6 28a9          goto    rb2bus_byte_get__4
2427                    ; 2GOTO: Starting code 2
2428   00a7 :   rb2bus_byte_get__3:
2429                    ; # Somebody else is being selected; we deselect:
2430                    ; line_number = 156
2431                    ;  rb2bus_selected := _false
2432                    ;info   156, 167
2433 00a7 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
2434                    ; line_number = 157
2435                    ;  _adden := _true
2436                    ;info   157, 168
2437 00a8 1597          bsf     _adden___byte, _adden___bit
2438            
2439   00a9 :   rb2bus_byte_get__4:
2440                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
2441                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2442                    ; 2GOTO: code final bitstates:(data:00=>00 code:XX=>XX)
2443                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2444                    ; line_number = 148
2445                    ;  if value = rb2bus_address done
2446                    ; # We want to get back to the beginning of decode:
2447                    ; line_number = 160
2448                    ;  rb2bus_error := _true
2449                    ;info   160, 169
2450 00a9 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2451                    ; line_number = 161
2452                    ;  value := 0
2453                    ;info   161, 170
2454 00aa 01a3          clrf    rb2bus_byte_get__value
2455            
2456                    ; Recombine size1 = 0 || size2 = 0
2457   00ab :   rb2bus_byte_get__5:
2458                    ; <=bit_code_emit@symbol; sym=rb2bus_byte_get__address_bit (data:00=>00 code:XX=>XX)
2459                    ; line_number = 146
2460                    ;  if address_bit done
2461                    ; # Regular data byte:
2462                    ; line_number = 164
2463                    ;  return value start
2464                    ; line_number = 164
2465                    ;info   164, 171
2466 00ab 0823          movf    rb2bus_byte_get__value,w
2467 00ac 0008          return  
2468                    ; line_number = 164
2469                    ;  return value done
2470            
2471            
2472                    ; delay after procedure statements=non-uniform
2473            
2474            
2475            
2476            
2477                    ; line_number = 167
2478                    ;info   167, 173
2479                    ; procedure rb2bus_byte_put
2480   00ad :   rb2bus_byte_put:
2481                    ; Last argument is sitting in W; save into argument variable
2482 00ad 00a4          movwf   rb2bus_byte_put__value
2483                    ; delay=4294967295
2484                    ; line_number = 168
2485                    ; argument value byte
2486 00000024 = rb2bus_byte_put__value equ globals___0+4
2487                    ; line_number = 169
2488                    ;  returns_nothing
2489            
2490                    ; # This procedure will send {value} to the bus.  It automatically
2491                    ; # consumes the echo that is on the bus.  If {rb2bus_error} is
2492                    ; # set, this procedure does nothing.
2493            
2494                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2495                    ; line_number = 175
2496                    ;  if !rb2bus_error start
2497                    ;info   175, 174
2498                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2499                    ; No 1TEST: true.size=0 false.size=16
2500                    ; No 2TEST: true.size=0 false.size=16
2501                    ; 1GOTO: Single test with GOTO
2502 00ae 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2503 00af 28c0          goto    rb2bus_byte_put__4
2504                    ; # Wait until {_txreg} is ready for a value:
2505                    ; line_number = 177
2506                    ;  while !_txif start
2507   00b0 :   rb2bus_byte_put__1:
2508                    ;info   177, 176
2509                    ; =>bit_code_emit@symbol(): sym=_txif
2510                    ; No 1TEST: true.size=0 false.size=2
2511                    ; No 2TEST: true.size=0 false.size=2
2512                    ; 1GOTO: Single test with GOTO
2513 00b0 188c          btfsc   _txif___byte, _txif___bit
2514 00b1 28b4          goto    rb2bus_byte_put__2
2515                    ; line_number = 178
2516                    ; call wait()
2517                    ;info   178, 178
2518 00b2 204f          call    wait
2519            
2520 00b3 28b0          goto    rb2bus_byte_put__1
2521   00b4 :   rb2bus_byte_put__2:
2522                    ; Recombine size1 = 0 || size2 = 0
2523                    ; <=bit_code_emit@symbol; sym=_txif (data:00=>00 code:XX=>XX)
2524                    ; line_number = 177
2525                    ;  while !_txif done
2526                    ; # Ship {value} out to the bus with 9th bit turned off:
2527                    ; line_number = 181
2528                    ;  _adden := _false
2529                    ;info   181, 180
2530 00b4 1197          bcf     _adden___byte, _adden___bit
2531                    ; line_number = 182
2532                    ;  _tx9d := _false
2533                    ;info   182, 181
2534 00b5 1016          bcf     _tx9d___byte, _tx9d___bit
2535                    ; line_number = 183
2536                    ;  _txreg := value
2537                    ;info   183, 182
2538 00b6 0824          movf    rb2bus_byte_put__value,w
2539 00b7 0095          movwf   _txreg
2540            
2541                    ; # Wait for the echo to show up:
2542                    ; line_number = 186
2543                    ;  while !_rcif start
2544   00b8 :   rb2bus_byte_put__3:
2545                    ;info   186, 184
2546                    ; =>bit_code_emit@symbol(): sym=_rcif
2547                    ; 1TEST: Single test with code in skip slot
2548 00b8 1e8c          btfss   _rcif___byte, _rcif___bit
2549                    ; # Still waiting:
2550 00b9 28b8          goto    rb2bus_byte_put__3
2551                    ; Recombine size1 = 0 || size2 = 0
2552                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
2553                    ; line_number = 186
2554                    ;  while !_rcif done
2555                    ; # Throw the received byte away (store into {_w}).
2556                    ; line_number = 189
2557                    ;  assemble
2558                    ;info   189, 186
2559                    ; line_number = 190
2560                    ;info   190, 186
2561 00ba 0814          movf    _rcreg,w
2562            
2563                    ; # Recover from any receive errors by toggling {_cren}:
2564                    ; line_number = 193
2565                    ;  if _oerr start
2566                    ;info   193, 187
2567                    ; =>bit_code_emit@symbol(): sym=_oerr
2568                    ; 1TEST: Single test with code in skip slot
2569 00bb 1897          btfsc   _oerr___byte, _oerr___bit
2570                    ; line_number = 194
2571                    ; _cren := _false
2572                    ;info   194, 188
2573 00bc 1217          bcf     _cren___byte, _cren___bit
2574                    ; Recombine size1 = 0 || size2 = 0
2575                    ; <=bit_code_emit@symbol; sym=_oerr (data:00=>00 code:XX=>XX)
2576                    ; line_number = 193
2577                    ;  if _oerr done
2578                    ; line_number = 195
2579                    ; if _ferr start
2580                    ;info   195, 189
2581                    ; =>bit_code_emit@symbol(): sym=_ferr
2582                    ; 1TEST: Single test with code in skip slot
2583 00bd 1917          btfsc   _ferr___byte, _ferr___bit
2584                    ; line_number = 196
2585                    ; _cren := _false
2586                    ;info   196, 190
2587 00be 1217          bcf     _cren___byte, _cren___bit
2588                    ; Recombine size1 = 0 || size2 = 0
2589                    ; <=bit_code_emit@symbol; sym=_ferr (data:00=>00 code:XX=>XX)
2590                    ; line_number = 195
2591                    ; if _ferr done
2592                    ; line_number = 197
2593                    ; _cren := _true
2594                    ;info   197, 191
2595 00bf 1617          bsf     _cren___byte, _cren___bit
2596            
2597            
2598   00c0 :   rb2bus_byte_put__4:
2599                    ; Recombine size1 = 0 || size2 = 0
2600                    ; <=bit_code_emit@symbol; sym=rb2bus_error (data:00=>00 code:XX=>XX)
2601                    ; line_number = 175
2602                    ;  if !rb2bus_error done
2603                    ; delay after procedure statements=non-uniform
2604                    ; Implied return
2605 00c0 3400          retlw   0
2606            
2607            
2608            
2609            
2610                    ; line_number = 200
2611                    ;info   200, 193
2612                    ; procedure rb2bus_command
2613   00c1 :   rb2bus_command:
2614                    ; Last argument is sitting in W; save into argument variable
2615 00c1 00a7          movwf   rb2bus_command__command
2616                    ; delay=4294967295
2617                    ; line_number = 201
2618                    ; argument command byte
2619 00000027 = rb2bus_command__command equ globals___0+7
2620                    ; line_number = 202
2621                    ;  returns_nothing
2622            
2623                    ; # This procedure will process an shared {command}.  This procedure
2624                    ; # accesses the global string {id}.
2625            
2626                    ; line_number = 207
2627                    ;  local new_address byte
2628 00000025 = rb2bus_command__new_address equ globals___0+5
2629                    ; line_number = 208
2630                    ;  local temp byte
2631 00000026 = rb2bus_command__temp equ globals___0+6
2632            
2633                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2634                    ; line_number = 210
2635                    ;  switch command & 7 start
2636                    ;info   210, 194
2637 00c2 3000          movlw   rb2bus_command__13>>8
2638 00c3 008a          movwf   __pclath
2639 00c4 3007          movlw   7
2640 00c5 0527          andwf   rb2bus_command__command,w
2641 00c6 3ec8          addlw   rb2bus_command__13
2642 00c7 0082          movwf   __pcl
2643                    ; page_group 8
2644   00c8 :   rb2bus_command__13:
2645 00c8 2908          goto    rb2bus_command__14
2646 00c9 2908          goto    rb2bus_command__14
2647 00ca 2908          goto    rb2bus_command__14
2648 00cb 2908          goto    rb2bus_command__14
2649 00cc 28d0          goto    rb2bus_command__9
2650 00cd 28fc          goto    rb2bus_command__10
2651 00ce 2905          goto    rb2bus_command__11
2652 00cf 2907          goto    rb2bus_command__12
2653                    ; line_number = 211
2654                    ; case 4
2655   00d0 :   rb2bus_command__9:
2656                    ; # 1111 1100 (Address_Set):
2657                    ; # Return old address:
2658                    ; line_number = 214
2659                    ;  call rb2bus_byte_put(rb2bus_address)
2660                    ;info   214, 208
2661 00d0 0820          movf    rb2bus_address,w
2662 00d1 20ad          call    rb2bus_byte_put
2663            
2664                    ; # Fetch new address:
2665                    ; line_number = 217
2666                    ;  new_address := rb2bus_byte_get()
2667                    ;info   217, 210
2668 00d2 208b          call    rb2bus_byte_get
2669 00d3 00a5          movwf   rb2bus_command__new_address
2670                    ; line_number = 218
2671                    ;  if new_address = 0 || new_address = rb2bus_address start
2672                    ;info   218, 212
2673                    ; Left minus Right
2674 00d4 0825          movf    rb2bus_command__new_address,w
2675                    ; =>bit_code_emit@symbol(): sym=__z
2676                    ; No 1TEST: true.size=1 false.size=36
2677                    ; No 2TEST: true.size=1 false.size=36
2678                    ; 2GOTO: Single test with two GOTO's
2679 00d5 1903          btfsc   __z___byte, __z___bit
2680 00d6 28db          goto    rb2bus_command__5
2681                    ; Recombine code1_bit_states != code2_bit_states
2682                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2683                    ; Left minus Right
2684 00d7 0820          movf    rb2bus_address,w
2685 00d8 0225          subwf   rb2bus_command__new_address,w
2686                    ; =>bit_code_emit@symbol(): sym=__z
2687                    ; No 1TEST: true.size=4 false.size=27
2688                    ; No 2TEST: true.size=4 false.size=27
2689                    ; 2GOTO: Single test with two GOTO's
2690 00d9 1d03          btfss   __z___byte, __z___bit
2691 00da 28e0          goto    rb2bus_command__6
2692   00db :   rb2bus_command__5:
2693                    ; line_number = 219
2694                    ; call rb2bus_byte_put(0)
2695                    ;info   219, 219
2696 00db 3000          movlw   0
2697 00dc 20ad          call    rb2bus_byte_put
2698                    ; line_number = 220
2699                    ;  rb2bus_error := _true
2700                    ;info   220, 221
2701 00dd 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2702                    ; line_number = 221
2703                    ;  rb2bus_selected := _false
2704                    ;info   221, 222
2705 00de 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
2706 00df 28fb          goto    rb2bus_command__7
2707                    ; 2GOTO: Starting code 2
2708   00e0 :   rb2bus_command__6:
2709                    ; # Return new address:
2710                    ; line_number = 224
2711                    ;  call rb2bus_byte_put(new_address)
2712                    ;info   224, 224
2713 00e0 0825          movf    rb2bus_command__new_address,w
2714 00e1 20ad          call    rb2bus_byte_put
2715            
2716                    ; # Fetch new address again as a check:
2717                    ; line_number = 227
2718                    ;  temp := rb2bus_byte_get()
2719                    ;info   227, 226
2720 00e2 208b          call    rb2bus_byte_get
2721 00e3 00a6          movwf   rb2bus_command__temp
2722                    ; line_number = 228
2723                    ;  if temp != new_address start
2724                    ;info   228, 228
2725                    ; Left minus Right
2726 00e4 0825          movf    rb2bus_command__new_address,w
2727 00e5 0226          subwf   rb2bus_command__temp,w
2728                    ; =>bit_code_emit@symbol(): sym=__z
2729                    ; No 1TEST: true.size=14 false.size=4
2730                    ; No 2TEST: true.size=14 false.size=4
2731                    ; 2GOTO: Single test with two GOTO's
2732 00e6 1d03          btfss   __z___byte, __z___bit
2733 00e7 28f7          goto    rb2bus_command__3
2734                    ; line_number = 233
2735                    ; call rb2bus_eedata_write(new_address)
2736                    ;info   233, 232
2737 00e8 0825          movf    rb2bus_command__new_address,w
2738 00e9 213c          call    rb2bus_eedata_write
2739                    ; line_number = 234
2740                    ;  temp := rb2bus_eedata_read()
2741                    ;info   234, 234
2742 00ea 2127          call    rb2bus_eedata_read
2743 00eb 00a6          movwf   rb2bus_command__temp
2744                    ; line_number = 235
2745                    ;  if temp = new_address start
2746                    ;info   235, 236
2747                    ; Left minus Right
2748 00ec 0825          movf    rb2bus_command__new_address,w
2749 00ed 0226          subwf   rb2bus_command__temp,w
2750                    ; =>bit_code_emit@symbol(): sym=__z
2751                    ; No 1TEST: true.size=3 false.size=1
2752                    ; No 2TEST: true.size=3 false.size=1
2753                    ; 2GOTO: Single test with two GOTO's
2754 00ee 1d03          btfss   __z___byte, __z___bit
2755 00ef 28f4          goto    rb2bus_command__1
2756                    ; line_number = 236
2757                    ; rb2bus_address := new_address
2758                    ;info   236, 240
2759 00f0 0825          movf    rb2bus_command__new_address,w
2760 00f1 00a0          movwf   rb2bus_address
2761                    ; line_number = 237
2762                    ;  call rb2bus_byte_put(0xa5)
2763                    ;info   237, 242
2764 00f2 30a5          movlw   165
2765 00f3 28f5          goto    rb2bus_command__2
2766                    ; 2GOTO: Starting code 2
2767   00f4 :   rb2bus_command__1:
2768                    ; line_number = 239
2769                    ; call rb2bus_byte_put(0)
2770                    ;info   239, 244
2771 00f4 3000          movlw   0
2772   00f5 :   rb2bus_command__2:
2773                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
2774                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2775                    ; 2GOTO: code final bitstates:(data:00=>00 code:XX=>XX)
2776 00f5 20ad          call    rb2bus_byte_put
2777                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2778                    ; line_number = 235
2779                    ;  if temp = new_address done
2780 00f6 28fb          goto    rb2bus_command__4
2781                    ; 2GOTO: Starting code 2
2782   00f7 :   rb2bus_command__3:
2783                    ; line_number = 229
2784                    ; call rb2bus_byte_put(0)
2785                    ;info   229, 247
2786 00f7 3000          movlw   0
2787 00f8 20ad          call    rb2bus_byte_put
2788                    ; line_number = 230
2789                    ;  rb2bus_error := _true
2790                    ;info   230, 249
2791 00f9 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2792                    ; line_number = 231
2793                    ;  rb2bus_selected := _false
2794                    ;info   231, 250
2795 00fa 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
2796   00fb :   rb2bus_command__4:
2797                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
2798                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2799                    ; 2GOTO: code final bitstates:(data:00=>00 code:XX=>XX)
2800                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2801                    ; line_number = 228
2802                    ;  if temp != new_address done
2803   00fb :   rb2bus_command__7:
2804                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
2805                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2806                    ; 2GOTO: code final bitstates:(data:00=>00 code:XX=>XX)
2807                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2808                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2809                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
2810                    ; 2GOTO: No goto needed; true=rb2bus_command__5 false= true_size=1 false_size=36
2811                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
2812                    ; 2GOTO: code2 final bitstates:(data:XX=>XX code:XX=>XX)
2813                    ; 2GOTO: code final bitstates:(data:00=>00 code:XX=>XX)
2814                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2815                    ; line_number = 218
2816                    ;  if new_address = 0 || new_address = rb2bus_address done
2817 00fb 2908          goto    rb2bus_command__14
2818                    ; line_number = 240
2819                    ; case 5
2820   00fc :   rb2bus_command__10:
2821                    ; # 1111 1101 (Id_next):
2822                    ; line_number = 242
2823                    ;  if rb2bus_index < id.size start
2824                    ;info   242, 252
2825 00fc 3016          movlw   22
2826 00fd 0221          subwf   rb2bus_index,w
2827                    ; =>bit_code_emit@symbol(): sym=__c
2828                    ; No 1TEST: true.size=0 false.size=4
2829                    ; No 2TEST: true.size=0 false.size=4
2830                    ; 1GOTO: Single test with GOTO
2831 00fe 1803          btfsc   __c___byte, __c___bit
2832 00ff 2904          goto    rb2bus_command__8
2833                    ; line_number = 243
2834                    ; call rb2bus_byte_put(id[rb2bus_index])
2835                    ;info   243, 256
2836 0100 0821          movf    rb2bus_index,w
2837 0101 2050          call    id
2838 0102 20ad          call    rb2bus_byte_put
2839                    ; line_number = 244
2840                    ;  rb2bus_index := rb2bus_index + 1
2841                    ;info   244, 259
2842 0103 0aa1          incf    rb2bus_index,f
2843                    ; #if rb2bus_index >= id.size
2844                    ; #	rb2bus_index := rb2bus_index - 1
2845   0104 :   rb2bus_command__8:
2846                    ; Recombine size1 = 0 || size2 = 0
2847                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2848                    ; line_number = 242
2849                    ;  if rb2bus_index < id.size done
2850 0104 2908          goto    rb2bus_command__14
2851                    ; line_number = 247
2852                    ; case 6
2853   0105 :   rb2bus_command__11:
2854                    ; # 1111 1110 (Id_start):
2855                    ; line_number = 249
2856                    ;  rb2bus_index := 0
2857                    ;info   249, 261
2858 0105 01a1          clrf    rb2bus_index
2859 0106 2908          goto    rb2bus_command__14
2860                    ; line_number = 250
2861                    ; case 7
2862   0107 :   rb2bus_command__12:
2863                    ; # 1111 1111 (Deselect):
2864                    ; line_number = 252
2865                    ;  call rb2bus_deselect()
2866                    ;info   252, 263
2867 0107 2089          call    rb2bus_deselect
2868            
2869            
2870   0108 :   rb2bus_command__14:
2871                    ; line_number = 210
2872                    ;  switch command & 7 done
2873                    ; delay after procedure statements=non-uniform
2874                    ; Implied return
2875 0108 3400          retlw   0
2876            
2877            
2878            
2879            
2880                    ; buffer = 'rb2bus_pic16f688'
2881                    ; line_number = 18
2882                    ;info   18, 265
2883                    ; procedure rb2bus_initialize
2884   0109 :   rb2bus_initialize:
2885                    ; Last argument is sitting in W; save into argument variable
2886 0109 00a8          movwf   rb2bus_initialize__address
2887                    ; delay=4294967295
2888                    ; line_number = 19
2889                    ; argument address byte
2890 00000028 = rb2bus_initialize__address equ globals___0+8
2891                    ; line_number = 20
2892                    ;  returns_nothing
2893            
2894                    ; # This procedure is responsibile for initializing the UART
2895                    ; # connected to the bus.  {address} is the address of this
2896                    ; # slave module.  This code is specific to the PIC16F688.
2897            
2898                    ; # Warm up the UART:
2899                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2900                    ; line_number = 27
2901                    ;  _trisc@5 := _true
2902                    ;info   27, 266
2903 00000087 = rb2bus_initialize__select__1___byte equ _trisc
2904 00000005 = rb2bus_initialize__select__1___bit equ 5
2905 010a 1683          bsf     __rp0___byte, __rp0___bit
2906 010b 1687          bsf     rb2bus_initialize__select__1___byte, rb2bus_initialize__select__1___bit
2907                    ; line_number = 28
2908                    ;  _trisc@4 := _true
2909                    ;info   28, 268
2910 00000087 = rb2bus_initialize__select__2___byte equ _trisc
2911 00000004 = rb2bus_initialize__select__2___bit equ 4
2912 010c 1607          bsf     rb2bus_initialize__select__2___byte, rb2bus_initialize__select__2___bit
2913            
2914                    ; # Initialize the {_txsta} register:
2915                    ; line_number = 31
2916                    ;  _txsta := 0
2917                    ;info   31, 269
2918 010d 1283          bcf     __rp0___byte, __rp0___bit
2919 010e 0196          clrf    _txsta
2920                    ; line_number = 32
2921                    ;  _tx9 := _true
2922                    ;info   32, 271
2923 010f 1716          bsf     _tx9___byte, _tx9___bit
2924                    ; #_tx9 := _false
2925                    ; line_number = 34
2926                    ;  _txen := _true
2927                    ;info   34, 272
2928 0110 1696          bsf     _txen___byte, _txen___bit
2929                    ; line_number = 35
2930                    ;  _brgh := _true
2931                    ;info   35, 273
2932 0111 1516          bsf     _brgh___byte, _brgh___bit
2933            
2934                    ; # Initialize the {_rcsta} register:
2935                    ; line_number = 38
2936                    ;  _rcsta := 0
2937                    ;info   38, 274
2938 0112 0197          clrf    _rcsta
2939                    ; line_number = 39
2940                    ;  _spen := _true
2941                    ;info   39, 275
2942 0113 1797          bsf     _spen___byte, _spen___bit
2943                    ; line_number = 40
2944                    ;  _rx9 := _true
2945                    ;info   40, 276
2946 0114 1717          bsf     _rx9___byte, _rx9___bit
2947                    ; line_number = 41
2948                    ;  _cren := _true
2949                    ;info   41, 277
2950 0115 1617          bsf     _cren___byte, _cren___bit
2951                    ; #_adden := _true
2952                    ; line_number = 43
2953                    ;  _adden := _false
2954                    ;info   43, 278
2955 0116 1197          bcf     _adden___byte, _adden___bit
2956            
2957                    ; # Set up the baud rate generator:
2958                    ; line_number = 46
2959                    ;  _baudctl := 0
2960                    ;info   46, 279
2961 0117 0191          clrf    _baudctl
2962                    ; line_number = 47
2963                    ;  _brg16 := _true
2964                    ;info   47, 280
2965 0118 1591          bsf     _brg16___byte, _brg16___bit
2966                    ; line_number = 48
2967                    ;  _spbrg := _eusart_500000_low
2968                    ;info   48, 281
2969 0119 3009          movlw   9
2970 011a 0093          movwf   _spbrg
2971                    ; line_number = 49
2972                    ;  _spbrgh := _eusart_500000_high
2973                    ;info   49, 283
2974 011b 0192          clrf    _spbrgh
2975            
2976                    ; line_number = 51
2977                    ;  rb2bus_selected := _false
2978                    ;info   51, 284
2979 011c 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
2980                    ; line_number = 52
2981                    ;  rb2bus_error := _false
2982                    ;info   52, 285
2983 011d 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
2984                    ; line_number = 53
2985                    ;  rb2bus_index := 0
2986                    ;info   53, 286
2987 011e 01a1          clrf    rb2bus_index
2988            
2989                    ; # Deal with setting {rb2bus_address} from EEData memory:
2990                    ; line_number = 56
2991                    ;  rb2bus_address := rb2bus_eedata_read()
2992                    ;info   56, 287
2993 011f 2127          call    rb2bus_eedata_read
2994 0120 00a0          movwf   rb2bus_address
2995                    ; line_number = 57
2996                    ;  if rb2bus_address = 0 start
2997                    ;info   57, 289
2998                    ; Left minus Right
2999 0121 0820          movf    rb2bus_address,w
3000                    ; =>bit_code_emit@symbol(): sym=__z
3001                    ; No 1TEST: true.size=2 false.size=0
3002                    ; No 2TEST: true.size=2 false.size=0
3003                    ; 1GOTO: Single test with GOTO
3004 0122 1d03          btfss   __z___byte, __z___bit
3005 0123 2926          goto    rb2bus_initialize__3
3006                    ; # EE data not set, so use {address} passed in as a argument:
3007                    ; line_number = 59
3008                    ;  rb2bus_address := address
3009                    ;info   59, 292
3010 0124 0828          movf    rb2bus_initialize__address,w
3011 0125 00a0          movwf   rb2bus_address
3012            
3013            
3014                    ; Recombine size1 = 0 || size2 = 0
3015   0126 :   rb2bus_initialize__3:
3016                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3017                    ; line_number = 57
3018                    ;  if rb2bus_address = 0 done
3019                    ; delay after procedure statements=non-uniform
3020                    ; Implied return
3021 0126 3400          retlw   0
3022            
3023            
3024            
3025            
3026                    ; line_number = 64
3027                    ;info   64, 295
3028                    ; procedure rb2bus_eedata_read
3029   0127 :   rb2bus_eedata_read:
3030                    ; arguments_none
3031                    ; line_number = 66
3032                    ;  returns byte
3033            
3034                    ; # This procedure will return the address stored in EEData.  If
3035                    ; # there is no data, 0 is returned.
3036            
3037                    ; line_number = 71
3038                    ;  local temp1 byte
3039 00000029 = rb2bus_eedata_read__temp1 equ globals___0+9
3040                    ; line_number = 72
3041                    ;  local temp2 byte
3042 0000002a = rb2bus_eedata_read__temp2 equ globals___0+10
3043            
3044                    ; # Read the first byte (the address):
3045                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3046                    ; line_number = 75
3047                    ;  _eecon1 := 0
3048                    ;info   75, 295
3049 0127 1683          bsf     __rp0___byte, __rp0___bit
3050 0128 019c          clrf    _eecon1
3051                    ; line_number = 76
3052                    ;  _eeadr := rb2bus_eedata_address
3053                    ;info   76, 297
3054 0129 30fe          movlw   254
3055 012a 009b          movwf   _eeadr
3056                    ; line_number = 77
3057                    ;  _rd := _true
3058                    ;info   77, 299
3059 012b 141c          bsf     _rd___byte, _rd___bit
3060                    ; line_number = 78
3061                    ;  temp1 := _eedat
3062                    ;info   78, 300
3063 012c 081a          movf    _eedat,w
3064 012d 1283          bcf     __rp0___byte, __rp0___bit
3065 012e 00a9          movwf   rb2bus_eedata_read__temp1
3066            
3067                    ; # Read the second byte (the 1'z complement)
3068                    ; line_number = 81
3069                    ;  _eeadr := _eeadr + 1
3070                    ;info   81, 303
3071 012f 1683          bsf     __rp0___byte, __rp0___bit
3072 0130 0a9b          incf    _eeadr,f
3073                    ; line_number = 82
3074                    ;  _rd := _true
3075                    ;info   82, 305
3076 0131 141c          bsf     _rd___byte, _rd___bit
3077                    ; line_number = 83
3078                    ;  temp2 := _eedat
3079                    ;info   83, 306
3080 0132 081a          movf    _eedat,w
3081 0133 1283          bcf     __rp0___byte, __rp0___bit
3082 0134 00aa          movwf   rb2bus_eedata_read__temp2
3083            
3084                    ; # If they are 1's complement of one another, they are valid:
3085                    ; line_number = 86
3086                    ;  if temp1 = (0xff ^ temp2) start
3087                    ;info   86, 309
3088                    ; Left minus Right
3089 0135 092a          comf    rb2bus_eedata_read__temp2,w
3090 0136 0229          subwf   rb2bus_eedata_read__temp1,w
3091                    ; =>bit_code_emit@symbol(): sym=__z
3092                    ; No 1TEST: true.size=2 false.size=0
3093                    ; No 2TEST: true.size=2 false.size=0
3094                    ; 1GOTO: Single test with GOTO
3095 0137 1d03          btfss   __z___byte, __z___bit
3096 0138 293b          goto    rb2bus_eedata_read__1
3097                    ; # Return the valid address:
3098                    ; line_number = 88
3099                    ;  return temp1 start
3100                    ; line_number = 88
3101                    ;info   88, 313
3102 0139 0829          movf    rb2bus_eedata_read__temp1,w
3103 013a 0008          return  
3104                    ; line_number = 88
3105                    ;  return temp1 done
3106            
3107                    ; Recombine size1 = 0 || size2 = 0
3108   013b :   rb2bus_eedata_read__1:
3109                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3110                    ; line_number = 86
3111                    ;  if temp1 = (0xff ^ temp2) done
3112                    ; # They are not 1's complement, so return 0 as an error:
3113                    ; line_number = 91
3114                    ;  return 0 start
3115                    ; line_number = 91
3116                    ;info   91, 315
3117 013b 3400          retlw   0
3118                    ; line_number = 91
3119                    ;  return 0 done
3120            
3121            
3122                    ; delay after procedure statements=non-uniform
3123            
3124            
3125            
3126            
3127                    ; line_number = 94
3128                    ;info   94, 316
3129                    ; procedure rb2bus_eedata_write
3130   013c :   rb2bus_eedata_write:
3131                    ; Last argument is sitting in W; save into argument variable
3132 013c 00ab          movwf   rb2bus_eedata_write__address
3133                    ; delay=4294967295
3134                    ; line_number = 95
3135                    ; argument address byte
3136 0000002b = rb2bus_eedata_write__address equ globals___0+11
3137                    ; line_number = 96
3138                    ;  returns_nothing
3139            
3140                    ; # This procedure will write {address} into the EEData.  The
3141                    ; # microcontroll pauses while the EEData is written.
3142            
3143                    ; # Clear out the {_eecon1} register
3144                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3145                    ; line_number = 102
3146                    ;  _eecon1 := 0
3147                    ;info   102, 317
3148 013d 1683          bsf     __rp0___byte, __rp0___bit
3149 013e 019c          clrf    _eecon1
3150                    ; line_number = 103
3151                    ;  _eeadr := rb2bus_eedata_address
3152                    ;info   103, 319
3153 013f 30fe          movlw   254
3154 0140 009b          movwf   _eeadr
3155                    ; line_number = 104
3156                    ;  _eedat := address
3157                    ;info   104, 321
3158 0141 1283          bcf     __rp0___byte, __rp0___bit
3159 0142 082b          movf    rb2bus_eedata_write__address,w
3160 0143 1683          bsf     __rp0___byte, __rp0___bit
3161 0144 009a          movwf   _eedat
3162            
3163                    ; # Write 2 bytes ({address} followed by {address}^0xff):
3164                    ; line_number = 107
3165                    ;  loop_exactly 2 start
3166                    ;info   107, 325
3167 00000031 = rb2bus_eedata_write__1 equ globals___0+17
3168 0145 3002          movlw   2
3169 0146 1283          bcf     __rp0___byte, __rp0___bit
3170 0147 00b1          movwf   rb2bus_eedata_write__1
3171   0148 :   rb2bus_eedata_write__2:
3172                    ; # Set the data to write:
3173            
3174                    ; # Set up the for the write:
3175                    ; line_number = 111
3176                    ;  _wren := _true
3177                    ;info   111, 328
3178 0148 1683          bsf     __rp0___byte, __rp0___bit
3179 0149 151c          bsf     _wren___byte, _wren___bit
3180                    ; line_number = 112
3181                    ;  _gie := _false
3182                    ;info   112, 330
3183 014a 138b          bcf     _gie___byte, _gie___bit
3184                    ; line_number = 113
3185                    ;  _eecon2 := 0x55
3186                    ;info   113, 331
3187 014b 3055          movlw   85
3188 014c 009d          movwf   _eecon2
3189                    ; line_number = 114
3190                    ;  _eecon2 := 0xaa
3191                    ;info   114, 333
3192 014d 30aa          movlw   170
3193 014e 009d          movwf   _eecon2
3194                    ; # Start the write:
3195                    ; line_number = 116
3196                    ;  _wr := _true
3197                    ;info   116, 335
3198 014f 149c          bsf     _wr___byte, _wr___bit
3199            
3200                    ; # Wait for write to complete:
3201                    ; line_number = 119
3202                    ;  while _wr start
3203   0150 :   rb2bus_eedata_write__3:
3204                    ;info   119, 336
3205                    ; =>bit_code_emit@symbol(): sym=_wr
3206                    ; 1TEST: Single test with code in skip slot
3207 0150 189c          btfsc   _wr___byte, _wr___bit
3208                    ; line_number = 120
3209                    ; do_nothing
3210                    ;info   120, 337
3211            
3212 0151 2950          goto    rb2bus_eedata_write__3
3213                    ; Recombine size1 = 0 || size2 = 0
3214                    ; <=bit_code_emit@symbol; sym=_wr (data:00=>01 code:XX=>XX)
3215                    ; line_number = 119
3216                    ;  while _wr done
3217                    ; # Disable writing:
3218                    ; line_number = 123
3219                    ;  _wren := _false
3220                    ;info   123, 338
3221 0152 111c          bcf     _wren___byte, _wren___bit
3222            
3223                    ; # Prepare the second byte of data:
3224                    ; line_number = 126
3225                    ;  _eeadr := _eeadr + 1
3226                    ;info   126, 339
3227 0153 0a9b          incf    _eeadr,f
3228                    ; line_number = 127
3229                    ;  _eedat := address ^ 0xff
3230                    ;info   127, 340
3231 0154 1283          bcf     __rp0___byte, __rp0___bit
3232 0155 092b          comf    rb2bus_eedata_write__address,w
3233 0156 1683          bsf     __rp0___byte, __rp0___bit
3234 0157 009a          movwf   _eedat
3235            
3236 0158 1283          bcf     __rp0___byte, __rp0___bit
3237                    ; line_number = 107
3238                    ;  loop_exactly 2 wrap-up
3239 0159 0bb1          decfsz  rb2bus_eedata_write__1,f
3240 015a 2948          goto    rb2bus_eedata_write__2
3241                    ; line_number = 107
3242                    ;  loop_exactly 2 done
3243                    ; delay after procedure statements=non-uniform
3244                    ; Implied return
3245 015b 3400          retlw   0
3246            
3247            
3248            
3249            
3250                    ; Configuration bits
3251                    ; address = 0x2007, fill = 0x3000
3252                    ; fcmen = off (0x0)
3253                    ; ieso = off (0x0)
3254                    ; boden = off (0x0)
3255                    ; cpd = off (0x80)
3256                    ; cp = off (0x40)
3257                    ; mclre = off (0x0)
3258                    ; pwrte = off (0x10)
3259                    ; wdte = off (0x0)
3260                    ; fosc = hs (0x2)
3261                    ; 12498 = 0x30d2
3262   30d2 =           __config 12498
3263                    ; Define start addresses for data regions
3264                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
3265                    ; Region="globals___0" Address=32" Size=80 Bytes=18 Bits=4 Available=61
3266                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
3267                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
3268                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
3269                    end
