1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 2047
3      0000 :           org     0
4               
5                       ; Define start addresses for data regions
6    00000070 = shared___globals equ 112
7    00000020 = globals___0 equ 32
8    000000a0 = globals___1 equ 160
9    00000110 = globals___2 equ 272
10   00000190 = globals___3 equ 400
11   00000000 = __indf equ 0
12   00000002 = __pcl equ 2
13   00000003 = __status equ 3
14   00000004 = __fsr equ 4
15   00000003 = __c___byte equ 3
16   00000000 = __c___bit equ 0
17   00000003 = __z___byte equ 3
18   00000002 = __z___bit equ 2
19   00000003 = __rp0___byte equ 3
20   00000005 = __rp0___bit equ 5
21   00000003 = __rp1___byte equ 3
22   00000006 = __rp1___bit equ 6
23   00000003 = __irp___byte equ 3
24   00000007 = __irp___bit equ 7
25   0000000a = __pclath equ 10
26   0000000a = __cb0___byte equ 10
27   00000003 = __cb0___bit equ 3
28   0000000a = __cb1___byte equ 10
29   00000004 = __cb1___bit equ 4
30              
31                      ; # Copyright (c) 2007 by Wayne C. Gramlich.
32                      ; # All rights reserved.
33              
34                      ; buffer = 'camera1'
35                      ; line_number = 6
36                      ; library _pic16f88 entered
37              
38                      ; # Copyright (c) 2007 by Wayne C. Gramlich
39                      ; # All rights reserved.
40              
41                      ; buffer = '_pic16f88'
42                      ; line_number = 6
43                      ; processor pic16f88
44                      ; line_number = 7
45                      ; configure_address 0x2007
46                      ; line_number = 8
47                      ;  configure_fill 0x0000
48                      ; line_number = 9
49                      ;  configure_option cp: off = 0x2000
50                      ; line_number = 10
51                      ;  configure_option cp: on = 0x0000
52                      ; line_number = 11
53                      ;  configure_option ccpmx: ccp1_rb0 = 0x1000
54                      ; line_number = 12
55                      ;  configure_option ccpmx: ccp1_rb3 = 0x0000
56                      ; line_number = 13
57                      ;  configure_option debug: off = 0x800
58                      ; line_number = 14
59                      ;  configure_option debug: on = 0x000
60                      ; line_number = 15
61                      ;  configure_option wrt: off = 0x600
62                      ; line_number = 16
63                      ;  configure_option wrt: to_ff = 0x400
64                      ; line_number = 17
65                      ;  configure_option wrt: to_7ff = 0x200
66                      ; line_number = 18
67                      ;  configure_option wrt: on = 0x000
68                      ; line_number = 19
69                      ;  configure_option cpd: off = 0x100
70                      ; line_number = 20
71                      ;  configure_option cpd: on = 0x000
72                      ; line_number = 21
73                      ;  configure_option lvp: on = 0x80
74                      ; line_number = 22
75                      ;  configure_option lvp: off = 0x00
76                      ; line_number = 23
77                      ;  configure_option boden: on = 0x40
78                      ; line_number = 24
79                      ;  configure_option boden: off = 0x00
80                      ; line_number = 25
81                      ;  configure_option mclre: on = 0x20
82                      ; line_number = 26
83                      ;  configure_option mclre: off = 0x00
84                      ; line_number = 27
85                      ;  configure_option pwrte: on = 0
86                      ; line_number = 28
87                      ;  configure_option pwrte: off = 8
88                      ; line_number = 29
89                      ;  configure_option wdte: on = 4
90                      ; line_number = 30
91                      ;  configure_option wdte: off = 0
92                      ; line_number = 31
93                      ;  configure_option fosc: extrc_clk = 0x13
94                      ; line_number = 32
95                      ;  configure_option fosc: extrc_no_clk = 0x12
96                      ; line_number = 33
97                      ;  configure_option fosc: intrc_clk = 0x11
98                      ; line_number = 34
99                      ;  configure_option fosc: intrc_no_clk = 0x10
100                     ; line_number = 35
101                     ;  configure_option fosc: extclk = 3
102                     ; line_number = 36
103                     ;  configure_option fosc: hs = 2
104                     ; line_number = 37
105                     ;  configure_option fosc: xt = 1
106                     ; line_number = 38
107                     ;  configure_option fosc: lp = 0
108             
109                     ; line_number = 40
110                     ;  configure_address 0x2008
111                     ; line_number = 41
112                     ;  configure_fill 0x3ffc
113                     ; line_number = 42
114                     ;  configure_option ieso: on = 2
115                     ; line_number = 43
116                     ;  configure_option ieso: off = 0
117                     ; line_number = 44
118                     ;  configure_option fcmen: on = 1
119                     ; line_number = 45
120                     ;  configure_option fcmen: off = 0
121             
122                     ; line_number = 47
123                     ;  code_bank 0x0 : 0x7ff
124                     ; line_number = 48
125                     ;  code_bank 0x800 : 0xfff
126                     ; line_number = 49
127                     ;  data_bank 0x0 : 0x7f
128                     ; line_number = 50
129                     ;  data_bank 0x80 : 0xff
130                     ; line_number = 51
131                     ;  data_bank 0x100 : 0x17f
132                     ; line_number = 52
133                     ;  data_bank 0x180 : 0x1ff
134                     ; line_number = 53
135                     ;  global_region 0x20 : 0x6f
136                     ; line_number = 54
137                     ;  global_region 0xa0 : 0xef
138                     ; line_number = 55
139                     ;  global_region 0x110 : 0x16f
140                     ; line_number = 56
141                     ;  global_region 0x190 : 0x1ef
142                     ; line_number = 57
143                     ;  shared_region 0x70 : 0x7f
144                     ; line_number = 58
145                     ;  packages dip=18, soic=18, ssop=20
146                     ; line_number = 59
147                     ;  pin ra2_in, ra2_out, ra2_unused, an2, cvref, vref_minus
148                     ; line_number = 60
149                     ; pin_bindings dip=1, soic=1, ssop=1
150                     ; line_number = 61
151                     ;  bind_to _porta@2
152                     ; line_number = 62
153                     ;  or_if ra2_in _trisa 4
154                     ; line_number = 63
155                     ;  or_if ra2_in _cmcon 7
156                     ; line_number = 64
157                     ;  or_if ra2_in _ansel 0
158                     ; line_number = 65
159                     ;  or_if ra2_in _adcon0 0
160                     ; line_number = 66
161                     ;  or_if ra2_out _trisa 0
162                     ; line_number = 67
163                     ;  or_if ra2_out _cmcon 7
164                     ; line_number = 68
165                     ;  or_if ra2_out _ansel 0
166                     ; line_number = 69
167                     ;  or_if ra2_out _adcon0 0
168                     ; line_number = 70
169                     ;  or_if ra2_unused _trisa 4
170                     ; line_number = 71
171                     ;  or_if ra2_unused _ansel 0
172                     ; line_number = 72
173                     ;  or_if ra2_unused _adcon0 0
174                     ; line_number = 73
175                     ;  or_if an2 _trisa 4
176                     ; line_number = 74
177                     ;  or_if an2 _ansel 4
178                     ; line_number = 75
179                     ;  or_if an2 _cmcon 7
180                     ; line_number = 76
181                     ;  or_if an2 _ancon0 1
182                     ; line_number = 77
183                     ; pin ra3_in, ra3_out, ra3_unused, an3, vref_plus, c1out
184                     ; line_number = 78
185                     ; pin_bindings dip=2, soic=2, ssop=2
186                     ; line_number = 79
187                     ;  bind_to _porta@3
188                     ; line_number = 80
189                     ;  or_if ra3_in _trisa 8
190                     ; line_number = 81
191                     ;  or_if ra3_in _cmcon 7
192                     ; line_number = 82
193                     ;  or_if ra3_in _ansel 0
194                     ; line_number = 83
195                     ;  or_if ra3_in _adcon0 0
196                     ; line_number = 84
197                     ;  or_if ra3_out _trisa 0
198                     ; line_number = 85
199                     ;  or_if ra3_out _cmcon 7
200                     ; line_number = 86
201                     ;  or_if ra3_out _ansel 0
202                     ; line_number = 87
203                     ;  or_if ra3_out _adcon0 0
204                     ; line_number = 88
205                     ;  or_if ra3_unused _trisa 8
206                     ; line_number = 89
207                     ;  or_if ra3_unused _ansel 0
208                     ; line_number = 90
209                     ;  or_if ra3_unused _adcon0 0
210                     ; line_number = 91
211                     ;  or_if an3 _trisa 8
212                     ; line_number = 92
213                     ;  or_if an3 _ansel 8
214                     ; line_number = 93
215                     ;  or_if an3 _cmcon 7
216                     ; line_number = 94
217                     ;  or_if an3 _ancon0 1
218                     ; line_number = 95
219                     ; pin ra4_in, ra4_out, ra4_unused, an4, tocki, c2out
220                     ; line_number = 96
221                     ; pin_bindings dip=3, soic=3, ssop=3
222                     ; line_number = 97
223                     ;  bind_to _porta@4
224                     ; line_number = 98
225                     ;  or_if ra4_in _trisa 16
226                     ; line_number = 99
227                     ;  or_if ra4_in _ansel 0
228                     ; line_number = 100
229                     ;  or_if ra4_in _adcon0 0
230                     ; line_number = 101
231                     ;  or_if ra4_out _trisa 0
232                     ; line_number = 102
233                     ;  or_if ra4_out _ansel 0
234                     ; line_number = 103
235                     ;  or_if ra4_out _adcon0 0
236                     ; line_number = 104
237                     ;  or_if ra4_unused _trisa 16
238                     ; line_number = 105
239                     ;  or_if ra4_unused _ansel 0
240                     ; line_number = 106
241                     ;  or_if ra4_unused _adcon0 0
242                     ; line_number = 107
243                     ;  or_if an4 _trisa 16
244                     ; line_number = 108
245                     ;  or_if an4 _ansel 16
246                     ; line_number = 109
247                     ;  or_if an4 _cmcon 7
248                     ; line_number = 110
249                     ;  or_if an4 _ancon0 1
250                     ; line_number = 111
251                     ; pin ra5_in, ra5_unused, mclr, vpp
252                     ; line_number = 112
253                     ; pin_bindings dip=4, soic=4, ssop=4
254                     ; line_number = 113
255                     ;  bind_to _porta@5
256                     ; line_number = 114
257                     ;  or_if ra5_in _trisa 32
258                     ; line_number = 115
259                     ;  or_if ra5_unused _trisa 32
260                     ; line_number = 116
261                     ; pin vss, ground
262                     ; line_number = 117
263                     ; pin_bindings dip=5, soic=5, ssop=5
264                     ; line_number = 118
265                     ; pin avss, ground2
266                     ; line_number = 119
267                     ; pin_bindings ssop=6
268                     ; line_number = 120
269                     ; pin rb0_in, rb0_out, rb0_unused, int, ccp1
270                     ; line_number = 121
271                     ; pin_bindings dip=6, soic=6, ssop=7
272                     ; line_number = 122
273                     ;  bind_to _portb@0
274                     ; line_number = 123
275                     ;  or_if rb0_in _trisb 1
276                     ; line_number = 124
277                     ;  or_if rb0_out _trisb 0
278                     ; line_number = 125
279                     ;  or_if rb0_unused _trisb 1
280                     ; line_number = 126
281                     ;  or_if int _trisb 1
282                     ; line_number = 127
283                     ; pin rb1_in, rb1_out, rb1_unused, sdi, sda
284                     ; line_number = 128
285                     ; pin_bindings dip=7, soic=7, ssop=8
286                     ; line_number = 129
287                     ;  bind_to _portb@1
288                     ; line_number = 130
289                     ;  or_if rb1_in _trisb 2
290                     ; line_number = 131
291                     ;  or_if rb1_out _trisb 0
292                     ; line_number = 132
293                     ;  or_if rb1_unused _trisb 2
294                     ; line_number = 133
295                     ;  or_if sda _trisb 2
296                     ; line_number = 134
297                     ; pin rb2_in, rb2_out, rb2_unused, sdo, rx, dt
298                     ; line_number = 135
299                     ; pin_bindings dip=8, soic=8, ssop=9
300                     ; line_number = 136
301                     ;  bind_to _portb@2
302                     ; line_number = 137
303                     ;  or_if rb2_in _trisb 4
304                     ; line_number = 138
305                     ;  or_if rb2_out _trisb 0
306                     ; line_number = 139
307                     ;  or_if rb2_unused _trisb 4
308                     ; line_number = 140
309                     ;  or_if rx _trisb 4
310                     ; line_number = 141
311                     ; pin rb3_in, rb3_out, rb3_unused, pgm, ccp1_other
312                     ; line_number = 142
313                     ; pin_bindings dip=9, soic=9, ssop=10
314                     ; line_number = 143
315                     ;  bind_to _portb@3
316                     ; line_number = 144
317                     ;  or_if rb3_in _trisb 8
318                     ; line_number = 145
319                     ;  or_if rb3_out _trisb 0
320                     ; line_number = 146
321                     ;  or_if rb3_unused _trisb 8
322                     ; line_number = 147
323                     ;  or_if ccp1_other _trisb 8
324                     ; line_number = 148
325                     ; pin rb4_in, rb4_out, rb4_unused, sck, scl
326                     ; line_number = 149
327                     ; pin_bindings dip=10, soic=10, ssop=11
328                     ; line_number = 150
329                     ;  bind_to _portb@4
330                     ; line_number = 151
331                     ;  or_if rb4_in _trisb 16
332                     ; line_number = 152
333                     ;  or_if rb4_out _trisb 0
334                     ; line_number = 153
335                     ;  or_if rb4_unused _trisb 16
336                     ; line_number = 154
337                     ;  or_if scl _trisb 16
338                     ; line_number = 155
339                     ; pin rb5_in, rb5_out, rb5_unused, ss, tx, ck
340                     ; line_number = 156
341                     ; pin_bindings dip=11, soic=11, ssop=12
342                     ; line_number = 157
343                     ;  bind_to _portb@5
344                     ; line_number = 158
345                     ;  or_if rb5_in _trisb 32
346                     ; line_number = 159
347                     ;  or_if rb5_out _trisb 0
348                     ; line_number = 160
349                     ;  or_if rb5_unused _trisb 32
350                     ; line_number = 161
351                     ;  or_if tx _trisb 32
352                     ; line_number = 162
353                     ; pin rb6_in, rb6_out, rb6_unused, an5, pgc, t1oso, t1cki
354                     ; line_number = 163
355                     ; pin_bindings dip=12, soic=12, ssop=13
356                     ; line_number = 164
357                     ;  bind_to _portb@6
358                     ; line_number = 165
359                     ;  or_if rb6_in _trisb 64
360                     ; line_number = 166
361                     ;  or_if rb6_in _ansel 0
362                     ; line_number = 167
363                     ;  or_if rb6_in _adcon0 0
364                     ; line_number = 168
365                     ;  or_if rb6_out _trisb 0
366                     ; line_number = 169
367                     ;  or_if rb6_out _ansel 0
368                     ; line_number = 170
369                     ;  or_if rb6_out _adcon0 0
370                     ; line_number = 171
371                     ;  or_if rb6_unused _trisb 64
372                     ; line_number = 172
373                     ;  or_if rb6_unused _ansel 0
374                     ; line_number = 173
375                     ;  or_if rb6_unused _adcon0 0
376                     ; line_number = 174
377                     ;  or_if t1oso _trisb 0
378                     ; line_number = 175
379                     ;  or_if t1cki _trisb 64
380                     ; line_number = 176
381                     ;  or_if an5 _trisa 64
382                     ; line_number = 177
383                     ;  or_if an5 _ansel 32
384                     ; line_number = 178
385                     ;  or_if an5 _cmcon 7
386                     ; line_number = 179
387                     ;  or_if an5 _ancon0 1
388                     ; line_number = 180
389                     ; pin rb7_in, rb7_out, rb7_unused, an6, pgd, t1osi
390                     ; line_number = 181
391                     ; pin_bindings dip=13, soic=13, ssop=14
392                     ; line_number = 182
393                     ;  bind_to _portb@6
394                     ; line_number = 183
395                     ;  or_if rb7_in _trisb 128
396                     ; line_number = 184
397                     ;  or_if rb7_in _ansel 0
398                     ; line_number = 185
399                     ;  or_if rb7_in _adcon0 0
400                     ; line_number = 186
401                     ;  or_if rb7_out _trisb 0
402                     ; line_number = 187
403                     ;  or_if rb7_out _ansel 0
404                     ; line_number = 188
405                     ;  or_if rb7_out _adcon0 0
406                     ; line_number = 189
407                     ;  or_if rb7_unused _trisb 128
408                     ; line_number = 190
409                     ;  or_if rb7_unused _ansel 0
410                     ; line_number = 191
411                     ;  or_if rb7_unused _adcon0 0
412                     ; line_number = 192
413                     ;  or_if t1osi _trisb 128
414                     ; line_number = 193
415                     ;  or_if an6 _trisa 128
416                     ; line_number = 194
417                     ;  or_if an6 _ansel 64
418                     ; line_number = 195
419                     ;  or_if an6 _cmcon 7
420                     ; line_number = 196
421                     ;  or_if an6 _ancon0 1
422                     ; line_number = 197
423                     ; pin avdd, power_supply2
424                     ; line_number = 198
425                     ; pin_bindings ssop=15
426                     ; line_number = 199
427                     ; pin vdd, power_supply
428                     ; line_number = 200
429                     ; pin_bindings dip=14, soic=14, ssop=16
430                     ; line_number = 201
431                     ; pin ra6_in, ra6_out, ra6_unused, osc2, clko
432                     ; line_number = 202
433                     ; pin_bindings dip=15, soic=15, ssop=17
434                     ; line_number = 203
435                     ;  bind_to _porta@6
436                     ; line_number = 204
437                     ;  or_if ra6_in _trisa 64
438                     ; line_number = 205
439                     ;  or_if ra6_out _trisa 0
440                     ; line_number = 206
441                     ;  or_if ra6_unused _trisa 64
442                     ; line_number = 207
443                     ;  or_if clko _trisa 0
444                     ; line_number = 208
445                     ;  or_if osc2 _trisa 64
446                     ; line_number = 209
447                     ; pin ra7_in, ra7_out, ra7_unused, osc1, clki
448                     ; line_number = 210
449                     ; pin_bindings dip=16, soic=16, ssop=18
450                     ; line_number = 211
451                     ;  bind_to _porta@7
452                     ; line_number = 212
453                     ;  or_if ra7_in _trisa 128
454                     ; line_number = 213
455                     ;  or_if ra7_out _trisa 0
456                     ; line_number = 214
457                     ;  or_if ra7_unused _trisa 64
458                     ; line_number = 215
459                     ;  or_if osc1 _trisa 128
460                     ; line_number = 216
461                     ;  or_if clki _trisa 128
462                     ; line_number = 217
463                     ; pin ra0_in, ra0_out, ra0_unused, an0
464                     ; line_number = 218
465                     ; pin_bindings dip=17, soic=17, ssop=19
466                     ; line_number = 219
467                     ;  bind_to _porta@0
468                     ; line_number = 220
469                     ;  or_if ra0_in _trisa 1
470                     ; line_number = 221
471                     ;  or_if ra0_in _cmcon 7
472                     ; line_number = 222
473                     ;  or_if ra0_in _ansel 0
474                     ; line_number = 223
475                     ;  or_if ra0_in _adcon0 0
476                     ; line_number = 224
477                     ;  or_if ra0_out _trisa 0
478                     ; line_number = 225
479                     ;  or_if ra0_out _cmcon 7
480                     ; line_number = 226
481                     ;  or_if ra0_out _ansel 0
482                     ; line_number = 227
483                     ;  or_if ra0_out _adcon0 0
484                     ; line_number = 228
485                     ;  or_if ra0_unused _trisa 1
486                     ; line_number = 229
487                     ;  or_if ra0_unused _ansel 0
488                     ; line_number = 230
489                     ;  or_if ra0_unused _adcon0 0
490                     ; line_number = 231
491                     ;  or_if an0 _trisa 1
492                     ; line_number = 232
493                     ;  or_if an0 _ansel 1
494                     ; line_number = 233
495                     ;  or_if an0 _cmcon 7
496                     ; line_number = 234
497                     ;  or_if an0 _ancon0 1
498                     ; line_number = 235
499                     ; pin ra1_in, ra1_out, ra1_unused, an1
500                     ; line_number = 236
501                     ; pin_bindings dip=18, soic=18, ssop=20
502                     ; line_number = 237
503                     ;  bind_to _porta@1
504                     ; line_number = 238
505                     ;  or_if ra1_in _trisa 2
506                     ; line_number = 239
507                     ;  or_if ra1_in _cmcon 7
508                     ; line_number = 240
509                     ;  or_if ra1_in _ansel 0
510                     ; line_number = 241
511                     ;  or_if ra1_in _adcon0 0
512                     ; line_number = 242
513                     ;  or_if ra1_out _trisa 0
514                     ; line_number = 243
515                     ;  or_if ra1_out _cmcon 7
516                     ; line_number = 244
517                     ;  or_if ra1_out_ansel 0
518                     ; line_number = 245
519                     ;  or_if ra1_out _adcon0 0
520                     ; line_number = 246
521                     ;  or_if ra1_unused _trisa 2
522                     ; line_number = 247
523                     ;  or_if ra1_unused _ansel 0
524                     ; line_number = 248
525                     ;  or_if ra1_unused _adcon0 0
526                     ; line_number = 249
527                     ;  or_if an1 _trisa 2
528                     ; line_number = 250
529                     ;  or_if an1 _ansel 2
530                     ; line_number = 251
531                     ;  or_if an1 _cmcon 7
532                     ; line_number = 252
533                     ;  or_if an1 _ancon0 1
534             
535             
536                     ; line_number = 256
537                     ; library _standard entered
538             
539                     ; # Copyright (c) 2006 by Wayne C. Gramlich
540                     ; # All rights reserved.
541             
542                     ; # Standard definition for uCL:
543             
544                     ; buffer = '_standard'
545                     ; line_number = 8
546                     ; constant _true = (1 = 1)
547  00000001 = _true equ 1
548                     ; line_number = 9
549                     ; constant _false = (0 != 0)
550  00000000 = _false equ 0
551             
552             
553                     ; buffer = '_pic16f88'
554                     ; line_number = 256
555                     ; library _standard exited
556             
557                     ; # Data bank 0:
558             
559                     ; line_number = 260
560                     ; register _indf = 
561  00000000 = _indf equ 0
562             
563                     ; line_number = 262
564                     ; register _tmr0 = 
565  00000001 = _tmr0 equ 1
566             
567                     ; line_number = 264
568                     ; register _pcl = 
569  00000002 = _pcl equ 2
570             
571                     ; line_number = 266
572                     ; register _status = 
573  00000003 = _status equ 3
574                     ; line_number = 267
575                     ; bind _irp = _status@7
576  00000003 = _irp___byte equ _status
577  00000007 = _irp___bit equ 7
578                     ; line_number = 268
579                     ; bind _rp1 = _status@6
580  00000003 = _rp1___byte equ _status
581  00000006 = _rp1___bit equ 6
582                     ; line_number = 269
583                     ; bind _rp0 = _status@5
584  00000003 = _rp0___byte equ _status
585  00000005 = _rp0___bit equ 5
586                     ; line_number = 270
587                     ; bind _to = _status@4
588  00000003 = _to___byte equ _status
589  00000004 = _to___bit equ 4
590                     ; line_number = 271
591                     ; bind _pd = _status@3
592  00000003 = _pd___byte equ _status
593  00000003 = _pd___bit equ 3
594                     ; line_number = 272
595                     ; bind _z = _status@2
596  00000003 = _z___byte equ _status
597  00000002 = _z___bit equ 2
598                     ; line_number = 273
599                     ; bind _dc = _status@1
600  00000003 = _dc___byte equ _status
601  00000001 = _dc___bit equ 1
602                     ; line_number = 274
603                     ; bind _c = _status@0
604  00000003 = _c___byte equ _status
605  00000000 = _c___bit equ 0
606             
607                     ; line_number = 276
608                     ; register _fsr = 
609  00000004 = _fsr equ 4
610             
611                     ; line_number = 278
612                     ; register _porta = 
613  00000005 = _porta equ 5
614                     ; line_number = 279
615                     ; bind _ra7 = _porta@7
616  00000005 = _ra7___byte equ _porta
617  00000007 = _ra7___bit equ 7
618                     ; line_number = 280
619                     ; bind _ra6 = _porta@6
620  00000005 = _ra6___byte equ _porta
621  00000006 = _ra6___bit equ 6
622                     ; line_number = 281
623                     ; bind _ra5 = _porta@5
624  00000005 = _ra5___byte equ _porta
625  00000005 = _ra5___bit equ 5
626                     ; line_number = 282
627                     ; bind _ra4 = _porta@4
628  00000005 = _ra4___byte equ _porta
629  00000004 = _ra4___bit equ 4
630                     ; line_number = 283
631                     ; bind _ra3 = _porta@3
632  00000005 = _ra3___byte equ _porta
633  00000003 = _ra3___bit equ 3
634                     ; line_number = 284
635                     ; bind _ra2 = _porta@2
636  00000005 = _ra2___byte equ _porta
637  00000002 = _ra2___bit equ 2
638                     ; line_number = 285
639                     ; bind _ra1 = _porta@1
640  00000005 = _ra1___byte equ _porta
641  00000001 = _ra1___bit equ 1
642                     ; line_number = 286
643                     ; bind _ra0 = _porta@0
644  00000005 = _ra0___byte equ _porta
645  00000000 = _ra0___bit equ 0
646             
647                     ; line_number = 288
648                     ; register _portb = 
649  00000006 = _portb equ 6
650                     ; line_number = 289
651                     ; bind _rb7 = _portb@7
652  00000006 = _rb7___byte equ _portb
653  00000007 = _rb7___bit equ 7
654                     ; line_number = 290
655                     ; bind _rb6 = _portb@6
656  00000006 = _rb6___byte equ _portb
657  00000006 = _rb6___bit equ 6
658                     ; line_number = 291
659                     ; bind _rb5 = _portb@5
660  00000006 = _rb5___byte equ _portb
661  00000005 = _rb5___bit equ 5
662                     ; line_number = 292
663                     ; bind _rb4 = _portb@4
664  00000006 = _rb4___byte equ _portb
665  00000004 = _rb4___bit equ 4
666                     ; line_number = 293
667                     ; bind _rb3 = _portb@3
668  00000006 = _rb3___byte equ _portb
669  00000003 = _rb3___bit equ 3
670                     ; line_number = 294
671                     ; bind _rb2 = _portb@2
672  00000006 = _rb2___byte equ _portb
673  00000002 = _rb2___bit equ 2
674                     ; line_number = 295
675                     ; bind _rb1 = _portb@1
676  00000006 = _rb1___byte equ _portb
677  00000001 = _rb1___bit equ 1
678                     ; line_number = 296
679                     ; bind _rb0 = _portb@0
680  00000006 = _rb0___byte equ _portb
681  00000000 = _rb0___bit equ 0
682             
683                     ; line_number = 298
684                     ; register _pclath = 
685  0000000a = _pclath equ 10
686             
687                     ; line_number = 300
688                     ; register _intcon = 
689  0000000b = _intcon equ 11
690                     ; line_number = 301
691                     ; bind _gie = _intcon@7
692  0000000b = _gie___byte equ _intcon
693  00000007 = _gie___bit equ 7
694                     ; line_number = 302
695                     ; bind _peie = _intcon@6
696  0000000b = _peie___byte equ _intcon
697  00000006 = _peie___bit equ 6
698                     ; line_number = 303
699                     ; bind _tmr0ie = _intcon@5
700  0000000b = _tmr0ie___byte equ _intcon
701  00000005 = _tmr0ie___bit equ 5
702                     ; line_number = 304
703                     ; bind _int0ie = _intcon@4
704  0000000b = _int0ie___byte equ _intcon
705  00000004 = _int0ie___bit equ 4
706                     ; line_number = 305
707                     ; bind _rbie = _intcon@3
708  0000000b = _rbie___byte equ _intcon
709  00000003 = _rbie___bit equ 3
710                     ; line_number = 306
711                     ; bind _tmr0if = _intcon@2
712  0000000b = _tmr0if___byte equ _intcon
713  00000002 = _tmr0if___bit equ 2
714                     ; line_number = 307
715                     ; bind _int0if = _intcon@1
716  0000000b = _int0if___byte equ _intcon
717  00000001 = _int0if___bit equ 1
718                     ; line_number = 308
719                     ; bind _rbif = _intcon@0
720  0000000b = _rbif___byte equ _intcon
721  00000000 = _rbif___bit equ 0
722             
723                     ; line_number = 310
724                     ; register _pir1 = 
725  0000000c = _pir1 equ 12
726                     ; line_number = 311
727                     ; bind _adif = _pir1@6
728  0000000c = _adif___byte equ _pir1
729  00000006 = _adif___bit equ 6
730                     ; line_number = 312
731                     ; bind _rcif = _pir1@5
732  0000000c = _rcif___byte equ _pir1
733  00000005 = _rcif___bit equ 5
734                     ; line_number = 313
735                     ; bind _txif = _pir1@4
736  0000000c = _txif___byte equ _pir1
737  00000004 = _txif___bit equ 4
738                     ; line_number = 314
739                     ; bind _sspif = _pir1@3
740  0000000c = _sspif___byte equ _pir1
741  00000003 = _sspif___bit equ 3
742                     ; line_number = 315
743                     ; bind _ccp1if = _pir1@2
744  0000000c = _ccp1if___byte equ _pir1
745  00000002 = _ccp1if___bit equ 2
746                     ; line_number = 316
747                     ; bind _tmr2if = _pir1@1
748  0000000c = _tmr2if___byte equ _pir1
749  00000001 = _tmr2if___bit equ 1
750                     ; line_number = 317
751                     ; bind _tmr1if = _pir1@0
752  0000000c = _tmr1if___byte equ _pir1
753  00000000 = _tmr1if___bit equ 0
754             
755                     ; line_number = 319
756                     ; register _pir2 = 
757  0000000d = _pir2 equ 13
758                     ; line_number = 320
759                     ; bind _osfif = _pir1@7
760  0000000c = _osfif___byte equ _pir1
761  00000007 = _osfif___bit equ 7
762                     ; line_number = 321
763                     ; bind _cmif = _pir1@6
764  0000000c = _cmif___byte equ _pir1
765  00000006 = _cmif___bit equ 6
766                     ; line_number = 322
767                     ; bind _eeif = _pir1@4
768  0000000c = _eeif___byte equ _pir1
769  00000004 = _eeif___bit equ 4
770             
771                     ; line_number = 324
772                     ; register _tmr1l = 
773  0000000e = _tmr1l equ 14
774             
775                     ; line_number = 326
776                     ; register _tmr1h = 
777  0000000f = _tmr1h equ 15
778             
779                     ; line_number = 328
780                     ; register _t1con = 
781  00000010 = _t1con equ 16
782                     ; line_number = 329
783                     ; bind _t1run = _t1con@6
784  00000010 = _t1run___byte equ _t1con
785  00000006 = _t1run___bit equ 6
786                     ; line_number = 330
787                     ; bind _t1ckps1 = _t1con@5
788  00000010 = _t1ckps1___byte equ _t1con
789  00000005 = _t1ckps1___bit equ 5
790                     ; line_number = 331
791                     ; bind _t1ckps0 = _t1con@4
792  00000010 = _t1ckps0___byte equ _t1con
793  00000004 = _t1ckps0___bit equ 4
794                     ; line_number = 332
795                     ; bind _t1oscen = _t1con@3
796  00000010 = _t1oscen___byte equ _t1con
797  00000003 = _t1oscen___bit equ 3
798                     ; line_number = 333
799                     ; bind _t1sync = _t1con@2
800  00000010 = _t1sync___byte equ _t1con
801  00000002 = _t1sync___bit equ 2
802                     ; line_number = 334
803                     ; bind _tmr1cs = _t1con@1
804  00000010 = _tmr1cs___byte equ _t1con
805  00000001 = _tmr1cs___bit equ 1
806                     ; line_number = 335
807                     ; bind _tmr1on = _t1con@0
808  00000010 = _tmr1on___byte equ _t1con
809  00000000 = _tmr1on___bit equ 0
810             
811                     ; line_number = 337
812                     ; register _tmr2 = 
813  00000011 = _tmr2 equ 17
814             
815                     ; line_number = 339
816                     ; register _t2con = 
817  00000012 = _t2con equ 18
818                     ; line_number = 340
819                     ; bind _toutps3 = _t2con@6
820  00000012 = _toutps3___byte equ _t2con
821  00000006 = _toutps3___bit equ 6
822                     ; line_number = 341
823                     ; bind _toutps2 = _t2con@5
824  00000012 = _toutps2___byte equ _t2con
825  00000005 = _toutps2___bit equ 5
826                     ; line_number = 342
827                     ; bind _toutps1 = _t2con@4
828  00000012 = _toutps1___byte equ _t2con
829  00000004 = _toutps1___bit equ 4
830                     ; line_number = 343
831                     ; bind _toutps0 = _t2con@3
832  00000012 = _toutps0___byte equ _t2con
833  00000003 = _toutps0___bit equ 3
834                     ; line_number = 344
835                     ; bind _trm2on = _t2con@2
836  00000012 = _trm2on___byte equ _t2con
837  00000002 = _trm2on___bit equ 2
838                     ; line_number = 345
839                     ; bind _t2ckps1 = _t2con@1
840  00000012 = _t2ckps1___byte equ _t2con
841  00000001 = _t2ckps1___bit equ 1
842                     ; line_number = 346
843                     ; bind _t2ckps0 = _t2con@0
844  00000012 = _t2ckps0___byte equ _t2con
845  00000000 = _t2ckps0___bit equ 0
846             
847                     ; line_number = 348
848                     ; register _sspbuf = 
849  00000013 = _sspbuf equ 19
850             
851                     ; line_number = 350
852                     ; register _sspcon = 
853  00000014 = _sspcon equ 20
854                     ; line_number = 351
855                     ; bind _wcol = _sspcon@7
856  00000014 = _wcol___byte equ _sspcon
857  00000007 = _wcol___bit equ 7
858                     ; line_number = 352
859                     ; bind _sspov = _sspcon@6
860  00000014 = _sspov___byte equ _sspcon
861  00000006 = _sspov___bit equ 6
862                     ; line_number = 353
863                     ; bind _sspen = _sspcon@5
864  00000014 = _sspen___byte equ _sspcon
865  00000005 = _sspen___bit equ 5
866                     ; line_number = 354
867                     ; bind _ckp = _sspcon@4
868  00000014 = _ckp___byte equ _sspcon
869  00000004 = _ckp___bit equ 4
870                     ; line_number = 355
871                     ; bind _sspm3 = _sspcon@3
872  00000014 = _sspm3___byte equ _sspcon
873  00000003 = _sspm3___bit equ 3
874                     ; line_number = 356
875                     ; bind _sspm2 = _sspcon@2
876  00000014 = _sspm2___byte equ _sspcon
877  00000002 = _sspm2___bit equ 2
878                     ; line_number = 357
879                     ; bind _sspm1 = _sspcon@1
880  00000014 = _sspm1___byte equ _sspcon
881  00000001 = _sspm1___bit equ 1
882                     ; line_number = 358
883                     ; bind _sspm0 = _sspcon@0
884  00000014 = _sspm0___byte equ _sspcon
885  00000000 = _sspm0___bit equ 0
886             
887                     ; line_number = 360
888                     ; register _ccpr1l = 
889  00000015 = _ccpr1l equ 21
890             
891                     ; line_number = 362
892                     ; register _ccpr1h = 
893  00000016 = _ccpr1h equ 22
894             
895                     ; line_number = 364
896                     ; register _ccp1con = 
897  00000017 = _ccp1con equ 23
898                     ; line_number = 365
899                     ; bind _ccp1x = _ccp1con@5
900  00000017 = _ccp1x___byte equ _ccp1con
901  00000005 = _ccp1x___bit equ 5
902                     ; line_number = 366
903                     ; bind _ccp1y = _ccp1con@4
904  00000017 = _ccp1y___byte equ _ccp1con
905  00000004 = _ccp1y___bit equ 4
906                     ; line_number = 367
907                     ; bind _ccp1m3 = _ccp1con@3
908  00000017 = _ccp1m3___byte equ _ccp1con
909  00000003 = _ccp1m3___bit equ 3
910                     ; line_number = 368
911                     ; bind _ccp1m2 = _ccp1con@2
912  00000017 = _ccp1m2___byte equ _ccp1con
913  00000002 = _ccp1m2___bit equ 2
914                     ; line_number = 369
915                     ; bind _ccp1m1 = _ccp1con@1
916  00000017 = _ccp1m1___byte equ _ccp1con
917  00000001 = _ccp1m1___bit equ 1
918                     ; line_number = 370
919                     ; bind _ccp1m0 = _ccp1con@0
920  00000017 = _ccp1m0___byte equ _ccp1con
921  00000000 = _ccp1m0___bit equ 0
922             
923                     ; line_number = 372
924                     ; register _rcsta = 
925  00000018 = _rcsta equ 24
926                     ; line_number = 373
927                     ; bind _spen = _rcsta@7
928  00000018 = _spen___byte equ _rcsta
929  00000007 = _spen___bit equ 7
930                     ; line_number = 374
931                     ; bind _rx9 = _rcsta@6
932  00000018 = _rx9___byte equ _rcsta
933  00000006 = _rx9___bit equ 6
934                     ; line_number = 375
935                     ; bind _sren = _rcsta@5
936  00000018 = _sren___byte equ _rcsta
937  00000005 = _sren___bit equ 5
938                     ; line_number = 376
939                     ; bind _cren = _rcsta@4
940  00000018 = _cren___byte equ _rcsta
941  00000004 = _cren___bit equ 4
942                     ; line_number = 377
943                     ; bind _adden = _rcsta@3
944  00000018 = _adden___byte equ _rcsta
945  00000003 = _adden___bit equ 3
946                     ; # Some other modules use _aden instead of _adden:
947                     ; line_number = 379
948                     ; bind _aden = _rcsta@3
949  00000018 = _aden___byte equ _rcsta
950  00000003 = _aden___bit equ 3
951                     ; line_number = 380
952                     ; bind _ferr = _rcsta@2
953  00000018 = _ferr___byte equ _rcsta
954  00000002 = _ferr___bit equ 2
955                     ; line_number = 381
956                     ; bind _oerr = _rcsta@1
957  00000018 = _oerr___byte equ _rcsta
958  00000001 = _oerr___bit equ 1
959                     ; line_number = 382
960                     ; bind _rx9d = _rcsta@0
961  00000018 = _rx9d___byte equ _rcsta
962  00000000 = _rx9d___bit equ 0
963             
964                     ; line_number = 384
965                     ; register _txreg = 
966  00000019 = _txreg equ 25
967             
968                     ; line_number = 386
969                     ; register _rcreg = 
970  0000001a = _rcreg equ 26
971             
972                     ; line_number = 388
973                     ; register _adresh = 
974  0000001e = _adresh equ 30
975             
976                     ; line_number = 390
977                     ; register _adcon0 = 
978  0000001f = _adcon0 equ 31
979                     ; line_number = 391
980                     ; bind _adcs1 = _adcon0@7
981  0000001f = _adcs1___byte equ _adcon0
982  00000007 = _adcs1___bit equ 7
983                     ; line_number = 392
984                     ; bind _adcs0 = _adcon0@6
985  0000001f = _adcs0___byte equ _adcon0
986  00000006 = _adcs0___bit equ 6
987                     ; line_number = 393
988                     ; bind _chs2 = _adcon0@5
989  0000001f = _chs2___byte equ _adcon0
990  00000005 = _chs2___bit equ 5
991                     ; line_number = 394
992                     ; bind _chs1 = _adcon0@4
993  0000001f = _chs1___byte equ _adcon0
994  00000004 = _chs1___bit equ 4
995                     ; line_number = 395
996                     ; bind _chs0 = _adcon0@3
997  0000001f = _chs0___byte equ _adcon0
998  00000003 = _chs0___bit equ 3
999                     ; line_number = 396
1000                    ; bind _go = _adcon0@2
1001 0000001f = _go___byte equ _adcon0
1002 00000002 = _go___bit equ 2
1003                    ; line_number = 397
1004                    ; bind _adon = _adcon0@0
1005 0000001f = _adon___byte equ _adcon0
1006 00000000 = _adon___bit equ 0
1007            
1008                    ; # Data bank 1:
1009            
1010                    ; line_number = 401
1011                    ; register _option = 
1012 00000081 = _option equ 129
1013                    ; line_number = 402
1014                    ; bind _rbpu = _option@7
1015 00000081 = _rbpu___byte equ _option
1016 00000007 = _rbpu___bit equ 7
1017                    ; line_number = 403
1018                    ; bind _intedg = _option@6
1019 00000081 = _intedg___byte equ _option
1020 00000006 = _intedg___bit equ 6
1021                    ; line_number = 404
1022                    ; bind _t0cs = _option@5
1023 00000081 = _t0cs___byte equ _option
1024 00000005 = _t0cs___bit equ 5
1025                    ; line_number = 405
1026                    ; bind _t0se = _option@4
1027 00000081 = _t0se___byte equ _option
1028 00000004 = _t0se___bit equ 4
1029                    ; line_number = 406
1030                    ; bind _psa = _option@3
1031 00000081 = _psa___byte equ _option
1032 00000003 = _psa___bit equ 3
1033                    ; line_number = 407
1034                    ; bind _ps2 = _option@2
1035 00000081 = _ps2___byte equ _option
1036 00000002 = _ps2___bit equ 2
1037                    ; line_number = 408
1038                    ; bind _ps1 = _option@1
1039 00000081 = _ps1___byte equ _option
1040 00000001 = _ps1___bit equ 1
1041                    ; line_number = 409
1042                    ; bind _ps0 = _option@0
1043 00000081 = _ps0___byte equ _option
1044 00000000 = _ps0___bit equ 0
1045            
1046                    ; line_number = 411
1047                    ; register _trisa = 
1048 00000085 = _trisa equ 133
1049                    ; line_number = 412
1050                    ; bind _trisa7 = _trisa@7
1051 00000085 = _trisa7___byte equ _trisa
1052 00000007 = _trisa7___bit equ 7
1053                    ; line_number = 413
1054                    ; bind _trisa6 = _trisa@6
1055 00000085 = _trisa6___byte equ _trisa
1056 00000006 = _trisa6___bit equ 6
1057                    ; # No _trisa5:
1058                    ; line_number = 415
1059                    ; bind _trisa4 = _trisa@4
1060 00000085 = _trisa4___byte equ _trisa
1061 00000004 = _trisa4___bit equ 4
1062                    ; line_number = 416
1063                    ; bind _trisa3 = _trisa@3
1064 00000085 = _trisa3___byte equ _trisa
1065 00000003 = _trisa3___bit equ 3
1066                    ; line_number = 417
1067                    ; bind _trisa2 = _trisa@2
1068 00000085 = _trisa2___byte equ _trisa
1069 00000002 = _trisa2___bit equ 2
1070                    ; line_number = 418
1071                    ; bind _trisa1 = _trisa@1
1072 00000085 = _trisa1___byte equ _trisa
1073 00000001 = _trisa1___bit equ 1
1074                    ; line_number = 419
1075                    ; bind _trisa0 = _trisa@0
1076 00000085 = _trisa0___byte equ _trisa
1077 00000000 = _trisa0___bit equ 0
1078            
1079                    ; line_number = 421
1080                    ; register _trisb = 
1081 00000086 = _trisb equ 134
1082                    ; line_number = 422
1083                    ; bind _trisb7 = _trisb@7
1084 00000086 = _trisb7___byte equ _trisb
1085 00000007 = _trisb7___bit equ 7
1086                    ; line_number = 423
1087                    ; bind _trisb6 = _trisb@6
1088 00000086 = _trisb6___byte equ _trisb
1089 00000006 = _trisb6___bit equ 6
1090                    ; line_number = 424
1091                    ; bind _trisb5 = _trisb@5
1092 00000086 = _trisb5___byte equ _trisb
1093 00000005 = _trisb5___bit equ 5
1094                    ; line_number = 425
1095                    ; bind _trisb4 = _trisb@4
1096 00000086 = _trisb4___byte equ _trisb
1097 00000004 = _trisb4___bit equ 4
1098                    ; line_number = 426
1099                    ; bind _trisb3 = _trisb@3
1100 00000086 = _trisb3___byte equ _trisb
1101 00000003 = _trisb3___bit equ 3
1102                    ; line_number = 427
1103                    ; bind _trisb2 = _trisb@2
1104 00000086 = _trisb2___byte equ _trisb
1105 00000002 = _trisb2___bit equ 2
1106                    ; line_number = 428
1107                    ; bind _trisb1 = _trisb@1
1108 00000086 = _trisb1___byte equ _trisb
1109 00000001 = _trisb1___bit equ 1
1110                    ; line_number = 429
1111                    ; bind _trisb0 = _trisb@0
1112 00000086 = _trisb0___byte equ _trisb
1113 00000000 = _trisb0___bit equ 0
1114            
1115                    ; line_number = 431
1116                    ; register _pie1 = 
1117 0000008c = _pie1 equ 140
1118                    ; line_number = 432
1119                    ; bind _adie = _pie1@6
1120 0000008c = _adie___byte equ _pie1
1121 00000006 = _adie___bit equ 6
1122                    ; line_number = 433
1123                    ; bind _rcie = _pie1@5
1124 0000008c = _rcie___byte equ _pie1
1125 00000005 = _rcie___bit equ 5
1126                    ; line_number = 434
1127                    ; bind _txie = _pie1@4
1128 0000008c = _txie___byte equ _pie1
1129 00000004 = _txie___bit equ 4
1130                    ; line_number = 435
1131                    ; bind _sspie = _pie1@3
1132 0000008c = _sspie___byte equ _pie1
1133 00000003 = _sspie___bit equ 3
1134                    ; line_number = 436
1135                    ; bind _ccp1ie = _pie1@2
1136 0000008c = _ccp1ie___byte equ _pie1
1137 00000002 = _ccp1ie___bit equ 2
1138                    ; line_number = 437
1139                    ; bind _tmr2ie = _pie1@1
1140 0000008c = _tmr2ie___byte equ _pie1
1141 00000001 = _tmr2ie___bit equ 1
1142                    ; line_number = 438
1143                    ; bind _tmr1ie = _pie1@0
1144 0000008c = _tmr1ie___byte equ _pie1
1145 00000000 = _tmr1ie___bit equ 0
1146            
1147                    ; line_number = 440
1148                    ; register _pie2 = 
1149 0000008d = _pie2 equ 141
1150                    ; line_number = 441
1151                    ; bind _osfie = _pie2@7
1152 0000008d = _osfie___byte equ _pie2
1153 00000007 = _osfie___bit equ 7
1154                    ; line_number = 442
1155                    ; bind _cmie = _pie2@6
1156 0000008d = _cmie___byte equ _pie2
1157 00000006 = _cmie___bit equ 6
1158                    ; line_number = 443
1159                    ; bind _eeie = _pie2@4
1160 0000008d = _eeie___byte equ _pie2
1161 00000004 = _eeie___bit equ 4
1162            
1163                    ; line_number = 445
1164                    ; register _pcon = 
1165 0000008e = _pcon equ 142
1166                    ; line_number = 446
1167                    ; bind _por = _pcon@1
1168 0000008e = _por___byte equ _pcon
1169 00000001 = _por___bit equ 1
1170                    ; line_number = 447
1171                    ; bind _bod = _pcon@0
1172 0000008e = _bod___byte equ _pcon
1173 00000000 = _bod___bit equ 0
1174            
1175                    ; line_number = 449
1176                    ; register _osccon = 
1177 0000008f = _osccon equ 143
1178                    ; line_number = 450
1179                    ; bind _ircf2 = _osccon@6
1180 0000008f = _ircf2___byte equ _osccon
1181 00000006 = _ircf2___bit equ 6
1182                    ; line_number = 451
1183                    ; bind _ircf1 = _osccon@5
1184 0000008f = _ircf1___byte equ _osccon
1185 00000005 = _ircf1___bit equ 5
1186                    ; line_number = 452
1187                    ; bind _ircf0 = _osccon@4
1188 0000008f = _ircf0___byte equ _osccon
1189 00000004 = _ircf0___bit equ 4
1190                    ; line_number = 453
1191                    ; bind _osts = _osccon@3
1192 0000008f = _osts___byte equ _osccon
1193 00000003 = _osts___bit equ 3
1194                    ; line_number = 454
1195                    ; bind _iofs = _osccon@2
1196 0000008f = _iofs___byte equ _osccon
1197 00000002 = _iofs___bit equ 2
1198                    ; line_number = 455
1199                    ; bind _scs1 = _osccon@1
1200 0000008f = _scs1___byte equ _osccon
1201 00000001 = _scs1___bit equ 1
1202                    ; line_number = 456
1203                    ; bind _scs0 = _osccon@0
1204 0000008f = _scs0___byte equ _osccon
1205 00000000 = _scs0___bit equ 0
1206            
1207                    ; line_number = 458
1208                    ; register _osctune = 
1209 00000090 = _osctune equ 144
1210                    ; line_number = 459
1211                    ; bind _tun5 = _osctune@5
1212 00000090 = _tun5___byte equ _osctune
1213 00000005 = _tun5___bit equ 5
1214                    ; line_number = 460
1215                    ; bind _tun4 = _osctune@4
1216 00000090 = _tun4___byte equ _osctune
1217 00000004 = _tun4___bit equ 4
1218                    ; line_number = 461
1219                    ; bind _tun3 = _osctune@3
1220 00000090 = _tun3___byte equ _osctune
1221 00000003 = _tun3___bit equ 3
1222                    ; line_number = 462
1223                    ; bind _tun2 = _osctune@2
1224 00000090 = _tun2___byte equ _osctune
1225 00000002 = _tun2___bit equ 2
1226                    ; line_number = 463
1227                    ; bind _tun1 = _osctune@1
1228 00000090 = _tun1___byte equ _osctune
1229 00000001 = _tun1___bit equ 1
1230                    ; line_number = 464
1231                    ; bind _tun0 = _osctune@0
1232 00000090 = _tun0___byte equ _osctune
1233 00000000 = _tun0___bit equ 0
1234            
1235                    ; line_number = 466
1236                    ; register _pr2 = 
1237 00000092 = _pr2 equ 146
1238            
1239                    ; line_number = 468
1240                    ; register _sspadd = 
1241 00000093 = _sspadd equ 147
1242            
1243                    ; line_number = 470
1244                    ; register _sspstat = 
1245 00000094 = _sspstat equ 148
1246                    ; line_number = 471
1247                    ; bind _smp = _sspstat@7
1248 00000094 = _smp___byte equ _sspstat
1249 00000007 = _smp___bit equ 7
1250                    ; line_number = 472
1251                    ; bind _cke = _sspstat@6
1252 00000094 = _cke___byte equ _sspstat
1253 00000006 = _cke___bit equ 6
1254                    ; line_number = 473
1255                    ; bind _da = _sspstat@5
1256 00000094 = _da___byte equ _sspstat
1257 00000005 = _da___bit equ 5
1258                    ; line_number = 474
1259                    ; bind _p = _sspstat@4
1260 00000094 = _p___byte equ _sspstat
1261 00000004 = _p___bit equ 4
1262                    ; line_number = 475
1263                    ; bind _s = _sspstat@3
1264 00000094 = _s___byte equ _sspstat
1265 00000003 = _s___bit equ 3
1266                    ; line_number = 476
1267                    ; bind _rw = _sspstat@2
1268 00000094 = _rw___byte equ _sspstat
1269 00000002 = _rw___bit equ 2
1270                    ; line_number = 477
1271                    ; bind _ua = _sspstat@1
1272 00000094 = _ua___byte equ _sspstat
1273 00000001 = _ua___bit equ 1
1274                    ; line_number = 478
1275                    ; bind _bf = _sspstat@0
1276 00000094 = _bf___byte equ _sspstat
1277 00000000 = _bf___bit equ 0
1278            
1279                    ; line_number = 480
1280                    ; register _txsta = 
1281 00000098 = _txsta equ 152
1282                    ; line_number = 481
1283                    ; bind _csrc = _txsta@7
1284 00000098 = _csrc___byte equ _txsta
1285 00000007 = _csrc___bit equ 7
1286                    ; line_number = 482
1287                    ; bind _tx9 = _txsta@6
1288 00000098 = _tx9___byte equ _txsta
1289 00000006 = _tx9___bit equ 6
1290                    ; line_number = 483
1291                    ; bind _txen = _txsta@5
1292 00000098 = _txen___byte equ _txsta
1293 00000005 = _txen___bit equ 5
1294                    ; line_number = 484
1295                    ; bind _sync = _txsta@4
1296 00000098 = _sync___byte equ _txsta
1297 00000004 = _sync___bit equ 4
1298                    ; line_number = 485
1299                    ; bind _brgh = _txsta@2
1300 00000098 = _brgh___byte equ _txsta
1301 00000002 = _brgh___bit equ 2
1302                    ; line_number = 486
1303                    ; bind _trmt = _txsta@1
1304 00000098 = _trmt___byte equ _txsta
1305 00000001 = _trmt___bit equ 1
1306                    ; line_number = 487
1307                    ; bind _tx9d = _txsta@0
1308 00000098 = _tx9d___byte equ _txsta
1309 00000000 = _tx9d___bit equ 0
1310            
1311                    ; line_number = 489
1312                    ; register _spbrg = 
1313 00000099 = _spbrg equ 153
1314            
1315                    ; line_number = 491
1316                    ; register _ansel = 
1317 0000009b = _ansel equ 155
1318                    ; line_number = 492
1319                    ; bind _ans6 = _ansel@6
1320 0000009b = _ans6___byte equ _ansel
1321 00000006 = _ans6___bit equ 6
1322                    ; line_number = 493
1323                    ; bind _ans5 = _ansel@5
1324 0000009b = _ans5___byte equ _ansel
1325 00000005 = _ans5___bit equ 5
1326                    ; line_number = 494
1327                    ; bind _ans4 = _ansel@4
1328 0000009b = _ans4___byte equ _ansel
1329 00000004 = _ans4___bit equ 4
1330                    ; line_number = 495
1331                    ; bind _ans3 = _ansel@3
1332 0000009b = _ans3___byte equ _ansel
1333 00000003 = _ans3___bit equ 3
1334                    ; line_number = 496
1335                    ; bind _ans2 = _ansel@2
1336 0000009b = _ans2___byte equ _ansel
1337 00000002 = _ans2___bit equ 2
1338                    ; line_number = 497
1339                    ; bind _ans1 = _ansel@1
1340 0000009b = _ans1___byte equ _ansel
1341 00000001 = _ans1___bit equ 1
1342                    ; line_number = 498
1343                    ; bind _ans0 = _ansel@0
1344 0000009b = _ans0___byte equ _ansel
1345 00000000 = _ans0___bit equ 0
1346            
1347                    ; line_number = 500
1348                    ; register _cmcon = 
1349 0000009c = _cmcon equ 156
1350                    ; line_number = 501
1351                    ; bind _c2out = _cmcon@7
1352 0000009c = _c2out___byte equ _cmcon
1353 00000007 = _c2out___bit equ 7
1354                    ; line_number = 502
1355                    ; bind _c1out = _cmcon@6
1356 0000009c = _c1out___byte equ _cmcon
1357 00000006 = _c1out___bit equ 6
1358                    ; line_number = 503
1359                    ; bind _c2inv = _cmcon@5
1360 0000009c = _c2inv___byte equ _cmcon
1361 00000005 = _c2inv___bit equ 5
1362                    ; line_number = 504
1363                    ; bind _c1inv = _cmcon@4
1364 0000009c = _c1inv___byte equ _cmcon
1365 00000004 = _c1inv___bit equ 4
1366                    ; line_number = 505
1367                    ; bind _cis = _cmcon@3
1368 0000009c = _cis___byte equ _cmcon
1369 00000003 = _cis___bit equ 3
1370                    ; line_number = 506
1371                    ; bind _cm2 = _cmcon@2
1372 0000009c = _cm2___byte equ _cmcon
1373 00000002 = _cm2___bit equ 2
1374                    ; line_number = 507
1375                    ; bind _cm1 = _cmcon@1
1376 0000009c = _cm1___byte equ _cmcon
1377 00000001 = _cm1___bit equ 1
1378                    ; line_number = 508
1379                    ; bind _cm0 = _cmcon@0
1380 0000009c = _cm0___byte equ _cmcon
1381 00000000 = _cm0___bit equ 0
1382            
1383                    ; line_number = 510
1384                    ; register _cvrcon = 
1385 0000009d = _cvrcon equ 157
1386                    ; line_number = 511
1387                    ; bind _cvren = _cvrcon@7
1388 0000009d = _cvren___byte equ _cvrcon
1389 00000007 = _cvren___bit equ 7
1390                    ; line_number = 512
1391                    ; bind _cvroe = _cvrcon@6
1392 0000009d = _cvroe___byte equ _cvrcon
1393 00000006 = _cvroe___bit equ 6
1394                    ; line_number = 513
1395                    ; bind _cvrr = _cvrcon@5
1396 0000009d = _cvrr___byte equ _cvrcon
1397 00000005 = _cvrr___bit equ 5
1398                    ; line_number = 514
1399                    ; bind _cvr3 = _cvrcon@3
1400 0000009d = _cvr3___byte equ _cvrcon
1401 00000003 = _cvr3___bit equ 3
1402                    ; line_number = 515
1403                    ; bind _cvr2 = _cvrcon@2
1404 0000009d = _cvr2___byte equ _cvrcon
1405 00000002 = _cvr2___bit equ 2
1406                    ; line_number = 516
1407                    ; bind _cvr1 = _cvrcon@1
1408 0000009d = _cvr1___byte equ _cvrcon
1409 00000001 = _cvr1___bit equ 1
1410                    ; line_number = 517
1411                    ; bind _cvr0 = _cvrcon@0
1412 0000009d = _cvr0___byte equ _cvrcon
1413 00000000 = _cvr0___bit equ 0
1414            
1415                    ; line_number = 519
1416                    ; register _adresl = 
1417 0000009e = _adresl equ 158
1418            
1419                    ; line_number = 521
1420                    ; register _adcon1 = 
1421 0000009f = _adcon1 equ 159
1422                    ; line_number = 522
1423                    ; bind _adfm = _adcon1@7
1424 0000009f = _adfm___byte equ _adcon1
1425 00000007 = _adfm___bit equ 7
1426                    ; line_number = 523
1427                    ; bind _adcs2 = _adcon1@6
1428 0000009f = _adcs2___byte equ _adcon1
1429 00000006 = _adcs2___bit equ 6
1430                    ; line_number = 524
1431                    ; bind _vcfg1 = _adcon1@5
1432 0000009f = _vcfg1___byte equ _adcon1
1433 00000005 = _vcfg1___bit equ 5
1434                    ; line_number = 525
1435                    ; bind _vcfg0 = _adcon1@4
1436 0000009f = _vcfg0___byte equ _adcon1
1437 00000004 = _vcfg0___bit equ 4
1438            
1439                    ; line_number = 527
1440                    ; register _wdtcon = 
1441 00000105 = _wdtcon equ 261
1442                    ; line_number = 528
1443                    ; bind _wdtps3 = _wdtcon@4
1444 00000105 = _wdtps3___byte equ _wdtcon
1445 00000004 = _wdtps3___bit equ 4
1446                    ; line_number = 529
1447                    ; bind _wdtps2 = _wdtcon@3
1448 00000105 = _wdtps2___byte equ _wdtcon
1449 00000003 = _wdtps2___bit equ 3
1450                    ; line_number = 530
1451                    ; bind _wdtps1 = _wdtcon@2
1452 00000105 = _wdtps1___byte equ _wdtcon
1453 00000002 = _wdtps1___bit equ 2
1454                    ; line_number = 531
1455                    ; bind _wdtps0 = _wdtcon@1
1456 00000105 = _wdtps0___byte equ _wdtcon
1457 00000001 = _wdtps0___bit equ 1
1458                    ; line_number = 532
1459                    ; bind _swdten = _wdtcon@0
1460 00000105 = _swdten___byte equ _wdtcon
1461 00000000 = _swdten___bit equ 0
1462            
1463                    ; line_number = 534
1464                    ; register _eedata = 
1465 0000010c = _eedata equ 268
1466            
1467                    ; line_number = 536
1468                    ; register _eeadr = 
1469 0000010d = _eeadr equ 269
1470            
1471                    ; line_number = 538
1472                    ; register _eedath = 
1473 0000010e = _eedath equ 270
1474            
1475                    ; line_number = 540
1476                    ; register _eedatl = 
1477 0000010f = _eedatl equ 271
1478            
1479                    ; line_number = 542
1480                    ; register _eecon1 = 
1481 0000018c = _eecon1 equ 396
1482                    ; line_number = 543
1483                    ; bind _eepgd = _eecon1@7
1484 0000018c = _eepgd___byte equ _eecon1
1485 00000007 = _eepgd___bit equ 7
1486                    ; line_number = 544
1487                    ; bind _free = _eecon1@4
1488 0000018c = _free___byte equ _eecon1
1489 00000004 = _free___bit equ 4
1490                    ; line_number = 545
1491                    ; bind _wrerr = _eecon1@3
1492 0000018c = _wrerr___byte equ _eecon1
1493 00000003 = _wrerr___bit equ 3
1494                    ; line_number = 546
1495                    ; bind _wren = _eecon1@2
1496 0000018c = _wren___byte equ _eecon1
1497 00000002 = _wren___bit equ 2
1498                    ; line_number = 547
1499                    ; bind _wr = _eecon1@1
1500 0000018c = _wr___byte equ _eecon1
1501 00000001 = _wr___bit equ 1
1502                    ; line_number = 548
1503                    ; bind _rd = _eecon1@0
1504 0000018c = _rd___byte equ _eecon1
1505 00000000 = _rd___bit equ 0
1506            
1507                    ; line_number = 550
1508                    ; register _eecon2 = 
1509 0000009d = _eecon2 equ 157
1510            
1511                    ; buffer = 'camera1'
1512                    ; line_number = 6
1513                    ; library _pic16f88 exited
1514                    ; line_number = 7
1515                    ; library rb2 entered
1516            
1517                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich.
1518                    ; # All rights reserved.
1519            
1520                    ; buffer = 'rb2'
1521                    ; line_number = 6
1522                    ; library rb2_constants entered
1523            
1524                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich.
1525                    ; # All rights reserved.
1526            
1527                    ; buffer = 'rb2_constants'
1528                    ; line_number = 6
1529                    ; constant rb2_ok = 0xa5
1530 000000a5 = rb2_ok equ 165
1531            
1532                    ; line_number = 8
1533                    ; constant rb2_common_address_set = 0xfc
1534 000000fc = rb2_common_address_set equ 252
1535                    ; line_number = 9
1536                    ; constant rb2_common_id_next = 0xfd
1537 000000fd = rb2_common_id_next equ 253
1538                    ; line_number = 10
1539                    ; constant rb2_common_id_start = 0xfe
1540 000000fe = rb2_common_id_start equ 254
1541                    ; line_number = 11
1542                    ; constant rb2_common_deselect = 0xff
1543 000000ff = rb2_common_deselect equ 255
1544            
1545                    ; line_number = 13
1546                    ; constant rb2_laser1_address = 1
1547 00000001 = rb2_laser1_address equ 1
1548            
1549                    ; line_number = 15
1550                    ; constant rb2_minimotor2_address = 2
1551 00000002 = rb2_minimotor2_address equ 2
1552                    ; line_number = 16
1553                    ; constant rb2_midimotor2_address = 3
1554 00000003 = rb2_midimotor2_address equ 3
1555                    ; line_number = 17
1556                    ; constant rb2_motor0_speed_get = 0
1557 00000000 = rb2_motor0_speed_get equ 0
1558                    ; line_number = 18
1559                    ; constant rb2_motor0_speed_set = 1
1560 00000001 = rb2_motor0_speed_set equ 1
1561                    ; line_number = 19
1562                    ; constant rb2_motor1_speed_get = 2
1563 00000002 = rb2_motor1_speed_get equ 2
1564                    ; line_number = 20
1565                    ; constant rb2_motor1_speed_set = 3
1566 00000003 = rb2_motor1_speed_set equ 3
1567                    ; line_number = 21
1568                    ; constant rb2_duty_cycle_get = 4
1569 00000004 = rb2_duty_cycle_get equ 4
1570                    ; line_number = 22
1571                    ; constant rb2_duty_cycle_set = 8
1572 00000008 = rb2_duty_cycle_set equ 8
1573            
1574                    ; line_number = 24
1575                    ; constant rb2_irdistance2_address = 4
1576 00000004 = rb2_irdistance2_address equ 4
1577                    ; line_number = 25
1578                    ; constant rb2_irdistance2_raw0_get = 0
1579 00000000 = rb2_irdistance2_raw0_get equ 0
1580                    ; line_number = 26
1581                    ; constant rb2_irdistance2_raw1_get = 1
1582 00000001 = rb2_irdistance2_raw1_get equ 1
1583                    ; line_number = 27
1584                    ; constant rb2_irdistance2_smooth0_get = 2
1585 00000002 = rb2_irdistance2_smooth0_get equ 2
1586                    ; line_number = 28
1587                    ; constant rb2_irdistance2_smooth1_get = 3
1588 00000003 = rb2_irdistance2_smooth1_get equ 3
1589                    ; line_number = 29
1590                    ; constant rb2_irdistance2_linear0_get = 4
1591 00000004 = rb2_irdistance2_linear0_get equ 4
1592                    ; line_number = 30
1593                    ; constant rb2_irdistance2_linear1_get = 6
1594 00000006 = rb2_irdistance2_linear1_get equ 6
1595            
1596                    ; line_number = 32
1597                    ; constant rb2_shaft2_address = 5
1598 00000005 = rb2_shaft2_address equ 5
1599                    ; line_number = 33
1600                    ; constant rb2_shaft2_count_latch = 0
1601 00000000 = rb2_shaft2_count_latch equ 0
1602                    ; line_number = 34
1603                    ; constant rb2_shaft2_count_clear = 1
1604 00000001 = rb2_shaft2_count_clear equ 1
1605                    ; line_number = 35
1606                    ; constant rb2_shaft2_shaft0_high_get = 2
1607 00000002 = rb2_shaft2_shaft0_high_get equ 2
1608                    ; line_number = 36
1609                    ; constant rb2_shaft2_shaft1_high_get = 3
1610 00000003 = rb2_shaft2_shaft1_high_get equ 3
1611                    ; line_number = 37
1612                    ; constant rb2_shaft2_continue_get = 4
1613 00000004 = rb2_shaft2_continue_get equ 4
1614                    ; line_number = 38
1615                    ; constant rb2_shaft2_shaft0_low_get = rb2_shaft2_continue_get
1616 00000004 = rb2_shaft2_shaft0_low_get equ 4
1617                    ; line_number = 39
1618                    ; constant rb2_shaft2_shaft1_low_get = rb2_shaft2_continue_get
1619 00000004 = rb2_shaft2_shaft1_low_get equ 4
1620                    ; line_number = 40
1621                    ; constant rb2_shaft2_x_get = 0x10
1622 00000010 = rb2_shaft2_x_get equ 16
1623                    ; line_number = 41
1624                    ; constant rb2_shaft2_y_get = 0x11
1625 00000011 = rb2_shaft2_y_get equ 17
1626                    ; line_number = 42
1627                    ; constant rb2_shaft2_bearing16_get = 0x12
1628 00000012 = rb2_shaft2_bearing16_get equ 18
1629                    ; line_number = 43
1630                    ; constant rb2_shaft2_bearing8_get = 0x13
1631 00000013 = rb2_shaft2_bearing8_get equ 19
1632                    ; line_number = 44
1633                    ; constant rb2_shaft2_target_x_get = 0x14
1634 00000014 = rb2_shaft2_target_x_get equ 20
1635                    ; line_number = 45
1636                    ; constant rb2_shaft2_target_y_get = 0x15
1637 00000015 = rb2_shaft2_target_y_get equ 21
1638                    ; line_number = 46
1639                    ; constant rb2_shaft2_target_bearing16_get = 0x16
1640 00000016 = rb2_shaft2_target_bearing16_get equ 22
1641                    ; line_number = 47
1642                    ; constant rb2_shaft2_target_bearing8_get = 0x17
1643 00000017 = rb2_shaft2_target_bearing8_get equ 23
1644                    ; line_number = 48
1645                    ; constant rb2_shaft2_target_distance_get = 0x18
1646 00000018 = rb2_shaft2_target_distance_get equ 24
1647                    ; line_number = 49
1648                    ; constant rb2_shaft2_wheel_spacing_get = 0x19
1649 00000019 = rb2_shaft2_wheel_spacing_get equ 25
1650                    ; line_number = 50
1651                    ; constant rb2_shaft2_wheel_ticks_get = 0x1a
1652 0000001a = rb2_shaft2_wheel_ticks_get equ 26
1653                    ; line_number = 51
1654                    ; constant rb2_shaft2_wheel_diameter_get = 0x1b
1655 0000001b = rb2_shaft2_wheel_diameter_get equ 27
1656                    ; line_number = 52
1657                    ; constant rb2_shaft2_x_set = 0x20
1658 00000020 = rb2_shaft2_x_set equ 32
1659                    ; line_number = 53
1660                    ; constant rb2_shaft2_y_set = 0x21
1661 00000021 = rb2_shaft2_y_set equ 33
1662                    ; line_number = 54
1663                    ; constant rb2_shaft2_bearing16_set = 0x22
1664 00000022 = rb2_shaft2_bearing16_set equ 34
1665                    ; line_number = 55
1666                    ; constant rb2_shaft2_navigation_latch = 0x23
1667 00000023 = rb2_shaft2_navigation_latch equ 35
1668                    ; line_number = 56
1669                    ; constant rb2_shaft2_target_x_set = 0x24
1670 00000024 = rb2_shaft2_target_x_set equ 36
1671                    ; line_number = 57
1672                    ; constant rb2_shaft2_target_y_set = 0x25
1673 00000025 = rb2_shaft2_target_y_set equ 37
1674                    ; line_number = 58
1675                    ; constant rb2_shaft2_wheel_spacing_set = 0x29
1676 00000029 = rb2_shaft2_wheel_spacing_set equ 41
1677                    ; line_number = 59
1678                    ; constant rb2_shaft2_wheel_ticks_set = 0x2a
1679 0000002a = rb2_shaft2_wheel_ticks_set equ 42
1680                    ; line_number = 60
1681                    ; constant rb2_shaft2_wheel_diameter_set = 0x2b
1682 0000002b = rb2_shaft2_wheel_diameter_set equ 43
1683            
1684            
1685                    ; line_number = 63
1686                    ; constant rb2_orient5_address = 6
1687 00000006 = rb2_orient5_address equ 6
1688            
1689                    ; line_number = 65
1690                    ; constant rb2_compass8_address = 7
1691 00000007 = rb2_compass8_address equ 7
1692            
1693                    ; line_number = 67
1694                    ; constant rb2_io8_address = 8
1695 00000008 = rb2_io8_address equ 8
1696                    ; line_number = 68
1697                    ; constant rb2_io8_digital8_get = 0
1698 00000000 = rb2_io8_digital8_get equ 0
1699                    ; line_number = 69
1700                    ; constant rb2_io8_digital8_set = 1
1701 00000001 = rb2_io8_digital8_set equ 1
1702                    ; line_number = 70
1703                    ; constant rb2_io8_direction_get = 2
1704 00000002 = rb2_io8_direction_get equ 2
1705                    ; line_number = 71
1706                    ; constant rb2_io8_direction_set = 3
1707 00000003 = rb2_io8_direction_set equ 3
1708                    ; line_number = 72
1709                    ; constant rb2_io8_analog_mask_get = 4
1710 00000004 = rb2_io8_analog_mask_get equ 4
1711                    ; line_number = 73
1712                    ; constant rb2_io8_analog_mask_set = 5
1713 00000005 = rb2_io8_analog_mask_set equ 5
1714                    ; line_number = 74
1715                    ; constant rb2_io8_analog8_get = 0x10
1716 00000010 = rb2_io8_analog8_get equ 16
1717                    ; line_number = 75
1718                    ; constant rb2_io8_analog10_get = 0x18
1719 00000018 = rb2_io8_analog10_get equ 24
1720                    ; line_number = 76
1721                    ; constant rb2_low_set = 0x20
1722 00000020 = rb2_low_set equ 32
1723                    ; line_number = 77
1724                    ; constant rb2_high_set = 0x30
1725 00000030 = rb2_high_set equ 48
1726            
1727                    ; line_number = 79
1728                    ; constant rb2_sonar2_address = 9
1729 00000009 = rb2_sonar2_address equ 9
1730            
1731                    ; line_number = 81
1732                    ; constant rb2_voice1_address = 10
1733 0000000a = rb2_voice1_address equ 10
1734            
1735                    ; line_number = 83
1736                    ; constant rb2_servo4_address = 11
1737 0000000b = rb2_servo4_address equ 11
1738                    ; line_number = 84
1739                    ; constant rb2_servo4_servo0 = 0
1740 00000000 = rb2_servo4_servo0 equ 0
1741                    ; line_number = 85
1742                    ; constant rb2_servo4_servo1 = 1
1743 00000001 = rb2_servo4_servo1 equ 1
1744                    ; line_number = 86
1745                    ; constant rb2_servo4_servo2 = 2
1746 00000002 = rb2_servo4_servo2 equ 2
1747                    ; line_number = 87
1748                    ; constant rb2_servo4_servo3 = 3
1749 00000003 = rb2_servo4_servo3 equ 3
1750                    ; line_number = 88
1751                    ; constant rb2_servo4_quick_set = 0
1752 00000000 = rb2_servo4_quick_set equ 0
1753                    ; line_number = 89
1754                    ; constant rb2_servo4_quick_low = 0
1755 00000000 = rb2_servo4_quick_low equ 0
1756                    ; line_number = 90
1757                    ; constant rb2_servo4_quick_center = 40
1758 00000028 = rb2_servo4_quick_center equ 40
1759                    ; line_number = 91
1760                    ; constant rb2_servo4_quick_high = 0x7c
1761 0000007c = rb2_servo4_quick_high equ 124
1762                    ; line_number = 92
1763                    ; constant rb2_servo4_high_low_set = 0x80
1764 00000080 = rb2_servo4_high_low_set equ 128
1765                    ; line_number = 93
1766                    ; constant rb2_servo4_short_high_low_set = 0x84
1767 00000084 = rb2_servo4_short_high_low_set equ 132
1768                    ; line_number = 94
1769                    ; constant rb2_servo4_high_set = 0x88
1770 00000088 = rb2_servo4_high_set equ 136
1771                    ; line_number = 95
1772                    ; constant rb2_servo4_low_set = 0x8c
1773 0000008c = rb2_servo4_low_set equ 140
1774                    ; line_number = 96
1775                    ; constant rb2_servo4_enables_set = 0x90
1776 00000090 = rb2_servo4_enables_set equ 144
1777                    ; line_number = 97
1778                    ; constant rb2_servo4_enable0 = 1
1779 00000001 = rb2_servo4_enable0 equ 1
1780                    ; line_number = 98
1781                    ; constant rb2_servo4_enable1 = 2
1782 00000002 = rb2_servo4_enable1 equ 2
1783                    ; line_number = 99
1784                    ; constant rb2_servo4_enable2 = 4
1785 00000004 = rb2_servo4_enable2 equ 4
1786                    ; line_number = 100
1787                    ; constant rb2_servo4_enable3 = 8
1788 00000008 = rb2_servo4_enable3 equ 8
1789                    ; line_number = 101
1790                    ; constant rb2_servo4_enable_all = 0xf
1791 0000000f = rb2_servo4_enable_all equ 15
1792                    ; line_number = 102
1793                    ; constant rb2_servo4_enable_none = 0
1794 00000000 = rb2_servo4_enable_none equ 0
1795                    ; line_number = 103
1796                    ; constant rb2_servo4_high_get = 0xa0
1797 000000a0 = rb2_servo4_high_get equ 160
1798                    ; line_number = 104
1799                    ; constant rb2_servo4_low_get = 0xa4
1800 000000a4 = rb2_servo4_low_get equ 164
1801                    ; line_number = 105
1802                    ; constant rb2_servo4_enables_get = 0xa8
1803 000000a8 = rb2_servo4_enables_get equ 168
1804            
1805                    ; line_number = 107
1806                    ; constant rb2_controller28_address = 28
1807 0000001c = rb2_controller28_address equ 28
1808            
1809                    ; line_number = 109
1810                    ; constant rb2_lcd32_address = 32
1811 00000020 = rb2_lcd32_address equ 32
1812                    ; line_number = 110
1813                    ; constant rb2_lcd32_new_line = 0xa
1814 0000000a = rb2_lcd32_new_line equ 10
1815                    ; line_number = 111
1816                    ; constant rb2_lcd32_form_feed = 0xc
1817 0000000c = rb2_lcd32_form_feed equ 12
1818                    ; line_number = 112
1819                    ; constant rb2_lcd32_carriage_return = 0xd
1820 0000000d = rb2_lcd32_carriage_return equ 13
1821                    ; line_number = 113
1822                    ; constant rb2_lcd32_column_set = 0x20
1823 00000020 = rb2_lcd32_column_set equ 32
1824            
1825            
1826                    ; buffer = 'rb2'
1827                    ; line_number = 6
1828                    ; library rb2_constants exited
1829            
1830                    ; line_number = 8
1831                    ; global rb2_error bit		# A global error bit.
1832 0000006f = rb2_error___byte equ globals___0+79
1833 00000000 = rb2_error___bit equ 0
1834            
1835                    ; Delaying code generation for procedure  rb2_address_put
1836                    ; Delaying code generation for procedure  rb2_byte_put_get
1837                    ; Delaying code generation for procedure  rb2_byte_put
1838                    ; Delaying code generation for procedure  rb2_byte_get
1839            
1840                    ; buffer = 'camera1'
1841                    ; line_number = 7
1842                    ; library rb2 exited
1843            
1844                    ; # The resonator is running at 16MHz:
1845                    ; line_number = 10
1846                    ; library clock16mhz entered
1847                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1848                    ; # All rights reserved.
1849            
1850                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1851                    ; # and {clocks_per_instruction}.
1852            
1853                    ; # Define processor constants:
1854                    ; buffer = 'clock16mhz'
1855                    ; line_number = 9
1856                    ; constant clock_rate = 16000000
1857 00f42400 = clock_rate equ 16000000
1858                    ; line_number = 10
1859                    ; constant clocks_per_instruction = 4
1860 00000004 = clocks_per_instruction equ 4
1861                    ; line_number = 11
1862                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1863 003d0900 = instruction_rate equ 4000000
1864            
1865            
1866                    ; buffer = 'camera1'
1867                    ; line_number = 10
1868                    ; library clock16mhz exited
1869                    ; line_number = 11
1870                    ; constant microsecond = 4
1871 00000004 = microsecond equ 4
1872            
1873                    ; # The libary of bus access routines for use by the PIC16F88:
1874                    ; line_number = 14
1875                    ; library rb2bus_pic16f88 entered
1876            
1877                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1878                    ; # All rights reserved.
1879            
1880                    ; # This module provides some procedures for accessing a RoboBricks2
1881                    ; # bus via a UART.  It is speicialized for the PIC16F876:
1882                    ; #
1883                    ; # It defines the following procedure:
1884                    ; #
1885                    ; # {rb2bus_initialize}({address}) The procedure that initializes the UART
1886                    ; #                                for bus access.
1887            
1888                    ; # All other bus access procedures are defined in the {rb2bus} library
1889                    ; # which is accessed below:
1890                    ; buffer = 'rb2bus_pic16f88'
1891                    ; line_number = 16
1892                    ; library rb2bus entered
1893            
1894                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1895                    ; # All rights reserved.
1896            
1897                    ; # This module provides some procedures for accessing a RoboBricks2
1898                    ; # bus via a UART.
1899                    ; #
1900                    ; # This procedure defines the following procedures:
1901                    ; #
1902                    ; # {rb2bus_select_wait}  This procedure waits for the module to become selected
1903                    ; # {rb2bus_deselect}     This procedure causes this module to be deselected.
1904                    ; # {rb2bus_byte_get}     This procedure will get a byte form the bus.
1905                    ; # {rb2bus_byte_put}     This procedure will send a byte to the bus.
1906                    ; #
1907                    ; # The global variable {rb2bus_error} is set to 1 whenever the procedures
1908                    ; # feel like there is a command decoding error.
1909                    ; #
1910                    ; # The way to use these procedures is quite as follows:
1911                    ; #
1912                    ; #    # Comamnd byte variable:
1913                    ; #    local command byte
1914                    ; #
1915                    ; #    # Other initialize code goes here:
1916                    ; #
1917                    ; #    # Process commands from bus master:
1918                    ; #    loop_forever
1919                    ; #        rb2bus_error := _true
1920                    ; #	 while rb2bus_error
1921                    ; #	     call rb2bus_select_wait()
1922                    ; #	     command := rb2bus_byte_get()
1923                    ; #
1924                    ; #        # Decode command:
1925                    ; #	 switch command >> 6
1926                    ; #	   ...
1927                    ; #             case 5:
1928                    ; #	        # 0000 0101 (Foo command):
1929                    ; #	          if !rb2bus_error
1930                    ; #		      # Do foo command:
1931                    ; #
1932                    ; # The key concept behind these procedures is to make command
1933                    ; # decoding for the slave module easy.  If the slave module
1934                    ; # is in the middle of command decoding and the master suddenly
1935                    ; # sends out a module select command, we need to gracefully recover
1936                    ; # from the problem.  A command should only be executed if
1937                    ; # {rb2bus_error} is not set.  If {rb2bus_error} is set, we want
1938                    ; # to gracefully get back to the beginning of the loop without
1939                    ; # doing any damage.  Once {rb2bus_error} is set, all calls to
1940                    ; # {rb2bus_byte_get} return 0 and all calls to {rb2bus_byte_put}
1941                    ; # do nothing.  At the beginning of the loop, {rb2bus_error} is
1942                    ; # cleared by the {rb2bus_select_wait}() procedure and we have
1943                    ; # recovered from the situation.
1944            
1945                    ; buffer = 'rb2bus'
1946                    ; line_number = 54
1947                    ; library rb2_constants Skipped (duplicate)
1948                    ; line_number = 55
1949                    ; library rb2bus_globals entered
1950            
1951                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1952                    ; # All rights reserved.
1953            
1954                    ; # These are the global variables used by both the {rb2bus} and
1955                    ; # the various {rb2bus_picXXXX} libraries.  Poll based firmware
1956                    ; # uses both libraries, whereas interrupt driven software only
1957                    ; # uses the {rb2bus_picXXX} libraries.
1958            
1959                    ; buffer = 'rb2bus_globals'
1960                    ; line_number = 11
1961                    ; global rb2bus_selected bit	# 
1962 0000006f = rb2bus_selected___byte equ globals___0+79
1963 00000001 = rb2bus_selected___bit equ 1
1964                    ; line_number = 12
1965                    ; global rb2bus_error bit		# Global error bit
1966 0000006f = rb2bus_error___byte equ globals___0+79
1967 00000002 = rb2bus_error___bit equ 2
1968                    ; line_number = 13
1969                    ; global rb2bus_address byte	# Bus address to respond to
1970 00000024 = rb2bus_address equ globals___0+4
1971                    ; line_number = 14
1972                    ; global rb2bus_index byte	# Index into id information
1973 00000025 = rb2bus_index equ globals___0+5
1974            
1975            
1976                    ; buffer = 'rb2bus'
1977                    ; line_number = 55
1978                    ; library rb2bus_globals exited
1979            
1980                    ; Delaying code generation for procedure  rb2bus_select_wait
1981                    ; Delaying code generation for procedure  rb2bus_deselect
1982                    ; Delaying code generation for procedure  rb2bus_byte_get
1983                    ; Delaying code generation for procedure  rb2bus_byte_put
1984                    ; Delaying code generation for procedure  rb2bus_command
1985            
1986                    ; buffer = 'rb2bus_pic16f88'
1987                    ; line_number = 16
1988                    ; library rb2bus exited
1989            
1990                    ; # Baud_Rate = Fosc / (16(X+1))
1991                    ; # 16 * (X+1) = Fosc/Baud_Rate
1992                    ; # X+1 = Fosc/(16*Baud_Rate)
1993                    ; # X = Fosc/(16*Baud_rate) - 1
1994            
1995                    ; line_number = 23
1996                    ; constant baud_rate_500k = 500000
1997 0007a120 = baud_rate_500k equ 500000
1998                    ; line_number = 24
1999                    ; constant spbrg_500k = clock_rate / (16 * baud_rate_500k) - 1
2000 00000001 = spbrg_500k equ 1
2001            
2002                    ; Delaying code generation for procedure  rb2bus_initialize
2003                    ; line_number = 62
2004                    ; constant rb2bus_eedata_address = 0xfe
2005 000000fe = rb2bus_eedata_address equ 254
2006            
2007                    ; Delaying code generation for procedure  rb2bus_eedata_read
2008                    ; Delaying code generation for procedure  rb2bus_eedata_write
2009            
2010                    ; buffer = 'camera1'
2011                    ; line_number = 14
2012                    ; library rb2bus_pic16f88 exited
2013            
2014                    ; # This module uses a 16Mhz resonator; hence mode HS=High Speed:
2015            
2016                    ; # Only the RX and TX pins on this package are used:
2017                    ; line_number = 20
2018                    ; package dip
2019                    ; line_number = 21
2020                    ; pin 1 = ra2_in, name=bump
2021 00000005 = bump___byte equ _porta
2022 00000002 = bump___bit equ 2
2023                    ; line_number = 22
2024                    ;  pin 2 = ra3_in, name=decr
2025 00000005 = decr___byte equ _porta
2026 00000003 = decr___bit equ 3
2027                    ; line_number = 23
2028                    ;  pin 3 = ra4_in, name=view
2029 00000005 = view___byte equ _porta
2030 00000004 = view___bit equ 4
2031                    ; line_number = 24
2032                    ;  pin 4 = ra5_in, name=slave
2033 00000005 = slave___byte equ _porta
2034 00000005 = slave___bit equ 5
2035                    ; line_number = 25
2036                    ;  pin 5 = ground
2037                    ; line_number = 26
2038                    ;  pin 6 = rb0_in, name=reset
2039 00000006 = reset___byte equ _portb
2040 00000000 = reset___bit equ 0
2041                    ; line_number = 27
2042                    ;  pin 7 = rb1_in, name=sda_in
2043 00000006 = sda_in___byte equ _portb
2044 00000001 = sda_in___bit equ 1
2045                    ; line_number = 28
2046                    ;  pin 8 = rx
2047                    ; line_number = 29
2048                    ;  pin 9 = rb3_in, name=action
2049 00000006 = action___byte equ _portb
2050 00000003 = action___bit equ 3
2051                    ; line_number = 30
2052                    ;  pin 10 = rb4_in, name=scl_in
2053 00000006 = scl_in___byte equ _portb
2054 00000004 = scl_in___bit equ 4
2055                    ; line_number = 31
2056                    ;  pin 11 = tx
2057                    ; line_number = 32
2058                    ;  pin 12 = rb6_unused
2059                    ; line_number = 33
2060                    ;  pin 13 = rb7_unused
2061                    ; line_number = 34
2062                    ;  pin 14 = power_supply
2063                    ; line_number = 35
2064                    ;  pin 15 = osc2
2065                    ; line_number = 36
2066                    ;  pin 16 = osc1
2067                    ; line_number = 37
2068                    ;  pin 17 = ra0_unused
2069                    ; line_number = 38
2070                    ;  pin 18 = ra1_unused
2071            
2072                    ; line_number = 40
2073                    ; origin 0
2074   0000 :           org     0
2075            
2076                    ; line_number = 42
2077                    ;info   42, 0
2078                    ; procedure main
2079   0000 :   main:
2080                    ; Initialize some registers
2081 0000 019f          clrf    _adcon0
2082 0001 1683          bsf     __rp0___byte, __rp0___bit
2083 0002 019b          clrf    _ansel
2084 0003 3007          movlw   7
2085 0004 009c          movwf   _cmcon
2086 0005 30ff          movlw   255
2087 0006 0085          movwf   _trisa
2088 0007 30ff          movlw   255
2089 0008 0086          movwf   _trisb
2090                    ; arguments_none
2091                    ; line_number = 44
2092                    ;  returns_nothing
2093            
2094                    ; line_number = 46
2095                    ;  local command byte
2096 00000030 = main__command equ globals___0+16
2097                    ; line_number = 47
2098                    ;  local id_index byte
2099 00000031 = main__id_index equ globals___0+17
2100                    ; line_number = 48
2101                    ;  local result byte
2102 00000032 = main__result equ globals___0+18
2103                    ; line_number = 49
2104                    ;  local lcd_initialized bit
2105 0000006f = main__lcd_initialized___byte equ globals___0+79
2106 00000005 = main__lcd_initialized___bit equ 5
2107                    ; line_number = 50
2108                    ;  local match byte
2109 00000033 = main__match equ globals___0+19
2110                    ; line_number = 51
2111                    ;  local bump_count byte
2112 00000034 = main__bump_count equ globals___0+20
2113                    ; line_number = 52
2114                    ;  local action_count byte
2115 00000035 = main__action_count equ globals___0+21
2116            
2117                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:X0=cu=>X0)
2118                    ; line_number = 54
2119                    ;  call rb2bus_initialize(12)
2120                    ;info   54, 9
2121 0009 300c          movlw   12
2122 000a 1283          bcf     __rp0___byte, __rp0___bit
2123 000b 2299          call    rb2bus_initialize
2124                    ; line_number = 55
2125                    ;  id_index := 0
2126                    ;info   55, 12
2127 000c 01b1          clrf    main__id_index
2128                    ; line_number = 56
2129                    ;  lcd_initialized := _false
2130                    ;info   56, 13
2131 000d 12ef          bcf     main__lcd_initialized___byte, main__lcd_initialized___bit
2132                    ; line_number = 57
2133                    ;  match := 0
2134                    ;info   57, 14
2135 000e 01b3          clrf    main__match
2136                    ; line_number = 58
2137                    ;  bump_count := 0
2138                    ;info   58, 15
2139 000f 01b4          clrf    main__bump_count
2140                    ; line_number = 59
2141                    ;  action_count := 0
2142                    ;info   59, 16
2143 0010 01b5          clrf    main__action_count
2144            
2145                    ; line_number = 61
2146                    ;  scl_in := _false
2147                    ;info   61, 17
2148 0011 1206          bcf     scl_in___byte, scl_in___bit
2149                    ; line_number = 62
2150                    ;  sda_in := _false
2151                    ;info   62, 18
2152 0012 1086          bcf     sda_in___byte, sda_in___bit
2153            
2154                    ; line_number = 64
2155                    ;  loop_forever start
2156   0013 :   main__1:
2157                    ; line_number = 65
2158                    ; if slave start
2159                    ;info   65, 19
2160                    ; =>bit_code_emit@symbol(): sym=slave
2161                    ; No 1TEST: true.size=131 false.size=81
2162                    ; No 2TEST: true.size=131 false.size=81
2163                    ; 2GOTO: Single test with two GOTO's
2164 0013 1e85          btfss   slave___byte, slave___bit
2165 0014 2899          goto    main__59
2166                    ; # In slave mode commands come in via the bus:
2167                    ; # Make sure that we have been selected:
2168                    ; line_number = 68
2169                    ;  rb2bus_error := _true
2170                    ;info   68, 21
2171 0015 156f          bsf     rb2bus_error___byte, rb2bus_error___bit
2172                    ; line_number = 69
2173                    ;  while rb2bus_error start
2174   0016 :   main__24:
2175                    ;info   69, 22
2176                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2177                    ; No 1TEST: true.size=4 false.size=0
2178                    ; No 2TEST: true.size=4 false.size=0
2179                    ; 1GOTO: Single test with GOTO
2180 0016 1d6f          btfss   rb2bus_error___byte, rb2bus_error___bit
2181 0017 281c          goto    main__25
2182                    ; line_number = 70
2183                    ; call rb2bus_select_wait()
2184                    ;info   70, 24
2185 0018 21fa          call    rb2bus_select_wait
2186                    ; line_number = 71
2187                    ;  command := rb2bus_byte_get()
2188                    ;info   71, 25
2189 0019 2219          call    rb2bus_byte_get
2190 001a 00b0          movwf   main__command
2191            
2192 001b 2816          goto    main__24
2193                    ; Recombine size1 = 0 || size2 = 0
2194   001c :   main__25:
2195                    ; line_number = 69
2196                    ;  while rb2bus_error done
2197                    ; line_number = 73
2198                    ; switch command >> 6 start
2199                    ;info   73, 28
2200                    ; switch_before:(data:00=uu=>00 code:X0=cu=>X0) size=7
2201 001c 3000          movlw   main__56>>8
2202 001d 008a          movwf   __pclath
2203 0000003e = main__57 equ globals___0+30
2204 001e 0e30          swapf   main__command,w
2205 001f 00be          movwf   main__57
2206 0020 0cbe          rrf     main__57,f
2207 0021 0c3e          rrf     main__57,w
2208 0022 3903          andlw   3
2209                    ; switch after expression:(data:00=uu=>00 code:X0=cu=>X0)
2210 0023 3e25          addlw   main__56
2211 0024 0082          movwf   __pcl
2212                    ; page_group 4
2213   0025 :   main__56:
2214 0025 2829          goto    main__54
2215 0026 2898          goto    main__58
2216 0027 2898          goto    main__58
2217 0028 286d          goto    main__55
2218                    ; line_number = 74
2219                    ; case 0
2220   0029 :   main__54:
2221                    ; # 00xx xxxx:
2222                    ; line_number = 76
2223                    ;  switch (command >> 3) & 7 start
2224                    ;info   76, 41
2225                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2226                    ; line_number = 77
2227                    ; case_maximum 7
2228 0029 3000          movlw   main__41>>8
2229 002a 008a          movwf   __pclath
2230 0000003e = main__42 equ globals___0+30
2231 002b 0c30          rrf     main__command,w
2232 002c 00be          movwf   main__42
2233 002d 0cbe          rrf     main__42,f
2234 002e 0c3e          rrf     main__42,w
2235 002f 3907          andlw   7
2236                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2237 0030 3e32          addlw   main__41
2238 0031 0082          movwf   __pcl
2239                    ; page_group 8
2240   0032 :   main__41:
2241 0032 283a          goto    main__40
2242 0033 286c          goto    main__43
2243 0034 286c          goto    main__43
2244 0035 286c          goto    main__43
2245 0036 286c          goto    main__43
2246 0037 286c          goto    main__43
2247 0038 286c          goto    main__43
2248 0039 286c          goto    main__43
2249                    ; line_number = 78
2250                    ; case 0
2251   003a :   main__40:
2252                    ; #: 0000 0xxx:
2253                    ; line_number = 80
2254                    ;  result := 0
2255                    ;info   80, 58
2256 003a 01b2          clrf    main__result
2257                    ; line_number = 81
2258                    ;  switch command & 7 start
2259                    ;info   81, 59
2260                    ; switch_before:(data:00=uu=>00 code:XX=cc=>XX) size=1
2261                    ; line_number = 82
2262                    ; case_maximum 7
2263 003b 3000          movlw   main__38>>8
2264 003c 008a          movwf   __pclath
2265 003d 3007          movlw   7
2266 003e 0530          andwf   main__command,w
2267                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2268 003f 3e41          addlw   main__38
2269 0040 0082          movwf   __pcl
2270                    ; page_group 8
2271   0041 :   main__38:
2272 0041 2849          goto    main__32
2273 0042 286a          goto    main__39
2274 0043 286a          goto    main__39
2275 0044 2856          goto    main__33
2276 0045 285b          goto    main__34
2277 0046 285e          goto    main__35
2278 0047 2861          goto    main__36
2279 0048 2866          goto    main__37
2280                    ; line_number = 83
2281                    ; case 0
2282   0049 :   main__32:
2283                    ; #: 0000 0000:
2284                    ; line_number = 85
2285                    ;  if bump start
2286                    ;info   85, 73
2287                    ; =>bit_code_emit@symbol(): sym=bump
2288                    ; 1TEST: Single test with code in skip slot
2289 0049 1905          btfsc   bump___byte, bump___bit
2290                    ; line_number = 86
2291                    ; result@0 := _true
2292                    ;info   86, 74
2293 00000032 = main__select__26___byte equ main__result
2294 00000000 = main__select__26___bit equ 0
2295 004a 1432          bsf     main__select__26___byte, main__select__26___bit
2296                    ; Recombine size1 = 0 || size2 = 0
2297                    ; line_number = 85
2298                    ;  if bump done
2299                    ; line_number = 87
2300                    ; if reset start
2301                    ;info   87, 75
2302                    ; =>bit_code_emit@symbol(): sym=reset
2303                    ; 1TEST: Single test with code in skip slot
2304 004b 1806          btfsc   reset___byte, reset___bit
2305                    ; line_number = 88
2306                    ; result@1 := _true
2307                    ;info   88, 76
2308 00000032 = main__select__27___byte equ main__result
2309 00000001 = main__select__27___bit equ 1
2310 004c 14b2          bsf     main__select__27___byte, main__select__27___bit
2311                    ; Recombine size1 = 0 || size2 = 0
2312                    ; line_number = 87
2313                    ; if reset done
2314                    ; line_number = 89
2315                    ; if slave start
2316                    ;info   89, 77
2317                    ; =>bit_code_emit@symbol(): sym=slave
2318                    ; 1TEST: Single test with code in skip slot
2319 004d 1a85          btfsc   slave___byte, slave___bit
2320                    ; line_number = 90
2321                    ; result@2 := _true
2322                    ;info   90, 78
2323 00000032 = main__select__28___byte equ main__result
2324 00000002 = main__select__28___bit equ 2
2325 004e 1532          bsf     main__select__28___byte, main__select__28___bit
2326                    ; Recombine size1 = 0 || size2 = 0
2327                    ; line_number = 89
2328                    ; if slave done
2329                    ; line_number = 91
2330                    ; if view start
2331                    ;info   91, 79
2332                    ; =>bit_code_emit@symbol(): sym=view
2333                    ; 1TEST: Single test with code in skip slot
2334 004f 1a05          btfsc   view___byte, view___bit
2335                    ; line_number = 92
2336                    ; result@3 := _true
2337                    ;info   92, 80
2338 00000032 = main__select__29___byte equ main__result
2339 00000003 = main__select__29___bit equ 3
2340 0050 15b2          bsf     main__select__29___byte, main__select__29___bit
2341                    ; Recombine size1 = 0 || size2 = 0
2342                    ; line_number = 91
2343                    ; if view done
2344                    ; line_number = 93
2345                    ; if decr start
2346                    ;info   93, 81
2347                    ; =>bit_code_emit@symbol(): sym=decr
2348                    ; 1TEST: Single test with code in skip slot
2349 0051 1985          btfsc   decr___byte, decr___bit
2350                    ; line_number = 94
2351                    ; result@4 := _true
2352                    ;info   94, 82
2353 00000032 = main__select__30___byte equ main__result
2354 00000004 = main__select__30___bit equ 4
2355 0052 1632          bsf     main__select__30___byte, main__select__30___bit
2356                    ; Recombine size1 = 0 || size2 = 0
2357                    ; line_number = 93
2358                    ; if decr done
2359                    ; line_number = 95
2360                    ; if action start
2361                    ;info   95, 83
2362                    ; =>bit_code_emit@symbol(): sym=action
2363                    ; 1TEST: Single test with code in skip slot
2364 0053 1986          btfsc   action___byte, action___bit
2365                    ; line_number = 96
2366                    ; result@5 := _true
2367                    ;info   96, 84
2368 00000032 = main__select__31___byte equ main__result
2369 00000005 = main__select__31___bit equ 5
2370 0054 16b2          bsf     main__select__31___byte, main__select__31___bit
2371                    ; Recombine size1 = 0 || size2 = 0
2372                    ; line_number = 95
2373                    ; if action done
2374 0055 286a          goto    main__39
2375                    ; line_number = 97
2376                    ; case 3
2377   0056 :   main__33:
2378                    ; This case body wants this bit set
2379 0056 1683          bsf     __rp0___byte, __rp0___bit
2380                    ; line_number = 98
2381                    ; result := _cmcon
2382                    ;info   98, 87
2383 0057 081c          movf    _cmcon,w
2384 0058 1283          bcf     __rp0___byte, __rp0___bit
2385 0059 00b2          movwf   main__result
2386 005a 286a          goto    main__39
2387                    ; line_number = 99
2388                    ; case 4
2389   005b :   main__34:
2390                    ; line_number = 100
2391                    ; result := _porta
2392                    ;info   100, 91
2393 005b 0805          movf    _porta,w
2394 005c 00b2          movwf   main__result
2395 005d 286a          goto    main__39
2396                    ; line_number = 101
2397                    ; case 5
2398   005e :   main__35:
2399                    ; line_number = 102
2400                    ; result := _portb
2401                    ;info   102, 94
2402 005e 0806          movf    _portb,w
2403 005f 00b2          movwf   main__result
2404 0060 286a          goto    main__39
2405                    ; line_number = 103
2406                    ; case 6
2407   0061 :   main__36:
2408                    ; This case body wants this bit set
2409 0061 1683          bsf     __rp0___byte, __rp0___bit
2410                    ; line_number = 104
2411                    ; result := _trisa
2412                    ;info   104, 98
2413 0062 0805          movf    _trisa,w
2414 0063 1283          bcf     __rp0___byte, __rp0___bit
2415 0064 00b2          movwf   main__result
2416 0065 286a          goto    main__39
2417                    ; line_number = 105
2418                    ; case 7
2419   0066 :   main__37:
2420                    ; This case body wants this bit set
2421 0066 1683          bsf     __rp0___byte, __rp0___bit
2422                    ; line_number = 106
2423                    ; result := _trisb
2424                    ;info   106, 103
2425 0067 0806          movf    _trisb,w
2426 0068 1283          bcf     __rp0___byte, __rp0___bit
2427 0069 00b2          movwf   main__result
2428   006a :   main__39:
2429                    ; line_number = 81
2430                    ;  switch command & 7 done
2431                    ; line_number = 107
2432                    ; call rb2bus_byte_put(result)
2433                    ;info   107, 106
2434 006a 0832          movf    main__result,w
2435 006b 223b          call    rb2bus_byte_put
2436   006c :   main__43:
2437                    ; line_number = 76
2438                    ;  switch (command >> 3) & 7 done
2439 006c 2898          goto    main__58
2440                    ; line_number = 108
2441                    ; case 3
2442   006d :   main__55:
2443                    ; # 11xx xxxx:
2444                    ; line_number = 110
2445                    ;  switch (command >> 3) & 7 start
2446                    ;info   110, 109
2447                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2448 006d 3000          movlw   main__51>>8
2449 006e 008a          movwf   __pclath
2450 0000003e = main__52 equ globals___0+30
2451 006f 0c30          rrf     main__command,w
2452 0070 00be          movwf   main__52
2453 0071 0cbe          rrf     main__52,f
2454 0072 0c3e          rrf     main__52,w
2455 0073 3907          andlw   7
2456                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2457 0074 3e76          addlw   main__51
2458 0075 0082          movwf   __pcl
2459                    ; page_group 8
2460   0076 :   main__51:
2461 0076 2898          goto    main__53
2462 0077 2898          goto    main__53
2463 0078 2898          goto    main__53
2464 0079 2898          goto    main__53
2465 007a 2898          goto    main__53
2466 007b 2898          goto    main__53
2467 007c 2898          goto    main__53
2468 007d 287e          goto    main__50
2469                    ; line_number = 111
2470                    ; case 7
2471   007e :   main__50:
2472                    ; # 1111 1xxx:
2473                    ; line_number = 113
2474                    ;  switch command & 7 start
2475                    ;info   113, 126
2476                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2477 007e 3000          movlw   main__48>>8
2478 007f 008a          movwf   __pclath
2479 0080 3007          movlw   7
2480 0081 0530          andwf   main__command,w
2481                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2482 0082 3e84          addlw   main__48
2483 0083 0082          movwf   __pcl
2484                    ; page_group 8
2485   0084 :   main__48:
2486 0084 2898          goto    main__49
2487 0085 2898          goto    main__49
2488 0086 2898          goto    main__49
2489 0087 2898          goto    main__49
2490 0088 2898          goto    main__49
2491 0089 288c          goto    main__45
2492 008a 2895          goto    main__46
2493 008b 2897          goto    main__47
2494                    ; line_number = 114
2495                    ; case 5
2496   008c :   main__45:
2497                    ; # 1111 1101 (Id_next):
2498                    ; line_number = 116
2499                    ;  if id_index < id.size start
2500                    ;info   116, 140
2501 008c 3017          movlw   23
2502 008d 0231          subwf   main__id_index,w
2503                    ; =>bit_code_emit@symbol(): sym=__c
2504                    ; No 1TEST: true.size=0 false.size=4
2505                    ; No 2TEST: true.size=0 false.size=4
2506                    ; 1GOTO: Single test with GOTO
2507 008e 1803          btfsc   __c___byte, __c___bit
2508 008f 2894          goto    main__44
2509                    ; line_number = 117
2510                    ; call rb2bus_byte_put(id[id_index])
2511                    ;info   117, 144
2512 0090 0831          movf    main__id_index,w
2513 0091 2150          call    id
2514 0092 223b          call    rb2bus_byte_put
2515                    ; line_number = 118
2516                    ;  id_index := id_index + 1
2517                    ;info   118, 147
2518 0093 0ab1          incf    main__id_index,f
2519   0094 :   main__44:
2520                    ; Recombine size1 = 0 || size2 = 0
2521                    ; line_number = 116
2522                    ;  if id_index < id.size done
2523 0094 2898          goto    main__49
2524                    ; line_number = 119
2525                    ; case 6
2526   0095 :   main__46:
2527                    ; # 1111 1110 (Id_start):
2528                    ; line_number = 121
2529                    ;  id_index := 0
2530                    ;info   121, 149
2531 0095 01b1          clrf    main__id_index
2532 0096 2898          goto    main__49
2533                    ; line_number = 122
2534                    ; case 7
2535   0097 :   main__47:
2536                    ; # 1111 1111 (Deselect):
2537                    ; line_number = 124
2538                    ;  call rb2bus_deselect()
2539                    ;info   124, 151
2540 0097 2217          call    rb2bus_deselect
2541   0098 :   main__49:
2542                    ; line_number = 113
2543                    ;  switch command & 7 done
2544   0098 :   main__53:
2545                    ; line_number = 110
2546                    ;  switch (command >> 3) & 7 done
2547   0098 :   main__58:
2548                    ; line_number = 73
2549                    ; switch command >> 6 done
2550 0098 28ea          goto    main__60
2551                    ; 2GOTO: Starting code 2
2552   0099 :   main__59:
2553                    ; # We are in master mode sending data to the LCD32 on the bus:
2554                    ; line_number = 127
2555                    ;  call rb2bus_select(rb2_lcd32_address)
2556                    ;info   127, 153
2557 0099 3020          movlw   32
2558 009a 2130          call    rb2bus_select
2559            
2560                    ; # Debounce bump button:
2561                    ; line_number = 130
2562                    ;  if bump start
2563                    ;info   130, 155
2564                    ; =>bit_code_emit@symbol(): sym=bump
2565                    ; No 1TEST: true.size=1 false.size=11
2566                    ; No 2TEST: true.size=1 false.size=11
2567                    ; 2GOTO: Single test with two GOTO's
2568 009b 1d05          btfss   bump___byte, bump___bit
2569 009c 289f          goto    main__8
2570                    ; line_number = 131
2571                    ; bump_count := 0
2572                    ;info   131, 157
2573 009d 01b4          clrf    main__bump_count
2574                    ; Recombine code1_bit_states != code2_bit_states
2575 009e 28aa          goto    main__9
2576                    ; 2GOTO: Starting code 2
2577   009f :   main__8:
2578                    ; # Bump button is pushed; increment {bump_count}:
2579                    ; line_number = 134
2580                    ;  if bump_count@1 start
2581                    ;info   134, 159
2582 00000034 = main__select__5___byte equ main__bump_count
2583 00000001 = main__select__5___bit equ 1
2584                    ; =>bit_code_emit@symbol(): sym=main__select__5
2585                    ; No 1TEST: true.size=7 false.size=1
2586                    ; No 2TEST: true.size=7 false.size=1
2587                    ; 2GOTO: Single test with two GOTO's
2588 009f 1cb4          btfss   main__select__5___byte, main__select__5___bit
2589 00a0 28a9          goto    main__6
2590                    ; line_number = 135
2591                    ; if !(bump_count@0) start
2592                    ;info   135, 161
2593 00000034 = main__select__3___byte equ main__bump_count
2594 00000000 = main__select__3___bit equ 0
2595                    ; =>bit_code_emit@symbol(): sym=main__select__3
2596                    ; No 1TEST: true.size=0 false.size=5
2597                    ; No 2TEST: true.size=0 false.size=5
2598                    ; 1GOTO: Single test with GOTO
2599 00a1 1834          btfsc   main__select__3___byte, main__select__3___bit
2600 00a2 28a8          goto    main__4
2601                    ; line_number = 136
2602                    ; bump_count@0 := _true
2603                    ;info   136, 163
2604 00000034 = main__select__2___byte equ main__bump_count
2605 00000000 = main__select__2___bit equ 0
2606 00a3 1434          bsf     main__select__2___byte, main__select__2___bit
2607                    ; # We have been depressed long enough:
2608                    ; line_number = 138
2609                    ;  if decr start
2610                    ;info   138, 164
2611                    ; =>bit_code_emit@symbol(): sym=decr
2612                    ; No 1TEST: true.size=1 false.size=1
2613                    ; 2TEST: two tests with code in both delay slots
2614 00a4 1985          btfsc   decr___byte, decr___bit
2615                    ; line_number = 139
2616                    ; match := match - 1
2617                    ;info   139, 165
2618 00a5 03b3          decf    main__match,f
2619 00a6 1d85          btfss   decr___byte, decr___bit
2620                    ; line_number = 141
2621                    ; match := match + 1
2622                    ;info   141, 167
2623 00a7 0ab3          incf    main__match,f
2624                    ; line_number = 138
2625                    ;  if decr done
2626   00a8 :   main__4:
2627                    ; Recombine size1 = 0 || size2 = 0
2628                    ; line_number = 135
2629                    ; if !(bump_count@0) done
2630                    ; Recombine code1_bit_states != code2_bit_states
2631 00a8 28aa          goto    main__7
2632                    ; 2GOTO: Starting code 2
2633   00a9 :   main__6:
2634                    ; line_number = 143
2635                    ; bump_count := bump_count + 1
2636                    ;info   143, 169
2637 00a9 0ab4          incf    main__bump_count,f
2638            
2639   00aa :   main__7:
2640                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2641                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2642                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2643                    ; line_number = 134
2644                    ;  if bump_count@1 done
2645   00aa :   main__9:
2646                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2647                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2648                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2649                    ; line_number = 130
2650                    ;  if bump done
2651                    ; line_number = 145
2652                    ; if action start
2653                    ;info   145, 170
2654                    ; =>bit_code_emit@symbol(): sym=action
2655                    ; No 1TEST: true.size=1 false.size=11
2656                    ; No 2TEST: true.size=1 false.size=11
2657                    ; 2GOTO: Single test with two GOTO's
2658 00aa 1d86          btfss   action___byte, action___bit
2659 00ab 28ae          goto    main__16
2660                    ; line_number = 146
2661                    ; action_count := 0
2662                    ;info   146, 172
2663 00ac 01b5          clrf    main__action_count
2664                    ; Recombine code1_bit_states != code2_bit_states
2665 00ad 28b9          goto    main__17
2666                    ; 2GOTO: Starting code 2
2667   00ae :   main__16:
2668                    ; # Action button is pushed; increment {action_count}:
2669                    ; line_number = 149
2670                    ;  if action_count@1 start
2671                    ;info   149, 174
2672 00000035 = main__select__13___byte equ main__action_count
2673 00000001 = main__select__13___bit equ 1
2674                    ; =>bit_code_emit@symbol(): sym=main__select__13
2675                    ; No 1TEST: true.size=7 false.size=1
2676                    ; No 2TEST: true.size=7 false.size=1
2677                    ; 2GOTO: Single test with two GOTO's
2678 00ae 1cb5          btfss   main__select__13___byte, main__select__13___bit
2679 00af 28b8          goto    main__14
2680                    ; line_number = 150
2681                    ; if !(action_count@0) start
2682                    ;info   150, 176
2683 00000035 = main__select__11___byte equ main__action_count
2684 00000000 = main__select__11___bit equ 0
2685                    ; =>bit_code_emit@symbol(): sym=main__select__11
2686                    ; No 1TEST: true.size=0 false.size=5
2687                    ; No 2TEST: true.size=0 false.size=5
2688                    ; 1GOTO: Single test with GOTO
2689 00b0 1835          btfsc   main__select__11___byte, main__select__11___bit
2690 00b1 28b7          goto    main__12
2691                    ; line_number = 151
2692                    ; action_count@0 := _true
2693                    ;info   151, 178
2694 00000035 = main__select__10___byte equ main__action_count
2695 00000000 = main__select__10___bit equ 0
2696 00b2 1435          bsf     main__select__10___byte, main__select__10___bit
2697                    ; # We have been depressed long enough:
2698                    ; line_number = 153
2699                    ;  if decr start
2700                    ;info   153, 179
2701                    ; =>bit_code_emit@symbol(): sym=decr
2702                    ; No 1TEST: true.size=1 false.size=1
2703                    ; 2TEST: two tests with code in both delay slots
2704 00b3 1985          btfsc   decr___byte, decr___bit
2705                    ; line_number = 154
2706                    ; match := match - 1
2707                    ;info   154, 180
2708 00b4 03b3          decf    main__match,f
2709 00b5 1d85          btfss   decr___byte, decr___bit
2710                    ; line_number = 156
2711                    ; match := match + 1
2712                    ;info   156, 182
2713 00b6 0ab3          incf    main__match,f
2714                    ; line_number = 153
2715                    ;  if decr done
2716   00b7 :   main__12:
2717                    ; Recombine size1 = 0 || size2 = 0
2718                    ; line_number = 150
2719                    ; if !(action_count@0) done
2720                    ; Recombine code1_bit_states != code2_bit_states
2721 00b7 28b9          goto    main__15
2722                    ; 2GOTO: Starting code 2
2723   00b8 :   main__14:
2724                    ; line_number = 158
2725                    ; action_count := action_count + 1
2726                    ;info   158, 184
2727 00b8 0ab5          incf    main__action_count,f
2728            
2729   00b9 :   main__15:
2730                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2731                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2732                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2733                    ; line_number = 149
2734                    ;  if action_count@1 done
2735   00b9 :   main__17:
2736                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2737                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2738                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2739                    ; line_number = 145
2740                    ; if action done
2741                    ; line_number = 160
2742                    ; if rb2bus_byte_timeout_get() = 0xa5 start
2743                    ;info   160, 185
2744                    ; Left minus Right
2745 00b9 213b          call    rb2bus_byte_timeout_get
2746 00ba 3e5b          addlw   91
2747                    ; =>bit_code_emit@symbol(): sym=__z
2748                    ; No 1TEST: true.size=43 false.size=0
2749                    ; No 2TEST: true.size=43 false.size=0
2750                    ; 1GOTO: Single test with GOTO
2751 00bb 1d03          btfss   __z___byte, __z___bit
2752 00bc 28e8          goto    main__23
2753                    ; # We selected the LCD32:
2754                    ; line_number = 162
2755                    ;  if !lcd_initialized start
2756                    ;info   162, 189
2757                    ; =>bit_code_emit@symbol(): sym=main__lcd_initialized
2758                    ; No 1TEST: true.size=0 false.size=3
2759                    ; No 2TEST: true.size=0 false.size=3
2760                    ; 1GOTO: Single test with GOTO
2761 00bd 1aef          btfsc   main__lcd_initialized___byte, main__lcd_initialized___bit
2762 00be 28c2          goto    main__18
2763                    ; # Clear the LCD32:
2764                    ; line_number = 164
2765                    ;  call rb2bus_byte_put(rb2_lcd32_form_feed)
2766                    ;info   164, 191
2767 00bf 300c          movlw   12
2768 00c0 223b          call    rb2bus_byte_put
2769                    ; line_number = 165
2770                    ;  lcd_initialized := _true
2771                    ;info   165, 193
2772 00c1 16ef          bsf     main__lcd_initialized___byte, main__lcd_initialized___bit
2773            
2774   00c2 :   main__18:
2775                    ; Recombine size1 = 0 || size2 = 0
2776                    ; line_number = 162
2777                    ;  if !lcd_initialized done
2778                    ; line_number = 167
2779                    ; call rb2bus_byte_put(rb2_lcd32_carriage_return)
2780                    ;info   167, 194
2781 00c2 300d          movlw   13
2782 00c3 223b          call    rb2bus_byte_put
2783            
2784                    ; line_number = 169
2785                    ;  result := '+'
2786                    ;info   169, 196
2787 00c4 302b          movlw   43
2788 00c5 00b2          movwf   main__result
2789                    ; line_number = 170
2790                    ;  if decr start
2791                    ;info   170, 198
2792                    ; =>bit_code_emit@symbol(): sym=decr
2793                    ; No 1TEST: true.size=2 false.size=0
2794                    ; No 2TEST: true.size=2 false.size=0
2795                    ; 1GOTO: Single test with GOTO
2796 00c6 1d85          btfss   decr___byte, decr___bit
2797 00c7 28ca          goto    main__19
2798                    ; line_number = 171
2799                    ; result := '-'
2800                    ;info   171, 200
2801 00c8 302d          movlw   45
2802 00c9 00b2          movwf   main__result
2803                    ; Recombine size1 = 0 || size2 = 0
2804   00ca :   main__19:
2805                    ; line_number = 170
2806                    ;  if decr done
2807                    ; line_number = 172
2808                    ; call rb2bus_byte_put(result)
2809                    ;info   172, 202
2810 00ca 0832          movf    main__result,w
2811 00cb 223b          call    rb2bus_byte_put
2812            
2813                    ; line_number = 174
2814                    ;  result := 'l'
2815                    ;info   174, 204
2816 00cc 306c          movlw   108
2817 00cd 00b2          movwf   main__result
2818                    ; line_number = 175
2819                    ;  if view start
2820                    ;info   175, 206
2821                    ; =>bit_code_emit@symbol(): sym=view
2822                    ; No 1TEST: true.size=2 false.size=0
2823                    ; No 2TEST: true.size=2 false.size=0
2824                    ; 1GOTO: Single test with GOTO
2825 00ce 1e05          btfss   view___byte, view___bit
2826 00cf 28d2          goto    main__20
2827                    ; line_number = 176
2828                    ; result := 'v'
2829                    ;info   176, 208
2830 00d0 3076          movlw   118
2831 00d1 00b2          movwf   main__result
2832                    ; Recombine size1 = 0 || size2 = 0
2833   00d2 :   main__20:
2834                    ; line_number = 175
2835                    ;  if view done
2836                    ; line_number = 177
2837                    ; call rb2bus_byte_put(result)
2838                    ;info   177, 210
2839 00d2 0832          movf    main__result,w
2840 00d3 223b          call    rb2bus_byte_put
2841            
2842                    ; line_number = 179
2843                    ;  result := 'm'
2844                    ;info   179, 212
2845 00d4 306d          movlw   109
2846 00d5 00b2          movwf   main__result
2847                    ; line_number = 180
2848                    ;  if slave start
2849                    ;info   180, 214
2850                    ; =>bit_code_emit@symbol(): sym=slave
2851                    ; No 1TEST: true.size=2 false.size=0
2852                    ; No 2TEST: true.size=2 false.size=0
2853                    ; 1GOTO: Single test with GOTO
2854 00d6 1e85          btfss   slave___byte, slave___bit
2855 00d7 28da          goto    main__21
2856                    ; line_number = 181
2857                    ; result := 's'
2858                    ;info   181, 216
2859 00d8 3073          movlw   115
2860 00d9 00b2          movwf   main__result
2861                    ; Recombine size1 = 0 || size2 = 0
2862   00da :   main__21:
2863                    ; line_number = 180
2864                    ;  if slave done
2865                    ; line_number = 182
2866                    ; call rb2bus_byte_put(result)
2867                    ;info   182, 218
2868 00da 0832          movf    main__result,w
2869 00db 223b          call    rb2bus_byte_put
2870            
2871                    ; line_number = 184
2872                    ;  result := 'a'
2873                    ;info   184, 220
2874 00dc 3061          movlw   97
2875 00dd 00b2          movwf   main__result
2876                    ; line_number = 185
2877                    ;  if reset start
2878                    ;info   185, 222
2879                    ; =>bit_code_emit@symbol(): sym=reset
2880                    ; No 1TEST: true.size=2 false.size=0
2881                    ; No 2TEST: true.size=2 false.size=0
2882                    ; 1GOTO: Single test with GOTO
2883 00de 1c06          btfss   reset___byte, reset___bit
2884 00df 28e2          goto    main__22
2885                    ; line_number = 186
2886                    ; result := 'r'
2887                    ;info   186, 224
2888 00e0 3072          movlw   114
2889 00e1 00b2          movwf   main__result
2890                    ; Recombine size1 = 0 || size2 = 0
2891   00e2 :   main__22:
2892                    ; line_number = 185
2893                    ;  if reset done
2894                    ; line_number = 187
2895                    ; call rb2bus_byte_put(result)
2896                    ;info   187, 226
2897 00e2 0832          movf    main__result,w
2898 00e3 223b          call    rb2bus_byte_put
2899            
2900                    ; line_number = 189
2901                    ;  call rb2bus_hex_put(match)
2902                    ;info   189, 228
2903 00e4 0833          movf    main__match,w
2904 00e5 210d          call    rb2bus_hex_put
2905            
2906                    ; line_number = 191
2907                    ;  call rb2bus_byte_put(rb2_lcd32_carriage_return)
2908                    ;info   191, 230
2909 00e6 300d          movlw   13
2910 00e7 223b          call    rb2bus_byte_put
2911            
2912                    ; Recombine size1 = 0 || size2 = 0
2913   00e8 :   main__23:
2914                    ; line_number = 160
2915                    ; if rb2bus_byte_timeout_get() = 0xa5 done
2916                    ; line_number = 193
2917                    ; call milliseconds_sleep(10)
2918                    ;info   193, 232
2919 00e8 300a          movlw   10
2920 00e9 20f7          call    milliseconds_sleep
2921            
2922            
2923   00ea :   main__60:
2924                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2925                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2926                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2927                    ; line_number = 65
2928                    ; if slave done
2929                    ; line_number = 64
2930                    ;  loop_forever wrap-up
2931 00ea 2813          goto    main__1
2932                    ; line_number = 64
2933                    ;  loop_forever done
2934                    ; delay after procedure statements=non-uniform
2935            
2936            
2937            
2938            
2939                    ; line_number = 196
2940                    ;info   196, 235
2941                    ; procedure seconds_sleep
2942   00eb :   seconds_sleep:
2943                    ; Last argument is sitting in W; save into argument variable
2944 00eb 00b6          movwf   seconds_sleep__seconds
2945                    ; delay=4294967295
2946                    ; line_number = 197
2947                    ; argument seconds byte
2948 00000036 = seconds_sleep__seconds equ globals___0+22
2949                    ; line_number = 198
2950                    ;  returns_nothing
2951            
2952                    ; # This procedure will sleep for {seconds} seconds.
2953                    ; # While it is doing so, it will flush any bus traffic.
2954            
2955                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
2956                    ; line_number = 203
2957                    ;  loop_exactly seconds start
2958                    ;info   203, 236
2959 0000003f = seconds_sleep__1 equ globals___0+31
2960 00ec 0836          movf    seconds_sleep__seconds,w
2961 00ed 00bf          movwf   seconds_sleep__1
2962   00ee :   seconds_sleep__2:
2963                    ; line_number = 204
2964                    ; loop_exactly 10 start
2965                    ;info   204, 238
2966 00000040 = seconds_sleep__3 equ globals___0+32
2967 00ee 300a          movlw   10
2968 00ef 00c0          movwf   seconds_sleep__3
2969   00f0 :   seconds_sleep__4:
2970                    ; line_number = 205
2971                    ; call milliseconds_sleep(100)
2972                    ;info   205, 240
2973 00f0 3064          movlw   100
2974 00f1 20f7          call    milliseconds_sleep
2975            
2976            
2977                    ; line_number = 204
2978                    ; loop_exactly 10 wrap-up
2979 00f2 0bc0          decfsz  seconds_sleep__3,f
2980 00f3 28f0          goto    seconds_sleep__4
2981                    ; line_number = 204
2982                    ; loop_exactly 10 done
2983                    ; line_number = 203
2984                    ;  loop_exactly seconds wrap-up
2985 00f4 0bbf          decfsz  seconds_sleep__1,f
2986 00f5 28ee          goto    seconds_sleep__2
2987                    ; line_number = 203
2988                    ;  loop_exactly seconds done
2989                    ; delay after procedure statements=non-uniform
2990                    ; Implied return
2991 00f6 3400          retlw   0
2992            
2993            
2994            
2995            
2996                    ; line_number = 208
2997                    ;info   208, 247
2998                    ; procedure milliseconds_sleep
2999   00f7 :   milliseconds_sleep:
3000                    ; Last argument is sitting in W; save into argument variable
3001 00f7 00b7          movwf   milliseconds_sleep__milliseconds
3002                    ; delay=4294967295
3003                    ; line_number = 209
3004                    ; argument milliseconds byte
3005 00000037 = milliseconds_sleep__milliseconds equ globals___0+23
3006                    ; line_number = 210
3007                    ;  returns_nothing
3008            
3009                    ; # This procedure will sleep for {milliseconds} milliseconds.
3010                    ; # While it is doing so, it will flush any bus traffic.
3011            
3012                    ; # 200 * 50 * 1uSec = 1 mSec.
3013                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3014                    ; line_number = 216
3015                    ;  loop_exactly milliseconds start
3016                    ;info   216, 248
3017 00000041 = milliseconds_sleep__1 equ globals___0+33
3018 00f8 0837          movf    milliseconds_sleep__milliseconds,w
3019 00f9 00c1          movwf   milliseconds_sleep__1
3020   00fa :   milliseconds_sleep__2:
3021                    ; line_number = 217
3022                    ; loop_exactly 200 start
3023                    ;info   217, 250
3024 00000042 = milliseconds_sleep__3 equ globals___0+34
3025 00fa 30c8          movlw   200
3026 00fb 00c2          movwf   milliseconds_sleep__3
3027   00fc :   milliseconds_sleep__4:
3028                    ; line_number = 218
3029                    ; delay 50 * microsecond start
3030                    ;info   218, 252
3031                    ; Delay expression evaluates to 200
3032                    ; line_number = 219
3033                    ; do_nothing
3034                    ;info   219, 252
3035            
3036                    ; Delay 200 cycles
3037                    ; Delay loop takes 50 * 4 = 200 cycles
3038 00fc 3032          movlw   50
3039   00fd :   milliseconds_sleep__5:
3040 00fd 3eff          addlw   255
3041 00fe 1d03          btfss   __z___byte, __z___bit
3042 00ff 28fd          goto    milliseconds_sleep__5
3043                    ; line_number = 218
3044                    ; delay 50 * microsecond done
3045                    ; # Flush any bus traffic:
3046                    ; line_number = 222
3047                    ;  if _rcif start
3048                    ;info   222, 256
3049                    ; =>bit_code_emit@symbol(): sym=_rcif
3050                    ; No 1TEST: true.size=6 false.size=0
3051                    ; No 2TEST: true.size=6 false.size=0
3052                    ; 1GOTO: Single test with GOTO
3053 0100 1e8c          btfss   _rcif___byte, _rcif___bit
3054 0101 2908          goto    milliseconds_sleep__6
3055                    ; # Something came -- dump it (store int {_w}):
3056                    ; line_number = 224
3057                    ;  assemble
3058                    ;info   224, 258
3059                    ; line_number = 225
3060                    ;info   225, 258
3061 0102 081a          movf    _rcreg,w
3062            
3063                    ; # Recover receive errors by toggling {_cren}:
3064                    ; line_number = 228
3065                    ;  if _oerr start
3066                    ;info   228, 259
3067                    ; =>bit_code_emit@symbol(): sym=_oerr
3068                    ; 1TEST: Single test with code in skip slot
3069 0103 1898          btfsc   _oerr___byte, _oerr___bit
3070                    ; line_number = 229
3071                    ; _cren := _false
3072                    ;info   229, 260
3073 0104 1218          bcf     _cren___byte, _cren___bit
3074                    ; Recombine size1 = 0 || size2 = 0
3075                    ; line_number = 228
3076                    ;  if _oerr done
3077                    ; line_number = 230
3078                    ; if _ferr start
3079                    ;info   230, 261
3080                    ; =>bit_code_emit@symbol(): sym=_ferr
3081                    ; 1TEST: Single test with code in skip slot
3082 0105 1918          btfsc   _ferr___byte, _ferr___bit
3083                    ; line_number = 231
3084                    ; _cren := _false
3085                    ;info   231, 262
3086 0106 1218          bcf     _cren___byte, _cren___bit
3087                    ; Recombine size1 = 0 || size2 = 0
3088                    ; line_number = 230
3089                    ; if _ferr done
3090                    ; line_number = 232
3091                    ; _cren := _true
3092                    ;info   232, 263
3093 0107 1618          bsf     _cren___byte, _cren___bit
3094            
3095            
3096                    ; Recombine size1 = 0 || size2 = 0
3097   0108 :   milliseconds_sleep__6:
3098                    ; line_number = 222
3099                    ;  if _rcif done
3100                    ; line_number = 217
3101                    ; loop_exactly 200 wrap-up
3102 0108 0bc2          decfsz  milliseconds_sleep__3,f
3103 0109 28fc          goto    milliseconds_sleep__4
3104                    ; line_number = 217
3105                    ; loop_exactly 200 done
3106                    ; line_number = 216
3107                    ;  loop_exactly milliseconds wrap-up
3108 010a 0bc1          decfsz  milliseconds_sleep__1,f
3109 010b 28fa          goto    milliseconds_sleep__2
3110                    ; line_number = 216
3111                    ;  loop_exactly milliseconds done
3112                    ; delay after procedure statements=non-uniform
3113                    ; Implied return
3114 010c 3400          retlw   0
3115            
3116            
3117            
3118            
3119                    ; line_number = 235
3120                    ;info   235, 269
3121                    ; procedure rb2bus_hex_put
3122   010d :   rb2bus_hex_put:
3123                    ; Last argument is sitting in W; save into argument variable
3124 010d 00b8          movwf   rb2bus_hex_put__value
3125                    ; delay=4294967295
3126                    ; line_number = 236
3127                    ; argument value byte
3128 00000038 = rb2bus_hex_put__value equ globals___0+24
3129                    ; line_number = 237
3130                    ;  returns_nothing
3131            
3132                    ; # This procedure will output {value} to bus a 2 digit hexadecimal number.
3133            
3134                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3135                    ; line_number = 241
3136                    ;  call rb2bus_nibble_put(value >> 4)
3137                    ;info   241, 270
3138 00000043 = rb2bus_hex_put__1 equ globals___0+35
3139 010e 0e38          swapf   rb2bus_hex_put__value,w
3140 010f 390f          andlw   15
3141 0110 2114          call    rb2bus_nibble_put
3142                    ; line_number = 242
3143                    ;  call rb2bus_nibble_put(value)
3144                    ;info   242, 273
3145 0111 0838          movf    rb2bus_hex_put__value,w
3146 0112 2114          call    rb2bus_nibble_put
3147            
3148            
3149                    ; delay after procedure statements=non-uniform
3150                    ; Implied return
3151 0113 3400          retlw   0
3152            
3153            
3154            
3155            
3156                    ; line_number = 245
3157                    ;info   245, 276
3158                    ; procedure rb2bus_nibble_put
3159   0114 :   rb2bus_nibble_put:
3160                    ; Last argument is sitting in W; save into argument variable
3161 0114 00b9          movwf   rb2bus_nibble_put__nibble
3162                    ; delay=4294967295
3163                    ; line_number = 246
3164                    ; argument nibble byte
3165 00000039 = rb2bus_nibble_put__nibble equ globals___0+25
3166                    ; line_number = 247
3167                    ;  returns_nothing
3168            
3169                    ; # This procedure will output the low 4 bits of {nibble} to the bus
3170                    ; # as a hexadecimal digit.
3171            
3172                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3173                    ; line_number = 252
3174                    ;  call rb2bus_byte_put(hex[nibble & 0xf])
3175                    ;info   252, 277
3176 0115 300f          movlw   15
3177 0116 0539          andwf   rb2bus_nibble_put__nibble,w
3178 0117 211a          call    hex
3179 0118 223b          call    rb2bus_byte_put
3180            
3181                    ; delay after procedure statements=non-uniform
3182                    ; Implied return
3183 0119 3400          retlw   0
3184            
3185            
3186            
3187            
3188                    ; line_number = 254
3189                    ; string hex = "0123456789abcdef" start
3190                    ; hex = '0123456789abcdef'
3191   011a :   hex:
3192                    ; Temporarily save index into FSR
3193 011a 0084          movwf   __fsr
3194                    ; Initialize PCLATH to point to this code page
3195 011b 3001          movlw   hex___base>>8
3196 011c 008a          movwf   __pclath
3197                    ; Restore index from FSR
3198 011d 0804          movf    __fsr,w
3199 011e 3e20          addlw   hex___base
3200                    ; Index to the correct return value
3201 011f 0082          movwf   __pcl
3202                    ; page_group 16
3203   0120 :   hex___base:
3204 0120 3430          retlw   48
3205 0121 3431          retlw   49
3206 0122 3432          retlw   50
3207 0123 3433          retlw   51
3208 0124 3434          retlw   52
3209 0125 3435          retlw   53
3210 0126 3436          retlw   54
3211 0127 3437          retlw   55
3212 0128 3438          retlw   56
3213 0129 3439          retlw   57
3214 012a 3461          retlw   97
3215 012b 3462          retlw   98
3216 012c 3463          retlw   99
3217 012d 3464          retlw   100
3218 012e 3465          retlw   101
3219 012f 3466          retlw   102
3220                    ; line_number = 254
3221                    ; string hex = "0123456789abcdef" start
3222            
3223            
3224                    ; line_number = 257
3225                    ;info   257, 304
3226                    ; procedure rb2bus_select
3227   0130 :   rb2bus_select:
3228                    ; Last argument is sitting in W; save into argument variable
3229 0130 00ba          movwf   rb2bus_select__module
3230                    ; delay=4294967295
3231                    ; line_number = 258
3232                    ; argument module byte
3233 0000003a = rb2bus_select__module equ globals___0+26
3234                    ; line_number = 259
3235                    ;  returns_nothing
3236            
3237                    ; # This procedure will 
3238            
3239            
3240                    ; # Wait for transmit buffer to become ready:
3241                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3242                    ; line_number = 265
3243                    ;  while !_txif start
3244   0131 :   rb2bus_select__1:
3245                    ;info   265, 305
3246                    ; =>bit_code_emit@symbol(): sym=_txif
3247                    ; 1TEST: Single test with code in skip slot
3248 0131 1e0c          btfss   _txif___byte, _txif___bit
3249                    ; line_number = 266
3250                    ; do_nothing
3251                    ;info   266, 306
3252            
3253 0132 2931          goto    rb2bus_select__1
3254                    ; Recombine size1 = 0 || size2 = 0
3255                    ; line_number = 265
3256                    ;  while !_txif done
3257                    ; # Send the module select:
3258                    ; line_number = 269
3259                    ;  _adden := _false
3260                    ;info   269, 307
3261 0133 1198          bcf     _adden___byte, _adden___bit
3262                    ; line_number = 270
3263                    ;  _tx9d := _true
3264                    ;info   270, 308
3265 0134 1683          bsf     __rp0___byte, __rp0___bit
3266 0135 1418          bsf     _tx9d___byte, _tx9d___bit
3267                    ; line_number = 271
3268                    ;  _txreg := module
3269                    ;info   271, 310
3270 0136 1283          bcf     __rp0___byte, __rp0___bit
3271 0137 083a          movf    rb2bus_select__module,w
3272 0138 0099          movwf   _txreg
3273            
3274                    ; line_number = 273
3275                    ;  call rb2bus_byte_timeout_get()
3276                    ;info   273, 313
3277 0139 213b          call    rb2bus_byte_timeout_get
3278            
3279            
3280                    ; delay after procedure statements=non-uniform
3281                    ; Implied return
3282 013a 3400          retlw   0
3283            
3284            
3285            
3286            
3287                    ; line_number = 276
3288                    ;info   276, 315
3289                    ; procedure rb2bus_byte_timeout_get
3290   013b :   rb2bus_byte_timeout_get:
3291                    ; arguments_none
3292                    ; line_number = 278
3293                    ;  returns byte
3294            
3295                    ; # This procedure will get the next byte from the bus and return it.
3296                    ; # If there is a timeout, 0xfc is returned.
3297            
3298                    ; line_number = 283
3299                    ;  local result byte
3300 0000003b = rb2bus_byte_timeout_get__result equ globals___0+27
3301            
3302                    ; # Wait for echo to show up:
3303                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3304                    ; line_number = 286
3305                    ;  loop_exactly 200 start
3306                    ;info   286, 315
3307 00000044 = rb2bus_byte_timeout_get__1 equ globals___0+36
3308 013b 30c8          movlw   200
3309 013c 00c4          movwf   rb2bus_byte_timeout_get__1
3310   013d :   rb2bus_byte_timeout_get__2:
3311                    ; line_number = 287
3312                    ; if _rcif start
3313                    ;info   287, 317
3314                    ; =>bit_code_emit@symbol(): sym=_rcif
3315                    ; No 1TEST: true.size=9 false.size=0
3316                    ; No 2TEST: true.size=9 false.size=0
3317                    ; 1GOTO: Single test with GOTO
3318 013d 1e8c          btfss   _rcif___byte, _rcif___bit
3319 013e 2948          goto    rb2bus_byte_timeout_get__3
3320                    ; # Throw the received byte away (store int {_w}):
3321                    ; line_number = 289
3322                    ;  result := _rcreg
3323                    ;info   289, 319
3324 013f 081a          movf    _rcreg,w
3325 0140 00bb          movwf   rb2bus_byte_timeout_get__result
3326            
3327                    ; # Recover from an receive errors by toggling {_cren}:
3328                    ; line_number = 292
3329                    ;  if _oerr start
3330                    ;info   292, 321
3331                    ; =>bit_code_emit@symbol(): sym=_oerr
3332                    ; 1TEST: Single test with code in skip slot
3333 0141 1898          btfsc   _oerr___byte, _oerr___bit
3334                    ; line_number = 293
3335                    ; _cren := _false
3336                    ;info   293, 322
3337 0142 1218          bcf     _cren___byte, _cren___bit
3338                    ; Recombine size1 = 0 || size2 = 0
3339                    ; line_number = 292
3340                    ;  if _oerr done
3341                    ; line_number = 294
3342                    ; if _ferr start
3343                    ;info   294, 323
3344                    ; =>bit_code_emit@symbol(): sym=_ferr
3345                    ; 1TEST: Single test with code in skip slot
3346 0143 1918          btfsc   _ferr___byte, _ferr___bit
3347                    ; line_number = 295
3348                    ; _cren := _false
3349                    ;info   295, 324
3350 0144 1218          bcf     _cren___byte, _cren___bit
3351                    ; Recombine size1 = 0 || size2 = 0
3352                    ; line_number = 294
3353                    ; if _ferr done
3354                    ; line_number = 296
3355                    ; _cren := _true
3356                    ;info   296, 325
3357 0145 1618          bsf     _cren___byte, _cren___bit
3358                    ; line_number = 297
3359                    ;  return result start
3360                    ; line_number = 297
3361                    ;info   297, 326
3362 0146 083b          movf    rb2bus_byte_timeout_get__result,w
3363 0147 0008          return  
3364                    ; line_number = 297
3365                    ;  return result done
3366                    ; Recombine size1 = 0 || size2 = 0
3367   0148 :   rb2bus_byte_timeout_get__3:
3368                    ; line_number = 287
3369                    ; if _rcif done
3370                    ; line_number = 298
3371                    ; delay 5 * microsecond start
3372                    ;info   298, 328
3373                    ; Delay expression evaluates to 20
3374                    ; line_number = 299
3375                    ; do_nothing
3376                    ;info   299, 328
3377                    ; Delay 20 cycles
3378                    ; Delay loop takes 5 * 4 = 20 cycles
3379 0148 3005          movlw   5
3380   0149 :   rb2bus_byte_timeout_get__4:
3381 0149 3eff          addlw   255
3382 014a 1d03          btfss   __z___byte, __z___bit
3383 014b 2949          goto    rb2bus_byte_timeout_get__4
3384                    ; line_number = 298
3385                    ; delay 5 * microsecond done
3386                    ; line_number = 286
3387                    ;  loop_exactly 200 wrap-up
3388 014c 0bc4          decfsz  rb2bus_byte_timeout_get__1,f
3389 014d 293d          goto    rb2bus_byte_timeout_get__2
3390                    ; line_number = 286
3391                    ;  loop_exactly 200 done
3392                    ; line_number = 300
3393                    ; return 0xfc start
3394                    ; line_number = 300
3395                    ;info   300, 334
3396 014e 34fc          retlw   252
3397                    ; line_number = 300
3398                    ; return 0xfc done
3399            
3400            
3401                    ; delay after procedure statements=non-uniform
3402            
3403            
3404            
3405            
3406                    ; line_number = 303
3407                    ;info   303, 335
3408                    ; procedure wait
3409   014f :   wait:
3410                    ; arguments_none
3411                    ; line_number = 305
3412                    ;  returns_nothing
3413            
3414                    ; # This procedure is repeatably called whenever the software
3415                    ; # is waiting for a byte to arrive from the bus.
3416            
3417                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3418                    ; line_number = 310
3419                    ;  do_nothing
3420                    ;info   310, 335
3421            
3422                    ; delay after procedure statements=non-uniform
3423                    ; Implied return
3424 014f 3400          retlw   0
3425            
3426            
3427            
3428            
3429                    ; line_number = 312
3430                    ; string id = "\16,0,12,1,3,9\Camera1-A\7\Gramson" start
3431                    ; id = '\16,0,12,1,3,9\Camera1-A\7\Gramson'
3432   0150 :   id:
3433                    ; Temporarily save index into FSR
3434 0150 0084          movwf   __fsr
3435                    ; Initialize PCLATH to point to this code page
3436 0151 3001          movlw   id___base>>8
3437 0152 008a          movwf   __pclath
3438                    ; Restore index from FSR
3439 0153 0804          movf    __fsr,w
3440 0154 3e56          addlw   id___base
3441                    ; Index to the correct return value
3442 0155 0082          movwf   __pcl
3443                    ; page_group 23
3444   0156 :   id___base:
3445 0156 3410          retlw   16
3446 0157 3400          retlw   0
3447 0158 340c          retlw   12
3448 0159 3401          retlw   1
3449 015a 3403          retlw   3
3450 015b 3409          retlw   9
3451 015c 3443          retlw   67
3452 015d 3461          retlw   97
3453 015e 346d          retlw   109
3454 015f 3465          retlw   101
3455 0160 3472          retlw   114
3456 0161 3461          retlw   97
3457 0162 3431          retlw   49
3458 0163 342d          retlw   45
3459 0164 3441          retlw   65
3460 0165 3407          retlw   7
3461 0166 3447          retlw   71
3462 0167 3472          retlw   114
3463 0168 3461          retlw   97
3464 0169 346d          retlw   109
3465 016a 3473          retlw   115
3466 016b 346f          retlw   111
3467 016c 346e          retlw   110
3468                    ; line_number = 312
3469                    ; string id = "\16,0,12,1,3,9\Camera1-A\7\Gramson" start
3470            
3471                    ; # Frankly this bit bang code for the I2C master came from Gerry Coe's:
3472                    ; #
3473                    ; #   <http://www.robot-electronics.co.uk/htm/using_the_i2c_bus.htm>
3474                    ; #
3475                    ; # The following examples came from the site above:
3476                    ; #
3477                    ; # The 4 primitive functions above can easily be put together to form
3478                    ; # complete I2C transactions. Here's and example to start an SRF08
3479                    ; # ranging in cm:
3480                    ; #
3481                    ; # i2c_start();              // send start sequence
3482                    ; # i2c_tx(0xE0);             // SRF08 I2C address with R/W bit clear
3483                    ; # i2c_tx(0x00);             // SRF08 command register address
3484                    ; # i2c_tx(0x51);             // command to start ranging in cm
3485                    ; # i2c_stop();               // send stop sequence
3486                    ; #
3487                    ; # Now after waiting 65mS for the ranging to complete (I've left that to you)
3488                    ; # the following example shows how to read the light sensor value from
3489                    ; # register 1 and the range result from registers 2 & 3.
3490                    ; #
3491                    ; # i2c_start();              // send start sequence
3492                    ; # i2c_tx(0xE0);             // SRF08 I2C address with R/W bit clear
3493                    ; # i2c_tx(0x01);             // SRF08 light sensor register address
3494                    ; # i2c_start();              // send a restart sequence
3495                    ; # i2c_tx(0xE1);             // SRF08 I2C address with R/W bit set
3496                    ; # lightsensor = i2c_rx(1);  // get light sensor and send acknowledge.
3497                    ; #                           // Internal register address will increment
3498                    ; #                           // automatically.
3499                    ; # rangehigh = i2c_rx(1);    // get the high byte of the range and send
3500                    ; #                           // acknowledge.
3501                    ; # rangelow = i2c_rx(0);     // get low byte of the range - note we don't
3502                    ; #                           // acknowledge the last byte.
3503                    ; # i2c_stop();               // send stop sequence 
3504            
3505                    ; line_number = 348
3506                    ; constant i2c_delay = 4
3507 00000004 = i2c_delay equ 4
3508            
3509                    ; line_number = 350
3510                    ; bind sda = _trisb1
3511 00000086 = sda___byte equ _trisb
3512 00000001 = sda___bit equ 1
3513                    ; line_number = 351
3514                    ; bind scl = _trisb4
3515 00000086 = scl___byte equ _trisb
3516 00000004 = scl___bit equ 4
3517            
3518                    ; line_number = 353
3519                    ;info   353, 365
3520                    ; procedure i2c_start
3521   016d :   i2c_start:
3522                    ; arguments_none
3523                    ; line_number = 355
3524                    ;  returns_nothing
3525            
3526                    ; # This procedure sends an I2C start sequence to the I2C bus.
3527            
3528                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3529                    ; line_number = 359
3530                    ;  sda := _true
3531                    ;info   359, 365
3532 016d 1683          bsf     __rp0___byte, __rp0___bit
3533 016e 1486          bsf     sda___byte, sda___bit
3534                    ; line_number = 360
3535                    ;  delay i2c_delay start
3536                    ;info   360, 367
3537                    ; Delay expression evaluates to 4
3538                    ; line_number = 361
3539                    ; do_nothing
3540                    ;info   361, 367
3541                    ; Delay 4 cycles
3542 016f 2970          goto    i2c_start__1
3543   0170 :   i2c_start__1:
3544 0170 2971          goto    i2c_start__2
3545   0171 :   i2c_start__2:
3546                    ; line_number = 360
3547                    ;  delay i2c_delay done
3548                    ; line_number = 362
3549                    ; scl := _true
3550                    ;info   362, 369
3551 0171 1606          bsf     scl___byte, scl___bit
3552                    ; line_number = 363
3553                    ;  delay i2c_delay start
3554                    ;info   363, 370
3555                    ; Delay expression evaluates to 4
3556                    ; line_number = 364
3557                    ; do_nothing
3558                    ;info   364, 370
3559                    ; Delay 4 cycles
3560 0172 2973          goto    i2c_start__3
3561   0173 :   i2c_start__3:
3562 0173 2974          goto    i2c_start__4
3563   0174 :   i2c_start__4:
3564                    ; line_number = 363
3565                    ;  delay i2c_delay done
3566                    ; line_number = 365
3567                    ; sda := _false
3568                    ;info   365, 372
3569 0174 1086          bcf     sda___byte, sda___bit
3570                    ; line_number = 366
3571                    ;  delay i2c_delay start
3572                    ;info   366, 373
3573                    ; Delay expression evaluates to 4
3574                    ; line_number = 367
3575                    ; do_nothing
3576                    ;info   367, 373
3577                    ; Delay 4 cycles
3578 0175 2976          goto    i2c_start__5
3579   0176 :   i2c_start__5:
3580 0176 2977          goto    i2c_start__6
3581   0177 :   i2c_start__6:
3582                    ; line_number = 366
3583                    ;  delay i2c_delay done
3584                    ; line_number = 368
3585                    ; scl := _false
3586                    ;info   368, 375
3587 0177 1206          bcf     scl___byte, scl___bit
3588                    ; line_number = 369
3589                    ;  delay i2c_delay start
3590                    ;info   369, 376
3591                    ; Delay expression evaluates to 4
3592                    ; line_number = 370
3593                    ; do_nothing
3594                    ;info   370, 376
3595            
3596            
3597                    ; Delay 4 cycles
3598 0178 2979          goto    i2c_start__7
3599   0179 :   i2c_start__7:
3600 0179 297a          goto    i2c_start__8
3601   017a :   i2c_start__8:
3602                    ; line_number = 369
3603                    ;  delay i2c_delay done
3604                    ; delay after procedure statements=non-uniform
3605 017a 1283          bcf     __rp0___byte, __rp0___bit
3606                    ; Implied return
3607 017b 3400          retlw   0
3608            
3609            
3610            
3611            
3612                    ; line_number = 373
3613                    ;info   373, 380
3614                    ; procedure i2c_stop
3615   017c :   i2c_stop:
3616                    ; arguments_none
3617                    ; line_number = 375
3618                    ;  returns_nothing
3619            
3620                    ; # This procedure sends an I2C stop sequence to the I2C bus.
3621            
3622                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3623                    ; line_number = 379
3624                    ;  sda := _false
3625                    ;info   379, 380
3626 017c 1683          bsf     __rp0___byte, __rp0___bit
3627 017d 1086          bcf     sda___byte, sda___bit
3628                    ; line_number = 380
3629                    ;  delay i2c_delay start
3630                    ;info   380, 382
3631                    ; Delay expression evaluates to 4
3632                    ; line_number = 381
3633                    ; do_nothing
3634                    ;info   381, 382
3635                    ; Delay 4 cycles
3636 017e 297f          goto    i2c_stop__1
3637   017f :   i2c_stop__1:
3638 017f 2980          goto    i2c_stop__2
3639   0180 :   i2c_stop__2:
3640                    ; line_number = 380
3641                    ;  delay i2c_delay done
3642                    ; line_number = 382
3643                    ; scl := _true
3644                    ;info   382, 384
3645 0180 1606          bsf     scl___byte, scl___bit
3646                    ; line_number = 383
3647                    ;  delay i2c_delay start
3648                    ;info   383, 385
3649                    ; Delay expression evaluates to 4
3650                    ; line_number = 384
3651                    ; do_nothing
3652                    ;info   384, 385
3653                    ; Delay 4 cycles
3654 0181 2982          goto    i2c_stop__3
3655   0182 :   i2c_stop__3:
3656 0182 2983          goto    i2c_stop__4
3657   0183 :   i2c_stop__4:
3658                    ; line_number = 383
3659                    ;  delay i2c_delay done
3660                    ; line_number = 385
3661                    ; sda := _true
3662                    ;info   385, 387
3663 0183 1486          bsf     sda___byte, sda___bit
3664                    ; line_number = 386
3665                    ;  delay i2c_delay start
3666                    ;info   386, 388
3667                    ; Delay expression evaluates to 4
3668                    ; line_number = 387
3669                    ; do_nothing
3670                    ;info   387, 388
3671            
3672            
3673                    ; Delay 4 cycles
3674 0184 2985          goto    i2c_stop__5
3675   0185 :   i2c_stop__5:
3676 0185 2986          goto    i2c_stop__6
3677   0186 :   i2c_stop__6:
3678                    ; line_number = 386
3679                    ;  delay i2c_delay done
3680                    ; delay after procedure statements=non-uniform
3681 0186 1283          bcf     __rp0___byte, __rp0___bit
3682                    ; Implied return
3683 0187 3400          retlw   0
3684            
3685            
3686            
3687            
3688                    ; line_number = 390
3689                    ;info   390, 392
3690                    ; procedure i2c_rx
3691   0188 :   i2c_rx:
3692                    ; line_number = 391
3693                    ; argument ack bit
3694 0000006f = i2c_rx__ack___byte equ globals___0+79
3695 00000006 = i2c_rx__ack___bit equ 6
3696                    ; line_number = 392
3697                    ;  returns byte
3698            
3699                    ; # This procedure will get an 8-bit byte from the I2C bus with
3700                    ; # {ack} being the value of the ACK bit.
3701            
3702                    ; line_number = 397
3703                    ;  local result byte
3704 0000003c = i2c_rx__result equ globals___0+28
3705            
3706                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3707                    ; line_number = 399
3708                    ;  result := 0
3709                    ;info   399, 392
3710 0188 01bc          clrf    i2c_rx__result
3711                    ; line_number = 400
3712                    ;  loop_exactly 8 start
3713                    ;info   400, 393
3714 00000045 = i2c_rx__1 equ globals___0+37
3715 0189 3008          movlw   8
3716 018a 00c5          movwf   i2c_rx__1
3717   018b :   i2c_rx__2:
3718                    ; line_number = 401
3719                    ; result := result << 1
3720                    ;info   401, 395
3721                    ; Assignment of variable to self (no code needed)
3722 018b 0dbc          rlf     i2c_rx__result,f
3723 018c 103c          bcf     i2c_rx__result, 0
3724                    ; line_number = 402
3725                    ;  scl := _true
3726                    ;info   402, 397
3727 018d 1683          bsf     __rp0___byte, __rp0___bit
3728 018e 1606          bsf     scl___byte, scl___bit
3729                    ; line_number = 403
3730                    ;  while !scl_in start
3731   018f :   i2c_rx__3:
3732                    ;info   403, 399
3733                    ; =>bit_code_emit@symbol(): sym=scl_in
3734                    ; No 1TEST: true.size=0 false.size=2
3735                    ; No 2TEST: true.size=0 false.size=2
3736                    ; 1GOTO: Single test with GOTO
3737 018f 1283          bcf     __rp0___byte, __rp0___bit
3738 0190 1a06          btfsc   scl_in___byte, scl_in___bit
3739 0191 2995          goto    i2c_rx__4
3740 0192 1683          bsf     __rp0___byte, __rp0___bit
3741                    ; # Wait for any SCL clock stretching:
3742                    ; line_number = 405
3743                    ;  scl := _true
3744                    ;info   405, 403
3745 0193 1606          bsf     scl___byte, scl___bit
3746 0194 298f          goto    i2c_rx__3
3747   0195 :   i2c_rx__4:
3748                    ; Recombine size1 = 0 || size2 = 0
3749                    ; line_number = 403
3750                    ;  while !scl_in done
3751                    ; line_number = 406
3752                    ; delay i2c_delay start
3753                    ;info   406, 405
3754                    ; Delay expression evaluates to 4
3755                    ; line_number = 407
3756                    ; do_nothing
3757                    ;info   407, 405
3758                    ; Delay 4 cycles
3759 0195 2996          goto    i2c_rx__5
3760   0196 :   i2c_rx__5:
3761 0196 2997          goto    i2c_rx__6
3762   0197 :   i2c_rx__6:
3763                    ; line_number = 406
3764                    ; delay i2c_delay done
3765                    ; line_number = 408
3766                    ; if sda_in start
3767                    ;info   408, 407
3768                    ; =>bit_code_emit@symbol(): sym=sda_in
3769                    ; 1TEST: Single test with code in skip slot
3770 0197 1283          bcf     __rp0___byte, __rp0___bit
3771 0198 1886          btfsc   sda_in___byte, sda_in___bit
3772                    ; line_number = 409
3773                    ; result@0 := _true
3774                    ;info   409, 409
3775 0000003c = i2c_rx__select__7___byte equ i2c_rx__result
3776 00000000 = i2c_rx__select__7___bit equ 0
3777 0199 143c          bsf     i2c_rx__select__7___byte, i2c_rx__select__7___bit
3778                    ; Recombine size1 = 0 || size2 = 0
3779                    ; line_number = 408
3780                    ; if sda_in done
3781                    ; line_number = 410
3782                    ; scl := _false
3783                    ;info   410, 410
3784 019a 1683          bsf     __rp0___byte, __rp0___bit
3785 019b 1206          bcf     scl___byte, scl___bit
3786            
3787 019c 1283          bcf     __rp0___byte, __rp0___bit
3788                    ; line_number = 400
3789                    ;  loop_exactly 8 wrap-up
3790 019d 0bc5          decfsz  i2c_rx__1,f
3791 019e 298b          goto    i2c_rx__2
3792                    ; line_number = 400
3793                    ;  loop_exactly 8 done
3794                    ; # Deal with ACK bit:
3795                    ; line_number = 413
3796                    ;  if ack start
3797                    ;info   413, 415
3798                    ; =>bit_code_emit@symbol(): sym=i2c_rx__ack
3799                    ; No 1TEST: true.size=1 false.size=1
3800                    ; 2TEST: two tests with code in both delay slots
3801 019f 1b6f          btfsc   i2c_rx__ack___byte, i2c_rx__ack___bit
3802                    ; line_number = 414
3803                    ; sda := _false
3804                    ;info   414, 416
3805 01a0 1086          bcf     sda___byte, sda___bit
3806 01a1 1f6f          btfss   i2c_rx__ack___byte, i2c_rx__ack___bit
3807                    ; line_number = 416
3808                    ; sda := _true
3809                    ;info   416, 418
3810 01a2 1486          bsf     sda___byte, sda___bit
3811 01a3 1683          bsf     __rp0___byte, __rp0___bit
3812                    ; line_number = 413
3813                    ;  if ack done
3814                    ; line_number = 417
3815                    ; scl := _true
3816                    ;info   417, 420
3817 01a4 1606          bsf     scl___byte, scl___bit
3818                    ; line_number = 418
3819                    ;  delay i2c_delay start
3820                    ;info   418, 421
3821                    ; Delay expression evaluates to 4
3822                    ; line_number = 419
3823                    ; do_nothing
3824                    ;info   419, 421
3825                    ; Delay 4 cycles
3826 01a5 29a6          goto    i2c_rx__8
3827   01a6 :   i2c_rx__8:
3828 01a6 29a7          goto    i2c_rx__9
3829   01a7 :   i2c_rx__9:
3830                    ; line_number = 418
3831                    ;  delay i2c_delay done
3832                    ; line_number = 420
3833                    ; scl := _false
3834                    ;info   420, 423
3835 01a7 1206          bcf     scl___byte, scl___bit
3836                    ; line_number = 421
3837                    ;  sda := _true
3838                    ;info   421, 424
3839 01a8 1486          bsf     sda___byte, sda___bit
3840            
3841                    ; line_number = 423
3842                    ;  return result start
3843                    ; line_number = 423
3844                    ;info   423, 425
3845 01a9 1283          bcf     __rp0___byte, __rp0___bit
3846 01aa 083c          movf    i2c_rx__result,w
3847 01ab 0008          return  
3848                    ; line_number = 423
3849                    ;  return result done
3850            
3851            
3852                    ; delay after procedure statements=non-uniform
3853            
3854            
3855            
3856            
3857 0000006f = i2c_tx__0return___byte equ globals___0+79
3858 00000007 = i2c_tx__0return___bit equ 7
3859                    ; line_number = 426
3860                    ;info   426, 428
3861                    ; procedure i2c_tx
3862   01ac :   i2c_tx:
3863                    ; Last argument is sitting in W; save into argument variable
3864 01ac 00bd          movwf   i2c_tx__value
3865                    ; delay=4294967295
3866                    ; line_number = 427
3867                    ; argument value byte
3868 0000003d = i2c_tx__value equ globals___0+29
3869                    ; line_number = 428
3870                    ;  returns bit
3871            
3872                    ; # This procedure will transmit {value} to the I2C bus and return
3873                    ; # the corresponding ACK bit.
3874            
3875                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3876                    ; line_number = 433
3877                    ;  loop_exactly 8 start
3878                    ;info   433, 429
3879 00000046 = i2c_tx__1 equ globals___0+38
3880 01ad 3008          movlw   8
3881 01ae 00c6          movwf   i2c_tx__1
3882   01af :   i2c_tx__2:
3883                    ; line_number = 434
3884                    ; if value@7 start
3885                    ;info   434, 431
3886 0000003d = i2c_tx__select__3___byte equ i2c_tx__value
3887 00000007 = i2c_tx__select__3___bit equ 7
3888                    ; =>bit_code_emit@symbol(): sym=i2c_tx__select__3
3889                    ; No 1TEST: true.size=1 false.size=1
3890                    ; 2TEST: two tests with code in both delay slots
3891 01af 1bbd          btfsc   i2c_tx__select__3___byte, i2c_tx__select__3___bit
3892                    ; line_number = 435
3893                    ; sda := _true
3894                    ;info   435, 432
3895 01b0 1486          bsf     sda___byte, sda___bit
3896 01b1 1fbd          btfss   i2c_tx__select__3___byte, i2c_tx__select__3___bit
3897                    ; line_number = 437
3898                    ; sda := _false
3899                    ;info   437, 434
3900 01b2 1086          bcf     sda___byte, sda___bit
3901 01b3 1683          bsf     __rp0___byte, __rp0___bit
3902                    ; line_number = 434
3903                    ; if value@7 done
3904                    ; line_number = 438
3905                    ; scl := _true
3906                    ;info   438, 436
3907 01b4 1606          bsf     scl___byte, scl___bit
3908                    ; line_number = 439
3909                    ;  value := value << 1
3910                    ;info   439, 437
3911                    ; Assignment of variable to self (no code needed)
3912 01b5 1283          bcf     __rp0___byte, __rp0___bit
3913 01b6 0dbd          rlf     i2c_tx__value,f
3914 01b7 103d          bcf     i2c_tx__value, 0
3915                    ; line_number = 440
3916                    ;  scl := _false
3917                    ;info   440, 440
3918 01b8 1683          bsf     __rp0___byte, __rp0___bit
3919 01b9 1206          bcf     scl___byte, scl___bit
3920 01ba 1283          bcf     __rp0___byte, __rp0___bit
3921                    ; line_number = 433
3922                    ;  loop_exactly 8 wrap-up
3923 01bb 0bc6          decfsz  i2c_tx__1,f
3924 01bc 29af          goto    i2c_tx__2
3925                    ; line_number = 433
3926                    ;  loop_exactly 8 done
3927                    ; line_number = 441
3928                    ; sda := _true
3929                    ;info   441, 445
3930 01bd 1683          bsf     __rp0___byte, __rp0___bit
3931 01be 1486          bsf     sda___byte, sda___bit
3932                    ; line_number = 442
3933                    ;  scl := _true
3934                    ;info   442, 447
3935 01bf 1606          bsf     scl___byte, scl___bit
3936                    ; line_number = 443
3937                    ;  delay i2c_delay start
3938                    ;info   443, 448
3939                    ; Delay expression evaluates to 4
3940                    ; line_number = 444
3941                    ; do_nothing
3942                    ;info   444, 448
3943                    ; Delay 4 cycles
3944 01c0 29c1          goto    i2c_tx__4
3945   01c1 :   i2c_tx__4:
3946 01c1 29c2          goto    i2c_tx__5
3947   01c2 :   i2c_tx__5:
3948                    ; line_number = 443
3949                    ;  delay i2c_delay done
3950                    ; line_number = 445
3951                    ; if sda_in start
3952                    ;info   445, 450
3953                    ; =>bit_code_emit@symbol(): sym=sda_in
3954                    ; No 1TEST: true.size=4 false.size=0
3955                    ; No 2TEST: true.size=4 false.size=0
3956                    ; 1GOTO: Single test with GOTO
3957 01c2 1283          bcf     __rp0___byte, __rp0___bit
3958 01c3 1c86          btfss   sda_in___byte, sda_in___bit
3959 01c4 29ca          goto    i2c_tx__6
3960 01c5 1683          bsf     __rp0___byte, __rp0___bit
3961                    ; line_number = 446
3962                    ; scl := _false
3963                    ;info   446, 454
3964 01c6 1206          bcf     scl___byte, scl___bit
3965                    ; line_number = 447
3966                    ;  return _true start
3967                    ; line_number = 447
3968                    ;info   447, 455
3969 01c7 1283          bcf     __rp0___byte, __rp0___bit
3970 01c8 17ef          bsf     i2c_tx__0return___byte, i2c_tx__0return___bit
3971 01c9 0008          return  
3972                    ; line_number = 447
3973                    ;  return _true done
3974                    ; Recombine size1 = 0 || size2 = 0
3975   01ca :   i2c_tx__6:
3976                    ; line_number = 445
3977                    ; if sda_in done
3978                    ; line_number = 448
3979                    ; scl := _false
3980                    ;info   448, 458
3981 01ca 1683          bsf     __rp0___byte, __rp0___bit
3982 01cb 1206          bcf     scl___byte, scl___bit
3983                    ; line_number = 449
3984                    ;  return _false start
3985                    ; line_number = 449
3986                    ;info   449, 460
3987 01cc 1283          bcf     __rp0___byte, __rp0___bit
3988 01cd 13ef          bcf     i2c_tx__0return___byte, i2c_tx__0return___bit
3989 01ce 0008          return  
3990                    ; line_number = 449
3991                    ;  return _false done
3992            
3993                    ; delay after procedure statements=non-uniform
3994            
3995            
3996            
3997            
3998            
3999                    ; Appending 12 delayed procedures to code bank 0
4000                    ; buffer = 'rb2'
4001                    ; line_number = 10
4002                    ;info   10, 463
4003                    ; procedure rb2_address_put
4004   01cf :   rb2_address_put:
4005                    ; Last argument is sitting in W; save into argument variable
4006 01cf 00a0          movwf   rb2_address_put__address
4007                    ; delay=4294967295
4008                    ; line_number = 11
4009                    ; argument address byte
4010 00000020 = rb2_address_put__address equ globals___0
4011                    ; line_number = 12
4012                    ;  returns byte
4013            
4014                    ; # This procedure will cause the RoboBrick2 device with a module
4015                    ; # address of {address} to be selected.  This routine will keep
4016                    ; # trying until it get proper response.
4017            
4018                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4019                    ; line_number = 18
4020                    ;  _tx9d := _true
4021                    ;info   18, 464
4022 01d0 1683          bsf     __rp0___byte, __rp0___bit
4023 01d1 1418          bsf     _tx9d___byte, _tx9d___bit
4024                    ; line_number = 19
4025                    ;  call rb2_byte_put(address)
4026                    ;info   19, 466
4027 01d2 1283          bcf     __rp0___byte, __rp0___bit
4028 01d3 0820          movf    rb2_address_put__address,w
4029 01d4 21dc          call    rb2_byte_put
4030                    ; line_number = 20
4031                    ;  return rb2_byte_get() start
4032                    ; line_number = 20
4033                    ;info   20, 469
4034 01d5 21e4          call    rb2_byte_get
4035 01d6 0008          return  
4036                    ; line_number = 20
4037                    ;  return rb2_byte_get() done
4038            
4039            
4040                    ; delay after procedure statements=non-uniform
4041            
4042            
4043            
4044            
4045                    ; line_number = 23
4046                    ;info   23, 471
4047                    ; procedure rb2_byte_put_get
4048   01d7 :   rb2_byte_put_get:
4049                    ; Last argument is sitting in W; save into argument variable
4050 01d7 00a1          movwf   rb2_byte_put_get__datum
4051                    ; delay=4294967295
4052                    ; line_number = 24
4053                    ; argument datum byte
4054 00000021 = rb2_byte_put_get__datum equ globals___0+1
4055                    ; line_number = 25
4056                    ;  returns byte
4057            
4058                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4059                    ; line_number = 27
4060                    ;  call rb2_byte_put(datum)
4061                    ;info   27, 472
4062 01d8 0821          movf    rb2_byte_put_get__datum,w
4063 01d9 21dc          call    rb2_byte_put
4064                    ; line_number = 28
4065                    ;  return rb2_byte_get() start
4066                    ; line_number = 28
4067                    ;info   28, 474
4068 01da 21e4          call    rb2_byte_get
4069 01db 0008          return  
4070                    ; line_number = 28
4071                    ;  return rb2_byte_get() done
4072            
4073            
4074                    ; delay after procedure statements=non-uniform
4075            
4076            
4077            
4078            
4079                    ; line_number = 31
4080                    ;info   31, 476
4081                    ; procedure rb2_byte_put
4082   01dc :   rb2_byte_put:
4083                    ; Last argument is sitting in W; save into argument variable
4084 01dc 00a2          movwf   rb2_byte_put__datum
4085                    ; delay=4294967295
4086                    ; line_number = 32
4087                    ; argument datum byte
4088 00000022 = rb2_byte_put__datum equ globals___0+2
4089                    ; line_number = 33
4090                    ;  returns_nothing
4091                    ; line_number = 34
4092                    ;  return_suppress
4093            
4094                    ; # This procedure will send {datum} to the currently selected
4095                    ; # RoboBrick2 module.  This procedure assumes that {_tx9d} is
4096                    ; # properly set.  In all cases, {_tx9d} is cleared upon return
4097                    ; # from this routine.  The bus echoed byte is swallowed by this
4098                    ; # procedure.
4099            
4100                    ; # Wait until transmit buffer is ready:
4101                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4102                    ; line_number = 43
4103                    ;  while !_txif start
4104   01dd :   rb2_byte_put__1:
4105                    ;info   43, 477
4106                    ; =>bit_code_emit@symbol(): sym=_txif
4107                    ; 1TEST: Single test with code in skip slot
4108 01dd 1e0c          btfss   _txif___byte, _txif___bit
4109                    ; line_number = 44
4110                    ; do_nothing
4111                    ;info   44, 478
4112            
4113 01de 29dd          goto    rb2_byte_put__1
4114                    ; Recombine size1 = 0 || size2 = 0
4115                    ; line_number = 43
4116                    ;  while !_txif done
4117                    ; # Ship {datum} out, assume {_tx9d} is properly set:
4118                    ; line_number = 47
4119                    ;  _txreg := datum
4120                    ;info   47, 479
4121 01df 0822          movf    rb2_byte_put__datum,w
4122 01e0 0099          movwf   _txreg
4123            
4124                    ; # Clear _{tx9d} for future:
4125                    ; line_number = 50
4126                    ;  _tx9d := _false
4127                    ;info   50, 481
4128 01e1 1683          bsf     __rp0___byte, __rp0___bit
4129 01e2 1018          bcf     _tx9d___byte, _tx9d___bit
4130            
4131                    ; # Run into the next procedure:
4132            
4133            
4134                    ; delay after procedure statements=non-uniform
4135 01e3 1283          bcf     __rp0___byte, __rp0___bit
4136                    ; Return instruction suppressed by 'return_suppress'
4137            
4138            
4139            
4140            
4141                    ; line_number = 55
4142                    ;info   55, 484
4143                    ; procedure rb2_byte_get
4144   01e4 :   rb2_byte_get:
4145                    ; arguments_none
4146                    ; line_number = 57
4147                    ;  returns byte
4148            
4149                    ; # This procedure will get the next byte from the bus and return it
4150                    ; # with {rb2_error} set to {_false}; otherwise, a time out occurs and
4151                    ; # 0xfc is returned with {_rb2_error} set to {_true}.
4152            
4153                    ; line_number = 63
4154                    ;  local datum byte		# Temporary storage for data:
4155 00000023 = rb2_byte_get__datum equ globals___0+3
4156            
4157                    ; # Check for 250 * 250 = 62500 tries:
4158                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4159                    ; line_number = 66
4160                    ;  loop_exactly 250 start
4161                    ;info   66, 484
4162 00000047 = rb2_byte_get__1 equ globals___0+39
4163 01e4 30fa          movlw   250
4164 01e5 00c7          movwf   rb2_byte_get__1
4165   01e6 :   rb2_byte_get__2:
4166                    ; line_number = 67
4167                    ; loop_exactly 250 start
4168                    ;info   67, 486
4169 00000048 = rb2_byte_get__3 equ globals___0+40
4170 01e6 30fa          movlw   250
4171 01e7 00c8          movwf   rb2_byte_get__3
4172   01e8 :   rb2_byte_get__4:
4173                    ; line_number = 68
4174                    ; if _rcif start
4175                    ;info   68, 488
4176                    ; =>bit_code_emit@symbol(): sym=_rcif
4177                    ; No 1TEST: true.size=10 false.size=0
4178                    ; No 2TEST: true.size=10 false.size=0
4179                    ; 1GOTO: Single test with GOTO
4180 01e8 1e8c          btfss   _rcif___byte, _rcif___bit
4181 01e9 29f4          goto    rb2_byte_get__5
4182                    ; # A byte is ready; fetch it:
4183                    ; line_number = 70
4184                    ;  datum := _rcreg
4185                    ;info   70, 490
4186 01ea 081a          movf    _rcreg,w
4187 01eb 00a3          movwf   rb2_byte_get__datum
4188            
4189                    ; # Recover from any receive errors by toggling {_cren}:
4190                    ; line_number = 73
4191                    ;  if _oerr start
4192                    ;info   73, 492
4193                    ; =>bit_code_emit@symbol(): sym=_oerr
4194                    ; 1TEST: Single test with code in skip slot
4195 01ec 1898          btfsc   _oerr___byte, _oerr___bit
4196                    ; line_number = 74
4197                    ; _cren := _false
4198                    ;info   74, 493
4199 01ed 1218          bcf     _cren___byte, _cren___bit
4200                    ; Recombine size1 = 0 || size2 = 0
4201                    ; line_number = 73
4202                    ;  if _oerr done
4203                    ; line_number = 75
4204                    ; if _ferr start
4205                    ;info   75, 494
4206                    ; =>bit_code_emit@symbol(): sym=_ferr
4207                    ; 1TEST: Single test with code in skip slot
4208 01ee 1918          btfsc   _ferr___byte, _ferr___bit
4209                    ; line_number = 76
4210                    ; _cren := _false
4211                    ;info   76, 495
4212 01ef 1218          bcf     _cren___byte, _cren___bit
4213                    ; Recombine size1 = 0 || size2 = 0
4214                    ; line_number = 75
4215                    ; if _ferr done
4216                    ; line_number = 77
4217                    ; _cren := _true
4218                    ;info   77, 496
4219 01f0 1618          bsf     _cren___byte, _cren___bit
4220            
4221                    ; # Return the result:
4222                    ; line_number = 80
4223                    ;  rb2_error := _false
4224                    ;info   80, 497
4225 01f1 106f          bcf     rb2_error___byte, rb2_error___bit
4226                    ; line_number = 81
4227                    ;  return datum start
4228                    ; line_number = 81
4229                    ;info   81, 498
4230 01f2 0823          movf    rb2_byte_get__datum,w
4231 01f3 0008          return  
4232                    ; line_number = 81
4233                    ;  return datum done
4234            
4235                    ; Recombine size1 = 0 || size2 = 0
4236   01f4 :   rb2_byte_get__5:
4237                    ; line_number = 68
4238                    ; if _rcif done
4239                    ; line_number = 67
4240                    ; loop_exactly 250 wrap-up
4241 01f4 0bc8          decfsz  rb2_byte_get__3,f
4242 01f5 29e8          goto    rb2_byte_get__4
4243                    ; line_number = 67
4244                    ; loop_exactly 250 done
4245                    ; line_number = 66
4246                    ;  loop_exactly 250 wrap-up
4247 01f6 0bc7          decfsz  rb2_byte_get__1,f
4248 01f7 29e6          goto    rb2_byte_get__2
4249                    ; line_number = 66
4250                    ;  loop_exactly 250 done
4251                    ; # We timed out:
4252                    ; line_number = 84
4253                    ;  rb2_error := _true
4254                    ;info   84, 504
4255 01f8 146f          bsf     rb2_error___byte, rb2_error___bit
4256                    ; line_number = 85
4257                    ;  return 0xfc start
4258                    ; line_number = 85
4259                    ;info   85, 505
4260 01f9 34fc          retlw   252
4261                    ; line_number = 85
4262                    ;  return 0xfc done
4263            
4264            
4265                    ; delay after procedure statements=non-uniform
4266            
4267            
4268            
4269            
4270                    ; buffer = 'rb2bus'
4271                    ; line_number = 57
4272                    ;info   57, 506
4273                    ; procedure rb2bus_select_wait
4274   01fa :   rb2bus_select_wait:
4275                    ; arguments_none
4276                    ; line_number = 59
4277                    ;  returns_nothing
4278            
4279                    ; # This procedure will in an infinite loop until the select
4280                    ; # address matches {rb2bus_address}.  {rb2bus_address} is
4281                    ; # typically set in the {rb2bus_initialize} procedure.
4282                    ; #
4283                    ; # This module will repeatably call the {wait} procedure until
4284                    ; # it is properly selected.
4285            
4286                    ; line_number = 68
4287                    ;  local value byte
4288 00000026 = rb2bus_select_wait__value equ globals___0+6
4289                    ; line_number = 69
4290                    ;  local address_bit bit
4291 0000006f = rb2bus_select_wait__address_bit___byte equ globals___0+79
4292 00000003 = rb2bus_select_wait__address_bit___bit equ 3
4293            
4294                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4295                    ; line_number = 71
4296                    ;  rb2bus_error := _false
4297                    ;info   71, 506
4298 01fa 116f          bcf     rb2bus_error___byte, rb2bus_error___bit
4299                    ; line_number = 72
4300                    ;  while !rb2bus_selected start
4301   01fb :   rb2bus_select_wait__1:
4302                    ;info   72, 507
4303                    ; =>bit_code_emit@symbol(): sym=rb2bus_selected
4304                    ; No 1TEST: true.size=0 false.size=25
4305                    ; No 2TEST: true.size=0 false.size=25
4306                    ; 1GOTO: Single test with GOTO
4307 01fb 18ef          btfsc   rb2bus_selected___byte, rb2bus_selected___bit
4308 01fc 2a16          goto    rb2bus_select_wait__6
4309                    ; line_number = 73
4310                    ; _adden := _true
4311                    ;info   73, 509
4312 01fd 1598          bsf     _adden___byte, _adden___bit
4313                    ; # Wait for a byte to arrive.
4314                    ; line_number = 75
4315                    ;  while !_rcif start
4316   01fe :   rb2bus_select_wait__2:
4317                    ;info   75, 510
4318                    ; =>bit_code_emit@symbol(): sym=_rcif
4319                    ; No 1TEST: true.size=0 false.size=2
4320                    ; No 2TEST: true.size=0 false.size=2
4321                    ; 1GOTO: Single test with GOTO
4322 01fe 1a8c          btfsc   _rcif___byte, _rcif___bit
4323 01ff 2a02          goto    rb2bus_select_wait__3
4324                    ; line_number = 76
4325                    ; call wait()
4326                    ;info   76, 512
4327 0200 214f          call    wait
4328            
4329 0201 29fe          goto    rb2bus_select_wait__2
4330   0202 :   rb2bus_select_wait__3:
4331                    ; Recombine size1 = 0 || size2 = 0
4332                    ; line_number = 75
4333                    ;  while !_rcif done
4334                    ; # Capture the received value:
4335                    ; line_number = 79
4336                    ;  address_bit := _false
4337                    ;info   79, 514
4338 0202 11ef          bcf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4339                    ; line_number = 80
4340                    ;  if _rx9d start
4341                    ;info   80, 515
4342                    ; =>bit_code_emit@symbol(): sym=_rx9d
4343                    ; 1TEST: Single test with code in skip slot
4344 0203 1818          btfsc   _rx9d___byte, _rx9d___bit
4345                    ; line_number = 81
4346                    ; address_bit := _true
4347                    ;info   81, 516
4348 0204 15ef          bsf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4349                    ; Recombine size1 = 0 || size2 = 0
4350                    ; line_number = 80
4351                    ;  if _rx9d done
4352                    ; line_number = 82
4353                    ; value := _rcreg
4354                    ;info   82, 517
4355 0205 081a          movf    _rcreg,w
4356 0206 00a6          movwf   rb2bus_select_wait__value
4357            
4358                    ; # Clear any UART errors by toggling {_cren}:
4359                    ; line_number = 85
4360                    ;  if _oerr start
4361                    ;info   85, 519
4362                    ; =>bit_code_emit@symbol(): sym=_oerr
4363                    ; 1TEST: Single test with code in skip slot
4364 0207 1898          btfsc   _oerr___byte, _oerr___bit
4365                    ; line_number = 86
4366                    ; _cren := _false
4367                    ;info   86, 520
4368 0208 1218          bcf     _cren___byte, _cren___bit
4369                    ; Recombine size1 = 0 || size2 = 0
4370                    ; line_number = 85
4371                    ;  if _oerr done
4372                    ; line_number = 87
4373                    ; if _ferr start
4374                    ;info   87, 521
4375                    ; =>bit_code_emit@symbol(): sym=_ferr
4376                    ; 1TEST: Single test with code in skip slot
4377 0209 1918          btfsc   _ferr___byte, _ferr___bit
4378                    ; line_number = 88
4379                    ; _cren := _false
4380                    ;info   88, 522
4381 020a 1218          bcf     _cren___byte, _cren___bit
4382                    ; Recombine size1 = 0 || size2 = 0
4383                    ; line_number = 87
4384                    ; if _ferr done
4385                    ; line_number = 89
4386                    ; _cren := _true
4387                    ;info   89, 523
4388 020b 1618          bsf     _cren___byte, _cren___bit
4389            
4390                    ; line_number = 91
4391                    ;  if address_bit start
4392                    ;info   91, 524
4393                    ; =>bit_code_emit@symbol(): sym=rb2bus_select_wait__address_bit
4394                    ; No 1TEST: true.size=7 false.size=0
4395                    ; No 2TEST: true.size=7 false.size=0
4396                    ; 1GOTO: Single test with GOTO
4397 020c 1def          btfss   rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4398 020d 2a15          goto    rb2bus_select_wait__5
4399                    ; line_number = 92
4400                    ; if value = rb2bus_address start
4401                    ;info   92, 526
4402                    ; Left minus Right
4403 020e 0824          movf    rb2bus_address,w
4404 020f 0226          subwf   rb2bus_select_wait__value,w
4405                    ; =>bit_code_emit@symbol(): sym=__z
4406                    ; No 1TEST: true.size=3 false.size=0
4407                    ; No 2TEST: true.size=3 false.size=0
4408                    ; 1GOTO: Single test with GOTO
4409 0210 1d03          btfss   __z___byte, __z___bit
4410 0211 2a15          goto    rb2bus_select_wait__4
4411                    ; line_number = 93
4412                    ; rb2bus_selected := _true
4413                    ;info   93, 530
4414 0212 14ef          bsf     rb2bus_selected___byte, rb2bus_selected___bit
4415                    ; line_number = 94
4416                    ;  call rb2bus_byte_put(rb2_ok)
4417                    ;info   94, 531
4418 0213 30a5          movlw   165
4419 0214 223b          call    rb2bus_byte_put
4420            
4421            
4422                    ; Recombine size1 = 0 || size2 = 0
4423   0215 :   rb2bus_select_wait__4:
4424                    ; line_number = 92
4425                    ; if value = rb2bus_address done
4426                    ; Recombine size1 = 0 || size2 = 0
4427   0215 :   rb2bus_select_wait__5:
4428                    ; line_number = 91
4429                    ;  if address_bit done
4430 0215 29fb          goto    rb2bus_select_wait__1
4431   0216 :   rb2bus_select_wait__6:
4432                    ; Recombine size1 = 0 || size2 = 0
4433                    ; line_number = 72
4434                    ;  while !rb2bus_selected done
4435                    ; delay after procedure statements=non-uniform
4436                    ; Implied return
4437 0216 3400          retlw   0
4438            
4439            
4440            
4441            
4442                    ; line_number = 97
4443                    ;info   97, 535
4444                    ; procedure rb2bus_deselect
4445   0217 :   rb2bus_deselect:
4446                    ; arguments_none
4447                    ; line_number = 99
4448                    ;  returns_nothing
4449            
4450                    ; # This procedure forces this module into the deselected state until
4451                    ; # it is reselected by some master module on the bus.
4452            
4453                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4454                    ; line_number = 104
4455                    ;  rb2bus_selected := _false
4456                    ;info   104, 535
4457 0217 10ef          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4458            
4459            
4460                    ; delay after procedure statements=non-uniform
4461                    ; Implied return
4462 0218 3400          retlw   0
4463            
4464            
4465            
4466            
4467                    ; line_number = 107
4468                    ;info   107, 537
4469                    ; procedure rb2bus_byte_get
4470   0219 :   rb2bus_byte_get:
4471                    ; arguments_none
4472                    ; line_number = 109
4473                    ;  returns byte
4474            
4475                    ; # This procedure will return the next byte received from the bus.
4476                    ; # The address (9th) bit is stored in the global {is_address}.
4477                    ; #
4478                    ; # If {rb2bus_error} is set, 0 is returned.  Otherwise, the {wait}
4479                    ; # procedure is repeatably called until a command byte is successfully
4480                    ; # received.  If an module select byte comes in, we enter a bus
4481                    ; # error condition by setting {rb2bus_error} and returning 0.
4482            
4483                    ; line_number = 119
4484                    ;  local value byte
4485 00000027 = rb2bus_byte_get__value equ globals___0+7
4486                    ; line_number = 120
4487                    ;  local address_bit bit
4488 0000006f = rb2bus_byte_get__address_bit___byte equ globals___0+79
4489 00000004 = rb2bus_byte_get__address_bit___bit equ 4
4490            
4491                    ; # Return 0 in a bus flush condition to get us back to {rb2bus_select_wait}:
4492                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4493                    ; line_number = 123
4494                    ;  if rb2bus_error start
4495                    ;info   123, 537
4496                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
4497                    ; 1TEST: Single test with code in skip slot
4498 0219 196f          btfsc   rb2bus_error___byte, rb2bus_error___bit
4499                    ; line_number = 124
4500                    ; return 0 start
4501                    ; line_number = 124
4502                    ;info   124, 538
4503 021a 3400          retlw   0
4504                    ; line_number = 124
4505                    ; return 0 done
4506            
4507                    ; Recombine size1 = 0 || size2 = 0
4508                    ; line_number = 123
4509                    ;  if rb2bus_error done
4510                    ; # Wait for a byte to arrive.
4511                    ; line_number = 127
4512                    ;  _adden := _false
4513                    ;info   127, 539
4514 021b 1198          bcf     _adden___byte, _adden___bit
4515                    ; line_number = 128
4516                    ;  while !_rcif start
4517   021c :   rb2bus_byte_get__1:
4518                    ;info   128, 540
4519                    ; =>bit_code_emit@symbol(): sym=_rcif
4520                    ; No 1TEST: true.size=0 false.size=2
4521                    ; No 2TEST: true.size=0 false.size=2
4522                    ; 1GOTO: Single test with GOTO
4523 021c 1a8c          btfsc   _rcif___byte, _rcif___bit
4524 021d 2a20          goto    rb2bus_byte_get__2
4525                    ; line_number = 129
4526                    ; call wait()
4527                    ;info   129, 542
4528 021e 214f          call    wait
4529            
4530 021f 2a1c          goto    rb2bus_byte_get__1
4531   0220 :   rb2bus_byte_get__2:
4532                    ; Recombine size1 = 0 || size2 = 0
4533                    ; line_number = 128
4534                    ;  while !_rcif done
4535                    ; # Record the 9th bit in {address_bit}:
4536                    ; line_number = 132
4537                    ;  address_bit := _false
4538                    ;info   132, 544
4539 0220 126f          bcf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4540                    ; line_number = 133
4541                    ;  if _rx9d start
4542                    ;info   133, 545
4543                    ; =>bit_code_emit@symbol(): sym=_rx9d
4544                    ; 1TEST: Single test with code in skip slot
4545 0221 1818          btfsc   _rx9d___byte, _rx9d___bit
4546                    ; line_number = 134
4547                    ; address_bit := _true
4548                    ;info   134, 546
4549 0222 166f          bsf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4550                    ; Recombine size1 = 0 || size2 = 0
4551                    ; line_number = 133
4552                    ;  if _rx9d done
4553                    ; line_number = 135
4554                    ; value := _rcreg
4555                    ;info   135, 547
4556 0223 081a          movf    _rcreg,w
4557 0224 00a7          movwf   rb2bus_byte_get__value
4558            
4559                    ; # Clear any errors by toggling _{cren}:
4560                    ; # FIXME: All of this should be done *before* reading {_rcreg}!!!
4561                    ; line_number = 139
4562                    ;  if _oerr start
4563                    ;info   139, 549
4564                    ; =>bit_code_emit@symbol(): sym=_oerr
4565                    ; 1TEST: Single test with code in skip slot
4566 0225 1898          btfsc   _oerr___byte, _oerr___bit
4567                    ; line_number = 140
4568                    ; _cren := _false
4569                    ;info   140, 550
4570 0226 1218          bcf     _cren___byte, _cren___bit
4571                    ; Recombine size1 = 0 || size2 = 0
4572                    ; line_number = 139
4573                    ;  if _oerr done
4574                    ; line_number = 141
4575                    ; if _ferr start
4576                    ;info   141, 551
4577                    ; =>bit_code_emit@symbol(): sym=_ferr
4578                    ; 1TEST: Single test with code in skip slot
4579 0227 1918          btfsc   _ferr___byte, _ferr___bit
4580                    ; line_number = 142
4581                    ; _cren := _false
4582                    ;info   142, 552
4583 0228 1218          bcf     _cren___byte, _cren___bit
4584                    ; Recombine size1 = 0 || size2 = 0
4585                    ; line_number = 141
4586                    ; if _ferr done
4587                    ; line_number = 143
4588                    ; _cren := _true
4589                    ;info   143, 553
4590 0229 1618          bsf     _cren___byte, _cren___bit
4591            
4592                    ; line_number = 145
4593                    ;  if address_bit start
4594                    ;info   145, 554
4595                    ; =>bit_code_emit@symbol(): sym=rb2bus_byte_get__address_bit
4596                    ; No 1TEST: true.size=13 false.size=0
4597                    ; No 2TEST: true.size=13 false.size=0
4598                    ; 1GOTO: Single test with GOTO
4599 022a 1e6f          btfss   rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4600 022b 2a39          goto    rb2bus_byte_get__5
4601                    ; # We have an unexpected address select coming in:
4602                    ; line_number = 147
4603                    ;  if value = rb2bus_address start
4604                    ;info   147, 556
4605                    ; Left minus Right
4606 022c 0824          movf    rb2bus_address,w
4607 022d 0227          subwf   rb2bus_byte_get__value,w
4608                    ; =>bit_code_emit@symbol(): sym=__z
4609                    ; No 1TEST: true.size=4 false.size=2
4610                    ; No 2TEST: true.size=4 false.size=2
4611                    ; 2GOTO: Single test with two GOTO's
4612 022e 1d03          btfss   __z___byte, __z___bit
4613 022f 2a35          goto    rb2bus_byte_get__3
4614                    ; # We are being selected again:
4615                    ; line_number = 149
4616                    ;  rb2bus_selected := _true
4617                    ;info   149, 560
4618 0230 14ef          bsf     rb2bus_selected___byte, rb2bus_selected___bit
4619                    ; line_number = 150
4620                    ;  _adden := _false
4621                    ;info   150, 561
4622 0231 1198          bcf     _adden___byte, _adden___bit
4623            
4624                    ; line_number = 152
4625                    ;  call rb2bus_byte_put(rb2_ok)
4626                    ;info   152, 562
4627 0232 30a5          movlw   165
4628 0233 223b          call    rb2bus_byte_put
4629                    ; Recombine code1_bit_states != code2_bit_states
4630 0234 2a37          goto    rb2bus_byte_get__4
4631                    ; 2GOTO: Starting code 2
4632   0235 :   rb2bus_byte_get__3:
4633                    ; # Somebody else is being selected; we deselect:
4634                    ; line_number = 155
4635                    ;  rb2bus_selected := _false
4636                    ;info   155, 565
4637 0235 10ef          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4638                    ; line_number = 156
4639                    ;  _adden := _true
4640                    ;info   156, 566
4641 0236 1598          bsf     _adden___byte, _adden___bit
4642            
4643   0237 :   rb2bus_byte_get__4:
4644                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4645                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4646                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4647                    ; line_number = 147
4648                    ;  if value = rb2bus_address done
4649                    ; # We want to get back to the beginning of decode:
4650                    ; line_number = 159
4651                    ;  rb2bus_error := _true
4652                    ;info   159, 567
4653 0237 156f          bsf     rb2bus_error___byte, rb2bus_error___bit
4654                    ; line_number = 160
4655                    ;  value := 0
4656                    ;info   160, 568
4657 0238 01a7          clrf    rb2bus_byte_get__value
4658            
4659                    ; Recombine size1 = 0 || size2 = 0
4660   0239 :   rb2bus_byte_get__5:
4661                    ; line_number = 145
4662                    ;  if address_bit done
4663                    ; # Regular data byte:
4664                    ; line_number = 163
4665                    ;  return value start
4666                    ; line_number = 163
4667                    ;info   163, 569
4668 0239 0827          movf    rb2bus_byte_get__value,w
4669 023a 0008          return  
4670                    ; line_number = 163
4671                    ;  return value done
4672            
4673            
4674                    ; delay after procedure statements=non-uniform
4675            
4676            
4677            
4678            
4679                    ; line_number = 166
4680                    ;info   166, 571
4681                    ; procedure rb2bus_byte_put
4682   023b :   rb2bus_byte_put:
4683                    ; Last argument is sitting in W; save into argument variable
4684 023b 00a8          movwf   rb2bus_byte_put__value
4685                    ; delay=4294967295
4686                    ; line_number = 167
4687                    ; argument value byte
4688 00000028 = rb2bus_byte_put__value equ globals___0+8
4689                    ; line_number = 168
4690                    ;  returns_nothing
4691            
4692                    ; # This procedure will send {value} to the bus.  It automatically
4693                    ; # consumes the echo that is on the bus.  If {rb2bus_error} is
4694                    ; # set, this procedure does nothing.
4695            
4696                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4697                    ; line_number = 174
4698                    ;  if !rb2bus_error start
4699                    ;info   174, 572
4700                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
4701                    ; No 1TEST: true.size=0 false.size=18
4702                    ; No 2TEST: true.size=0 false.size=18
4703                    ; 1GOTO: Single test with GOTO
4704 023c 196f          btfsc   rb2bus_error___byte, rb2bus_error___bit
4705 023d 2a50          goto    rb2bus_byte_put__4
4706                    ; # Wait until {_txreg} is ready for a value:
4707                    ; line_number = 176
4708                    ;  while !_txif start
4709   023e :   rb2bus_byte_put__1:
4710                    ;info   176, 574
4711                    ; =>bit_code_emit@symbol(): sym=_txif
4712                    ; No 1TEST: true.size=0 false.size=2
4713                    ; No 2TEST: true.size=0 false.size=2
4714                    ; 1GOTO: Single test with GOTO
4715 023e 1a0c          btfsc   _txif___byte, _txif___bit
4716 023f 2a42          goto    rb2bus_byte_put__2
4717                    ; line_number = 177
4718                    ; call wait()
4719                    ;info   177, 576
4720 0240 214f          call    wait
4721            
4722 0241 2a3e          goto    rb2bus_byte_put__1
4723   0242 :   rb2bus_byte_put__2:
4724                    ; Recombine size1 = 0 || size2 = 0
4725                    ; line_number = 176
4726                    ;  while !_txif done
4727                    ; # Ship {value} out to the bus with 9th bit turned off:
4728                    ; line_number = 180
4729                    ;  _adden := _false
4730                    ;info   180, 578
4731 0242 1198          bcf     _adden___byte, _adden___bit
4732                    ; line_number = 181
4733                    ;  _tx9d := _false
4734                    ;info   181, 579
4735 0243 1683          bsf     __rp0___byte, __rp0___bit
4736 0244 1018          bcf     _tx9d___byte, _tx9d___bit
4737                    ; line_number = 182
4738                    ;  _txreg := value
4739                    ;info   182, 581
4740 0245 1283          bcf     __rp0___byte, __rp0___bit
4741 0246 0828          movf    rb2bus_byte_put__value,w
4742 0247 0099          movwf   _txreg
4743            
4744                    ; # Wait for the echo to show up:
4745                    ; line_number = 185
4746                    ;  while !_rcif start
4747   0248 :   rb2bus_byte_put__3:
4748                    ;info   185, 584
4749                    ; =>bit_code_emit@symbol(): sym=_rcif
4750                    ; 1TEST: Single test with code in skip slot
4751 0248 1e8c          btfss   _rcif___byte, _rcif___bit
4752                    ; # Still waiting:
4753 0249 2a48          goto    rb2bus_byte_put__3
4754                    ; Recombine size1 = 0 || size2 = 0
4755                    ; line_number = 185
4756                    ;  while !_rcif done
4757                    ; # Throw the received byte away (store into {_w}).
4758                    ; line_number = 188
4759                    ;  assemble
4760                    ;info   188, 586
4761                    ; line_number = 189
4762                    ;info   189, 586
4763 024a 081a          movf    _rcreg,w
4764            
4765                    ; # Recover from any receive errors by toggling {_cren}:
4766                    ; line_number = 192
4767                    ;  if _oerr start
4768                    ;info   192, 587
4769                    ; =>bit_code_emit@symbol(): sym=_oerr
4770                    ; 1TEST: Single test with code in skip slot
4771 024b 1898          btfsc   _oerr___byte, _oerr___bit
4772                    ; line_number = 193
4773                    ; _cren := _false
4774                    ;info   193, 588
4775 024c 1218          bcf     _cren___byte, _cren___bit
4776                    ; Recombine size1 = 0 || size2 = 0
4777                    ; line_number = 192
4778                    ;  if _oerr done
4779                    ; line_number = 194
4780                    ; if _ferr start
4781                    ;info   194, 589
4782                    ; =>bit_code_emit@symbol(): sym=_ferr
4783                    ; 1TEST: Single test with code in skip slot
4784 024d 1918          btfsc   _ferr___byte, _ferr___bit
4785                    ; line_number = 195
4786                    ; _cren := _false
4787                    ;info   195, 590
4788 024e 1218          bcf     _cren___byte, _cren___bit
4789                    ; Recombine size1 = 0 || size2 = 0
4790                    ; line_number = 194
4791                    ; if _ferr done
4792                    ; line_number = 196
4793                    ; _cren := _true
4794                    ;info   196, 591
4795 024f 1618          bsf     _cren___byte, _cren___bit
4796            
4797            
4798   0250 :   rb2bus_byte_put__4:
4799                    ; Recombine size1 = 0 || size2 = 0
4800                    ; line_number = 174
4801                    ;  if !rb2bus_error done
4802                    ; delay after procedure statements=non-uniform
4803                    ; Implied return
4804 0250 3400          retlw   0
4805            
4806            
4807            
4808            
4809                    ; line_number = 199
4810                    ;info   199, 593
4811                    ; procedure rb2bus_command
4812   0251 :   rb2bus_command:
4813                    ; Last argument is sitting in W; save into argument variable
4814 0251 00ab          movwf   rb2bus_command__command
4815                    ; delay=4294967295
4816                    ; line_number = 200
4817                    ; argument command byte
4818 0000002b = rb2bus_command__command equ globals___0+11
4819                    ; line_number = 201
4820                    ;  returns_nothing
4821            
4822                    ; # This procedure will process an shared {command}.  This procedure
4823                    ; # accesses the global string {id}.
4824            
4825                    ; line_number = 206
4826                    ;  local new_address byte
4827 00000029 = rb2bus_command__new_address equ globals___0+9
4828                    ; line_number = 207
4829                    ;  local temp byte
4830 0000002a = rb2bus_command__temp equ globals___0+10
4831            
4832                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4833                    ; line_number = 209
4834                    ;  switch command & 7 start
4835                    ;info   209, 594
4836                    ; switch_before:(data:00=uu=>00 code:X0=cu=>X0) size=1
4837 0252 3002          movlw   rb2bus_command__13>>8
4838 0253 008a          movwf   __pclath
4839 0254 3007          movlw   7
4840 0255 052b          andwf   rb2bus_command__command,w
4841                    ; switch after expression:(data:00=uu=>00 code:X0=cu=>X0)
4842 0256 3e58          addlw   rb2bus_command__13
4843 0257 0082          movwf   __pcl
4844                    ; page_group 8
4845   0258 :   rb2bus_command__13:
4846 0258 2a98          goto    rb2bus_command__14
4847 0259 2a98          goto    rb2bus_command__14
4848 025a 2a98          goto    rb2bus_command__14
4849 025b 2a98          goto    rb2bus_command__14
4850 025c 2a60          goto    rb2bus_command__9
4851 025d 2a8c          goto    rb2bus_command__10
4852 025e 2a95          goto    rb2bus_command__11
4853 025f 2a97          goto    rb2bus_command__12
4854                    ; line_number = 210
4855                    ; case 4
4856   0260 :   rb2bus_command__9:
4857                    ; # 1111 1100 (Address_Set):
4858                    ; # Return old address:
4859                    ; line_number = 213
4860                    ;  call rb2bus_byte_put(rb2bus_address)
4861                    ;info   213, 608
4862 0260 0824          movf    rb2bus_address,w
4863 0261 223b          call    rb2bus_byte_put
4864            
4865                    ; # Fetch new address:
4866                    ; line_number = 216
4867                    ;  new_address := rb2bus_byte_get()
4868                    ;info   216, 610
4869 0262 2219          call    rb2bus_byte_get
4870 0263 00a9          movwf   rb2bus_command__new_address
4871                    ; line_number = 217
4872                    ;  if new_address = 0 || new_address = rb2bus_address start
4873                    ;info   217, 612
4874                    ; Left minus Right
4875 0264 0829          movf    rb2bus_command__new_address,w
4876                    ; =>bit_code_emit@symbol(): sym=__z
4877                    ; No 1TEST: true.size=1 false.size=36
4878                    ; No 2TEST: true.size=1 false.size=36
4879                    ; 2GOTO: Single test with two GOTO's
4880 0265 1903          btfsc   __z___byte, __z___bit
4881 0266 2a6b          goto    rb2bus_command__5
4882                    ; Recombine code1_bit_states != code2_bit_states
4883                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4884                    ; Left minus Right
4885 0267 0824          movf    rb2bus_address,w
4886 0268 0229          subwf   rb2bus_command__new_address,w
4887                    ; =>bit_code_emit@symbol(): sym=__z
4888                    ; No 1TEST: true.size=4 false.size=27
4889                    ; No 2TEST: true.size=4 false.size=27
4890                    ; 2GOTO: Single test with two GOTO's
4891 0269 1d03          btfss   __z___byte, __z___bit
4892 026a 2a70          goto    rb2bus_command__6
4893   026b :   rb2bus_command__5:
4894                    ; line_number = 218
4895                    ; call rb2bus_byte_put(0)
4896                    ;info   218, 619
4897 026b 3000          movlw   0
4898 026c 223b          call    rb2bus_byte_put
4899                    ; line_number = 219
4900                    ;  rb2bus_error := _true
4901                    ;info   219, 621
4902 026d 156f          bsf     rb2bus_error___byte, rb2bus_error___bit
4903                    ; line_number = 220
4904                    ;  rb2bus_selected := _false
4905                    ;info   220, 622
4906 026e 10ef          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4907 026f 2a8b          goto    rb2bus_command__7
4908                    ; 2GOTO: Starting code 2
4909   0270 :   rb2bus_command__6:
4910                    ; # Return new address:
4911                    ; line_number = 223
4912                    ;  call rb2bus_byte_put(new_address)
4913                    ;info   223, 624
4914 0270 0829          movf    rb2bus_command__new_address,w
4915 0271 223b          call    rb2bus_byte_put
4916            
4917                    ; # Fetch new address again as a check:
4918                    ; line_number = 226
4919                    ;  temp := rb2bus_byte_get()
4920                    ;info   226, 626
4921 0272 2219          call    rb2bus_byte_get
4922 0273 00aa          movwf   rb2bus_command__temp
4923                    ; line_number = 227
4924                    ;  if temp != new_address start
4925                    ;info   227, 628
4926                    ; Left minus Right
4927 0274 0829          movf    rb2bus_command__new_address,w
4928 0275 022a          subwf   rb2bus_command__temp,w
4929                    ; =>bit_code_emit@symbol(): sym=__z
4930                    ; No 1TEST: true.size=14 false.size=4
4931                    ; No 2TEST: true.size=14 false.size=4
4932                    ; 2GOTO: Single test with two GOTO's
4933 0276 1d03          btfss   __z___byte, __z___bit
4934 0277 2a87          goto    rb2bus_command__3
4935                    ; line_number = 232
4936                    ; call rb2bus_eedata_write(new_address)
4937                    ;info   232, 632
4938 0278 0829          movf    rb2bus_command__new_address,w
4939 0279 22cc          call    rb2bus_eedata_write
4940                    ; line_number = 233
4941                    ;  temp := rb2bus_eedata_read()
4942                    ;info   233, 634
4943 027a 22b1          call    rb2bus_eedata_read
4944 027b 00aa          movwf   rb2bus_command__temp
4945                    ; line_number = 234
4946                    ;  if temp = new_address start
4947                    ;info   234, 636
4948                    ; Left minus Right
4949 027c 0829          movf    rb2bus_command__new_address,w
4950 027d 022a          subwf   rb2bus_command__temp,w
4951                    ; =>bit_code_emit@symbol(): sym=__z
4952                    ; No 1TEST: true.size=3 false.size=1
4953                    ; No 2TEST: true.size=3 false.size=1
4954                    ; 2GOTO: Single test with two GOTO's
4955 027e 1d03          btfss   __z___byte, __z___bit
4956 027f 2a84          goto    rb2bus_command__1
4957                    ; line_number = 235
4958                    ; rb2bus_address := new_address
4959                    ;info   235, 640
4960 0280 0829          movf    rb2bus_command__new_address,w
4961 0281 00a4          movwf   rb2bus_address
4962                    ; line_number = 236
4963                    ;  call rb2bus_byte_put(rb2_ok)
4964                    ;info   236, 642
4965 0282 30a5          movlw   165
4966 0283 2a85          goto    rb2bus_command__2
4967                    ; 2GOTO: Starting code 2
4968   0284 :   rb2bus_command__1:
4969                    ; line_number = 238
4970                    ; call rb2bus_byte_put(0)
4971                    ;info   238, 644
4972 0284 3000          movlw   0
4973   0285 :   rb2bus_command__2:
4974                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4975                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4976                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4977 0285 223b          call    rb2bus_byte_put
4978                    ; line_number = 234
4979                    ;  if temp = new_address done
4980 0286 2a8b          goto    rb2bus_command__4
4981                    ; 2GOTO: Starting code 2
4982   0287 :   rb2bus_command__3:
4983                    ; line_number = 228
4984                    ; call rb2bus_byte_put(0)
4985                    ;info   228, 647
4986 0287 3000          movlw   0
4987 0288 223b          call    rb2bus_byte_put
4988                    ; line_number = 229
4989                    ;  rb2bus_error := _true
4990                    ;info   229, 649
4991 0289 156f          bsf     rb2bus_error___byte, rb2bus_error___bit
4992                    ; line_number = 230
4993                    ;  rb2bus_selected := _false
4994                    ;info   230, 650
4995 028a 10ef          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4996   028b :   rb2bus_command__4:
4997                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4998                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4999                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5000                    ; line_number = 227
5001                    ;  if temp != new_address done
5002   028b :   rb2bus_command__7:
5003                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5004                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5005                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5006                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5007                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
5008                    ; 2GOTO: No goto needed; true=rb2bus_command__5 false= true_size=1 false_size=36
5009                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5010                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
5011                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5012                    ; line_number = 217
5013                    ;  if new_address = 0 || new_address = rb2bus_address done
5014 028b 2a98          goto    rb2bus_command__14
5015                    ; line_number = 239
5016                    ; case 5
5017   028c :   rb2bus_command__10:
5018                    ; # 1111 1101 (Id_next):
5019                    ; line_number = 241
5020                    ;  if rb2bus_index < id.size start
5021                    ;info   241, 652
5022 028c 3017          movlw   23
5023 028d 0225          subwf   rb2bus_index,w
5024                    ; =>bit_code_emit@symbol(): sym=__c
5025                    ; No 1TEST: true.size=0 false.size=4
5026                    ; No 2TEST: true.size=0 false.size=4
5027                    ; 1GOTO: Single test with GOTO
5028 028e 1803          btfsc   __c___byte, __c___bit
5029 028f 2a94          goto    rb2bus_command__8
5030                    ; line_number = 242
5031                    ; call rb2bus_byte_put(id[rb2bus_index])
5032                    ;info   242, 656
5033 0290 0825          movf    rb2bus_index,w
5034 0291 2150          call    id
5035 0292 223b          call    rb2bus_byte_put
5036                    ; line_number = 243
5037                    ;  rb2bus_index := rb2bus_index + 1
5038                    ;info   243, 659
5039 0293 0aa5          incf    rb2bus_index,f
5040                    ; #if rb2bus_index >= id.size
5041                    ; #	rb2bus_index := rb2bus_index - 1
5042   0294 :   rb2bus_command__8:
5043                    ; Recombine size1 = 0 || size2 = 0
5044                    ; line_number = 241
5045                    ;  if rb2bus_index < id.size done
5046 0294 2a98          goto    rb2bus_command__14
5047                    ; line_number = 246
5048                    ; case 6
5049   0295 :   rb2bus_command__11:
5050                    ; # 1111 1110 (Id_start):
5051                    ; line_number = 248
5052                    ;  rb2bus_index := 0
5053                    ;info   248, 661
5054 0295 01a5          clrf    rb2bus_index
5055 0296 2a98          goto    rb2bus_command__14
5056                    ; line_number = 249
5057                    ; case 7
5058   0297 :   rb2bus_command__12:
5059                    ; # 1111 1111 (Deselect):
5060                    ; line_number = 251
5061                    ;  call rb2bus_deselect()
5062                    ;info   251, 663
5063 0297 2217          call    rb2bus_deselect
5064            
5065            
5066   0298 :   rb2bus_command__14:
5067                    ; line_number = 209
5068                    ;  switch command & 7 done
5069                    ; delay after procedure statements=non-uniform
5070                    ; Implied return
5071 0298 3400          retlw   0
5072            
5073            
5074            
5075            
5076                    ; buffer = 'rb2bus_pic16f88'
5077                    ; line_number = 26
5078                    ;info   26, 665
5079                    ; procedure rb2bus_initialize
5080   0299 :   rb2bus_initialize:
5081                    ; Last argument is sitting in W; save into argument variable
5082 0299 00ac          movwf   rb2bus_initialize__address
5083                    ; delay=4294967295
5084                    ; line_number = 27
5085                    ; argument address byte
5086 0000002c = rb2bus_initialize__address equ globals___0+12
5087                    ; line_number = 28
5088                    ;  returns_nothing
5089            
5090                    ; # This procedure is responsibile for initializing the UART
5091                    ; # connected to the bus.  {address} is the address of this
5092                    ; # slave module.  This code is specific to the PIC16F688.
5093            
5094                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5095                    ; line_number = 34
5096                    ;  rb2bus_address := address
5097                    ;info   34, 666
5098 029a 082c          movf    rb2bus_initialize__address,w
5099 029b 00a4          movwf   rb2bus_address
5100            
5101                    ; # Warm up the UART:
5102                    ; line_number = 37
5103                    ;  _trisb@2 := _true
5104                    ;info   37, 668
5105 00000086 = rb2bus_initialize__select__1___byte equ _trisb
5106 00000002 = rb2bus_initialize__select__1___bit equ 2
5107 029c 1683          bsf     __rp0___byte, __rp0___bit
5108 029d 1506          bsf     rb2bus_initialize__select__1___byte, rb2bus_initialize__select__1___bit
5109                    ; line_number = 38
5110                    ;  _trisb@5 := _true
5111                    ;info   38, 670
5112 00000086 = rb2bus_initialize__select__2___byte equ _trisb
5113 00000005 = rb2bus_initialize__select__2___bit equ 5
5114 029e 1686          bsf     rb2bus_initialize__select__2___byte, rb2bus_initialize__select__2___bit
5115            
5116                    ; # Initialize the {_txsta} register:
5117                    ; line_number = 41
5118                    ;  _txsta := 0
5119                    ;info   41, 671
5120 029f 0198          clrf    _txsta
5121                    ; line_number = 42
5122                    ;  _tx9 := _true
5123                    ;info   42, 672
5124 02a0 1718          bsf     _tx9___byte, _tx9___bit
5125                    ; line_number = 43
5126                    ;  _txen := _true
5127                    ;info   43, 673
5128 02a1 1698          bsf     _txen___byte, _txen___bit
5129                    ; line_number = 44
5130                    ;  _brgh := _true
5131                    ;info   44, 674
5132 02a2 1518          bsf     _brgh___byte, _brgh___bit
5133            
5134                    ; # Initialize the {_rcsta} register:
5135                    ; line_number = 47
5136                    ;  _rcsta := 0
5137                    ;info   47, 675
5138 02a3 1283          bcf     __rp0___byte, __rp0___bit
5139 02a4 0198          clrf    _rcsta
5140                    ; line_number = 48
5141                    ;  _spen := _true
5142                    ;info   48, 677
5143 02a5 1798          bsf     _spen___byte, _spen___bit
5144                    ; line_number = 49
5145                    ;  _rx9 := _true
5146                    ;info   49, 678
5147 02a6 1718          bsf     _rx9___byte, _rx9___bit
5148                    ; line_number = 50
5149                    ;  _cren := _true
5150                    ;info   50, 679
5151 02a7 1618          bsf     _cren___byte, _cren___bit
5152                    ; #_adden := _true
5153                    ; line_number = 52
5154                    ;  _adden := _false
5155                    ;info   52, 680
5156 02a8 1198          bcf     _adden___byte, _adden___bit
5157            
5158                    ; # Set up the baud rate generator:
5159                    ; line_number = 55
5160                    ;  _spbrg := spbrg_500k
5161                    ;info   55, 681
5162 02a9 3001          movlw   1
5163 02aa 1683          bsf     __rp0___byte, __rp0___bit
5164 02ab 0099          movwf   _spbrg
5165            
5166                    ; line_number = 57
5167                    ;  rb2bus_selected := _false
5168                    ;info   57, 684
5169 02ac 1283          bcf     __rp0___byte, __rp0___bit
5170 02ad 10ef          bcf     rb2bus_selected___byte, rb2bus_selected___bit
5171                    ; line_number = 58
5172                    ;  rb2bus_error := _false
5173                    ;info   58, 686
5174 02ae 116f          bcf     rb2bus_error___byte, rb2bus_error___bit
5175                    ; line_number = 59
5176                    ;  rb2bus_index := 0
5177                    ;info   59, 687
5178 02af 01a5          clrf    rb2bus_index
5179            
5180            
5181                    ; delay after procedure statements=non-uniform
5182                    ; Implied return
5183 02b0 3400          retlw   0
5184            
5185            
5186            
5187            
5188                    ; line_number = 64
5189                    ;info   64, 689
5190                    ; procedure rb2bus_eedata_read
5191   02b1 :   rb2bus_eedata_read:
5192                    ; arguments_none
5193                    ; line_number = 66
5194                    ;  returns byte
5195            
5196                    ; # This procedure will return the address stored in EEData.  If
5197                    ; # there is no data, 0 is returned.
5198            
5199                    ; line_number = 71
5200                    ;  local temp1 byte
5201 0000002d = rb2bus_eedata_read__temp1 equ globals___0+13
5202                    ; line_number = 72
5203                    ;  local temp2 byte
5204 0000002e = rb2bus_eedata_read__temp2 equ globals___0+14
5205            
5206                    ; # Read the first byte (the address):
5207                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5208                    ; line_number = 75
5209                    ;  _eecon1 := 0
5210                    ;info   75, 689
5211 02b1 1683          bsf     __rp0___byte, __rp0___bit
5212 02b2 1703          bsf     __rp1___byte, __rp1___bit
5213 02b3 018c          clrf    _eecon1
5214                    ; line_number = 76
5215                    ;  _eeadr := rb2bus_eedata_address
5216                    ;info   76, 692
5217 02b4 30fe          movlw   254
5218 02b5 1283          bcf     __rp0___byte, __rp0___bit
5219 02b6 008d          movwf   _eeadr
5220                    ; line_number = 77
5221                    ;  _rd := _true
5222                    ;info   77, 695
5223 02b7 1683          bsf     __rp0___byte, __rp0___bit
5224 02b8 140c          bsf     _rd___byte, _rd___bit
5225                    ; line_number = 78
5226                    ;  temp1 := _eedata
5227                    ;info   78, 697
5228 02b9 1283          bcf     __rp0___byte, __rp0___bit
5229 02ba 080c          movf    _eedata,w
5230 02bb 1303          bcf     __rp1___byte, __rp1___bit
5231 02bc 00ad          movwf   rb2bus_eedata_read__temp1
5232            
5233                    ; # Read the second byte (the 1'z complement)
5234                    ; line_number = 81
5235                    ;  _eeadr := _eeadr + 1
5236                    ;info   81, 701
5237 02bd 1703          bsf     __rp1___byte, __rp1___bit
5238 02be 0a8d          incf    _eeadr,f
5239                    ; line_number = 82
5240                    ;  _rd := _true
5241                    ;info   82, 703
5242 02bf 1683          bsf     __rp0___byte, __rp0___bit
5243 02c0 140c          bsf     _rd___byte, _rd___bit
5244                    ; line_number = 83
5245                    ;  temp2 := _eedata
5246                    ;info   83, 705
5247 02c1 1283          bcf     __rp0___byte, __rp0___bit
5248 02c2 080c          movf    _eedata,w
5249 02c3 1303          bcf     __rp1___byte, __rp1___bit
5250 02c4 00ae          movwf   rb2bus_eedata_read__temp2
5251            
5252                    ; # If they are 1's complement of one another, they are valid:
5253                    ; line_number = 86
5254                    ;  if temp1 = (0xff ^ temp2) start
5255                    ;info   86, 709
5256                    ; Left minus Right
5257 02c5 092e          comf    rb2bus_eedata_read__temp2,w
5258 02c6 022d          subwf   rb2bus_eedata_read__temp1,w
5259                    ; =>bit_code_emit@symbol(): sym=__z
5260                    ; No 1TEST: true.size=2 false.size=0
5261                    ; No 2TEST: true.size=2 false.size=0
5262                    ; 1GOTO: Single test with GOTO
5263 02c7 1d03          btfss   __z___byte, __z___bit
5264 02c8 2acb          goto    rb2bus_eedata_read__1
5265                    ; # Return the valid address:
5266                    ; line_number = 88
5267                    ;  return temp1 start
5268                    ; line_number = 88
5269                    ;info   88, 713
5270 02c9 082d          movf    rb2bus_eedata_read__temp1,w
5271 02ca 0008          return  
5272                    ; line_number = 88
5273                    ;  return temp1 done
5274            
5275                    ; Recombine size1 = 0 || size2 = 0
5276   02cb :   rb2bus_eedata_read__1:
5277                    ; line_number = 86
5278                    ;  if temp1 = (0xff ^ temp2) done
5279                    ; # They are not 1's complement, so return 0 as an error:
5280                    ; line_number = 91
5281                    ;  return 0 start
5282                    ; line_number = 91
5283                    ;info   91, 715
5284 02cb 3400          retlw   0
5285                    ; line_number = 91
5286                    ;  return 0 done
5287            
5288            
5289                    ; delay after procedure statements=non-uniform
5290            
5291            
5292            
5293            
5294                    ; line_number = 94
5295                    ;info   94, 716
5296                    ; procedure rb2bus_eedata_write
5297   02cc :   rb2bus_eedata_write:
5298                    ; Last argument is sitting in W; save into argument variable
5299 02cc 00af          movwf   rb2bus_eedata_write__address
5300                    ; delay=4294967295
5301                    ; line_number = 95
5302                    ; argument address byte
5303 0000002f = rb2bus_eedata_write__address equ globals___0+15
5304                    ; line_number = 96
5305                    ;  returns_nothing
5306            
5307                    ; # This procedure will write {address} into the EEData.  The
5308                    ; # microcontroll pauses while the EEData is written.
5309            
5310                    ; # Clear out the {_eecon1} register
5311                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5312                    ; line_number = 102
5313                    ;  _eecon1 := 0
5314                    ;info   102, 717
5315 02cd 1683          bsf     __rp0___byte, __rp0___bit
5316 02ce 1703          bsf     __rp1___byte, __rp1___bit
5317 02cf 018c          clrf    _eecon1
5318                    ; line_number = 103
5319                    ;  _eeadr := rb2bus_eedata_address
5320                    ;info   103, 720
5321 02d0 30fe          movlw   254
5322 02d1 1283          bcf     __rp0___byte, __rp0___bit
5323 02d2 008d          movwf   _eeadr
5324                    ; line_number = 104
5325                    ;  _eedata := address
5326                    ;info   104, 723
5327 02d3 1303          bcf     __rp1___byte, __rp1___bit
5328 02d4 082f          movf    rb2bus_eedata_write__address,w
5329 02d5 1703          bsf     __rp1___byte, __rp1___bit
5330 02d6 008c          movwf   _eedata
5331            
5332                    ; # Write 2 bytes ({address} followed by {address}^0xff):
5333                    ; line_number = 107
5334                    ;  loop_exactly 2 start
5335                    ;info   107, 727
5336 00000049 = rb2bus_eedata_write__1 equ globals___0+41
5337 02d7 3002          movlw   2
5338 02d8 1303          bcf     __rp1___byte, __rp1___bit
5339 02d9 00c9          movwf   rb2bus_eedata_write__1
5340   02da :   rb2bus_eedata_write__2:
5341                    ; # Set the data to write:
5342            
5343                    ; # Set up the for the write:
5344                    ; line_number = 111
5345                    ;  _wren := _true
5346                    ;info   111, 730
5347 02da 1683          bsf     __rp0___byte, __rp0___bit
5348 02db 1703          bsf     __rp1___byte, __rp1___bit
5349 02dc 150c          bsf     _wren___byte, _wren___bit
5350                    ; line_number = 112
5351                    ;  _gie := _false
5352                    ;info   112, 733
5353 02dd 138b          bcf     _gie___byte, _gie___bit
5354                    ; line_number = 113
5355                    ;  _eecon2 := 0x55
5356                    ;info   113, 734
5357 02de 3055          movlw   85
5358 02df 1303          bcf     __rp1___byte, __rp1___bit
5359 02e0 009d          movwf   _eecon2
5360                    ; line_number = 114
5361                    ;  _eecon2 := 0xaa
5362                    ;info   114, 737
5363 02e1 30aa          movlw   170
5364 02e2 009d          movwf   _eecon2
5365                    ; # Start the write:
5366                    ; line_number = 116
5367                    ;  _wr := _true
5368                    ;info   116, 739
5369 02e3 1703          bsf     __rp1___byte, __rp1___bit
5370 02e4 148c          bsf     _wr___byte, _wr___bit
5371            
5372                    ; # Wait for write to complete:
5373                    ; line_number = 119
5374                    ;  while _wr start
5375   02e5 :   rb2bus_eedata_write__3:
5376                    ;info   119, 741
5377                    ; =>bit_code_emit@symbol(): sym=_wr
5378                    ; 1TEST: Single test with code in skip slot
5379 02e5 188c          btfsc   _wr___byte, _wr___bit
5380                    ; line_number = 120
5381                    ; do_nothing
5382                    ;info   120, 742
5383            
5384 02e6 2ae5          goto    rb2bus_eedata_write__3
5385                    ; Recombine size1 = 0 || size2 = 0
5386                    ; line_number = 119
5387                    ;  while _wr done
5388                    ; # Disable writing:
5389                    ; line_number = 123
5390                    ;  _wren := _false
5391                    ;info   123, 743
5392 02e7 110c          bcf     _wren___byte, _wren___bit
5393            
5394                    ; # Prepare the second byte of data:
5395                    ; line_number = 126
5396                    ;  _eeadr := _eeadr + 1
5397                    ;info   126, 744
5398 02e8 1283          bcf     __rp0___byte, __rp0___bit
5399 02e9 0a8d          incf    _eeadr,f
5400                    ; line_number = 127
5401                    ;  _eedata := address ^ 0xff
5402                    ;info   127, 746
5403 02ea 1303          bcf     __rp1___byte, __rp1___bit
5404 02eb 092f          comf    rb2bus_eedata_write__address,w
5405 02ec 1703          bsf     __rp1___byte, __rp1___bit
5406 02ed 008c          movwf   _eedata
5407            
5408 02ee 1303          bcf     __rp1___byte, __rp1___bit
5409                    ; line_number = 107
5410                    ;  loop_exactly 2 wrap-up
5411 02ef 0bc9          decfsz  rb2bus_eedata_write__1,f
5412 02f0 2ada          goto    rb2bus_eedata_write__2
5413                    ; line_number = 107
5414                    ;  loop_exactly 2 done
5415                    ; delay after procedure statements=non-uniform
5416                    ; Implied return
5417 02f1 3400          retlw   0
5418            
5419            
5420            
5421            
5422                    ; Code bank 1; Start address: 2048; End address: 4095
5423   0800 :           org     2048
5424                    ; Configuration bits
5425                    ; address = 0x2007, fill = 0x0
5426                    ; cp = off (0x2000)
5427                    ; ccpmx = ccp1_rb0 (0x1000)
5428                    ; debug = off (0x800)
5429                    ; wrt = on (0x0)
5430                    ; cpd = off (0x100)
5431                    ; lvp = off (0x0)
5432                    ; boden = off (0x0)
5433                    ; mclre = off (0x0)
5434                    ; pwrte = off (0x8)
5435                    ; wdte = off (0x0)
5436                    ; fosc = hs (0x2)
5437                    ; 14602 = 0x390a
5438                    ; 8199 = 0x2007
5439   390a =           __config 8199, 14602
5440                    ; Configuration bits
5441                    ; address = 0x2008, fill = 0x3ffc
5442                    ; ieso = off (0x0)
5443                    ; fcmen = off (0x0)
5444                    ; 16380 = 0x3ffc
5445                    ; 8200 = 0x2008
5446   3ffc =           __config 8200, 16380
5447                    ; Define start addresses for data regions
5448                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
5449                    ; Region="globals___0" Address=32" Size=80 Bytes=42 Bits=8 Available=37
5450                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
5451                    ; Region="globals___2" Address=272" Size=96 Bytes=0 Bits=0 Available=96
5452                    ; Region="globals___3" Address=400" Size=96 Bytes=0 Bits=0 Available=96
5453                    end
