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