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                      ; buffer = 'controller24'
39                      ; line_number = 10
40                      ; library _pic16f767 entered
41              
42                      ; # Copyright (c) 2004-2007 by Wayne C. Gramlich
43                      ; # All rights reserved.
44              
45                      ; buffer = '_pic16f767'
46                      ; line_number = 6
47                      ; processor pic16f767
48                      ; line_number = 7
49                      ; configure_address 0x2007
50                      ; line_number = 8
51                      ;  configure_fill 0x0600
52                      ; line_number = 9
53                      ;  configure_option cp: off = 0x2000
54                      ; line_number = 10
55                      ;  configure_option cp: on = 0x0000
56                      ; line_number = 11
57                      ;  configure_option cpmx: rc1 = 0x1000
58                      ; line_number = 12
59                      ;  configure_option cpmx: rb3 = 0x0000
60                      ; line_number = 13
61                      ;  configure_option debug: off = 0x0800
62                      ; line_number = 14
63                      ;  configure_option debug: on = 0x0000
64                      ; line_number = 15
65                      ;  configure_option borv: borv11 = 0x0180
66                      ; line_number = 16
67                      ;  configure_option borv: borv10 = 0x0100
68                      ; line_number = 17
69                      ;  configure_option borv: borv01 = 0x0080
70                      ; line_number = 18
71                      ;  configure_option borv: borv00 = 0x0000
72                      ; line_number = 19
73                      ;  configure_option boren: on = 0x40
74                      ; line_number = 20
75                      ;  configure_option boren: off = 0x00
76                      ; line_number = 21
77                      ;  configure_option mclre: on = 0x20
78                      ; line_number = 22
79                      ;  configure_option mclre: off = 0x00
80                      ; line_number = 23
81                      ;  configure_option pwrten: off = 8
82                      ; line_number = 24
83                      ;  configure_option pwrten: on = 0
84                      ; line_number = 25
85                      ;  configure_option wdten: on = 4
86                      ; line_number = 26
87                      ;  configure_option wdten: off = 0
88                      ; line_number = 27
89                      ;  configure_option fosc: rc_clk = 0x13
90                      ; line_number = 28
91                      ;  configure_option fosc: rc_no_clk = 0x12
92                      ; line_number = 29
93                      ;  configure_option fosc: int_clk = 0x11
94                      ; line_number = 30
95                      ;  configure_option fosc: int_no_clk = 0x10
96                      ; line_number = 31
97                      ;  configure_option fosc: extclk = 3
98                      ; line_number = 32
99                      ;  configure_option fosc: hs = 2
100                     ; line_number = 33
101                     ;  configure_option fosc: xt = 1
102                     ; line_number = 34
103                     ;  configure_option fosc: lp = 0
104             
105                     ; line_number = 36
106                     ;  configure_address 0x2008
107                     ; line_number = 37
108                     ;  configure_fill 0x3fbc
109                     ; line_number = 38
110                     ;  configure_option borsen: on = 0x0040
111                     ; line_number = 39
112                     ;  configure_option borsen: off = 0x0000
113                     ; line_number = 40
114                     ;  configure_option ieso: on = 0x0002
115                     ; line_number = 41
116                     ;  configure_option ieso: off = 0x0000
117                     ; line_number = 42
118                     ;  configure_option fcmen: on = 0x0001
119                     ; line_number = 43
120                     ;  configure_option fcmen: off = 0x0000
121             
122                     ; line_number = 45
123                     ;  code_bank 0x0 : 0x7ff
124                     ; line_number = 46
125                     ;  code_bank 0x800 : 0xfff
126                     ; line_number = 47
127                     ;  code_bank 0x1000 : 0x17ff
128                     ; line_number = 48
129                     ;  code_bank 0x1800 : 0x1fff
130                     ; line_number = 49
131                     ;  data_bank 0x0 : 0x7f
132                     ; line_number = 50
133                     ;  data_bank 0x80 : 0xff
134                     ; line_number = 51
135                     ;  data_bank 0x100 : 0x17f
136                     ; line_number = 52
137                     ;  data_bank 0x180 : 0x1ff
138                     ; line_number = 53
139                     ;  global_region 0x20 : 0x6f
140                     ; line_number = 54
141                     ;  global_region 0xa0 : 0xef
142                     ; line_number = 55
143                     ;  global_region 0x110 : 0x16f
144                     ; line_number = 56
145                     ;  global_region 0x190 : 0x1ff
146                     ; line_number = 57
147                     ;  shared_region 0x70 : 0x7f
148             
149                     ; line_number = 59
150                     ;  interrupts_possible
151                     ; line_number = 60
152                     ;  packages pdip = 28
153                     ; line_number = 61
154                     ;  pin mclr, vpp, thv, mclr_unused
155                     ; line_number = 62
156                     ; pin_bindings pdip = 1
157                     ; line_number = 63
158                     ; pin ra0_in, ra0_out, an0, ra0_unused
159                     ; line_number = 64
160                     ; pin_bindings pdip = 2
161                     ; line_number = 65
162                     ;  bind_to _porta@0
163                     ; line_number = 66
164                     ;  or_if ra0_in _trisa 1
165                     ; line_number = 67
166                     ;  or_if ra0_in _adcon1 15
167                     ; line_number = 68
168                     ;  or_if ra0_in _adcon0 0
169                     ; line_number = 69
170                     ;  or_if ra0_out _trisa 0
171                     ; line_number = 70
172                     ;  or_if ra0_out _adcon1 15
173                     ; line_number = 71
174                     ;  or_if ra0_out _adcon0 0
175                     ; line_number = 72
176                     ; pin ra1_in, ra1_out, an1, ra1_unused
177                     ; line_number = 73
178                     ; pin_bindings pdip = 3
179                     ; line_number = 74
180                     ;  bind_to _porta@1
181                     ; line_number = 75
182                     ;  or_if ra1_in _trisa 2
183                     ; line_number = 76
184                     ;  or_if ra1_in _adcon1 15
185                     ; line_number = 77
186                     ;  or_if ra1_in _adcon0 0
187                     ; line_number = 78
188                     ;  or_if ra1_out _trisa 0
189                     ; line_number = 79
190                     ;  or_if ra1_out _adcon1 15
191                     ; line_number = 80
192                     ;  or_if ra1_out _adcon0 0
193                     ; line_number = 81
194                     ; pin ra2_in, ra2_out, an2, vref_minus, ra2_unused
195                     ; line_number = 82
196                     ; pin_bindings pdip = 4
197                     ; line_number = 83
198                     ;  bind_to _porta@2
199                     ; line_number = 84
200                     ;  or_if ra2_in _trisa 4
201                     ; line_number = 85
202                     ;  or_if ra2_in _adcon1 15
203                     ; line_number = 86
204                     ;  or_if ra2_in _adcon0 0
205                     ; line_number = 87
206                     ;  or_if ra2_out _trisa 0
207                     ; line_number = 88
208                     ;  or_if ra2_out _adcon1 15
209                     ; line_number = 89
210                     ;  or_if ra2_out _adcon0 0
211                     ; line_number = 90
212                     ; pin ra3_in, ra3_out, an3, vrev_plus, ra3_unused
213                     ; line_number = 91
214                     ; pin_bindings pdip = 5
215                     ; line_number = 92
216                     ;  bind_to _porta@3
217                     ; line_number = 93
218                     ;  or_if ra3_in _trisa 8
219                     ; line_number = 94
220                     ;  or_if ra3_in _adcon1 15
221                     ; line_number = 95
222                     ;  or_if ra3_in _adcon0 0
223                     ; line_number = 96
224                     ;  or_if ra3_out _trisa 0
225                     ; line_number = 97
226                     ;  or_if ra3_out _adcon1 15
227                     ; line_number = 98
228                     ;  or_if ra3_out _adcon0 0
229                     ; line_number = 99
230                     ; pin ra4_in, ra4_out, t0cki, ra4_unused
231                     ; line_number = 100
232                     ; pin_bindings pdip = 6
233                     ; line_number = 101
234                     ;  bind_to _porta@4
235                     ; line_number = 102
236                     ;  or_if ra4_in _trisa 16
237                     ; line_number = 103
238                     ;  or_if ra4_in _adcon1 15
239                     ; line_number = 104
240                     ;  or_if ra4_in _adcon0 0
241                     ; line_number = 105
242                     ;  or_if ra4_out _trisa 0
243                     ; line_number = 106
244                     ;  or_if ra4_out _adcon1 15
245                     ; line_number = 107
246                     ;  or_if ra4_out _adcon0 0
247                     ; line_number = 108
248                     ; pin ra5_in, ra5_out, an4, ra5_unused
249                     ; line_number = 109
250                     ; pin_bindings pdip = 7
251                     ; line_number = 110
252                     ;  bind_to _porta@5
253                     ; line_number = 111
254                     ;  or_if ra5_in _trisa 32
255                     ; line_number = 112
256                     ;  or_if ra5_in _adcon1 15
257                     ; line_number = 113
258                     ;  or_if ra5_in _adcon1 0
259                     ; line_number = 114
260                     ;  or_if ra5_out _trisa 0
261                     ; line_number = 115
262                     ;  or_if ra5_out _adcon1 15
263                     ; line_number = 116
264                     ;  or_if ra5_out _adcon0 0
265                     ; line_number = 117
266                     ; pin vss, ground
267                     ; line_number = 118
268                     ; pin_bindings pdip = 8
269                     ; line_number = 119
270                     ; pin osc1, clkin
271                     ; line_number = 120
272                     ; pin_bindings pdip = 9
273                     ; line_number = 121
274                     ; pin osc2, clkout
275                     ; line_number = 122
276                     ; pin_bindings pdip = 10
277                     ; line_number = 123
278                     ; pin rc0_in, rc0_out, t1oso, t1cki, rc0_unused
279                     ; line_number = 124
280                     ; pin_bindings pdip = 11
281                     ; line_number = 125
282                     ;  bind_to _portc@0
283                     ; line_number = 126
284                     ;  or_if rc0_in _trisc 1
285                     ; line_number = 127
286                     ;  or_if rc0_in _adcon1 15
287                     ; line_number = 128
288                     ;  or_if rc0_in _adcon0 0
289                     ; line_number = 129
290                     ;  or_if rc0_out _trisc 0
291                     ; line_number = 130
292                     ;  or_if rc0_out _adcon1 15
293                     ; line_number = 131
294                     ;  or_if rc0_out _adcon0 0
295                     ; line_number = 132
296                     ;  or_if rc0_unused _trisc 1
297                     ; line_number = 133
298                     ;  or_if rc0_unused _adcon1 15
299                     ; line_number = 134
300                     ;  or_if rc0_unused _adcon0 0
301                     ; line_number = 135
302                     ; pin rc1_in, rc1_out, t1osi, ccp2, rc1_unused
303                     ; line_number = 136
304                     ; pin_bindings pdip = 12
305                     ; line_number = 137
306                     ;  bind_to _portc@1
307                     ; line_number = 138
308                     ;  or_if rc1_in _trisc 2
309                     ; line_number = 139
310                     ;  or_if rc1_in _adcon1 15
311                     ; line_number = 140
312                     ;  or_if rc1_in _adcon0 0
313                     ; line_number = 141
314                     ;  or_if rc1_out _trisc 0
315                     ; line_number = 142
316                     ;  or_if rc1_out _adcon1 15
317                     ; line_number = 143
318                     ;  or_if rc1_out _adcon0 0
319                     ; line_number = 144
320                     ;  or_if rc1_unused _trisc 2
321                     ; line_number = 145
322                     ;  or_if rc1_unused _adcon1 15
323                     ; line_number = 146
324                     ;  or_if rc1_unused _adcon0 0
325                     ; line_number = 147
326                     ; pin rc2_in, rc2_out, ccp1, rc2_unused
327                     ; line_number = 148
328                     ; pin_bindings pdip = 13
329                     ; line_number = 149
330                     ;  bind_to _portc@2
331                     ; line_number = 150
332                     ;  or_if rc2_in _trisc 4
333                     ; line_number = 151
334                     ;  or_if rc2_in _adcon1 15
335                     ; line_number = 152
336                     ;  or_if rc2_in _adcon0 0
337                     ; line_number = 153
338                     ;  or_if rc2_out _trisc 0
339                     ; line_number = 154
340                     ;  or_if rc2_out _adcon1 15
341                     ; line_number = 155
342                     ;  or_if rc2_out _adcon0 0
343                     ; line_number = 156
344                     ;  or_if rc2_unused _trisc 4
345                     ; line_number = 157
346                     ;  or_if rc2_unused _adcon1 15
347                     ; line_number = 158
348                     ;  or_if rc2_unused _adcon0 0
349                     ; line_number = 159
350                     ; pin rc3_in, rc3_out, sck_master, sck_slave, scl, rc3_unused
351                     ; line_number = 160
352                     ; pin_bindings pdip = 14
353                     ; line_number = 161
354                     ;  bind_to _portc@3
355                     ; line_number = 162
356                     ;  or_if rc3_in _trisc 8
357                     ; line_number = 163
358                     ;  or_if rc3_in _adcon1 15
359                     ; line_number = 164
360                     ;  or_if rc3_in _adcon0 0
361                     ; line_number = 165
362                     ;  or_if rc3_out _trisc 0
363                     ; line_number = 166
364                     ;  or_if rc3_out _adcon1 15
365                     ; line_number = 167
366                     ;  or_if rc3_out _adcon0 0
367                     ; line_number = 168
368                     ;  or_if sck_master _trisc 0
369                     ; line_number = 169
370                     ;  or_if sck_master _adcon1 15
371                     ; line_number = 170
372                     ;  or_if sck_master _adcon0 0
373                     ; line_number = 171
374                     ;  or_if sck_slave _trisc 8
375                     ; line_number = 172
376                     ;  or_if sck_slave _adcon1 15
377                     ; line_number = 173
378                     ;  or_if sck_slave _adcon0 0
379                     ; line_number = 174
380                     ;  or_if rc3_unused _trisc 8
381                     ; line_number = 175
382                     ;  or_if rc3_unused _adcon1 15
383                     ; line_number = 176
384                     ;  or_if rc3_unused _adcon0 0
385                     ; line_number = 177
386                     ; pin rc4_in, rc4_out, sdi, sda, rc4_unused
387                     ; line_number = 178
388                     ; pin_bindings pdip = 15
389                     ; line_number = 179
390                     ;  bind_to _portc@4
391                     ; line_number = 180
392                     ;  or_if rc4_in _trisc 16
393                     ; line_number = 181
394                     ;  or_if rc4_in _adcon1 15
395                     ; line_number = 182
396                     ;  or_if rc4_in _adcon0 0
397                     ; line_number = 183
398                     ;  or_if rc4_out _trisc 0
399                     ; line_number = 184
400                     ;  or_if rc4_out _adcon1 15
401                     ; line_number = 185
402                     ;  or_if rc4_out _adcon0 0
403                     ; line_number = 186
404                     ;  or_if sdi _trisc 16
405                     ; line_number = 187
406                     ;  or_if sdi _adcon1 15
407                     ; line_number = 188
408                     ;  or_if sdi _adcon0 0
409                     ; line_number = 189
410                     ;  or_if rc4_unused _trisc 16
411                     ; line_number = 190
412                     ;  or_if rc4_unused _adcon1 15
413                     ; line_number = 191
414                     ;  or_if rc4_unused _adcon0 0
415                     ; line_number = 192
416                     ; pin rc5_in, rc5_out, sdo, rc5_unused
417                     ; line_number = 193
418                     ; pin_bindings pdip = 16
419                     ; line_number = 194
420                     ;  bind_to _portc@5
421                     ; line_number = 195
422                     ;  or_if rc5_in _trisc 32
423                     ; line_number = 196
424                     ;  or_if rc5_in _adcon1 15
425                     ; line_number = 197
426                     ;  or_if rc5_in _adcon0 0
427                     ; line_number = 198
428                     ;  or_if rc5_out _trisc 0
429                     ; line_number = 199
430                     ;  or_if rc5_out _adcon1 15
431                     ; line_number = 200
432                     ;  or_if rc5_out _adcon0 0
433                     ; line_number = 201
434                     ;  or_if sdo _trisc 0
435                     ; line_number = 202
436                     ;  or_if sdo _adcon1 15
437                     ; line_number = 203
438                     ;  or_if sdo _adcon0 0
439                     ; line_number = 204
440                     ;  or_if rc5_unused _trisc 32
441                     ; line_number = 205
442                     ;  or_if rc5_unused _adcon1 15
443                     ; line_number = 206
444                     ;  or_if rc5_unused _adcon0 0
445                     ; line_number = 207
446                     ; pin rc6_in, rc6_out, tx, ck, rc6_unused
447                     ; line_number = 208
448                     ; pin_bindings pdip = 17
449                     ; line_number = 209
450                     ;  bind_to _portc@6
451                     ; line_number = 210
452                     ;  or_if rc6_in _trisc 64
453                     ; line_number = 211
454                     ;  or_if rc6_in _adcon1 15
455                     ; line_number = 212
456                     ;  or_if rc6_in _adcon0 0
457                     ; line_number = 213
458                     ;  or_if rc6_out _trisc 0
459                     ; line_number = 214
460                     ;  or_if rc6_out _adcon1 15
461                     ; line_number = 215
462                     ;  or_if rc6_out _adcon0 0
463                     ; # Note: for TX, configure {_trisc} as input (as per spec. sheet):
464                     ; line_number = 217
465                     ;  or_if tx _trisc 0
466                     ; line_number = 218
467                     ;  or_if tx _adcon1 15
468                     ; line_number = 219
469                     ;  or_if tx _adcon0 0
470                     ; line_number = 220
471                     ;  or_if rc6_unused _trisc 64
472                     ; line_number = 221
473                     ;  or_if rc6_unused _adcon1 15
474                     ; line_number = 222
475                     ;  or_if rc6_unused _adcon0 0
476                     ; line_number = 223
477                     ; pin rc7_in, rc7_out, rx, dt, rc7_unused
478                     ; line_number = 224
479                     ; pin_bindings pdip = 18
480                     ; line_number = 225
481                     ;  bind_to _portc@7
482                     ; line_number = 226
483                     ;  or_if rc7_in _trisc 128
484                     ; line_number = 227
485                     ;  or_if rc7_in _adcon1 15
486                     ; line_number = 228
487                     ;  or_if rc7_in _adcon0 0
488                     ; line_number = 229
489                     ;  or_if rx _trisc 128
490                     ; line_number = 230
491                     ;  or_if rx _adcon1 15
492                     ; line_number = 231
493                     ;  or_if rx _adcon0 0
494                     ; line_number = 232
495                     ;  or_if rc7_out _trisc 0
496                     ; line_number = 233
497                     ;  or_if rc7_out _adcon1 15
498                     ; line_number = 234
499                     ;  or_if rc7_out _adcon0 0
500                     ; line_number = 235
501                     ;  or_if rc7_unused _trisc 128
502                     ; line_number = 236
503                     ;  or_if rc7_unused _adcon1 15
504                     ; line_number = 237
505                     ;  or_if rc7_unused _adcon0 0
506                     ; line_number = 238
507                     ; pin vss2, ground2
508                     ; line_number = 239
509                     ; pin_bindings pdip = 19
510                     ; line_number = 240
511                     ; pin vdd, power_supply
512                     ; line_number = 241
513                     ; pin_bindings pdip = 20
514                     ; line_number = 242
515                     ; pin rb0_in, rb0_out, int, rb0_unused
516                     ; line_number = 243
517                     ; pin_bindings pdip = 21
518                     ; line_number = 244
519                     ;  bind_to _portb@0
520                     ; line_number = 245
521                     ;  or_if rb0_in _trisb 1
522                     ; line_number = 246
523                     ;  or_if rb0_in _adcon1 15
524                     ; line_number = 247
525                     ;  or_if rb0_in _adcon0 0
526                     ; line_number = 248
527                     ;  or_if rb0_out _trisb 0
528                     ; line_number = 249
529                     ;  or_if rb0_out _adcon1 15
530                     ; line_number = 250
531                     ;  or_if rb0_out _adcon0 0
532                     ; line_number = 251
533                     ;  or_if rb0_unused _trisb 1
534                     ; line_number = 252
535                     ;  or_if rb0_unused _adcon1 15
536                     ; line_number = 253
537                     ;  or_if rb0_unused _adcon0 0
538                     ; line_number = 254
539                     ; pin rb1_in, rb1_out, rb1_unused
540                     ; line_number = 255
541                     ; pin_bindings pdip = 22
542                     ; line_number = 256
543                     ;  bind_to _portb@1
544                     ; line_number = 257
545                     ;  or_if rb1_in _trisb 2
546                     ; line_number = 258
547                     ;  or_if rb1_in _adcon1 15
548                     ; line_number = 259
549                     ;  or_if rb1_in _adcon0 0
550                     ; line_number = 260
551                     ;  or_if rb1_out _trisb 0
552                     ; line_number = 261
553                     ;  or_if rb1_out _adcon1 15
554                     ; line_number = 262
555                     ;  or_if rb1_out _adcon0 0
556                     ; line_number = 263
557                     ;  or_if rb1_unused _trisb 2
558                     ; line_number = 264
559                     ;  or_if rb1_unused _adcon1 15
560                     ; line_number = 265
561                     ;  or_if rb1_unused _adcon0 0
562                     ; line_number = 266
563                     ; pin rb2_in, rb2_out, rb2_unused
564                     ; line_number = 267
565                     ; pin_bindings pdip = 23
566                     ; line_number = 268
567                     ;  bind_to _portb@2
568                     ; line_number = 269
569                     ;  or_if rb2_in _trisb 4
570                     ; line_number = 270
571                     ;  or_if rb2_in _adcon1 15
572                     ; line_number = 271
573                     ;  or_if rb2_in _adcon0 0
574                     ; line_number = 272
575                     ;  or_if rb2_out _trisb 0
576                     ; line_number = 273
577                     ;  or_if rb2_out _adcon1 15
578                     ; line_number = 274
579                     ;  or_if rb2_out _adcon0 0
580                     ; line_number = 275
581                     ;  or_if rb2_unused _trisb 4
582                     ; line_number = 276
583                     ;  or_if rb2_unused _adcon1 15
584                     ; line_number = 277
585                     ;  or_if rb2_unused _adcon0 0
586                     ; line_number = 278
587                     ; pin rb3_in, rb3_out, pgm, rb3_unused
588                     ; line_number = 279
589                     ; pin_bindings pdip = 24
590                     ; line_number = 280
591                     ;  bind_to _portb@3
592                     ; line_number = 281
593                     ;  or_if rb3_in _trisb 8
594                     ; line_number = 282
595                     ;  or_if rb3_in _adcon1 15
596                     ; line_number = 283
597                     ;  or_if rb3_in _adcon0 0
598                     ; line_number = 284
599                     ;  or_if rb3_out _trisb 0
600                     ; line_number = 285
601                     ;  or_if rb3_out _adcon1 15
602                     ; line_number = 286
603                     ;  or_if rb3_out _adcon0 0
604                     ; line_number = 287
605                     ;  or_if rb3_unused _trisb 8
606                     ; line_number = 288
607                     ;  or_if rb3_unused _adcon1 15
608                     ; line_number = 289
609                     ;  or_if rb3_unused _adcon0 0
610                     ; line_number = 290
611                     ; pin rb4_in, rb4_out, rb4_unused
612                     ; line_number = 291
613                     ; pin_bindings pdip = 25
614                     ; line_number = 292
615                     ;  bind_to _portb@4
616                     ; line_number = 293
617                     ;  or_if rb4_in _trisb 16
618                     ; line_number = 294
619                     ;  or_if rb4_in _adcon1 15
620                     ; line_number = 295
621                     ;  or_if rb4_in _adcon0 0
622                     ; line_number = 296
623                     ;  or_if rb4_out _trisb 0
624                     ; line_number = 297
625                     ;  or_if rb4_out _adcon1 15
626                     ; line_number = 298
627                     ;  or_if rb4_out _adcon0 0
628                     ; line_number = 299
629                     ;  or_if rb4_unused _trisb 16
630                     ; line_number = 300
631                     ;  or_if rb4_unused _adcon1 15
632                     ; line_number = 301
633                     ;  or_if rb4_unused _adcon0 0
634                     ; line_number = 302
635                     ; pin rb5_in, rb5_out, rb5_unused
636                     ; line_number = 303
637                     ; pin_bindings pdip = 26
638                     ; line_number = 304
639                     ;  bind_to _portb@5
640                     ; line_number = 305
641                     ;  or_if rb5_in _trisb 32
642                     ; line_number = 306
643                     ;  or_if rb5_in _adcon1 15
644                     ; line_number = 307
645                     ;  or_if rb5_in _adcon0 0
646                     ; line_number = 308
647                     ;  or_if rb5_out _trisb 0
648                     ; line_number = 309
649                     ;  or_if rb5_out _adcon1 15
650                     ; line_number = 310
651                     ;  or_if rb5_out _adcon0 0
652                     ; line_number = 311
653                     ;  or_if rb5_unused _trisb 32
654                     ; line_number = 312
655                     ;  or_if rb5_unused _adcon1 15
656                     ; line_number = 313
657                     ;  or_if rb5_unused _adcon0 0
658                     ; line_number = 314
659                     ; pin rb6_in, rb6_out, pgc, rb6_unused
660                     ; line_number = 315
661                     ; pin_bindings pdip = 27
662                     ; line_number = 316
663                     ;  bind_to _portb@6
664                     ; line_number = 317
665                     ;  or_if rb6_in _trisb 64
666                     ; line_number = 318
667                     ;  or_if rb6_in _adcon1 15
668                     ; line_number = 319
669                     ;  or_if rb6_in _adcon0 0
670                     ; line_number = 320
671                     ;  or_if rb6_out _trisb 0
672                     ; line_number = 321
673                     ;  or_if rb6_out _adcon1 15
674                     ; line_number = 322
675                     ;  or_if rb6_out _adcon0 0
676                     ; line_number = 323
677                     ;  or_if rb6_unused _trisb 64
678                     ; line_number = 324
679                     ;  or_if rb6_unused _adcon1 15
680                     ; line_number = 325
681                     ;  or_if rb6_unused _adcon0 0
682                     ; line_number = 326
683                     ; pin rb7_in, rb7_out, pgd, rb7_unused
684                     ; line_number = 327
685                     ; pin_bindings pdip = 28
686                     ; line_number = 328
687                     ;  bind_to _portb@7
688                     ; line_number = 329
689                     ;  or_if rb7_in _trisb 128
690                     ; line_number = 330
691                     ;  or_if rb7_in _adcon1 15
692                     ; line_number = 331
693                     ;  or_if rb7_in _adcon0 0
694                     ; line_number = 332
695                     ;  or_if rb7_out _trisb 0
696                     ; line_number = 333
697                     ;  or_if rb7_out _adcon1 15
698                     ; line_number = 334
699                     ;  or_if rb7_out _adcon0 0
700                     ; line_number = 335
701                     ;  or_if rb7_unused _trisb 128
702                     ; line_number = 336
703                     ;  or_if rb7_unused _adcon1 15
704                     ; line_number = 337
705                     ;  or_if rb7_unused _adcon0 0
706             
707                     ; # Register and pin definitions:
708             
709                     ; line_number = 341
710                     ; library _pic16f7x7 entered
711             
712                     ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
713                     ; # All rights reserved.
714             
715                     ; buffer = '_pic16f7x7'
716                     ; line_number = 6
717                     ; library _standard entered
718             
719                     ; # Copyright (c) 2006 by Wayne C. Gramlich
720                     ; # All rights reserved.
721             
722                     ; # Standard definition for uCL:
723             
724                     ; buffer = '_standard'
725                     ; line_number = 8
726                     ; constant _true = (1 = 1)
727  00000001 = _true equ 1
728                     ; line_number = 9
729                     ; constant _false = (0 != 0)
730  00000000 = _false equ 0
731             
732             
733                     ; buffer = '_pic16f7x7'
734                     ; line_number = 6
735                     ; library _standard exited
736             
737                     ; # Common declarations for PIC16F7x7 series microcontrollers:
738             
739                     ; # Register and pin definitions:
740             
741                     ; # Bank 0:
742             
743                     ; line_number = 14
744                     ; register _indf = 
745  00000000 = _indf equ 0
746             
747                     ; line_number = 16
748                     ; register _tmr0 = 
749  00000001 = _tmr0 equ 1
750             
751                     ; line_number = 18
752                     ; register _pcl = 
753  00000002 = _pcl equ 2
754             
755                     ; line_number = 20
756                     ; register _status = 
757  00000003 = _status equ 3
758                     ; line_number = 21
759                     ; bind _irp = _status@7
760  00000003 = _irp___byte equ _status
761  00000007 = _irp___bit equ 7
762                     ; line_number = 22
763                     ; bind _rp1 = _status@6
764  00000003 = _rp1___byte equ _status
765  00000006 = _rp1___bit equ 6
766                     ; line_number = 23
767                     ; bind _rp0 = _status@5
768  00000003 = _rp0___byte equ _status
769  00000005 = _rp0___bit equ 5
770                     ; line_number = 24
771                     ; bind _to = _status@4
772  00000003 = _to___byte equ _status
773  00000004 = _to___bit equ 4
774                     ; line_number = 25
775                     ; bind _pd = _status@3
776  00000003 = _pd___byte equ _status
777  00000003 = _pd___bit equ 3
778                     ; line_number = 26
779                     ; bind _z = _status@2
780  00000003 = _z___byte equ _status
781  00000002 = _z___bit equ 2
782                     ; line_number = 27
783                     ; bind _dc = _status@1
784  00000003 = _dc___byte equ _status
785  00000001 = _dc___bit equ 1
786                     ; line_number = 28
787                     ; bind _c = _status@0
788  00000003 = _c___byte equ _status
789  00000000 = _c___bit equ 0
790             
791                     ; line_number = 30
792                     ; register _fsr = 
793  00000004 = _fsr equ 4
794             
795                     ; line_number = 32
796                     ; register _porta = 
797  00000005 = _porta equ 5
798             
799                     ; line_number = 34
800                     ; register _portb = 
801  00000006 = _portb equ 6
802             
803                     ; line_number = 36
804                     ; register _portc = 
805  00000007 = _portc equ 7
806             
807                     ; line_number = 38
808                     ; register _pclath = 
809  0000000a = _pclath equ 10
810             
811                     ; line_number = 40
812                     ; register _intcon = 
813  0000000b = _intcon equ 11
814                     ; line_number = 41
815                     ; bind _gie = _intcon@7
816  0000000b = _gie___byte equ _intcon
817  00000007 = _gie___bit equ 7
818                     ; line_number = 42
819                     ; bind _peie = _intcon@6
820  0000000b = _peie___byte equ _intcon
821  00000006 = _peie___bit equ 6
822                     ; line_number = 43
823                     ; bind _tmr0ie = _intcon@5
824  0000000b = _tmr0ie___byte equ _intcon
825  00000005 = _tmr0ie___bit equ 5
826                     ; line_number = 44
827                     ; bind _int0ie = _intcon@4
828  0000000b = _int0ie___byte equ _intcon
829  00000004 = _int0ie___bit equ 4
830                     ; line_number = 45
831                     ; bind _rbie = _intcon@3
832  0000000b = _rbie___byte equ _intcon
833  00000003 = _rbie___bit equ 3
834                     ; line_number = 46
835                     ; bind _tmr0if = _intcon@2
836  0000000b = _tmr0if___byte equ _intcon
837  00000002 = _tmr0if___bit equ 2
838                     ; line_number = 47
839                     ; bind _int0if = _intcon@1
840  0000000b = _int0if___byte equ _intcon
841  00000001 = _int0if___bit equ 1
842                     ; line_number = 48
843                     ; bind _rbif = _intcon@0
844  0000000b = _rbif___byte equ _intcon
845  00000000 = _rbif___bit equ 0
846             
847                     ; line_number = 50
848                     ; register _pir1 = 
849  0000000c = _pir1 equ 12
850                     ; line_number = 51
851                     ; bind _pspif = _pir1@7
852  0000000c = _pspif___byte equ _pir1
853  00000007 = _pspif___bit equ 7
854                     ; line_number = 52
855                     ; bind _adif = _pir1@6
856  0000000c = _adif___byte equ _pir1
857  00000006 = _adif___bit equ 6
858                     ; line_number = 53
859                     ; bind _rcif = _pir1@5
860  0000000c = _rcif___byte equ _pir1
861  00000005 = _rcif___bit equ 5
862                     ; line_number = 54
863                     ; bind _txif = _pir1@4
864  0000000c = _txif___byte equ _pir1
865  00000004 = _txif___bit equ 4
866                     ; line_number = 55
867                     ; bind _sspif = _pir1@3
868  0000000c = _sspif___byte equ _pir1
869  00000003 = _sspif___bit equ 3
870                     ; line_number = 56
871                     ; bind _ccp1if = _pir1@2
872  0000000c = _ccp1if___byte equ _pir1
873  00000002 = _ccp1if___bit equ 2
874                     ; line_number = 57
875                     ; bind _tmr2if = _pir1@1
876  0000000c = _tmr2if___byte equ _pir1
877  00000001 = _tmr2if___bit equ 1
878                     ; line_number = 58
879                     ; bind _tmr1if = _pir1@0
880  0000000c = _tmr1if___byte equ _pir1
881  00000000 = _tmr1if___bit equ 0
882             
883                     ; line_number = 60
884                     ; register _pir2 = 
885  0000000d = _pir2 equ 13
886                     ; line_number = 61
887                     ; bind _osif = _pir2@7
888  0000000d = _osif___byte equ _pir2
889  00000007 = _osif___bit equ 7
890                     ; line_number = 62
891                     ; bind _cmif = _pir2@6
892  0000000d = _cmif___byte equ _pir2
893  00000006 = _cmif___bit equ 6
894                     ; line_number = 63
895                     ; bind _lvif = _pir2@5
896  0000000d = _lvif___byte equ _pir2
897  00000005 = _lvif___bit equ 5
898                     ; line_number = 64
899                     ; bind _bclif = _pir2@3
900  0000000d = _bclif___byte equ _pir2
901  00000003 = _bclif___bit equ 3
902                     ; line_number = 65
903                     ; bind _ccp3if = _pir2@1
904  0000000d = _ccp3if___byte equ _pir2
905  00000001 = _ccp3if___bit equ 1
906                     ; line_number = 66
907                     ; bind _ccp2if = _pir2@0
908  0000000d = _ccp2if___byte equ _pir2
909  00000000 = _ccp2if___bit equ 0
910             
911                     ; line_number = 68
912                     ; register _tmr1l = 
913  0000000e = _tmr1l equ 14
914             
915                     ; line_number = 70
916                     ; register _tmr1h = 
917  0000000f = _tmr1h equ 15
918             
919                     ; line_number = 72
920                     ; register _t1con = 
921  00000010 = _t1con equ 16
922                     ; line_number = 73
923                     ; bind _t1run = _t1con@6
924  00000010 = _t1run___byte equ _t1con
925  00000006 = _t1run___bit equ 6
926                     ; line_number = 74
927                     ; bind _t1ckps1 = _t1con@5
928  00000010 = _t1ckps1___byte equ _t1con
929  00000005 = _t1ckps1___bit equ 5
930                     ; line_number = 75
931                     ; bind _t1ckps0 = _t1con@4
932  00000010 = _t1ckps0___byte equ _t1con
933  00000004 = _t1ckps0___bit equ 4
934                     ; line_number = 76
935                     ; bind _t1oscen = _t1con@3
936  00000010 = _t1oscen___byte equ _t1con
937  00000003 = _t1oscen___bit equ 3
938                     ; line_number = 77
939                     ; bind _t1sync = _t1con@2
940  00000010 = _t1sync___byte equ _t1con
941  00000002 = _t1sync___bit equ 2
942                     ; line_number = 78
943                     ; bind _tmr1cs = _t1con@1
944  00000010 = _tmr1cs___byte equ _t1con
945  00000001 = _tmr1cs___bit equ 1
946                     ; line_number = 79
947                     ; bind _tmr1on = _t1con@0
948  00000010 = _tmr1on___byte equ _t1con
949  00000000 = _tmr1on___bit equ 0
950             
951                     ; line_number = 81
952                     ; register _tmr2 = 
953  00000011 = _tmr2 equ 17
954             
955                     ; line_number = 83
956                     ; register _t2con = 
957  00000012 = _t2con equ 18
958                     ; line_number = 84
959                     ; bind _toutps3 = _t2con@6
960  00000012 = _toutps3___byte equ _t2con
961  00000006 = _toutps3___bit equ 6
962                     ; line_number = 85
963                     ; bind _toutps2 = _t2con@5
964  00000012 = _toutps2___byte equ _t2con
965  00000005 = _toutps2___bit equ 5
966                     ; line_number = 86
967                     ; bind _toutps1 = _t2con@4
968  00000012 = _toutps1___byte equ _t2con
969  00000004 = _toutps1___bit equ 4
970                     ; line_number = 87
971                     ; bind _toutps0 = _t2con@3
972  00000012 = _toutps0___byte equ _t2con
973  00000003 = _toutps0___bit equ 3
974                     ; line_number = 88
975                     ; bind _tmr2on = _t2con@2
976  00000012 = _tmr2on___byte equ _t2con
977  00000002 = _tmr2on___bit equ 2
978                     ; line_number = 89
979                     ; bind _t2ckps1 = _t2con@1
980  00000012 = _t2ckps1___byte equ _t2con
981  00000001 = _t2ckps1___bit equ 1
982                     ; line_number = 90
983                     ; bind _t2ckps0 = _t2con@0
984  00000012 = _t2ckps0___byte equ _t2con
985  00000000 = _t2ckps0___bit equ 0
986             
987                     ; line_number = 92
988                     ; register _sspbuf = 
989  00000013 = _sspbuf equ 19
990             
991                     ; line_number = 94
992                     ; register _sspcon = 
993  00000014 = _sspcon equ 20
994                     ; line_number = 95
995                     ; bind _wcol = _sspcon@7
996  00000014 = _wcol___byte equ _sspcon
997  00000007 = _wcol___bit equ 7
998                     ; line_number = 96
999                     ; bind _sspov = _sspcon@6
1000 00000014 = _sspov___byte equ _sspcon
1001 00000006 = _sspov___bit equ 6
1002                    ; line_number = 97
1003                    ; bind _sspen = _sspcon@5
1004 00000014 = _sspen___byte equ _sspcon
1005 00000005 = _sspen___bit equ 5
1006                    ; line_number = 98
1007                    ; bind _ckp = _sspcon@4
1008 00000014 = _ckp___byte equ _sspcon
1009 00000004 = _ckp___bit equ 4
1010                    ; line_number = 99
1011                    ; bind _sspm3 = _sspcon@3
1012 00000014 = _sspm3___byte equ _sspcon
1013 00000003 = _sspm3___bit equ 3
1014                    ; line_number = 100
1015                    ; bind _sspm2 = _sspcon@2
1016 00000014 = _sspm2___byte equ _sspcon
1017 00000002 = _sspm2___bit equ 2
1018                    ; line_number = 101
1019                    ; bind _sspm1 = _sspcon@1
1020 00000014 = _sspm1___byte equ _sspcon
1021 00000001 = _sspm1___bit equ 1
1022                    ; line_number = 102
1023                    ; bind _sspm0 = _sspcon@0
1024 00000014 = _sspm0___byte equ _sspcon
1025 00000000 = _sspm0___bit equ 0
1026            
1027                    ; line_number = 104
1028                    ; register _ccpr1l = 
1029 00000015 = _ccpr1l equ 21
1030            
1031                    ; line_number = 106
1032                    ; register _ccpr1h = 
1033 00000016 = _ccpr1h equ 22
1034            
1035                    ; line_number = 108
1036                    ; register _ccp1con = 
1037 00000017 = _ccp1con equ 23
1038                    ; line_number = 109
1039                    ; bind _ccp1x = _ccp1con@5
1040 00000017 = _ccp1x___byte equ _ccp1con
1041 00000005 = _ccp1x___bit equ 5
1042                    ; line_number = 110
1043                    ; bind _ccp1y = _ccp1con@4
1044 00000017 = _ccp1y___byte equ _ccp1con
1045 00000004 = _ccp1y___bit equ 4
1046                    ; line_number = 111
1047                    ; bind _ccp1m3 = _ccp1con@3
1048 00000017 = _ccp1m3___byte equ _ccp1con
1049 00000003 = _ccp1m3___bit equ 3
1050                    ; line_number = 112
1051                    ; bind _ccp1m2 = _ccp1con@2
1052 00000017 = _ccp1m2___byte equ _ccp1con
1053 00000002 = _ccp1m2___bit equ 2
1054                    ; line_number = 113
1055                    ; bind _ccp1m1 = _ccp1con@1
1056 00000017 = _ccp1m1___byte equ _ccp1con
1057 00000001 = _ccp1m1___bit equ 1
1058                    ; line_number = 114
1059                    ; bind _ccp1m0 = _ccp1con@0
1060 00000017 = _ccp1m0___byte equ _ccp1con
1061 00000000 = _ccp1m0___bit equ 0
1062            
1063                    ; line_number = 116
1064                    ; register _rcsta = 
1065 00000018 = _rcsta equ 24
1066                    ; line_number = 117
1067                    ; bind _spen = _rcsta@7
1068 00000018 = _spen___byte equ _rcsta
1069 00000007 = _spen___bit equ 7
1070                    ; line_number = 118
1071                    ; bind _rx9 = _rcsta@6
1072 00000018 = _rx9___byte equ _rcsta
1073 00000006 = _rx9___bit equ 6
1074                    ; line_number = 119
1075                    ; bind _sren = _rcsta@5
1076 00000018 = _sren___byte equ _rcsta
1077 00000005 = _sren___bit equ 5
1078                    ; line_number = 120
1079                    ; bind _cren = _rcsta@4
1080 00000018 = _cren___byte equ _rcsta
1081 00000004 = _cren___bit equ 4
1082                    ; line_number = 121
1083                    ; bind _adden = _rcsta@3
1084 00000018 = _adden___byte equ _rcsta
1085 00000003 = _adden___bit equ 3
1086                    ; line_number = 122
1087                    ; bind _ferr = _rcsta@2
1088 00000018 = _ferr___byte equ _rcsta
1089 00000002 = _ferr___bit equ 2
1090                    ; line_number = 123
1091                    ; bind _oerr = _rcsta@1
1092 00000018 = _oerr___byte equ _rcsta
1093 00000001 = _oerr___bit equ 1
1094                    ; line_number = 124
1095                    ; bind _rx9d = _rcsta@0
1096 00000018 = _rx9d___byte equ _rcsta
1097 00000000 = _rx9d___bit equ 0
1098            
1099                    ; line_number = 126
1100                    ; register _txreg = 
1101 00000019 = _txreg equ 25
1102            
1103                    ; line_number = 128
1104                    ; register _rcreg = 
1105 0000001a = _rcreg equ 26
1106            
1107                    ; line_number = 130
1108                    ; register _ccpr2l = 
1109 0000001b = _ccpr2l equ 27
1110            
1111                    ; line_number = 132
1112                    ; register _ccpr2h = 
1113 0000001c = _ccpr2h equ 28
1114            
1115                    ; line_number = 134
1116                    ; register _ccp2con = 
1117 0000001d = _ccp2con equ 29
1118                    ; line_number = 135
1119                    ; bind _ccp2x = _ccp2con@5
1120 0000001d = _ccp2x___byte equ _ccp2con
1121 00000005 = _ccp2x___bit equ 5
1122                    ; line_number = 136
1123                    ; bind _ccp2y = _ccp2con@4
1124 0000001d = _ccp2y___byte equ _ccp2con
1125 00000004 = _ccp2y___bit equ 4
1126                    ; line_number = 137
1127                    ; bind _ccp2m3 = _ccp2con@3
1128 0000001d = _ccp2m3___byte equ _ccp2con
1129 00000003 = _ccp2m3___bit equ 3
1130                    ; line_number = 138
1131                    ; bind _ccp2m2 = _ccp2con@2
1132 0000001d = _ccp2m2___byte equ _ccp2con
1133 00000002 = _ccp2m2___bit equ 2
1134                    ; line_number = 139
1135                    ; bind _ccp2m1 = _ccp2con@1
1136 0000001d = _ccp2m1___byte equ _ccp2con
1137 00000001 = _ccp2m1___bit equ 1
1138                    ; line_number = 140
1139                    ; bind _ccp2m0 = _ccp2con@0
1140 0000001d = _ccp2m0___byte equ _ccp2con
1141 00000000 = _ccp2m0___bit equ 0
1142            
1143                    ; line_number = 142
1144                    ; register _adresh = 
1145 0000001e = _adresh equ 30
1146            
1147                    ; line_number = 144
1148                    ; register _adcon0 = 
1149 0000001f = _adcon0 equ 31
1150                    ; line_number = 145
1151                    ; bind _adcs1 = _adcon0@7
1152 0000001f = _adcs1___byte equ _adcon0
1153 00000007 = _adcs1___bit equ 7
1154                    ; line_number = 146
1155                    ; bind _adcs0 = _adcon0@6
1156 0000001f = _adcs0___byte equ _adcon0
1157 00000006 = _adcs0___bit equ 6
1158                    ; line_number = 147
1159                    ; bind _chs2 = _adcon0@5
1160 0000001f = _chs2___byte equ _adcon0
1161 00000005 = _chs2___bit equ 5
1162                    ; line_number = 148
1163                    ; bind _chs1 = _adcon0@4
1164 0000001f = _chs1___byte equ _adcon0
1165 00000004 = _chs1___bit equ 4
1166                    ; line_number = 149
1167                    ; bind _chs0 = _adcon0@3
1168 0000001f = _chs0___byte equ _adcon0
1169 00000003 = _chs0___bit equ 3
1170                    ; line_number = 150
1171                    ; bind _go_done = _adcon0@2
1172 0000001f = _go_done___byte equ _adcon0
1173 00000002 = _go_done___bit equ 2
1174                    ; line_number = 151
1175                    ; bind _adon = _adcon0@0
1176 0000001f = _adon___byte equ _adcon0
1177 00000000 = _adon___bit equ 0
1178            
1179                    ; # Bank 1:
1180            
1181                    ; line_number = 155
1182                    ; register _option_reg = 
1183 00000081 = _option_reg equ 129
1184                    ; line_number = 156
1185                    ; bind _rbpu = _option_reg@7
1186 00000081 = _rbpu___byte equ _option_reg
1187 00000007 = _rbpu___bit equ 7
1188                    ; line_number = 157
1189                    ; bind _intedg = _option_reg@6
1190 00000081 = _intedg___byte equ _option_reg
1191 00000006 = _intedg___bit equ 6
1192                    ; line_number = 158
1193                    ; bind _t0cs = _option_reg@5
1194 00000081 = _t0cs___byte equ _option_reg
1195 00000005 = _t0cs___bit equ 5
1196                    ; line_number = 159
1197                    ; bind _t0se = _option_reg@4
1198 00000081 = _t0se___byte equ _option_reg
1199 00000004 = _t0se___bit equ 4
1200                    ; line_number = 160
1201                    ; bind _psa = _option_reg@3
1202 00000081 = _psa___byte equ _option_reg
1203 00000003 = _psa___bit equ 3
1204                    ; line_number = 161
1205                    ; bind _ps2 = _option_reg@2
1206 00000081 = _ps2___byte equ _option_reg
1207 00000002 = _ps2___bit equ 2
1208                    ; line_number = 162
1209                    ; bind _ps1 = _option_reg@1
1210 00000081 = _ps1___byte equ _option_reg
1211 00000001 = _ps1___bit equ 1
1212                    ; line_number = 163
1213                    ; bind _ps0 = _option_reg@0
1214 00000081 = _ps0___byte equ _option_reg
1215 00000000 = _ps0___bit equ 0
1216            
1217                    ; line_number = 165
1218                    ; register _trisa = 
1219 00000085 = _trisa equ 133
1220                    ; line_number = 166
1221                    ; bind _trisa7 = _trisa@7
1222 00000085 = _trisa7___byte equ _trisa
1223 00000007 = _trisa7___bit equ 7
1224                    ; line_number = 167
1225                    ; bind _trisa6 = _trisa@6
1226 00000085 = _trisa6___byte equ _trisa
1227 00000006 = _trisa6___bit equ 6
1228                    ; line_number = 168
1229                    ; bind _trisa5 = _trisa@5
1230 00000085 = _trisa5___byte equ _trisa
1231 00000005 = _trisa5___bit equ 5
1232                    ; line_number = 169
1233                    ; bind _trisa4 = _trisa@4
1234 00000085 = _trisa4___byte equ _trisa
1235 00000004 = _trisa4___bit equ 4
1236                    ; line_number = 170
1237                    ; bind _trisa3 = _trisa@3
1238 00000085 = _trisa3___byte equ _trisa
1239 00000003 = _trisa3___bit equ 3
1240                    ; line_number = 171
1241                    ; bind _trisa2 = _trisa@2
1242 00000085 = _trisa2___byte equ _trisa
1243 00000002 = _trisa2___bit equ 2
1244                    ; line_number = 172
1245                    ; bind _trisa1 = _trisa@1
1246 00000085 = _trisa1___byte equ _trisa
1247 00000001 = _trisa1___bit equ 1
1248                    ; line_number = 173
1249                    ; bind _trisa0 = _trisa@0
1250 00000085 = _trisa0___byte equ _trisa
1251 00000000 = _trisa0___bit equ 0
1252            
1253                    ; line_number = 175
1254                    ; register _trisb = 
1255 00000086 = _trisb equ 134
1256            
1257                    ; line_number = 177
1258                    ; register _trisc = 
1259 00000087 = _trisc equ 135
1260                    ; line_number = 178
1261                    ; bind _trisc7 = _trisc@7
1262 00000087 = _trisc7___byte equ _trisc
1263 00000007 = _trisc7___bit equ 7
1264                    ; line_number = 179
1265                    ; bind _trisc6 = _trisc@6
1266 00000087 = _trisc6___byte equ _trisc
1267 00000006 = _trisc6___bit equ 6
1268                    ; line_number = 180
1269                    ; bind _trisc5 = _trisc@5
1270 00000087 = _trisc5___byte equ _trisc
1271 00000005 = _trisc5___bit equ 5
1272                    ; line_number = 181
1273                    ; bind _trisc4 = _trisc@4
1274 00000087 = _trisc4___byte equ _trisc
1275 00000004 = _trisc4___bit equ 4
1276                    ; line_number = 182
1277                    ; bind _trisc3 = _trisc@3
1278 00000087 = _trisc3___byte equ _trisc
1279 00000003 = _trisc3___bit equ 3
1280                    ; line_number = 183
1281                    ; bind _trisc2 = _trisc@2
1282 00000087 = _trisc2___byte equ _trisc
1283 00000002 = _trisc2___bit equ 2
1284                    ; line_number = 184
1285                    ; bind _trisc1 = _trisc@1
1286 00000087 = _trisc1___byte equ _trisc
1287 00000001 = _trisc1___bit equ 1
1288                    ; line_number = 185
1289                    ; bind _trisc0 = _trisc@0
1290 00000087 = _trisc0___byte equ _trisc
1291 00000000 = _trisc0___bit equ 0
1292            
1293                    ; line_number = 187
1294                    ; register _pie1 = 
1295 0000008c = _pie1 equ 140
1296                    ; line_number = 188
1297                    ; bind _pspie = _pie1@7
1298 0000008c = _pspie___byte equ _pie1
1299 00000007 = _pspie___bit equ 7
1300                    ; line_number = 189
1301                    ; bind _adie = _pie1@6
1302 0000008c = _adie___byte equ _pie1
1303 00000006 = _adie___bit equ 6
1304                    ; line_number = 190
1305                    ; bind _rcie = _pie1@5
1306 0000008c = _rcie___byte equ _pie1
1307 00000005 = _rcie___bit equ 5
1308                    ; line_number = 191
1309                    ; bind _txie = _pie1@4
1310 0000008c = _txie___byte equ _pie1
1311 00000004 = _txie___bit equ 4
1312                    ; line_number = 192
1313                    ; bind _sspie = _pie1@3
1314 0000008c = _sspie___byte equ _pie1
1315 00000003 = _sspie___bit equ 3
1316                    ; line_number = 193
1317                    ; bind _ccp1ie = _pie1@2
1318 0000008c = _ccp1ie___byte equ _pie1
1319 00000002 = _ccp1ie___bit equ 2
1320                    ; line_number = 194
1321                    ; bind _tmr2ie = _pie1@1
1322 0000008c = _tmr2ie___byte equ _pie1
1323 00000001 = _tmr2ie___bit equ 1
1324                    ; line_number = 195
1325                    ; bind _tmr1ie = _pie1@0
1326 0000008c = _tmr1ie___byte equ _pie1
1327 00000000 = _tmr1ie___bit equ 0
1328            
1329                    ; line_number = 197
1330                    ; register _pie2 = 
1331 0000008d = _pie2 equ 141
1332                    ; line_number = 198
1333                    ; bind _osfie = _pie2@7
1334 0000008d = _osfie___byte equ _pie2
1335 00000007 = _osfie___bit equ 7
1336                    ; line_number = 199
1337                    ; bind _cmie = _pie2@6
1338 0000008d = _cmie___byte equ _pie2
1339 00000006 = _cmie___bit equ 6
1340                    ; line_number = 200
1341                    ; bind _lvdie = _pie2@5
1342 0000008d = _lvdie___byte equ _pie2
1343 00000005 = _lvdie___bit equ 5
1344                    ; line_number = 201
1345                    ; bind _bclie = _pie2@3
1346 0000008d = _bclie___byte equ _pie2
1347 00000003 = _bclie___bit equ 3
1348                    ; line_number = 202
1349                    ; bind _ccp3ie = _pie2@1
1350 0000008d = _ccp3ie___byte equ _pie2
1351 00000001 = _ccp3ie___bit equ 1
1352                    ; line_number = 203
1353                    ; bind _ccp2ie = _pie2@0
1354 0000008d = _ccp2ie___byte equ _pie2
1355 00000000 = _ccp2ie___bit equ 0
1356            
1357                    ; line_number = 205
1358                    ; register _pcon = 
1359 0000008e = _pcon equ 142
1360                    ; line_number = 206
1361                    ; bind _sboren = _pcon@2
1362 0000008e = _sboren___byte equ _pcon
1363 00000002 = _sboren___bit equ 2
1364                    ; line_number = 207
1365                    ; bind _por = _pcon@1
1366 0000008e = _por___byte equ _pcon
1367 00000001 = _por___bit equ 1
1368                    ; line_number = 208
1369                    ; bind _bor = _pcon@0
1370 0000008e = _bor___byte equ _pcon
1371 00000000 = _bor___bit equ 0
1372            
1373                    ; line_number = 210
1374                    ; register _osccon = 
1375 0000008f = _osccon equ 143
1376                    ; line_number = 211
1377                    ; bind _ircf2 = _osccon@6
1378 0000008f = _ircf2___byte equ _osccon
1379 00000006 = _ircf2___bit equ 6
1380                    ; line_number = 212
1381                    ; bind _ircf1 = _osccon@5
1382 0000008f = _ircf1___byte equ _osccon
1383 00000005 = _ircf1___bit equ 5
1384                    ; line_number = 213
1385                    ; bind _ircf0 = _osccon@4
1386 0000008f = _ircf0___byte equ _osccon
1387 00000004 = _ircf0___bit equ 4
1388                    ; line_number = 214
1389                    ; bind _osts = _osccon@3
1390 0000008f = _osts___byte equ _osccon
1391 00000003 = _osts___bit equ 3
1392                    ; line_number = 215
1393                    ; bind _iofs = _osccon@2
1394 0000008f = _iofs___byte equ _osccon
1395 00000002 = _iofs___bit equ 2
1396                    ; line_number = 216
1397                    ; bind _scs1 = _osccon@1
1398 0000008f = _scs1___byte equ _osccon
1399 00000001 = _scs1___bit equ 1
1400                    ; line_number = 217
1401                    ; bind _scs0 = _osccon@0
1402 0000008f = _scs0___byte equ _osccon
1403 00000000 = _scs0___bit equ 0
1404            
1405                    ; line_number = 219
1406                    ; register _osctune = 
1407 00000090 = _osctune equ 144
1408                    ; line_number = 220
1409                    ; bind _tun5 = _osctune@5
1410 00000090 = _tun5___byte equ _osctune
1411 00000005 = _tun5___bit equ 5
1412                    ; line_number = 221
1413                    ; bind _tun4 = _osctune@4
1414 00000090 = _tun4___byte equ _osctune
1415 00000004 = _tun4___bit equ 4
1416                    ; line_number = 222
1417                    ; bind _tun3 = _osctune@3
1418 00000090 = _tun3___byte equ _osctune
1419 00000003 = _tun3___bit equ 3
1420                    ; line_number = 223
1421                    ; bind _tun2 = _osctune@2
1422 00000090 = _tun2___byte equ _osctune
1423 00000002 = _tun2___bit equ 2
1424                    ; line_number = 224
1425                    ; bind _tun1 = _osctune@1
1426 00000090 = _tun1___byte equ _osctune
1427 00000001 = _tun1___bit equ 1
1428                    ; line_number = 225
1429                    ; bind _tun0 = _osctune@0
1430 00000090 = _tun0___byte equ _osctune
1431 00000000 = _tun0___bit equ 0
1432            
1433                    ; line_number = 227
1434                    ; register _sspcon2 = 
1435 00000091 = _sspcon2 equ 145
1436                    ; line_number = 228
1437                    ; bind _gcen = _sspcon2@7
1438 00000091 = _gcen___byte equ _sspcon2
1439 00000007 = _gcen___bit equ 7
1440                    ; line_number = 229
1441                    ; bind _ackstat = _sspcon2@6
1442 00000091 = _ackstat___byte equ _sspcon2
1443 00000006 = _ackstat___bit equ 6
1444                    ; line_number = 230
1445                    ; bind _ackdt = _sspcon2@5
1446 00000091 = _ackdt___byte equ _sspcon2
1447 00000005 = _ackdt___bit equ 5
1448                    ; line_number = 231
1449                    ; bind _acken = _sspcon2@4
1450 00000091 = _acken___byte equ _sspcon2
1451 00000004 = _acken___bit equ 4
1452                    ; line_number = 232
1453                    ; bind _rcen = _sspcon2@3
1454 00000091 = _rcen___byte equ _sspcon2
1455 00000003 = _rcen___bit equ 3
1456                    ; line_number = 233
1457                    ; bind _pen = _sspcon2@2
1458 00000091 = _pen___byte equ _sspcon2
1459 00000002 = _pen___bit equ 2
1460                    ; line_number = 234
1461                    ; bind _rsen = _sspcon2@1
1462 00000091 = _rsen___byte equ _sspcon2
1463 00000001 = _rsen___bit equ 1
1464                    ; line_number = 235
1465                    ; bind _sen = _sspcon2@0
1466 00000091 = _sen___byte equ _sspcon2
1467 00000000 = _sen___bit equ 0
1468            
1469                    ; line_number = 237
1470                    ; register _pr2 = 
1471 00000092 = _pr2 equ 146
1472            
1473                    ; line_number = 239
1474                    ; register _sspadd = 
1475 00000093 = _sspadd equ 147
1476            
1477                    ; line_number = 241
1478                    ; register _sspstat = 
1479 00000094 = _sspstat equ 148
1480                    ; line_number = 242
1481                    ; bind _smp = _sspstat@7
1482 00000094 = _smp___byte equ _sspstat
1483 00000007 = _smp___bit equ 7
1484                    ; line_number = 243
1485                    ; bind _cke = _sspstat@6
1486 00000094 = _cke___byte equ _sspstat
1487 00000006 = _cke___bit equ 6
1488                    ; line_number = 244
1489                    ; bind _da = _sspstat@5
1490 00000094 = _da___byte equ _sspstat
1491 00000005 = _da___bit equ 5
1492                    ; line_number = 245
1493                    ; bind _p = _sspstat@4
1494 00000094 = _p___byte equ _sspstat
1495 00000004 = _p___bit equ 4
1496                    ; line_number = 246
1497                    ; bind _s = _sspstat@3
1498 00000094 = _s___byte equ _sspstat
1499 00000003 = _s___bit equ 3
1500                    ; line_number = 247
1501                    ; bind _rw = _sspstat@2
1502 00000094 = _rw___byte equ _sspstat
1503 00000002 = _rw___bit equ 2
1504                    ; line_number = 248
1505                    ; bind _ua = _sspstat@1
1506 00000094 = _ua___byte equ _sspstat
1507 00000001 = _ua___bit equ 1
1508                    ; line_number = 249
1509                    ; bind _bf = _sspstat@0
1510 00000094 = _bf___byte equ _sspstat
1511 00000000 = _bf___bit equ 0
1512            
1513                    ; line_number = 251
1514                    ; register _ccpr3l = 
1515 00000095 = _ccpr3l equ 149
1516            
1517                    ; line_number = 253
1518                    ; register _ccpr3h = 
1519 00000096 = _ccpr3h equ 150
1520            
1521                    ; line_number = 255
1522                    ; register _ccp3con = 
1523 00000096 = _ccp3con equ 150
1524                    ; line_number = 256
1525                    ; bind _ccp3x = _ccp3con@5
1526 00000096 = _ccp3x___byte equ _ccp3con
1527 00000005 = _ccp3x___bit equ 5
1528                    ; line_number = 257
1529                    ; bind _ccp3y = _ccp3con@4
1530 00000096 = _ccp3y___byte equ _ccp3con
1531 00000004 = _ccp3y___bit equ 4
1532                    ; line_number = 258
1533                    ; bind _ccp3m3 = _ccp3con@3
1534 00000096 = _ccp3m3___byte equ _ccp3con
1535 00000003 = _ccp3m3___bit equ 3
1536                    ; line_number = 259
1537                    ; bind _ccp3m2 = _ccp3con@2
1538 00000096 = _ccp3m2___byte equ _ccp3con
1539 00000002 = _ccp3m2___bit equ 2
1540                    ; line_number = 260
1541                    ; bind _ccp3m1 = _ccp3con@1
1542 00000096 = _ccp3m1___byte equ _ccp3con
1543 00000001 = _ccp3m1___bit equ 1
1544                    ; line_number = 261
1545                    ; bind _ccp3m0 = _ccp3con@0
1546 00000096 = _ccp3m0___byte equ _ccp3con
1547 00000000 = _ccp3m0___bit equ 0
1548            
1549                    ; line_number = 263
1550                    ; register _txsta = 
1551 00000098 = _txsta equ 152
1552                    ; line_number = 264
1553                    ; bind _csrc = _txsta@7
1554 00000098 = _csrc___byte equ _txsta
1555 00000007 = _csrc___bit equ 7
1556                    ; line_number = 265
1557                    ; bind _tx9 = _txsta@6
1558 00000098 = _tx9___byte equ _txsta
1559 00000006 = _tx9___bit equ 6
1560                    ; line_number = 266
1561                    ; bind _txen = _txsta@5
1562 00000098 = _txen___byte equ _txsta
1563 00000005 = _txen___bit equ 5
1564                    ; line_number = 267
1565                    ; bind _sync = _txsta@4
1566 00000098 = _sync___byte equ _txsta
1567 00000004 = _sync___bit equ 4
1568                    ; line_number = 268
1569                    ; bind _brgh = _txsta@2
1570 00000098 = _brgh___byte equ _txsta
1571 00000002 = _brgh___bit equ 2
1572                    ; line_number = 269
1573                    ; bind _trmt = _txsta@1
1574 00000098 = _trmt___byte equ _txsta
1575 00000001 = _trmt___bit equ 1
1576                    ; line_number = 270
1577                    ; bind _tx9d = _txsta@0
1578 00000098 = _tx9d___byte equ _txsta
1579 00000000 = _tx9d___bit equ 0
1580            
1581                    ; line_number = 272
1582                    ; register _spbrg = 
1583 00000099 = _spbrg equ 153
1584            
1585                    ; line_number = 274
1586                    ; register _adcon2 = 
1587 0000009b = _adcon2 equ 155
1588                    ; line_number = 275
1589                    ; bind _acqt2 = _adcon2@5
1590 0000009b = _acqt2___byte equ _adcon2
1591 00000005 = _acqt2___bit equ 5
1592                    ; line_number = 276
1593                    ; bind _acqt1 = _adcon2@4
1594 0000009b = _acqt1___byte equ _adcon2
1595 00000004 = _acqt1___bit equ 4
1596                    ; line_number = 277
1597                    ; bind _acqt0 = _adcon2@3
1598 0000009b = _acqt0___byte equ _adcon2
1599 00000003 = _acqt0___bit equ 3
1600            
1601                    ; line_number = 279
1602                    ; register _cmcon = 
1603 0000009c = _cmcon equ 156
1604                    ; line_number = 280
1605                    ; bind _c2out = _cmcon@7
1606 0000009c = _c2out___byte equ _cmcon
1607 00000007 = _c2out___bit equ 7
1608                    ; line_number = 281
1609                    ; bind _c1out = _cmcon@6
1610 0000009c = _c1out___byte equ _cmcon
1611 00000006 = _c1out___bit equ 6
1612                    ; line_number = 282
1613                    ; bind _c2inv = _cmcon@5
1614 0000009c = _c2inv___byte equ _cmcon
1615 00000005 = _c2inv___bit equ 5
1616                    ; line_number = 283
1617                    ; bind _c1inv = _cmcon@4
1618 0000009c = _c1inv___byte equ _cmcon
1619 00000004 = _c1inv___bit equ 4
1620                    ; line_number = 284
1621                    ; bind _cis = _cmcon@3
1622 0000009c = _cis___byte equ _cmcon
1623 00000003 = _cis___bit equ 3
1624                    ; line_number = 285
1625                    ; bind _cm2 = _cmcon@2
1626 0000009c = _cm2___byte equ _cmcon
1627 00000002 = _cm2___bit equ 2
1628                    ; line_number = 286
1629                    ; bind _cm1 = _cmcon@1
1630 0000009c = _cm1___byte equ _cmcon
1631 00000001 = _cm1___bit equ 1
1632                    ; line_number = 287
1633                    ; bind _cm0 = _cmcon@0
1634 0000009c = _cm0___byte equ _cmcon
1635 00000000 = _cm0___bit equ 0
1636            
1637                    ; line_number = 289
1638                    ; register _cvrcon = 
1639 0000009d = _cvrcon equ 157
1640                    ; line_number = 290
1641                    ; bind _cvren = _cvrcon@7
1642 0000009d = _cvren___byte equ _cvrcon
1643 00000007 = _cvren___bit equ 7
1644                    ; line_number = 291
1645                    ; bind _cvroe = _cvrcon@6
1646 0000009d = _cvroe___byte equ _cvrcon
1647 00000006 = _cvroe___bit equ 6
1648                    ; line_number = 292
1649                    ; bind _cvrr = _cvrcon@5
1650 0000009d = _cvrr___byte equ _cvrcon
1651 00000005 = _cvrr___bit equ 5
1652                    ; line_number = 293
1653                    ; bind _cvr3 = _cvrcon@3
1654 0000009d = _cvr3___byte equ _cvrcon
1655 00000003 = _cvr3___bit equ 3
1656                    ; line_number = 294
1657                    ; bind _cvr2 = _cvrcon@2
1658 0000009d = _cvr2___byte equ _cvrcon
1659 00000002 = _cvr2___bit equ 2
1660                    ; line_number = 295
1661                    ; bind _cvr1 = _cvrcon@1
1662 0000009d = _cvr1___byte equ _cvrcon
1663 00000001 = _cvr1___bit equ 1
1664                    ; line_number = 296
1665                    ; bind _cvr0 = _cvrcon@0
1666 0000009d = _cvr0___byte equ _cvrcon
1667 00000000 = _cvr0___bit equ 0
1668            
1669                    ; line_number = 298
1670                    ; register _adresl = 
1671 0000009e = _adresl equ 158
1672            
1673                    ; line_number = 300
1674                    ; register _adcon1 = 
1675 0000009f = _adcon1 equ 159
1676                    ; line_number = 301
1677                    ; bind _adfm = _adcon1@7
1678 0000009f = _adfm___byte equ _adcon1
1679 00000007 = _adfm___bit equ 7
1680                    ; line_number = 302
1681                    ; bind _adcs2 = _adcon1@6
1682 0000009f = _adcs2___byte equ _adcon1
1683 00000006 = _adcs2___bit equ 6
1684                    ; line_number = 303
1685                    ; bind _vfg1 = _adcon1@5
1686 0000009f = _vfg1___byte equ _adcon1
1687 00000005 = _vfg1___bit equ 5
1688                    ; line_number = 304
1689                    ; bind _vfg0 = _adcon1@4
1690 0000009f = _vfg0___byte equ _adcon1
1691 00000004 = _vfg0___bit equ 4
1692                    ; line_number = 305
1693                    ; bind _pcfg3 = _adcon1@3
1694 0000009f = _pcfg3___byte equ _adcon1
1695 00000003 = _pcfg3___bit equ 3
1696                    ; line_number = 306
1697                    ; bind _pcfg2 = _adcon1@2
1698 0000009f = _pcfg2___byte equ _adcon1
1699 00000002 = _pcfg2___bit equ 2
1700                    ; line_number = 307
1701                    ; bind _pcfg1 = _adcon1@1
1702 0000009f = _pcfg1___byte equ _adcon1
1703 00000001 = _pcfg1___bit equ 1
1704                    ; line_number = 308
1705                    ; bind _pcfg0 = _adcon1@0
1706 0000009f = _pcfg0___byte equ _adcon1
1707 00000000 = _pcfg0___bit equ 0
1708            
1709                    ; # Bank 2:
1710            
1711                    ; line_number = 312
1712                    ; register _wdtcon = 
1713 00000105 = _wdtcon equ 261
1714                    ; line_number = 313
1715                    ; bind _wdtps3 = _wdtcon@4
1716 00000105 = _wdtps3___byte equ _wdtcon
1717 00000004 = _wdtps3___bit equ 4
1718                    ; line_number = 314
1719                    ; bind _wdtps2 = _wdtcon@3
1720 00000105 = _wdtps2___byte equ _wdtcon
1721 00000003 = _wdtps2___bit equ 3
1722                    ; line_number = 315
1723                    ; bind _wdtps1 = _wdtcon@2
1724 00000105 = _wdtps1___byte equ _wdtcon
1725 00000002 = _wdtps1___bit equ 2
1726                    ; line_number = 316
1727                    ; bind _wdtps0 = _wdtcon@1
1728 00000105 = _wdtps0___byte equ _wdtcon
1729 00000001 = _wdtps0___bit equ 1
1730                    ; line_number = 317
1731                    ; bind _swdten = _wdtcon@0
1732 00000105 = _swdten___byte equ _wdtcon
1733 00000000 = _swdten___bit equ 0
1734            
1735                    ; line_number = 319
1736                    ; register _lvdcon = 
1737 00000109 = _lvdcon equ 265
1738                    ; line_number = 320
1739                    ; bind _irvst = _lvdcon@5
1740 00000109 = _irvst___byte equ _lvdcon
1741 00000005 = _irvst___bit equ 5
1742                    ; line_number = 321
1743                    ; bind _lvden = _lvdcon@4
1744 00000109 = _lvden___byte equ _lvdcon
1745 00000004 = _lvden___bit equ 4
1746                    ; line_number = 322
1747                    ; bind _lvdl3 = _lvdcon@3
1748 00000109 = _lvdl3___byte equ _lvdcon
1749 00000003 = _lvdl3___bit equ 3
1750                    ; line_number = 323
1751                    ; bind _lvdl2 = _lvdcon@2
1752 00000109 = _lvdl2___byte equ _lvdcon
1753 00000002 = _lvdl2___bit equ 2
1754                    ; line_number = 324
1755                    ; bind _lvdl1 = _lvdcon@1
1756 00000109 = _lvdl1___byte equ _lvdcon
1757 00000001 = _lvdl1___bit equ 1
1758                    ; line_number = 325
1759                    ; bind _lvdl0 = _lvdcon@0
1760 00000109 = _lvdl0___byte equ _lvdcon
1761 00000000 = _lvdl0___bit equ 0
1762            
1763                    ; line_number = 327
1764                    ; register _pmdata = 
1765 0000010c = _pmdata equ 268
1766            
1767                    ; line_number = 329
1768                    ; register _pmadr = 
1769 0000010d = _pmadr equ 269
1770            
1771                    ; line_number = 331
1772                    ; register _pmdath = 
1773 0000010e = _pmdath equ 270
1774            
1775                    ; line_number = 333
1776                    ; register _pmadrh = 
1777 0000010f = _pmadrh equ 271
1778            
1779                    ; # Bank 3:
1780            
1781                    ; line_number = 337
1782                    ; register _pmcon1 = 
1783 0000018c = _pmcon1 equ 396
1784                    ; line_number = 338
1785                    ; bind _rd = _pmcon1@0
1786 0000018c = _rd___byte equ _pmcon1
1787 00000000 = _rd___bit equ 0
1788            
1789            
1790            
1791                    ; buffer = '_pic16f767'
1792                    ; line_number = 341
1793                    ; library _pic16f7x7 exited
1794            
1795            
1796                    ; buffer = 'controller24'
1797                    ; line_number = 10
1798                    ; library _pic16f767 exited
1799            
1800                    ; # The resonator is running at 16MHz:
1801                    ; line_number = 13
1802                    ; library clock16mhz entered
1803                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1804                    ; # All rights reserved.
1805            
1806                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1807                    ; # and {clocks_per_instruction}.
1808            
1809                    ; # Define processor constants:
1810                    ; buffer = 'clock16mhz'
1811                    ; line_number = 9
1812                    ; constant clock_rate = 16000000
1813 00f42400 = clock_rate equ 16000000
1814                    ; line_number = 10
1815                    ; constant clocks_per_instruction = 4
1816 00000004 = clocks_per_instruction equ 4
1817                    ; line_number = 11
1818                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1819 003d0900 = instruction_rate equ 4000000
1820            
1821            
1822                    ; buffer = 'controller24'
1823                    ; line_number = 13
1824                    ; library clock16mhz exited
1825                    ; line_number = 14
1826                    ; constant microsecond = 4
1827 00000004 = microsecond equ 4
1828            
1829                    ; # The library of bus access intialization routines for use by the PIC16F767:
1830                    ; line_number = 17
1831                    ; library rb2bus_pic16f767 entered
1832            
1833                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1834                    ; # All rights reserved.
1835            
1836                    ; # This module provides some procedures for accessing a RoboBricks2
1837                    ; # bus via a UART.  It is speicialized for the PIC16F767.
1838                    ; #
1839                    ; # It defines the following procedure:
1840                    ; #
1841                    ; # {rb2bus_initialize}({address}) The procedure that initializes the UART
1842                    ; #                                for bus access.
1843            
1844                    ; # Make sure we pick up the globals we need:
1845                    ; buffer = 'rb2bus_pic16f767'
1846                    ; line_number = 15
1847                    ; library rb2bus_globals entered
1848            
1849                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1850                    ; # All rights reserved.
1851            
1852                    ; # These are the global variables used by both the {rb2bus} and
1853                    ; # the various {rb2bus_picXXXX} libraries.  Poll based firmware
1854                    ; # uses both libraries, whereas interrupt driven software only
1855                    ; # uses the {rb2bus_picXXX} libraries.
1856            
1857                    ; buffer = 'rb2bus_globals'
1858                    ; line_number = 11
1859                    ; global rb2bus_selected bit	# 
1860 0000006f = rb2bus_selected___byte equ globals___0+79
1861 00000000 = rb2bus_selected___bit equ 0
1862                    ; line_number = 12
1863                    ; global rb2bus_error bit		# Global error bit
1864 0000006f = rb2bus_error___byte equ globals___0+79
1865 00000001 = rb2bus_error___bit equ 1
1866                    ; line_number = 13
1867                    ; global rb2bus_address byte	# Bus address to respond to
1868 00000020 = rb2bus_address equ globals___0
1869                    ; line_number = 14
1870                    ; global rb2bus_index byte	# Index into id information
1871 00000021 = rb2bus_index equ globals___0+1
1872            
1873            
1874                    ; buffer = 'rb2bus_pic16f767'
1875                    ; line_number = 15
1876                    ; library rb2bus_globals exited
1877            
1878                    ; # For the 'F767:
1879                    ; #
1880                    ; #    Baud_rate = Fosc/(16*(SPBRG + 1)) when BRGH=1.
1881                    ; #
1882                    ; # This means:
1883                    ; #
1884                    ; #    SPBRG + 1 = Fosc/(16*Baud_rate)           (1)
1885                    ; #
1886                    ; #    SPGRG = Fosc/(16*Baud_rate) - 1           (2)
1887            
1888                    ; line_number = 27
1889                    ; constant baud_rate_500k = 500000
1890 0007a120 = baud_rate_500k equ 500000
1891                    ; line_number = 28
1892                    ; constant spbrg_500k = clock_rate/(16 * baud_rate_500k) - 1
1893 00000001 = spbrg_500k equ 1
1894            
1895                    ; Delaying code generation for procedure  rb2bus_initialize
1896                    ; Delaying code generation for procedure  rb2bus_eedata_read
1897                    ; Delaying code generation for procedure  rb2bus_eedata_write
1898            
1899                    ; buffer = 'controller24'
1900                    ; line_number = 17
1901                    ; library rb2bus_pic16f767 exited
1902            
1903                    ; # The library of bus access routines:
1904                    ; line_number = 20
1905                    ; library rb2bus entered
1906            
1907                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1908                    ; # All rights reserved.
1909            
1910                    ; # This module provides some procedures for accessing a RoboBricks2
1911                    ; # bus via a UART.
1912                    ; #
1913                    ; # This procedure defines the following procedures:
1914                    ; #
1915                    ; # {rb2bus_select_wait}  This procedure waits for the module to become selected
1916                    ; # {rb2bus_deselect}     This procedure causes this module to be deselected.
1917                    ; # {rb2bus_byte_get}     This procedure will get a byte form the bus.
1918                    ; # {rb2bus_byte_put}     This procedure will send a byte to the bus.
1919                    ; #
1920                    ; # The global variable {rb2bus_error} is set to 1 whenever the procedures
1921                    ; # feel like there is a command decoding error.
1922                    ; #
1923                    ; # The way to use these procedures is quite as follows:
1924                    ; #
1925                    ; #    # Comamnd byte variable:
1926                    ; #    local command byte
1927                    ; #
1928                    ; #    # Other initialize code goes here:
1929                    ; #
1930                    ; #    # Process commands from bus master:
1931                    ; #    loop_forever
1932                    ; #        rb2bus_error := _true
1933                    ; #	 while rb2bus_error
1934                    ; #	     call rb2bus_select_wait()
1935                    ; #	     command := rb2bus_byte_get()
1936                    ; #
1937                    ; #        # Decode command:
1938                    ; #	 switch command >> 6
1939                    ; #	   ...
1940                    ; #             case 5:
1941                    ; #	        # 0000 0101 (Foo command):
1942                    ; #	          if !rb2bus_error
1943                    ; #		      # Do foo command:
1944                    ; #
1945                    ; # The key concept behind these procedures is to make command
1946                    ; # decoding for the slave module easy.  If the slave module
1947                    ; # is in the middle of command decoding and the master suddenly
1948                    ; # sends out a module select command, we need to gracefully recover
1949                    ; # from the problem.  A command should only be executed if
1950                    ; # {rb2bus_error} is not set.  If {rb2bus_error} is set, we want
1951                    ; # to gracefully get back to the beginning of the loop without
1952                    ; # doing any damage.  Once {rb2bus_error} is set, all calls to
1953                    ; # {rb2bus_byte_get} return 0 and all calls to {rb2bus_byte_put}
1954                    ; # do nothing.  At the beginning of the loop, {rb2bus_error} is
1955                    ; # cleared by the {rb2bus_select_wait}() procedure and we have
1956                    ; # recovered from the situation.
1957            
1958                    ; buffer = 'rb2bus'
1959                    ; line_number = 54
1960                    ; library rb2_constants entered
1961            
1962                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich.
1963                    ; # All rights reserved.
1964            
1965                    ; buffer = 'rb2_constants'
1966                    ; line_number = 6
1967                    ; constant rb2_ok = 0xa5
1968 000000a5 = rb2_ok equ 165
1969            
1970                    ; line_number = 8
1971                    ; constant rb2_common_address_set = 0xfc
1972 000000fc = rb2_common_address_set equ 252
1973                    ; line_number = 9
1974                    ; constant rb2_common_id_next = 0xfd
1975 000000fd = rb2_common_id_next equ 253
1976                    ; line_number = 10
1977                    ; constant rb2_common_id_start = 0xfe
1978 000000fe = rb2_common_id_start equ 254
1979                    ; line_number = 11
1980                    ; constant rb2_common_deselect = 0xff
1981 000000ff = rb2_common_deselect equ 255
1982            
1983                    ; line_number = 13
1984                    ; constant rb2_laser1_address = 1
1985 00000001 = rb2_laser1_address equ 1
1986            
1987                    ; line_number = 15
1988                    ; constant rb2_minimotor2_address = 2
1989 00000002 = rb2_minimotor2_address equ 2
1990                    ; line_number = 16
1991                    ; constant rb2_midimotor2_address = 3
1992 00000003 = rb2_midimotor2_address equ 3
1993                    ; line_number = 17
1994                    ; constant rb2_motor0_speed_get = 0
1995 00000000 = rb2_motor0_speed_get equ 0
1996                    ; line_number = 18
1997                    ; constant rb2_motor0_speed_set = 1
1998 00000001 = rb2_motor0_speed_set equ 1
1999                    ; line_number = 19
2000                    ; constant rb2_motor1_speed_get = 2
2001 00000002 = rb2_motor1_speed_get equ 2
2002                    ; line_number = 20
2003                    ; constant rb2_motor1_speed_set = 3
2004 00000003 = rb2_motor1_speed_set equ 3
2005                    ; line_number = 21
2006                    ; constant rb2_duty_cycle_get = 4
2007 00000004 = rb2_duty_cycle_get equ 4
2008                    ; line_number = 22
2009                    ; constant rb2_duty_cycle_set = 8
2010 00000008 = rb2_duty_cycle_set equ 8
2011            
2012                    ; line_number = 24
2013                    ; constant rb2_irdistance2_address = 4
2014 00000004 = rb2_irdistance2_address equ 4
2015                    ; line_number = 25
2016                    ; constant rb2_irdistance2_raw0_get = 0
2017 00000000 = rb2_irdistance2_raw0_get equ 0
2018                    ; line_number = 26
2019                    ; constant rb2_irdistance2_raw1_get = 1
2020 00000001 = rb2_irdistance2_raw1_get equ 1
2021                    ; line_number = 27
2022                    ; constant rb2_irdistance2_smooth0_get = 2
2023 00000002 = rb2_irdistance2_smooth0_get equ 2
2024                    ; line_number = 28
2025                    ; constant rb2_irdistance2_smooth1_get = 3
2026 00000003 = rb2_irdistance2_smooth1_get equ 3
2027                    ; line_number = 29
2028                    ; constant rb2_irdistance2_linear0_get = 4
2029 00000004 = rb2_irdistance2_linear0_get equ 4
2030                    ; line_number = 30
2031                    ; constant rb2_irdistance2_linear1_get = 6
2032 00000006 = rb2_irdistance2_linear1_get equ 6
2033            
2034                    ; line_number = 32
2035                    ; constant rb2_shaft2_address = 5
2036 00000005 = rb2_shaft2_address equ 5
2037                    ; line_number = 33
2038                    ; constant rb2_shaft2_count_latch = 0
2039 00000000 = rb2_shaft2_count_latch equ 0
2040                    ; line_number = 34
2041                    ; constant rb2_shaft2_count_clear = 1
2042 00000001 = rb2_shaft2_count_clear equ 1
2043                    ; line_number = 35
2044                    ; constant rb2_shaft2_shaft0_high_get = 2
2045 00000002 = rb2_shaft2_shaft0_high_get equ 2
2046                    ; line_number = 36
2047                    ; constant rb2_shaft2_shaft1_high_get = 3
2048 00000003 = rb2_shaft2_shaft1_high_get equ 3
2049                    ; line_number = 37
2050                    ; constant rb2_shaft2_continue_get = 4
2051 00000004 = rb2_shaft2_continue_get equ 4
2052                    ; line_number = 38
2053                    ; constant rb2_shaft2_shaft0_low_get = rb2_shaft2_continue_get
2054 00000004 = rb2_shaft2_shaft0_low_get equ 4
2055                    ; line_number = 39
2056                    ; constant rb2_shaft2_shaft1_low_get = rb2_shaft2_continue_get
2057 00000004 = rb2_shaft2_shaft1_low_get equ 4
2058                    ; line_number = 40
2059                    ; constant rb2_shaft2_x_get = 0x10
2060 00000010 = rb2_shaft2_x_get equ 16
2061                    ; line_number = 41
2062                    ; constant rb2_shaft2_y_get = 0x11
2063 00000011 = rb2_shaft2_y_get equ 17
2064                    ; line_number = 42
2065                    ; constant rb2_shaft2_bearing16_get = 0x12
2066 00000012 = rb2_shaft2_bearing16_get equ 18
2067                    ; line_number = 43
2068                    ; constant rb2_shaft2_bearing8_get = 0x13
2069 00000013 = rb2_shaft2_bearing8_get equ 19
2070                    ; line_number = 44
2071                    ; constant rb2_shaft2_target_x_get = 0x14
2072 00000014 = rb2_shaft2_target_x_get equ 20
2073                    ; line_number = 45
2074                    ; constant rb2_shaft2_target_y_get = 0x15
2075 00000015 = rb2_shaft2_target_y_get equ 21
2076                    ; line_number = 46
2077                    ; constant rb2_shaft2_target_bearing16_get = 0x16
2078 00000016 = rb2_shaft2_target_bearing16_get equ 22
2079                    ; line_number = 47
2080                    ; constant rb2_shaft2_target_bearing8_get = 0x17
2081 00000017 = rb2_shaft2_target_bearing8_get equ 23
2082                    ; line_number = 48
2083                    ; constant rb2_shaft2_target_distance_get = 0x18
2084 00000018 = rb2_shaft2_target_distance_get equ 24
2085                    ; line_number = 49
2086                    ; constant rb2_shaft2_wheel_spacing_get = 0x19
2087 00000019 = rb2_shaft2_wheel_spacing_get equ 25
2088                    ; line_number = 50
2089                    ; constant rb2_shaft2_wheel_ticks_get = 0x1a
2090 0000001a = rb2_shaft2_wheel_ticks_get equ 26
2091                    ; line_number = 51
2092                    ; constant rb2_shaft2_wheel_diameter_get = 0x1b
2093 0000001b = rb2_shaft2_wheel_diameter_get equ 27
2094                    ; line_number = 52
2095                    ; constant rb2_shaft2_x_set = 0x20
2096 00000020 = rb2_shaft2_x_set equ 32
2097                    ; line_number = 53
2098                    ; constant rb2_shaft2_y_set = 0x21
2099 00000021 = rb2_shaft2_y_set equ 33
2100                    ; line_number = 54
2101                    ; constant rb2_shaft2_bearing16_set = 0x22
2102 00000022 = rb2_shaft2_bearing16_set equ 34
2103                    ; line_number = 55
2104                    ; constant rb2_shaft2_navigation_latch = 0x23
2105 00000023 = rb2_shaft2_navigation_latch equ 35
2106                    ; line_number = 56
2107                    ; constant rb2_shaft2_target_x_set = 0x24
2108 00000024 = rb2_shaft2_target_x_set equ 36
2109                    ; line_number = 57
2110                    ; constant rb2_shaft2_target_y_set = 0x25
2111 00000025 = rb2_shaft2_target_y_set equ 37
2112                    ; line_number = 58
2113                    ; constant rb2_shaft2_wheel_spacing_set = 0x29
2114 00000029 = rb2_shaft2_wheel_spacing_set equ 41
2115                    ; line_number = 59
2116                    ; constant rb2_shaft2_wheel_ticks_set = 0x2a
2117 0000002a = rb2_shaft2_wheel_ticks_set equ 42
2118                    ; line_number = 60
2119                    ; constant rb2_shaft2_wheel_diameter_set = 0x2b
2120 0000002b = rb2_shaft2_wheel_diameter_set equ 43
2121            
2122            
2123                    ; line_number = 63
2124                    ; constant rb2_orient5_address = 6
2125 00000006 = rb2_orient5_address equ 6
2126            
2127                    ; line_number = 65
2128                    ; constant rb2_compass8_address = 7
2129 00000007 = rb2_compass8_address equ 7
2130            
2131                    ; line_number = 67
2132                    ; constant rb2_io8_address = 8
2133 00000008 = rb2_io8_address equ 8
2134                    ; line_number = 68
2135                    ; constant rb2_io8_digital8_get = 0
2136 00000000 = rb2_io8_digital8_get equ 0
2137                    ; line_number = 69
2138                    ; constant rb2_io8_digital8_set = 1
2139 00000001 = rb2_io8_digital8_set equ 1
2140                    ; line_number = 70
2141                    ; constant rb2_io8_direction_get = 2
2142 00000002 = rb2_io8_direction_get equ 2
2143                    ; line_number = 71
2144                    ; constant rb2_io8_direction_set = 3
2145 00000003 = rb2_io8_direction_set equ 3
2146                    ; line_number = 72
2147                    ; constant rb2_io8_analog_mask_get = 4
2148 00000004 = rb2_io8_analog_mask_get equ 4
2149                    ; line_number = 73
2150                    ; constant rb2_io8_analog_mask_set = 5
2151 00000005 = rb2_io8_analog_mask_set equ 5
2152                    ; line_number = 74
2153                    ; constant rb2_io8_analog8_get = 0x10
2154 00000010 = rb2_io8_analog8_get equ 16
2155                    ; line_number = 75
2156                    ; constant rb2_io8_analog10_get = 0x18
2157 00000018 = rb2_io8_analog10_get equ 24
2158                    ; line_number = 76
2159                    ; constant rb2_low_set = 0x20
2160 00000020 = rb2_low_set equ 32
2161                    ; line_number = 77
2162                    ; constant rb2_high_set = 0x30
2163 00000030 = rb2_high_set equ 48
2164            
2165                    ; line_number = 79
2166                    ; constant rb2_sonar2_address = 9
2167 00000009 = rb2_sonar2_address equ 9
2168            
2169                    ; line_number = 81
2170                    ; constant rb2_voice1_address = 10
2171 0000000a = rb2_voice1_address equ 10
2172            
2173                    ; line_number = 83
2174                    ; constant rb2_servo4_address = 11
2175 0000000b = rb2_servo4_address equ 11
2176                    ; line_number = 84
2177                    ; constant rb2_servo4_servo0 = 0
2178 00000000 = rb2_servo4_servo0 equ 0
2179                    ; line_number = 85
2180                    ; constant rb2_servo4_servo1 = 1
2181 00000001 = rb2_servo4_servo1 equ 1
2182                    ; line_number = 86
2183                    ; constant rb2_servo4_servo2 = 2
2184 00000002 = rb2_servo4_servo2 equ 2
2185                    ; line_number = 87
2186                    ; constant rb2_servo4_servo3 = 3
2187 00000003 = rb2_servo4_servo3 equ 3
2188                    ; line_number = 88
2189                    ; constant rb2_servo4_quick_set = 0
2190 00000000 = rb2_servo4_quick_set equ 0
2191                    ; line_number = 89
2192                    ; constant rb2_servo4_quick_low = 0
2193 00000000 = rb2_servo4_quick_low equ 0
2194                    ; line_number = 90
2195                    ; constant rb2_servo4_quick_center = 40
2196 00000028 = rb2_servo4_quick_center equ 40
2197                    ; line_number = 91
2198                    ; constant rb2_servo4_quick_high = 0x7c
2199 0000007c = rb2_servo4_quick_high equ 124
2200                    ; line_number = 92
2201                    ; constant rb2_servo4_high_low_set = 0x80
2202 00000080 = rb2_servo4_high_low_set equ 128
2203                    ; line_number = 93
2204                    ; constant rb2_servo4_short_high_low_set = 0x84
2205 00000084 = rb2_servo4_short_high_low_set equ 132
2206                    ; line_number = 94
2207                    ; constant rb2_servo4_high_set = 0x88
2208 00000088 = rb2_servo4_high_set equ 136
2209                    ; line_number = 95
2210                    ; constant rb2_servo4_low_set = 0x8c
2211 0000008c = rb2_servo4_low_set equ 140
2212                    ; line_number = 96
2213                    ; constant rb2_servo4_enables_set = 0x90
2214 00000090 = rb2_servo4_enables_set equ 144
2215                    ; line_number = 97
2216                    ; constant rb2_servo4_enable0 = 1
2217 00000001 = rb2_servo4_enable0 equ 1
2218                    ; line_number = 98
2219                    ; constant rb2_servo4_enable1 = 2
2220 00000002 = rb2_servo4_enable1 equ 2
2221                    ; line_number = 99
2222                    ; constant rb2_servo4_enable2 = 4
2223 00000004 = rb2_servo4_enable2 equ 4
2224                    ; line_number = 100
2225                    ; constant rb2_servo4_enable3 = 8
2226 00000008 = rb2_servo4_enable3 equ 8
2227                    ; line_number = 101
2228                    ; constant rb2_servo4_enable_all = 0xf
2229 0000000f = rb2_servo4_enable_all equ 15
2230                    ; line_number = 102
2231                    ; constant rb2_servo4_enable_none = 0
2232 00000000 = rb2_servo4_enable_none equ 0
2233                    ; line_number = 103
2234                    ; constant rb2_servo4_high_get = 0xa0
2235 000000a0 = rb2_servo4_high_get equ 160
2236                    ; line_number = 104
2237                    ; constant rb2_servo4_low_get = 0xa4
2238 000000a4 = rb2_servo4_low_get equ 164
2239                    ; line_number = 105
2240                    ; constant rb2_servo4_enables_get = 0xa8
2241 000000a8 = rb2_servo4_enables_get equ 168
2242            
2243                    ; line_number = 107
2244                    ; constant rb2_controller28_address = 28
2245 0000001c = rb2_controller28_address equ 28
2246            
2247                    ; line_number = 109
2248                    ; constant rb2_lcd32_address = 32
2249 00000020 = rb2_lcd32_address equ 32
2250                    ; line_number = 110
2251                    ; constant rb2_lcd32_new_line = 0xa
2252 0000000a = rb2_lcd32_new_line equ 10
2253                    ; line_number = 111
2254                    ; constant rb2_lcd32_form_feed = 0xc
2255 0000000c = rb2_lcd32_form_feed equ 12
2256                    ; line_number = 112
2257                    ; constant rb2_lcd32_carriage_return = 0xd
2258 0000000d = rb2_lcd32_carriage_return equ 13
2259                    ; line_number = 113
2260                    ; constant rb2_lcd32_column_set = 0x20
2261 00000020 = rb2_lcd32_column_set equ 32
2262            
2263            
2264                    ; buffer = 'rb2bus'
2265                    ; line_number = 54
2266                    ; library rb2_constants exited
2267                    ; line_number = 55
2268                    ; library rb2bus_globals Skipped (duplicate)
2269            
2270                    ; Delaying code generation for procedure  rb2bus_select_wait
2271                    ; Delaying code generation for procedure  rb2bus_deselect
2272                    ; Delaying code generation for procedure  rb2bus_byte_get
2273                    ; Delaying code generation for procedure  rb2bus_byte_put
2274                    ; Delaying code generation for procedure  rb2bus_command
2275            
2276                    ; buffer = 'controller24'
2277                    ; line_number = 20
2278                    ; library rb2bus exited
2279            
2280                    ; # This module uses a 16Mhz resonator; hence mode HS=High Speed:
2281            
2282                    ; # Only the RX and TX pins on this package are used:
2283                    ; line_number = 26
2284                    ; package pdip
2285                    ; line_number = 27
2286                    ; pin 1 = mclr
2287                    ; line_number = 28
2288                    ;  pin 2 = ra0_unused
2289                    ; line_number = 29
2290                    ;  pin 3 = ra1_unused
2291                    ; line_number = 30
2292                    ;  pin 4 = ra2_unused
2293                    ; line_number = 31
2294                    ;  pin 5 = ra3_unused
2295                    ; line_number = 32
2296                    ;  pin 6 = ra4_unused
2297                    ; line_number = 33
2298                    ;  pin 7 = ra5_unused
2299                    ; line_number = 34
2300                    ;  pin 8 = ground
2301                    ; line_number = 35
2302                    ;  pin 9 = osc1
2303                    ; line_number = 36
2304                    ;  pin 10 = osc2
2305                    ; line_number = 37
2306                    ;  pin 11 = rc0_unused
2307                    ; line_number = 38
2308                    ;  pin 12 = rc1_unused
2309                    ; line_number = 39
2310                    ;  pin 13 = rc2_unused
2311                    ; line_number = 40
2312                    ;  pin 14 = rc3_unused
2313                    ; line_number = 41
2314                    ;  pin 15 = rc4_unused
2315                    ; line_number = 42
2316                    ;  pin 16 = rc5_unused
2317                    ; line_number = 43
2318                    ;  pin 17 = tx
2319                    ; line_number = 44
2320                    ;  pin 18 = rx
2321                    ; line_number = 45
2322                    ;  pin 19 = ground2
2323                    ; line_number = 46
2324                    ;  pin 20 = power_supply
2325                    ; line_number = 47
2326                    ;  pin 21 = rb0_unused
2327                    ; line_number = 48
2328                    ;  pin 22 = rb1_unused
2329                    ; line_number = 49
2330                    ;  pin 23 = rb2_unused
2331                    ; line_number = 50
2332                    ;  pin 24 = rb3_unused
2333                    ; line_number = 51
2334                    ;  pin 25 = rb4_unused
2335                    ; line_number = 52
2336                    ;  pin 26 = rb5_unused
2337                    ; line_number = 53
2338                    ;  pin 27 = rb6_unused
2339                    ; line_number = 54
2340                    ;  pin 28 = rb7_unused
2341            
2342                    ; line_number = 56
2343                    ; origin 0
2344   0000 :           org     0
2345            
2346                    ; line_number = 58
2347                    ;info   58, 0
2348                    ; procedure main
2349   0000 :   main:
2350                    ; Initialize some registers
2351 0000 019f          clrf    _adcon0
2352 0001 300f          movlw   15
2353 0002 1683          bsf     __rp0___byte, __rp0___bit
2354 0003 009f          movwf   _adcon1
2355 0004 30ff          movlw   255
2356 0005 0086          movwf   _trisb
2357 0006 30bf          movlw   191
2358 0007 0087          movwf   _trisc
2359                    ; arguments_none
2360                    ; line_number = 60
2361                    ;  returns_nothing
2362            
2363                    ; line_number = 62
2364                    ;  local command byte
2365 0000002a = main__command equ globals___0+10
2366                    ; line_number = 63
2367                    ;  local id_index byte
2368 0000002b = main__id_index equ globals___0+11
2369            
2370                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:00=uu=>00)
2371                    ; line_number = 65
2372                    ;  call rb2bus_initialize(28)
2373                    ;info   65, 8
2374 0008 301c          movlw   28
2375 0009 1283          bcf     __rp0___byte, __rp0___bit
2376 000a 20ef          call    rb2bus_initialize
2377            
2378                    ; line_number = 67
2379                    ;  id_index := 0
2380                    ;info   67, 11
2381 000b 01ab          clrf    main__id_index
2382            
2383                    ; line_number = 69
2384                    ;  loop_forever start
2385   000c :   main__1:
2386                    ; # Make sure that we have been selected:
2387                    ; line_number = 71
2388                    ;  rb2bus_error := _true
2389                    ;info   71, 12
2390 000c 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2391                    ; line_number = 72
2392                    ;  while rb2bus_error start
2393   000d :   main__2:
2394                    ;info   72, 13
2395                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2396                    ; No 1TEST: true.size=4 false.size=0
2397                    ; No 2TEST: true.size=4 false.size=0
2398                    ; 1GOTO: Single test with GOTO
2399 000d 1cef          btfss   rb2bus_error___byte, rb2bus_error___bit
2400 000e 2813          goto    main__3
2401                    ; line_number = 73
2402                    ; call rb2bus_select_wait()
2403                    ;info   73, 15
2404 000f 210a          call    rb2bus_select_wait
2405                    ; line_number = 74
2406                    ;  command := rb2bus_byte_get()
2407                    ;info   74, 16
2408 0010 2129          call    rb2bus_byte_get
2409 0011 00aa          movwf   main__command
2410            
2411 0012 280d          goto    main__2
2412                    ; Recombine size1 = 0 || size2 = 0
2413   0013 :   main__3:
2414                    ; line_number = 72
2415                    ;  while rb2bus_error done
2416                    ; line_number = 76
2417                    ; switch command >> 6 start
2418                    ;info   76, 19
2419                    ; switch_before:(data:00=uu=>00 code:00=uu=>00) size=7
2420 0013 3000          movlw   main__23>>8
2421 0014 008a          movwf   __pclath
2422 00000034 = main__24 equ globals___0+20
2423 0015 0e2a          swapf   main__command,w
2424 0016 00b4          movwf   main__24
2425 0017 0cb4          rrf     main__24,f
2426 0018 0c34          rrf     main__24,w
2427 0019 3903          andlw   3
2428                    ; switch after expression:(data:00=uu=>00 code:00=uu=>00)
2429 001a 3e1c          addlw   main__23
2430 001b 0082          movwf   __pcl
2431                    ; page_group 4
2432   001c :   main__23:
2433 001c 286c          goto    main__25
2434 001d 286c          goto    main__25
2435 001e 2820          goto    main__21
2436 001f 2841          goto    main__22
2437                    ; line_number = 77
2438                    ; case 2
2439   0020 :   main__21:
2440                    ; # 10xx xxxx:
2441                    ; line_number = 79
2442                    ;  switch (command >> 3) & 7 start
2443                    ;info   79, 32
2444                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2445                    ; line_number = 87
2446                    ; case_maximum 7
2447 0020 3000          movlw   main__8>>8
2448 0021 008a          movwf   __pclath
2449 00000034 = main__9 equ globals___0+20
2450 0022 0c2a          rrf     main__command,w
2451 0023 00b4          movwf   main__9
2452 0024 0cb4          rrf     main__9,f
2453 0025 0c34          rrf     main__9,w
2454 0026 3907          andlw   7
2455                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2456 0027 3e29          addlw   main__8
2457 0028 0082          movwf   __pcl
2458                    ; page_group 8
2459   0029 :   main__8:
2460 0029 2831          goto    main__7
2461 002a 2840          goto    main__10
2462 002b 2840          goto    main__10
2463 002c 2840          goto    main__10
2464 002d 2840          goto    main__10
2465 002e 2840          goto    main__10
2466 002f 2840          goto    main__10
2467 0030 2840          goto    main__10
2468                    ; line_number = 80
2469                    ; case 0
2470   0031 :   main__7:
2471                    ; # 1000 0xxx:
2472                    ; line_number = 82
2473                    ;  switch command & 7 start
2474                    ;info   82, 49
2475                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2476                    ; line_number = 86
2477                    ; case_maximum 7
2478 0031 3000          movlw   main__5>>8
2479 0032 008a          movwf   __pclath
2480 0033 3007          movlw   7
2481 0034 052a          andwf   main__command,w
2482                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2483 0035 3e37          addlw   main__5
2484 0036 0082          movwf   __pcl
2485                    ; page_group 8
2486   0037 :   main__5:
2487 0037 283f          goto    main__4
2488 0038 2840          goto    main__6
2489 0039 2840          goto    main__6
2490 003a 2840          goto    main__6
2491 003b 2840          goto    main__6
2492 003c 2840          goto    main__6
2493 003d 2840          goto    main__6
2494 003e 2840          goto    main__6
2495                    ; line_number = 83
2496                    ; case 0
2497   003f :   main__4:
2498                    ; # 1000 0000 (Run Program)
2499                    ; line_number = 85
2500                    ;  call program()
2501                    ;info   85, 63
2502 003f 206e          call    program
2503   0040 :   main__6:
2504                    ; line_number = 82
2505                    ;  switch command & 7 done
2506   0040 :   main__10:
2507                    ; line_number = 79
2508                    ;  switch (command >> 3) & 7 done
2509 0040 286c          goto    main__25
2510                    ; line_number = 88
2511                    ; case 3
2512   0041 :   main__22:
2513                    ; # 11xx xxxx:
2514                    ; line_number = 90
2515                    ;  switch (command >> 3) & 7 start
2516                    ;info   90, 65
2517                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2518 0041 3000          movlw   main__18>>8
2519 0042 008a          movwf   __pclath
2520 00000034 = main__19 equ globals___0+20
2521 0043 0c2a          rrf     main__command,w
2522 0044 00b4          movwf   main__19
2523 0045 0cb4          rrf     main__19,f
2524 0046 0c34          rrf     main__19,w
2525 0047 3907          andlw   7
2526                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2527 0048 3e4a          addlw   main__18
2528 0049 0082          movwf   __pcl
2529                    ; page_group 8
2530   004a :   main__18:
2531 004a 286c          goto    main__20
2532 004b 286c          goto    main__20
2533 004c 286c          goto    main__20
2534 004d 286c          goto    main__20
2535 004e 286c          goto    main__20
2536 004f 286c          goto    main__20
2537 0050 286c          goto    main__20
2538 0051 2852          goto    main__17
2539                    ; line_number = 91
2540                    ; case 7
2541   0052 :   main__17:
2542                    ; # 1111 1xxx:
2543                    ; line_number = 93
2544                    ;  switch command & 7 start
2545                    ;info   93, 82
2546                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2547 0052 3000          movlw   main__15>>8
2548 0053 008a          movwf   __pclath
2549 0054 3007          movlw   7
2550 0055 052a          andwf   main__command,w
2551                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2552 0056 3e58          addlw   main__15
2553 0057 0082          movwf   __pcl
2554                    ; page_group 8
2555   0058 :   main__15:
2556 0058 286c          goto    main__16
2557 0059 286c          goto    main__16
2558 005a 286c          goto    main__16
2559 005b 286c          goto    main__16
2560 005c 286c          goto    main__16
2561 005d 2860          goto    main__12
2562 005e 2869          goto    main__13
2563 005f 286b          goto    main__14
2564                    ; line_number = 94
2565                    ; case 5
2566   0060 :   main__12:
2567                    ; # 1111 1101 (Id_next):
2568                    ; line_number = 96
2569                    ;  if id_index < id.size start
2570                    ;info   96, 96
2571 0060 301c          movlw   28
2572 0061 022b          subwf   main__id_index,w
2573                    ; =>bit_code_emit@symbol(): sym=__c
2574                    ; No 1TEST: true.size=0 false.size=4
2575                    ; No 2TEST: true.size=0 false.size=4
2576                    ; 1GOTO: Single test with GOTO
2577 0062 1803          btfsc   __c___byte, __c___bit
2578 0063 2868          goto    main__11
2579                    ; line_number = 97
2580                    ; call rb2bus_byte_put(id[id_index])
2581                    ;info   97, 100
2582 0064 082b          movf    main__id_index,w
2583 0065 20cd          call    id
2584 0066 214b          call    rb2bus_byte_put
2585                    ; line_number = 98
2586                    ;  id_index := id_index + 1
2587                    ;info   98, 103
2588 0067 0aab          incf    main__id_index,f
2589   0068 :   main__11:
2590                    ; Recombine size1 = 0 || size2 = 0
2591                    ; line_number = 96
2592                    ;  if id_index < id.size done
2593 0068 286c          goto    main__16
2594                    ; line_number = 99
2595                    ; case 6
2596   0069 :   main__13:
2597                    ; # 1111 1110 (Id_start):
2598                    ; line_number = 101
2599                    ;  id_index := 0
2600                    ;info   101, 105
2601 0069 01ab          clrf    main__id_index
2602 006a 286c          goto    main__16
2603                    ; line_number = 102
2604                    ; case 7
2605   006b :   main__14:
2606                    ; # 1111 1111 (Deselect):
2607                    ; line_number = 104
2608                    ;  call rb2bus_deselect()
2609                    ;info   104, 107
2610 006b 2127          call    rb2bus_deselect
2611            
2612   006c :   main__16:
2613                    ; line_number = 93
2614                    ;  switch command & 7 done
2615   006c :   main__20:
2616                    ; line_number = 90
2617                    ;  switch (command >> 3) & 7 done
2618   006c :   main__25:
2619                    ; line_number = 76
2620                    ; switch command >> 6 done
2621                    ; line_number = 69
2622                    ;  loop_forever wrap-up
2623 006c 280c          goto    main__1
2624                    ; line_number = 69
2625                    ;  loop_forever done
2626                    ; delay after procedure statements=non-uniform
2627            
2628            
2629            
2630            
2631                    ; line_number = 106
2632                    ;info   106, 109
2633                    ; procedure wait
2634   006d :   wait:
2635                    ; arguments_none
2636                    ; line_number = 108
2637                    ;  returns_nothing
2638            
2639                    ; # This procedure is repeatably called whenever the software
2640                    ; # is waiting for a byte to arrive from the bus.
2641            
2642                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
2643                    ; line_number = 113
2644                    ;  do_nothing
2645                    ;info   113, 109
2646            
2647                    ; delay after procedure statements=non-uniform
2648                    ; Implied return
2649 006d 3400          retlw   0
2650            
2651            
2652            
2653            
2654                    ; line_number = 115
2655                    ; constant stopped = 0
2656 00000000 = stopped equ 0
2657                    ; line_number = 116
2658                    ; constant forward_fast = 0x4f
2659 0000004f = forward_fast equ 79
2660                    ; line_number = 117
2661                    ; constant forward_slow = 0x17
2662 00000017 = forward_slow equ 23
2663                    ; line_number = 118
2664                    ; constant reverse_slow = 0-0x2f
2665 ffffffd1 = reverse_slow equ 4294967249
2666            
2667                    ; line_number = 120
2668                    ;info   120, 110
2669                    ; procedure program
2670   006e :   program:
2671                    ; arguments_none
2672                    ; line_number = 122
2673                    ;  returns_nothing
2674            
2675                    ; # This is a quick little program to copy the contents of
2676                    ; # A/D channel 0 on the IO8 to the motor 0 speed on the
2677                    ; # MiniMotor2.
2678            
2679                    ; line_number = 128
2680                    ;  local sensor_front byte
2681 0000002c = program__sensor_front equ globals___0+12
2682                    ; line_number = 129
2683                    ;  local sensor_left byte
2684 0000002d = program__sensor_left equ globals___0+13
2685                    ; line_number = 130
2686                    ;  local sensor_right byte
2687 0000002e = program__sensor_right equ globals___0+14
2688                    ; line_number = 131
2689                    ;  local speed_left byte
2690 0000002f = program__speed_left equ globals___0+15
2691                    ; line_number = 132
2692                    ;  local speed_right byte
2693 00000030 = program__speed_right equ globals___0+16
2694            
2695                    ; # Initialize the IO8:
2696                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
2697                    ; line_number = 135
2698                    ;  call rb2bus_address_put(8)
2699                    ;info   135, 110
2700 006e 3008          movlw   8
2701 006f 20a6          call    rb2bus_address_put
2702            
2703                    ; # Select make all pins into outputs:
2704                    ; line_number = 138
2705                    ;  call rb2bus_byte_put(3)
2706                    ;info   138, 112
2707 0070 3003          movlw   3
2708 0071 214b          call    rb2bus_byte_put
2709                    ; line_number = 139
2710                    ;  call rb2bus_byte_put(0xff)
2711                    ;info   139, 114
2712 0072 30ff          movlw   255
2713 0073 214b          call    rb2bus_byte_put
2714                    ; line_number = 140
2715                    ;  call rb2bus_byte_get()
2716                    ;info   140, 116
2717 0074 2129          call    rb2bus_byte_get
2718            
2719                    ; # Make all pins A/D:
2720                    ; line_number = 143
2721                    ;  call rb2bus_byte_put(5)
2722                    ;info   143, 117
2723 0075 3005          movlw   5
2724 0076 214b          call    rb2bus_byte_put
2725                    ; line_number = 144
2726                    ;  call rb2bus_byte_put(0xff)
2727                    ;info   144, 119
2728 0077 30ff          movlw   255
2729 0078 214b          call    rb2bus_byte_put
2730                    ; line_number = 145
2731                    ;  call rb2bus_byte_get()
2732                    ;info   145, 121
2733 0079 2129          call    rb2bus_byte_get
2734            
2735                    ; line_number = 147
2736                    ;  loop_forever start
2737   007a :   program__1:
2738                    ; # Read the speed from the IO8:
2739                    ; line_number = 149
2740                    ;  call rb2bus_address_put(8)
2741                    ;info   149, 122
2742 007a 3008          movlw   8
2743 007b 20a6          call    rb2bus_address_put
2744                    ; line_number = 150
2745                    ;  call rb2bus_byte_put(0x12)
2746                    ;info   150, 124
2747 007c 3012          movlw   18
2748 007d 214b          call    rb2bus_byte_put
2749                    ; line_number = 151
2750                    ;  sensor_left := rb2bus_byte_get()
2751                    ;info   151, 126
2752 007e 2129          call    rb2bus_byte_get
2753 007f 00ad          movwf   program__sensor_left
2754                    ; line_number = 152
2755                    ;  call rb2bus_byte_put(0x14)
2756                    ;info   152, 128
2757 0080 3014          movlw   20
2758 0081 214b          call    rb2bus_byte_put
2759                    ; line_number = 153
2760                    ;  sensor_front := rb2bus_byte_get()
2761                    ;info   153, 130
2762 0082 2129          call    rb2bus_byte_get
2763 0083 00ac          movwf   program__sensor_front
2764                    ; line_number = 154
2765                    ;  call rb2bus_byte_put(0x16)
2766                    ;info   154, 132
2767 0084 3016          movlw   22
2768 0085 214b          call    rb2bus_byte_put
2769                    ; line_number = 155
2770                    ;  sensor_right := rb2bus_byte_get()
2771                    ;info   155, 134
2772 0086 2129          call    rb2bus_byte_get
2773 0087 00ae          movwf   program__sensor_right
2774            
2775                    ; line_number = 157
2776                    ;  if sensor_front@7 start
2777                    ;info   157, 136
2778 0000002c = program__select__5___byte equ program__sensor_front
2779 00000007 = program__select__5___bit equ 7
2780                    ; =>bit_code_emit@symbol(): sym=program__select__5
2781                    ; No 1TEST: true.size=4 false.size=10
2782                    ; No 2TEST: true.size=4 false.size=10
2783                    ; 2GOTO: Single test with two GOTO's
2784 0088 1fac          btfss   program__select__5___byte, program__select__5___bit
2785 0089 288f          goto    program__6
2786                    ; # Front sensor is over the edge:
2787                    ; line_number = 159
2788                    ;  speed_left := reverse_slow
2789                    ;info   159, 138
2790 008a 30d1          movlw   4294967249
2791 008b 00af          movwf   program__speed_left
2792                    ; line_number = 160
2793                    ;  speed_right := forward_slow
2794                    ;info   160, 140
2795 008c 3017          movlw   23
2796 008d 00b0          movwf   program__speed_right
2797                    ; Recombine code1_bit_states != code2_bit_states
2798 008e 2899          goto    program__7
2799                    ; 2GOTO: Starting code 2
2800   008f :   program__6:
2801                    ; # Front sensor is over the table:
2802                    ; line_number = 163
2803                    ;  if sensor_right@7 start
2804                    ;info   163, 143
2805 0000002e = program__select__2___byte equ program__sensor_right
2806 00000007 = program__select__2___bit equ 7
2807                    ; =>bit_code_emit@symbol(): sym=program__select__2
2808                    ; No 1TEST: true.size=3 false.size=3
2809                    ; No 2TEST: true.size=3 false.size=3
2810                    ; 2GOTO: Single test with two GOTO's
2811 008f 1fae          btfss   program__select__2___byte, program__select__2___bit
2812 0090 2895          goto    program__3
2813                    ; # Right sensor is over the edge:
2814                    ; line_number = 165
2815                    ;  speed_left := forward_slow
2816                    ;info   165, 145
2817 0091 3017          movlw   23
2818 0092 00af          movwf   program__speed_left
2819                    ; line_number = 166
2820                    ;  speed_right := forward_fast
2821                    ;info   166, 147
2822 0093 304f          movlw   79
2823 0094 2898          goto    program__4
2824                    ; 2GOTO: Starting code 2
2825   0095 :   program__3:
2826                    ; # Right sensor is over the table:
2827                    ; line_number = 169
2828                    ;  speed_left := forward_fast
2829                    ;info   169, 149
2830 0095 304f          movlw   79
2831 0096 00af          movwf   program__speed_left
2832                    ; line_number = 170
2833                    ;  speed_right := forward_slow
2834                    ;info   170, 151
2835 0097 3017          movlw   23
2836   0098 :   program__4:
2837                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2838                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2839                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
2840 0098 00b0          movwf   program__speed_right
2841            
2842                    ; line_number = 163
2843                    ;  if sensor_right@7 done
2844   0099 :   program__7:
2845                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2846                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:00=uu=>00)
2847                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
2848                    ; line_number = 157
2849                    ;  if sensor_front@7 done
2850                    ; # Write the speed to the MiniMotor2:
2851                    ; line_number = 173
2852                    ;  call rb2bus_address_put(3)
2853                    ;info   173, 153
2854 0099 3003          movlw   3
2855 009a 20a6          call    rb2bus_address_put
2856                    ; line_number = 174
2857                    ;  call rb2bus_byte_put(1)
2858                    ;info   174, 155
2859 009b 3001          movlw   1
2860 009c 214b          call    rb2bus_byte_put
2861                    ; line_number = 175
2862                    ;  call rb2bus_byte_put(speed_left)
2863                    ;info   175, 157
2864 009d 082f          movf    program__speed_left,w
2865 009e 214b          call    rb2bus_byte_put
2866                    ; line_number = 176
2867                    ;  call rb2bus_byte_put(3)
2868                    ;info   176, 159
2869 009f 3003          movlw   3
2870 00a0 214b          call    rb2bus_byte_put
2871                    ; line_number = 177
2872                    ;  call rb2bus_byte_put(speed_right)
2873                    ;info   177, 161
2874 00a1 0830          movf    program__speed_right,w
2875 00a2 214b          call    rb2bus_byte_put
2876            
2877                    ; line_number = 179
2878                    ;  call delay_ms(10)
2879                    ;info   179, 163
2880 00a3 300a          movlw   10
2881 00a4 20bf          call    delay_ms
2882            
2883            
2884                    ; line_number = 147
2885                    ;  loop_forever wrap-up
2886 00a5 287a          goto    program__1
2887                    ; line_number = 147
2888                    ;  loop_forever done
2889                    ; delay after procedure statements=non-uniform
2890            
2891            
2892            
2893            
2894                    ; line_number = 182
2895                    ;info   182, 166
2896                    ; procedure rb2bus_address_put
2897   00a6 :   rb2bus_address_put:
2898                    ; Last argument is sitting in W; save into argument variable
2899 00a6 00b2          movwf   rb2bus_address_put__address
2900                    ; delay=4294967295
2901                    ; line_number = 183
2902                    ; argument address byte
2903 00000032 = rb2bus_address_put__address equ globals___0+18
2904                    ; line_number = 184
2905                    ;  returns_nothing
2906            
2907                    ; # This procedure will select the module that matches {address}.
2908            
2909                    ; line_number = 188
2910                    ;  local result byte
2911 00000031 = rb2bus_address_put__result equ globals___0+17
2912            
2913                    ; # Wait until {_txreg} is ready for a value:
2914                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
2915                    ; line_number = 191
2916                    ;  while !_txif start
2917   00a7 :   rb2bus_address_put__1:
2918                    ;info   191, 167
2919                    ; =>bit_code_emit@symbol(): sym=_txif
2920                    ; No 1TEST: true.size=0 false.size=2
2921                    ; No 2TEST: true.size=0 false.size=2
2922                    ; 1GOTO: Single test with GOTO
2923 00a7 1a0c          btfsc   _txif___byte, _txif___bit
2924 00a8 28ab          goto    rb2bus_address_put__2
2925                    ; line_number = 192
2926                    ; call wait()
2927                    ;info   192, 169
2928 00a9 206d          call    wait
2929            
2930 00aa 28a7          goto    rb2bus_address_put__1
2931   00ab :   rb2bus_address_put__2:
2932                    ; Recombine size1 = 0 || size2 = 0
2933                    ; line_number = 191
2934                    ;  while !_txif done
2935                    ; # Ship the address select byte:
2936                    ; line_number = 195
2937                    ;  _adden := _false
2938                    ;info   195, 171
2939 00ab 1198          bcf     _adden___byte, _adden___bit
2940                    ; line_number = 196
2941                    ;  _tx9d := _true
2942                    ;info   196, 172
2943 00ac 1683          bsf     __rp0___byte, __rp0___bit
2944 00ad 1418          bsf     _tx9d___byte, _tx9d___bit
2945                    ; line_number = 197
2946                    ;  _txreg := address
2947                    ;info   197, 174
2948 00ae 1283          bcf     __rp0___byte, __rp0___bit
2949 00af 0832          movf    rb2bus_address_put__address,w
2950 00b0 0099          movwf   _txreg
2951            
2952                    ; line_number = 199
2953                    ;  loop_exactly 2 start
2954                    ;info   199, 177
2955 00000035 = rb2bus_address_put__3 equ globals___0+21
2956 00b1 3002          movlw   2
2957 00b2 00b5          movwf   rb2bus_address_put__3
2958   00b3 :   rb2bus_address_put__4:
2959                    ; line_number = 200
2960                    ; while !_rcif start
2961   00b3 :   rb2bus_address_put__5:
2962                    ;info   200, 179
2963                    ; =>bit_code_emit@symbol(): sym=_rcif
2964                    ; 1TEST: Single test with code in skip slot
2965 00b3 1e8c          btfss   _rcif___byte, _rcif___bit
2966                    ; line_number = 201
2967                    ; do_nothing
2968                    ;info   201, 180
2969 00b4 28b3          goto    rb2bus_address_put__5
2970                    ; Recombine size1 = 0 || size2 = 0
2971                    ; line_number = 200
2972                    ; while !_rcif done
2973                    ; line_number = 202
2974                    ; result := _rcreg
2975                    ;info   202, 181
2976 00b5 081a          movf    _rcreg,w
2977 00b6 00b1          movwf   rb2bus_address_put__result
2978                    ; line_number = 203
2979                    ;  if _oerr start
2980                    ;info   203, 183
2981                    ; =>bit_code_emit@symbol(): sym=_oerr
2982                    ; 1TEST: Single test with code in skip slot
2983 00b7 1898          btfsc   _oerr___byte, _oerr___bit
2984                    ; line_number = 204
2985                    ; _cren := _false
2986                    ;info   204, 184
2987 00b8 1218          bcf     _cren___byte, _cren___bit
2988                    ; Recombine size1 = 0 || size2 = 0
2989                    ; line_number = 203
2990                    ;  if _oerr done
2991                    ; line_number = 205
2992                    ; if _ferr start
2993                    ;info   205, 185
2994                    ; =>bit_code_emit@symbol(): sym=_ferr
2995                    ; 1TEST: Single test with code in skip slot
2996 00b9 1918          btfsc   _ferr___byte, _ferr___bit
2997                    ; line_number = 206
2998                    ; _cren := _false
2999                    ;info   206, 186
3000 00ba 1218          bcf     _cren___byte, _cren___bit
3001                    ; Recombine size1 = 0 || size2 = 0
3002                    ; line_number = 205
3003                    ; if _ferr done
3004                    ; line_number = 207
3005                    ; _cren := _true
3006                    ;info   207, 187
3007 00bb 1618          bsf     _cren___byte, _cren___bit
3008            
3009                    ; line_number = 199
3010                    ;  loop_exactly 2 wrap-up
3011 00bc 0bb5          decfsz  rb2bus_address_put__3,f
3012 00bd 28b3          goto    rb2bus_address_put__4
3013                    ; line_number = 199
3014                    ;  loop_exactly 2 done
3015                    ; delay after procedure statements=non-uniform
3016                    ; Implied return
3017 00be 3400          retlw   0
3018            
3019            
3020            
3021            
3022                    ; line_number = 209
3023                    ;info   209, 191
3024                    ; procedure delay_ms
3025   00bf :   delay_ms:
3026                    ; Last argument is sitting in W; save into argument variable
3027 00bf 00b3          movwf   delay_ms__ms
3028                    ; delay=4294967295
3029                    ; line_number = 210
3030                    ; argument ms byte
3031 00000033 = delay_ms__ms equ globals___0+19
3032                    ; line_number = 211
3033                    ;  returns_nothing
3034            
3035                    ; # This procedure will delay {ms} milliseconds.
3036            
3037                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3038                    ; line_number = 215
3039                    ;  loop_exactly ms start
3040                    ;info   215, 192
3041 00000036 = delay_ms__1 equ globals___0+22
3042 00c0 0833          movf    delay_ms__ms,w
3043 00c1 00b6          movwf   delay_ms__1
3044   00c2 :   delay_ms__2:
3045                    ; line_number = 216
3046                    ; loop_exactly 100 start
3047                    ;info   216, 194
3048 00000037 = delay_ms__3 equ globals___0+23
3049 00c2 3064          movlw   100
3050 00c3 00b7          movwf   delay_ms__3
3051   00c4 :   delay_ms__4:
3052                    ; line_number = 217
3053                    ; delay 10*microsecond start
3054                    ;info   217, 196
3055                    ; Delay expression evaluates to 40
3056                    ; line_number = 218
3057                    ; do_nothing
3058                    ;info   218, 196
3059            
3060            
3061                    ; Delay 40 cycles
3062                    ; Delay loop takes 10 * 4 = 40 cycles
3063 00c4 300a          movlw   10
3064   00c5 :   delay_ms__5:
3065 00c5 3eff          addlw   255
3066 00c6 1d03          btfss   __z___byte, __z___bit
3067 00c7 28c5          goto    delay_ms__5
3068                    ; line_number = 217
3069                    ; delay 10*microsecond done
3070                    ; line_number = 216
3071                    ; loop_exactly 100 wrap-up
3072 00c8 0bb7          decfsz  delay_ms__3,f
3073 00c9 28c4          goto    delay_ms__4
3074                    ; line_number = 216
3075                    ; loop_exactly 100 done
3076                    ; line_number = 215
3077                    ;  loop_exactly ms wrap-up
3078 00ca 0bb6          decfsz  delay_ms__1,f
3079 00cb 28c2          goto    delay_ms__2
3080                    ; line_number = 215
3081                    ;  loop_exactly ms done
3082                    ; delay after procedure statements=non-uniform
3083                    ; Implied return
3084 00cc 3400          retlw   0
3085            
3086            
3087            
3088            
3089                    ; line_number = 221
3090                    ; string id = "\16,0,24,1,3,14\Controller24-A\7\Gramson" start
3091                    ; id = '\16,0,24,1,3,14\Controller24-A\7\Gramson'
3092   00cd :   id:
3093                    ; Temporarily save index into FSR
3094 00cd 0084          movwf   __fsr
3095                    ; Initialize PCLATH to point to this code page
3096 00ce 3000          movlw   id___base>>8
3097 00cf 008a          movwf   __pclath
3098                    ; Restore index from FSR
3099 00d0 0804          movf    __fsr,w
3100 00d1 3ed3          addlw   id___base
3101                    ; Index to the correct return value
3102 00d2 0082          movwf   __pcl
3103                    ; page_group 28
3104   00d3 :   id___base:
3105 00d3 3410          retlw   16
3106 00d4 3400          retlw   0
3107 00d5 3418          retlw   24
3108 00d6 3401          retlw   1
3109 00d7 3403          retlw   3
3110 00d8 340e          retlw   14
3111 00d9 3443          retlw   67
3112 00da 346f          retlw   111
3113 00db 346e          retlw   110
3114 00dc 3474          retlw   116
3115 00dd 3472          retlw   114
3116 00de 346f          retlw   111
3117 00df 346c          retlw   108
3118 00e0 346c          retlw   108
3119 00e1 3465          retlw   101
3120 00e2 3472          retlw   114
3121 00e3 3432          retlw   50
3122 00e4 3434          retlw   52
3123 00e5 342d          retlw   45
3124 00e6 3441          retlw   65
3125 00e7 3407          retlw   7
3126 00e8 3447          retlw   71
3127 00e9 3472          retlw   114
3128 00ea 3461          retlw   97
3129 00eb 346d          retlw   109
3130 00ec 3473          retlw   115
3131 00ed 346f          retlw   111
3132 00ee 346e          retlw   110
3133                    ; line_number = 221
3134                    ; string id = "\16,0,24,1,3,14\Controller24-A\7\Gramson" start
3135            
3136            
3137            
3138            
3139            
3140                    ; Appending 8 delayed procedures to code bank 0
3141                    ; buffer = 'rb2bus_pic16f767'
3142                    ; line_number = 30
3143                    ;info   30, 239
3144                    ; procedure rb2bus_initialize
3145   00ef :   rb2bus_initialize:
3146                    ; Last argument is sitting in W; save into argument variable
3147 00ef 00a2          movwf   rb2bus_initialize__address
3148                    ; delay=4294967295
3149                    ; line_number = 31
3150                    ; argument address byte
3151 00000022 = rb2bus_initialize__address equ globals___0+2
3152                    ; line_number = 32
3153                    ;  returns_nothing
3154            
3155                    ; # This procedure is responsibile for initializing the UART
3156                    ; # connected to the bus.  {address} is the address of this
3157                    ; # slave module.  This code is specific to the PIC16F767.
3158            
3159                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3160                    ; line_number = 38
3161                    ;  rb2bus_address := address
3162                    ;info   38, 240
3163 00f0 0822          movf    rb2bus_initialize__address,w
3164 00f1 00a0          movwf   rb2bus_address
3165            
3166                    ; # Warm up the UART:
3167                    ; line_number = 41
3168                    ;  _trisc@7 := _true
3169                    ;info   41, 242
3170 00000087 = rb2bus_initialize__select__1___byte equ _trisc
3171 00000007 = rb2bus_initialize__select__1___bit equ 7
3172 00f2 1683          bsf     __rp0___byte, __rp0___bit
3173 00f3 1787          bsf     rb2bus_initialize__select__1___byte, rb2bus_initialize__select__1___bit
3174                    ; line_number = 42
3175                    ;  _trisc@6 := _true
3176                    ;info   42, 244
3177 00000087 = rb2bus_initialize__select__2___byte equ _trisc
3178 00000006 = rb2bus_initialize__select__2___bit equ 6
3179 00f4 1707          bsf     rb2bus_initialize__select__2___byte, rb2bus_initialize__select__2___bit
3180            
3181                    ; # Initialize the {_txsta} register:
3182                    ; line_number = 45
3183                    ;  _txsta := 0
3184                    ;info   45, 245
3185 00f5 0198          clrf    _txsta
3186                    ; line_number = 46
3187                    ;  _tx9 := _true
3188                    ;info   46, 246
3189 00f6 1718          bsf     _tx9___byte, _tx9___bit
3190                    ; #_tx9 := _false
3191                    ; line_number = 48
3192                    ;  _txen := _true
3193                    ;info   48, 247
3194 00f7 1698          bsf     _txen___byte, _txen___bit
3195                    ; # 500000 kHz:
3196                    ; line_number = 50
3197                    ;  _brgh := _true
3198                    ;info   50, 248
3199 00f8 1518          bsf     _brgh___byte, _brgh___bit
3200            
3201                    ; # Initialize the {_rcsta} register:
3202                    ; line_number = 53
3203                    ;  _rcsta := 0
3204                    ;info   53, 249
3205 00f9 1283          bcf     __rp0___byte, __rp0___bit
3206 00fa 0198          clrf    _rcsta
3207                    ; line_number = 54
3208                    ;  _spen := _true
3209                    ;info   54, 251
3210 00fb 1798          bsf     _spen___byte, _spen___bit
3211                    ; line_number = 55
3212                    ;  _rx9 := _true
3213                    ;info   55, 252
3214 00fc 1718          bsf     _rx9___byte, _rx9___bit
3215                    ; line_number = 56
3216                    ;  _cren := _true
3217                    ;info   56, 253
3218 00fd 1618          bsf     _cren___byte, _cren___bit
3219                    ; #_adden := _true
3220                    ; line_number = 58
3221                    ;  _adden := _false
3222                    ;info   58, 254
3223 00fe 1198          bcf     _adden___byte, _adden___bit
3224            
3225                    ; # Set up the baud rate generator to 500000kHz:
3226                    ; #_spbrg := 1
3227                    ; line_number = 62
3228                    ;  _spbrg := spbrg_500k
3229                    ;info   62, 255
3230 00ff 3001          movlw   1
3231 0100 1683          bsf     __rp0___byte, __rp0___bit
3232 0101 0099          movwf   _spbrg
3233            
3234                    ; line_number = 64
3235                    ;  rb2bus_selected := _false
3236                    ;info   64, 258
3237 0102 1283          bcf     __rp0___byte, __rp0___bit
3238 0103 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3239                    ; line_number = 65
3240                    ;  rb2bus_error := _true
3241                    ;info   65, 260
3242 0104 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
3243                    ; line_number = 66
3244                    ;  rb2bus_index := 0
3245                    ;info   66, 261
3246 0105 01a1          clrf    rb2bus_index
3247            
3248            
3249                    ; delay after procedure statements=non-uniform
3250                    ; Implied return
3251 0106 3400          retlw   0
3252            
3253            
3254            
3255            
3256                    ; line_number = 69
3257                    ;info   69, 263
3258                    ; procedure rb2bus_eedata_read
3259   0107 :   rb2bus_eedata_read:
3260                    ; arguments_none
3261                    ; line_number = 71
3262                    ;  returns byte
3263            
3264                    ; # This procedure will return the address stored in EEData.  If
3265                    ; # there is no data, 0 is returned.
3266            
3267                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3268                    ; line_number = 76
3269                    ;  return 0 start
3270                    ; line_number = 76
3271                    ;info   76, 263
3272 0107 3400          retlw   0
3273                    ; line_number = 76
3274                    ;  return 0 done
3275            
3276            
3277                    ; delay after procedure statements=non-uniform
3278            
3279            
3280            
3281            
3282                    ; line_number = 79
3283                    ;info   79, 264
3284                    ; procedure rb2bus_eedata_write
3285   0108 :   rb2bus_eedata_write:
3286                    ; Last argument is sitting in W; save into argument variable
3287 0108 00a3          movwf   rb2bus_eedata_write__address
3288                    ; delay=4294967295
3289                    ; line_number = 80
3290                    ; argument address byte
3291 00000023 = rb2bus_eedata_write__address equ globals___0+3
3292                    ; line_number = 81
3293                    ;  returns_nothing
3294            
3295                    ; # This procedure will write {address} into the EEData.  The
3296                    ; # microcontroll pauses while the EEData is written.
3297            
3298                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3299                    ; line_number = 86
3300                    ;  do_nothing
3301                    ;info   86, 265
3302            
3303                    ; delay after procedure statements=non-uniform
3304                    ; Implied return
3305 0109 3400          retlw   0
3306            
3307            
3308            
3309            
3310                    ; buffer = 'rb2bus'
3311                    ; line_number = 57
3312                    ;info   57, 266
3313                    ; procedure rb2bus_select_wait
3314   010a :   rb2bus_select_wait:
3315                    ; arguments_none
3316                    ; line_number = 59
3317                    ;  returns_nothing
3318            
3319                    ; # This procedure will in an infinite loop until the select
3320                    ; # address matches {rb2bus_address}.  {rb2bus_address} is
3321                    ; # typically set in the {rb2bus_initialize} procedure.
3322                    ; #
3323                    ; # This module will repeatably call the {wait} procedure until
3324                    ; # it is properly selected.
3325            
3326                    ; line_number = 68
3327                    ;  local value byte
3328 00000024 = rb2bus_select_wait__value equ globals___0+4
3329                    ; line_number = 69
3330                    ;  local address_bit bit
3331 0000006f = rb2bus_select_wait__address_bit___byte equ globals___0+79
3332 00000002 = rb2bus_select_wait__address_bit___bit equ 2
3333            
3334                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3335                    ; line_number = 71
3336                    ;  rb2bus_error := _false
3337                    ;info   71, 266
3338 010a 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
3339                    ; line_number = 72
3340                    ;  while !rb2bus_selected start
3341   010b :   rb2bus_select_wait__1:
3342                    ;info   72, 267
3343                    ; =>bit_code_emit@symbol(): sym=rb2bus_selected
3344                    ; No 1TEST: true.size=0 false.size=25
3345                    ; No 2TEST: true.size=0 false.size=25
3346                    ; 1GOTO: Single test with GOTO
3347 010b 186f          btfsc   rb2bus_selected___byte, rb2bus_selected___bit
3348 010c 2926          goto    rb2bus_select_wait__6
3349                    ; line_number = 73
3350                    ; _adden := _true
3351                    ;info   73, 269
3352 010d 1598          bsf     _adden___byte, _adden___bit
3353                    ; # Wait for a byte to arrive.
3354                    ; line_number = 75
3355                    ;  while !_rcif start
3356   010e :   rb2bus_select_wait__2:
3357                    ;info   75, 270
3358                    ; =>bit_code_emit@symbol(): sym=_rcif
3359                    ; No 1TEST: true.size=0 false.size=2
3360                    ; No 2TEST: true.size=0 false.size=2
3361                    ; 1GOTO: Single test with GOTO
3362 010e 1a8c          btfsc   _rcif___byte, _rcif___bit
3363 010f 2912          goto    rb2bus_select_wait__3
3364                    ; line_number = 76
3365                    ; call wait()
3366                    ;info   76, 272
3367 0110 206d          call    wait
3368            
3369 0111 290e          goto    rb2bus_select_wait__2
3370   0112 :   rb2bus_select_wait__3:
3371                    ; Recombine size1 = 0 || size2 = 0
3372                    ; line_number = 75
3373                    ;  while !_rcif done
3374                    ; # Capture the received value:
3375                    ; line_number = 79
3376                    ;  address_bit := _false
3377                    ;info   79, 274
3378 0112 116f          bcf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3379                    ; line_number = 80
3380                    ;  if _rx9d start
3381                    ;info   80, 275
3382                    ; =>bit_code_emit@symbol(): sym=_rx9d
3383                    ; 1TEST: Single test with code in skip slot
3384 0113 1818          btfsc   _rx9d___byte, _rx9d___bit
3385                    ; line_number = 81
3386                    ; address_bit := _true
3387                    ;info   81, 276
3388 0114 156f          bsf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3389                    ; Recombine size1 = 0 || size2 = 0
3390                    ; line_number = 80
3391                    ;  if _rx9d done
3392                    ; line_number = 82
3393                    ; value := _rcreg
3394                    ;info   82, 277
3395 0115 081a          movf    _rcreg,w
3396 0116 00a4          movwf   rb2bus_select_wait__value
3397            
3398                    ; # Clear any UART errors by toggling {_cren}:
3399                    ; line_number = 85
3400                    ;  if _oerr start
3401                    ;info   85, 279
3402                    ; =>bit_code_emit@symbol(): sym=_oerr
3403                    ; 1TEST: Single test with code in skip slot
3404 0117 1898          btfsc   _oerr___byte, _oerr___bit
3405                    ; line_number = 86
3406                    ; _cren := _false
3407                    ;info   86, 280
3408 0118 1218          bcf     _cren___byte, _cren___bit
3409                    ; Recombine size1 = 0 || size2 = 0
3410                    ; line_number = 85
3411                    ;  if _oerr done
3412                    ; line_number = 87
3413                    ; if _ferr start
3414                    ;info   87, 281
3415                    ; =>bit_code_emit@symbol(): sym=_ferr
3416                    ; 1TEST: Single test with code in skip slot
3417 0119 1918          btfsc   _ferr___byte, _ferr___bit
3418                    ; line_number = 88
3419                    ; _cren := _false
3420                    ;info   88, 282
3421 011a 1218          bcf     _cren___byte, _cren___bit
3422                    ; Recombine size1 = 0 || size2 = 0
3423                    ; line_number = 87
3424                    ; if _ferr done
3425                    ; line_number = 89
3426                    ; _cren := _true
3427                    ;info   89, 283
3428 011b 1618          bsf     _cren___byte, _cren___bit
3429            
3430                    ; line_number = 91
3431                    ;  if address_bit start
3432                    ;info   91, 284
3433                    ; =>bit_code_emit@symbol(): sym=rb2bus_select_wait__address_bit
3434                    ; No 1TEST: true.size=7 false.size=0
3435                    ; No 2TEST: true.size=7 false.size=0
3436                    ; 1GOTO: Single test with GOTO
3437 011c 1d6f          btfss   rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3438 011d 2925          goto    rb2bus_select_wait__5
3439                    ; line_number = 92
3440                    ; if value = rb2bus_address start
3441                    ;info   92, 286
3442                    ; Left minus Right
3443 011e 0820          movf    rb2bus_address,w
3444 011f 0224          subwf   rb2bus_select_wait__value,w
3445                    ; =>bit_code_emit@symbol(): sym=__z
3446                    ; No 1TEST: true.size=3 false.size=0
3447                    ; No 2TEST: true.size=3 false.size=0
3448                    ; 1GOTO: Single test with GOTO
3449 0120 1d03          btfss   __z___byte, __z___bit
3450 0121 2925          goto    rb2bus_select_wait__4
3451                    ; line_number = 93
3452                    ; rb2bus_selected := _true
3453                    ;info   93, 290
3454 0122 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
3455                    ; line_number = 94
3456                    ;  call rb2bus_byte_put(rb2_ok)
3457                    ;info   94, 291
3458 0123 30a5          movlw   165
3459 0124 214b          call    rb2bus_byte_put
3460            
3461            
3462                    ; Recombine size1 = 0 || size2 = 0
3463   0125 :   rb2bus_select_wait__4:
3464                    ; line_number = 92
3465                    ; if value = rb2bus_address done
3466                    ; Recombine size1 = 0 || size2 = 0
3467   0125 :   rb2bus_select_wait__5:
3468                    ; line_number = 91
3469                    ;  if address_bit done
3470 0125 290b          goto    rb2bus_select_wait__1
3471   0126 :   rb2bus_select_wait__6:
3472                    ; Recombine size1 = 0 || size2 = 0
3473                    ; line_number = 72
3474                    ;  while !rb2bus_selected done
3475                    ; delay after procedure statements=non-uniform
3476                    ; Implied return
3477 0126 3400          retlw   0
3478            
3479            
3480            
3481            
3482                    ; line_number = 97
3483                    ;info   97, 295
3484                    ; procedure rb2bus_deselect
3485   0127 :   rb2bus_deselect:
3486                    ; arguments_none
3487                    ; line_number = 99
3488                    ;  returns_nothing
3489            
3490                    ; # This procedure forces this module into the deselected state until
3491                    ; # it is reselected by some master module on the bus.
3492            
3493                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3494                    ; line_number = 104
3495                    ;  rb2bus_selected := _false
3496                    ;info   104, 295
3497 0127 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3498            
3499            
3500                    ; delay after procedure statements=non-uniform
3501                    ; Implied return
3502 0128 3400          retlw   0
3503            
3504            
3505            
3506            
3507                    ; line_number = 107
3508                    ;info   107, 297
3509                    ; procedure rb2bus_byte_get
3510   0129 :   rb2bus_byte_get:
3511                    ; arguments_none
3512                    ; line_number = 109
3513                    ;  returns byte
3514            
3515                    ; # This procedure will return the next byte received from the bus.
3516                    ; # The address (9th) bit is stored in the global {is_address}.
3517                    ; #
3518                    ; # If {rb2bus_error} is set, 0 is returned.  Otherwise, the {wait}
3519                    ; # procedure is repeatably called until a command byte is successfully
3520                    ; # received.  If an module select byte comes in, we enter a bus
3521                    ; # error condition by setting {rb2bus_error} and returning 0.
3522            
3523                    ; line_number = 119
3524                    ;  local value byte
3525 00000025 = rb2bus_byte_get__value equ globals___0+5
3526                    ; line_number = 120
3527                    ;  local address_bit bit
3528 0000006f = rb2bus_byte_get__address_bit___byte equ globals___0+79
3529 00000003 = rb2bus_byte_get__address_bit___bit equ 3
3530            
3531                    ; # Return 0 in a bus flush condition to get us back to {rb2bus_select_wait}:
3532                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3533                    ; line_number = 123
3534                    ;  if rb2bus_error start
3535                    ;info   123, 297
3536                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
3537                    ; 1TEST: Single test with code in skip slot
3538 0129 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
3539                    ; line_number = 124
3540                    ; return 0 start
3541                    ; line_number = 124
3542                    ;info   124, 298
3543 012a 3400          retlw   0
3544                    ; line_number = 124
3545                    ; return 0 done
3546            
3547                    ; Recombine size1 = 0 || size2 = 0
3548                    ; line_number = 123
3549                    ;  if rb2bus_error done
3550                    ; # Wait for a byte to arrive.
3551                    ; line_number = 127
3552                    ;  _adden := _false
3553                    ;info   127, 299
3554 012b 1198          bcf     _adden___byte, _adden___bit
3555                    ; line_number = 128
3556                    ;  while !_rcif start
3557   012c :   rb2bus_byte_get__1:
3558                    ;info   128, 300
3559                    ; =>bit_code_emit@symbol(): sym=_rcif
3560                    ; No 1TEST: true.size=0 false.size=2
3561                    ; No 2TEST: true.size=0 false.size=2
3562                    ; 1GOTO: Single test with GOTO
3563 012c 1a8c          btfsc   _rcif___byte, _rcif___bit
3564 012d 2930          goto    rb2bus_byte_get__2
3565                    ; line_number = 129
3566                    ; call wait()
3567                    ;info   129, 302
3568 012e 206d          call    wait
3569            
3570 012f 292c          goto    rb2bus_byte_get__1
3571   0130 :   rb2bus_byte_get__2:
3572                    ; Recombine size1 = 0 || size2 = 0
3573                    ; line_number = 128
3574                    ;  while !_rcif done
3575                    ; # Record the 9th bit in {address_bit}:
3576                    ; line_number = 132
3577                    ;  address_bit := _false
3578                    ;info   132, 304
3579 0130 11ef          bcf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
3580                    ; line_number = 133
3581                    ;  if _rx9d start
3582                    ;info   133, 305
3583                    ; =>bit_code_emit@symbol(): sym=_rx9d
3584                    ; 1TEST: Single test with code in skip slot
3585 0131 1818          btfsc   _rx9d___byte, _rx9d___bit
3586                    ; line_number = 134
3587                    ; address_bit := _true
3588                    ;info   134, 306
3589 0132 15ef          bsf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
3590                    ; Recombine size1 = 0 || size2 = 0
3591                    ; line_number = 133
3592                    ;  if _rx9d done
3593                    ; line_number = 135
3594                    ; value := _rcreg
3595                    ;info   135, 307
3596 0133 081a          movf    _rcreg,w
3597 0134 00a5          movwf   rb2bus_byte_get__value
3598            
3599                    ; # Clear any errors by toggling _{cren}:
3600                    ; # FIXME: All of this should be done *before* reading {_rcreg}!!!
3601                    ; line_number = 139
3602                    ;  if _oerr start
3603                    ;info   139, 309
3604                    ; =>bit_code_emit@symbol(): sym=_oerr
3605                    ; 1TEST: Single test with code in skip slot
3606 0135 1898          btfsc   _oerr___byte, _oerr___bit
3607                    ; line_number = 140
3608                    ; _cren := _false
3609                    ;info   140, 310
3610 0136 1218          bcf     _cren___byte, _cren___bit
3611                    ; Recombine size1 = 0 || size2 = 0
3612                    ; line_number = 139
3613                    ;  if _oerr done
3614                    ; line_number = 141
3615                    ; if _ferr start
3616                    ;info   141, 311
3617                    ; =>bit_code_emit@symbol(): sym=_ferr
3618                    ; 1TEST: Single test with code in skip slot
3619 0137 1918          btfsc   _ferr___byte, _ferr___bit
3620                    ; line_number = 142
3621                    ; _cren := _false
3622                    ;info   142, 312
3623 0138 1218          bcf     _cren___byte, _cren___bit
3624                    ; Recombine size1 = 0 || size2 = 0
3625                    ; line_number = 141
3626                    ; if _ferr done
3627                    ; line_number = 143
3628                    ; _cren := _true
3629                    ;info   143, 313
3630 0139 1618          bsf     _cren___byte, _cren___bit
3631            
3632                    ; line_number = 145
3633                    ;  if address_bit start
3634                    ;info   145, 314
3635                    ; =>bit_code_emit@symbol(): sym=rb2bus_byte_get__address_bit
3636                    ; No 1TEST: true.size=13 false.size=0
3637                    ; No 2TEST: true.size=13 false.size=0
3638                    ; 1GOTO: Single test with GOTO
3639 013a 1def          btfss   rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
3640 013b 2949          goto    rb2bus_byte_get__5
3641                    ; # We have an unexpected address select coming in:
3642                    ; line_number = 147
3643                    ;  if value = rb2bus_address start
3644                    ;info   147, 316
3645                    ; Left minus Right
3646 013c 0820          movf    rb2bus_address,w
3647 013d 0225          subwf   rb2bus_byte_get__value,w
3648                    ; =>bit_code_emit@symbol(): sym=__z
3649                    ; No 1TEST: true.size=4 false.size=2
3650                    ; No 2TEST: true.size=4 false.size=2
3651                    ; 2GOTO: Single test with two GOTO's
3652 013e 1d03          btfss   __z___byte, __z___bit
3653 013f 2945          goto    rb2bus_byte_get__3
3654                    ; # We are being selected again:
3655                    ; line_number = 149
3656                    ;  rb2bus_selected := _true
3657                    ;info   149, 320
3658 0140 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
3659                    ; line_number = 150
3660                    ;  _adden := _false
3661                    ;info   150, 321
3662 0141 1198          bcf     _adden___byte, _adden___bit
3663            
3664                    ; line_number = 152
3665                    ;  call rb2bus_byte_put(rb2_ok)
3666                    ;info   152, 322
3667 0142 30a5          movlw   165
3668 0143 214b          call    rb2bus_byte_put
3669                    ; Recombine code1_bit_states != code2_bit_states
3670 0144 2947          goto    rb2bus_byte_get__4
3671                    ; 2GOTO: Starting code 2
3672   0145 :   rb2bus_byte_get__3:
3673                    ; # Somebody else is being selected; we deselect:
3674                    ; line_number = 155
3675                    ;  rb2bus_selected := _false
3676                    ;info   155, 325
3677 0145 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3678                    ; line_number = 156
3679                    ;  _adden := _true
3680                    ;info   156, 326
3681 0146 1598          bsf     _adden___byte, _adden___bit
3682            
3683   0147 :   rb2bus_byte_get__4:
3684                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
3685                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
3686                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
3687                    ; line_number = 147
3688                    ;  if value = rb2bus_address done
3689                    ; # We want to get back to the beginning of decode:
3690                    ; line_number = 159
3691                    ;  rb2bus_error := _true
3692                    ;info   159, 327
3693 0147 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
3694                    ; line_number = 160
3695                    ;  value := 0
3696                    ;info   160, 328
3697 0148 01a5          clrf    rb2bus_byte_get__value
3698            
3699                    ; Recombine size1 = 0 || size2 = 0
3700   0149 :   rb2bus_byte_get__5:
3701                    ; line_number = 145
3702                    ;  if address_bit done
3703                    ; # Regular data byte:
3704                    ; line_number = 163
3705                    ;  return value start
3706                    ; line_number = 163
3707                    ;info   163, 329
3708 0149 0825          movf    rb2bus_byte_get__value,w
3709 014a 0008          return  
3710                    ; line_number = 163
3711                    ;  return value done
3712            
3713            
3714                    ; delay after procedure statements=non-uniform
3715            
3716            
3717            
3718            
3719                    ; line_number = 166
3720                    ;info   166, 331
3721                    ; procedure rb2bus_byte_put
3722   014b :   rb2bus_byte_put:
3723                    ; Last argument is sitting in W; save into argument variable
3724 014b 00a6          movwf   rb2bus_byte_put__value
3725                    ; delay=4294967295
3726                    ; line_number = 167
3727                    ; argument value byte
3728 00000026 = rb2bus_byte_put__value equ globals___0+6
3729                    ; line_number = 168
3730                    ;  returns_nothing
3731            
3732                    ; # This procedure will send {value} to the bus.  It automatically
3733                    ; # consumes the echo that is on the bus.  If {rb2bus_error} is
3734                    ; # set, this procedure does nothing.
3735            
3736                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3737                    ; line_number = 174
3738                    ;  if !rb2bus_error start
3739                    ;info   174, 332
3740                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
3741                    ; No 1TEST: true.size=0 false.size=18
3742                    ; No 2TEST: true.size=0 false.size=18
3743                    ; 1GOTO: Single test with GOTO
3744 014c 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
3745 014d 2960          goto    rb2bus_byte_put__4
3746                    ; # Wait until {_txreg} is ready for a value:
3747                    ; line_number = 176
3748                    ;  while !_txif start
3749   014e :   rb2bus_byte_put__1:
3750                    ;info   176, 334
3751                    ; =>bit_code_emit@symbol(): sym=_txif
3752                    ; No 1TEST: true.size=0 false.size=2
3753                    ; No 2TEST: true.size=0 false.size=2
3754                    ; 1GOTO: Single test with GOTO
3755 014e 1a0c          btfsc   _txif___byte, _txif___bit
3756 014f 2952          goto    rb2bus_byte_put__2
3757                    ; line_number = 177
3758                    ; call wait()
3759                    ;info   177, 336
3760 0150 206d          call    wait
3761            
3762 0151 294e          goto    rb2bus_byte_put__1
3763   0152 :   rb2bus_byte_put__2:
3764                    ; Recombine size1 = 0 || size2 = 0
3765                    ; line_number = 176
3766                    ;  while !_txif done
3767                    ; # Ship {value} out to the bus with 9th bit turned off:
3768                    ; line_number = 180
3769                    ;  _adden := _false
3770                    ;info   180, 338
3771 0152 1198          bcf     _adden___byte, _adden___bit
3772                    ; line_number = 181
3773                    ;  _tx9d := _false
3774                    ;info   181, 339
3775 0153 1683          bsf     __rp0___byte, __rp0___bit
3776 0154 1018          bcf     _tx9d___byte, _tx9d___bit
3777                    ; line_number = 182
3778                    ;  _txreg := value
3779                    ;info   182, 341
3780 0155 1283          bcf     __rp0___byte, __rp0___bit
3781 0156 0826          movf    rb2bus_byte_put__value,w
3782 0157 0099          movwf   _txreg
3783            
3784                    ; # Wait for the echo to show up:
3785                    ; line_number = 185
3786                    ;  while !_rcif start
3787   0158 :   rb2bus_byte_put__3:
3788                    ;info   185, 344
3789                    ; =>bit_code_emit@symbol(): sym=_rcif
3790                    ; 1TEST: Single test with code in skip slot
3791 0158 1e8c          btfss   _rcif___byte, _rcif___bit
3792                    ; # Still waiting:
3793 0159 2958          goto    rb2bus_byte_put__3
3794                    ; Recombine size1 = 0 || size2 = 0
3795                    ; line_number = 185
3796                    ;  while !_rcif done
3797                    ; # Throw the received byte away (store into {_w}).
3798                    ; line_number = 188
3799                    ;  assemble
3800                    ;info   188, 346
3801                    ; line_number = 189
3802                    ;info   189, 346
3803 015a 081a          movf    _rcreg,w
3804            
3805                    ; # Recover from any receive errors by toggling {_cren}:
3806                    ; line_number = 192
3807                    ;  if _oerr start
3808                    ;info   192, 347
3809                    ; =>bit_code_emit@symbol(): sym=_oerr
3810                    ; 1TEST: Single test with code in skip slot
3811 015b 1898          btfsc   _oerr___byte, _oerr___bit
3812                    ; line_number = 193
3813                    ; _cren := _false
3814                    ;info   193, 348
3815 015c 1218          bcf     _cren___byte, _cren___bit
3816                    ; Recombine size1 = 0 || size2 = 0
3817                    ; line_number = 192
3818                    ;  if _oerr done
3819                    ; line_number = 194
3820                    ; if _ferr start
3821                    ;info   194, 349
3822                    ; =>bit_code_emit@symbol(): sym=_ferr
3823                    ; 1TEST: Single test with code in skip slot
3824 015d 1918          btfsc   _ferr___byte, _ferr___bit
3825                    ; line_number = 195
3826                    ; _cren := _false
3827                    ;info   195, 350
3828 015e 1218          bcf     _cren___byte, _cren___bit
3829                    ; Recombine size1 = 0 || size2 = 0
3830                    ; line_number = 194
3831                    ; if _ferr done
3832                    ; line_number = 196
3833                    ; _cren := _true
3834                    ;info   196, 351
3835 015f 1618          bsf     _cren___byte, _cren___bit
3836            
3837            
3838   0160 :   rb2bus_byte_put__4:
3839                    ; Recombine size1 = 0 || size2 = 0
3840                    ; line_number = 174
3841                    ;  if !rb2bus_error done
3842                    ; delay after procedure statements=non-uniform
3843                    ; Implied return
3844 0160 3400          retlw   0
3845            
3846            
3847            
3848            
3849                    ; line_number = 199
3850                    ;info   199, 353
3851                    ; procedure rb2bus_command
3852   0161 :   rb2bus_command:
3853                    ; Last argument is sitting in W; save into argument variable
3854 0161 00a9          movwf   rb2bus_command__command
3855                    ; delay=4294967295
3856                    ; line_number = 200
3857                    ; argument command byte
3858 00000029 = rb2bus_command__command equ globals___0+9
3859                    ; line_number = 201
3860                    ;  returns_nothing
3861            
3862                    ; # This procedure will process an shared {command}.  This procedure
3863                    ; # accesses the global string {id}.
3864            
3865                    ; line_number = 206
3866                    ;  local new_address byte
3867 00000027 = rb2bus_command__new_address equ globals___0+7
3868                    ; line_number = 207
3869                    ;  local temp byte
3870 00000028 = rb2bus_command__temp equ globals___0+8
3871            
3872                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3873                    ; line_number = 209
3874                    ;  switch command & 7 start
3875                    ;info   209, 354
3876                    ; switch_before:(data:00=uu=>00 code:00=uu=>00) size=1
3877 0162 3001          movlw   rb2bus_command__13>>8
3878 0163 008a          movwf   __pclath
3879 0164 3007          movlw   7
3880 0165 0529          andwf   rb2bus_command__command,w
3881                    ; switch after expression:(data:00=uu=>00 code:00=uu=>00)
3882 0166 3e68          addlw   rb2bus_command__13
3883 0167 0082          movwf   __pcl
3884                    ; page_group 8
3885   0168 :   rb2bus_command__13:
3886 0168 29a8          goto    rb2bus_command__14
3887 0169 29a8          goto    rb2bus_command__14
3888 016a 29a8          goto    rb2bus_command__14
3889 016b 29a8          goto    rb2bus_command__14
3890 016c 2970          goto    rb2bus_command__9
3891 016d 299c          goto    rb2bus_command__10
3892 016e 29a5          goto    rb2bus_command__11
3893 016f 29a7          goto    rb2bus_command__12
3894                    ; line_number = 210
3895                    ; case 4
3896   0170 :   rb2bus_command__9:
3897                    ; # 1111 1100 (Address_Set):
3898                    ; # Return old address:
3899                    ; line_number = 213
3900                    ;  call rb2bus_byte_put(rb2bus_address)
3901                    ;info   213, 368
3902 0170 0820          movf    rb2bus_address,w
3903 0171 214b          call    rb2bus_byte_put
3904            
3905                    ; # Fetch new address:
3906                    ; line_number = 216
3907                    ;  new_address := rb2bus_byte_get()
3908                    ;info   216, 370
3909 0172 2129          call    rb2bus_byte_get
3910 0173 00a7          movwf   rb2bus_command__new_address
3911                    ; line_number = 217
3912                    ;  if new_address = 0 || new_address = rb2bus_address start
3913                    ;info   217, 372
3914                    ; Left minus Right
3915 0174 0827          movf    rb2bus_command__new_address,w
3916                    ; =>bit_code_emit@symbol(): sym=__z
3917                    ; No 1TEST: true.size=1 false.size=36
3918                    ; No 2TEST: true.size=1 false.size=36
3919                    ; 2GOTO: Single test with two GOTO's
3920 0175 1903          btfsc   __z___byte, __z___bit
3921 0176 297b          goto    rb2bus_command__5
3922                    ; Recombine code1_bit_states != code2_bit_states
3923                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3924                    ; Left minus Right
3925 0177 0820          movf    rb2bus_address,w
3926 0178 0227          subwf   rb2bus_command__new_address,w
3927                    ; =>bit_code_emit@symbol(): sym=__z
3928                    ; No 1TEST: true.size=4 false.size=27
3929                    ; No 2TEST: true.size=4 false.size=27
3930                    ; 2GOTO: Single test with two GOTO's
3931 0179 1d03          btfss   __z___byte, __z___bit
3932 017a 2980          goto    rb2bus_command__6
3933   017b :   rb2bus_command__5:
3934                    ; line_number = 218
3935                    ; call rb2bus_byte_put(0)
3936                    ;info   218, 379
3937 017b 3000          movlw   0
3938 017c 214b          call    rb2bus_byte_put
3939                    ; line_number = 219
3940                    ;  rb2bus_error := _true
3941                    ;info   219, 381
3942 017d 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
3943                    ; line_number = 220
3944                    ;  rb2bus_selected := _false
3945                    ;info   220, 382
3946 017e 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3947 017f 299b          goto    rb2bus_command__7
3948                    ; 2GOTO: Starting code 2
3949   0180 :   rb2bus_command__6:
3950                    ; # Return new address:
3951                    ; line_number = 223
3952                    ;  call rb2bus_byte_put(new_address)
3953                    ;info   223, 384
3954 0180 0827          movf    rb2bus_command__new_address,w
3955 0181 214b          call    rb2bus_byte_put
3956            
3957                    ; # Fetch new address again as a check:
3958                    ; line_number = 226
3959                    ;  temp := rb2bus_byte_get()
3960                    ;info   226, 386
3961 0182 2129          call    rb2bus_byte_get
3962 0183 00a8          movwf   rb2bus_command__temp
3963                    ; line_number = 227
3964                    ;  if temp != new_address start
3965                    ;info   227, 388
3966                    ; Left minus Right
3967 0184 0827          movf    rb2bus_command__new_address,w
3968 0185 0228          subwf   rb2bus_command__temp,w
3969                    ; =>bit_code_emit@symbol(): sym=__z
3970                    ; No 1TEST: true.size=14 false.size=4
3971                    ; No 2TEST: true.size=14 false.size=4
3972                    ; 2GOTO: Single test with two GOTO's
3973 0186 1d03          btfss   __z___byte, __z___bit
3974 0187 2997          goto    rb2bus_command__3
3975                    ; line_number = 232
3976                    ; call rb2bus_eedata_write(new_address)
3977                    ;info   232, 392
3978 0188 0827          movf    rb2bus_command__new_address,w
3979 0189 2108          call    rb2bus_eedata_write
3980                    ; line_number = 233
3981                    ;  temp := rb2bus_eedata_read()
3982                    ;info   233, 394
3983 018a 2107          call    rb2bus_eedata_read
3984 018b 00a8          movwf   rb2bus_command__temp
3985                    ; line_number = 234
3986                    ;  if temp = new_address start
3987                    ;info   234, 396
3988                    ; Left minus Right
3989 018c 0827          movf    rb2bus_command__new_address,w
3990 018d 0228          subwf   rb2bus_command__temp,w
3991                    ; =>bit_code_emit@symbol(): sym=__z
3992                    ; No 1TEST: true.size=3 false.size=1
3993                    ; No 2TEST: true.size=3 false.size=1
3994                    ; 2GOTO: Single test with two GOTO's
3995 018e 1d03          btfss   __z___byte, __z___bit
3996 018f 2994          goto    rb2bus_command__1
3997                    ; line_number = 235
3998                    ; rb2bus_address := new_address
3999                    ;info   235, 400
4000 0190 0827          movf    rb2bus_command__new_address,w
4001 0191 00a0          movwf   rb2bus_address
4002                    ; line_number = 236
4003                    ;  call rb2bus_byte_put(rb2_ok)
4004                    ;info   236, 402
4005 0192 30a5          movlw   165
4006 0193 2995          goto    rb2bus_command__2
4007                    ; 2GOTO: Starting code 2
4008   0194 :   rb2bus_command__1:
4009                    ; line_number = 238
4010                    ; call rb2bus_byte_put(0)
4011                    ;info   238, 404
4012 0194 3000          movlw   0
4013   0195 :   rb2bus_command__2:
4014                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4015                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4016                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4017 0195 214b          call    rb2bus_byte_put
4018                    ; line_number = 234
4019                    ;  if temp = new_address done
4020 0196 299b          goto    rb2bus_command__4
4021                    ; 2GOTO: Starting code 2
4022   0197 :   rb2bus_command__3:
4023                    ; line_number = 228
4024                    ; call rb2bus_byte_put(0)
4025                    ;info   228, 407
4026 0197 3000          movlw   0
4027 0198 214b          call    rb2bus_byte_put
4028                    ; line_number = 229
4029                    ;  rb2bus_error := _true
4030                    ;info   229, 409
4031 0199 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
4032                    ; line_number = 230
4033                    ;  rb2bus_selected := _false
4034                    ;info   230, 410
4035 019a 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4036   019b :   rb2bus_command__4:
4037                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4038                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4039                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4040                    ; line_number = 227
4041                    ;  if temp != new_address done
4042   019b :   rb2bus_command__7:
4043                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4044                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4045                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4046                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4047                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4048                    ; 2GOTO: No goto needed; true=rb2bus_command__5 false= true_size=1 false_size=36
4049                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4050                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:00=uu=>00)
4051                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4052                    ; line_number = 217
4053                    ;  if new_address = 0 || new_address = rb2bus_address done
4054 019b 29a8          goto    rb2bus_command__14
4055                    ; line_number = 239
4056                    ; case 5
4057   019c :   rb2bus_command__10:
4058                    ; # 1111 1101 (Id_next):
4059                    ; line_number = 241
4060                    ;  if rb2bus_index < id.size start
4061                    ;info   241, 412
4062 019c 301c          movlw   28
4063 019d 0221          subwf   rb2bus_index,w
4064                    ; =>bit_code_emit@symbol(): sym=__c
4065                    ; No 1TEST: true.size=0 false.size=4
4066                    ; No 2TEST: true.size=0 false.size=4
4067                    ; 1GOTO: Single test with GOTO
4068 019e 1803          btfsc   __c___byte, __c___bit
4069 019f 29a4          goto    rb2bus_command__8
4070                    ; line_number = 242
4071                    ; call rb2bus_byte_put(id[rb2bus_index])
4072                    ;info   242, 416
4073 01a0 0821          movf    rb2bus_index,w
4074 01a1 20cd          call    id
4075 01a2 214b          call    rb2bus_byte_put
4076                    ; line_number = 243
4077                    ;  rb2bus_index := rb2bus_index + 1
4078                    ;info   243, 419
4079 01a3 0aa1          incf    rb2bus_index,f
4080                    ; #if rb2bus_index >= id.size
4081                    ; #	rb2bus_index := rb2bus_index - 1
4082   01a4 :   rb2bus_command__8:
4083                    ; Recombine size1 = 0 || size2 = 0
4084                    ; line_number = 241
4085                    ;  if rb2bus_index < id.size done
4086 01a4 29a8          goto    rb2bus_command__14
4087                    ; line_number = 246
4088                    ; case 6
4089   01a5 :   rb2bus_command__11:
4090                    ; # 1111 1110 (Id_start):
4091                    ; line_number = 248
4092                    ;  rb2bus_index := 0
4093                    ;info   248, 421
4094 01a5 01a1          clrf    rb2bus_index
4095 01a6 29a8          goto    rb2bus_command__14
4096                    ; line_number = 249
4097                    ; case 7
4098   01a7 :   rb2bus_command__12:
4099                    ; # 1111 1111 (Deselect):
4100                    ; line_number = 251
4101                    ;  call rb2bus_deselect()
4102                    ;info   251, 423
4103 01a7 2127          call    rb2bus_deselect
4104            
4105            
4106   01a8 :   rb2bus_command__14:
4107                    ; line_number = 209
4108                    ;  switch command & 7 done
4109                    ; delay after procedure statements=non-uniform
4110                    ; Implied return
4111 01a8 3400          retlw   0
4112            
4113            
4114            
4115            
4116                    ; Code bank 1; Start address: 2048; End address: 4095
4117   0800 :           org     2048
4118                    ; Code bank 2; Start address: 4096; End address: 6143
4119   1000 :           org     4096
4120                    ; Code bank 3; Start address: 6144; End address: 8191
4121   1800 :           org     6144
4122                    ; Configuration bits
4123                    ; address = 0x2007, fill = 0x600
4124                    ; cp = off (0x2000)
4125                    ; cpmx = rc1 (0x1000)
4126                    ; debug = off (0x800)
4127                    ; borv = borv00 (0x0)
4128                    ; boren = off (0x0)
4129                    ; mclre = off (0x0)
4130                    ; pwrten = off (0x8)
4131                    ; wdten = off (0x0)
4132                    ; fosc = hs (0x2)
4133                    ; 15882 = 0x3e0a
4134                    ; 8199 = 0x2007
4135   3e0a =           __config 8199, 15882
4136                    ; Configuration bits
4137                    ; address = 0x2008, fill = 0x3fbc
4138                    ; borsen = off (0x0)
4139                    ; ieso = off (0x0)
4140                    ; fcmen = off (0x0)
4141                    ; 16316 = 0x3fbc
4142                    ; 8200 = 0x2008
4143   3fbc =           __config 8200, 16316
4144                    ; Define start addresses for data regions
4145                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
4146                    ; Region="globals___0" Address=32" Size=80 Bytes=24 Bits=4 Available=55
4147                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
4148                    ; Region="globals___2" Address=272" Size=96 Bytes=0 Bits=0 Available=96
4149                    ; Region="globals___3" Address=400" Size=112 Bytes=0 Bits=0 Available=112
4150                    end
