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