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) 2006-2007 by Wayne C. Gramlich.
32                      ; # All rights reserved.
33              
34                      ; # This is a boot loader that resides in high memory for
35                      ; # loading programs into low memory.
36              
37                      ; # This module is using a PIC16F876A
38                      ; buffer = 'controller28'
39                      ; line_number = 10
40                      ; library _pic16f876a entered
41              
42                      ; # Copyright (c) 2004-2007 by Wayne C. Gramlich
43                      ; # All rights reserved.
44              
45                      ; buffer = '_pic16f876a'
46                      ; line_number = 6
47                      ; processor pic16f876a
48                      ; line_number = 7
49                      ; configure_address 0x2007
50                      ; line_number = 8
51                      ;  configure_fill 0x01030
52                      ; line_number = 9
53                      ;  configure_option cp: off = 0x2000
54                      ; line_number = 10
55                      ;  configure_option cp: on = 0x0000
56                      ; line_number = 11
57                      ;  configure_option debug: on = 0x000
58                      ; line_number = 12
59                      ;  configure_option debug: off = 0x800
60                      ; line_number = 13
61                      ;  configure_option wrt: on = 0x000
62                      ; line_number = 14
63                      ;  configure_option wrt: off = 0x300
64                      ; line_number = 15
65                      ;  configure_option cpd: on = 0x000
66                      ; line_number = 16
67                      ;  configure_option cpd: off = 0x100
68                      ; line_number = 17
69                      ;  configure_option lvp: on = 0x80
70                      ; line_number = 18
71                      ;  configure_option lvp: off = 0x00
72                      ; line_number = 19
73                      ;  configure_option boren: on = 0x40
74                      ; line_number = 20
75                      ;  configure_option boren: off = 0x00
76                      ; line_number = 21
77                      ;  configure_option pwrte: on = 0
78                      ; line_number = 22
79                      ;  configure_option pwrte: off = 8
80                      ; line_number = 23
81                      ;  configure_option wdte: on = 4
82                      ; line_number = 24
83                      ;  configure_option wdte: off = 0
84                      ; line_number = 25
85                      ;  configure_option fosc: rc = 3
86                      ; line_number = 26
87                      ;  configure_option fosc: hs = 2
88                      ; line_number = 27
89                      ;  configure_option fosc: xt = 1
90                      ; line_number = 28
91                      ;  configure_option fosc: lp = 0
92                      ; line_number = 29
93                      ;  code_bank 0x0 : 0x7ff
94                      ; line_number = 30
95                      ;  code_bank 0x800 : 0xfff
96                      ; line_number = 31
97                      ;  code_bank 0x1000 : 0x17ff
98                      ; line_number = 32
99                      ;  code_bank 0x1800 : 0x1fff
100                     ; line_number = 33
101                     ;  data_bank 0x0 : 0x7f
102                     ; line_number = 34
103                     ;  data_bank 0x80 : 0xff
104                     ; line_number = 35
105                     ;  data_bank 0x100 : 0x17f
106                     ; line_number = 36
107                     ;  data_bank 0x180 : 0x1ff
108                     ; line_number = 37
109                     ;  global_region 0x20 : 0x6f
110                     ; line_number = 38
111                     ;  global_region 0xa0 : 0xef
112                     ; line_number = 39
113                     ;  global_region 0x110 : 0x16f
114                     ; line_number = 40
115                     ;  global_region 0x190 : 0x1ff
116                     ; line_number = 41
117                     ;  shared_region 0x70 : 0x7f
118                     ; line_number = 42
119                     ;  interrupts_possible
120                     ; line_number = 43
121                     ;  packages pdip = 28
122                     ; line_number = 44
123                     ;  pin mclr, vpp, thv, mclr_unused
124                     ; line_number = 45
125                     ; pin_bindings pdip = 1
126                     ; line_number = 46
127                     ; pin ra0_in, ra0_out, an0, ra0_unused
128                     ; line_number = 47
129                     ; pin_bindings pdip = 2
130                     ; line_number = 48
131                     ;  bind_to _porta@0
132                     ; line_number = 49
133                     ;  or_if ra0_in _trisa 1
134                     ; line_number = 50
135                     ;  or_if ra0_in _adcon1 7
136                     ; line_number = 51
137                     ;  or_if ra0_in _adcon0 0
138                     ; line_number = 52
139                     ;  or_if ra0_in _cmcon 7
140                     ; line_number = 53
141                     ;  or_if ra0_out _trisa 0
142                     ; line_number = 54
143                     ;  or_if ra0_out _adcon1 7
144                     ; line_number = 55
145                     ;  or_if ra0_out _adcon0 0
146                     ; line_number = 56
147                     ;  or_if ra0_out _cmcon 7
148                     ; line_number = 57
149                     ;  or_if ra0_unused _trisa 1
150                     ; line_number = 58
151                     ;  or_if ra0_unused _adcon1 7
152                     ; line_number = 59
153                     ;  or_if ra0_unused _adcon0 0
154                     ; line_number = 60
155                     ;  or_if ra0_unused _cmcon 7
156                     ; line_number = 61
157                     ; pin ra1_in, ra1_out, an1, ra1_unused
158                     ; line_number = 62
159                     ; pin_bindings pdip = 3
160                     ; line_number = 63
161                     ;  bind_to _porta@1
162                     ; line_number = 64
163                     ;  or_if ra1_in _trisa 2
164                     ; line_number = 65
165                     ;  or_if ra1_in _adcon1 7
166                     ; line_number = 66
167                     ;  or_if ra1_in _adcon0 0
168                     ; line_number = 67
169                     ;  or_if ra1_in _cmcon 7
170                     ; line_number = 68
171                     ;  or_if ra1_out _trisa 0
172                     ; line_number = 69
173                     ;  or_if ra1_out _adcon1 7
174                     ; line_number = 70
175                     ;  or_if ra1_out _adcon0 0
176                     ; line_number = 71
177                     ;  or_if ra1_out _cmcon 7
178                     ; line_number = 72
179                     ;  or_if ra1_unused _trisa 2
180                     ; line_number = 73
181                     ;  or_if ra1_unused _adcon1 7
182                     ; line_number = 74
183                     ;  or_if ra1_unused _adcon0 0
184                     ; line_number = 75
185                     ;  or_if ra1_unused _cmcon 7
186                     ; line_number = 76
187                     ; pin ra2_in, ra2_out, an2, vref_minus, ra2_unused
188                     ; line_number = 77
189                     ; pin_bindings pdip = 4
190                     ; line_number = 78
191                     ;  bind_to _porta@2
192                     ; line_number = 79
193                     ;  or_if ra2_in _trisa 4
194                     ; line_number = 80
195                     ;  or_if ra2_in _adcon1 7
196                     ; line_number = 81
197                     ;  or_if ra2_in _adcon0 0
198                     ; line_number = 82
199                     ;  or_if ra2_in _cmcon 7
200                     ; line_number = 83
201                     ;  or_if ra2_out _trisa 0
202                     ; line_number = 84
203                     ;  or_if ra2_out _adcon1 7
204                     ; line_number = 85
205                     ;  or_if ra2_out _adcon0 0
206                     ; line_number = 86
207                     ;  or_if ra2_out _cmcon 7
208                     ; line_number = 87
209                     ;  or_if ra2_unused _trisa 4
210                     ; line_number = 88
211                     ;  or_if ra2_unused _adcon1 7
212                     ; line_number = 89
213                     ;  or_if ra2_unused _adcon0 0
214                     ; line_number = 90
215                     ;  or_if ra2_unused _cmcon 7
216                     ; line_number = 91
217                     ; pin ra3_in, ra3_out, an3, vrev_plus, ra3_unused
218                     ; line_number = 92
219                     ; pin_bindings pdip = 5
220                     ; line_number = 93
221                     ;  bind_to _porta@3
222                     ; line_number = 94
223                     ;  or_if ra3_in _trisa 8
224                     ; line_number = 95
225                     ;  or_if ra3_in _adcon1 7
226                     ; line_number = 96
227                     ;  or_if ra3_in _adcon0 0
228                     ; line_number = 97
229                     ;  or_if ra3_in _cmcon 7
230                     ; line_number = 98
231                     ;  or_if ra3_out _trisa 0
232                     ; line_number = 99
233                     ;  or_if ra3_out _adcon1 7
234                     ; line_number = 100
235                     ;  or_if ra3_out _adcon0 0
236                     ; line_number = 101
237                     ;  or_if ra3_out _cmcon 7
238                     ; line_number = 102
239                     ;  or_if ra3_unused _trisa 8
240                     ; line_number = 103
241                     ;  or_if ra3_unused _adcon1 7
242                     ; line_number = 104
243                     ;  or_if ra3_unused _adcon0 0
244                     ; line_number = 105
245                     ;  or_if ra3_unused _cmcon 7
246                     ; line_number = 106
247                     ; pin ra4_in, ra4_out, t0cki, ra4_unused
248                     ; line_number = 107
249                     ; pin_bindings pdip = 6
250                     ; line_number = 108
251                     ;  bind_to _porta@4
252                     ; line_number = 109
253                     ;  or_if ra4_in _trisa 16
254                     ; line_number = 110
255                     ;  or_if ra4_in _adcon1 7
256                     ; line_number = 111
257                     ;  or_if ra4_in _adcon0 0
258                     ; line_number = 112
259                     ;  or_if ra4_out _trisa 0
260                     ; line_number = 113
261                     ;  or_if ra4_out _adcon1 7
262                     ; line_number = 114
263                     ;  or_if ra4_out _adcon0 0
264                     ; line_number = 115
265                     ;  or_if ra4_unused _trisa 16
266                     ; line_number = 116
267                     ;  or_if ra4_unused _adcon1 7
268                     ; line_number = 117
269                     ;  or_if ra4_unused _adcon0 0
270                     ; line_number = 118
271                     ; pin ra5_in, ra5_out, an4, ra5_unused
272                     ; line_number = 119
273                     ; pin_bindings pdip = 7
274                     ; line_number = 120
275                     ;  bind_to _porta@5
276                     ; line_number = 121
277                     ;  or_if ra5_in _trisa 32
278                     ; line_number = 122
279                     ;  or_if ra5_in _adcon1 7
280                     ; line_number = 123
281                     ;  or_if ra5_in _adcon1 0
282                     ; line_number = 124
283                     ;  or_if ra5_out _trisa 0
284                     ; line_number = 125
285                     ;  or_if ra5_out _adcon1 7
286                     ; line_number = 126
287                     ;  or_if ra5_out _adcon0 0
288                     ; line_number = 127
289                     ;  or_if ra5_unused _trisa 32
290                     ; line_number = 128
291                     ;  or_if ra5_unused _adcon1 7
292                     ; line_number = 129
293                     ;  or_if ra5_unused _adcon1 0
294                     ; line_number = 130
295                     ; pin vss, ground
296                     ; line_number = 131
297                     ; pin_bindings pdip = 8
298                     ; line_number = 132
299                     ; pin osc1, clkin
300                     ; line_number = 133
301                     ; pin_bindings pdip = 9
302                     ; line_number = 134
303                     ; pin osc2, clkout
304                     ; line_number = 135
305                     ; pin_bindings pdip = 10
306                     ; line_number = 136
307                     ; pin rc0_in, rc0_out, t1oso, t1cki, rc0_unused
308                     ; line_number = 137
309                     ; pin_bindings pdip = 11
310                     ; line_number = 138
311                     ;  bind_to _portc@0
312                     ; line_number = 139
313                     ;  or_if rc0_in _trisc 1
314                     ; line_number = 140
315                     ;  or_if rc0_in _adcon1 7
316                     ; line_number = 141
317                     ;  or_if rc0_in _adcon0 0
318                     ; line_number = 142
319                     ;  or_if rc0_out _trisc 0
320                     ; line_number = 143
321                     ;  or_if rc0_out _adcon1 7
322                     ; line_number = 144
323                     ;  or_if rc0_out _adcon0 0
324                     ; line_number = 145
325                     ;  or_if rc0_unused _trisc 1
326                     ; line_number = 146
327                     ;  or_if rc0_unused _adcon1 7
328                     ; line_number = 147
329                     ;  or_if rc0_unused _adcon0 0
330                     ; line_number = 148
331                     ; pin rc1_in, rc1_out, t1osi, ccp2, rc1_unused
332                     ; line_number = 149
333                     ; pin_bindings pdip = 12
334                     ; line_number = 150
335                     ;  bind_to _portc@1
336                     ; line_number = 151
337                     ;  or_if rc1_in _trisc 2
338                     ; line_number = 152
339                     ;  or_if rc1_in _adcon1 7
340                     ; line_number = 153
341                     ;  or_if rc1_in _adcon0 0
342                     ; line_number = 154
343                     ;  or_if rc1_out _trisc 0
344                     ; line_number = 155
345                     ;  or_if rc1_out _adcon1 7
346                     ; line_number = 156
347                     ;  or_if rc1_out _adcon0 0
348                     ; line_number = 157
349                     ;  or_if rc1_unused _trisc 2
350                     ; line_number = 158
351                     ;  or_if rc1_unused _adcon1 7
352                     ; line_number = 159
353                     ;  or_if rc1_unused _adcon0 0
354                     ; line_number = 160
355                     ; pin rc2_in, rc2_out, ccp1, rc2_unused
356                     ; line_number = 161
357                     ; pin_bindings pdip = 13
358                     ; line_number = 162
359                     ;  bind_to _portc@2
360                     ; line_number = 163
361                     ;  or_if rc2_in _trisc 4
362                     ; line_number = 164
363                     ;  or_if rc2_in _adcon1 7
364                     ; line_number = 165
365                     ;  or_if rc2_in _adcon0 0
366                     ; line_number = 166
367                     ;  or_if rc2_out _trisc 0
368                     ; line_number = 167
369                     ;  or_if rc2_out _adcon1 7
370                     ; line_number = 168
371                     ;  or_if rc2_out _adcon0 0
372                     ; line_number = 169
373                     ;  or_if rc2_unused _trisc 4
374                     ; line_number = 170
375                     ;  or_if rc2_unused _adcon1 7
376                     ; line_number = 171
377                     ;  or_if rc2_unused _adcon0 0
378                     ; line_number = 172
379                     ; pin rc3_in, rc3_out, sck_master, sck_slave, scl, rc3_unused
380                     ; line_number = 173
381                     ; pin_bindings pdip = 14
382                     ; line_number = 174
383                     ;  bind_to _portc@3
384                     ; line_number = 175
385                     ;  or_if rc3_in _trisc 8
386                     ; line_number = 176
387                     ;  or_if rc3_in _adcon1 7
388                     ; line_number = 177
389                     ;  or_if rc3_in _adcon0 0
390                     ; line_number = 178
391                     ;  or_if rc3_out _trisc 0
392                     ; line_number = 179
393                     ;  or_if rc3_out _adcon1 7
394                     ; line_number = 180
395                     ;  or_if rc3_out _adcon0 0
396                     ; line_number = 181
397                     ;  or_if sck_slave _trisc 8
398                     ; line_number = 182
399                     ;  or_if sck_slave _adcon1 7
400                     ; line_number = 183
401                     ;  or_if sck_slave _adcon0 0
402                     ; line_number = 184
403                     ;  or_if sck_master _trisc 0
404                     ; line_number = 185
405                     ;  or_if sck_master _adcon1 7
406                     ; line_number = 186
407                     ;  or_if sck_master _adcon0 0
408                     ; line_number = 187
409                     ;  or_if rc3_unused _trisc 8
410                     ; line_number = 188
411                     ;  or_if rc3_unused _adcon1 7
412                     ; line_number = 189
413                     ;  or_if rc3_unused _adcon0 0
414                     ; line_number = 190
415                     ; pin rc4_in, rc4_out, sdi, sda, rc4_unused
416                     ; line_number = 191
417                     ; pin_bindings pdip = 15
418                     ; line_number = 192
419                     ;  bind_to _portc@4
420                     ; line_number = 193
421                     ;  or_if rc4_in _trisc 16
422                     ; line_number = 194
423                     ;  or_if rc4_in _adcon1 7
424                     ; line_number = 195
425                     ;  or_if rc4_in _adcon0 0
426                     ; line_number = 196
427                     ;  or_if rc4_out _trisc 0
428                     ; line_number = 197
429                     ;  or_if rc4_out _adcon1 7
430                     ; line_number = 198
431                     ;  or_if rc4_out _adcon0 0
432                     ; line_number = 199
433                     ;  or_if sdi _trisc 16
434                     ; line_number = 200
435                     ;  or_if sdi _adcon1 7
436                     ; line_number = 201
437                     ;  or_if sdi _adcon0 0
438                     ; line_number = 202
439                     ;  or_if rc4_unused _trisc 16
440                     ; line_number = 203
441                     ;  or_if rc4_unused _adcon1 7
442                     ; line_number = 204
443                     ;  or_if rc4_unused _adcon0 0
444                     ; line_number = 205
445                     ; pin rc5_in, rc5_out, sdo, rc5_unused
446                     ; line_number = 206
447                     ; pin_bindings pdip = 16
448                     ; line_number = 207
449                     ;  bind_to _portc@5
450                     ; line_number = 208
451                     ;  or_if rc5_in _trisc 32
452                     ; line_number = 209
453                     ;  or_if rc5_in _adcon1 7
454                     ; line_number = 210
455                     ;  or_if rc5_in _adcon0 0
456                     ; line_number = 211
457                     ;  or_if rc5_out _trisc 0
458                     ; line_number = 212
459                     ;  or_if rc5_out _adcon1 7
460                     ; line_number = 213
461                     ;  or_if rc5_out _adcon0 0
462                     ; line_number = 214
463                     ;  or_if sdo _trisc 0
464                     ; line_number = 215
465                     ;  or_if sdo _adcon1 7
466                     ; line_number = 216
467                     ;  or_if sdo _adcon0 0
468                     ; line_number = 217
469                     ;  or_if rc5_unused _trisc 32
470                     ; line_number = 218
471                     ;  or_if rc5_unused _adcon1 7
472                     ; line_number = 219
473                     ;  or_if rc5_unused _adcon0 0
474                     ; line_number = 220
475                     ; pin rc6_in, rc6_out, tx, ck, rc6_unused
476                     ; line_number = 221
477                     ; pin_bindings pdip = 17
478                     ; line_number = 222
479                     ;  bind_to _portc@6
480                     ; line_number = 223
481                     ;  or_if rc6_in _trisc 64
482                     ; line_number = 224
483                     ;  or_if rc6_in _adcon1 7
484                     ; line_number = 225
485                     ;  or_if rc6_in _adcon0 0
486                     ; line_number = 226
487                     ;  or_if rc6_out _trisc 0
488                     ; line_number = 227
489                     ;  or_if rc6_out _adcon1 7
490                     ; line_number = 228
491                     ;  or_if rc6_out _adcon0 0
492                     ; line_number = 229
493                     ;  or_if tx _trisc 0
494                     ; line_number = 230
495                     ;  or_if tx _adcon1 7
496                     ; line_number = 231
497                     ;  or_if tx _adcon0 0
498                     ; line_number = 232
499                     ;  or_if rc6_unused _trisc 64
500                     ; line_number = 233
501                     ;  or_if rc6_unused _adcon1 7
502                     ; line_number = 234
503                     ;  or_if rc6_unused _adcon0 0
504                     ; line_number = 235
505                     ; pin rc7_in, rc7_out, rx, dt, rc7_unused
506                     ; line_number = 236
507                     ; pin_bindings pdip = 18
508                     ; line_number = 237
509                     ;  bind_to _portc@7
510                     ; line_number = 238
511                     ;  or_if rc7_in _trisc 128
512                     ; line_number = 239
513                     ;  or_if rc7_in _adcon1 7
514                     ; line_number = 240
515                     ;  or_if rc7_in _adcon0 0
516                     ; line_number = 241
517                     ;  or_if rx _trisc 128
518                     ; line_number = 242
519                     ;  or_if rx _adcon1 7
520                     ; line_number = 243
521                     ;  or_if rx _adcon0 0
522                     ; line_number = 244
523                     ;  or_if rc7_out _trisc 0
524                     ; line_number = 245
525                     ;  or_if rc7_out _adcon1 7
526                     ; line_number = 246
527                     ;  or_if rc7_out _adcon0 0
528                     ; line_number = 247
529                     ;  or_if rc7_unused _trisc 128
530                     ; line_number = 248
531                     ;  or_if rc7_unused _adcon1 7
532                     ; line_number = 249
533                     ;  or_if rc7_unused _adcon0 0
534                     ; line_number = 250
535                     ; pin vss2, ground2
536                     ; line_number = 251
537                     ; pin_bindings pdip = 19
538                     ; line_number = 252
539                     ; pin vdd, power_supply
540                     ; line_number = 253
541                     ; pin_bindings pdip = 20
542                     ; line_number = 254
543                     ; pin rb0_in, rb0_out, int, rb0_unused
544                     ; line_number = 255
545                     ; pin_bindings pdip = 21
546                     ; line_number = 256
547                     ;  bind_to _portb@0
548                     ; line_number = 257
549                     ;  or_if rb0_in _trisb 1
550                     ; line_number = 258
551                     ;  or_if rb0_in _adcon1 7
552                     ; line_number = 259
553                     ;  or_if rb0_in _adcon0 0
554                     ; line_number = 260
555                     ;  or_if rb0_out _trisb 0
556                     ; line_number = 261
557                     ;  or_if rb0_out _adcon1 7
558                     ; line_number = 262
559                     ;  or_if rb0_out _adcon0 0
560                     ; line_number = 263
561                     ;  or_if rb0_unused _trisb 1
562                     ; line_number = 264
563                     ;  or_if rb0_unused _adcon1 7
564                     ; line_number = 265
565                     ;  or_if rb0_unused _adcon0 0
566                     ; line_number = 266
567                     ; pin rb1_in, rb1_out, rb1_unused
568                     ; line_number = 267
569                     ; pin_bindings pdip = 22
570                     ; line_number = 268
571                     ;  bind_to _portb@1
572                     ; line_number = 269
573                     ;  or_if rb1_in _trisb 2
574                     ; line_number = 270
575                     ;  or_if rb1_in _adcon1 7
576                     ; line_number = 271
577                     ;  or_if rb1_in _adcon0 0
578                     ; line_number = 272
579                     ;  or_if rb1_out _trisb 0
580                     ; line_number = 273
581                     ;  or_if rb1_out _adcon1 7
582                     ; line_number = 274
583                     ;  or_if rb1_out _adcon0 0
584                     ; line_number = 275
585                     ;  or_if rb1_unused _trisb 2
586                     ; line_number = 276
587                     ;  or_if rb1_unused _adcon1 7
588                     ; line_number = 277
589                     ;  or_if rb1_unused _adcon0 0
590                     ; line_number = 278
591                     ; pin rb2_in, rb2_out, rb2_unused
592                     ; line_number = 279
593                     ; pin_bindings pdip = 23
594                     ; line_number = 280
595                     ;  bind_to _portb@2
596                     ; line_number = 281
597                     ;  or_if rb2_in _trisb 4
598                     ; line_number = 282
599                     ;  or_if rb2_in _adcon1 7
600                     ; line_number = 283
601                     ;  or_if rb2_in _adcon0 0
602                     ; line_number = 284
603                     ;  or_if rb2_out _trisb 0
604                     ; line_number = 285
605                     ;  or_if rb2_out _adcon1 7
606                     ; line_number = 286
607                     ;  or_if rb2_out _adcon0 0
608                     ; line_number = 287
609                     ;  or_if rb2_unused _trisb 4
610                     ; line_number = 288
611                     ;  or_if rb2_unused _adcon1 7
612                     ; line_number = 289
613                     ;  or_if rb2_unused _adcon0 0
614                     ; line_number = 290
615                     ; pin rb3_in, rb3_out, pgm, rb3_unused
616                     ; line_number = 291
617                     ; pin_bindings pdip = 24
618                     ; line_number = 292
619                     ;  bind_to _portb@3
620                     ; line_number = 293
621                     ;  or_if rb3_in _trisb 8
622                     ; line_number = 294
623                     ;  or_if rb3_in _adcon1 7
624                     ; line_number = 295
625                     ;  or_if rb3_in _adcon0 0
626                     ; line_number = 296
627                     ;  or_if rb3_out _trisb 0
628                     ; line_number = 297
629                     ;  or_if rb3_out _adcon1 7
630                     ; line_number = 298
631                     ;  or_if rb3_out _adcon0 0
632                     ; line_number = 299
633                     ;  or_if rb3_unused _trisb 8
634                     ; line_number = 300
635                     ;  or_if rb3_unused _adcon1 7
636                     ; line_number = 301
637                     ;  or_if rb3_unused _adcon0 0
638                     ; line_number = 302
639                     ; pin rb4_in, rb4_out, rb4_unused
640                     ; line_number = 303
641                     ; pin_bindings pdip = 25
642                     ; line_number = 304
643                     ;  bind_to _portb@4
644                     ; line_number = 305
645                     ;  or_if rb4_in _trisb 16
646                     ; line_number = 306
647                     ;  or_if rb4_in _adcon1 7
648                     ; line_number = 307
649                     ;  or_if rb4_in _adcon0 0
650                     ; line_number = 308
651                     ;  or_if rb4_out _trisb 0
652                     ; line_number = 309
653                     ;  or_if rb4_out _adcon1 7
654                     ; line_number = 310
655                     ;  or_if rb4_out _adcon0 0
656                     ; line_number = 311
657                     ;  or_if rb4_unused _trisb 16
658                     ; line_number = 312
659                     ;  or_if rb4_unused _adcon1 7
660                     ; line_number = 313
661                     ;  or_if rb4_unused _adcon0 0
662                     ; line_number = 314
663                     ; pin rb5_in, rb5_out, rb5_unused
664                     ; line_number = 315
665                     ; pin_bindings pdip = 26
666                     ; line_number = 316
667                     ;  bind_to _portb@5
668                     ; line_number = 317
669                     ;  or_if rb5_in _trisb 32
670                     ; line_number = 318
671                     ;  or_if rb5_in _adcon1 7
672                     ; line_number = 319
673                     ;  or_if rb5_in _adcon0 0
674                     ; line_number = 320
675                     ;  or_if rb5_out _trisb 0
676                     ; line_number = 321
677                     ;  or_if rb5_out _adcon1 7
678                     ; line_number = 322
679                     ;  or_if rb5_out _adcon0 0
680                     ; line_number = 323
681                     ;  or_if rb5_unused _trisb 32
682                     ; line_number = 324
683                     ;  or_if rb5_unused _adcon1 7
684                     ; line_number = 325
685                     ;  or_if rb5_unused _adcon0 0
686                     ; line_number = 326
687                     ; pin rb6_in, rb6_out, pgc, rb6_unused
688                     ; line_number = 327
689                     ; pin_bindings pdip = 27
690                     ; line_number = 328
691                     ;  bind_to _portb@6
692                     ; line_number = 329
693                     ;  or_if rb6_in _trisb 64
694                     ; line_number = 330
695                     ;  or_if rb6_in _adcon1 7
696                     ; line_number = 331
697                     ;  or_if rb6_in _adcon0 0
698                     ; line_number = 332
699                     ;  or_if rb6_out _trisb 0
700                     ; line_number = 333
701                     ;  or_if rb6_out _adcon1 7
702                     ; line_number = 334
703                     ;  or_if rb6_out _adcon0 0
704                     ; line_number = 335
705                     ;  or_if rb6_unused _trisb 64
706                     ; line_number = 336
707                     ;  or_if rb6_unused _adcon1 7
708                     ; line_number = 337
709                     ;  or_if rb6_unused _adcon0 0
710                     ; line_number = 338
711                     ; pin rb7_in, rb7_out, pgd, rb7_unused
712                     ; line_number = 339
713                     ; pin_bindings pdip = 28
714                     ; line_number = 340
715                     ;  bind_to _portb@7
716                     ; line_number = 341
717                     ;  or_if rb7_in _trisb 128
718                     ; line_number = 342
719                     ;  or_if rb7_in _adcon1 7
720                     ; line_number = 343
721                     ;  or_if rb7_in _adcon0 0
722                     ; line_number = 344
723                     ;  or_if rb7_out _trisb 0
724                     ; line_number = 345
725                     ;  or_if rb7_out _adcon1 7
726                     ; line_number = 346
727                     ;  or_if rb7_out _adcon0 0
728                     ; line_number = 347
729                     ;  or_if rb7_unused _trisb 128
730                     ; line_number = 348
731                     ;  or_if rb7_unused _adcon1 7
732                     ; line_number = 349
733                     ;  or_if rb7_unused _adcon0 0
734             
735             
736                     ; # Register and pin definitions:
737             
738                     ; line_number = 356
739                     ; library _pic16f87x entered
740             
741                     ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
742                     ; # All rights reserved.
743             
744                     ; # Common declarations for PIC16F87x series microcontrollers:
745             
746                     ; buffer = '_pic16f87x'
747                     ; line_number = 8
748                     ; library _standard entered
749             
750                     ; # Copyright (c) 2006 by Wayne C. Gramlich
751                     ; # All rights reserved.
752             
753                     ; # Standard definition for uCL:
754             
755                     ; buffer = '_standard'
756                     ; line_number = 8
757                     ; constant _true = (1 = 1)
758  00000001 = _true equ 1
759                     ; line_number = 9
760                     ; constant _false = (0 != 0)
761  00000000 = _false equ 0
762             
763             
764                     ; buffer = '_pic16f87x'
765                     ; line_number = 8
766                     ; library _standard exited
767             
768                     ; # Register and pin definitions:
769             
770                     ; # Bank 0:
771             
772                     ; line_number = 14
773                     ; register _indf = 
774  00000000 = _indf equ 0
775             
776                     ; line_number = 16
777                     ; register _tmr0 = 
778  00000001 = _tmr0 equ 1
779             
780                     ; line_number = 18
781                     ; register _pcl = 
782  00000002 = _pcl equ 2
783             
784                     ; line_number = 20
785                     ; register _status = 
786  00000003 = _status equ 3
787                     ; line_number = 21
788                     ; bind _irp = _status@7
789  00000003 = _irp___byte equ _status
790  00000007 = _irp___bit equ 7
791                     ; line_number = 22
792                     ; bind _rp1 = _status@6
793  00000003 = _rp1___byte equ _status
794  00000006 = _rp1___bit equ 6
795                     ; line_number = 23
796                     ; bind _rp0 = _status@5
797  00000003 = _rp0___byte equ _status
798  00000005 = _rp0___bit equ 5
799                     ; line_number = 24
800                     ; bind _to = _status@4
801  00000003 = _to___byte equ _status
802  00000004 = _to___bit equ 4
803                     ; line_number = 25
804                     ; bind _pd = _status@3
805  00000003 = _pd___byte equ _status
806  00000003 = _pd___bit equ 3
807                     ; line_number = 26
808                     ; bind _z = _status@2
809  00000003 = _z___byte equ _status
810  00000002 = _z___bit equ 2
811                     ; line_number = 27
812                     ; bind _dc = _status@1
813  00000003 = _dc___byte equ _status
814  00000001 = _dc___bit equ 1
815                     ; line_number = 28
816                     ; bind _c = _status@0
817  00000003 = _c___byte equ _status
818  00000000 = _c___bit equ 0
819             
820                     ; line_number = 30
821                     ; register _fsr = 
822  00000004 = _fsr equ 4
823             
824                     ; line_number = 32
825                     ; register _porta = 
826  00000005 = _porta equ 5
827             
828                     ; line_number = 34
829                     ; register _portb = 
830  00000006 = _portb equ 6
831             
832                     ; line_number = 36
833                     ; register _portc = 
834  00000007 = _portc equ 7
835             
836                     ; line_number = 38
837                     ; register _pclath = 
838  0000000a = _pclath equ 10
839             
840                     ; line_number = 40
841                     ; register _intcon = 
842  0000000b = _intcon equ 11
843                     ; line_number = 41
844                     ; bind _gie = _intcon@7
845  0000000b = _gie___byte equ _intcon
846  00000007 = _gie___bit equ 7
847                     ; line_number = 42
848                     ; bind _peie = _intcon@6
849  0000000b = _peie___byte equ _intcon
850  00000006 = _peie___bit equ 6
851                     ; line_number = 43
852                     ; bind _t0ie = _intcon@5
853  0000000b = _t0ie___byte equ _intcon
854  00000005 = _t0ie___bit equ 5
855                     ; line_number = 44
856                     ; bind _inte = _intcon@4
857  0000000b = _inte___byte equ _intcon
858  00000004 = _inte___bit equ 4
859                     ; line_number = 45
860                     ; bind _rbie = _intcon@3
861  0000000b = _rbie___byte equ _intcon
862  00000003 = _rbie___bit equ 3
863                     ; line_number = 46
864                     ; bind _t0if = _intcon@2
865  0000000b = _t0if___byte equ _intcon
866  00000002 = _t0if___bit equ 2
867                     ; line_number = 47
868                     ; bind _intf = _intcon@1
869  0000000b = _intf___byte equ _intcon
870  00000001 = _intf___bit equ 1
871                     ; line_number = 48
872                     ; bind _rbf = _intcon@0
873  0000000b = _rbf___byte equ _intcon
874  00000000 = _rbf___bit equ 0
875             
876                     ; line_number = 50
877                     ; register _pir1 = 
878  0000000c = _pir1 equ 12
879                     ; line_number = 51
880                     ; bind _pspif = _pir1@7
881  0000000c = _pspif___byte equ _pir1
882  00000007 = _pspif___bit equ 7
883                     ; line_number = 52
884                     ; bind _adif = _pir1@6
885  0000000c = _adif___byte equ _pir1
886  00000006 = _adif___bit equ 6
887                     ; line_number = 53
888                     ; bind _rcif = _pir1@5
889  0000000c = _rcif___byte equ _pir1
890  00000005 = _rcif___bit equ 5
891                     ; line_number = 54
892                     ; bind _txif = _pir1@4
893  0000000c = _txif___byte equ _pir1
894  00000004 = _txif___bit equ 4
895                     ; line_number = 55
896                     ; bind _sspif = _pir1@3
897  0000000c = _sspif___byte equ _pir1
898  00000003 = _sspif___bit equ 3
899                     ; line_number = 56
900                     ; bind _ccpif = _pir1@2
901  0000000c = _ccpif___byte equ _pir1
902  00000002 = _ccpif___bit equ 2
903                     ; line_number = 57
904                     ; bind _tmr2if = _pir1@1
905  0000000c = _tmr2if___byte equ _pir1
906  00000001 = _tmr2if___bit equ 1
907                     ; line_number = 58
908                     ; bind _tmr1if = _pir1@0
909  0000000c = _tmr1if___byte equ _pir1
910  00000000 = _tmr1if___bit equ 0
911             
912                     ; line_number = 60
913                     ; register _pir2 = 
914  0000000d = _pir2 equ 13
915                     ; line_number = 61
916                     ; bind _eeif = _pir2@4
917  0000000d = _eeif___byte equ _pir2
918  00000004 = _eeif___bit equ 4
919                     ; line_number = 62
920                     ; bind _bclif = _pir2@3
921  0000000d = _bclif___byte equ _pir2
922  00000003 = _bclif___bit equ 3
923                     ; line_number = 63
924                     ; bind _ccp2if = _pir2@0
925  0000000d = _ccp2if___byte equ _pir2
926  00000000 = _ccp2if___bit equ 0
927             
928                     ; line_number = 65
929                     ; register _tmr1l = 
930  0000000e = _tmr1l equ 14
931             
932                     ; line_number = 67
933                     ; register _tmr1h = 
934  0000000f = _tmr1h equ 15
935             
936                     ; line_number = 69
937                     ; register _t1con = 
938  00000010 = _t1con equ 16
939                     ; line_number = 70
940                     ; bind _t1ckps1 = _t1con@5
941  00000010 = _t1ckps1___byte equ _t1con
942  00000005 = _t1ckps1___bit equ 5
943                     ; line_number = 71
944                     ; bind _t1ckps0 = _t1con@4
945  00000010 = _t1ckps0___byte equ _t1con
946  00000004 = _t1ckps0___bit equ 4
947                     ; line_number = 72
948                     ; bind _t1oscen = _t1con@3
949  00000010 = _t1oscen___byte equ _t1con
950  00000003 = _t1oscen___bit equ 3
951                     ; line_number = 73
952                     ; bind _t1sync = _t1con@2
953  00000010 = _t1sync___byte equ _t1con
954  00000002 = _t1sync___bit equ 2
955                     ; line_number = 74
956                     ; bind _tmr1cs = _t1con@1
957  00000010 = _tmr1cs___byte equ _t1con
958  00000001 = _tmr1cs___bit equ 1
959                     ; line_number = 75
960                     ; bind _tmr1on = _t1con@0
961  00000010 = _tmr1on___byte equ _t1con
962  00000000 = _tmr1on___bit equ 0
963             
964                     ; line_number = 77
965                     ; register _tmr2 = 
966  00000011 = _tmr2 equ 17
967             
968                     ; line_number = 79
969                     ; register _t2con = 
970  00000012 = _t2con equ 18
971                     ; line_number = 80
972                     ; bind _toutps3 = _t2con@6
973  00000012 = _toutps3___byte equ _t2con
974  00000006 = _toutps3___bit equ 6
975                     ; line_number = 81
976                     ; bind _toutps2 = _t2con@5
977  00000012 = _toutps2___byte equ _t2con
978  00000005 = _toutps2___bit equ 5
979                     ; line_number = 82
980                     ; bind _toutps1 = _t2con@4
981  00000012 = _toutps1___byte equ _t2con
982  00000004 = _toutps1___bit equ 4
983                     ; line_number = 83
984                     ; bind _toutps0 = _t2con@3
985  00000012 = _toutps0___byte equ _t2con
986  00000003 = _toutps0___bit equ 3
987                     ; line_number = 84
988                     ; bind _tmr2on = _t2con@2
989  00000012 = _tmr2on___byte equ _t2con
990  00000002 = _tmr2on___bit equ 2
991                     ; line_number = 85
992                     ; bind _t2ckps1 = _t2con@1
993  00000012 = _t2ckps1___byte equ _t2con
994  00000001 = _t2ckps1___bit equ 1
995                     ; line_number = 86
996                     ; bind _t2ckps0 = _t2con@0
997  00000012 = _t2ckps0___byte equ _t2con
998  00000000 = _t2ckps0___bit equ 0
999             
1000                    ; line_number = 88
1001                    ; register _sspbuf = 
1002 00000013 = _sspbuf equ 19
1003            
1004                    ; line_number = 90
1005                    ; register _sspcon = 
1006 00000014 = _sspcon equ 20
1007                    ; line_number = 91
1008                    ; bind _wcol = _sspcon@7
1009 00000014 = _wcol___byte equ _sspcon
1010 00000007 = _wcol___bit equ 7
1011                    ; line_number = 92
1012                    ; bind _sspov = _sspcon@6
1013 00000014 = _sspov___byte equ _sspcon
1014 00000006 = _sspov___bit equ 6
1015                    ; line_number = 93
1016                    ; bind _sspen = _sspcon@5
1017 00000014 = _sspen___byte equ _sspcon
1018 00000005 = _sspen___bit equ 5
1019                    ; line_number = 94
1020                    ; bind _ckp = _sspcon@4
1021 00000014 = _ckp___byte equ _sspcon
1022 00000004 = _ckp___bit equ 4
1023                    ; line_number = 95
1024                    ; bind _sspm3 = _sspcon@3
1025 00000014 = _sspm3___byte equ _sspcon
1026 00000003 = _sspm3___bit equ 3
1027                    ; line_number = 96
1028                    ; bind _sspm2 = _sspcon@2
1029 00000014 = _sspm2___byte equ _sspcon
1030 00000002 = _sspm2___bit equ 2
1031                    ; line_number = 97
1032                    ; bind _sspm1 = _sspcon@1
1033 00000014 = _sspm1___byte equ _sspcon
1034 00000001 = _sspm1___bit equ 1
1035                    ; line_number = 98
1036                    ; bind _sspm0 = _sspcon@0
1037 00000014 = _sspm0___byte equ _sspcon
1038 00000000 = _sspm0___bit equ 0
1039            
1040                    ; line_number = 100
1041                    ; register _ccpr1l = 
1042 00000015 = _ccpr1l equ 21
1043            
1044                    ; line_number = 102
1045                    ; register _ccpr1h = 
1046 00000016 = _ccpr1h equ 22
1047            
1048                    ; line_number = 104
1049                    ; register _ccp1con = 
1050 00000017 = _ccp1con equ 23
1051                    ; line_number = 105
1052                    ; bind _ccp1x = _ccp1con@5
1053 00000017 = _ccp1x___byte equ _ccp1con
1054 00000005 = _ccp1x___bit equ 5
1055                    ; line_number = 106
1056                    ; bind _ccp1y = _ccp1con@4
1057 00000017 = _ccp1y___byte equ _ccp1con
1058 00000004 = _ccp1y___bit equ 4
1059                    ; line_number = 107
1060                    ; bind _ccp1m3 = _ccp1con@3
1061 00000017 = _ccp1m3___byte equ _ccp1con
1062 00000003 = _ccp1m3___bit equ 3
1063                    ; line_number = 108
1064                    ; bind _ccp1m2 = _ccp1con@2
1065 00000017 = _ccp1m2___byte equ _ccp1con
1066 00000002 = _ccp1m2___bit equ 2
1067                    ; line_number = 109
1068                    ; bind _ccp1m1 = _ccp1con@1
1069 00000017 = _ccp1m1___byte equ _ccp1con
1070 00000001 = _ccp1m1___bit equ 1
1071                    ; line_number = 110
1072                    ; bind _ccp1m0 = _ccp1con@0
1073 00000017 = _ccp1m0___byte equ _ccp1con
1074 00000000 = _ccp1m0___bit equ 0
1075            
1076                    ; line_number = 112
1077                    ; register _rcsta = 
1078 00000018 = _rcsta equ 24
1079                    ; line_number = 113
1080                    ; bind _spen = _rcsta@7
1081 00000018 = _spen___byte equ _rcsta
1082 00000007 = _spen___bit equ 7
1083                    ; line_number = 114
1084                    ; bind _rx9 = _rcsta@6
1085 00000018 = _rx9___byte equ _rcsta
1086 00000006 = _rx9___bit equ 6
1087                    ; line_number = 115
1088                    ; bind _sren = _rcsta@5
1089 00000018 = _sren___byte equ _rcsta
1090 00000005 = _sren___bit equ 5
1091                    ; line_number = 116
1092                    ; bind _cren = _rcsta@4
1093 00000018 = _cren___byte equ _rcsta
1094 00000004 = _cren___bit equ 4
1095                    ; line_number = 117
1096                    ; bind _adden = _rcsta@3
1097 00000018 = _adden___byte equ _rcsta
1098 00000003 = _adden___bit equ 3
1099                    ; line_number = 118
1100                    ; bind _ferr = _rcsta@2
1101 00000018 = _ferr___byte equ _rcsta
1102 00000002 = _ferr___bit equ 2
1103                    ; line_number = 119
1104                    ; bind _oerr = _rcsta@1
1105 00000018 = _oerr___byte equ _rcsta
1106 00000001 = _oerr___bit equ 1
1107                    ; line_number = 120
1108                    ; bind _rx9d = _rcsta@0
1109 00000018 = _rx9d___byte equ _rcsta
1110 00000000 = _rx9d___bit equ 0
1111            
1112                    ; line_number = 122
1113                    ; register _txreg = 
1114 00000019 = _txreg equ 25
1115            
1116                    ; line_number = 124
1117                    ; register _rcreg = 
1118 0000001a = _rcreg equ 26
1119            
1120                    ; line_number = 126
1121                    ; register _ccpr2l = 
1122 0000001b = _ccpr2l equ 27
1123            
1124                    ; line_number = 128
1125                    ; register _ccpr2h = 
1126 0000001c = _ccpr2h equ 28
1127            
1128                    ; line_number = 130
1129                    ; register _ccp2con = 
1130 0000001d = _ccp2con equ 29
1131                    ; line_number = 131
1132                    ; bind _ccp2x = _ccp2con@5
1133 0000001d = _ccp2x___byte equ _ccp2con
1134 00000005 = _ccp2x___bit equ 5
1135                    ; line_number = 132
1136                    ; bind _ccp2y = _ccp2con@4
1137 0000001d = _ccp2y___byte equ _ccp2con
1138 00000004 = _ccp2y___bit equ 4
1139                    ; line_number = 133
1140                    ; bind _ccp2m3 = _ccp2con@3
1141 0000001d = _ccp2m3___byte equ _ccp2con
1142 00000003 = _ccp2m3___bit equ 3
1143                    ; line_number = 134
1144                    ; bind _ccp2m2 = _ccp2con@2
1145 0000001d = _ccp2m2___byte equ _ccp2con
1146 00000002 = _ccp2m2___bit equ 2
1147                    ; line_number = 135
1148                    ; bind _ccp2m1 = _ccp2con@1
1149 0000001d = _ccp2m1___byte equ _ccp2con
1150 00000001 = _ccp2m1___bit equ 1
1151                    ; line_number = 136
1152                    ; bind _ccp2m0 = _ccp2con@0
1153 0000001d = _ccp2m0___byte equ _ccp2con
1154 00000000 = _ccp2m0___bit equ 0
1155            
1156                    ; line_number = 138
1157                    ; register _adresh = 
1158 0000001e = _adresh equ 30
1159            
1160                    ; line_number = 140
1161                    ; register _adcon0 = 
1162 0000001f = _adcon0 equ 31
1163                    ; line_number = 141
1164                    ; bind _adcs1 = _adcon0@7
1165 0000001f = _adcs1___byte equ _adcon0
1166 00000007 = _adcs1___bit equ 7
1167                    ; line_number = 142
1168                    ; bind _adcs0 = _adcon0@6
1169 0000001f = _adcs0___byte equ _adcon0
1170 00000006 = _adcs0___bit equ 6
1171                    ; line_number = 143
1172                    ; bind _chs2 = _adcon0@5
1173 0000001f = _chs2___byte equ _adcon0
1174 00000005 = _chs2___bit equ 5
1175                    ; line_number = 144
1176                    ; bind _chs1 = _adcon0@4
1177 0000001f = _chs1___byte equ _adcon0
1178 00000004 = _chs1___bit equ 4
1179                    ; line_number = 145
1180                    ; bind _chs0 = _adcon0@3
1181 0000001f = _chs0___byte equ _adcon0
1182 00000003 = _chs0___bit equ 3
1183                    ; line_number = 146
1184                    ; bind _go_done = _adcon0@2
1185 0000001f = _go_done___byte equ _adcon0
1186 00000002 = _go_done___bit equ 2
1187                    ; line_number = 147
1188                    ; bind _adon = _adcon0@0
1189 0000001f = _adon___byte equ _adcon0
1190 00000000 = _adon___bit equ 0
1191            
1192                    ; # Bank 1:
1193            
1194                    ; line_number = 151
1195                    ; register _option_reg = 
1196 00000081 = _option_reg equ 129
1197                    ; line_number = 152
1198                    ; bind _rbpu = _option_reg@7
1199 00000081 = _rbpu___byte equ _option_reg
1200 00000007 = _rbpu___bit equ 7
1201                    ; line_number = 153
1202                    ; bind _intedg = _option_reg@6
1203 00000081 = _intedg___byte equ _option_reg
1204 00000006 = _intedg___bit equ 6
1205                    ; line_number = 154
1206                    ; bind _t0cs = _option_reg@5
1207 00000081 = _t0cs___byte equ _option_reg
1208 00000005 = _t0cs___bit equ 5
1209                    ; line_number = 155
1210                    ; bind _t0se = _option_reg@4
1211 00000081 = _t0se___byte equ _option_reg
1212 00000004 = _t0se___bit equ 4
1213                    ; line_number = 156
1214                    ; bind _psa = _option_reg@3
1215 00000081 = _psa___byte equ _option_reg
1216 00000003 = _psa___bit equ 3
1217                    ; line_number = 157
1218                    ; bind _ps2 = _option_reg@2
1219 00000081 = _ps2___byte equ _option_reg
1220 00000002 = _ps2___bit equ 2
1221                    ; line_number = 158
1222                    ; bind _ps1 = _option_reg@1
1223 00000081 = _ps1___byte equ _option_reg
1224 00000001 = _ps1___bit equ 1
1225                    ; line_number = 159
1226                    ; bind _ps0 = _option_reg@0
1227 00000081 = _ps0___byte equ _option_reg
1228 00000000 = _ps0___bit equ 0
1229            
1230                    ; line_number = 161
1231                    ; register _trisa = 
1232 00000085 = _trisa equ 133
1233            
1234                    ; line_number = 163
1235                    ; register _trisb = 
1236 00000086 = _trisb equ 134
1237            
1238                    ; line_number = 165
1239                    ; register _trisc = 
1240 00000087 = _trisc equ 135
1241            
1242                    ; line_number = 167
1243                    ; register _pie1 = 
1244 0000008c = _pie1 equ 140
1245                    ; line_number = 168
1246                    ; bind _pspie = _pie1@7
1247 0000008c = _pspie___byte equ _pie1
1248 00000007 = _pspie___bit equ 7
1249                    ; line_number = 169
1250                    ; bind _adie = _pie1@6
1251 0000008c = _adie___byte equ _pie1
1252 00000006 = _adie___bit equ 6
1253                    ; line_number = 170
1254                    ; bind _rcie = _pie1@5
1255 0000008c = _rcie___byte equ _pie1
1256 00000005 = _rcie___bit equ 5
1257                    ; line_number = 171
1258                    ; bind _txie = _pie1@4
1259 0000008c = _txie___byte equ _pie1
1260 00000004 = _txie___bit equ 4
1261                    ; line_number = 172
1262                    ; bind _sspie = _pie1@3
1263 0000008c = _sspie___byte equ _pie1
1264 00000003 = _sspie___bit equ 3
1265                    ; line_number = 173
1266                    ; bind _ccp1ie = _pie1@2
1267 0000008c = _ccp1ie___byte equ _pie1
1268 00000002 = _ccp1ie___bit equ 2
1269                    ; line_number = 174
1270                    ; bind _tmr2ie = _pie1@1
1271 0000008c = _tmr2ie___byte equ _pie1
1272 00000001 = _tmr2ie___bit equ 1
1273                    ; line_number = 175
1274                    ; bind _tmr1ie = _pie1@0
1275 0000008c = _tmr1ie___byte equ _pie1
1276 00000000 = _tmr1ie___bit equ 0
1277            
1278                    ; line_number = 177
1279                    ; register _pie2 = 
1280 0000008d = _pie2 equ 141
1281                    ; line_number = 178
1282                    ; bind _eeie = _pie2@4
1283 0000008d = _eeie___byte equ _pie2
1284 00000004 = _eeie___bit equ 4
1285                    ; line_number = 179
1286                    ; bind _bcie = _pie2@3
1287 0000008d = _bcie___byte equ _pie2
1288 00000003 = _bcie___bit equ 3
1289                    ; line_number = 180
1290                    ; bind _ccp2ie = _pie2@0
1291 0000008d = _ccp2ie___byte equ _pie2
1292 00000000 = _ccp2ie___bit equ 0
1293            
1294                    ; line_number = 182
1295                    ; register _pcon = 
1296 0000008e = _pcon equ 142
1297                    ; line_number = 183
1298                    ; bind _por = _pcon@1
1299 0000008e = _por___byte equ _pcon
1300 00000001 = _por___bit equ 1
1301                    ; line_number = 184
1302                    ; bind _bor = _pcon@0
1303 0000008e = _bor___byte equ _pcon
1304 00000000 = _bor___bit equ 0
1305            
1306                    ; line_number = 186
1307                    ; register _sspcon2 = 
1308 00000091 = _sspcon2 equ 145
1309                    ; line_number = 187
1310                    ; bind _gcen = _sspcon2@7
1311 00000091 = _gcen___byte equ _sspcon2
1312 00000007 = _gcen___bit equ 7
1313                    ; line_number = 188
1314                    ; bind _ackstat = _sspcon2@6
1315 00000091 = _ackstat___byte equ _sspcon2
1316 00000006 = _ackstat___bit equ 6
1317                    ; line_number = 189
1318                    ; bind _ackdt = _sspcon2@5
1319 00000091 = _ackdt___byte equ _sspcon2
1320 00000005 = _ackdt___bit equ 5
1321                    ; line_number = 190
1322                    ; bind _acken = _sspcon2@4
1323 00000091 = _acken___byte equ _sspcon2
1324 00000004 = _acken___bit equ 4
1325                    ; line_number = 191
1326                    ; bind _rcen = _sspcon2@3
1327 00000091 = _rcen___byte equ _sspcon2
1328 00000003 = _rcen___bit equ 3
1329                    ; line_number = 192
1330                    ; bind _pen = _sspcon2@2
1331 00000091 = _pen___byte equ _sspcon2
1332 00000002 = _pen___bit equ 2
1333                    ; line_number = 193
1334                    ; bind _rsen = _sspcon2@1
1335 00000091 = _rsen___byte equ _sspcon2
1336 00000001 = _rsen___bit equ 1
1337                    ; line_number = 194
1338                    ; bind _sen = _sspcon2@0
1339 00000091 = _sen___byte equ _sspcon2
1340 00000000 = _sen___bit equ 0
1341            
1342                    ; line_number = 196
1343                    ; register _pr2 = 
1344 00000092 = _pr2 equ 146
1345            
1346                    ; line_number = 198
1347                    ; register _sspadd = 
1348 00000093 = _sspadd equ 147
1349            
1350                    ; line_number = 200
1351                    ; register _sspstat = 
1352 00000094 = _sspstat equ 148
1353                    ; line_number = 201
1354                    ; bind _smp = _sspstat@7
1355 00000094 = _smp___byte equ _sspstat
1356 00000007 = _smp___bit equ 7
1357                    ; line_number = 202
1358                    ; bind _cke = _sspstat@6
1359 00000094 = _cke___byte equ _sspstat
1360 00000006 = _cke___bit equ 6
1361                    ; line_number = 203
1362                    ; bind _da = _sspstat@5
1363 00000094 = _da___byte equ _sspstat
1364 00000005 = _da___bit equ 5
1365                    ; line_number = 204
1366                    ; bind _p = _sspstat@4
1367 00000094 = _p___byte equ _sspstat
1368 00000004 = _p___bit equ 4
1369                    ; line_number = 205
1370                    ; bind _s = _sspstat@3
1371 00000094 = _s___byte equ _sspstat
1372 00000003 = _s___bit equ 3
1373                    ; line_number = 206
1374                    ; bind _rw = _sspstat@2
1375 00000094 = _rw___byte equ _sspstat
1376 00000002 = _rw___bit equ 2
1377                    ; line_number = 207
1378                    ; bind _ua = _sspstat@1
1379 00000094 = _ua___byte equ _sspstat
1380 00000001 = _ua___bit equ 1
1381                    ; line_number = 208
1382                    ; bind _bf = _sspstat@0
1383 00000094 = _bf___byte equ _sspstat
1384 00000000 = _bf___bit equ 0
1385            
1386                    ; line_number = 210
1387                    ; register _txsta = 
1388 00000098 = _txsta equ 152
1389                    ; line_number = 211
1390                    ; bind _csrc = _txsta@7
1391 00000098 = _csrc___byte equ _txsta
1392 00000007 = _csrc___bit equ 7
1393                    ; line_number = 212
1394                    ; bind _tx9 = _txsta@6
1395 00000098 = _tx9___byte equ _txsta
1396 00000006 = _tx9___bit equ 6
1397                    ; line_number = 213
1398                    ; bind _txen = _txsta@5
1399 00000098 = _txen___byte equ _txsta
1400 00000005 = _txen___bit equ 5
1401                    ; line_number = 214
1402                    ; bind _sync = _txsta@4
1403 00000098 = _sync___byte equ _txsta
1404 00000004 = _sync___bit equ 4
1405                    ; line_number = 215
1406                    ; bind _brgh = _txsta@2
1407 00000098 = _brgh___byte equ _txsta
1408 00000002 = _brgh___bit equ 2
1409                    ; line_number = 216
1410                    ; bind _trmt = _txsta@1
1411 00000098 = _trmt___byte equ _txsta
1412 00000001 = _trmt___bit equ 1
1413                    ; line_number = 217
1414                    ; bind _tx9d = _txsta@0
1415 00000098 = _tx9d___byte equ _txsta
1416 00000000 = _tx9d___bit equ 0
1417            
1418                    ; line_number = 219
1419                    ; register _spbrg = 
1420 00000099 = _spbrg equ 153
1421            
1422                    ; line_number = 221
1423                    ; register _cmcon = 
1424 0000009c = _cmcon equ 156
1425                    ; line_number = 222
1426                    ; bind _c2out = _cmcon@7
1427 0000009c = _c2out___byte equ _cmcon
1428 00000007 = _c2out___bit equ 7
1429                    ; line_number = 223
1430                    ; bind _c1out = _cmcon@6
1431 0000009c = _c1out___byte equ _cmcon
1432 00000006 = _c1out___bit equ 6
1433                    ; line_number = 224
1434                    ; bind _c2inv = _cmcon@5
1435 0000009c = _c2inv___byte equ _cmcon
1436 00000005 = _c2inv___bit equ 5
1437                    ; line_number = 225
1438                    ; bind _c1inv = _cmcon@4
1439 0000009c = _c1inv___byte equ _cmcon
1440 00000004 = _c1inv___bit equ 4
1441                    ; line_number = 226
1442                    ; bind _cis = _cmcon@3
1443 0000009c = _cis___byte equ _cmcon
1444 00000003 = _cis___bit equ 3
1445                    ; line_number = 227
1446                    ; bind _cm2 = _cmcon@2
1447 0000009c = _cm2___byte equ _cmcon
1448 00000002 = _cm2___bit equ 2
1449                    ; line_number = 228
1450                    ; bind _cm1 = _cmcon@1
1451 0000009c = _cm1___byte equ _cmcon
1452 00000001 = _cm1___bit equ 1
1453                    ; line_number = 229
1454                    ; bind _cm0 = _cmcon@0
1455 0000009c = _cm0___byte equ _cmcon
1456 00000000 = _cm0___bit equ 0
1457            
1458                    ; line_number = 231
1459                    ; register _cvrcon = 
1460 0000009d = _cvrcon equ 157
1461                    ; line_number = 232
1462                    ; bind _cvren = _cvrcon@7
1463 0000009d = _cvren___byte equ _cvrcon
1464 00000007 = _cvren___bit equ 7
1465                    ; line_number = 233
1466                    ; bind _cvroe = _cvrcon@6
1467 0000009d = _cvroe___byte equ _cvrcon
1468 00000006 = _cvroe___bit equ 6
1469                    ; line_number = 234
1470                    ; bind _cvrr = _cvrcon@5
1471 0000009d = _cvrr___byte equ _cvrcon
1472 00000005 = _cvrr___bit equ 5
1473                    ; line_number = 235
1474                    ; bind _cvr3 = _cvrcon@3
1475 0000009d = _cvr3___byte equ _cvrcon
1476 00000003 = _cvr3___bit equ 3
1477                    ; line_number = 236
1478                    ; bind _cvr2 = _cvrcon@2
1479 0000009d = _cvr2___byte equ _cvrcon
1480 00000002 = _cvr2___bit equ 2
1481                    ; line_number = 237
1482                    ; bind _cvr1 = _cvrcon@1
1483 0000009d = _cvr1___byte equ _cvrcon
1484 00000001 = _cvr1___bit equ 1
1485                    ; line_number = 238
1486                    ; bind _cvr0 = _cvrcon@0
1487 0000009d = _cvr0___byte equ _cvrcon
1488 00000000 = _cvr0___bit equ 0
1489            
1490                    ; line_number = 240
1491                    ; register _adresl = 
1492 0000009e = _adresl equ 158
1493            
1494                    ; line_number = 242
1495                    ; register _adcon1 = 
1496 0000009f = _adcon1 equ 159
1497                    ; line_number = 243
1498                    ; bind _adfm = _adcon1@7
1499 0000009f = _adfm___byte equ _adcon1
1500 00000007 = _adfm___bit equ 7
1501                    ; line_number = 244
1502                    ; bind _pcfg3 = _adcon1@3
1503 0000009f = _pcfg3___byte equ _adcon1
1504 00000003 = _pcfg3___bit equ 3
1505                    ; line_number = 245
1506                    ; bind _pcfg2 = _adcon1@2
1507 0000009f = _pcfg2___byte equ _adcon1
1508 00000002 = _pcfg2___bit equ 2
1509                    ; line_number = 246
1510                    ; bind _pcfg1 = _adcon1@1
1511 0000009f = _pcfg1___byte equ _adcon1
1512 00000001 = _pcfg1___bit equ 1
1513                    ; line_number = 247
1514                    ; bind _pcfg0 = _adcon1@0
1515 0000009f = _pcfg0___byte equ _adcon1
1516 00000000 = _pcfg0___bit equ 0
1517            
1518                    ; # Bank 2:
1519            
1520                    ; line_number = 251
1521                    ; register _eedata = 
1522 0000010c = _eedata equ 268
1523            
1524                    ; line_number = 253
1525                    ; register _eeadr = 
1526 0000010d = _eeadr equ 269
1527            
1528                    ; line_number = 255
1529                    ; register _eedath = 
1530 0000010e = _eedath equ 270
1531            
1532                    ; line_number = 257
1533                    ; register _eeadrh = 
1534 0000010f = _eeadrh equ 271
1535            
1536                    ; # Bank 3:
1537            
1538                    ; line_number = 261
1539                    ; register _eecon1 = 
1540 0000018c = _eecon1 equ 396
1541                    ; line_number = 262
1542                    ; bind _eepgd = _eecon1@7
1543 0000018c = _eepgd___byte equ _eecon1
1544 00000007 = _eepgd___bit equ 7
1545                    ; line_number = 263
1546                    ; bind _wrerr = _eecon1@3
1547 0000018c = _wrerr___byte equ _eecon1
1548 00000003 = _wrerr___bit equ 3
1549                    ; line_number = 264
1550                    ; bind _wren = _eecon1@2
1551 0000018c = _wren___byte equ _eecon1
1552 00000002 = _wren___bit equ 2
1553                    ; line_number = 265
1554                    ; bind _wr = _eecon1@1
1555 0000018c = _wr___byte equ _eecon1
1556 00000001 = _wr___bit equ 1
1557                    ; line_number = 266
1558                    ; bind _rd = _eecon1@0
1559 0000018c = _rd___byte equ _eecon1
1560 00000000 = _rd___bit equ 0
1561            
1562                    ; line_number = 268
1563                    ; register _eecon2 = 
1564 0000018d = _eecon2 equ 397
1565            
1566            
1567                    ; buffer = '_pic16f876a'
1568                    ; line_number = 356
1569                    ; library _pic16f87x exited
1570            
1571            
1572                    ; buffer = 'controller28'
1573                    ; line_number = 10
1574                    ; library _pic16f876a exited
1575            
1576                    ; # The resonator is running at 16MHz:
1577                    ; line_number = 13
1578                    ; library clock16mhz entered
1579                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1580                    ; # All rights reserved.
1581            
1582                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1583                    ; # and {clocks_per_instruction}.
1584            
1585                    ; # Define processor constants:
1586                    ; buffer = 'clock16mhz'
1587                    ; line_number = 9
1588                    ; constant clock_rate = 16000000
1589 00f42400 = clock_rate equ 16000000
1590                    ; line_number = 10
1591                    ; constant clocks_per_instruction = 4
1592 00000004 = clocks_per_instruction equ 4
1593                    ; line_number = 11
1594                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1595 003d0900 = instruction_rate equ 4000000
1596            
1597            
1598                    ; buffer = 'controller28'
1599                    ; line_number = 13
1600                    ; library clock16mhz exited
1601                    ; line_number = 14
1602                    ; constant microsecond = 4
1603 00000004 = microsecond equ 4
1604            
1605                    ; line_number = 16
1606                    ; library_bank 3
1607            
1608                    ; # The library of bus access routines for use by the PIC16F876:
1609                    ; line_number = 19
1610                    ; library rb2bus_pic16f876 entered
1611            
1612                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1613                    ; # All rights reserved.
1614            
1615                    ; # This module provides some procedures for accessing a RoboBricks2
1616                    ; # bus via a UART.  It is speicialized for the PIC16F876:
1617                    ; #
1618                    ; # It defines the following procedure:
1619                    ; #
1620                    ; # {rb2bus_initialize}({address}) The procedure that initializes the UART
1621                    ; #                                for bus access.
1622            
1623                    ; # Global variables used by {rb2bus} library and {rb2bus_picXXXX} libraries:
1624                    ; buffer = 'rb2bus_pic16f876'
1625                    ; line_number = 15
1626                    ; library rb2bus_globals entered
1627            
1628                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1629                    ; # All rights reserved.
1630            
1631                    ; # These are the global variables used by both the {rb2bus} and
1632                    ; # the various {rb2bus_picXXXX} libraries.  Poll based firmware
1633                    ; # uses both libraries, whereas interrupt driven software only
1634                    ; # uses the {rb2bus_picXXX} libraries.
1635            
1636                    ; buffer = 'rb2bus_globals'
1637                    ; line_number = 11
1638                    ; global rb2bus_selected bit	# 
1639 0000006f = rb2bus_selected___byte equ globals___0+79
1640 00000000 = rb2bus_selected___bit equ 0
1641                    ; line_number = 12
1642                    ; global rb2bus_error bit		# Global error bit
1643 0000006f = rb2bus_error___byte equ globals___0+79
1644 00000001 = rb2bus_error___bit equ 1
1645                    ; line_number = 13
1646                    ; global rb2bus_address byte	# Bus address to respond to
1647 00000020 = rb2bus_address equ globals___0
1648                    ; line_number = 14
1649                    ; global rb2bus_index byte	# Index into id information
1650 00000021 = rb2bus_index equ globals___0+1
1651            
1652            
1653                    ; buffer = 'rb2bus_pic16f876'
1654                    ; line_number = 15
1655                    ; library rb2bus_globals exited
1656            
1657                    ; # All other bus access procedures are defined in the {rb2bus} library
1658                    ; # which is accessed below:
1659            
1660                    ; # Baud_Rate = Fosc / (16(X+1))
1661                    ; # 16 * (X+1) = Fosc/Baud_Rate
1662                    ; # X+1 = Fosc/(16*Baud_Rate)
1663                    ; # X = Fosc/(16*Baud_rate) - 1
1664            
1665                    ; line_number = 25
1666                    ; constant baud_rate_500k = 500000
1667 0007a120 = baud_rate_500k equ 500000
1668                    ; line_number = 26
1669                    ; constant spbrg_500k = clock_rate / (16 * baud_rate_500k) - 1
1670 00000001 = spbrg_500k equ 1
1671            
1672                    ; Delaying code generation for procedure  rb2bus_initialize
1673                    ; line_number = 64
1674                    ; constant rb2bus_eedata_address = 0xfe
1675 000000fe = rb2bus_eedata_address equ 254
1676            
1677                    ; Delaying code generation for procedure  rb2bus_eedata_read
1678                    ; Delaying code generation for procedure  rb2bus_eedata_write
1679            
1680                    ; buffer = 'controller28'
1681                    ; line_number = 19
1682                    ; library rb2bus_pic16f876 exited
1683            
1684                    ; # The library of bus access routines;
1685                    ; line_number = 22
1686                    ; library rb2bus entered
1687            
1688                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1689                    ; # All rights reserved.
1690            
1691                    ; # This module provides some procedures for accessing a RoboBricks2
1692                    ; # bus via a UART.
1693                    ; #
1694                    ; # This procedure defines the following procedures:
1695                    ; #
1696                    ; # {rb2bus_select_wait}  This procedure waits for the module to become selected
1697                    ; # {rb2bus_deselect}     This procedure causes this module to be deselected.
1698                    ; # {rb2bus_byte_get}     This procedure will get a byte form the bus.
1699                    ; # {rb2bus_byte_put}     This procedure will send a byte to the bus.
1700                    ; #
1701                    ; # The global variable {rb2bus_error} is set to 1 whenever the procedures
1702                    ; # feel like there is a command decoding error.
1703                    ; #
1704                    ; # The way to use these procedures is quite as follows:
1705                    ; #
1706                    ; #    # Comamnd byte variable:
1707                    ; #    local command byte
1708                    ; #
1709                    ; #    # Other initialize code goes here:
1710                    ; #
1711                    ; #    # Process commands from bus master:
1712                    ; #    loop_forever
1713                    ; #        rb2bus_error := _true
1714                    ; #	 while rb2bus_error
1715                    ; #	     call rb2bus_select_wait()
1716                    ; #	     command := rb2bus_byte_get()
1717                    ; #
1718                    ; #        # Decode command:
1719                    ; #	 switch command >> 6
1720                    ; #	   ...
1721                    ; #             case 5:
1722                    ; #	        # 0000 0101 (Foo command):
1723                    ; #	          if !rb2bus_error
1724                    ; #		      # Do foo command:
1725                    ; #
1726                    ; # The key concept behind these procedures is to make command
1727                    ; # decoding for the slave module easy.  If the slave module
1728                    ; # is in the middle of command decoding and the master suddenly
1729                    ; # sends out a module select command, we need to gracefully recover
1730                    ; # from the problem.  A command should only be executed if
1731                    ; # {rb2bus_error} is not set.  If {rb2bus_error} is set, we want
1732                    ; # to gracefully get back to the beginning of the loop without
1733                    ; # doing any damage.  Once {rb2bus_error} is set, all calls to
1734                    ; # {rb2bus_byte_get} return 0 and all calls to {rb2bus_byte_put}
1735                    ; # do nothing.  At the beginning of the loop, {rb2bus_error} is
1736                    ; # cleared by the {rb2bus_select_wait}() procedure and we have
1737                    ; # recovered from the situation.
1738            
1739                    ; buffer = 'rb2bus'
1740                    ; line_number = 54
1741                    ; library rb2_constants entered
1742            
1743                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich.
1744                    ; # All rights reserved.
1745            
1746                    ; buffer = 'rb2_constants'
1747                    ; line_number = 6
1748                    ; constant rb2_ok = 0xa5
1749 000000a5 = rb2_ok equ 165
1750            
1751                    ; line_number = 8
1752                    ; constant rb2_common_address_set = 0xfc
1753 000000fc = rb2_common_address_set equ 252
1754                    ; line_number = 9
1755                    ; constant rb2_common_id_next = 0xfd
1756 000000fd = rb2_common_id_next equ 253
1757                    ; line_number = 10
1758                    ; constant rb2_common_id_start = 0xfe
1759 000000fe = rb2_common_id_start equ 254
1760                    ; line_number = 11
1761                    ; constant rb2_common_deselect = 0xff
1762 000000ff = rb2_common_deselect equ 255
1763            
1764                    ; line_number = 13
1765                    ; constant rb2_laser1_address = 1
1766 00000001 = rb2_laser1_address equ 1
1767                    ; line_number = 14
1768                    ; constant rb2_laser1_sense_read = 0
1769 00000000 = rb2_laser1_sense_read equ 0
1770                    ; line_number = 15
1771                    ; constant rb2_laser1_enable_read = 1
1772 00000001 = rb2_laser1_enable_read equ 1
1773                    ; line_number = 16
1774                    ; constant rb2_laser1_enable_clear = 2
1775 00000002 = rb2_laser1_enable_clear equ 2
1776                    ; line_number = 17
1777                    ; constant rb2_laser1_enable_set = 3
1778 00000003 = rb2_laser1_enable_set equ 3
1779            
1780                    ; line_number = 19
1781                    ; constant rb2_minimotor2_address = 2
1782 00000002 = rb2_minimotor2_address equ 2
1783                    ; line_number = 20
1784                    ; constant rb2_midimotor2_address = 3
1785 00000003 = rb2_midimotor2_address equ 3
1786                    ; line_number = 21
1787                    ; constant rb2_motor0_speed_get = 0
1788 00000000 = rb2_motor0_speed_get equ 0
1789                    ; line_number = 22
1790                    ; constant rb2_motor0_speed_set = 1
1791 00000001 = rb2_motor0_speed_set equ 1
1792                    ; line_number = 23
1793                    ; constant rb2_motor1_speed_get = 2
1794 00000002 = rb2_motor1_speed_get equ 2
1795                    ; line_number = 24
1796                    ; constant rb2_motor1_speed_set = 3
1797 00000003 = rb2_motor1_speed_set equ 3
1798                    ; line_number = 25
1799                    ; constant rb2_duty_cycle_get = 4
1800 00000004 = rb2_duty_cycle_get equ 4
1801                    ; line_number = 26
1802                    ; constant rb2_duty_cycle_set = 8
1803 00000008 = rb2_duty_cycle_set equ 8
1804            
1805                    ; line_number = 28
1806                    ; constant rb2_irdistance2_address = 4
1807 00000004 = rb2_irdistance2_address equ 4
1808                    ; line_number = 29
1809                    ; constant rb2_irdistance2_raw0_get = 0
1810 00000000 = rb2_irdistance2_raw0_get equ 0
1811                    ; line_number = 30
1812                    ; constant rb2_irdistance2_raw1_get = 1
1813 00000001 = rb2_irdistance2_raw1_get equ 1
1814                    ; line_number = 31
1815                    ; constant rb2_irdistance2_smooth0_get = 2
1816 00000002 = rb2_irdistance2_smooth0_get equ 2
1817                    ; line_number = 32
1818                    ; constant rb2_irdistance2_smooth1_get = 3
1819 00000003 = rb2_irdistance2_smooth1_get equ 3
1820                    ; line_number = 33
1821                    ; constant rb2_irdistance2_linear0_get = 4
1822 00000004 = rb2_irdistance2_linear0_get equ 4
1823                    ; line_number = 34
1824                    ; constant rb2_irdistance2_linear1_get = 6
1825 00000006 = rb2_irdistance2_linear1_get equ 6
1826            
1827                    ; line_number = 36
1828                    ; constant rb2_shaft2_address = 5
1829 00000005 = rb2_shaft2_address equ 5
1830                    ; line_number = 37
1831                    ; constant rb2_shaft2_count_latch = 0
1832 00000000 = rb2_shaft2_count_latch equ 0
1833                    ; line_number = 38
1834                    ; constant rb2_shaft2_count_clear = 1
1835 00000001 = rb2_shaft2_count_clear equ 1
1836                    ; line_number = 39
1837                    ; constant rb2_shaft2_shaft0_high_get = 2
1838 00000002 = rb2_shaft2_shaft0_high_get equ 2
1839                    ; line_number = 40
1840                    ; constant rb2_shaft2_shaft1_high_get = 3
1841 00000003 = rb2_shaft2_shaft1_high_get equ 3
1842                    ; line_number = 41
1843                    ; constant rb2_shaft2_continue_get = 4
1844 00000004 = rb2_shaft2_continue_get equ 4
1845                    ; line_number = 42
1846                    ; constant rb2_shaft2_shaft0_low_get = rb2_shaft2_continue_get
1847 00000004 = rb2_shaft2_shaft0_low_get equ 4
1848                    ; line_number = 43
1849                    ; constant rb2_shaft2_shaft1_low_get = rb2_shaft2_continue_get
1850 00000004 = rb2_shaft2_shaft1_low_get equ 4
1851                    ; line_number = 44
1852                    ; constant rb2_shaft2_x_get = 0x10
1853 00000010 = rb2_shaft2_x_get equ 16
1854                    ; line_number = 45
1855                    ; constant rb2_shaft2_y_get = 0x11
1856 00000011 = rb2_shaft2_y_get equ 17
1857                    ; line_number = 46
1858                    ; constant rb2_shaft2_bearing16_get = 0x12
1859 00000012 = rb2_shaft2_bearing16_get equ 18
1860                    ; line_number = 47
1861                    ; constant rb2_shaft2_bearing8_get = 0x13
1862 00000013 = rb2_shaft2_bearing8_get equ 19
1863                    ; line_number = 48
1864                    ; constant rb2_shaft2_target_x_get = 0x14
1865 00000014 = rb2_shaft2_target_x_get equ 20
1866                    ; line_number = 49
1867                    ; constant rb2_shaft2_target_y_get = 0x15
1868 00000015 = rb2_shaft2_target_y_get equ 21
1869                    ; line_number = 50
1870                    ; constant rb2_shaft2_target_bearing16_get = 0x16
1871 00000016 = rb2_shaft2_target_bearing16_get equ 22
1872                    ; line_number = 51
1873                    ; constant rb2_shaft2_target_bearing8_get = 0x17
1874 00000017 = rb2_shaft2_target_bearing8_get equ 23
1875                    ; line_number = 52
1876                    ; constant rb2_shaft2_target_distance_get = 0x18
1877 00000018 = rb2_shaft2_target_distance_get equ 24
1878                    ; line_number = 53
1879                    ; constant rb2_shaft2_wheel_spacing_get = 0x19
1880 00000019 = rb2_shaft2_wheel_spacing_get equ 25
1881                    ; line_number = 54
1882                    ; constant rb2_shaft2_wheel_ticks_get = 0x1a
1883 0000001a = rb2_shaft2_wheel_ticks_get equ 26
1884                    ; line_number = 55
1885                    ; constant rb2_shaft2_wheel_diameter_get = 0x1b
1886 0000001b = rb2_shaft2_wheel_diameter_get equ 27
1887                    ; line_number = 56
1888                    ; constant rb2_shaft2_count_iteration_get = 0x1c
1889 0000001c = rb2_shaft2_count_iteration_get equ 28
1890                    ; line_number = 57
1891                    ; constant rb2_shaft2_x_set = 0x20
1892 00000020 = rb2_shaft2_x_set equ 32
1893                    ; line_number = 58
1894                    ; constant rb2_shaft2_y_set = 0x21
1895 00000021 = rb2_shaft2_y_set equ 33
1896                    ; line_number = 59
1897                    ; constant rb2_shaft2_bearing16_set = 0x22
1898 00000022 = rb2_shaft2_bearing16_set equ 34
1899                    ; line_number = 60
1900                    ; constant rb2_shaft2_navigation_latch = 0x23
1901 00000023 = rb2_shaft2_navigation_latch equ 35
1902                    ; line_number = 61
1903                    ; constant rb2_shaft2_target_x_set = 0x24
1904 00000024 = rb2_shaft2_target_x_set equ 36
1905                    ; line_number = 62
1906                    ; constant rb2_shaft2_target_y_set = 0x25
1907 00000025 = rb2_shaft2_target_y_set equ 37
1908                    ; line_number = 63
1909                    ; constant rb2_shaft2_wheel_spacing_set = 0x29
1910 00000029 = rb2_shaft2_wheel_spacing_set equ 41
1911                    ; line_number = 64
1912                    ; constant rb2_shaft2_wheel_ticks_set = 0x2a
1913 0000002a = rb2_shaft2_wheel_ticks_set equ 42
1914                    ; line_number = 65
1915                    ; constant rb2_shaft2_wheel_diameter_set = 0x2b
1916 0000002b = rb2_shaft2_wheel_diameter_set equ 43
1917            
1918            
1919                    ; line_number = 68
1920                    ; constant rb2_orient5_address = 6
1921 00000006 = rb2_orient5_address equ 6
1922            
1923                    ; line_number = 70
1924                    ; constant rb2_compass8_address = 7
1925 00000007 = rb2_compass8_address equ 7
1926            
1927                    ; line_number = 72
1928                    ; constant rb2_io8_address = 8
1929 00000008 = rb2_io8_address equ 8
1930                    ; line_number = 73
1931                    ; constant rb2_io8_digital8_get = 0
1932 00000000 = rb2_io8_digital8_get equ 0
1933                    ; line_number = 74
1934                    ; constant rb2_io8_digital8_set = 1
1935 00000001 = rb2_io8_digital8_set equ 1
1936                    ; line_number = 75
1937                    ; constant rb2_io8_direction_get = 2
1938 00000002 = rb2_io8_direction_get equ 2
1939                    ; line_number = 76
1940                    ; constant rb2_io8_direction_set = 3
1941 00000003 = rb2_io8_direction_set equ 3
1942                    ; line_number = 77
1943                    ; constant rb2_io8_analog_mask_get = 4
1944 00000004 = rb2_io8_analog_mask_get equ 4
1945                    ; line_number = 78
1946                    ; constant rb2_io8_analog_mask_set = 5
1947 00000005 = rb2_io8_analog_mask_set equ 5
1948                    ; line_number = 79
1949                    ; constant rb2_io8_analog8_get = 0x10
1950 00000010 = rb2_io8_analog8_get equ 16
1951                    ; line_number = 80
1952                    ; constant rb2_io8_analog10_get = 0x18
1953 00000018 = rb2_io8_analog10_get equ 24
1954                    ; line_number = 81
1955                    ; constant rb2_low_set = 0x20
1956 00000020 = rb2_low_set equ 32
1957                    ; line_number = 82
1958                    ; constant rb2_high_set = 0x30
1959 00000030 = rb2_high_set equ 48
1960            
1961                    ; line_number = 84
1962                    ; constant rb2_sonar2_address = 9
1963 00000009 = rb2_sonar2_address equ 9
1964            
1965                    ; line_number = 86
1966                    ; constant rb2_voice1_address = 10
1967 0000000a = rb2_voice1_address equ 10
1968            
1969                    ; line_number = 88
1970                    ; constant rb2_servo4_address = 11
1971 0000000b = rb2_servo4_address equ 11
1972                    ; line_number = 89
1973                    ; constant rb2_servo4_servo0 = 0
1974 00000000 = rb2_servo4_servo0 equ 0
1975                    ; line_number = 90
1976                    ; constant rb2_servo4_servo1 = 1
1977 00000001 = rb2_servo4_servo1 equ 1
1978                    ; line_number = 91
1979                    ; constant rb2_servo4_servo2 = 2
1980 00000002 = rb2_servo4_servo2 equ 2
1981                    ; line_number = 92
1982                    ; constant rb2_servo4_servo3 = 3
1983 00000003 = rb2_servo4_servo3 equ 3
1984                    ; line_number = 93
1985                    ; constant rb2_servo4_quick_set = 0
1986 00000000 = rb2_servo4_quick_set equ 0
1987                    ; line_number = 94
1988                    ; constant rb2_servo4_quick_low = 0
1989 00000000 = rb2_servo4_quick_low equ 0
1990                    ; line_number = 95
1991                    ; constant rb2_servo4_quick_center = 40
1992 00000028 = rb2_servo4_quick_center equ 40
1993                    ; line_number = 96
1994                    ; constant rb2_servo4_quick_high = 0x7c
1995 0000007c = rb2_servo4_quick_high equ 124
1996                    ; line_number = 97
1997                    ; constant rb2_servo4_high_low_set = 0x80
1998 00000080 = rb2_servo4_high_low_set equ 128
1999                    ; line_number = 98
2000                    ; constant rb2_servo4_short_high_low_set = 0x84
2001 00000084 = rb2_servo4_short_high_low_set equ 132
2002                    ; line_number = 99
2003                    ; constant rb2_servo4_high_set = 0x88
2004 00000088 = rb2_servo4_high_set equ 136
2005                    ; line_number = 100
2006                    ; constant rb2_servo4_low_set = 0x8c
2007 0000008c = rb2_servo4_low_set equ 140
2008                    ; line_number = 101
2009                    ; constant rb2_servo4_enables_set = 0x90
2010 00000090 = rb2_servo4_enables_set equ 144
2011                    ; line_number = 102
2012                    ; constant rb2_servo4_enable0 = 1
2013 00000001 = rb2_servo4_enable0 equ 1
2014                    ; line_number = 103
2015                    ; constant rb2_servo4_enable1 = 2
2016 00000002 = rb2_servo4_enable1 equ 2
2017                    ; line_number = 104
2018                    ; constant rb2_servo4_enable2 = 4
2019 00000004 = rb2_servo4_enable2 equ 4
2020                    ; line_number = 105
2021                    ; constant rb2_servo4_enable3 = 8
2022 00000008 = rb2_servo4_enable3 equ 8
2023                    ; line_number = 106
2024                    ; constant rb2_servo4_enable_all = 0xf
2025 0000000f = rb2_servo4_enable_all equ 15
2026                    ; line_number = 107
2027                    ; constant rb2_servo4_enable_none = 0
2028 00000000 = rb2_servo4_enable_none equ 0
2029                    ; line_number = 108
2030                    ; constant rb2_servo4_high_get = 0xa0
2031 000000a0 = rb2_servo4_high_get equ 160
2032                    ; line_number = 109
2033                    ; constant rb2_servo4_low_get = 0xa4
2034 000000a4 = rb2_servo4_low_get equ 164
2035                    ; line_number = 110
2036                    ; constant rb2_servo4_enables_get = 0xa8
2037 000000a8 = rb2_servo4_enables_get equ 168
2038            
2039                    ; line_number = 112
2040                    ; constant rb2_controller28_address = 28
2041 0000001c = rb2_controller28_address equ 28
2042            
2043                    ; line_number = 114
2044                    ; constant rb2_lcd32_address = 32
2045 00000020 = rb2_lcd32_address equ 32
2046                    ; line_number = 115
2047                    ; constant rb2_lcd32_row_set = 4
2048 00000004 = rb2_lcd32_row_set equ 4
2049                    ; line_number = 116
2050                    ; constant rb2_lcd32_row0_set = rb2_lcd32_row_set | 0
2051 00000004 = rb2_lcd32_row0_set equ 4
2052                    ; line_number = 117
2053                    ; constant rb2_lcd32_row1_set = rb2_lcd32_row_set | 1
2054 00000005 = rb2_lcd32_row1_set equ 5
2055                    ; line_number = 118
2056                    ; constant rb2_lcd32_row2_set = rb2_lcd32_row_set | 2
2057 00000006 = rb2_lcd32_row2_set equ 6
2058                    ; line_number = 119
2059                    ; constant rb2_lcd32_row3_set = rb2_lcd32_row_set | 3
2060 00000007 = rb2_lcd32_row3_set equ 7
2061                    ; line_number = 120
2062                    ; constant rb2_lcd32_new_line = 0xa
2063 0000000a = rb2_lcd32_new_line equ 10
2064                    ; line_number = 121
2065                    ; constant rb2_lcd32_form_feed = 0xc
2066 0000000c = rb2_lcd32_form_feed equ 12
2067                    ; line_number = 122
2068                    ; constant rb2_lcd32_carriage_return = 0xd
2069 0000000d = rb2_lcd32_carriage_return equ 13
2070                    ; line_number = 123
2071                    ; constant rb2_lcd32_column_set = 0x10
2072 00000010 = rb2_lcd32_column_set equ 16
2073            
2074            
2075                    ; buffer = 'rb2bus'
2076                    ; line_number = 54
2077                    ; library rb2_constants exited
2078                    ; line_number = 55
2079                    ; library rb2bus_globals Skipped (duplicate)
2080            
2081                    ; Delaying code generation for procedure  rb2bus_select_wait
2082                    ; Delaying code generation for procedure  rb2bus_deselect
2083                    ; Delaying code generation for procedure  rb2bus_byte_get
2084                    ; Delaying code generation for procedure  rb2bus_byte_put
2085                    ; Delaying code generation for procedure  rb2bus_command
2086            
2087                    ; buffer = 'controller28'
2088                    ; line_number = 22
2089                    ; library rb2bus exited
2090            
2091                    ; # This module uses a 16Mhz resonator; hence mode HS=High Speed:
2092            
2093                    ; # Only the RX and TX pins on this package are used:
2094                    ; line_number = 28
2095                    ; package pdip
2096                    ; line_number = 29
2097                    ; pin 1 = mclr
2098                    ; line_number = 30
2099                    ;  pin 2 = ra0_unused
2100                    ; line_number = 31
2101                    ;  pin 3 = ra1_unused
2102                    ; line_number = 32
2103                    ;  pin 4 = ra2_unused
2104                    ; line_number = 33
2105                    ;  pin 5 = ra3_unused
2106                    ; line_number = 34
2107                    ;  pin 6 = ra4_unused
2108                    ; line_number = 35
2109                    ;  pin 7 = ra5_unused
2110                    ; line_number = 36
2111                    ;  pin 8 = ground
2112                    ; line_number = 37
2113                    ;  pin 9 = osc1
2114                    ; line_number = 38
2115                    ;  pin 10 = osc2
2116                    ; line_number = 39
2117                    ;  pin 11 = rc0_unused
2118                    ; line_number = 40
2119                    ;  pin 12 = rc1_unused
2120                    ; line_number = 41
2121                    ;  pin 13 = rc2_unused
2122                    ; line_number = 42
2123                    ;  pin 14 = rc3_unused
2124                    ; line_number = 43
2125                    ;  pin 15 = rc4_unused
2126                    ; line_number = 44
2127                    ;  pin 16 = rc5_unused
2128                    ; line_number = 45
2129                    ;  pin 17 = tx
2130                    ; line_number = 46
2131                    ;  pin 18 = rx
2132                    ; line_number = 47
2133                    ;  pin 19 = ground2
2134                    ; line_number = 48
2135                    ;  pin 20 = power_supply
2136                    ; line_number = 49
2137                    ;  pin 21 = rb0_unused
2138                    ; line_number = 50
2139                    ;  pin 22 = rb1_unused
2140                    ; line_number = 51
2141                    ;  pin 23 = rb2_unused
2142                    ; line_number = 52
2143                    ;  pin 24 = rb3_unused
2144                    ; line_number = 53
2145                    ;  pin 25 = rb4_unused
2146                    ; line_number = 54
2147                    ;  pin 26 = rb5_unused
2148                    ; line_number = 55
2149                    ;  pin 27 = rb6_unused
2150                    ; line_number = 56
2151                    ;  pin 28 = rb7_unused
2152            
2153                    ; line_number = 58
2154                    ; origin 0
2155   0000 :           org     0
2156            
2157                    ; line_number = 60
2158                    ;info   60, 0
2159                    ; procedure start
2160   0000 :   start:
2161                    ; arguments_none
2162                    ; line_number = 62
2163                    ;  returns_nothing
2164                    ; line_number = 63
2165                    ;  return_suppress
2166            
2167                    ; # We will call main, but never return; this causes the
2168                    ; # compiler to set the code banks properly.
2169                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
2170                    ; line_number = 67
2171                    ;  call main()
2172                    ;info   67, 0
2173 0000 158a          bsf     __cb0___byte, __cb0___bit
2174 0001 160a          bsf     __cb1___byte, __cb1___bit
2175 0002 2600          call    main
2176            
2177            
2178                    ; delay after procedure statements=non-uniform
2179                    ; Return instruction suppressed by 'return_suppress'
2180            
2181            
2182            
2183            
2184                    ; #origin 4
2185            
2186                    ; #procedure interrupt
2187                    ; #    arguments_none
2188                    ; #    returns_nothing#
2189                    ; #
2190                    ; #    do_nothing
2191            
2192                    ; #origin 0x800
2193                    ; line_number = 79
2194                    ; origin 0x1e00
2195                    ; Code bank 1; Start address: 2048; End address: 4095
2196   0800 :           org     2048
2197                    ; Code bank 2; Start address: 4096; End address: 6143
2198   1000 :           org     4096
2199                    ; Code bank 3; Start address: 6144; End address: 8191
2200   1800 :           org     6144
2201   1e00 :           org     7680
2202            
2203                    ; line_number = 81
2204                    ;info   81, 7680
2205                    ; procedure main
2206   1e00 :   main:
2207                    ; Initialize some registers
2208 1e00 019f          clrf    _adcon0
2209 1e01 3007          movlw   7
2210 1e02 1683          bsf     __rp0___byte, __rp0___bit
2211 1e03 009f          movwf   _adcon1
2212 1e04 3007          movlw   7
2213 1e05 009c          movwf   _cmcon
2214 1e06 303f          movlw   63
2215 1e07 0085          movwf   _trisa
2216 1e08 30ff          movlw   255
2217 1e09 0086          movwf   _trisb
2218 1e0a 30bf          movlw   191
2219 1e0b 0087          movwf   _trisc
2220                    ; arguments_none
2221                    ; line_number = 83
2222                    ;  returns_nothing
2223            
2224                    ; line_number = 85
2225                    ;  local address_high byte
2226 0000002c = main__address_high equ globals___0+12
2227                    ; line_number = 86
2228                    ;  local address_low byte
2229 0000002d = main__address_low equ globals___0+13
2230                    ; line_number = 87
2231                    ;  local command byte
2232 0000002e = main__command equ globals___0+14
2233                    ; line_number = 88
2234                    ;  local count byte
2235 0000002f = main__count equ globals___0+15
2236                    ; line_number = 89
2237                    ;  local id_index byte
2238 00000030 = main__id_index equ globals___0+16
2239            
2240                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:11=uu=>11)
2241                    ; line_number = 91
2242                    ;  call rb2bus_initialize(28)
2243                    ;info   91, 7692
2244 1e0c 301c          movlw   28
2245 1e0d 1283          bcf     __rp0___byte, __rp0___bit
2246 1e0e 26ed          call    rb2bus_initialize
2247            
2248                    ; line_number = 93
2249                    ;  id_index := 0
2250                    ;info   93, 7695
2251 1e0f 01b0          clrf    main__id_index
2252            
2253                    ; line_number = 95
2254                    ;  loop_forever start
2255   1e10 :   main__1:
2256                    ; # Make sure that we have been selected:
2257                    ; line_number = 97
2258                    ;  rb2bus_error := _true
2259                    ;info   97, 7696
2260 1e10 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2261                    ; line_number = 98
2262                    ;  while rb2bus_error start
2263   1e11 :   main__2:
2264                    ;info   98, 7697
2265                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2266                    ; No 1TEST: true.size=4 false.size=0
2267                    ; No 2TEST: true.size=4 false.size=0
2268                    ; 1GOTO: Single test with GOTO
2269 1e11 1cef          btfss   rb2bus_error___byte, rb2bus_error___bit
2270 1e12 2e17          goto    main__3
2271                    ; line_number = 99
2272                    ; call rb2bus_select_wait()
2273                    ;info   99, 7699
2274 1e13 2749          call    rb2bus_select_wait
2275                    ; line_number = 100
2276                    ;  command := rb2bus_byte_get()
2277                    ;info   100, 7700
2278 1e14 2768          call    rb2bus_byte_get
2279 1e15 00ae          movwf   main__command
2280            
2281 1e16 2e11          goto    main__2
2282                    ; Recombine size1 = 0 || size2 = 0
2283   1e17 :   main__3:
2284                    ; line_number = 98
2285                    ;  while rb2bus_error done
2286                    ; line_number = 102
2287                    ; switch command >> 6 start
2288                    ;info   102, 7703
2289                    ; switch_before:(data:00=uu=>00 code:11=uu=>11) size=7
2290 1e17 301e          movlw   main__30>>8
2291 1e18 008a          movwf   __pclath
2292 00000031 = main__31 equ globals___0+17
2293 1e19 0e2e          swapf   main__command,w
2294 1e1a 00b1          movwf   main__31
2295 1e1b 0cb1          rrf     main__31,f
2296 1e1c 0c31          rrf     main__31,w
2297 1e1d 3903          andlw   3
2298                    ; switch after expression:(data:00=uu=>00 code:11=uu=>11)
2299 1e1e 3e20          addlw   main__30
2300 1e1f 0082          movwf   __pcl
2301                    ; page_group 4
2302   1e20 :   main__30:
2303 1e20 2e24          goto    main__28
2304 1e21 2ec9          goto    main__32
2305 1e22 2ec9          goto    main__32
2306 1e23 2e9e          goto    main__29
2307                    ; line_number = 103
2308                    ; case 0
2309   1e24 :   main__28:
2310                    ; # 00xx xxxx:
2311                    ; line_number = 105
2312                    ;  switch (command >> 3) & 7 start
2313                    ;info   105, 7716
2314                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2315                    ; line_number = 106
2316                    ; case_maximum 7
2317 1e24 301e          movlw   main__15>>8
2318 1e25 008a          movwf   __pclath
2319 00000031 = main__16 equ globals___0+17
2320 1e26 0c2e          rrf     main__command,w
2321 1e27 00b1          movwf   main__16
2322 1e28 0cb1          rrf     main__16,f
2323 1e29 0c31          rrf     main__16,w
2324 1e2a 3907          andlw   7
2325                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2326 1e2b 3e2d          addlw   main__15
2327 1e2c 0082          movwf   __pcl
2328                    ; page_group 8
2329   1e2d :   main__15:
2330 1e2d 2e35          goto    main__14
2331 1e2e 2e9d          goto    main__17
2332 1e2f 2e9d          goto    main__17
2333 1e30 2e9d          goto    main__17
2334 1e31 2e9d          goto    main__17
2335 1e32 2e9d          goto    main__17
2336 1e33 2e9d          goto    main__17
2337 1e34 2e9d          goto    main__17
2338                    ; line_number = 107
2339                    ; case 0
2340   1e35 :   main__14:
2341                    ; #: 0000 0xxx:
2342                    ; line_number = 109
2343                    ;  switch command & 7 start
2344                    ;info   109, 7733
2345                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2346                    ; line_number = 110
2347                    ; case_maximum 7
2348 1e35 301e          movlw   main__12>>8
2349 1e36 008a          movwf   __pclath
2350 1e37 3007          movlw   7
2351 1e38 052e          andwf   main__command,w
2352                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2353 1e39 3e3b          addlw   main__12
2354 1e3a 0082          movwf   __pcl
2355                    ; page_group 8
2356   1e3b :   main__12:
2357 1e3b 2e43          goto    main__6
2358 1e3c 2e48          goto    main__7
2359 1e3d 2e68          goto    main__8
2360 1e3e 2e93          goto    main__9
2361 1e3f 2e98          goto    main__10
2362 1e40 2e9b          goto    main__11
2363 1e41 2e9d          goto    main__13
2364 1e42 2e9d          goto    main__13
2365                    ; line_number = 111
2366                    ; case 0
2367   1e43 :   main__6:
2368                    ; #: 0000 0000 (Set Memory Address):
2369                    ; line_number = 113
2370                    ;  address_high := rb2bus_byte_get()
2371                    ;info   113, 7747
2372 1e43 2768          call    rb2bus_byte_get
2373 1e44 00ac          movwf   main__address_high
2374                    ; line_number = 114
2375                    ;  address_low := rb2bus_byte_get()
2376                    ;info   114, 7749
2377 1e45 2768          call    rb2bus_byte_get
2378 1e46 00ad          movwf   main__address_low
2379 1e47 2e9d          goto    main__13
2380                    ; line_number = 115
2381                    ; case 1
2382   1e48 :   main__7:
2383                    ; #: 0000 0001 (Read Program Memory):
2384                    ; line_number = 117
2385                    ;  count := rb2bus_byte_get()
2386                    ;info   117, 7752
2387 1e48 2768          call    rb2bus_byte_get
2388 1e49 00af          movwf   main__count
2389            
2390                    ; line_number = 119
2391                    ;  loop_exactly count start
2392                    ;info   119, 7754
2393 00000031 = main__4 equ globals___0+17
2394 1e4a 082f          movf    main__count,w
2395 1e4b 00b1          movwf   main__4
2396   1e4c :   main__5:
2397                    ; line_number = 120
2398                    ; _eeadrh := address_high
2399                    ;info   120, 7756
2400 1e4c 082c          movf    main__address_high,w
2401 1e4d 1703          bsf     __rp1___byte, __rp1___bit
2402 1e4e 008f          movwf   _eeadrh
2403                    ; line_number = 121
2404                    ;  _eeadr := address_low
2405                    ;info   121, 7759
2406 1e4f 1303          bcf     __rp1___byte, __rp1___bit
2407 1e50 082d          movf    main__address_low,w
2408 1e51 1703          bsf     __rp1___byte, __rp1___bit
2409 1e52 008d          movwf   _eeadr
2410            
2411                    ; # Read the word:
2412                    ; line_number = 124
2413                    ;  _eepgd := _true
2414                    ;info   124, 7763
2415 1e53 1683          bsf     __rp0___byte, __rp0___bit
2416 1e54 178c          bsf     _eepgd___byte, _eepgd___bit
2417                    ; line_number = 125
2418                    ;  _rd := _true
2419                    ;info   125, 7765
2420 1e55 140c          bsf     _rd___byte, _rd___bit
2421            
2422                    ; # The next two instructions are *ignored*:
2423                    ; line_number = 128
2424                    ;  assemble
2425                    ;info   128, 7766
2426                    ; line_number = 129
2427                    ;info   129, 7766
2428 1e56 0000          nop     
2429                    ; Statement 0 of 3 delay = 9
2430                    ; line_number = 130
2431                    ;info   130, 7767
2432 1e57 0000          nop     
2433                    ; Statement 1 of 3 delay = 10
2434            
2435                    ; Statement 2 of 3 delay = 10
2436                    ; # Ship the results back:
2437                    ; line_number = 133
2438                    ;  call rb2bus_byte_put(_eedath)
2439                    ;info   133, 7768
2440 1e58 1283          bcf     __rp0___byte, __rp0___bit
2441 1e59 080e          movf    _eedath,w
2442 1e5a 1303          bcf     __rp1___byte, __rp1___bit
2443 1e5b 278a          call    rb2bus_byte_put
2444                    ; line_number = 134
2445                    ;  call rb2bus_byte_put(_eedata)
2446                    ;info   134, 7772
2447 1e5c 1703          bsf     __rp1___byte, __rp1___bit
2448 1e5d 080c          movf    _eedata,w
2449 1e5e 1303          bcf     __rp1___byte, __rp1___bit
2450 1e5f 278a          call    rb2bus_byte_put
2451            
2452                    ; # Increment the address
2453                    ; line_number = 137
2454                    ;  address_low := address_low + 1
2455                    ;info   137, 7776
2456 1e60 0aad          incf    main__address_low,f
2457                    ; line_number = 138
2458                    ;  if _z start
2459                    ;info   138, 7777
2460                    ; =>bit_code_emit@symbol(): sym=_z
2461                    ; 1TEST: Single test with code in skip slot
2462 1e61 1903          btfsc   _z___byte, _z___bit
2463                    ; line_number = 139
2464                    ; address_high := address_high + 1
2465                    ;info   139, 7778
2466 1e62 0aac          incf    main__address_high,f
2467                    ; Recombine size1 = 0 || size2 = 0
2468                    ; line_number = 138
2469                    ;  if _z done
2470                    ; line_number = 119
2471                    ;  loop_exactly count wrap-up
2472 1e63 0bb1          decfsz  main__4,f
2473 1e64 2e4c          goto    main__5
2474                    ; line_number = 119
2475                    ;  loop_exactly count done
2476                    ; # Let them know we are done:
2477                    ; line_number = 141
2478                    ;  call rb2bus_byte_put(0x5c)
2479                    ;info   141, 7781
2480 1e65 305c          movlw   92
2481 1e66 278a          call    rb2bus_byte_put
2482 1e67 2e9d          goto    main__13
2483                    ; line_number = 142
2484                    ; case 2
2485   1e68 :   main__8:
2486                    ; # 0000 0010 (Set Program Memory):
2487                    ; line_number = 144
2488                    ;  _eeadrh := address_high
2489                    ;info   144, 7784
2490 1e68 082c          movf    main__address_high,w
2491 1e69 1703          bsf     __rp1___byte, __rp1___bit
2492 1e6a 008f          movwf   _eeadrh
2493                    ; line_number = 145
2494                    ;  _eeadr := address_low
2495                    ;info   145, 7787
2496 1e6b 1303          bcf     __rp1___byte, __rp1___bit
2497 1e6c 082d          movf    main__address_low,w
2498 1e6d 1703          bsf     __rp1___byte, __rp1___bit
2499 1e6e 008d          movwf   _eeadr
2500                    ; line_number = 146
2501                    ;  _eedath := rb2bus_byte_get()
2502                    ;info   146, 7791
2503 1e6f 1303          bcf     __rp1___byte, __rp1___bit
2504 1e70 2768          call    rb2bus_byte_get
2505 1e71 1703          bsf     __rp1___byte, __rp1___bit
2506 1e72 008e          movwf   _eedath
2507                    ; line_number = 147
2508                    ;  _eedata := rb2bus_byte_get()
2509                    ;info   147, 7795
2510 1e73 1303          bcf     __rp1___byte, __rp1___bit
2511 1e74 2768          call    rb2bus_byte_get
2512 1e75 1703          bsf     __rp1___byte, __rp1___bit
2513 1e76 008c          movwf   _eedata
2514            
2515                    ; #_eeadrh := 0
2516                    ; #_eeadr := 0x80
2517                    ; #_eedath := 0x12
2518                    ; #_eedata := 0x34
2519            
2520                    ; line_number = 154
2521                    ;  _eecon1 := 0
2522                    ;info   154, 7799
2523 1e77 1683          bsf     __rp0___byte, __rp0___bit
2524 1e78 018c          clrf    _eecon1
2525                    ; line_number = 155
2526                    ;  _eepgd := _true
2527                    ;info   155, 7801
2528 1e79 178c          bsf     _eepgd___byte, _eepgd___bit
2529                    ; line_number = 156
2530                    ;  _wren := _true
2531                    ;info   156, 7802
2532 1e7a 150c          bsf     _wren___byte, _wren___bit
2533            
2534                    ; # Make sure that WRT is on in configuration word:
2535            
2536                    ; # This code must not be interrupted:
2537                    ; line_number = 161
2538                    ;  _gie := _false
2539                    ;info   161, 7803
2540 1e7b 138b          bcf     _gie___byte, _gie___bit
2541                    ; line_number = 162
2542                    ;  _eecon2 := 0x55
2543                    ;info   162, 7804
2544 1e7c 3055          movlw   85
2545 1e7d 008d          movwf   _eecon2
2546                    ; line_number = 163
2547                    ;  _eecon2 := 0xaa
2548                    ;info   163, 7806
2549 1e7e 30aa          movlw   170
2550 1e7f 008d          movwf   _eecon2
2551                    ; line_number = 164
2552                    ;  _wr := _true
2553                    ;info   164, 7808
2554 1e80 148c          bsf     _wr___byte, _wr___bit
2555                    ; line_number = 165
2556                    ;  assemble
2557                    ;info   165, 7809
2558                    ; line_number = 166
2559                    ;info   166, 7809
2560 1e81 0000          nop     
2561                    ; line_number = 167
2562                    ;info   167, 7810
2563 1e82 0000          nop     
2564                    ; line_number = 168
2565                    ; _wren := _false
2566                    ;info   168, 7811
2567 1e83 110c          bcf     _wren___byte, _wren___bit
2568            
2569                    ; # Increment the address
2570                    ; line_number = 171
2571                    ;  address_low := address_low + 1
2572                    ;info   171, 7812
2573 1e84 1283          bcf     __rp0___byte, __rp0___bit
2574 1e85 1303          bcf     __rp1___byte, __rp1___bit
2575 1e86 0aad          incf    main__address_low,f
2576                    ; line_number = 172
2577                    ;  if _z start
2578                    ;info   172, 7815
2579                    ; =>bit_code_emit@symbol(): sym=_z
2580                    ; 1TEST: Single test with code in skip slot
2581 1e87 1903          btfsc   _z___byte, _z___bit
2582                    ; line_number = 173
2583                    ; address_high := address_high + 1
2584                    ;info   173, 7816
2585 1e88 0aac          incf    main__address_high,f
2586                    ; Recombine size1 = 0 || size2 = 0
2587                    ; line_number = 172
2588                    ;  if _z done
2589                    ; line_number = 174
2590                    ; if _wrerr start
2591                    ;info   174, 7817
2592                    ; =>bit_code_emit@symbol(): sym=_wrerr
2593                    ; No 1TEST: true.size=1 false.size=1
2594                    ; 2TEST: two tests with code in both delay slots
2595 1e89 1683          bsf     __rp0___byte, __rp0___bit
2596 1e8a 1703          bsf     __rp1___byte, __rp1___bit
2597 1e8b 198c          btfsc   _wrerr___byte, _wrerr___bit
2598                    ; line_number = 175
2599                    ; call rb2bus_byte_put(0x5b)
2600                    ;info   175, 7820
2601 1e8c 305b          movlw   91
2602 1e8d 1d8c          btfss   _wrerr___byte, _wrerr___bit
2603                    ; line_number = 177
2604                    ; call rb2bus_byte_put(0x5a)
2605                    ;info   177, 7822
2606 1e8e 305a          movlw   90
2607 1e8f 1283          bcf     __rp0___byte, __rp0___bit
2608 1e90 1303          bcf     __rp1___byte, __rp1___bit
2609 1e91 278a          call    rb2bus_byte_put
2610                    ; line_number = 174
2611                    ; if _wrerr done
2612 1e92 2e9d          goto    main__13
2613                    ; line_number = 178
2614                    ; case 3
2615   1e93 :   main__9:
2616                    ; #: 0000 0011 (Execute):
2617                    ; line_number = 180
2618                    ;  _pclath := address_high
2619                    ;info   180, 7827
2620 1e93 082c          movf    main__address_high,w
2621 1e94 008a          movwf   _pclath
2622                    ; line_number = 181
2623                    ;  _pcl := address_low
2624                    ;info   181, 7829
2625 1e95 082d          movf    main__address_low,w
2626 1e96 0082          movwf   _pcl
2627 1e97 2e9d          goto    main__13
2628                    ; line_number = 182
2629                    ; case 4
2630   1e98 :   main__10:
2631                    ; #: 0000 0100 (Address Low Read):
2632                    ; line_number = 184
2633                    ;  call rb2bus_byte_put(address_low)
2634                    ;info   184, 7832
2635 1e98 082d          movf    main__address_low,w
2636 1e99 278a          call    rb2bus_byte_put
2637 1e9a 2e9d          goto    main__13
2638                    ; line_number = 185
2639                    ; case 5
2640   1e9b :   main__11:
2641                    ; #: 0000 0101 (Address High Read):
2642                    ; line_number = 187
2643                    ;  call rb2bus_byte_put(address_high)
2644                    ;info   187, 7835
2645 1e9b 082c          movf    main__address_high,w
2646 1e9c 278a          call    rb2bus_byte_put
2647   1e9d :   main__13:
2648                    ; line_number = 109
2649                    ;  switch command & 7 done
2650   1e9d :   main__17:
2651                    ; line_number = 105
2652                    ;  switch (command >> 3) & 7 done
2653 1e9d 2ec9          goto    main__32
2654                    ; line_number = 188
2655                    ; case 3
2656   1e9e :   main__29:
2657                    ; # 11xx xxxx:
2658                    ; line_number = 190
2659                    ;  switch (command >> 3) & 7 start
2660                    ;info   190, 7838
2661                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2662 1e9e 301e          movlw   main__25>>8
2663 1e9f 008a          movwf   __pclath
2664 00000031 = main__26 equ globals___0+17
2665 1ea0 0c2e          rrf     main__command,w
2666 1ea1 00b1          movwf   main__26
2667 1ea2 0cb1          rrf     main__26,f
2668 1ea3 0c31          rrf     main__26,w
2669 1ea4 3907          andlw   7
2670                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2671 1ea5 3ea7          addlw   main__25
2672 1ea6 0082          movwf   __pcl
2673                    ; page_group 8
2674   1ea7 :   main__25:
2675 1ea7 2ec9          goto    main__27
2676 1ea8 2ec9          goto    main__27
2677 1ea9 2ec9          goto    main__27
2678 1eaa 2ec9          goto    main__27
2679 1eab 2ec9          goto    main__27
2680 1eac 2ec9          goto    main__27
2681 1ead 2ec9          goto    main__27
2682 1eae 2eaf          goto    main__24
2683                    ; line_number = 191
2684                    ; case 7
2685   1eaf :   main__24:
2686                    ; # 1111 1xxx:
2687                    ; line_number = 193
2688                    ;  switch command & 7 start
2689                    ;info   193, 7855
2690                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2691 1eaf 301e          movlw   main__22>>8
2692 1eb0 008a          movwf   __pclath
2693 1eb1 3007          movlw   7
2694 1eb2 052e          andwf   main__command,w
2695                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2696 1eb3 3eb5          addlw   main__22
2697 1eb4 0082          movwf   __pcl
2698                    ; page_group 8
2699   1eb5 :   main__22:
2700 1eb5 2ec9          goto    main__23
2701 1eb6 2ec9          goto    main__23
2702 1eb7 2ec9          goto    main__23
2703 1eb8 2ec9          goto    main__23
2704 1eb9 2ec9          goto    main__23
2705 1eba 2ebd          goto    main__19
2706 1ebb 2ec6          goto    main__20
2707 1ebc 2ec8          goto    main__21
2708                    ; line_number = 194
2709                    ; case 5
2710   1ebd :   main__19:
2711                    ; # 1111 1101 (Id_next):
2712                    ; line_number = 196
2713                    ;  if id_index < id.size start
2714                    ;info   196, 7869
2715 1ebd 301c          movlw   28
2716 1ebe 0230          subwf   main__id_index,w
2717                    ; =>bit_code_emit@symbol(): sym=__c
2718                    ; No 1TEST: true.size=0 false.size=4
2719                    ; No 2TEST: true.size=0 false.size=4
2720                    ; 1GOTO: Single test with GOTO
2721 1ebf 1803          btfsc   __c___byte, __c___bit
2722 1ec0 2ec5          goto    main__18
2723                    ; line_number = 197
2724                    ; call rb2bus_byte_put(id[id_index])
2725                    ;info   197, 7873
2726 1ec1 0830          movf    main__id_index,w
2727 1ec2 26cb          call    id
2728 1ec3 278a          call    rb2bus_byte_put
2729                    ; line_number = 198
2730                    ;  id_index := id_index + 1
2731                    ;info   198, 7876
2732 1ec4 0ab0          incf    main__id_index,f
2733   1ec5 :   main__18:
2734                    ; Recombine size1 = 0 || size2 = 0
2735                    ; line_number = 196
2736                    ;  if id_index < id.size done
2737 1ec5 2ec9          goto    main__23
2738                    ; line_number = 199
2739                    ; case 6
2740   1ec6 :   main__20:
2741                    ; # 1111 1110 (Id_start):
2742                    ; line_number = 201
2743                    ;  id_index := 0
2744                    ;info   201, 7878
2745 1ec6 01b0          clrf    main__id_index
2746 1ec7 2ec9          goto    main__23
2747                    ; line_number = 202
2748                    ; case 7
2749   1ec8 :   main__21:
2750                    ; # 1111 1111 (Deselect):
2751                    ; line_number = 204
2752                    ;  call rb2bus_deselect()
2753                    ;info   204, 7880
2754 1ec8 2766          call    rb2bus_deselect
2755            
2756   1ec9 :   main__23:
2757                    ; line_number = 193
2758                    ;  switch command & 7 done
2759   1ec9 :   main__27:
2760                    ; line_number = 190
2761                    ;  switch (command >> 3) & 7 done
2762   1ec9 :   main__32:
2763                    ; line_number = 102
2764                    ; switch command >> 6 done
2765                    ; line_number = 95
2766                    ;  loop_forever wrap-up
2767 1ec9 2e10          goto    main__1
2768                    ; line_number = 95
2769                    ;  loop_forever done
2770                    ; delay after procedure statements=non-uniform
2771            
2772            
2773            
2774            
2775                    ; line_number = 206
2776                    ;info   206, 7882
2777                    ; procedure wait
2778   1eca :   wait:
2779                    ; arguments_none
2780                    ; line_number = 208
2781                    ;  returns_nothing
2782            
2783                    ; # This procedure is repeatably called whenever the software
2784                    ; # is waiting for a byte to arrive from the bus.
2785            
2786                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
2787                    ; line_number = 213
2788                    ;  do_nothing
2789                    ;info   213, 7882
2790            
2791                    ; delay after procedure statements=non-uniform
2792                    ; Implied return
2793 1eca 3400          retlw   0
2794            
2795            
2796            
2797            
2798                    ; line_number = 215
2799                    ; string id = "\16,0,28,3,3,14\Controller28-C\7\Gramson" start
2800                    ; id = '\16,0,28,3,3,14\Controller28-C\7\Gramson'
2801   1ecb :   id:
2802                    ; Temporarily save index into FSR
2803 1ecb 0084          movwf   __fsr
2804                    ; Initialize PCLATH to point to this code page
2805 1ecc 301e          movlw   id___base>>8
2806 1ecd 008a          movwf   __pclath
2807                    ; Restore index from FSR
2808 1ece 0804          movf    __fsr,w
2809 1ecf 3ed1          addlw   id___base
2810                    ; Index to the correct return value
2811 1ed0 0082          movwf   __pcl
2812                    ; page_group 28
2813   1ed1 :   id___base:
2814 1ed1 3410          retlw   16
2815 1ed2 3400          retlw   0
2816 1ed3 341c          retlw   28
2817 1ed4 3403          retlw   3
2818 1ed5 3403          retlw   3
2819 1ed6 340e          retlw   14
2820 1ed7 3443          retlw   67
2821 1ed8 346f          retlw   111
2822 1ed9 346e          retlw   110
2823 1eda 3474          retlw   116
2824 1edb 3472          retlw   114
2825 1edc 346f          retlw   111
2826 1edd 346c          retlw   108
2827 1ede 346c          retlw   108
2828 1edf 3465          retlw   101
2829 1ee0 3472          retlw   114
2830 1ee1 3432          retlw   50
2831 1ee2 3438          retlw   56
2832 1ee3 342d          retlw   45
2833 1ee4 3443          retlw   67
2834 1ee5 3407          retlw   7
2835 1ee6 3447          retlw   71
2836 1ee7 3472          retlw   114
2837 1ee8 3461          retlw   97
2838 1ee9 346d          retlw   109
2839 1eea 3473          retlw   115
2840 1eeb 346f          retlw   111
2841 1eec 346e          retlw   110
2842                    ; line_number = 215
2843                    ; string id = "\16,0,28,3,3,14\Controller28-C\7\Gramson" start
2844            
2845            
2846            
2847            
2848            
2849                    ; Appending 8 delayed procedures to code bank 3
2850                    ; buffer = 'rb2bus_pic16f876'
2851                    ; line_number = 28
2852                    ;info   28, 7917
2853                    ; procedure rb2bus_initialize
2854   1eed :   rb2bus_initialize:
2855                    ; Last argument is sitting in W; save into argument variable
2856 1eed 00a2          movwf   rb2bus_initialize__address
2857                    ; delay=4294967295
2858                    ; line_number = 29
2859                    ; argument address byte
2860 00000022 = rb2bus_initialize__address equ globals___0+2
2861                    ; line_number = 30
2862                    ;  returns_nothing
2863            
2864                    ; # This procedure is responsibile for initializing the UART
2865                    ; # connected to the bus.  {address} is the address of this
2866                    ; # slave module.  This code is specific to the PIC16F688.
2867            
2868                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
2869                    ; line_number = 36
2870                    ;  rb2bus_address := address
2871                    ;info   36, 7918
2872 1eee 0822          movf    rb2bus_initialize__address,w
2873 1eef 00a0          movwf   rb2bus_address
2874            
2875                    ; # Warm up the UART:
2876                    ; line_number = 39
2877                    ;  _trisc@7 := _true
2878                    ;info   39, 7920
2879 00000087 = rb2bus_initialize__select__1___byte equ _trisc
2880 00000007 = rb2bus_initialize__select__1___bit equ 7
2881 1ef0 1683          bsf     __rp0___byte, __rp0___bit
2882 1ef1 1787          bsf     rb2bus_initialize__select__1___byte, rb2bus_initialize__select__1___bit
2883                    ; line_number = 40
2884                    ;  _trisc@6 := _true
2885                    ;info   40, 7922
2886 00000087 = rb2bus_initialize__select__2___byte equ _trisc
2887 00000006 = rb2bus_initialize__select__2___bit equ 6
2888 1ef2 1707          bsf     rb2bus_initialize__select__2___byte, rb2bus_initialize__select__2___bit
2889            
2890                    ; # Initialize the {_txsta} register:
2891                    ; line_number = 43
2892                    ;  _txsta := 0
2893                    ;info   43, 7923
2894 1ef3 0198          clrf    _txsta
2895                    ; line_number = 44
2896                    ;  _tx9 := _true
2897                    ;info   44, 7924
2898 1ef4 1718          bsf     _tx9___byte, _tx9___bit
2899                    ; line_number = 45
2900                    ;  _txen := _true
2901                    ;info   45, 7925
2902 1ef5 1698          bsf     _txen___byte, _txen___bit
2903                    ; line_number = 46
2904                    ;  _brgh := _true
2905                    ;info   46, 7926
2906 1ef6 1518          bsf     _brgh___byte, _brgh___bit
2907            
2908                    ; # Initialize the {_rcsta} register:
2909                    ; line_number = 49
2910                    ;  _rcsta := 0
2911                    ;info   49, 7927
2912 1ef7 1283          bcf     __rp0___byte, __rp0___bit
2913 1ef8 0198          clrf    _rcsta
2914                    ; line_number = 50
2915                    ;  _spen := _true
2916                    ;info   50, 7929
2917 1ef9 1798          bsf     _spen___byte, _spen___bit
2918                    ; line_number = 51
2919                    ;  _rx9 := _true
2920                    ;info   51, 7930
2921 1efa 1718          bsf     _rx9___byte, _rx9___bit
2922                    ; line_number = 52
2923                    ;  _cren := _true
2924                    ;info   52, 7931
2925 1efb 1618          bsf     _cren___byte, _cren___bit
2926                    ; #_adden := _true
2927                    ; line_number = 54
2928                    ;  _adden := _false
2929                    ;info   54, 7932
2930 1efc 1198          bcf     _adden___byte, _adden___bit
2931            
2932                    ; # Set up the baud rate generator:
2933                    ; line_number = 57
2934                    ;  _spbrg := spbrg_500k
2935                    ;info   57, 7933
2936 1efd 3001          movlw   1
2937 1efe 1683          bsf     __rp0___byte, __rp0___bit
2938 1eff 0099          movwf   _spbrg
2939            
2940                    ; line_number = 59
2941                    ;  rb2bus_selected := _false
2942                    ;info   59, 7936
2943 1f00 1283          bcf     __rp0___byte, __rp0___bit
2944 1f01 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
2945                    ; line_number = 60
2946                    ;  rb2bus_error := _true
2947                    ;info   60, 7938
2948 1f02 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2949                    ; line_number = 61
2950                    ;  rb2bus_index := 0
2951                    ;info   61, 7939
2952 1f03 01a1          clrf    rb2bus_index
2953            
2954            
2955                    ; delay after procedure statements=non-uniform
2956                    ; Implied return
2957 1f04 3400          retlw   0
2958            
2959            
2960            
2961            
2962                    ; line_number = 66
2963                    ;info   66, 7941
2964                    ; procedure rb2bus_eedata_read
2965   1f05 :   rb2bus_eedata_read:
2966                    ; arguments_none
2967                    ; line_number = 68
2968                    ;  returns byte
2969            
2970                    ; # This procedure will return the address stored in EEData.  If
2971                    ; # there is no data, 0 is returned.
2972            
2973                    ; line_number = 73
2974                    ;  local temp1 byte
2975 00000023 = rb2bus_eedata_read__temp1 equ globals___0+3
2976                    ; line_number = 74
2977                    ;  local temp2 byte
2978 00000024 = rb2bus_eedata_read__temp2 equ globals___0+4
2979            
2980                    ; # Read the first byte (the address):
2981                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
2982                    ; line_number = 77
2983                    ;  _eecon1 := 0
2984                    ;info   77, 7941
2985 1f05 1683          bsf     __rp0___byte, __rp0___bit
2986 1f06 1703          bsf     __rp1___byte, __rp1___bit
2987 1f07 018c          clrf    _eecon1
2988                    ; line_number = 78
2989                    ;  _eeadr := rb2bus_eedata_address
2990                    ;info   78, 7944
2991 1f08 30fe          movlw   254
2992 1f09 1283          bcf     __rp0___byte, __rp0___bit
2993 1f0a 008d          movwf   _eeadr
2994                    ; line_number = 79
2995                    ;  _rd := _true
2996                    ;info   79, 7947
2997 1f0b 1683          bsf     __rp0___byte, __rp0___bit
2998 1f0c 140c          bsf     _rd___byte, _rd___bit
2999                    ; line_number = 80
3000                    ;  temp1 := _eedata
3001                    ;info   80, 7949
3002 1f0d 1283          bcf     __rp0___byte, __rp0___bit
3003 1f0e 080c          movf    _eedata,w
3004 1f0f 1303          bcf     __rp1___byte, __rp1___bit
3005 1f10 00a3          movwf   rb2bus_eedata_read__temp1
3006            
3007                    ; # Read the second byte (the 1'z complement)
3008                    ; line_number = 83
3009                    ;  _eeadr := _eeadr + 1
3010                    ;info   83, 7953
3011 1f11 1703          bsf     __rp1___byte, __rp1___bit
3012 1f12 0a8d          incf    _eeadr,f
3013                    ; line_number = 84
3014                    ;  _rd := _true
3015                    ;info   84, 7955
3016 1f13 1683          bsf     __rp0___byte, __rp0___bit
3017 1f14 140c          bsf     _rd___byte, _rd___bit
3018                    ; line_number = 85
3019                    ;  temp2 := _eedata
3020                    ;info   85, 7957
3021 1f15 1283          bcf     __rp0___byte, __rp0___bit
3022 1f16 080c          movf    _eedata,w
3023 1f17 1303          bcf     __rp1___byte, __rp1___bit
3024 1f18 00a4          movwf   rb2bus_eedata_read__temp2
3025            
3026                    ; # If they are 1's complement of one another, they are valid:
3027                    ; line_number = 88
3028                    ;  if temp1 = (0xff ^ temp2) start
3029                    ;info   88, 7961
3030                    ; Left minus Right
3031 1f19 0924          comf    rb2bus_eedata_read__temp2,w
3032 1f1a 0223          subwf   rb2bus_eedata_read__temp1,w
3033                    ; =>bit_code_emit@symbol(): sym=__z
3034                    ; No 1TEST: true.size=2 false.size=0
3035                    ; No 2TEST: true.size=2 false.size=0
3036                    ; 1GOTO: Single test with GOTO
3037 1f1b 1d03          btfss   __z___byte, __z___bit
3038 1f1c 2f1f          goto    rb2bus_eedata_read__1
3039                    ; # Return the valid address:
3040                    ; line_number = 90
3041                    ;  return temp1 start
3042                    ; line_number = 90
3043                    ;info   90, 7965
3044 1f1d 0823          movf    rb2bus_eedata_read__temp1,w
3045 1f1e 0008          return  
3046                    ; line_number = 90
3047                    ;  return temp1 done
3048            
3049                    ; Recombine size1 = 0 || size2 = 0
3050   1f1f :   rb2bus_eedata_read__1:
3051                    ; line_number = 88
3052                    ;  if temp1 = (0xff ^ temp2) done
3053                    ; # They are not 1's complement, so return 0 as an error:
3054                    ; line_number = 93
3055                    ;  return 0 start
3056                    ; line_number = 93
3057                    ;info   93, 7967
3058 1f1f 3400          retlw   0
3059                    ; line_number = 93
3060                    ;  return 0 done
3061            
3062            
3063                    ; delay after procedure statements=non-uniform
3064            
3065            
3066            
3067            
3068                    ; line_number = 96
3069                    ;info   96, 7968
3070                    ; procedure rb2bus_eedata_write
3071   1f20 :   rb2bus_eedata_write:
3072                    ; Last argument is sitting in W; save into argument variable
3073 1f20 00a5          movwf   rb2bus_eedata_write__address
3074                    ; delay=4294967295
3075                    ; line_number = 97
3076                    ; argument address byte
3077 00000025 = rb2bus_eedata_write__address equ globals___0+5
3078                    ; line_number = 98
3079                    ;  returns_nothing
3080            
3081                    ; # This procedure will write {address} into the EEData.  The
3082                    ; # microcontroll pauses while the EEData is written.
3083            
3084                    ; # Clear out the {_eecon1} register
3085                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
3086                    ; line_number = 104
3087                    ;  _eecon1 := 0
3088                    ;info   104, 7969
3089 1f21 1683          bsf     __rp0___byte, __rp0___bit
3090 1f22 1703          bsf     __rp1___byte, __rp1___bit
3091 1f23 018c          clrf    _eecon1
3092                    ; line_number = 105
3093                    ;  _eeadr := rb2bus_eedata_address
3094                    ;info   105, 7972
3095 1f24 30fe          movlw   254
3096 1f25 1283          bcf     __rp0___byte, __rp0___bit
3097 1f26 008d          movwf   _eeadr
3098                    ; line_number = 106
3099                    ;  _eedata := address
3100                    ;info   106, 7975
3101 1f27 1303          bcf     __rp1___byte, __rp1___bit
3102 1f28 0825          movf    rb2bus_eedata_write__address,w
3103 1f29 1703          bsf     __rp1___byte, __rp1___bit
3104 1f2a 008c          movwf   _eedata
3105            
3106                    ; # Write 2 bytes ({address} followed by {address}^0xff):
3107                    ; line_number = 109
3108                    ;  loop_exactly 2 start
3109                    ;info   109, 7979
3110 00000032 = rb2bus_eedata_write__1 equ globals___0+18
3111 1f2b 3002          movlw   2
3112 1f2c 1303          bcf     __rp1___byte, __rp1___bit
3113 1f2d 00b2          movwf   rb2bus_eedata_write__1
3114   1f2e :   rb2bus_eedata_write__2:
3115                    ; # Set the data to write:
3116            
3117                    ; # Set up the for the write:
3118                    ; line_number = 113
3119                    ;  _wren := _true
3120                    ;info   113, 7982
3121 1f2e 1683          bsf     __rp0___byte, __rp0___bit
3122 1f2f 1703          bsf     __rp1___byte, __rp1___bit
3123 1f30 150c          bsf     _wren___byte, _wren___bit
3124                    ; line_number = 114
3125                    ;  _gie := _false
3126                    ;info   114, 7985
3127 1f31 138b          bcf     _gie___byte, _gie___bit
3128                    ; line_number = 115
3129                    ;  _eecon2 := 0x55
3130                    ;info   115, 7986
3131 1f32 3055          movlw   85
3132 1f33 008d          movwf   _eecon2
3133                    ; line_number = 116
3134                    ;  _eecon2 := 0xaa
3135                    ;info   116, 7988
3136 1f34 30aa          movlw   170
3137 1f35 008d          movwf   _eecon2
3138                    ; # Start the write:
3139                    ; line_number = 118
3140                    ;  _wr := _true
3141                    ;info   118, 7990
3142 1f36 148c          bsf     _wr___byte, _wr___bit
3143            
3144                    ; # Wait for write to complete:
3145                    ; line_number = 121
3146                    ;  while _wr start
3147   1f37 :   rb2bus_eedata_write__3:
3148                    ;info   121, 7991
3149                    ; =>bit_code_emit@symbol(): sym=_wr
3150                    ; 1TEST: Single test with code in skip slot
3151 1f37 188c          btfsc   _wr___byte, _wr___bit
3152                    ; line_number = 122
3153                    ; do_nothing
3154                    ;info   122, 7992
3155            
3156 1f38 2f37          goto    rb2bus_eedata_write__3
3157                    ; Recombine size1 = 0 || size2 = 0
3158                    ; line_number = 121
3159                    ;  while _wr done
3160                    ; # Disable writing:
3161                    ; line_number = 125
3162                    ;  _wren := _false
3163                    ;info   125, 7993
3164 1f39 110c          bcf     _wren___byte, _wren___bit
3165            
3166                    ; # Prepare the second byte of data:
3167                    ; line_number = 128
3168                    ;  _eeadr := _eeadr + 1
3169                    ;info   128, 7994
3170 1f3a 1283          bcf     __rp0___byte, __rp0___bit
3171 1f3b 0a8d          incf    _eeadr,f
3172                    ; line_number = 129
3173                    ;  _eedata := address ^ 0xff
3174                    ;info   129, 7996
3175 1f3c 1303          bcf     __rp1___byte, __rp1___bit
3176 1f3d 0925          comf    rb2bus_eedata_write__address,w
3177 1f3e 1703          bsf     __rp1___byte, __rp1___bit
3178 1f3f 008c          movwf   _eedata
3179            
3180            
3181 1f40 1303          bcf     __rp1___byte, __rp1___bit
3182                    ; line_number = 109
3183                    ;  loop_exactly 2 wrap-up
3184 1f41 0bb2          decfsz  rb2bus_eedata_write__1,f
3185 1f42 2f2e          goto    rb2bus_eedata_write__2
3186                    ; line_number = 109
3187                    ;  loop_exactly 2 done
3188                    ; # Disable everything:
3189                    ; line_number = 133
3190                    ;  _eecon1 := 0
3191                    ;info   133, 8003
3192 1f43 1683          bsf     __rp0___byte, __rp0___bit
3193 1f44 1703          bsf     __rp1___byte, __rp1___bit
3194 1f45 018c          clrf    _eecon1
3195            
3196                    ; delay after procedure statements=non-uniform
3197 1f46 1283          bcf     __rp0___byte, __rp0___bit
3198 1f47 1303          bcf     __rp1___byte, __rp1___bit
3199                    ; Implied return
3200 1f48 3400          retlw   0
3201            
3202            
3203            
3204            
3205                    ; buffer = 'rb2bus'
3206                    ; line_number = 57
3207                    ;info   57, 8009
3208                    ; procedure rb2bus_select_wait
3209   1f49 :   rb2bus_select_wait:
3210                    ; arguments_none
3211                    ; line_number = 59
3212                    ;  returns_nothing
3213            
3214                    ; # This procedure will in an infinite loop until the select
3215                    ; # address matches {rb2bus_address}.  {rb2bus_address} is
3216                    ; # typically set in the {rb2bus_initialize} procedure.
3217                    ; #
3218                    ; # This module will repeatably call the {wait} procedure until
3219                    ; # it is properly selected.
3220            
3221                    ; line_number = 68
3222                    ;  local value byte
3223 00000026 = rb2bus_select_wait__value equ globals___0+6
3224                    ; line_number = 69
3225                    ;  local address_bit bit
3226 0000006f = rb2bus_select_wait__address_bit___byte equ globals___0+79
3227 00000002 = rb2bus_select_wait__address_bit___bit equ 2
3228            
3229                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
3230                    ; line_number = 71
3231                    ;  rb2bus_error := _false
3232                    ;info   71, 8009
3233 1f49 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
3234                    ; line_number = 72
3235                    ;  while !rb2bus_selected start
3236   1f4a :   rb2bus_select_wait__1:
3237                    ;info   72, 8010
3238                    ; =>bit_code_emit@symbol(): sym=rb2bus_selected
3239                    ; No 1TEST: true.size=0 false.size=25
3240                    ; No 2TEST: true.size=0 false.size=25
3241                    ; 1GOTO: Single test with GOTO
3242 1f4a 186f          btfsc   rb2bus_selected___byte, rb2bus_selected___bit
3243 1f4b 2f65          goto    rb2bus_select_wait__6
3244                    ; line_number = 73
3245                    ; _adden := _true
3246                    ;info   73, 8012
3247 1f4c 1598          bsf     _adden___byte, _adden___bit
3248                    ; # Wait for a byte to arrive.
3249                    ; line_number = 75
3250                    ;  while !_rcif start
3251   1f4d :   rb2bus_select_wait__2:
3252                    ;info   75, 8013
3253                    ; =>bit_code_emit@symbol(): sym=_rcif
3254                    ; No 1TEST: true.size=0 false.size=2
3255                    ; No 2TEST: true.size=0 false.size=2
3256                    ; 1GOTO: Single test with GOTO
3257 1f4d 1a8c          btfsc   _rcif___byte, _rcif___bit
3258 1f4e 2f51          goto    rb2bus_select_wait__3
3259                    ; line_number = 76
3260                    ; call wait()
3261                    ;info   76, 8015
3262 1f4f 26ca          call    wait
3263            
3264 1f50 2f4d          goto    rb2bus_select_wait__2
3265   1f51 :   rb2bus_select_wait__3:
3266                    ; Recombine size1 = 0 || size2 = 0
3267                    ; line_number = 75
3268                    ;  while !_rcif done
3269                    ; # Capture the received value:
3270                    ; line_number = 79
3271                    ;  address_bit := _false
3272                    ;info   79, 8017
3273 1f51 116f          bcf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3274                    ; line_number = 80
3275                    ;  if _rx9d start
3276                    ;info   80, 8018
3277                    ; =>bit_code_emit@symbol(): sym=_rx9d
3278                    ; 1TEST: Single test with code in skip slot
3279 1f52 1818          btfsc   _rx9d___byte, _rx9d___bit
3280                    ; line_number = 81
3281                    ; address_bit := _true
3282                    ;info   81, 8019
3283 1f53 156f          bsf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3284                    ; Recombine size1 = 0 || size2 = 0
3285                    ; line_number = 80
3286                    ;  if _rx9d done
3287                    ; line_number = 82
3288                    ; value := _rcreg
3289                    ;info   82, 8020
3290 1f54 081a          movf    _rcreg,w
3291 1f55 00a6          movwf   rb2bus_select_wait__value
3292            
3293                    ; # Clear any UART errors by toggling {_cren}:
3294                    ; line_number = 85
3295                    ;  if _oerr start
3296                    ;info   85, 8022
3297                    ; =>bit_code_emit@symbol(): sym=_oerr
3298                    ; 1TEST: Single test with code in skip slot
3299 1f56 1898          btfsc   _oerr___byte, _oerr___bit
3300                    ; line_number = 86
3301                    ; _cren := _false
3302                    ;info   86, 8023
3303 1f57 1218          bcf     _cren___byte, _cren___bit
3304                    ; Recombine size1 = 0 || size2 = 0
3305                    ; line_number = 85
3306                    ;  if _oerr done
3307                    ; line_number = 87
3308                    ; if _ferr start
3309                    ;info   87, 8024
3310                    ; =>bit_code_emit@symbol(): sym=_ferr
3311                    ; 1TEST: Single test with code in skip slot
3312 1f58 1918          btfsc   _ferr___byte, _ferr___bit
3313                    ; line_number = 88
3314                    ; _cren := _false
3315                    ;info   88, 8025
3316 1f59 1218          bcf     _cren___byte, _cren___bit
3317                    ; Recombine size1 = 0 || size2 = 0
3318                    ; line_number = 87
3319                    ; if _ferr done
3320                    ; line_number = 89
3321                    ; _cren := _true
3322                    ;info   89, 8026
3323 1f5a 1618          bsf     _cren___byte, _cren___bit
3324            
3325                    ; line_number = 91
3326                    ;  if address_bit start
3327                    ;info   91, 8027
3328                    ; =>bit_code_emit@symbol(): sym=rb2bus_select_wait__address_bit
3329                    ; No 1TEST: true.size=7 false.size=0
3330                    ; No 2TEST: true.size=7 false.size=0
3331                    ; 1GOTO: Single test with GOTO
3332 1f5b 1d6f          btfss   rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3333 1f5c 2f64          goto    rb2bus_select_wait__5
3334                    ; line_number = 92
3335                    ; if value = rb2bus_address start
3336                    ;info   92, 8029
3337                    ; Left minus Right
3338 1f5d 0820          movf    rb2bus_address,w
3339 1f5e 0226          subwf   rb2bus_select_wait__value,w
3340                    ; =>bit_code_emit@symbol(): sym=__z
3341                    ; No 1TEST: true.size=3 false.size=0
3342                    ; No 2TEST: true.size=3 false.size=0
3343                    ; 1GOTO: Single test with GOTO
3344 1f5f 1d03          btfss   __z___byte, __z___bit
3345 1f60 2f64          goto    rb2bus_select_wait__4
3346                    ; line_number = 93
3347                    ; rb2bus_selected := _true
3348                    ;info   93, 8033
3349 1f61 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
3350                    ; line_number = 94
3351                    ;  call rb2bus_byte_put(rb2_ok)
3352                    ;info   94, 8034
3353 1f62 30a5          movlw   165
3354 1f63 278a          call    rb2bus_byte_put
3355            
3356            
3357                    ; Recombine size1 = 0 || size2 = 0
3358   1f64 :   rb2bus_select_wait__4:
3359                    ; line_number = 92
3360                    ; if value = rb2bus_address done
3361                    ; Recombine size1 = 0 || size2 = 0
3362   1f64 :   rb2bus_select_wait__5:
3363                    ; line_number = 91
3364                    ;  if address_bit done
3365 1f64 2f4a          goto    rb2bus_select_wait__1
3366   1f65 :   rb2bus_select_wait__6:
3367                    ; Recombine size1 = 0 || size2 = 0
3368                    ; line_number = 72
3369                    ;  while !rb2bus_selected done
3370                    ; delay after procedure statements=non-uniform
3371                    ; Implied return
3372 1f65 3400          retlw   0
3373            
3374            
3375            
3376            
3377                    ; line_number = 97
3378                    ;info   97, 8038
3379                    ; procedure rb2bus_deselect
3380   1f66 :   rb2bus_deselect:
3381                    ; arguments_none
3382                    ; line_number = 99
3383                    ;  returns_nothing
3384            
3385                    ; # This procedure forces this module into the deselected state until
3386                    ; # it is reselected by some master module on the bus.
3387            
3388                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
3389                    ; line_number = 104
3390                    ;  rb2bus_selected := _false
3391                    ;info   104, 8038
3392 1f66 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3393            
3394            
3395                    ; delay after procedure statements=non-uniform
3396                    ; Implied return
3397 1f67 3400          retlw   0
3398            
3399            
3400            
3401            
3402                    ; line_number = 107
3403                    ;info   107, 8040
3404                    ; procedure rb2bus_byte_get
3405   1f68 :   rb2bus_byte_get:
3406                    ; arguments_none
3407                    ; line_number = 109
3408                    ;  returns byte
3409            
3410                    ; # This procedure will return the next byte received from the bus.
3411                    ; # The address (9th) bit is stored in the global {is_address}.
3412                    ; #
3413                    ; # If {rb2bus_error} is set, 0 is returned.  Otherwise, the {wait}
3414                    ; # procedure is repeatably called until a command byte is successfully
3415                    ; # received.  If an module select byte comes in, we enter a bus
3416                    ; # error condition by setting {rb2bus_error} and returning 0.
3417            
3418                    ; line_number = 119
3419                    ;  local value byte
3420 00000027 = rb2bus_byte_get__value equ globals___0+7
3421                    ; line_number = 120
3422                    ;  local address_bit bit
3423 0000006f = rb2bus_byte_get__address_bit___byte equ globals___0+79
3424 00000003 = rb2bus_byte_get__address_bit___bit equ 3
3425            
3426                    ; # Return 0 in a bus flush condition to get us back to {rb2bus_select_wait}:
3427                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
3428                    ; line_number = 123
3429                    ;  if rb2bus_error start
3430                    ;info   123, 8040
3431                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
3432                    ; 1TEST: Single test with code in skip slot
3433 1f68 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
3434                    ; line_number = 124
3435                    ; return 0 start
3436                    ; line_number = 124
3437                    ;info   124, 8041
3438 1f69 3400          retlw   0
3439                    ; line_number = 124
3440                    ; return 0 done
3441            
3442                    ; Recombine size1 = 0 || size2 = 0
3443                    ; line_number = 123
3444                    ;  if rb2bus_error done
3445                    ; # Wait for a byte to arrive.
3446                    ; line_number = 127
3447                    ;  _adden := _false
3448                    ;info   127, 8042
3449 1f6a 1198          bcf     _adden___byte, _adden___bit
3450                    ; line_number = 128
3451                    ;  while !_rcif start
3452   1f6b :   rb2bus_byte_get__1:
3453                    ;info   128, 8043
3454                    ; =>bit_code_emit@symbol(): sym=_rcif
3455                    ; No 1TEST: true.size=0 false.size=2
3456                    ; No 2TEST: true.size=0 false.size=2
3457                    ; 1GOTO: Single test with GOTO
3458 1f6b 1a8c          btfsc   _rcif___byte, _rcif___bit
3459 1f6c 2f6f          goto    rb2bus_byte_get__2
3460                    ; line_number = 129
3461                    ; call wait()
3462                    ;info   129, 8045
3463 1f6d 26ca          call    wait
3464            
3465 1f6e 2f6b          goto    rb2bus_byte_get__1
3466   1f6f :   rb2bus_byte_get__2:
3467                    ; Recombine size1 = 0 || size2 = 0
3468                    ; line_number = 128
3469                    ;  while !_rcif done
3470                    ; # Record the 9th bit in {address_bit}:
3471                    ; line_number = 132
3472                    ;  address_bit := _false
3473                    ;info   132, 8047
3474 1f6f 11ef          bcf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
3475                    ; line_number = 133
3476                    ;  if _rx9d start
3477                    ;info   133, 8048
3478                    ; =>bit_code_emit@symbol(): sym=_rx9d
3479                    ; 1TEST: Single test with code in skip slot
3480 1f70 1818          btfsc   _rx9d___byte, _rx9d___bit
3481                    ; line_number = 134
3482                    ; address_bit := _true
3483                    ;info   134, 8049
3484 1f71 15ef          bsf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
3485                    ; Recombine size1 = 0 || size2 = 0
3486                    ; line_number = 133
3487                    ;  if _rx9d done
3488                    ; line_number = 135
3489                    ; value := _rcreg
3490                    ;info   135, 8050
3491 1f72 081a          movf    _rcreg,w
3492 1f73 00a7          movwf   rb2bus_byte_get__value
3493            
3494                    ; # Clear any errors by toggling _{cren}:
3495                    ; # FIXME: All of this should be done *before* reading {_rcreg}!!!
3496                    ; line_number = 139
3497                    ;  if _oerr start
3498                    ;info   139, 8052
3499                    ; =>bit_code_emit@symbol(): sym=_oerr
3500                    ; 1TEST: Single test with code in skip slot
3501 1f74 1898          btfsc   _oerr___byte, _oerr___bit
3502                    ; line_number = 140
3503                    ; _cren := _false
3504                    ;info   140, 8053
3505 1f75 1218          bcf     _cren___byte, _cren___bit
3506                    ; Recombine size1 = 0 || size2 = 0
3507                    ; line_number = 139
3508                    ;  if _oerr done
3509                    ; line_number = 141
3510                    ; if _ferr start
3511                    ;info   141, 8054
3512                    ; =>bit_code_emit@symbol(): sym=_ferr
3513                    ; 1TEST: Single test with code in skip slot
3514 1f76 1918          btfsc   _ferr___byte, _ferr___bit
3515                    ; line_number = 142
3516                    ; _cren := _false
3517                    ;info   142, 8055
3518 1f77 1218          bcf     _cren___byte, _cren___bit
3519                    ; Recombine size1 = 0 || size2 = 0
3520                    ; line_number = 141
3521                    ; if _ferr done
3522                    ; line_number = 143
3523                    ; _cren := _true
3524                    ;info   143, 8056
3525 1f78 1618          bsf     _cren___byte, _cren___bit
3526            
3527                    ; line_number = 145
3528                    ;  if address_bit start
3529                    ;info   145, 8057
3530                    ; =>bit_code_emit@symbol(): sym=rb2bus_byte_get__address_bit
3531                    ; No 1TEST: true.size=13 false.size=0
3532                    ; No 2TEST: true.size=13 false.size=0
3533                    ; 1GOTO: Single test with GOTO
3534 1f79 1def          btfss   rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
3535 1f7a 2f88          goto    rb2bus_byte_get__5
3536                    ; # We have an unexpected address select coming in:
3537                    ; line_number = 147
3538                    ;  if value = rb2bus_address start
3539                    ;info   147, 8059
3540                    ; Left minus Right
3541 1f7b 0820          movf    rb2bus_address,w
3542 1f7c 0227          subwf   rb2bus_byte_get__value,w
3543                    ; =>bit_code_emit@symbol(): sym=__z
3544                    ; No 1TEST: true.size=4 false.size=2
3545                    ; No 2TEST: true.size=4 false.size=2
3546                    ; 2GOTO: Single test with two GOTO's
3547 1f7d 1d03          btfss   __z___byte, __z___bit
3548 1f7e 2f84          goto    rb2bus_byte_get__3
3549                    ; # We are being selected again:
3550                    ; line_number = 149
3551                    ;  rb2bus_selected := _true
3552                    ;info   149, 8063
3553 1f7f 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
3554                    ; line_number = 150
3555                    ;  _adden := _false
3556                    ;info   150, 8064
3557 1f80 1198          bcf     _adden___byte, _adden___bit
3558            
3559                    ; line_number = 152
3560                    ;  call rb2bus_byte_put(rb2_ok)
3561                    ;info   152, 8065
3562 1f81 30a5          movlw   165
3563 1f82 278a          call    rb2bus_byte_put
3564                    ; Recombine code1_bit_states != code2_bit_states
3565 1f83 2f86          goto    rb2bus_byte_get__4
3566                    ; 2GOTO: Starting code 2
3567   1f84 :   rb2bus_byte_get__3:
3568                    ; # Somebody else is being selected; we deselect:
3569                    ; line_number = 155
3570                    ;  rb2bus_selected := _false
3571                    ;info   155, 8068
3572 1f84 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3573                    ; line_number = 156
3574                    ;  _adden := _true
3575                    ;info   156, 8069
3576 1f85 1598          bsf     _adden___byte, _adden___bit
3577            
3578   1f86 :   rb2bus_byte_get__4:
3579                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3580                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
3581                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:11=uu=>11)
3582                    ; line_number = 147
3583                    ;  if value = rb2bus_address done
3584                    ; # We want to get back to the beginning of decode:
3585                    ; line_number = 159
3586                    ;  rb2bus_error := _true
3587                    ;info   159, 8070
3588 1f86 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
3589                    ; line_number = 160
3590                    ;  value := 0
3591                    ;info   160, 8071
3592 1f87 01a7          clrf    rb2bus_byte_get__value
3593            
3594                    ; Recombine size1 = 0 || size2 = 0
3595   1f88 :   rb2bus_byte_get__5:
3596                    ; line_number = 145
3597                    ;  if address_bit done
3598                    ; # Regular data byte:
3599                    ; line_number = 163
3600                    ;  return value start
3601                    ; line_number = 163
3602                    ;info   163, 8072
3603 1f88 0827          movf    rb2bus_byte_get__value,w
3604 1f89 0008          return  
3605                    ; line_number = 163
3606                    ;  return value done
3607            
3608            
3609                    ; delay after procedure statements=non-uniform
3610            
3611            
3612            
3613            
3614                    ; line_number = 166
3615                    ;info   166, 8074
3616                    ; procedure rb2bus_byte_put
3617   1f8a :   rb2bus_byte_put:
3618                    ; Last argument is sitting in W; save into argument variable
3619 1f8a 00a8          movwf   rb2bus_byte_put__value
3620                    ; delay=4294967295
3621                    ; line_number = 167
3622                    ; argument value byte
3623 00000028 = rb2bus_byte_put__value equ globals___0+8
3624                    ; line_number = 168
3625                    ;  returns_nothing
3626            
3627                    ; # This procedure will send {value} to the bus.  It automatically
3628                    ; # consumes the echo that is on the bus.  If {rb2bus_error} is
3629                    ; # set, this procedure does nothing.
3630            
3631                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
3632                    ; line_number = 174
3633                    ;  if !rb2bus_error start
3634                    ;info   174, 8075
3635                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
3636                    ; No 1TEST: true.size=0 false.size=18
3637                    ; No 2TEST: true.size=0 false.size=18
3638                    ; 1GOTO: Single test with GOTO
3639 1f8b 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
3640 1f8c 2f9f          goto    rb2bus_byte_put__4
3641                    ; # Wait until {_txreg} is ready for a value:
3642                    ; line_number = 176
3643                    ;  while !_txif start
3644   1f8d :   rb2bus_byte_put__1:
3645                    ;info   176, 8077
3646                    ; =>bit_code_emit@symbol(): sym=_txif
3647                    ; No 1TEST: true.size=0 false.size=2
3648                    ; No 2TEST: true.size=0 false.size=2
3649                    ; 1GOTO: Single test with GOTO
3650 1f8d 1a0c          btfsc   _txif___byte, _txif___bit
3651 1f8e 2f91          goto    rb2bus_byte_put__2
3652                    ; line_number = 177
3653                    ; call wait()
3654                    ;info   177, 8079
3655 1f8f 26ca          call    wait
3656            
3657 1f90 2f8d          goto    rb2bus_byte_put__1
3658   1f91 :   rb2bus_byte_put__2:
3659                    ; Recombine size1 = 0 || size2 = 0
3660                    ; line_number = 176
3661                    ;  while !_txif done
3662                    ; # Ship {value} out to the bus with 9th bit turned off:
3663                    ; line_number = 180
3664                    ;  _adden := _false
3665                    ;info   180, 8081
3666 1f91 1198          bcf     _adden___byte, _adden___bit
3667                    ; line_number = 181
3668                    ;  _tx9d := _false
3669                    ;info   181, 8082
3670 1f92 1683          bsf     __rp0___byte, __rp0___bit
3671 1f93 1018          bcf     _tx9d___byte, _tx9d___bit
3672                    ; line_number = 182
3673                    ;  _txreg := value
3674                    ;info   182, 8084
3675 1f94 1283          bcf     __rp0___byte, __rp0___bit
3676 1f95 0828          movf    rb2bus_byte_put__value,w
3677 1f96 0099          movwf   _txreg
3678            
3679                    ; # Wait for the echo to show up:
3680                    ; line_number = 185
3681                    ;  while !_rcif start
3682   1f97 :   rb2bus_byte_put__3:
3683                    ;info   185, 8087
3684                    ; =>bit_code_emit@symbol(): sym=_rcif
3685                    ; 1TEST: Single test with code in skip slot
3686 1f97 1e8c          btfss   _rcif___byte, _rcif___bit
3687                    ; # Still waiting:
3688 1f98 2f97          goto    rb2bus_byte_put__3
3689                    ; Recombine size1 = 0 || size2 = 0
3690                    ; line_number = 185
3691                    ;  while !_rcif done
3692                    ; # Throw the received byte away (store into {_w}).
3693                    ; line_number = 188
3694                    ;  assemble
3695                    ;info   188, 8089
3696                    ; line_number = 189
3697                    ;info   189, 8089
3698 1f99 081a          movf    _rcreg,w
3699            
3700                    ; # Recover from any receive errors by toggling {_cren}:
3701                    ; line_number = 192
3702                    ;  if _oerr start
3703                    ;info   192, 8090
3704                    ; =>bit_code_emit@symbol(): sym=_oerr
3705                    ; 1TEST: Single test with code in skip slot
3706 1f9a 1898          btfsc   _oerr___byte, _oerr___bit
3707                    ; line_number = 193
3708                    ; _cren := _false
3709                    ;info   193, 8091
3710 1f9b 1218          bcf     _cren___byte, _cren___bit
3711                    ; Recombine size1 = 0 || size2 = 0
3712                    ; line_number = 192
3713                    ;  if _oerr done
3714                    ; line_number = 194
3715                    ; if _ferr start
3716                    ;info   194, 8092
3717                    ; =>bit_code_emit@symbol(): sym=_ferr
3718                    ; 1TEST: Single test with code in skip slot
3719 1f9c 1918          btfsc   _ferr___byte, _ferr___bit
3720                    ; line_number = 195
3721                    ; _cren := _false
3722                    ;info   195, 8093
3723 1f9d 1218          bcf     _cren___byte, _cren___bit
3724                    ; Recombine size1 = 0 || size2 = 0
3725                    ; line_number = 194
3726                    ; if _ferr done
3727                    ; line_number = 196
3728                    ; _cren := _true
3729                    ;info   196, 8094
3730 1f9e 1618          bsf     _cren___byte, _cren___bit
3731            
3732            
3733   1f9f :   rb2bus_byte_put__4:
3734                    ; Recombine size1 = 0 || size2 = 0
3735                    ; line_number = 174
3736                    ;  if !rb2bus_error done
3737                    ; delay after procedure statements=non-uniform
3738                    ; Implied return
3739 1f9f 3400          retlw   0
3740            
3741            
3742            
3743            
3744                    ; line_number = 199
3745                    ;info   199, 8096
3746                    ; procedure rb2bus_command
3747   1fa0 :   rb2bus_command:
3748                    ; Last argument is sitting in W; save into argument variable
3749 1fa0 00ab          movwf   rb2bus_command__command
3750                    ; delay=4294967295
3751                    ; line_number = 200
3752                    ; argument command byte
3753 0000002b = rb2bus_command__command equ globals___0+11
3754                    ; line_number = 201
3755                    ;  returns_nothing
3756            
3757                    ; # This procedure will process an shared {command}.  This procedure
3758                    ; # accesses the global string {id}.
3759            
3760                    ; line_number = 206
3761                    ;  local new_address byte
3762 00000029 = rb2bus_command__new_address equ globals___0+9
3763                    ; line_number = 207
3764                    ;  local temp byte
3765 0000002a = rb2bus_command__temp equ globals___0+10
3766            
3767                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:11=uu=>11)
3768                    ; line_number = 209
3769                    ;  switch command & 7 start
3770                    ;info   209, 8097
3771                    ; switch_before:(data:00=uu=>00 code:11=uu=>11) size=1
3772 1fa1 301f          movlw   rb2bus_command__13>>8
3773 1fa2 008a          movwf   __pclath
3774 1fa3 3007          movlw   7
3775 1fa4 052b          andwf   rb2bus_command__command,w
3776                    ; switch after expression:(data:00=uu=>00 code:11=uu=>11)
3777 1fa5 3ea7          addlw   rb2bus_command__13
3778 1fa6 0082          movwf   __pcl
3779                    ; page_group 8
3780   1fa7 :   rb2bus_command__13:
3781 1fa7 2fe7          goto    rb2bus_command__14
3782 1fa8 2fe7          goto    rb2bus_command__14
3783 1fa9 2fe7          goto    rb2bus_command__14
3784 1faa 2fe7          goto    rb2bus_command__14
3785 1fab 2faf          goto    rb2bus_command__9
3786 1fac 2fdb          goto    rb2bus_command__10
3787 1fad 2fe4          goto    rb2bus_command__11
3788 1fae 2fe6          goto    rb2bus_command__12
3789                    ; line_number = 210
3790                    ; case 4
3791   1faf :   rb2bus_command__9:
3792                    ; # 1111 1100 (Address_Set):
3793                    ; # Return old address:
3794                    ; line_number = 213
3795                    ;  call rb2bus_byte_put(rb2bus_address)
3796                    ;info   213, 8111
3797 1faf 0820          movf    rb2bus_address,w
3798 1fb0 278a          call    rb2bus_byte_put
3799            
3800                    ; # Fetch new address:
3801                    ; line_number = 216
3802                    ;  new_address := rb2bus_byte_get()
3803                    ;info   216, 8113
3804 1fb1 2768          call    rb2bus_byte_get
3805 1fb2 00a9          movwf   rb2bus_command__new_address
3806                    ; line_number = 217
3807                    ;  if new_address = 0 || new_address = rb2bus_address start
3808                    ;info   217, 8115
3809                    ; Left minus Right
3810 1fb3 0829          movf    rb2bus_command__new_address,w
3811                    ; =>bit_code_emit@symbol(): sym=__z
3812                    ; No 1TEST: true.size=1 false.size=36
3813                    ; No 2TEST: true.size=1 false.size=36
3814                    ; 2GOTO: Single test with two GOTO's
3815 1fb4 1903          btfsc   __z___byte, __z___bit
3816 1fb5 2fba          goto    rb2bus_command__5
3817                    ; Recombine code1_bit_states != code2_bit_states
3818                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3819                    ; Left minus Right
3820 1fb6 0820          movf    rb2bus_address,w
3821 1fb7 0229          subwf   rb2bus_command__new_address,w
3822                    ; =>bit_code_emit@symbol(): sym=__z
3823                    ; No 1TEST: true.size=4 false.size=27
3824                    ; No 2TEST: true.size=4 false.size=27
3825                    ; 2GOTO: Single test with two GOTO's
3826 1fb8 1d03          btfss   __z___byte, __z___bit
3827 1fb9 2fbf          goto    rb2bus_command__6
3828   1fba :   rb2bus_command__5:
3829                    ; line_number = 218
3830                    ; call rb2bus_byte_put(0)
3831                    ;info   218, 8122
3832 1fba 3000          movlw   0
3833 1fbb 278a          call    rb2bus_byte_put
3834                    ; line_number = 219
3835                    ;  rb2bus_error := _true
3836                    ;info   219, 8124
3837 1fbc 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
3838                    ; line_number = 220
3839                    ;  rb2bus_selected := _false
3840                    ;info   220, 8125
3841 1fbd 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3842 1fbe 2fda          goto    rb2bus_command__7
3843                    ; 2GOTO: Starting code 2
3844   1fbf :   rb2bus_command__6:
3845                    ; # Return new address:
3846                    ; line_number = 223
3847                    ;  call rb2bus_byte_put(new_address)
3848                    ;info   223, 8127
3849 1fbf 0829          movf    rb2bus_command__new_address,w
3850 1fc0 278a          call    rb2bus_byte_put
3851            
3852                    ; # Fetch new address again as a check:
3853                    ; line_number = 226
3854                    ;  temp := rb2bus_byte_get()
3855                    ;info   226, 8129
3856 1fc1 2768          call    rb2bus_byte_get
3857 1fc2 00aa          movwf   rb2bus_command__temp
3858                    ; line_number = 227
3859                    ;  if temp != new_address start
3860                    ;info   227, 8131
3861                    ; Left minus Right
3862 1fc3 0829          movf    rb2bus_command__new_address,w
3863 1fc4 022a          subwf   rb2bus_command__temp,w
3864                    ; =>bit_code_emit@symbol(): sym=__z
3865                    ; No 1TEST: true.size=14 false.size=4
3866                    ; No 2TEST: true.size=14 false.size=4
3867                    ; 2GOTO: Single test with two GOTO's
3868 1fc5 1d03          btfss   __z___byte, __z___bit
3869 1fc6 2fd6          goto    rb2bus_command__3
3870                    ; line_number = 232
3871                    ; call rb2bus_eedata_write(new_address)
3872                    ;info   232, 8135
3873 1fc7 0829          movf    rb2bus_command__new_address,w
3874 1fc8 2720          call    rb2bus_eedata_write
3875                    ; line_number = 233
3876                    ;  temp := rb2bus_eedata_read()
3877                    ;info   233, 8137
3878 1fc9 2705          call    rb2bus_eedata_read
3879 1fca 00aa          movwf   rb2bus_command__temp
3880                    ; line_number = 234
3881                    ;  if temp = new_address start
3882                    ;info   234, 8139
3883                    ; Left minus Right
3884 1fcb 0829          movf    rb2bus_command__new_address,w
3885 1fcc 022a          subwf   rb2bus_command__temp,w
3886                    ; =>bit_code_emit@symbol(): sym=__z
3887                    ; No 1TEST: true.size=3 false.size=1
3888                    ; No 2TEST: true.size=3 false.size=1
3889                    ; 2GOTO: Single test with two GOTO's
3890 1fcd 1d03          btfss   __z___byte, __z___bit
3891 1fce 2fd3          goto    rb2bus_command__1
3892                    ; line_number = 235
3893                    ; rb2bus_address := new_address
3894                    ;info   235, 8143
3895 1fcf 0829          movf    rb2bus_command__new_address,w
3896 1fd0 00a0          movwf   rb2bus_address
3897                    ; line_number = 236
3898                    ;  call rb2bus_byte_put(rb2_ok)
3899                    ;info   236, 8145
3900 1fd1 30a5          movlw   165
3901 1fd2 2fd4          goto    rb2bus_command__2
3902                    ; 2GOTO: Starting code 2
3903   1fd3 :   rb2bus_command__1:
3904                    ; line_number = 238
3905                    ; call rb2bus_byte_put(0)
3906                    ;info   238, 8147
3907 1fd3 3000          movlw   0
3908   1fd4 :   rb2bus_command__2:
3909                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3910                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3911                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:11=uu=>11)
3912 1fd4 278a          call    rb2bus_byte_put
3913                    ; line_number = 234
3914                    ;  if temp = new_address done
3915 1fd5 2fda          goto    rb2bus_command__4
3916                    ; 2GOTO: Starting code 2
3917   1fd6 :   rb2bus_command__3:
3918                    ; line_number = 228
3919                    ; call rb2bus_byte_put(0)
3920                    ;info   228, 8150
3921 1fd6 3000          movlw   0
3922 1fd7 278a          call    rb2bus_byte_put
3923                    ; line_number = 229
3924                    ;  rb2bus_error := _true
3925                    ;info   229, 8152
3926 1fd8 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
3927                    ; line_number = 230
3928                    ;  rb2bus_selected := _false
3929                    ;info   230, 8153
3930 1fd9 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3931   1fda :   rb2bus_command__4:
3932                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3933                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3934                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:11=uu=>11)
3935                    ; line_number = 227
3936                    ;  if temp != new_address done
3937   1fda :   rb2bus_command__7:
3938                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3939                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3940                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:11=uu=>11)
3941                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3942                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
3943                    ; 2GOTO: No goto needed; true=rb2bus_command__5 false= true_size=1 false_size=36
3944                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:11=uu=>11)
3945                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:11=uu=>11)
3946                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:11=uu=>11)
3947                    ; line_number = 217
3948                    ;  if new_address = 0 || new_address = rb2bus_address done
3949 1fda 2fe7          goto    rb2bus_command__14
3950                    ; line_number = 239
3951                    ; case 5
3952   1fdb :   rb2bus_command__10:
3953                    ; # 1111 1101 (Id_next):
3954                    ; line_number = 241
3955                    ;  if rb2bus_index < id.size start
3956                    ;info   241, 8155
3957 1fdb 301c          movlw   28
3958 1fdc 0221          subwf   rb2bus_index,w
3959                    ; =>bit_code_emit@symbol(): sym=__c
3960                    ; No 1TEST: true.size=0 false.size=4
3961                    ; No 2TEST: true.size=0 false.size=4
3962                    ; 1GOTO: Single test with GOTO
3963 1fdd 1803          btfsc   __c___byte, __c___bit
3964 1fde 2fe3          goto    rb2bus_command__8
3965                    ; line_number = 242
3966                    ; call rb2bus_byte_put(id[rb2bus_index])
3967                    ;info   242, 8159
3968 1fdf 0821          movf    rb2bus_index,w
3969 1fe0 26cb          call    id
3970 1fe1 278a          call    rb2bus_byte_put
3971                    ; line_number = 243
3972                    ;  rb2bus_index := rb2bus_index + 1
3973                    ;info   243, 8162
3974 1fe2 0aa1          incf    rb2bus_index,f
3975                    ; #if rb2bus_index >= id.size
3976                    ; #	rb2bus_index := rb2bus_index - 1
3977   1fe3 :   rb2bus_command__8:
3978                    ; Recombine size1 = 0 || size2 = 0
3979                    ; line_number = 241
3980                    ;  if rb2bus_index < id.size done
3981 1fe3 2fe7          goto    rb2bus_command__14
3982                    ; line_number = 246
3983                    ; case 6
3984   1fe4 :   rb2bus_command__11:
3985                    ; # 1111 1110 (Id_start):
3986                    ; line_number = 248
3987                    ;  rb2bus_index := 0
3988                    ;info   248, 8164
3989 1fe4 01a1          clrf    rb2bus_index
3990 1fe5 2fe7          goto    rb2bus_command__14
3991                    ; line_number = 249
3992                    ; case 7
3993   1fe6 :   rb2bus_command__12:
3994                    ; # 1111 1111 (Deselect):
3995                    ; line_number = 251
3996                    ;  call rb2bus_deselect()
3997                    ;info   251, 8166
3998 1fe6 2766          call    rb2bus_deselect
3999            
4000            
4001   1fe7 :   rb2bus_command__14:
4002                    ; line_number = 209
4003                    ;  switch command & 7 done
4004                    ; delay after procedure statements=non-uniform
4005                    ; Implied return
4006 1fe7 3400          retlw   0
4007            
4008            
4009            
4010            
4011                    ; Configuration bits
4012                    ; address = 0x2007, fill = 0x1030
4013                    ; cp = off (0x2000)
4014                    ; debug = off (0x800)
4015                    ; wrt = on (0x0)
4016                    ; cpd = off (0x100)
4017                    ; lvp = off (0x0)
4018                    ; boren = off (0x0)
4019                    ; pwrte = off (0x8)
4020                    ; wdte = off (0x0)
4021                    ; fosc = hs (0x2)
4022                    ; 14650 = 0x393a
4023   393a =           __config 14650
4024                    ; Define start addresses for data regions
4025                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
4026                    ; Region="globals___0" Address=32" Size=80 Bytes=19 Bits=4 Available=60
4027                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
4028                    ; Region="globals___2" Address=272" Size=96 Bytes=0 Bits=0 Available=96
4029                    ; Region="globals___3" Address=400" Size=112 Bytes=0 Bits=0 Available=112
4030                    end
