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