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 module uses a PIC16F876A:
35                      ; buffer = 'shaft2'
36                      ; line_number = 7
37                      ; library _pic16f876a entered
38              
39                      ; # Copyright (c) 2004-2007 by Wayne C. Gramlich
40                      ; # All rights reserved.
41              
42                      ; buffer = '_pic16f876a'
43                      ; line_number = 6
44                      ; processor pic16f876a
45                      ; line_number = 7
46                      ; configure_address 0x2007
47                      ; line_number = 8
48                      ;  configure_fill 0x01030
49                      ; line_number = 9
50                      ;  configure_option cp: off = 0x2000
51                      ; line_number = 10
52                      ;  configure_option cp: on = 0x0000
53                      ; line_number = 11
54                      ;  configure_option debug: on = 0x000
55                      ; line_number = 12
56                      ;  configure_option debug: off = 0x800
57                      ; line_number = 13
58                      ;  configure_option wrt: on = 0x000
59                      ; line_number = 14
60                      ;  configure_option wrt: off = 0x300
61                      ; line_number = 15
62                      ;  configure_option cpd: on = 0x000
63                      ; line_number = 16
64                      ;  configure_option cpd: off = 0x100
65                      ; line_number = 17
66                      ;  configure_option lvp: on = 0x80
67                      ; line_number = 18
68                      ;  configure_option lvp: off = 0x00
69                      ; line_number = 19
70                      ;  configure_option boren: on = 0x40
71                      ; line_number = 20
72                      ;  configure_option boren: off = 0x00
73                      ; line_number = 21
74                      ;  configure_option pwrte: on = 0
75                      ; line_number = 22
76                      ;  configure_option pwrte: off = 8
77                      ; line_number = 23
78                      ;  configure_option wdte: on = 4
79                      ; line_number = 24
80                      ;  configure_option wdte: off = 0
81                      ; line_number = 25
82                      ;  configure_option fosc: rc = 3
83                      ; line_number = 26
84                      ;  configure_option fosc: hs = 2
85                      ; line_number = 27
86                      ;  configure_option fosc: xt = 1
87                      ; line_number = 28
88                      ;  configure_option fosc: lp = 0
89                      ; line_number = 29
90                      ;  code_bank 0x0 : 0x7ff
91                      ; line_number = 30
92                      ;  code_bank 0x800 : 0xfff
93                      ; line_number = 31
94                      ;  code_bank 0x1000 : 0x17ff
95                      ; line_number = 32
96                      ;  code_bank 0x1800 : 0x1fff
97                      ; line_number = 33
98                      ;  data_bank 0x0 : 0x7f
99                      ; line_number = 34
100                     ;  data_bank 0x80 : 0xff
101                     ; line_number = 35
102                     ;  data_bank 0x100 : 0x17f
103                     ; line_number = 36
104                     ;  data_bank 0x180 : 0x1ff
105                     ; line_number = 37
106                     ;  global_region 0x20 : 0x6f
107                     ; line_number = 38
108                     ;  global_region 0xa0 : 0xef
109                     ; line_number = 39
110                     ;  global_region 0x110 : 0x16f
111                     ; line_number = 40
112                     ;  global_region 0x190 : 0x1ff
113                     ; line_number = 41
114                     ;  shared_region 0x70 : 0x7f
115                     ; line_number = 42
116                     ;  interrupts_possible
117                     ; line_number = 43
118                     ;  packages pdip = 28
119                     ; line_number = 44
120                     ;  pin mclr, vpp, thv, mclr_unused
121                     ; line_number = 45
122                     ; pin_bindings pdip = 1
123                     ; line_number = 46
124                     ; pin ra0_in, ra0_out, an0, ra0_unused
125                     ; line_number = 47
126                     ; pin_bindings pdip = 2
127                     ; line_number = 48
128                     ;  bind_to _porta@0
129                     ; line_number = 49
130                     ;  or_if ra0_in _trisa 1
131                     ; line_number = 50
132                     ;  or_if ra0_in _adcon1 7
133                     ; line_number = 51
134                     ;  or_if ra0_in _adcon0 0
135                     ; line_number = 52
136                     ;  or_if ra0_in _cmcon 7
137                     ; line_number = 53
138                     ;  or_if ra0_out _trisa 0
139                     ; line_number = 54
140                     ;  or_if ra0_out _adcon1 7
141                     ; line_number = 55
142                     ;  or_if ra0_out _adcon0 0
143                     ; line_number = 56
144                     ;  or_if ra0_out _cmcon 7
145                     ; line_number = 57
146                     ;  or_if ra0_unused _trisa 1
147                     ; line_number = 58
148                     ;  or_if ra0_unused _adcon1 7
149                     ; line_number = 59
150                     ;  or_if ra0_unused _adcon0 0
151                     ; line_number = 60
152                     ;  or_if ra0_unused _cmcon 7
153                     ; line_number = 61
154                     ; pin ra1_in, ra1_out, an1, ra1_unused
155                     ; line_number = 62
156                     ; pin_bindings pdip = 3
157                     ; line_number = 63
158                     ;  bind_to _porta@1
159                     ; line_number = 64
160                     ;  or_if ra1_in _trisa 2
161                     ; line_number = 65
162                     ;  or_if ra1_in _adcon1 7
163                     ; line_number = 66
164                     ;  or_if ra1_in _adcon0 0
165                     ; line_number = 67
166                     ;  or_if ra1_in _cmcon 7
167                     ; line_number = 68
168                     ;  or_if ra1_out _trisa 0
169                     ; line_number = 69
170                     ;  or_if ra1_out _adcon1 7
171                     ; line_number = 70
172                     ;  or_if ra1_out _adcon0 0
173                     ; line_number = 71
174                     ;  or_if ra1_out _cmcon 7
175                     ; line_number = 72
176                     ;  or_if ra1_unused _trisa 2
177                     ; line_number = 73
178                     ;  or_if ra1_unused _adcon1 7
179                     ; line_number = 74
180                     ;  or_if ra1_unused _adcon0 0
181                     ; line_number = 75
182                     ;  or_if ra1_unused _cmcon 7
183                     ; line_number = 76
184                     ; pin ra2_in, ra2_out, an2, vref_minus, ra2_unused
185                     ; line_number = 77
186                     ; pin_bindings pdip = 4
187                     ; line_number = 78
188                     ;  bind_to _porta@2
189                     ; line_number = 79
190                     ;  or_if ra2_in _trisa 4
191                     ; line_number = 80
192                     ;  or_if ra2_in _adcon1 7
193                     ; line_number = 81
194                     ;  or_if ra2_in _adcon0 0
195                     ; line_number = 82
196                     ;  or_if ra2_in _cmcon 7
197                     ; line_number = 83
198                     ;  or_if ra2_out _trisa 0
199                     ; line_number = 84
200                     ;  or_if ra2_out _adcon1 7
201                     ; line_number = 85
202                     ;  or_if ra2_out _adcon0 0
203                     ; line_number = 86
204                     ;  or_if ra2_out _cmcon 7
205                     ; line_number = 87
206                     ;  or_if ra2_unused _trisa 4
207                     ; line_number = 88
208                     ;  or_if ra2_unused _adcon1 7
209                     ; line_number = 89
210                     ;  or_if ra2_unused _adcon0 0
211                     ; line_number = 90
212                     ;  or_if ra2_unused _cmcon 7
213                     ; line_number = 91
214                     ; pin ra3_in, ra3_out, an3, vrev_plus, ra3_unused
215                     ; line_number = 92
216                     ; pin_bindings pdip = 5
217                     ; line_number = 93
218                     ;  bind_to _porta@3
219                     ; line_number = 94
220                     ;  or_if ra3_in _trisa 8
221                     ; line_number = 95
222                     ;  or_if ra3_in _adcon1 7
223                     ; line_number = 96
224                     ;  or_if ra3_in _adcon0 0
225                     ; line_number = 97
226                     ;  or_if ra3_in _cmcon 7
227                     ; line_number = 98
228                     ;  or_if ra3_out _trisa 0
229                     ; line_number = 99
230                     ;  or_if ra3_out _adcon1 7
231                     ; line_number = 100
232                     ;  or_if ra3_out _adcon0 0
233                     ; line_number = 101
234                     ;  or_if ra3_out _cmcon 7
235                     ; line_number = 102
236                     ;  or_if ra3_unused _trisa 8
237                     ; line_number = 103
238                     ;  or_if ra3_unused _adcon1 7
239                     ; line_number = 104
240                     ;  or_if ra3_unused _adcon0 0
241                     ; line_number = 105
242                     ;  or_if ra3_unused _cmcon 7
243                     ; line_number = 106
244                     ; pin ra4_in, ra4_out, t0cki, ra4_unused
245                     ; line_number = 107
246                     ; pin_bindings pdip = 6
247                     ; line_number = 108
248                     ;  bind_to _porta@4
249                     ; line_number = 109
250                     ;  or_if ra4_in _trisa 16
251                     ; line_number = 110
252                     ;  or_if ra4_in _adcon1 7
253                     ; line_number = 111
254                     ;  or_if ra4_in _adcon0 0
255                     ; line_number = 112
256                     ;  or_if ra4_out _trisa 0
257                     ; line_number = 113
258                     ;  or_if ra4_out _adcon1 7
259                     ; line_number = 114
260                     ;  or_if ra4_out _adcon0 0
261                     ; line_number = 115
262                     ;  or_if ra4_unused _trisa 16
263                     ; line_number = 116
264                     ;  or_if ra4_unused _adcon1 7
265                     ; line_number = 117
266                     ;  or_if ra4_unused _adcon0 0
267                     ; line_number = 118
268                     ; pin ra5_in, ra5_out, an4, ra5_unused
269                     ; line_number = 119
270                     ; pin_bindings pdip = 7
271                     ; line_number = 120
272                     ;  bind_to _porta@5
273                     ; line_number = 121
274                     ;  or_if ra5_in _trisa 32
275                     ; line_number = 122
276                     ;  or_if ra5_in _adcon1 7
277                     ; line_number = 123
278                     ;  or_if ra5_in _adcon1 0
279                     ; line_number = 124
280                     ;  or_if ra5_out _trisa 0
281                     ; line_number = 125
282                     ;  or_if ra5_out _adcon1 7
283                     ; line_number = 126
284                     ;  or_if ra5_out _adcon0 0
285                     ; line_number = 127
286                     ;  or_if ra5_unused _trisa 32
287                     ; line_number = 128
288                     ;  or_if ra5_unused _adcon1 7
289                     ; line_number = 129
290                     ;  or_if ra5_unused _adcon1 0
291                     ; line_number = 130
292                     ; pin vss, ground
293                     ; line_number = 131
294                     ; pin_bindings pdip = 8
295                     ; line_number = 132
296                     ; pin osc1, clkin
297                     ; line_number = 133
298                     ; pin_bindings pdip = 9
299                     ; line_number = 134
300                     ; pin osc2, clkout
301                     ; line_number = 135
302                     ; pin_bindings pdip = 10
303                     ; line_number = 136
304                     ; pin rc0_in, rc0_out, t1oso, t1cki, rc0_unused
305                     ; line_number = 137
306                     ; pin_bindings pdip = 11
307                     ; line_number = 138
308                     ;  bind_to _portc@0
309                     ; line_number = 139
310                     ;  or_if rc0_in _trisc 1
311                     ; line_number = 140
312                     ;  or_if rc0_in _adcon1 7
313                     ; line_number = 141
314                     ;  or_if rc0_in _adcon0 0
315                     ; line_number = 142
316                     ;  or_if rc0_out _trisc 0
317                     ; line_number = 143
318                     ;  or_if rc0_out _adcon1 7
319                     ; line_number = 144
320                     ;  or_if rc0_out _adcon0 0
321                     ; line_number = 145
322                     ;  or_if rc0_unused _trisc 1
323                     ; line_number = 146
324                     ;  or_if rc0_unused _adcon1 7
325                     ; line_number = 147
326                     ;  or_if rc0_unused _adcon0 0
327                     ; line_number = 148
328                     ; pin rc1_in, rc1_out, t1osi, ccp2, rc1_unused
329                     ; line_number = 149
330                     ; pin_bindings pdip = 12
331                     ; line_number = 150
332                     ;  bind_to _portc@1
333                     ; line_number = 151
334                     ;  or_if rc1_in _trisc 2
335                     ; line_number = 152
336                     ;  or_if rc1_in _adcon1 7
337                     ; line_number = 153
338                     ;  or_if rc1_in _adcon0 0
339                     ; line_number = 154
340                     ;  or_if rc1_out _trisc 0
341                     ; line_number = 155
342                     ;  or_if rc1_out _adcon1 7
343                     ; line_number = 156
344                     ;  or_if rc1_out _adcon0 0
345                     ; line_number = 157
346                     ;  or_if rc1_unused _trisc 2
347                     ; line_number = 158
348                     ;  or_if rc1_unused _adcon1 7
349                     ; line_number = 159
350                     ;  or_if rc1_unused _adcon0 0
351                     ; line_number = 160
352                     ; pin rc2_in, rc2_out, ccp1, rc2_unused
353                     ; line_number = 161
354                     ; pin_bindings pdip = 13
355                     ; line_number = 162
356                     ;  bind_to _portc@2
357                     ; line_number = 163
358                     ;  or_if rc2_in _trisc 4
359                     ; line_number = 164
360                     ;  or_if rc2_in _adcon1 7
361                     ; line_number = 165
362                     ;  or_if rc2_in _adcon0 0
363                     ; line_number = 166
364                     ;  or_if rc2_out _trisc 0
365                     ; line_number = 167
366                     ;  or_if rc2_out _adcon1 7
367                     ; line_number = 168
368                     ;  or_if rc2_out _adcon0 0
369                     ; line_number = 169
370                     ;  or_if rc2_unused _trisc 4
371                     ; line_number = 170
372                     ;  or_if rc2_unused _adcon1 7
373                     ; line_number = 171
374                     ;  or_if rc2_unused _adcon0 0
375                     ; line_number = 172
376                     ; pin rc3_in, rc3_out, sck_master, sck_slave, scl, rc3_unused
377                     ; line_number = 173
378                     ; pin_bindings pdip = 14
379                     ; line_number = 174
380                     ;  bind_to _portc@3
381                     ; line_number = 175
382                     ;  or_if rc3_in _trisc 8
383                     ; line_number = 176
384                     ;  or_if rc3_in _adcon1 7
385                     ; line_number = 177
386                     ;  or_if rc3_in _adcon0 0
387                     ; line_number = 178
388                     ;  or_if rc3_out _trisc 0
389                     ; line_number = 179
390                     ;  or_if rc3_out _adcon1 7
391                     ; line_number = 180
392                     ;  or_if rc3_out _adcon0 0
393                     ; line_number = 181
394                     ;  or_if sck_slave _trisc 8
395                     ; line_number = 182
396                     ;  or_if sck_slave _adcon1 7
397                     ; line_number = 183
398                     ;  or_if sck_slave _adcon0 0
399                     ; line_number = 184
400                     ;  or_if sck_master _trisc 0
401                     ; line_number = 185
402                     ;  or_if sck_master _adcon1 7
403                     ; line_number = 186
404                     ;  or_if sck_master _adcon0 0
405                     ; line_number = 187
406                     ;  or_if rc3_unused _trisc 8
407                     ; line_number = 188
408                     ;  or_if rc3_unused _adcon1 7
409                     ; line_number = 189
410                     ;  or_if rc3_unused _adcon0 0
411                     ; line_number = 190
412                     ; pin rc4_in, rc4_out, sdi, sda, rc4_unused
413                     ; line_number = 191
414                     ; pin_bindings pdip = 15
415                     ; line_number = 192
416                     ;  bind_to _portc@4
417                     ; line_number = 193
418                     ;  or_if rc4_in _trisc 16
419                     ; line_number = 194
420                     ;  or_if rc4_in _adcon1 7
421                     ; line_number = 195
422                     ;  or_if rc4_in _adcon0 0
423                     ; line_number = 196
424                     ;  or_if rc4_out _trisc 0
425                     ; line_number = 197
426                     ;  or_if rc4_out _adcon1 7
427                     ; line_number = 198
428                     ;  or_if rc4_out _adcon0 0
429                     ; line_number = 199
430                     ;  or_if sdi _trisc 16
431                     ; line_number = 200
432                     ;  or_if sdi _adcon1 7
433                     ; line_number = 201
434                     ;  or_if sdi _adcon0 0
435                     ; line_number = 202
436                     ;  or_if rc4_unused _trisc 16
437                     ; line_number = 203
438                     ;  or_if rc4_unused _adcon1 7
439                     ; line_number = 204
440                     ;  or_if rc4_unused _adcon0 0
441                     ; line_number = 205
442                     ; pin rc5_in, rc5_out, sdo, rc5_unused
443                     ; line_number = 206
444                     ; pin_bindings pdip = 16
445                     ; line_number = 207
446                     ;  bind_to _portc@5
447                     ; line_number = 208
448                     ;  or_if rc5_in _trisc 32
449                     ; line_number = 209
450                     ;  or_if rc5_in _adcon1 7
451                     ; line_number = 210
452                     ;  or_if rc5_in _adcon0 0
453                     ; line_number = 211
454                     ;  or_if rc5_out _trisc 0
455                     ; line_number = 212
456                     ;  or_if rc5_out _adcon1 7
457                     ; line_number = 213
458                     ;  or_if rc5_out _adcon0 0
459                     ; line_number = 214
460                     ;  or_if sdo _trisc 0
461                     ; line_number = 215
462                     ;  or_if sdo _adcon1 7
463                     ; line_number = 216
464                     ;  or_if sdo _adcon0 0
465                     ; line_number = 217
466                     ;  or_if rc5_unused _trisc 32
467                     ; line_number = 218
468                     ;  or_if rc5_unused _adcon1 7
469                     ; line_number = 219
470                     ;  or_if rc5_unused _adcon0 0
471                     ; line_number = 220
472                     ; pin rc6_in, rc6_out, tx, ck, rc6_unused
473                     ; line_number = 221
474                     ; pin_bindings pdip = 17
475                     ; line_number = 222
476                     ;  bind_to _portc@6
477                     ; line_number = 223
478                     ;  or_if rc6_in _trisc 64
479                     ; line_number = 224
480                     ;  or_if rc6_in _adcon1 7
481                     ; line_number = 225
482                     ;  or_if rc6_in _adcon0 0
483                     ; line_number = 226
484                     ;  or_if rc6_out _trisc 0
485                     ; line_number = 227
486                     ;  or_if rc6_out _adcon1 7
487                     ; line_number = 228
488                     ;  or_if rc6_out _adcon0 0
489                     ; line_number = 229
490                     ;  or_if tx _trisc 0
491                     ; line_number = 230
492                     ;  or_if tx _adcon1 7
493                     ; line_number = 231
494                     ;  or_if tx _adcon0 0
495                     ; line_number = 232
496                     ;  or_if rc6_unused _trisc 64
497                     ; line_number = 233
498                     ;  or_if rc6_unused _adcon1 7
499                     ; line_number = 234
500                     ;  or_if rc6_unused _adcon0 0
501                     ; line_number = 235
502                     ; pin rc7_in, rc7_out, rx, dt, rc7_unused
503                     ; line_number = 236
504                     ; pin_bindings pdip = 18
505                     ; line_number = 237
506                     ;  bind_to _portc@7
507                     ; line_number = 238
508                     ;  or_if rc7_in _trisc 128
509                     ; line_number = 239
510                     ;  or_if rc7_in _adcon1 7
511                     ; line_number = 240
512                     ;  or_if rc7_in _adcon0 0
513                     ; line_number = 241
514                     ;  or_if rx _trisc 128
515                     ; line_number = 242
516                     ;  or_if rx _adcon1 7
517                     ; line_number = 243
518                     ;  or_if rx _adcon0 0
519                     ; line_number = 244
520                     ;  or_if rc7_out _trisc 0
521                     ; line_number = 245
522                     ;  or_if rc7_out _adcon1 7
523                     ; line_number = 246
524                     ;  or_if rc7_out _adcon0 0
525                     ; line_number = 247
526                     ;  or_if rc7_unused _trisc 128
527                     ; line_number = 248
528                     ;  or_if rc7_unused _adcon1 7
529                     ; line_number = 249
530                     ;  or_if rc7_unused _adcon0 0
531                     ; line_number = 250
532                     ; pin vss2, ground2
533                     ; line_number = 251
534                     ; pin_bindings pdip = 19
535                     ; line_number = 252
536                     ; pin vdd, power_supply
537                     ; line_number = 253
538                     ; pin_bindings pdip = 20
539                     ; line_number = 254
540                     ; pin rb0_in, rb0_out, int, rb0_unused
541                     ; line_number = 255
542                     ; pin_bindings pdip = 21
543                     ; line_number = 256
544                     ;  bind_to _portb@0
545                     ; line_number = 257
546                     ;  or_if rb0_in _trisb 1
547                     ; line_number = 258
548                     ;  or_if rb0_in _adcon1 7
549                     ; line_number = 259
550                     ;  or_if rb0_in _adcon0 0
551                     ; line_number = 260
552                     ;  or_if rb0_out _trisb 0
553                     ; line_number = 261
554                     ;  or_if rb0_out _adcon1 7
555                     ; line_number = 262
556                     ;  or_if rb0_out _adcon0 0
557                     ; line_number = 263
558                     ;  or_if rb0_unused _trisb 1
559                     ; line_number = 264
560                     ;  or_if rb0_unused _adcon1 7
561                     ; line_number = 265
562                     ;  or_if rb0_unused _adcon0 0
563                     ; line_number = 266
564                     ; pin rb1_in, rb1_out, rb1_unused
565                     ; line_number = 267
566                     ; pin_bindings pdip = 22
567                     ; line_number = 268
568                     ;  bind_to _portb@1
569                     ; line_number = 269
570                     ;  or_if rb1_in _trisb 2
571                     ; line_number = 270
572                     ;  or_if rb1_in _adcon1 7
573                     ; line_number = 271
574                     ;  or_if rb1_in _adcon0 0
575                     ; line_number = 272
576                     ;  or_if rb1_out _trisb 0
577                     ; line_number = 273
578                     ;  or_if rb1_out _adcon1 7
579                     ; line_number = 274
580                     ;  or_if rb1_out _adcon0 0
581                     ; line_number = 275
582                     ;  or_if rb1_unused _trisb 2
583                     ; line_number = 276
584                     ;  or_if rb1_unused _adcon1 7
585                     ; line_number = 277
586                     ;  or_if rb1_unused _adcon0 0
587                     ; line_number = 278
588                     ; pin rb2_in, rb2_out, rb2_unused
589                     ; line_number = 279
590                     ; pin_bindings pdip = 23
591                     ; line_number = 280
592                     ;  bind_to _portb@2
593                     ; line_number = 281
594                     ;  or_if rb2_in _trisb 4
595                     ; line_number = 282
596                     ;  or_if rb2_in _adcon1 7
597                     ; line_number = 283
598                     ;  or_if rb2_in _adcon0 0
599                     ; line_number = 284
600                     ;  or_if rb2_out _trisb 0
601                     ; line_number = 285
602                     ;  or_if rb2_out _adcon1 7
603                     ; line_number = 286
604                     ;  or_if rb2_out _adcon0 0
605                     ; line_number = 287
606                     ;  or_if rb2_unused _trisb 4
607                     ; line_number = 288
608                     ;  or_if rb2_unused _adcon1 7
609                     ; line_number = 289
610                     ;  or_if rb2_unused _adcon0 0
611                     ; line_number = 290
612                     ; pin rb3_in, rb3_out, pgm, rb3_unused
613                     ; line_number = 291
614                     ; pin_bindings pdip = 24
615                     ; line_number = 292
616                     ;  bind_to _portb@3
617                     ; line_number = 293
618                     ;  or_if rb3_in _trisb 8
619                     ; line_number = 294
620                     ;  or_if rb3_in _adcon1 7
621                     ; line_number = 295
622                     ;  or_if rb3_in _adcon0 0
623                     ; line_number = 296
624                     ;  or_if rb3_out _trisb 0
625                     ; line_number = 297
626                     ;  or_if rb3_out _adcon1 7
627                     ; line_number = 298
628                     ;  or_if rb3_out _adcon0 0
629                     ; line_number = 299
630                     ;  or_if rb3_unused _trisb 8
631                     ; line_number = 300
632                     ;  or_if rb3_unused _adcon1 7
633                     ; line_number = 301
634                     ;  or_if rb3_unused _adcon0 0
635                     ; line_number = 302
636                     ; pin rb4_in, rb4_out, rb4_unused
637                     ; line_number = 303
638                     ; pin_bindings pdip = 25
639                     ; line_number = 304
640                     ;  bind_to _portb@4
641                     ; line_number = 305
642                     ;  or_if rb4_in _trisb 16
643                     ; line_number = 306
644                     ;  or_if rb4_in _adcon1 7
645                     ; line_number = 307
646                     ;  or_if rb4_in _adcon0 0
647                     ; line_number = 308
648                     ;  or_if rb4_out _trisb 0
649                     ; line_number = 309
650                     ;  or_if rb4_out _adcon1 7
651                     ; line_number = 310
652                     ;  or_if rb4_out _adcon0 0
653                     ; line_number = 311
654                     ;  or_if rb4_unused _trisb 16
655                     ; line_number = 312
656                     ;  or_if rb4_unused _adcon1 7
657                     ; line_number = 313
658                     ;  or_if rb4_unused _adcon0 0
659                     ; line_number = 314
660                     ; pin rb5_in, rb5_out, rb5_unused
661                     ; line_number = 315
662                     ; pin_bindings pdip = 26
663                     ; line_number = 316
664                     ;  bind_to _portb@5
665                     ; line_number = 317
666                     ;  or_if rb5_in _trisb 32
667                     ; line_number = 318
668                     ;  or_if rb5_in _adcon1 7
669                     ; line_number = 319
670                     ;  or_if rb5_in _adcon0 0
671                     ; line_number = 320
672                     ;  or_if rb5_out _trisb 0
673                     ; line_number = 321
674                     ;  or_if rb5_out _adcon1 7
675                     ; line_number = 322
676                     ;  or_if rb5_out _adcon0 0
677                     ; line_number = 323
678                     ;  or_if rb5_unused _trisb 32
679                     ; line_number = 324
680                     ;  or_if rb5_unused _adcon1 7
681                     ; line_number = 325
682                     ;  or_if rb5_unused _adcon0 0
683                     ; line_number = 326
684                     ; pin rb6_in, rb6_out, pgc, rb6_unused
685                     ; line_number = 327
686                     ; pin_bindings pdip = 27
687                     ; line_number = 328
688                     ;  bind_to _portb@6
689                     ; line_number = 329
690                     ;  or_if rb6_in _trisb 64
691                     ; line_number = 330
692                     ;  or_if rb6_in _adcon1 7
693                     ; line_number = 331
694                     ;  or_if rb6_in _adcon0 0
695                     ; line_number = 332
696                     ;  or_if rb6_out _trisb 0
697                     ; line_number = 333
698                     ;  or_if rb6_out _adcon1 7
699                     ; line_number = 334
700                     ;  or_if rb6_out _adcon0 0
701                     ; line_number = 335
702                     ;  or_if rb6_unused _trisb 64
703                     ; line_number = 336
704                     ;  or_if rb6_unused _adcon1 7
705                     ; line_number = 337
706                     ;  or_if rb6_unused _adcon0 0
707                     ; line_number = 338
708                     ; pin rb7_in, rb7_out, pgd, rb7_unused
709                     ; line_number = 339
710                     ; pin_bindings pdip = 28
711                     ; line_number = 340
712                     ;  bind_to _portb@7
713                     ; line_number = 341
714                     ;  or_if rb7_in _trisb 128
715                     ; line_number = 342
716                     ;  or_if rb7_in _adcon1 7
717                     ; line_number = 343
718                     ;  or_if rb7_in _adcon0 0
719                     ; line_number = 344
720                     ;  or_if rb7_out _trisb 0
721                     ; line_number = 345
722                     ;  or_if rb7_out _adcon1 7
723                     ; line_number = 346
724                     ;  or_if rb7_out _adcon0 0
725                     ; line_number = 347
726                     ;  or_if rb7_unused _trisb 128
727                     ; line_number = 348
728                     ;  or_if rb7_unused _adcon1 7
729                     ; line_number = 349
730                     ;  or_if rb7_unused _adcon0 0
731             
732             
733                     ; # Register and pin definitions:
734             
735                     ; line_number = 356
736                     ; library _pic16f87x entered
737             
738                     ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
739                     ; # All rights reserved.
740             
741                     ; # Common declarations for PIC16F87x series microcontrollers:
742             
743                     ; buffer = '_pic16f87x'
744                     ; line_number = 8
745                     ; library _standard entered
746             
747                     ; # Copyright (c) 2006 by Wayne C. Gramlich
748                     ; # All rights reserved.
749             
750                     ; # Standard definition for uCL:
751             
752                     ; buffer = '_standard'
753                     ; line_number = 8
754                     ; constant _true = (1 = 1)
755  00000001 = _true equ 1
756                     ; line_number = 9
757                     ; constant _false = (0 != 0)
758  00000000 = _false equ 0
759             
760             
761                     ; buffer = '_pic16f87x'
762                     ; line_number = 8
763                     ; library _standard exited
764             
765                     ; # Register and pin definitions:
766             
767                     ; # Bank 0:
768             
769                     ; line_number = 14
770                     ; register _indf = 
771  00000000 = _indf equ 0
772             
773                     ; line_number = 16
774                     ; register _tmr0 = 
775  00000001 = _tmr0 equ 1
776             
777                     ; line_number = 18
778                     ; register _pcl = 
779  00000002 = _pcl equ 2
780             
781                     ; line_number = 20
782                     ; register _status = 
783  00000003 = _status equ 3
784                     ; line_number = 21
785                     ; bind _irp = _status@7
786  00000003 = _irp___byte equ _status
787  00000007 = _irp___bit equ 7
788                     ; line_number = 22
789                     ; bind _rp1 = _status@6
790  00000003 = _rp1___byte equ _status
791  00000006 = _rp1___bit equ 6
792                     ; line_number = 23
793                     ; bind _rp0 = _status@5
794  00000003 = _rp0___byte equ _status
795  00000005 = _rp0___bit equ 5
796                     ; line_number = 24
797                     ; bind _to = _status@4
798  00000003 = _to___byte equ _status
799  00000004 = _to___bit equ 4
800                     ; line_number = 25
801                     ; bind _pd = _status@3
802  00000003 = _pd___byte equ _status
803  00000003 = _pd___bit equ 3
804                     ; line_number = 26
805                     ; bind _z = _status@2
806  00000003 = _z___byte equ _status
807  00000002 = _z___bit equ 2
808                     ; line_number = 27
809                     ; bind _dc = _status@1
810  00000003 = _dc___byte equ _status
811  00000001 = _dc___bit equ 1
812                     ; line_number = 28
813                     ; bind _c = _status@0
814  00000003 = _c___byte equ _status
815  00000000 = _c___bit equ 0
816             
817                     ; line_number = 30
818                     ; register _fsr = 
819  00000004 = _fsr equ 4
820             
821                     ; line_number = 32
822                     ; register _porta = 
823  00000005 = _porta equ 5
824             
825                     ; line_number = 34
826                     ; register _portb = 
827  00000006 = _portb equ 6
828             
829                     ; line_number = 36
830                     ; register _portc = 
831  00000007 = _portc equ 7
832             
833                     ; line_number = 38
834                     ; register _pclath = 
835  0000000a = _pclath equ 10
836             
837                     ; line_number = 40
838                     ; register _intcon = 
839  0000000b = _intcon equ 11
840                     ; line_number = 41
841                     ; bind _gie = _intcon@7
842  0000000b = _gie___byte equ _intcon
843  00000007 = _gie___bit equ 7
844                     ; line_number = 42
845                     ; bind _peie = _intcon@6
846  0000000b = _peie___byte equ _intcon
847  00000006 = _peie___bit equ 6
848                     ; line_number = 43
849                     ; bind _t0ie = _intcon@5
850  0000000b = _t0ie___byte equ _intcon
851  00000005 = _t0ie___bit equ 5
852                     ; line_number = 44
853                     ; bind _inte = _intcon@4
854  0000000b = _inte___byte equ _intcon
855  00000004 = _inte___bit equ 4
856                     ; line_number = 45
857                     ; bind _rbie = _intcon@3
858  0000000b = _rbie___byte equ _intcon
859  00000003 = _rbie___bit equ 3
860                     ; line_number = 46
861                     ; bind _t0if = _intcon@2
862  0000000b = _t0if___byte equ _intcon
863  00000002 = _t0if___bit equ 2
864                     ; line_number = 47
865                     ; bind _intf = _intcon@1
866  0000000b = _intf___byte equ _intcon
867  00000001 = _intf___bit equ 1
868                     ; line_number = 48
869                     ; bind _rbf = _intcon@0
870  0000000b = _rbf___byte equ _intcon
871  00000000 = _rbf___bit equ 0
872             
873                     ; line_number = 50
874                     ; register _pir1 = 
875  0000000c = _pir1 equ 12
876                     ; line_number = 51
877                     ; bind _pspif = _pir1@7
878  0000000c = _pspif___byte equ _pir1
879  00000007 = _pspif___bit equ 7
880                     ; line_number = 52
881                     ; bind _adif = _pir1@6
882  0000000c = _adif___byte equ _pir1
883  00000006 = _adif___bit equ 6
884                     ; line_number = 53
885                     ; bind _rcif = _pir1@5
886  0000000c = _rcif___byte equ _pir1
887  00000005 = _rcif___bit equ 5
888                     ; line_number = 54
889                     ; bind _txif = _pir1@4
890  0000000c = _txif___byte equ _pir1
891  00000004 = _txif___bit equ 4
892                     ; line_number = 55
893                     ; bind _sspif = _pir1@3
894  0000000c = _sspif___byte equ _pir1
895  00000003 = _sspif___bit equ 3
896                     ; line_number = 56
897                     ; bind _ccpif = _pir1@2
898  0000000c = _ccpif___byte equ _pir1
899  00000002 = _ccpif___bit equ 2
900                     ; line_number = 57
901                     ; bind _tmr2if = _pir1@1
902  0000000c = _tmr2if___byte equ _pir1
903  00000001 = _tmr2if___bit equ 1
904                     ; line_number = 58
905                     ; bind _tmr1if = _pir1@0
906  0000000c = _tmr1if___byte equ _pir1
907  00000000 = _tmr1if___bit equ 0
908             
909                     ; line_number = 60
910                     ; register _pir2 = 
911  0000000d = _pir2 equ 13
912                     ; line_number = 61
913                     ; bind _eeif = _pir2@4
914  0000000d = _eeif___byte equ _pir2
915  00000004 = _eeif___bit equ 4
916                     ; line_number = 62
917                     ; bind _bclif = _pir2@3
918  0000000d = _bclif___byte equ _pir2
919  00000003 = _bclif___bit equ 3
920                     ; line_number = 63
921                     ; bind _ccp2if = _pir2@0
922  0000000d = _ccp2if___byte equ _pir2
923  00000000 = _ccp2if___bit equ 0
924             
925                     ; line_number = 65
926                     ; register _tmr1l = 
927  0000000e = _tmr1l equ 14
928             
929                     ; line_number = 67
930                     ; register _tmr1h = 
931  0000000f = _tmr1h equ 15
932             
933                     ; line_number = 69
934                     ; register _t1con = 
935  00000010 = _t1con equ 16
936                     ; line_number = 70
937                     ; bind _t1ckps1 = _t1con@5
938  00000010 = _t1ckps1___byte equ _t1con
939  00000005 = _t1ckps1___bit equ 5
940                     ; line_number = 71
941                     ; bind _t1ckps0 = _t1con@4
942  00000010 = _t1ckps0___byte equ _t1con
943  00000004 = _t1ckps0___bit equ 4
944                     ; line_number = 72
945                     ; bind _t1oscen = _t1con@3
946  00000010 = _t1oscen___byte equ _t1con
947  00000003 = _t1oscen___bit equ 3
948                     ; line_number = 73
949                     ; bind _t1sync = _t1con@2
950  00000010 = _t1sync___byte equ _t1con
951  00000002 = _t1sync___bit equ 2
952                     ; line_number = 74
953                     ; bind _tmr1cs = _t1con@1
954  00000010 = _tmr1cs___byte equ _t1con
955  00000001 = _tmr1cs___bit equ 1
956                     ; line_number = 75
957                     ; bind _tmr1on = _t1con@0
958  00000010 = _tmr1on___byte equ _t1con
959  00000000 = _tmr1on___bit equ 0
960             
961                     ; line_number = 77
962                     ; register _tmr2 = 
963  00000011 = _tmr2 equ 17
964             
965                     ; line_number = 79
966                     ; register _t2con = 
967  00000012 = _t2con equ 18
968                     ; line_number = 80
969                     ; bind _toutps3 = _t2con@6
970  00000012 = _toutps3___byte equ _t2con
971  00000006 = _toutps3___bit equ 6
972                     ; line_number = 81
973                     ; bind _toutps2 = _t2con@5
974  00000012 = _toutps2___byte equ _t2con
975  00000005 = _toutps2___bit equ 5
976                     ; line_number = 82
977                     ; bind _toutps1 = _t2con@4
978  00000012 = _toutps1___byte equ _t2con
979  00000004 = _toutps1___bit equ 4
980                     ; line_number = 83
981                     ; bind _toutps0 = _t2con@3
982  00000012 = _toutps0___byte equ _t2con
983  00000003 = _toutps0___bit equ 3
984                     ; line_number = 84
985                     ; bind _tmr2on = _t2con@2
986  00000012 = _tmr2on___byte equ _t2con
987  00000002 = _tmr2on___bit equ 2
988                     ; line_number = 85
989                     ; bind _t2ckps1 = _t2con@1
990  00000012 = _t2ckps1___byte equ _t2con
991  00000001 = _t2ckps1___bit equ 1
992                     ; line_number = 86
993                     ; bind _t2ckps0 = _t2con@0
994  00000012 = _t2ckps0___byte equ _t2con
995  00000000 = _t2ckps0___bit equ 0
996             
997                     ; line_number = 88
998                     ; register _sspbuf = 
999  00000013 = _sspbuf equ 19
1000            
1001                    ; line_number = 90
1002                    ; register _sspcon = 
1003 00000014 = _sspcon equ 20
1004                    ; line_number = 91
1005                    ; bind _wcol = _sspcon@7
1006 00000014 = _wcol___byte equ _sspcon
1007 00000007 = _wcol___bit equ 7
1008                    ; line_number = 92
1009                    ; bind _sspov = _sspcon@6
1010 00000014 = _sspov___byte equ _sspcon
1011 00000006 = _sspov___bit equ 6
1012                    ; line_number = 93
1013                    ; bind _sspen = _sspcon@5
1014 00000014 = _sspen___byte equ _sspcon
1015 00000005 = _sspen___bit equ 5
1016                    ; line_number = 94
1017                    ; bind _ckp = _sspcon@4
1018 00000014 = _ckp___byte equ _sspcon
1019 00000004 = _ckp___bit equ 4
1020                    ; line_number = 95
1021                    ; bind _sspm3 = _sspcon@3
1022 00000014 = _sspm3___byte equ _sspcon
1023 00000003 = _sspm3___bit equ 3
1024                    ; line_number = 96
1025                    ; bind _sspm2 = _sspcon@2
1026 00000014 = _sspm2___byte equ _sspcon
1027 00000002 = _sspm2___bit equ 2
1028                    ; line_number = 97
1029                    ; bind _sspm1 = _sspcon@1
1030 00000014 = _sspm1___byte equ _sspcon
1031 00000001 = _sspm1___bit equ 1
1032                    ; line_number = 98
1033                    ; bind _sspm0 = _sspcon@0
1034 00000014 = _sspm0___byte equ _sspcon
1035 00000000 = _sspm0___bit equ 0
1036            
1037                    ; line_number = 100
1038                    ; register _ccpr1l = 
1039 00000015 = _ccpr1l equ 21
1040            
1041                    ; line_number = 102
1042                    ; register _ccpr1h = 
1043 00000016 = _ccpr1h equ 22
1044            
1045                    ; line_number = 104
1046                    ; register _ccp1con = 
1047 00000017 = _ccp1con equ 23
1048                    ; line_number = 105
1049                    ; bind _ccp1x = _ccp1con@5
1050 00000017 = _ccp1x___byte equ _ccp1con
1051 00000005 = _ccp1x___bit equ 5
1052                    ; line_number = 106
1053                    ; bind _ccp1y = _ccp1con@4
1054 00000017 = _ccp1y___byte equ _ccp1con
1055 00000004 = _ccp1y___bit equ 4
1056                    ; line_number = 107
1057                    ; bind _ccp1m3 = _ccp1con@3
1058 00000017 = _ccp1m3___byte equ _ccp1con
1059 00000003 = _ccp1m3___bit equ 3
1060                    ; line_number = 108
1061                    ; bind _ccp1m2 = _ccp1con@2
1062 00000017 = _ccp1m2___byte equ _ccp1con
1063 00000002 = _ccp1m2___bit equ 2
1064                    ; line_number = 109
1065                    ; bind _ccp1m1 = _ccp1con@1
1066 00000017 = _ccp1m1___byte equ _ccp1con
1067 00000001 = _ccp1m1___bit equ 1
1068                    ; line_number = 110
1069                    ; bind _ccp1m0 = _ccp1con@0
1070 00000017 = _ccp1m0___byte equ _ccp1con
1071 00000000 = _ccp1m0___bit equ 0
1072            
1073                    ; line_number = 112
1074                    ; register _rcsta = 
1075 00000018 = _rcsta equ 24
1076                    ; line_number = 113
1077                    ; bind _spen = _rcsta@7
1078 00000018 = _spen___byte equ _rcsta
1079 00000007 = _spen___bit equ 7
1080                    ; line_number = 114
1081                    ; bind _rx9 = _rcsta@6
1082 00000018 = _rx9___byte equ _rcsta
1083 00000006 = _rx9___bit equ 6
1084                    ; line_number = 115
1085                    ; bind _sren = _rcsta@5
1086 00000018 = _sren___byte equ _rcsta
1087 00000005 = _sren___bit equ 5
1088                    ; line_number = 116
1089                    ; bind _cren = _rcsta@4
1090 00000018 = _cren___byte equ _rcsta
1091 00000004 = _cren___bit equ 4
1092                    ; line_number = 117
1093                    ; bind _adden = _rcsta@3
1094 00000018 = _adden___byte equ _rcsta
1095 00000003 = _adden___bit equ 3
1096                    ; line_number = 118
1097                    ; bind _ferr = _rcsta@2
1098 00000018 = _ferr___byte equ _rcsta
1099 00000002 = _ferr___bit equ 2
1100                    ; line_number = 119
1101                    ; bind _oerr = _rcsta@1
1102 00000018 = _oerr___byte equ _rcsta
1103 00000001 = _oerr___bit equ 1
1104                    ; line_number = 120
1105                    ; bind _rx9d = _rcsta@0
1106 00000018 = _rx9d___byte equ _rcsta
1107 00000000 = _rx9d___bit equ 0
1108            
1109                    ; line_number = 122
1110                    ; register _txreg = 
1111 00000019 = _txreg equ 25
1112            
1113                    ; line_number = 124
1114                    ; register _rcreg = 
1115 0000001a = _rcreg equ 26
1116            
1117                    ; line_number = 126
1118                    ; register _ccpr2l = 
1119 0000001b = _ccpr2l equ 27
1120            
1121                    ; line_number = 128
1122                    ; register _ccpr2h = 
1123 0000001c = _ccpr2h equ 28
1124            
1125                    ; line_number = 130
1126                    ; register _ccp2con = 
1127 0000001d = _ccp2con equ 29
1128                    ; line_number = 131
1129                    ; bind _ccp2x = _ccp2con@5
1130 0000001d = _ccp2x___byte equ _ccp2con
1131 00000005 = _ccp2x___bit equ 5
1132                    ; line_number = 132
1133                    ; bind _ccp2y = _ccp2con@4
1134 0000001d = _ccp2y___byte equ _ccp2con
1135 00000004 = _ccp2y___bit equ 4
1136                    ; line_number = 133
1137                    ; bind _ccp2m3 = _ccp2con@3
1138 0000001d = _ccp2m3___byte equ _ccp2con
1139 00000003 = _ccp2m3___bit equ 3
1140                    ; line_number = 134
1141                    ; bind _ccp2m2 = _ccp2con@2
1142 0000001d = _ccp2m2___byte equ _ccp2con
1143 00000002 = _ccp2m2___bit equ 2
1144                    ; line_number = 135
1145                    ; bind _ccp2m1 = _ccp2con@1
1146 0000001d = _ccp2m1___byte equ _ccp2con
1147 00000001 = _ccp2m1___bit equ 1
1148                    ; line_number = 136
1149                    ; bind _ccp2m0 = _ccp2con@0
1150 0000001d = _ccp2m0___byte equ _ccp2con
1151 00000000 = _ccp2m0___bit equ 0
1152            
1153                    ; line_number = 138
1154                    ; register _adresh = 
1155 0000001e = _adresh equ 30
1156            
1157                    ; line_number = 140
1158                    ; register _adcon0 = 
1159 0000001f = _adcon0 equ 31
1160                    ; line_number = 141
1161                    ; bind _adcs1 = _adcon0@7
1162 0000001f = _adcs1___byte equ _adcon0
1163 00000007 = _adcs1___bit equ 7
1164                    ; line_number = 142
1165                    ; bind _adcs0 = _adcon0@6
1166 0000001f = _adcs0___byte equ _adcon0
1167 00000006 = _adcs0___bit equ 6
1168                    ; line_number = 143
1169                    ; bind _chs2 = _adcon0@5
1170 0000001f = _chs2___byte equ _adcon0
1171 00000005 = _chs2___bit equ 5
1172                    ; line_number = 144
1173                    ; bind _chs1 = _adcon0@4
1174 0000001f = _chs1___byte equ _adcon0
1175 00000004 = _chs1___bit equ 4
1176                    ; line_number = 145
1177                    ; bind _chs0 = _adcon0@3
1178 0000001f = _chs0___byte equ _adcon0
1179 00000003 = _chs0___bit equ 3
1180                    ; line_number = 146
1181                    ; bind _go_done = _adcon0@2
1182 0000001f = _go_done___byte equ _adcon0
1183 00000002 = _go_done___bit equ 2
1184                    ; line_number = 147
1185                    ; bind _adon = _adcon0@0
1186 0000001f = _adon___byte equ _adcon0
1187 00000000 = _adon___bit equ 0
1188            
1189                    ; # Bank 1:
1190            
1191                    ; line_number = 151
1192                    ; register _option_reg = 
1193 00000081 = _option_reg equ 129
1194                    ; line_number = 152
1195                    ; bind _rbpu = _option_reg@7
1196 00000081 = _rbpu___byte equ _option_reg
1197 00000007 = _rbpu___bit equ 7
1198                    ; line_number = 153
1199                    ; bind _intedg = _option_reg@6
1200 00000081 = _intedg___byte equ _option_reg
1201 00000006 = _intedg___bit equ 6
1202                    ; line_number = 154
1203                    ; bind _t0cs = _option_reg@5
1204 00000081 = _t0cs___byte equ _option_reg
1205 00000005 = _t0cs___bit equ 5
1206                    ; line_number = 155
1207                    ; bind _t0se = _option_reg@4
1208 00000081 = _t0se___byte equ _option_reg
1209 00000004 = _t0se___bit equ 4
1210                    ; line_number = 156
1211                    ; bind _psa = _option_reg@3
1212 00000081 = _psa___byte equ _option_reg
1213 00000003 = _psa___bit equ 3
1214                    ; line_number = 157
1215                    ; bind _ps2 = _option_reg@2
1216 00000081 = _ps2___byte equ _option_reg
1217 00000002 = _ps2___bit equ 2
1218                    ; line_number = 158
1219                    ; bind _ps1 = _option_reg@1
1220 00000081 = _ps1___byte equ _option_reg
1221 00000001 = _ps1___bit equ 1
1222                    ; line_number = 159
1223                    ; bind _ps0 = _option_reg@0
1224 00000081 = _ps0___byte equ _option_reg
1225 00000000 = _ps0___bit equ 0
1226            
1227                    ; line_number = 161
1228                    ; register _trisa = 
1229 00000085 = _trisa equ 133
1230            
1231                    ; line_number = 163
1232                    ; register _trisb = 
1233 00000086 = _trisb equ 134
1234            
1235                    ; line_number = 165
1236                    ; register _trisc = 
1237 00000087 = _trisc equ 135
1238            
1239                    ; line_number = 167
1240                    ; register _pie1 = 
1241 0000008c = _pie1 equ 140
1242                    ; line_number = 168
1243                    ; bind _pspie = _pie1@7
1244 0000008c = _pspie___byte equ _pie1
1245 00000007 = _pspie___bit equ 7
1246                    ; line_number = 169
1247                    ; bind _adie = _pie1@6
1248 0000008c = _adie___byte equ _pie1
1249 00000006 = _adie___bit equ 6
1250                    ; line_number = 170
1251                    ; bind _rcie = _pie1@5
1252 0000008c = _rcie___byte equ _pie1
1253 00000005 = _rcie___bit equ 5
1254                    ; line_number = 171
1255                    ; bind _txie = _pie1@4
1256 0000008c = _txie___byte equ _pie1
1257 00000004 = _txie___bit equ 4
1258                    ; line_number = 172
1259                    ; bind _sspie = _pie1@3
1260 0000008c = _sspie___byte equ _pie1
1261 00000003 = _sspie___bit equ 3
1262                    ; line_number = 173
1263                    ; bind _ccp1ie = _pie1@2
1264 0000008c = _ccp1ie___byte equ _pie1
1265 00000002 = _ccp1ie___bit equ 2
1266                    ; line_number = 174
1267                    ; bind _tmr2ie = _pie1@1
1268 0000008c = _tmr2ie___byte equ _pie1
1269 00000001 = _tmr2ie___bit equ 1
1270                    ; line_number = 175
1271                    ; bind _tmr1ie = _pie1@0
1272 0000008c = _tmr1ie___byte equ _pie1
1273 00000000 = _tmr1ie___bit equ 0
1274            
1275                    ; line_number = 177
1276                    ; register _pie2 = 
1277 0000008d = _pie2 equ 141
1278                    ; line_number = 178
1279                    ; bind _eeie = _pie2@4
1280 0000008d = _eeie___byte equ _pie2
1281 00000004 = _eeie___bit equ 4
1282                    ; line_number = 179
1283                    ; bind _bcie = _pie2@3
1284 0000008d = _bcie___byte equ _pie2
1285 00000003 = _bcie___bit equ 3
1286                    ; line_number = 180
1287                    ; bind _ccp2ie = _pie2@0
1288 0000008d = _ccp2ie___byte equ _pie2
1289 00000000 = _ccp2ie___bit equ 0
1290            
1291                    ; line_number = 182
1292                    ; register _pcon = 
1293 0000008e = _pcon equ 142
1294                    ; line_number = 183
1295                    ; bind _por = _pcon@1
1296 0000008e = _por___byte equ _pcon
1297 00000001 = _por___bit equ 1
1298                    ; line_number = 184
1299                    ; bind _bor = _pcon@0
1300 0000008e = _bor___byte equ _pcon
1301 00000000 = _bor___bit equ 0
1302            
1303                    ; line_number = 186
1304                    ; register _sspcon2 = 
1305 00000091 = _sspcon2 equ 145
1306                    ; line_number = 187
1307                    ; bind _gcen = _sspcon2@7
1308 00000091 = _gcen___byte equ _sspcon2
1309 00000007 = _gcen___bit equ 7
1310                    ; line_number = 188
1311                    ; bind _ackstat = _sspcon2@6
1312 00000091 = _ackstat___byte equ _sspcon2
1313 00000006 = _ackstat___bit equ 6
1314                    ; line_number = 189
1315                    ; bind _ackdt = _sspcon2@5
1316 00000091 = _ackdt___byte equ _sspcon2
1317 00000005 = _ackdt___bit equ 5
1318                    ; line_number = 190
1319                    ; bind _acken = _sspcon2@4
1320 00000091 = _acken___byte equ _sspcon2
1321 00000004 = _acken___bit equ 4
1322                    ; line_number = 191
1323                    ; bind _rcen = _sspcon2@3
1324 00000091 = _rcen___byte equ _sspcon2
1325 00000003 = _rcen___bit equ 3
1326                    ; line_number = 192
1327                    ; bind _pen = _sspcon2@2
1328 00000091 = _pen___byte equ _sspcon2
1329 00000002 = _pen___bit equ 2
1330                    ; line_number = 193
1331                    ; bind _rsen = _sspcon2@1
1332 00000091 = _rsen___byte equ _sspcon2
1333 00000001 = _rsen___bit equ 1
1334                    ; line_number = 194
1335                    ; bind _sen = _sspcon2@0
1336 00000091 = _sen___byte equ _sspcon2
1337 00000000 = _sen___bit equ 0
1338            
1339                    ; line_number = 196
1340                    ; register _pr2 = 
1341 00000092 = _pr2 equ 146
1342            
1343                    ; line_number = 198
1344                    ; register _sspadd = 
1345 00000093 = _sspadd equ 147
1346            
1347                    ; line_number = 200
1348                    ; register _sspstat = 
1349 00000094 = _sspstat equ 148
1350                    ; line_number = 201
1351                    ; bind _smp = _sspstat@7
1352 00000094 = _smp___byte equ _sspstat
1353 00000007 = _smp___bit equ 7
1354                    ; line_number = 202
1355                    ; bind _cke = _sspstat@6
1356 00000094 = _cke___byte equ _sspstat
1357 00000006 = _cke___bit equ 6
1358                    ; line_number = 203
1359                    ; bind _da = _sspstat@5
1360 00000094 = _da___byte equ _sspstat
1361 00000005 = _da___bit equ 5
1362                    ; line_number = 204
1363                    ; bind _p = _sspstat@4
1364 00000094 = _p___byte equ _sspstat
1365 00000004 = _p___bit equ 4
1366                    ; line_number = 205
1367                    ; bind _s = _sspstat@3
1368 00000094 = _s___byte equ _sspstat
1369 00000003 = _s___bit equ 3
1370                    ; line_number = 206
1371                    ; bind _rw = _sspstat@2
1372 00000094 = _rw___byte equ _sspstat
1373 00000002 = _rw___bit equ 2
1374                    ; line_number = 207
1375                    ; bind _ua = _sspstat@1
1376 00000094 = _ua___byte equ _sspstat
1377 00000001 = _ua___bit equ 1
1378                    ; line_number = 208
1379                    ; bind _bf = _sspstat@0
1380 00000094 = _bf___byte equ _sspstat
1381 00000000 = _bf___bit equ 0
1382            
1383                    ; line_number = 210
1384                    ; register _txsta = 
1385 00000098 = _txsta equ 152
1386                    ; line_number = 211
1387                    ; bind _csrc = _txsta@7
1388 00000098 = _csrc___byte equ _txsta
1389 00000007 = _csrc___bit equ 7
1390                    ; line_number = 212
1391                    ; bind _tx9 = _txsta@6
1392 00000098 = _tx9___byte equ _txsta
1393 00000006 = _tx9___bit equ 6
1394                    ; line_number = 213
1395                    ; bind _txen = _txsta@5
1396 00000098 = _txen___byte equ _txsta
1397 00000005 = _txen___bit equ 5
1398                    ; line_number = 214
1399                    ; bind _sync = _txsta@4
1400 00000098 = _sync___byte equ _txsta
1401 00000004 = _sync___bit equ 4
1402                    ; line_number = 215
1403                    ; bind _brgh = _txsta@2
1404 00000098 = _brgh___byte equ _txsta
1405 00000002 = _brgh___bit equ 2
1406                    ; line_number = 216
1407                    ; bind _trmt = _txsta@1
1408 00000098 = _trmt___byte equ _txsta
1409 00000001 = _trmt___bit equ 1
1410                    ; line_number = 217
1411                    ; bind _tx9d = _txsta@0
1412 00000098 = _tx9d___byte equ _txsta
1413 00000000 = _tx9d___bit equ 0
1414            
1415                    ; line_number = 219
1416                    ; register _spbrg = 
1417 00000099 = _spbrg equ 153
1418            
1419                    ; line_number = 221
1420                    ; register _cmcon = 
1421 0000009c = _cmcon equ 156
1422                    ; line_number = 222
1423                    ; bind _c2out = _cmcon@7
1424 0000009c = _c2out___byte equ _cmcon
1425 00000007 = _c2out___bit equ 7
1426                    ; line_number = 223
1427                    ; bind _c1out = _cmcon@6
1428 0000009c = _c1out___byte equ _cmcon
1429 00000006 = _c1out___bit equ 6
1430                    ; line_number = 224
1431                    ; bind _c2inv = _cmcon@5
1432 0000009c = _c2inv___byte equ _cmcon
1433 00000005 = _c2inv___bit equ 5
1434                    ; line_number = 225
1435                    ; bind _c1inv = _cmcon@4
1436 0000009c = _c1inv___byte equ _cmcon
1437 00000004 = _c1inv___bit equ 4
1438                    ; line_number = 226
1439                    ; bind _cis = _cmcon@3
1440 0000009c = _cis___byte equ _cmcon
1441 00000003 = _cis___bit equ 3
1442                    ; line_number = 227
1443                    ; bind _cm2 = _cmcon@2
1444 0000009c = _cm2___byte equ _cmcon
1445 00000002 = _cm2___bit equ 2
1446                    ; line_number = 228
1447                    ; bind _cm1 = _cmcon@1
1448 0000009c = _cm1___byte equ _cmcon
1449 00000001 = _cm1___bit equ 1
1450                    ; line_number = 229
1451                    ; bind _cm0 = _cmcon@0
1452 0000009c = _cm0___byte equ _cmcon
1453 00000000 = _cm0___bit equ 0
1454            
1455                    ; line_number = 231
1456                    ; register _cvrcon = 
1457 0000009d = _cvrcon equ 157
1458                    ; line_number = 232
1459                    ; bind _cvren = _cvrcon@7
1460 0000009d = _cvren___byte equ _cvrcon
1461 00000007 = _cvren___bit equ 7
1462                    ; line_number = 233
1463                    ; bind _cvroe = _cvrcon@6
1464 0000009d = _cvroe___byte equ _cvrcon
1465 00000006 = _cvroe___bit equ 6
1466                    ; line_number = 234
1467                    ; bind _cvrr = _cvrcon@5
1468 0000009d = _cvrr___byte equ _cvrcon
1469 00000005 = _cvrr___bit equ 5
1470                    ; line_number = 235
1471                    ; bind _cvr3 = _cvrcon@3
1472 0000009d = _cvr3___byte equ _cvrcon
1473 00000003 = _cvr3___bit equ 3
1474                    ; line_number = 236
1475                    ; bind _cvr2 = _cvrcon@2
1476 0000009d = _cvr2___byte equ _cvrcon
1477 00000002 = _cvr2___bit equ 2
1478                    ; line_number = 237
1479                    ; bind _cvr1 = _cvrcon@1
1480 0000009d = _cvr1___byte equ _cvrcon
1481 00000001 = _cvr1___bit equ 1
1482                    ; line_number = 238
1483                    ; bind _cvr0 = _cvrcon@0
1484 0000009d = _cvr0___byte equ _cvrcon
1485 00000000 = _cvr0___bit equ 0
1486            
1487                    ; line_number = 240
1488                    ; register _adresl = 
1489 0000009e = _adresl equ 158
1490            
1491                    ; line_number = 242
1492                    ; register _adcon1 = 
1493 0000009f = _adcon1 equ 159
1494                    ; line_number = 243
1495                    ; bind _adfm = _adcon1@7
1496 0000009f = _adfm___byte equ _adcon1
1497 00000007 = _adfm___bit equ 7
1498                    ; line_number = 244
1499                    ; bind _pcfg3 = _adcon1@3
1500 0000009f = _pcfg3___byte equ _adcon1
1501 00000003 = _pcfg3___bit equ 3
1502                    ; line_number = 245
1503                    ; bind _pcfg2 = _adcon1@2
1504 0000009f = _pcfg2___byte equ _adcon1
1505 00000002 = _pcfg2___bit equ 2
1506                    ; line_number = 246
1507                    ; bind _pcfg1 = _adcon1@1
1508 0000009f = _pcfg1___byte equ _adcon1
1509 00000001 = _pcfg1___bit equ 1
1510                    ; line_number = 247
1511                    ; bind _pcfg0 = _adcon1@0
1512 0000009f = _pcfg0___byte equ _adcon1
1513 00000000 = _pcfg0___bit equ 0
1514            
1515                    ; # Bank 2:
1516            
1517                    ; line_number = 251
1518                    ; register _eedata = 
1519 0000010c = _eedata equ 268
1520            
1521                    ; line_number = 253
1522                    ; register _eeadr = 
1523 0000010d = _eeadr equ 269
1524            
1525                    ; line_number = 255
1526                    ; register _eedath = 
1527 0000010e = _eedath equ 270
1528            
1529                    ; line_number = 257
1530                    ; register _eeadrh = 
1531 0000010f = _eeadrh equ 271
1532            
1533                    ; # Bank 3:
1534            
1535                    ; line_number = 261
1536                    ; register _eecon1 = 
1537 0000018c = _eecon1 equ 396
1538                    ; line_number = 262
1539                    ; bind _eepgd = _eecon1@7
1540 0000018c = _eepgd___byte equ _eecon1
1541 00000007 = _eepgd___bit equ 7
1542                    ; line_number = 263
1543                    ; bind _wrerr = _eecon1@3
1544 0000018c = _wrerr___byte equ _eecon1
1545 00000003 = _wrerr___bit equ 3
1546                    ; line_number = 264
1547                    ; bind _wren = _eecon1@2
1548 0000018c = _wren___byte equ _eecon1
1549 00000002 = _wren___bit equ 2
1550                    ; line_number = 265
1551                    ; bind _wr = _eecon1@1
1552 0000018c = _wr___byte equ _eecon1
1553 00000001 = _wr___bit equ 1
1554                    ; line_number = 266
1555                    ; bind _rd = _eecon1@0
1556 0000018c = _rd___byte equ _eecon1
1557 00000000 = _rd___bit equ 0
1558            
1559                    ; line_number = 268
1560                    ; register _eecon2 = 
1561 0000018d = _eecon2 equ 397
1562            
1563            
1564                    ; buffer = '_pic16f876a'
1565                    ; line_number = 356
1566                    ; library _pic16f87x exited
1567            
1568            
1569                    ; buffer = 'shaft2'
1570                    ; line_number = 7
1571                    ; library _pic16f876a exited
1572            
1573                    ; # The system is running at 16MHz:
1574                    ; line_number = 10
1575                    ; library clock16mhz entered
1576                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1577                    ; # All rights reserved.
1578            
1579                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1580                    ; # and {clocks_per_instruction}.
1581            
1582                    ; # Define processor constants:
1583                    ; buffer = 'clock16mhz'
1584                    ; line_number = 9
1585                    ; constant clock_rate = 16000000
1586 00f42400 = clock_rate equ 16000000
1587                    ; line_number = 10
1588                    ; constant clocks_per_instruction = 4
1589 00000004 = clocks_per_instruction equ 4
1590                    ; line_number = 11
1591                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1592 003d0900 = instruction_rate equ 4000000
1593            
1594            
1595                    ; buffer = 'shaft2'
1596                    ; line_number = 10
1597                    ; library clock16mhz exited
1598            
1599                    ; # The library of bus access initaliation routines for use by a PIC16F876:
1600                    ; line_number = 13
1601                    ; library rb2bus_pic16f876 entered
1602            
1603                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1604                    ; # All rights reserved.
1605            
1606                    ; # This module provides some procedures for accessing a RoboBricks2
1607                    ; # bus via a UART.  It is speicialized for the PIC16F876:
1608                    ; #
1609                    ; # It defines the following procedure:
1610                    ; #
1611                    ; # {rb2bus_initialize}({address}) The procedure that initializes the UART
1612                    ; #                                for bus access.
1613            
1614                    ; # Global variables used by {rb2bus} library and {rb2bus_picXXXX} libraries:
1615                    ; buffer = 'rb2bus_pic16f876'
1616                    ; line_number = 15
1617                    ; library rb2bus_globals entered
1618            
1619                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1620                    ; # All rights reserved.
1621            
1622                    ; # These are the global variables used by both the {rb2bus} and
1623                    ; # the various {rb2bus_picXXXX} libraries.  Poll based firmware
1624                    ; # uses both libraries, whereas interrupt driven software only
1625                    ; # uses the {rb2bus_picXXX} libraries.
1626            
1627                    ; buffer = 'rb2bus_globals'
1628                    ; line_number = 11
1629                    ; global rb2bus_selected bit	# 
1630 0000006f = rb2bus_selected___byte equ globals___0+79
1631 00000000 = rb2bus_selected___bit equ 0
1632                    ; line_number = 12
1633                    ; global rb2bus_error bit		# Global error bit
1634 0000006f = rb2bus_error___byte equ globals___0+79
1635 00000001 = rb2bus_error___bit equ 1
1636                    ; line_number = 13
1637                    ; global rb2bus_address byte	# Bus address to respond to
1638 00000020 = rb2bus_address equ globals___0
1639                    ; line_number = 14
1640                    ; global rb2bus_index byte	# Index into id information
1641 00000021 = rb2bus_index equ globals___0+1
1642            
1643            
1644                    ; buffer = 'rb2bus_pic16f876'
1645                    ; line_number = 15
1646                    ; library rb2bus_globals exited
1647            
1648                    ; # All other bus access procedures are defined in the {rb2bus} library
1649                    ; # which is accessed below:
1650            
1651                    ; # Baud_Rate = Fosc / (16(X+1))
1652                    ; # 16 * (X+1) = Fosc/Baud_Rate
1653                    ; # X+1 = Fosc/(16*Baud_Rate)
1654                    ; # X = Fosc/(16*Baud_rate) - 1
1655            
1656                    ; line_number = 25
1657                    ; constant baud_rate_500k = 500000
1658 0007a120 = baud_rate_500k equ 500000
1659                    ; line_number = 26
1660                    ; constant spbrg_500k = clock_rate / (16 * baud_rate_500k) - 1
1661 00000001 = spbrg_500k equ 1
1662            
1663                    ; Delaying code generation for procedure  rb2bus_initialize
1664                    ; line_number = 64
1665                    ; constant rb2bus_eedata_address = 0xfe
1666 000000fe = rb2bus_eedata_address equ 254
1667            
1668                    ; Delaying code generation for procedure  rb2bus_eedata_read
1669                    ; Delaying code generation for procedure  rb2bus_eedata_write
1670            
1671                    ; buffer = 'shaft2'
1672                    ; line_number = 13
1673                    ; library rb2bus_pic16f876 exited
1674            
1675                    ; # The library of bus access routines:
1676                    ; line_number = 16
1677                    ; library rb2bus entered
1678            
1679                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1680                    ; # All rights reserved.
1681            
1682                    ; # This module provides some procedures for accessing a RoboBricks2
1683                    ; # bus via a UART.
1684                    ; #
1685                    ; # This procedure defines the following procedures:
1686                    ; #
1687                    ; # {rb2bus_select_wait}  This procedure waits for the module to become selected
1688                    ; # {rb2bus_deselect}     This procedure causes this module to be deselected.
1689                    ; # {rb2bus_byte_get}     This procedure will get a byte form the bus.
1690                    ; # {rb2bus_byte_put}     This procedure will send a byte to the bus.
1691                    ; #
1692                    ; # The global variable {rb2bus_error} is set to 1 whenever the procedures
1693                    ; # feel like there is a command decoding error.
1694                    ; #
1695                    ; # The way to use these procedures is quite as follows:
1696                    ; #
1697                    ; #    # Comamnd byte variable:
1698                    ; #    local command byte
1699                    ; #
1700                    ; #    # Other initialize code goes here:
1701                    ; #
1702                    ; #    # Process commands from bus master:
1703                    ; #    loop_forever
1704                    ; #        rb2bus_error := _true
1705                    ; #	 while rb2bus_error
1706                    ; #	     call rb2bus_select_wait()
1707                    ; #	     command := rb2bus_byte_get()
1708                    ; #
1709                    ; #        # Decode command:
1710                    ; #	 switch command >> 6
1711                    ; #	   ...
1712                    ; #             case 5:
1713                    ; #	        # 0000 0101 (Foo command):
1714                    ; #	          if !rb2bus_error
1715                    ; #		      # Do foo command:
1716                    ; #
1717                    ; # The key concept behind these procedures is to make command
1718                    ; # decoding for the slave module easy.  If the slave module
1719                    ; # is in the middle of command decoding and the master suddenly
1720                    ; # sends out a module select command, we need to gracefully recover
1721                    ; # from the problem.  A command should only be executed if
1722                    ; # {rb2bus_error} is not set.  If {rb2bus_error} is set, we want
1723                    ; # to gracefully get back to the beginning of the loop without
1724                    ; # doing any damage.  Once {rb2bus_error} is set, all calls to
1725                    ; # {rb2bus_byte_get} return 0 and all calls to {rb2bus_byte_put}
1726                    ; # do nothing.  At the beginning of the loop, {rb2bus_error} is
1727                    ; # cleared by the {rb2bus_select_wait}() procedure and we have
1728                    ; # recovered from the situation.
1729            
1730                    ; buffer = 'rb2bus'
1731                    ; line_number = 54
1732                    ; library rb2_constants entered
1733            
1734                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich.
1735                    ; # All rights reserved.
1736            
1737                    ; buffer = 'rb2_constants'
1738                    ; line_number = 6
1739                    ; constant rb2_ok = 0xa5
1740 000000a5 = rb2_ok equ 165
1741            
1742                    ; line_number = 8
1743                    ; constant rb2_common_address_set = 0xfc
1744 000000fc = rb2_common_address_set equ 252
1745                    ; line_number = 9
1746                    ; constant rb2_common_id_next = 0xfd
1747 000000fd = rb2_common_id_next equ 253
1748                    ; line_number = 10
1749                    ; constant rb2_common_id_start = 0xfe
1750 000000fe = rb2_common_id_start equ 254
1751                    ; line_number = 11
1752                    ; constant rb2_common_deselect = 0xff
1753 000000ff = rb2_common_deselect equ 255
1754            
1755                    ; line_number = 13
1756                    ; constant rb2_laser1_address = 1
1757 00000001 = rb2_laser1_address equ 1
1758                    ; line_number = 14
1759                    ; constant rb2_laser1_sense_read = 0
1760 00000000 = rb2_laser1_sense_read equ 0
1761                    ; line_number = 15
1762                    ; constant rb2_laser1_enable_read = 1
1763 00000001 = rb2_laser1_enable_read equ 1
1764                    ; line_number = 16
1765                    ; constant rb2_laser1_enable_clear = 2
1766 00000002 = rb2_laser1_enable_clear equ 2
1767                    ; line_number = 17
1768                    ; constant rb2_laser1_enable_set = 3
1769 00000003 = rb2_laser1_enable_set equ 3
1770            
1771                    ; line_number = 19
1772                    ; constant rb2_minimotor2_address = 2
1773 00000002 = rb2_minimotor2_address equ 2
1774                    ; line_number = 20
1775                    ; constant rb2_midimotor2_address = 3
1776 00000003 = rb2_midimotor2_address equ 3
1777                    ; line_number = 21
1778                    ; constant rb2_motor0_speed_get = 0
1779 00000000 = rb2_motor0_speed_get equ 0
1780                    ; line_number = 22
1781                    ; constant rb2_motor0_speed_set = 1
1782 00000001 = rb2_motor0_speed_set equ 1
1783                    ; line_number = 23
1784                    ; constant rb2_motor1_speed_get = 2
1785 00000002 = rb2_motor1_speed_get equ 2
1786                    ; line_number = 24
1787                    ; constant rb2_motor1_speed_set = 3
1788 00000003 = rb2_motor1_speed_set equ 3
1789                    ; line_number = 25
1790                    ; constant rb2_duty_cycle_get = 4
1791 00000004 = rb2_duty_cycle_get equ 4
1792                    ; line_number = 26
1793                    ; constant rb2_duty_cycle_set = 8
1794 00000008 = rb2_duty_cycle_set equ 8
1795            
1796                    ; line_number = 28
1797                    ; constant rb2_irdistance2_address = 4
1798 00000004 = rb2_irdistance2_address equ 4
1799                    ; line_number = 29
1800                    ; constant rb2_irdistance2_raw0_get = 0
1801 00000000 = rb2_irdistance2_raw0_get equ 0
1802                    ; line_number = 30
1803                    ; constant rb2_irdistance2_raw1_get = 1
1804 00000001 = rb2_irdistance2_raw1_get equ 1
1805                    ; line_number = 31
1806                    ; constant rb2_irdistance2_smooth0_get = 2
1807 00000002 = rb2_irdistance2_smooth0_get equ 2
1808                    ; line_number = 32
1809                    ; constant rb2_irdistance2_smooth1_get = 3
1810 00000003 = rb2_irdistance2_smooth1_get equ 3
1811                    ; line_number = 33
1812                    ; constant rb2_irdistance2_linear0_get = 4
1813 00000004 = rb2_irdistance2_linear0_get equ 4
1814                    ; line_number = 34
1815                    ; constant rb2_irdistance2_linear1_get = 6
1816 00000006 = rb2_irdistance2_linear1_get equ 6
1817            
1818                    ; line_number = 36
1819                    ; constant rb2_shaft2_address = 5
1820 00000005 = rb2_shaft2_address equ 5
1821                    ; line_number = 37
1822                    ; constant rb2_shaft2_count_latch = 0
1823 00000000 = rb2_shaft2_count_latch equ 0
1824                    ; line_number = 38
1825                    ; constant rb2_shaft2_count_clear = 1
1826 00000001 = rb2_shaft2_count_clear equ 1
1827                    ; line_number = 39
1828                    ; constant rb2_shaft2_shaft0_high_get = 2
1829 00000002 = rb2_shaft2_shaft0_high_get equ 2
1830                    ; line_number = 40
1831                    ; constant rb2_shaft2_shaft1_high_get = 3
1832 00000003 = rb2_shaft2_shaft1_high_get equ 3
1833                    ; line_number = 41
1834                    ; constant rb2_shaft2_continue_get = 4
1835 00000004 = rb2_shaft2_continue_get equ 4
1836                    ; line_number = 42
1837                    ; constant rb2_shaft2_shaft0_low_get = rb2_shaft2_continue_get
1838 00000004 = rb2_shaft2_shaft0_low_get equ 4
1839                    ; line_number = 43
1840                    ; constant rb2_shaft2_shaft1_low_get = rb2_shaft2_continue_get
1841 00000004 = rb2_shaft2_shaft1_low_get equ 4
1842                    ; line_number = 44
1843                    ; constant rb2_shaft2_x_get = 0x10
1844 00000010 = rb2_shaft2_x_get equ 16
1845                    ; line_number = 45
1846                    ; constant rb2_shaft2_y_get = 0x11
1847 00000011 = rb2_shaft2_y_get equ 17
1848                    ; line_number = 46
1849                    ; constant rb2_shaft2_bearing16_get = 0x12
1850 00000012 = rb2_shaft2_bearing16_get equ 18
1851                    ; line_number = 47
1852                    ; constant rb2_shaft2_bearing8_get = 0x13
1853 00000013 = rb2_shaft2_bearing8_get equ 19
1854                    ; line_number = 48
1855                    ; constant rb2_shaft2_target_x_get = 0x14
1856 00000014 = rb2_shaft2_target_x_get equ 20
1857                    ; line_number = 49
1858                    ; constant rb2_shaft2_target_y_get = 0x15
1859 00000015 = rb2_shaft2_target_y_get equ 21
1860                    ; line_number = 50
1861                    ; constant rb2_shaft2_target_bearing16_get = 0x16
1862 00000016 = rb2_shaft2_target_bearing16_get equ 22
1863                    ; line_number = 51
1864                    ; constant rb2_shaft2_target_bearing8_get = 0x17
1865 00000017 = rb2_shaft2_target_bearing8_get equ 23
1866                    ; line_number = 52
1867                    ; constant rb2_shaft2_target_distance_get = 0x18
1868 00000018 = rb2_shaft2_target_distance_get equ 24
1869                    ; line_number = 53
1870                    ; constant rb2_shaft2_wheel_spacing_get = 0x19
1871 00000019 = rb2_shaft2_wheel_spacing_get equ 25
1872                    ; line_number = 54
1873                    ; constant rb2_shaft2_wheel_ticks_get = 0x1a
1874 0000001a = rb2_shaft2_wheel_ticks_get equ 26
1875                    ; line_number = 55
1876                    ; constant rb2_shaft2_wheel_diameter_get = 0x1b
1877 0000001b = rb2_shaft2_wheel_diameter_get equ 27
1878                    ; line_number = 56
1879                    ; constant rb2_shaft2_count_iteration_get = 0x1c
1880 0000001c = rb2_shaft2_count_iteration_get equ 28
1881                    ; line_number = 57
1882                    ; constant rb2_shaft2_counter_signs_get = 0x1d
1883 0000001d = rb2_shaft2_counter_signs_get equ 29
1884                    ; line_number = 58
1885                    ; constant rb2_shaft2_x_set = 0x20
1886 00000020 = rb2_shaft2_x_set equ 32
1887                    ; line_number = 59
1888                    ; constant rb2_shaft2_y_set = 0x21
1889 00000021 = rb2_shaft2_y_set equ 33
1890                    ; line_number = 60
1891                    ; constant rb2_shaft2_bearing16_set = 0x22
1892 00000022 = rb2_shaft2_bearing16_set equ 34
1893                    ; line_number = 61
1894                    ; constant rb2_shaft2_navigation_latch = 0x23
1895 00000023 = rb2_shaft2_navigation_latch equ 35
1896                    ; line_number = 62
1897                    ; constant rb2_shaft2_target_x_set = 0x24
1898 00000024 = rb2_shaft2_target_x_set equ 36
1899                    ; line_number = 63
1900                    ; constant rb2_shaft2_target_y_set = 0x25
1901 00000025 = rb2_shaft2_target_y_set equ 37
1902                    ; line_number = 64
1903                    ; constant rb2_shaft2_wheel_spacing_set = 0x29
1904 00000029 = rb2_shaft2_wheel_spacing_set equ 41
1905                    ; line_number = 65
1906                    ; constant rb2_shaft2_wheel_ticks_set = 0x2a
1907 0000002a = rb2_shaft2_wheel_ticks_set equ 42
1908                    ; line_number = 66
1909                    ; constant rb2_shaft2_wheel_diameter_set = 0x2b
1910 0000002b = rb2_shaft2_wheel_diameter_set equ 43
1911                    ; line_number = 67
1912                    ; constant rb2_shaft2_counter_signs_set = 0x2c
1913 0000002c = rb2_shaft2_counter_signs_set equ 44
1914            
1915                    ; line_number = 69
1916                    ; constant rb2_orient5_address = 6
1917 00000006 = rb2_orient5_address equ 6
1918            
1919                    ; line_number = 71
1920                    ; constant rb2_compass8_address = 7
1921 00000007 = rb2_compass8_address equ 7
1922            
1923                    ; line_number = 73
1924                    ; constant rb2_io8_address = 8
1925 00000008 = rb2_io8_address equ 8
1926                    ; line_number = 74
1927                    ; constant rb2_io8_digital8_get = 0
1928 00000000 = rb2_io8_digital8_get equ 0
1929                    ; line_number = 75
1930                    ; constant rb2_io8_digital8_set = 1
1931 00000001 = rb2_io8_digital8_set equ 1
1932                    ; line_number = 76
1933                    ; constant rb2_io8_direction_get = 2
1934 00000002 = rb2_io8_direction_get equ 2
1935                    ; line_number = 77
1936                    ; constant rb2_io8_direction_set = 3
1937 00000003 = rb2_io8_direction_set equ 3
1938                    ; line_number = 78
1939                    ; constant rb2_io8_analog_mask_get = 4
1940 00000004 = rb2_io8_analog_mask_get equ 4
1941                    ; line_number = 79
1942                    ; constant rb2_io8_analog_mask_set = 5
1943 00000005 = rb2_io8_analog_mask_set equ 5
1944                    ; line_number = 80
1945                    ; constant rb2_io8_analog8_get = 0x10
1946 00000010 = rb2_io8_analog8_get equ 16
1947                    ; line_number = 81
1948                    ; constant rb2_io8_analog10_get = 0x18
1949 00000018 = rb2_io8_analog10_get equ 24
1950                    ; line_number = 82
1951                    ; constant rb2_low_set = 0x20
1952 00000020 = rb2_low_set equ 32
1953                    ; line_number = 83
1954                    ; constant rb2_high_set = 0x30
1955 00000030 = rb2_high_set equ 48
1956            
1957                    ; line_number = 85
1958                    ; constant rb2_sonar2_address = 9
1959 00000009 = rb2_sonar2_address equ 9
1960            
1961                    ; line_number = 87
1962                    ; constant rb2_voice1_address = 10
1963 0000000a = rb2_voice1_address equ 10
1964            
1965                    ; line_number = 89
1966                    ; constant rb2_servo4_address = 11
1967 0000000b = rb2_servo4_address equ 11
1968                    ; line_number = 90
1969                    ; constant rb2_servo4_servo0 = 0
1970 00000000 = rb2_servo4_servo0 equ 0
1971                    ; line_number = 91
1972                    ; constant rb2_servo4_servo1 = 1
1973 00000001 = rb2_servo4_servo1 equ 1
1974                    ; line_number = 92
1975                    ; constant rb2_servo4_servo2 = 2
1976 00000002 = rb2_servo4_servo2 equ 2
1977                    ; line_number = 93
1978                    ; constant rb2_servo4_servo3 = 3
1979 00000003 = rb2_servo4_servo3 equ 3
1980                    ; line_number = 94
1981                    ; constant rb2_servo4_quick_set = 0
1982 00000000 = rb2_servo4_quick_set equ 0
1983                    ; line_number = 95
1984                    ; constant rb2_servo4_quick_low = 0
1985 00000000 = rb2_servo4_quick_low equ 0
1986                    ; line_number = 96
1987                    ; constant rb2_servo4_quick_center = 40
1988 00000028 = rb2_servo4_quick_center equ 40
1989                    ; line_number = 97
1990                    ; constant rb2_servo4_quick_high = 0x7c
1991 0000007c = rb2_servo4_quick_high equ 124
1992                    ; line_number = 98
1993                    ; constant rb2_servo4_high_low_set = 0x80
1994 00000080 = rb2_servo4_high_low_set equ 128
1995                    ; line_number = 99
1996                    ; constant rb2_servo4_short_high_low_set = 0x84
1997 00000084 = rb2_servo4_short_high_low_set equ 132
1998                    ; line_number = 100
1999                    ; constant rb2_servo4_high_set = 0x88
2000 00000088 = rb2_servo4_high_set equ 136
2001                    ; line_number = 101
2002                    ; constant rb2_servo4_low_set = 0x8c
2003 0000008c = rb2_servo4_low_set equ 140
2004                    ; line_number = 102
2005                    ; constant rb2_servo4_enables_set = 0x90
2006 00000090 = rb2_servo4_enables_set equ 144
2007                    ; line_number = 103
2008                    ; constant rb2_servo4_enable0 = 1
2009 00000001 = rb2_servo4_enable0 equ 1
2010                    ; line_number = 104
2011                    ; constant rb2_servo4_enable1 = 2
2012 00000002 = rb2_servo4_enable1 equ 2
2013                    ; line_number = 105
2014                    ; constant rb2_servo4_enable2 = 4
2015 00000004 = rb2_servo4_enable2 equ 4
2016                    ; line_number = 106
2017                    ; constant rb2_servo4_enable3 = 8
2018 00000008 = rb2_servo4_enable3 equ 8
2019                    ; line_number = 107
2020                    ; constant rb2_servo4_enable_all = 0xf
2021 0000000f = rb2_servo4_enable_all equ 15
2022                    ; line_number = 108
2023                    ; constant rb2_servo4_enable_none = 0
2024 00000000 = rb2_servo4_enable_none equ 0
2025                    ; line_number = 109
2026                    ; constant rb2_servo4_high_get = 0xa0
2027 000000a0 = rb2_servo4_high_get equ 160
2028                    ; line_number = 110
2029                    ; constant rb2_servo4_low_get = 0xa4
2030 000000a4 = rb2_servo4_low_get equ 164
2031                    ; line_number = 111
2032                    ; constant rb2_servo4_enables_get = 0xa8
2033 000000a8 = rb2_servo4_enables_get equ 168
2034            
2035                    ; line_number = 113
2036                    ; constant rb2_controller28_address = 28
2037 0000001c = rb2_controller28_address equ 28
2038            
2039                    ; line_number = 115
2040                    ; constant rb2_lcd32_address = 32
2041 00000020 = rb2_lcd32_address equ 32
2042                    ; line_number = 116
2043                    ; constant rb2_lcd32_row_set = 4
2044 00000004 = rb2_lcd32_row_set equ 4
2045                    ; line_number = 117
2046                    ; constant rb2_lcd32_row0_set = rb2_lcd32_row_set | 0
2047 00000004 = rb2_lcd32_row0_set equ 4
2048                    ; line_number = 118
2049                    ; constant rb2_lcd32_row1_set = rb2_lcd32_row_set | 1
2050 00000005 = rb2_lcd32_row1_set equ 5
2051                    ; line_number = 119
2052                    ; constant rb2_lcd32_row2_set = rb2_lcd32_row_set | 2
2053 00000006 = rb2_lcd32_row2_set equ 6
2054                    ; line_number = 120
2055                    ; constant rb2_lcd32_row3_set = rb2_lcd32_row_set | 3
2056 00000007 = rb2_lcd32_row3_set equ 7
2057                    ; line_number = 121
2058                    ; constant rb2_lcd32_new_line = 0xa
2059 0000000a = rb2_lcd32_new_line equ 10
2060                    ; line_number = 122
2061                    ; constant rb2_lcd32_form_feed = 0xc
2062 0000000c = rb2_lcd32_form_feed equ 12
2063                    ; line_number = 123
2064                    ; constant rb2_lcd32_carriage_return = 0xd
2065 0000000d = rb2_lcd32_carriage_return equ 13
2066                    ; line_number = 124
2067                    ; constant rb2_lcd32_column_set = 0x10
2068 00000010 = rb2_lcd32_column_set equ 16
2069            
2070            
2071                    ; buffer = 'rb2bus'
2072                    ; line_number = 54
2073                    ; library rb2_constants exited
2074                    ; line_number = 55
2075                    ; library rb2bus_globals Skipped (duplicate)
2076            
2077                    ; Delaying code generation for procedure  rb2bus_select_wait
2078                    ; Delaying code generation for procedure  rb2bus_deselect
2079                    ; Delaying code generation for procedure  rb2bus_byte_get
2080                    ; Delaying code generation for procedure  rb2bus_byte_put
2081                    ; Delaying code generation for procedure  rb2bus_command
2082            
2083                    ; buffer = 'shaft2'
2084                    ; line_number = 16
2085                    ; library rb2bus exited
2086            
2087                    ; # Set the oscillator:
2088            
2089                    ; # Pin definitions:
2090            
2091                    ; line_number = 23
2092                    ; package pdip
2093                    ; line_number = 24
2094                    ; pin 1 = mclr
2095                    ; line_number = 25
2096                    ;  pin 2 = ra0_unused
2097                    ; line_number = 26
2098                    ;  pin 3 = ra1_unused
2099                    ; line_number = 27
2100                    ;  pin 4 = ra2_unused
2101                    ; line_number = 28
2102                    ;  pin 5 = ra3_unused
2103                    ; line_number = 29
2104                    ;  pin 6 = ra4_unused
2105                    ; line_number = 30
2106                    ;  pin 7 = ra5_unused
2107                    ; line_number = 31
2108                    ;  pin 8 = ground
2109                    ; line_number = 32
2110                    ;  pin 9 = osc1
2111                    ; line_number = 33
2112                    ;  pin 10 = osc2
2113                    ; line_number = 34
2114                    ;  pin 11 = rc0_unused
2115                    ; line_number = 35
2116                    ;  pin 12 = rc1_out, name=shaft1
2117 00000007 = shaft1___byte equ _portc
2118 00000001 = shaft1___bit equ 1
2119                    ; line_number = 36
2120                    ;  pin 13 = rc2_in, name=dflag1
2121 00000007 = dflag1___byte equ _portc
2122 00000002 = dflag1___bit equ 2
2123                    ; line_number = 37
2124                    ;  pin 14 = sck_master
2125                    ; line_number = 38
2126                    ;  pin 15 = sdi
2127                    ; line_number = 39
2128                    ;  pin 16 = sdo
2129                    ; line_number = 40
2130                    ;  pin 17 = tx
2131                    ; line_number = 41
2132                    ;  pin 18 = rx
2133                    ; line_number = 42
2134                    ;  pin 19 = ground2
2135                    ; line_number = 43
2136                    ;  pin 20 = power_supply
2137                    ; line_number = 44
2138                    ;  pin 21 = rb0_in, name=lflag
2139 00000006 = lflag___byte equ _portb
2140 00000000 = lflag___bit equ 0
2141                    ; line_number = 45
2142                    ;  pin 22 = rb1_unused
2143                    ; line_number = 46
2144                    ;  pin 23 = rb2_unused
2145                    ; line_number = 47
2146                    ;  pin 24 = rb3_in, name=dflag0
2147 00000006 = dflag0___byte equ _portb
2148 00000003 = dflag0___bit equ 3
2149                    ; line_number = 48
2150                    ;  pin 25 = rb4_unused
2151                    ; line_number = 49
2152                    ;  pin 26 = rb5_out, name=shaft0
2153 00000006 = shaft0___byte equ _portb
2154 00000005 = shaft0___bit equ 5
2155                    ; line_number = 50
2156                    ;  pin 27 = rb6_unused
2157                    ; line_number = 51
2158                    ;  pin 28 = rb7_unused
2159            
2160                    ; # This are the constants for the LS7366 commands:
2161            
2162                    ; # The Instruction Register bits:
2163                    ; # For IR<7:6>:
2164                    ; line_number = 57
2165                    ; constant ls_clear = 0 << 6
2166 00000000 = ls_clear equ 0
2167                    ; line_number = 58
2168                    ; constant ls_read = 1 << 6
2169 00000040 = ls_read equ 64
2170                    ; line_number = 59
2171                    ; constant ls_write = 2 << 6
2172 00000080 = ls_write equ 128
2173                    ; line_number = 60
2174                    ; constant ls_load = 3 << 6
2175 000000c0 = ls_load equ 192
2176                    ; # For IR<5:3>:
2177                    ; line_number = 62
2178                    ; constant ls_none = 0 << 3
2179 00000000 = ls_none equ 0
2180                    ; line_number = 63
2181                    ; constant ls_mdr0 = 1 << 3
2182 00000008 = ls_mdr0 equ 8
2183                    ; line_number = 64
2184                    ; constant ls_mdr1 = 2 << 3
2185 00000010 = ls_mdr1 equ 16
2186                    ; line_number = 65
2187                    ; constant ls_dtr = 3 << 3
2188 00000018 = ls_dtr equ 24
2189                    ; line_number = 66
2190                    ; constant ls_cntr = 4 << 3
2191 00000020 = ls_cntr equ 32
2192                    ; line_number = 67
2193                    ; constant ls_otr = 5 << 3
2194 00000028 = ls_otr equ 40
2195                    ; line_number = 68
2196                    ; constant ls_str = 6 << 3
2197 00000030 = ls_str equ 48
2198                    ; line_number = 69
2199                    ; constant ls_none2 = 7 << 3
2200 00000038 = ls_none2 equ 56
2201                    ; # For IR<2:0> are unused.  We use them for chip selection:
2202                    ; line_number = 71
2203                    ; constant ls_shaft0_bit = 0
2204 00000000 = ls_shaft0_bit equ 0
2205                    ; line_number = 72
2206                    ; constant ls_shaft1_bit = 1
2207 00000001 = ls_shaft1_bit equ 1
2208                    ; line_number = 73
2209                    ; constant ls_select_shaft0 = 1 << ls_shaft0_bit
2210 00000001 = ls_select_shaft0 equ 1
2211                    ; line_number = 74
2212                    ; constant ls_select_shaft1 = 1 << ls_shaft1_bit
2213 00000002 = ls_select_shaft1 equ 2
2214                    ; line_number = 75
2215                    ; constant ls_select_both = ls_select_shaft0 | ls_select_shaft1
2216 00000003 = ls_select_both equ 3
2217            
2218                    ; # For the MDR0 (mode register 0):
2219                    ; # MDR0<1:0>:
2220                    ; line_number = 79
2221                    ; constant ls_non_quad = 0 << 0
2222 00000000 = ls_non_quad equ 0
2223                    ; line_number = 80
2224                    ; constant ls_quad_x1 = 1 << 0
2225 00000001 = ls_quad_x1 equ 1
2226                    ; line_number = 81
2227                    ; constant ls_quad_x2 = 2 << 0
2228 00000002 = ls_quad_x2 equ 2
2229                    ; line_number = 82
2230                    ; constant ls_quad_x4 = 3 << 0
2231 00000003 = ls_quad_x4 equ 3
2232                    ; # MDR0<3:2>:
2233                    ; line_number = 84
2234                    ; constant ls_count_free = 0 << 2
2235 00000000 = ls_count_free equ 0
2236                    ; line_number = 85
2237                    ; constant ls_count_single = 1 << 2
2238 00000004 = ls_count_single equ 4
2239                    ; line_number = 86
2240                    ; constant ls_count_range = 2 << 2
2241 00000008 = ls_count_range equ 8
2242                    ; line_number = 87
2243                    ; constant ls_count_module = 3 << 2
2244 0000000c = ls_count_module equ 12
2245                    ; # MDR0<5:4>:
2246                    ; line_number = 89
2247                    ; constant ls_index_disable = 0 << 4
2248 00000000 = ls_index_disable equ 0
2249                    ; line_number = 90
2250                    ; constant ls_index_cntr_load = 1 << 4
2251 00000010 = ls_index_cntr_load equ 16
2252                    ; line_number = 91
2253                    ; constant ls_index_cntr_reset = 2 << 4
2254 00000020 = ls_index_cntr_reset equ 32
2255                    ; line_number = 92
2256                    ; constant ls_index_otr_load = 3 << 4
2257 00000030 = ls_index_otr_load equ 48
2258                    ; # MDR0<6>:
2259                    ; line_number = 94
2260                    ; constant ls_index_negative = 0 << 6
2261 00000000 = ls_index_negative equ 0
2262                    ; line_number = 95
2263                    ; constant ls_index_positive = 1 << 6
2264 00000040 = ls_index_positive equ 64
2265                    ; # MDR0<7>:
2266                    ; line_number = 97
2267                    ; constant ls_index_filter1 = 0 << 7
2268 00000000 = ls_index_filter1 equ 0
2269                    ; line_number = 98
2270                    ; constant ls_index_filter2 = 1 << 7
2271 00000080 = ls_index_filter2 equ 128
2272                    ; # The value for our MDR0 is:
2273                    ; line_number = 100
2274                    ; constant ls_mdr0_value = ls_non_quad | ls_count_free | ls_index_disable | ls_index_negative | ls_index_filter1 
2275 00000000 = ls_mdr0_value equ 0
2276            
2277                    ; # For the MDR1 (mode_register 1):
2278                    ; # MDR1<1:0>:
2279                    ; line_number = 105
2280                    ; constant ls_size_4 = 0 << 0
2281 00000000 = ls_size_4 equ 0
2282                    ; line_number = 106
2283                    ; constant ls_size_3 = 1 << 0
2284 00000001 = ls_size_3 equ 1
2285                    ; line_number = 107
2286                    ; constant ls_size_2 = 2 << 0
2287 00000002 = ls_size_2 equ 2
2288                    ; line_number = 108
2289                    ; constant ls_size_1 = 3 << 0
2290 00000003 = ls_size_1 equ 3
2291                    ; # MDR1<2>:
2292                    ; line_number = 110
2293                    ; constant ls_count_enable = 0 << 2
2294 00000000 = ls_count_enable equ 0
2295                    ; line_number = 111
2296                    ; constant ls_count_disable = 1 << 2
2297 00000004 = ls_count_disable equ 4
2298                    ; # MDR1<3> unused:
2299                    ; # MDR1<4>:
2300                    ; line_number = 114
2301                    ; constant ls_flag_on_idx = 1 << 4
2302 00000010 = ls_flag_on_idx equ 16
2303                    ; # MDR1<5>:
2304                    ; line_number = 116
2305                    ; constant ls_flag_on_cmp = 1 << 5
2306 00000020 = ls_flag_on_cmp equ 32
2307                    ; # MDR1<6>:
2308                    ; line_number = 118
2309                    ; constant ls_flag_on_bw = 1 << 6
2310 00000040 = ls_flag_on_bw equ 64
2311                    ; # MDR1<7>:
2312                    ; line_number = 120
2313                    ; constant ls_flag_on_cy = 1 << 7
2314 00000080 = ls_flag_on_cy equ 128
2315                    ; # The value for our MDR1 is:
2316                    ; line_number = 122
2317                    ; constant ls_mdr1_value = ls_size_2 | ls_count_enable
2318 00000002 = ls_mdr1_value equ 2
2319            
2320                    ; line_number = 124
2321                    ; origin 0
2322   0000 :           org     0
2323            
2324                    ; line_number = 126
2325                    ;info   126, 0
2326                    ; procedure main
2327   0000 :   main:
2328                    ; Initialize some registers
2329 0000 019f          clrf    _adcon0
2330 0001 3007          movlw   7
2331 0002 1683          bsf     __rp0___byte, __rp0___bit
2332 0003 009f          movwf   _adcon1
2333 0004 3007          movlw   7
2334 0005 009c          movwf   _cmcon
2335 0006 303f          movlw   63
2336 0007 0085          movwf   _trisa
2337 0008 30df          movlw   223
2338 0009 0086          movwf   _trisb
2339 000a 3095          movlw   149
2340 000b 0087          movwf   _trisc
2341                    ; arguments_none
2342                    ; line_number = 128
2343                    ;  returns_nothing
2344            
2345                    ; line_number = 130
2346                    ;  local command byte
2347 0000002c = main__command equ globals___0+12
2348                    ; line_number = 131
2349                    ;  local id_index byte
2350 0000002d = main__id_index equ globals___0+13
2351                    ; line_number = 132
2352                    ;  local shaft_high byte
2353 0000002e = main__shaft_high equ globals___0+14
2354                    ; line_number = 133
2355                    ;  local shaft_low byte
2356 0000002f = main__shaft_low equ globals___0+15
2357            
2358                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:00=uu=>00)
2359                    ; line_number = 135
2360                    ;  call reset()
2361                    ;info   135, 12
2362 000c 1283          bcf     __rp0___byte, __rp0___bit
2363 000d 2131          call    reset
2364            
2365                    ; line_number = 137
2366                    ;  id_index := 0
2367                    ;info   137, 14
2368 000e 01ad          clrf    main__id_index
2369            
2370                    ; line_number = 139
2371                    ;  loop_forever start
2372   000f :   main__1:
2373                    ; # Make sure that we have been selected:
2374                    ; line_number = 141
2375                    ;  rb2bus_error := _true
2376                    ;info   141, 15
2377 000f 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2378                    ; line_number = 142
2379                    ;  while rb2bus_error start
2380   0010 :   main__2:
2381                    ;info   142, 16
2382                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2383                    ; No 1TEST: true.size=4 false.size=0
2384                    ; No 2TEST: true.size=4 false.size=0
2385                    ; 1GOTO: Single test with GOTO
2386 0010 1cef          btfss   rb2bus_error___byte, rb2bus_error___bit
2387 0011 2816          goto    main__3
2388                    ; line_number = 143
2389                    ; call rb2bus_select_wait()
2390                    ;info   143, 18
2391 0012 21e6          call    rb2bus_select_wait
2392                    ; line_number = 144
2393                    ;  command := rb2bus_byte_get()
2394                    ;info   144, 19
2395 0013 2205          call    rb2bus_byte_get
2396 0014 00ac          movwf   main__command
2397            
2398 0015 2810          goto    main__2
2399                    ; Recombine size1 = 0 || size2 = 0
2400   0016 :   main__3:
2401                    ; line_number = 142
2402                    ;  while rb2bus_error done
2403                    ; line_number = 146
2404                    ; switch command >> 6 start
2405                    ;info   146, 22
2406                    ; switch_before:(data:00=uu=>00 code:00=uu=>00) size=7
2407                    ; line_number = 269
2408                    ; case_maximum 3
2409 0016 3000          movlw   main__46>>8
2410 0017 008a          movwf   __pclath
2411 00000033 = main__47 equ globals___0+19
2412 0018 0e2c          swapf   main__command,w
2413 0019 00b3          movwf   main__47
2414 001a 0cb3          rrf     main__47,f
2415 001b 0c33          rrf     main__47,w
2416 001c 3903          andlw   3
2417                    ; switch after expression:(data:00=uu=>00 code:00=uu=>00)
2418 001d 3e1f          addlw   main__46
2419 001e 0082          movwf   __pcl
2420                    ; page_group 4
2421   001f :   main__46:
2422 001f 2823          goto    main__43
2423 0020 289e          goto    main__44
2424 0021 292e          goto    main__48
2425 0022 2903          goto    main__45
2426                    ; line_number = 147
2427                    ; case 0
2428   0023 :   main__43:
2429                    ; # 00xx xxxx:
2430                    ; line_number = 149
2431                    ;  switch (command >> 3) & 7 start
2432                    ;info   149, 35
2433                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2434                    ; line_number = 207
2435                    ; case_maximum 7
2436 0023 3000          movlw   main__20>>8
2437 0024 008a          movwf   __pclath
2438 00000033 = main__21 equ globals___0+19
2439 0025 0c2c          rrf     main__command,w
2440 0026 00b3          movwf   main__21
2441 0027 0cb3          rrf     main__21,f
2442 0028 0c33          rrf     main__21,w
2443 0029 3907          andlw   7
2444                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2445 002a 3e2c          addlw   main__20
2446 002b 0082          movwf   __pcl
2447                    ; page_group 8
2448   002c :   main__20:
2449 002c 2834          goto    main__18
2450 002d 2867          goto    main__19
2451 002e 289d          goto    main__22
2452 002f 289d          goto    main__22
2453 0030 289d          goto    main__22
2454 0031 289d          goto    main__22
2455 0032 289d          goto    main__22
2456 0033 289d          goto    main__22
2457                    ; line_number = 150
2458                    ; case 0
2459   0034 :   main__18:
2460                    ; # 0000 0xxx:
2461                    ; line_number = 152
2462                    ;  switch command & 7 start
2463                    ;info   152, 52
2464                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2465                    ; line_number = 177
2466                    ; case_maximum 7
2467 0034 3000          movlw   main__9>>8
2468 0035 008a          movwf   __pclath
2469 0036 3007          movlw   7
2470 0037 052c          andwf   main__command,w
2471                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2472 0038 3e3a          addlw   main__9
2473 0039 0082          movwf   __pcl
2474                    ; page_group 8
2475   003a :   main__9:
2476 003a 2842          goto    main__4
2477 003b 2845          goto    main__5
2478 003c 2848          goto    main__6
2479 003d 2848          goto    main__6
2480 003e 2855          goto    main__7
2481 003f 2866          goto    main__10
2482 0040 2858          goto    main__8
2483 0041 2858          goto    main__8
2484                    ; line_number = 153
2485                    ; case 0
2486   0042 :   main__4:
2487                    ; # 0000 0000 (Count Latch):
2488                    ; line_number = 155
2489                    ;  call ls_command_put(ls_load | ls_otr | ls_select_both)
2490                    ;info   155, 66
2491 0042 30eb          movlw   235
2492 0043 2154          call    ls_command_put
2493 0044 2866          goto    main__10
2494                    ; line_number = 156
2495                    ; case 1
2496   0045 :   main__5:
2497                    ; # 0000 0001 (Count Clear):
2498                    ; line_number = 158
2499                    ;  call ls_command_put(ls_clear | ls_cntr | ls_select_both)
2500                    ;info   158, 69
2501 0045 3023          movlw   35
2502 0046 2154          call    ls_command_put
2503 0047 2866          goto    main__10
2504                    ; line_number = 159
2505                    ; case 2, 3
2506   0048 :   main__6:
2507                    ; # 0000 001s (Read Shaft):
2508                    ; line_number = 161
2509                    ;  command := ls_shaft_select(command)
2510                    ;info   161, 72
2511 0048 082c          movf    main__command,w
2512 0049 2150          call    ls_shaft_select
2513 004a 00ac          movwf   main__command
2514                    ; line_number = 162
2515                    ;  call ls_command_put(ls_read | ls_otr | command)
2516                    ;info   162, 75
2517 004b 3068          movlw   104
2518 004c 042c          iorwf   main__command,w
2519 004d 2154          call    ls_command_put
2520                    ; line_number = 163
2521                    ;  shaft_high := ls_byte_get()
2522                    ;info   163, 78
2523 004e 2167          call    ls_byte_get
2524 004f 00ae          movwf   main__shaft_high
2525                    ; line_number = 164
2526                    ;  shaft_low := ls_byte_get()
2527                    ;info   164, 80
2528 0050 2167          call    ls_byte_get
2529 0051 00af          movwf   main__shaft_low
2530                    ; line_number = 165
2531                    ;  call rb2bus_byte_put(shaft_high)
2532                    ;info   165, 82
2533 0052 082e          movf    main__shaft_high,w
2534 0053 2227          call    rb2bus_byte_put
2535 0054 2866          goto    main__10
2536                    ; line_number = 166
2537                    ; case 4
2538   0055 :   main__7:
2539                    ; # 0000 0100 (Read Shaft Continue):
2540                    ; line_number = 168
2541                    ;  call rb2bus_byte_put(shaft_low)
2542                    ;info   168, 85
2543 0055 082f          movf    main__shaft_low,w
2544 0056 2227          call    rb2bus_byte_put
2545 0057 2866          goto    main__10
2546                    ; line_number = 169
2547                    ; case 6, 7
2548   0058 :   main__8:
2549                    ; # 0000 011s (Read Shaft Full):
2550                    ; line_number = 171
2551                    ;  command := ls_shaft_select(command);
2552                    ;info   171, 88
2553 0058 082c          movf    main__command,w
2554 0059 2150          call    ls_shaft_select
2555 005a 00ac          movwf   main__command
2556                    ; line_number = 172
2557                    ;  call ls_command_put(ls_read | ls_otr | command)
2558                    ;info   172, 91
2559 005b 3068          movlw   104
2560 005c 042c          iorwf   main__command,w
2561 005d 2154          call    ls_command_put
2562                    ; line_number = 173
2563                    ;  shaft_high := ls_byte_get()
2564                    ;info   173, 94
2565 005e 2167          call    ls_byte_get
2566 005f 00ae          movwf   main__shaft_high
2567                    ; line_number = 174
2568                    ;  shaft_low := ls_byte_get()
2569                    ;info   174, 96
2570 0060 2167          call    ls_byte_get
2571 0061 00af          movwf   main__shaft_low
2572                    ; line_number = 175
2573                    ;  call rb2bus_byte_put(shaft_high)
2574                    ;info   175, 98
2575 0062 082e          movf    main__shaft_high,w
2576 0063 2227          call    rb2bus_byte_put
2577                    ; line_number = 176
2578                    ;  call rb2bus_byte_put(shaft_low)
2579                    ;info   176, 100
2580 0064 082f          movf    main__shaft_low,w
2581 0065 2227          call    rb2bus_byte_put
2582   0066 :   main__10:
2583                    ; line_number = 152
2584                    ;  switch command & 7 done
2585 0066 289d          goto    main__22
2586                    ; line_number = 178
2587                    ; case 1
2588   0067 :   main__19:
2589                    ; # 0000 1xxx:
2590                    ; # This is just for debugging; it will be ripped sometime:
2591                    ; line_number = 181
2592                    ;  switch command & 7 start
2593                    ;info   181, 103
2594                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2595                    ; line_number = 206
2596                    ; case_maximum 7
2597 0067 3000          movlw   main__16>>8
2598 0068 008a          movwf   __pclath
2599 0069 3007          movlw   7
2600 006a 052c          andwf   main__command,w
2601                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2602 006b 3e6d          addlw   main__16
2603 006c 0082          movwf   __pcl
2604                    ; page_group 8
2605   006d :   main__16:
2606 006d 2875          goto    main__11
2607 006e 287a          goto    main__12
2608 006f 287d          goto    main__13
2609 0070 287d          goto    main__13
2610 0071 2888          goto    main__14
2611 0072 2888          goto    main__14
2612 0073 2893          goto    main__15
2613 0074 2893          goto    main__15
2614                    ; line_number = 182
2615                    ; case 0
2616   0075 :   main__11:
2617                    ; This case body wants this bit set
2618 0075 1683          bsf     __rp0___byte, __rp0___bit
2619                    ; # 0000 1000 (Read SSPSTAT):
2620                    ; line_number = 184
2621                    ;  call rb2bus_byte_put(_sspstat)
2622                    ;info   184, 118
2623 0076 0814          movf    _sspstat,w
2624 0077 1283          bcf     __rp0___byte, __rp0___bit
2625 0078 2227          call    rb2bus_byte_put
2626 0079 289d          goto    main__17
2627                    ; line_number = 185
2628                    ; case 1
2629   007a :   main__12:
2630                    ; # 0000 1001 (Read SSPCON):
2631                    ; line_number = 187
2632                    ;  call rb2bus_byte_put(_sspcon)
2633                    ;info   187, 122
2634 007a 0814          movf    _sspcon,w
2635 007b 2227          call    rb2bus_byte_put
2636 007c 289d          goto    main__17
2637                    ; line_number = 188
2638                    ; case 2, 3
2639   007d :   main__13:
2640                    ; # 0000 101s (Status Read):
2641                    ; line_number = 190
2642                    ;  command := ls_shaft_select(command)
2643                    ;info   190, 125
2644 007d 082c          movf    main__command,w
2645 007e 2150          call    ls_shaft_select
2646 007f 00ac          movwf   main__command
2647                    ; line_number = 191
2648                    ;  call ls_command_put(ls_read | ls_str | command)
2649                    ;info   191, 128
2650 0080 3070          movlw   112
2651 0081 042c          iorwf   main__command,w
2652 0082 2154          call    ls_command_put
2653                    ; line_number = 192
2654                    ;  command := ls_byte_get()
2655                    ;info   192, 131
2656 0083 2167          call    ls_byte_get
2657 0084 00ac          movwf   main__command
2658                    ; line_number = 193
2659                    ;  call rb2bus_byte_put(command)
2660                    ;info   193, 133
2661 0085 082c          movf    main__command,w
2662 0086 2227          call    rb2bus_byte_put
2663 0087 289d          goto    main__17
2664                    ; line_number = 194
2665                    ; case 4, 5
2666   0088 :   main__14:
2667                    ; # 0000 110s (Mode 0 Read):
2668                    ; line_number = 196
2669                    ;  command := ls_shaft_select(command)
2670                    ;info   196, 136
2671 0088 082c          movf    main__command,w
2672 0089 2150          call    ls_shaft_select
2673 008a 00ac          movwf   main__command
2674                    ; line_number = 197
2675                    ;  call ls_command_put(ls_read | ls_mdr0 | command)
2676                    ;info   197, 139
2677 008b 3048          movlw   72
2678 008c 042c          iorwf   main__command,w
2679 008d 2154          call    ls_command_put
2680                    ; line_number = 198
2681                    ;  command := ls_byte_get()
2682                    ;info   198, 142
2683 008e 2167          call    ls_byte_get
2684 008f 00ac          movwf   main__command
2685                    ; line_number = 199
2686                    ;  call rb2bus_byte_put(command)
2687                    ;info   199, 144
2688 0090 082c          movf    main__command,w
2689 0091 2227          call    rb2bus_byte_put
2690 0092 289d          goto    main__17
2691                    ; line_number = 200
2692                    ; case 6, 7
2693   0093 :   main__15:
2694                    ; # 0000 111s (Mode 1 Read):
2695                    ; line_number = 202
2696                    ;  command := ls_shaft_select(command)
2697                    ;info   202, 147
2698 0093 082c          movf    main__command,w
2699 0094 2150          call    ls_shaft_select
2700 0095 00ac          movwf   main__command
2701                    ; line_number = 203
2702                    ;  call ls_command_put(ls_read | ls_mdr1 | command)
2703                    ;info   203, 150
2704 0096 3050          movlw   80
2705 0097 042c          iorwf   main__command,w
2706 0098 2154          call    ls_command_put
2707                    ; line_number = 204
2708                    ;  command := ls_byte_get()
2709                    ;info   204, 153
2710 0099 2167          call    ls_byte_get
2711 009a 00ac          movwf   main__command
2712                    ; line_number = 205
2713                    ;  call rb2bus_byte_put(command)
2714                    ;info   205, 155
2715 009b 082c          movf    main__command,w
2716 009c 2227          call    rb2bus_byte_put
2717   009d :   main__17:
2718                    ; line_number = 181
2719                    ;  switch command & 7 done
2720   009d :   main__22:
2721                    ; line_number = 149
2722                    ;  switch (command >> 3) & 7 done
2723 009d 292e          goto    main__48
2724                    ; line_number = 208
2725                    ; case 1
2726   009e :   main__44:
2727                    ; # 01xx xxxx:
2728                    ; line_number = 210
2729                    ;  switch (command >> 3) & 7 start
2730                    ;info   210, 158
2731                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2732                    ; line_number = 249
2733                    ; case_maximum 7
2734 009e 3000          movlw   main__30>>8
2735 009f 008a          movwf   __pclath
2736 00000033 = main__31 equ globals___0+19
2737 00a0 0c2c          rrf     main__command,w
2738 00a1 00b3          movwf   main__31
2739 00a2 0cb3          rrf     main__31,f
2740 00a3 0c33          rrf     main__31,w
2741 00a4 3907          andlw   7
2742                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2743 00a5 3ea7          addlw   main__30
2744 00a6 0082          movwf   __pcl
2745                    ; page_group 8
2746   00a7 :   main__30:
2747 00a7 28af          goto    main__29
2748 00a8 2902          goto    main__32
2749 00a9 2902          goto    main__32
2750 00aa 2902          goto    main__32
2751 00ab 2902          goto    main__32
2752 00ac 2902          goto    main__32
2753 00ad 2902          goto    main__32
2754 00ae 2902          goto    main__32
2755                    ; line_number = 211
2756                    ; case 0
2757   00af :   main__29:
2758                    ; # 0100 0xxx:
2759                    ; line_number = 213
2760                    ;  switch command & 7 start
2761                    ;info   213, 175
2762                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2763                    ; line_number = 248
2764                    ; case_maximum 7
2765 00af 3000          movlw   main__27>>8
2766 00b0 008a          movwf   __pclath
2767 00b1 3007          movlw   7
2768 00b2 052c          andwf   main__command,w
2769                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2770 00b3 3eb5          addlw   main__27
2771 00b4 0082          movwf   __pcl
2772                    ; page_group 8
2773   00b5 :   main__27:
2774 00b5 28bd          goto    main__23
2775 00b6 28bd          goto    main__23
2776 00b7 28cc          goto    main__24
2777 00b8 28cc          goto    main__24
2778 00b9 28dd          goto    main__25
2779 00ba 28dd          goto    main__25
2780 00bb 28ef          goto    main__26
2781 00bc 28ef          goto    main__26
2782                    ; line_number = 214
2783                    ; case 0, 1
2784   00bd :   main__23:
2785                    ; # 0100 000s (Read Shaft Full):
2786                    ; line_number = 216
2787                    ;  command := ls_shaft_select(command);
2788                    ;info   216, 189
2789 00bd 082c          movf    main__command,w
2790 00be 2150          call    ls_shaft_select
2791 00bf 00ac          movwf   main__command
2792                    ; line_number = 217
2793                    ;  call ls_command_put(ls_read | ls_otr | command)
2794                    ;info   217, 192
2795 00c0 3068          movlw   104
2796 00c1 042c          iorwf   main__command,w
2797 00c2 2154          call    ls_command_put
2798                    ; line_number = 218
2799                    ;  shaft_high := ls_byte_get()
2800                    ;info   218, 195
2801 00c3 2167          call    ls_byte_get
2802 00c4 00ae          movwf   main__shaft_high
2803                    ; line_number = 219
2804                    ;  shaft_low := ls_byte_get()
2805                    ;info   219, 197
2806 00c5 2167          call    ls_byte_get
2807 00c6 00af          movwf   main__shaft_low
2808                    ; line_number = 220
2809                    ;  call rb2bus_byte_put(shaft_high)
2810                    ;info   220, 199
2811 00c7 082e          movf    main__shaft_high,w
2812 00c8 2227          call    rb2bus_byte_put
2813                    ; line_number = 221
2814                    ;  call rb2bus_byte_put(shaft_low)
2815                    ;info   221, 201
2816 00c9 082f          movf    main__shaft_low,w
2817 00ca 2227          call    rb2bus_byte_put
2818 00cb 2902          goto    main__28
2819                    ; line_number = 222
2820                    ; case 2, 3
2821   00cc :   main__24:
2822                    ; # 0100 001s (Read Shaft Full Complement):
2823                    ; line_number = 224
2824                    ;  command := ls_shaft_select(command);
2825                    ;info   224, 204
2826 00cc 082c          movf    main__command,w
2827 00cd 2150          call    ls_shaft_select
2828 00ce 00ac          movwf   main__command
2829                    ; line_number = 225
2830                    ;  call ls_command_put(ls_read | ls_otr | command)
2831                    ;info   225, 207
2832 00cf 3068          movlw   104
2833 00d0 042c          iorwf   main__command,w
2834 00d1 2154          call    ls_command_put
2835                    ; line_number = 226
2836                    ;  shaft_high := ls_byte_get() ^ 0xff
2837                    ;info   226, 210
2838 00d2 2167          call    ls_byte_get
2839 00d3 3aff          xorlw   255
2840 00d4 00ae          movwf   main__shaft_high
2841                    ; line_number = 227
2842                    ;  shaft_low := ls_byte_get() ^ 0xff
2843                    ;info   227, 213
2844 00d5 2167          call    ls_byte_get
2845 00d6 3aff          xorlw   255
2846 00d7 00af          movwf   main__shaft_low
2847                    ; line_number = 228
2848                    ;  call rb2bus_byte_put(shaft_high)
2849                    ;info   228, 216
2850 00d8 082e          movf    main__shaft_high,w
2851 00d9 2227          call    rb2bus_byte_put
2852                    ; line_number = 229
2853                    ;  call rb2bus_byte_put(shaft_low)
2854                    ;info   229, 218
2855 00da 082f          movf    main__shaft_low,w
2856 00db 2227          call    rb2bus_byte_put
2857 00dc 2902          goto    main__28
2858                    ; line_number = 230
2859                    ; case 4, 5
2860   00dd :   main__25:
2861                    ; # 0100 010s (Read Shaft Full with Checksum):
2862                    ; line_number = 232
2863                    ;  command := ls_shaft_select(command);
2864                    ;info   232, 221
2865 00dd 082c          movf    main__command,w
2866 00de 2150          call    ls_shaft_select
2867 00df 00ac          movwf   main__command
2868                    ; line_number = 233
2869                    ;  call ls_command_put(ls_read | ls_otr | command)
2870                    ;info   233, 224
2871 00e0 3068          movlw   104
2872 00e1 042c          iorwf   main__command,w
2873 00e2 2154          call    ls_command_put
2874                    ; line_number = 234
2875                    ;  shaft_high := ls_byte_get()
2876                    ;info   234, 227
2877 00e3 2167          call    ls_byte_get
2878 00e4 00ae          movwf   main__shaft_high
2879                    ; line_number = 235
2880                    ;  shaft_low := ls_byte_get()
2881                    ;info   235, 229
2882 00e5 2167          call    ls_byte_get
2883 00e6 00af          movwf   main__shaft_low
2884                    ; line_number = 236
2885                    ;  call rb2bus_byte_put(shaft_high)
2886                    ;info   236, 231
2887 00e7 082e          movf    main__shaft_high,w
2888 00e8 2227          call    rb2bus_byte_put
2889                    ; line_number = 237
2890                    ;  call rb2bus_byte_put(shaft_low)
2891                    ;info   237, 233
2892 00e9 082f          movf    main__shaft_low,w
2893 00ea 2227          call    rb2bus_byte_put
2894                    ; line_number = 238
2895                    ;  call rb2bus_byte_put(shaft_low + shaft_high)
2896                    ;info   238, 235
2897 00eb 082f          movf    main__shaft_low,w
2898 00ec 072e          addwf   main__shaft_high,w
2899 00ed 2227          call    rb2bus_byte_put
2900 00ee 2902          goto    main__28
2901                    ; line_number = 239
2902                    ; case 6, 7
2903   00ef :   main__26:
2904                    ; # 0100 011s (Read Shaft Full Complement with Checksum):
2905                    ; line_number = 241
2906                    ;  command := ls_shaft_select(command);
2907                    ;info   241, 239
2908 00ef 082c          movf    main__command,w
2909 00f0 2150          call    ls_shaft_select
2910 00f1 00ac          movwf   main__command
2911                    ; line_number = 242
2912                    ;  call ls_command_put(ls_read | ls_otr | command)
2913                    ;info   242, 242
2914 00f2 3068          movlw   104
2915 00f3 042c          iorwf   main__command,w
2916 00f4 2154          call    ls_command_put
2917                    ; line_number = 243
2918                    ;  shaft_high := ls_byte_get() ^ 0xff
2919                    ;info   243, 245
2920 00f5 2167          call    ls_byte_get
2921 00f6 3aff          xorlw   255
2922 00f7 00ae          movwf   main__shaft_high
2923                    ; line_number = 244
2924                    ;  shaft_low := ls_byte_get() ^ 0xff
2925                    ;info   244, 248
2926 00f8 2167          call    ls_byte_get
2927 00f9 3aff          xorlw   255
2928 00fa 00af          movwf   main__shaft_low
2929                    ; line_number = 245
2930                    ;  call rb2bus_byte_put(shaft_high)
2931                    ;info   245, 251
2932 00fb 082e          movf    main__shaft_high,w
2933 00fc 2227          call    rb2bus_byte_put
2934                    ; line_number = 246
2935                    ;  call rb2bus_byte_put(shaft_low)
2936                    ;info   246, 253
2937 00fd 082f          movf    main__shaft_low,w
2938 00fe 2227          call    rb2bus_byte_put
2939                    ; line_number = 247
2940                    ;  call rb2bus_byte_put(shaft_low + shaft_high)
2941                    ;info   247, 255
2942 00ff 082f          movf    main__shaft_low,w
2943 0100 072e          addwf   main__shaft_high,w
2944 0101 2227          call    rb2bus_byte_put
2945   0102 :   main__28:
2946                    ; line_number = 213
2947                    ;  switch command & 7 done
2948   0102 :   main__32:
2949                    ; line_number = 210
2950                    ;  switch (command >> 3) & 7 done
2951 0102 292e          goto    main__48
2952                    ; line_number = 250
2953                    ; case 3
2954   0103 :   main__45:
2955                    ; # 11xx xxxx:
2956                    ; line_number = 252
2957                    ;  switch (command >> 3) & 7 start
2958                    ;info   252, 259
2959                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2960                    ; line_number = 268
2961                    ; case_maximum 7
2962 0103 3001          movlw   main__40>>8
2963 0104 008a          movwf   __pclath
2964 00000033 = main__41 equ globals___0+19
2965 0105 0c2c          rrf     main__command,w
2966 0106 00b3          movwf   main__41
2967 0107 0cb3          rrf     main__41,f
2968 0108 0c33          rrf     main__41,w
2969 0109 3907          andlw   7
2970                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2971 010a 3e0c          addlw   main__40
2972 010b 0082          movwf   __pcl
2973                    ; page_group 8
2974   010c :   main__40:
2975 010c 292e          goto    main__42
2976 010d 292e          goto    main__42
2977 010e 292e          goto    main__42
2978 010f 292e          goto    main__42
2979 0110 292e          goto    main__42
2980 0111 292e          goto    main__42
2981 0112 292e          goto    main__42
2982 0113 2914          goto    main__39
2983                    ; line_number = 253
2984                    ; case 7
2985   0114 :   main__39:
2986                    ; # 1111 1xxx:
2987                    ; line_number = 255
2988                    ;  switch command & 7 start
2989                    ;info   255, 276
2990                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2991                    ; line_number = 267
2992                    ; case_maximum 7
2993 0114 3001          movlw   main__37>>8
2994 0115 008a          movwf   __pclath
2995 0116 3007          movlw   7
2996 0117 052c          andwf   main__command,w
2997                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2998 0118 3e1a          addlw   main__37
2999 0119 0082          movwf   __pcl
3000                    ; page_group 8
3001   011a :   main__37:
3002 011a 292e          goto    main__38
3003 011b 292e          goto    main__38
3004 011c 292e          goto    main__38
3005 011d 292e          goto    main__38
3006 011e 292e          goto    main__38
3007 011f 2922          goto    main__34
3008 0120 292b          goto    main__35
3009 0121 292d          goto    main__36
3010                    ; line_number = 256
3011                    ; case 5
3012   0122 :   main__34:
3013                    ; # 1111 1101 (Id_next):
3014                    ; line_number = 258
3015                    ;  if id_index < id.size start
3016                    ;info   258, 290
3017 0122 3016          movlw   22
3018 0123 022d          subwf   main__id_index,w
3019                    ; =>bit_code_emit@symbol(): sym=__c
3020                    ; No 1TEST: true.size=0 false.size=4
3021                    ; No 2TEST: true.size=0 false.size=4
3022                    ; 1GOTO: Single test with GOTO
3023 0124 1803          btfsc   __c___byte, __c___bit
3024 0125 292a          goto    main__33
3025                    ; line_number = 259
3026                    ; call rb2bus_byte_put(id[id_index])
3027                    ;info   259, 294
3028 0126 082d          movf    main__id_index,w
3029 0127 216e          call    id
3030 0128 2227          call    rb2bus_byte_put
3031                    ; line_number = 260
3032                    ;  id_index := id_index + 1
3033                    ;info   260, 297
3034 0129 0aad          incf    main__id_index,f
3035   012a :   main__33:
3036                    ; Recombine size1 = 0 || size2 = 0
3037                    ; line_number = 258
3038                    ;  if id_index < id.size done
3039 012a 292e          goto    main__38
3040                    ; line_number = 261
3041                    ; case 6
3042   012b :   main__35:
3043                    ; # 1111 1110 (Id_start):
3044                    ; line_number = 263
3045                    ;  id_index := 0
3046                    ;info   263, 299
3047 012b 01ad          clrf    main__id_index
3048 012c 292e          goto    main__38
3049                    ; line_number = 264
3050                    ; case 7
3051   012d :   main__36:
3052                    ; # 1111 1111 (Deselect):
3053                    ; line_number = 266
3054                    ;  call rb2bus_deselect()
3055                    ;info   266, 301
3056 012d 2203          call    rb2bus_deselect
3057   012e :   main__38:
3058                    ; line_number = 255
3059                    ;  switch command & 7 done
3060   012e :   main__42:
3061                    ; line_number = 252
3062                    ;  switch (command >> 3) & 7 done
3063   012e :   main__48:
3064                    ; line_number = 146
3065                    ; switch command >> 6 done
3066                    ; # Deselect the shaft encoder chips:
3067                    ; line_number = 272
3068                    ;  shaft0 := _true
3069                    ;info   272, 302
3070 012e 1686          bsf     shaft0___byte, shaft0___bit
3071                    ; line_number = 273
3072                    ;  shaft1 := _true
3073                    ;info   273, 303
3074 012f 1487          bsf     shaft1___byte, shaft1___bit
3075            
3076            
3077                    ; line_number = 139
3078                    ;  loop_forever wrap-up
3079 0130 280f          goto    main__1
3080                    ; line_number = 139
3081                    ;  loop_forever done
3082                    ; delay after procedure statements=non-uniform
3083            
3084            
3085            
3086            
3087                    ; line_number = 276
3088                    ;info   276, 305
3089                    ; procedure reset
3090   0131 :   reset:
3091                    ; arguments_none
3092                    ; line_number = 278
3093                    ;  returns_nothing
3094            
3095                    ; # This procedure will reset the module.
3096            
3097                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3098                    ; line_number = 282
3099                    ;  call rb2bus_initialize(5)
3100                    ;info   282, 305
3101 0131 3005          movlw   5
3102 0132 218a          call    rb2bus_initialize
3103            
3104                    ; # The synchronous serial port can be run in master mode at three
3105                    ; # different clock rates:
3106                    ; #
3107                    ; #    Fosc/4 - SSPM<3:0> = 0000   = 5MHz @ Fosc=20MHz
3108                    ; #    Fosc/16 - SSPM<3:0> = 0001  = 1.25MHz @ Fosc=20MHz
3109                    ; #    Fosc/64 - SSPM<3:0> = 0010  = .3125MHz @ Fosc=20Mhz
3110                    ; #
3111                    ; # Technically, the specifications for the LS7366 dual quadrature
3112                    ; # counter specify the following:
3113                    ; #
3114                    ; #    SCK High Pulse width = 100ns and
3115                    ; #    SCK Low Pulse width = 100ns,
3116                    ; #    thus SCK maximum fequency = 5 MHz (suggesting Fosc/4)
3117            
3118            
3119                    ; # Initialize {_sspstat} (only {_cke} and {_smp} are writable):
3120                    ; # Transmit from active to idle:
3121                    ; line_number = 301
3122                    ;  _cke := _true
3123                    ;info   301, 307
3124 0133 1683          bsf     __rp0___byte, __rp0___bit
3125 0134 1714          bsf     _cke___byte, _cke___bit
3126                    ; # Sample data in the middle:
3127                    ; line_number = 303
3128                    ;  _smp := _false
3129                    ;info   303, 309
3130 0135 1394          bcf     _smp___byte, _smp___bit
3131            
3132                    ; # Initialize {_sspcon}:
3133                    ; # SSPM<3:0> := 0 (= SPI Master mode Fosc/4):
3134                    ; line_number = 307
3135                    ;  _sspcon := 0
3136                    ;info   307, 310
3137 0136 1283          bcf     __rp0___byte, __rp0___bit
3138 0137 0194          clrf    _sspcon
3139                    ; # Clock idle is at low
3140                    ; line_number = 309
3141                    ;  _ckp := _false
3142                    ;info   309, 312
3143 0138 1214          bcf     _ckp___byte, _ckp___bit
3144            
3145                    ; # Note {_ckp}=0 and {_cke}=1 is the one that matches the LS7366
3146                    ; # spec. sheet for clocking.  {_smp}=0 is the correct sample location.
3147            
3148                    ; # Make sure the two shaft encoder chips are deselected
3149                    ; line_number = 315
3150                    ;  shaft0 := _true
3151                    ;info   315, 313
3152 0139 1686          bsf     shaft0___byte, shaft0___bit
3153                    ; line_number = 316
3154                    ;  shaft1 := _true
3155                    ;info   316, 314
3156 013a 1487          bsf     shaft1___byte, shaft1___bit
3157            
3158                    ; # Enable Synchronous Serial Port:
3159                    ; line_number = 319
3160                    ;  _sspen := _true
3161                    ;info   319, 315
3162 013b 1694          bsf     _sspen___byte, _sspen___bit
3163            
3164                    ; ## None of this is needed!!!
3165                    ; ## The _bf (buffer full) bit is read-only and it initializes to 0.
3166                    ; ## We need to get it set.  This is done by causing the synchronous
3167                    ; ## serial port to write (and read) 8 bits:
3168                    ; #_sspbuf := 0
3169                    ; ## In about 8 cycles {_bf} should be 1:
3170            
3171                    ; # Now intialize our favorite shaft encoder chips:
3172                    ; line_number = 329
3173                    ;  call ls_initialize()
3174                    ;info   329, 316
3175 013c 213f          call    ls_initialize
3176            
3177            
3178                    ; delay after procedure statements=non-uniform
3179                    ; Implied return
3180 013d 3400          retlw   0
3181            
3182            
3183            
3184            
3185                    ; line_number = 332
3186                    ;info   332, 318
3187                    ; procedure wait
3188   013e :   wait:
3189                    ; arguments_none
3190                    ; line_number = 334
3191                    ;  returns_nothing
3192            
3193                    ; # This procedure is repeatably called whenever the software
3194                    ; # is waiting for a byte to arrive from the bus.
3195            
3196                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3197                    ; line_number = 339
3198                    ;  do_nothing
3199                    ;info   339, 318
3200            
3201            
3202                    ; delay after procedure statements=non-uniform
3203                    ; Implied return
3204 013e 3400          retlw   0
3205            
3206            
3207            
3208            
3209                    ; line_number = 342
3210                    ;info   342, 319
3211                    ; procedure ls_initialize
3212   013f :   ls_initialize:
3213                    ; arguments_none
3214                    ; line_number = 344
3215                    ;  returns_nothing
3216            
3217                    ; # Initialize both of the shaft encoder chips:
3218            
3219                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3220                    ; line_number = 348
3221                    ;  call ls_command_put(ls_clear | ls_mdr0)
3222                    ;info   348, 319
3223 013f 3008          movlw   8
3224 0140 2154          call    ls_command_put
3225                    ; line_number = 349
3226                    ;  call ls_command_put(ls_clear | ls_mdr1)
3227                    ;info   349, 321
3228 0141 3010          movlw   16
3229 0142 2154          call    ls_command_put
3230                    ; line_number = 350
3231                    ;  call ls_command_put(ls_clear | ls_str)
3232                    ;info   350, 323
3233 0143 3030          movlw   48
3234 0144 2154          call    ls_command_put
3235                    ; line_number = 351
3236                    ;  call ls_command_put(ls_clear | ls_cntr)
3237                    ;info   351, 325
3238 0145 3020          movlw   32
3239 0146 2154          call    ls_command_put
3240            
3241                    ; line_number = 353
3242                    ;  call ls_command_put(ls_write | ls_mdr0 | ls_select_both)
3243                    ;info   353, 327
3244 0147 308b          movlw   139
3245 0148 2154          call    ls_command_put
3246                    ; line_number = 354
3247                    ;  call ls_byte_put(ls_mdr0_value)
3248                    ;info   354, 329
3249 0149 3000          movlw   0
3250 014a 215e          call    ls_byte_put
3251            
3252                    ; # This last command enables counting:
3253                    ; line_number = 357
3254                    ;  call ls_command_put(ls_write | ls_mdr1 | ls_select_both)
3255                    ;info   357, 331
3256 014b 3093          movlw   147
3257 014c 2154          call    ls_command_put
3258                    ; line_number = 358
3259                    ;  call ls_byte_put(ls_mdr1_value)
3260                    ;info   358, 333
3261 014d 3002          movlw   2
3262 014e 215e          call    ls_byte_put
3263            
3264            
3265                    ; delay after procedure statements=non-uniform
3266                    ; Implied return
3267 014f 3400          retlw   0
3268            
3269            
3270            
3271            
3272                    ; line_number = 361
3273                    ;info   361, 336
3274                    ; procedure ls_shaft_select
3275   0150 :   ls_shaft_select:
3276                    ; Last argument is sitting in W; save into argument variable
3277 0150 00b0          movwf   ls_shaft_select__command
3278                    ; delay=4294967295
3279                    ; line_number = 362
3280                    ; argument command byte
3281 00000030 = ls_shaft_select__command equ globals___0+16
3282                    ; line_number = 363
3283                    ;  returns byte
3284            
3285                    ; # This procedure will return {ls_select_shaft0} or {ls_select_shaft1}
3286                    ; # depending upon whether {command}@0 is set or not.
3287            
3288                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3289                    ; line_number = 368
3290                    ;  if command@0 start
3291                    ;info   368, 337
3292 00000030 = ls_shaft_select__select__1___byte equ ls_shaft_select__command
3293 00000000 = ls_shaft_select__select__1___bit equ 0
3294                    ; =>bit_code_emit@symbol(): sym=ls_shaft_select__select__1
3295                    ; 1TEST: Single test with code in skip slot
3296 0151 1830          btfsc   ls_shaft_select__select__1___byte, ls_shaft_select__select__1___bit
3297                    ; line_number = 369
3298                    ; return ls_select_shaft1 start
3299                    ; line_number = 369
3300                    ;info   369, 338
3301 0152 3402          retlw   2
3302                    ; line_number = 369
3303                    ; return ls_select_shaft1 done
3304                    ; Recombine size1 = 0 || size2 = 0
3305                    ; line_number = 368
3306                    ;  if command@0 done
3307                    ; line_number = 370
3308                    ; return ls_select_shaft0 start
3309                    ; line_number = 370
3310                    ;info   370, 339
3311 0153 3401          retlw   1
3312                    ; line_number = 370
3313                    ; return ls_select_shaft0 done
3314            
3315            
3316                    ; delay after procedure statements=non-uniform
3317            
3318            
3319            
3320            
3321                    ; line_number = 373
3322                    ;info   373, 340
3323                    ; procedure ls_command_put
3324   0154 :   ls_command_put:
3325                    ; Last argument is sitting in W; save into argument variable
3326 0154 00b1          movwf   ls_command_put__ir
3327                    ; delay=4294967295
3328                    ; line_number = 374
3329                    ; argument ir byte
3330 00000031 = ls_command_put__ir equ globals___0+17
3331                    ; line_number = 375
3332                    ;  returns_nothing
3333            
3334                    ; # This procedure will cause {ir} to be sent to the appropriate
3335                    ; # shaft encoder.  Construct a command by OR'ing together an
3336                    ; # operation ({ls_clear}, {ls_read}, {ls_write}, or {ls_load},
3337                    ; # with a register ({ls_mdr0}, {ls_mdr1}, {ls_dtr}, {ls_cntr},
3338                    ; # {ls_otr}, {ls_str}), and either {ls_shaft0} and/or {ls_shaft1}.
3339                    ; # If both {ls_shaft0} and {ls_shaft1} are set at the same time,
3340                    ; # the operation should be one of {ls_clear}, {ls_write}, or
3341                    ; # {ls_load}; only one shaft encoder chip at a time can be read.
3342            
3343                    ; # Force both shaft chips to be deselected:
3344                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3345                    ; line_number = 387
3346                    ;  shaft0 := _true
3347                    ;info   387, 341
3348 0155 1686          bsf     shaft0___byte, shaft0___bit
3349                    ; line_number = 388
3350                    ;  shaft1 := _true
3351                    ;info   388, 342
3352 0156 1487          bsf     shaft1___byte, shaft1___bit
3353            
3354                    ; # Select the appropriate
3355                    ; line_number = 391
3356                    ;  if ir@ls_shaft0_bit start
3357                    ;info   391, 343
3358 00000031 = ls_command_put__select__1___byte equ ls_command_put__ir
3359 00000000 = ls_command_put__select__1___bit equ 0
3360                    ; =>bit_code_emit@symbol(): sym=ls_command_put__select__1
3361                    ; 1TEST: Single test with code in skip slot
3362 0157 1831          btfsc   ls_command_put__select__1___byte, ls_command_put__select__1___bit
3363                    ; line_number = 392
3364                    ; shaft0 := _false
3365                    ;info   392, 344
3366 0158 1286          bcf     shaft0___byte, shaft0___bit
3367                    ; Recombine size1 = 0 || size2 = 0
3368                    ; line_number = 391
3369                    ;  if ir@ls_shaft0_bit done
3370                    ; line_number = 393
3371                    ; if ir@ls_shaft1_bit start
3372                    ;info   393, 345
3373 00000031 = ls_command_put__select__2___byte equ ls_command_put__ir
3374 00000001 = ls_command_put__select__2___bit equ 1
3375                    ; =>bit_code_emit@symbol(): sym=ls_command_put__select__2
3376                    ; 1TEST: Single test with code in skip slot
3377 0159 18b1          btfsc   ls_command_put__select__2___byte, ls_command_put__select__2___bit
3378                    ; line_number = 394
3379                    ; shaft1 := _false
3380                    ;info   394, 346
3381 015a 1087          bcf     shaft1___byte, shaft1___bit
3382                    ; Recombine size1 = 0 || size2 = 0
3383                    ; line_number = 393
3384                    ; if ir@ls_shaft1_bit done
3385                    ; line_number = 395
3386                    ; call ls_byte_put(ir)
3387                    ;info   395, 347
3388 015b 0831          movf    ls_command_put__ir,w
3389 015c 215e          call    ls_byte_put
3390            
3391            
3392                    ; delay after procedure statements=non-uniform
3393                    ; Implied return
3394 015d 3400          retlw   0
3395            
3396            
3397            
3398            
3399                    ; line_number = 398
3400                    ;info   398, 350
3401                    ; procedure ls_byte_put
3402   015e :   ls_byte_put:
3403                    ; Last argument is sitting in W; save into argument variable
3404 015e 00b2          movwf   ls_byte_put__data
3405                    ; delay=4294967295
3406                    ; line_number = 399
3407                    ; argument data byte
3408 00000032 = ls_byte_put__data equ globals___0+18
3409                    ; line_number = 400
3410                    ;  returns_nothing
3411            
3412                    ; # This procedure will output {data} to the currently
3413                    ; # select chip.
3414            
3415                    ; # Ship the byte on its way:
3416                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3417                    ; line_number = 406
3418                    ;  _sspbuf := data
3419                    ;info   406, 351
3420 015f 0832          movf    ls_byte_put__data,w
3421 0160 0093          movwf   _sspbuf
3422            
3423                    ; # Wait for the transmission to finish:
3424                    ; line_number = 409
3425                    ;  while !_bf start
3426   0161 :   ls_byte_put__1:
3427                    ;info   409, 353
3428                    ; =>bit_code_emit@symbol(): sym=_bf
3429                    ; 1TEST: Single test with code in skip slot
3430 0161 1683          bsf     __rp0___byte, __rp0___bit
3431 0162 1c14          btfss   _bf___byte, _bf___bit
3432                    ; line_number = 410
3433                    ; do_nothing
3434                    ;info   410, 355
3435            
3436 0163 2961          goto    ls_byte_put__1
3437                    ; Recombine size1 = 0 || size2 = 0
3438                    ; line_number = 409
3439                    ;  while !_bf done
3440                    ; # We don't need the data that was clocked in, so just clear {_bf}:
3441                    ; line_number = 413
3442                    ;  _bf := _false
3443                    ;info   413, 356
3444 0164 1014          bcf     _bf___byte, _bf___bit
3445            
3446            
3447                    ; delay after procedure statements=non-uniform
3448 0165 1283          bcf     __rp0___byte, __rp0___bit
3449                    ; Implied return
3450 0166 3400          retlw   0
3451            
3452            
3453            
3454            
3455                    ; line_number = 416
3456                    ;info   416, 359
3457                    ; procedure ls_byte_get
3458   0167 :   ls_byte_get:
3459                    ; arguments_none
3460                    ; line_number = 418
3461                    ;  returns byte
3462            
3463                    ; # This procedure will read a byte of data from the
3464                    ; # currently selected chip.
3465            
3466                    ; # Write out a 0, and shift in the data:
3467                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3468                    ; line_number = 424
3469                    ;  _sspbuf := 0
3470                    ;info   424, 359
3471 0167 0193          clrf    _sspbuf
3472            
3473                    ; #call rb2bus_byte_put(0xf1)
3474            
3475                    ; # Now wait for the data to show up:
3476                    ; line_number = 429
3477                    ;  while !_bf start
3478   0168 :   ls_byte_get__1:
3479                    ;info   429, 360
3480                    ; =>bit_code_emit@symbol(): sym=_bf
3481                    ; 1TEST: Single test with code in skip slot
3482 0168 1683          bsf     __rp0___byte, __rp0___bit
3483 0169 1c14          btfss   _bf___byte, _bf___bit
3484                    ; line_number = 430
3485                    ; do_nothing
3486                    ;info   430, 362
3487            
3488 016a 2968          goto    ls_byte_get__1
3489                    ; Recombine size1 = 0 || size2 = 0
3490                    ; line_number = 429
3491                    ;  while !_bf done
3492                    ; #call rb2bus_byte_put(0xf2)
3493            
3494                    ; # Now return the data (clears {_bf} as a side effect):
3495                    ; line_number = 435
3496                    ;  return _sspbuf start
3497                    ; line_number = 435
3498                    ;info   435, 363
3499 016b 1283          bcf     __rp0___byte, __rp0___bit
3500 016c 0813          movf    _sspbuf,w
3501 016d 0008          return  
3502                    ; line_number = 435
3503                    ;  return _sspbuf done
3504            
3505            
3506                    ; delay after procedure statements=non-uniform
3507            
3508            
3509            
3510            
3511                    ; line_number = 438
3512                    ; string id = "\16,0,5,3,3,8\Shaft2-C\7\Gramson" start
3513                    ; id = '\16,0,5,3,3,8\Shaft2-C\7\Gramson'
3514   016e :   id:
3515                    ; Temporarily save index into FSR
3516 016e 0084          movwf   __fsr
3517                    ; Initialize PCLATH to point to this code page
3518 016f 3001          movlw   id___base>>8
3519 0170 008a          movwf   __pclath
3520                    ; Restore index from FSR
3521 0171 0804          movf    __fsr,w
3522 0172 3e74          addlw   id___base
3523                    ; Index to the correct return value
3524 0173 0082          movwf   __pcl
3525                    ; page_group 22
3526   0174 :   id___base:
3527 0174 3410          retlw   16
3528 0175 3400          retlw   0
3529 0176 3405          retlw   5
3530 0177 3403          retlw   3
3531 0178 3403          retlw   3
3532 0179 3408          retlw   8
3533 017a 3453          retlw   83
3534 017b 3468          retlw   104
3535 017c 3461          retlw   97
3536 017d 3466          retlw   102
3537 017e 3474          retlw   116
3538 017f 3432          retlw   50
3539 0180 342d          retlw   45
3540 0181 3443          retlw   67
3541 0182 3407          retlw   7
3542 0183 3447          retlw   71
3543 0184 3472          retlw   114
3544 0185 3461          retlw   97
3545 0186 346d          retlw   109
3546 0187 3473          retlw   115
3547 0188 346f          retlw   111
3548 0189 346e          retlw   110
3549                    ; line_number = 438
3550                    ; string id = "\16,0,5,3,3,8\Shaft2-C\7\Gramson" start
3551            
3552            
3553                    ; Appending 8 delayed procedures to code bank 0
3554                    ; buffer = 'rb2bus_pic16f876'
3555                    ; line_number = 28
3556                    ;info   28, 394
3557                    ; procedure rb2bus_initialize
3558   018a :   rb2bus_initialize:
3559                    ; Last argument is sitting in W; save into argument variable
3560 018a 00a2          movwf   rb2bus_initialize__address
3561                    ; delay=4294967295
3562                    ; line_number = 29
3563                    ; argument address byte
3564 00000022 = rb2bus_initialize__address equ globals___0+2
3565                    ; line_number = 30
3566                    ;  returns_nothing
3567            
3568                    ; # This procedure is responsibile for initializing the UART
3569                    ; # connected to the bus.  {address} is the address of this
3570                    ; # slave module.  This code is specific to the PIC16F688.
3571            
3572                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3573                    ; line_number = 36
3574                    ;  rb2bus_address := address
3575                    ;info   36, 395
3576 018b 0822          movf    rb2bus_initialize__address,w
3577 018c 00a0          movwf   rb2bus_address
3578            
3579                    ; # Warm up the UART:
3580                    ; line_number = 39
3581                    ;  _trisc@7 := _true
3582                    ;info   39, 397
3583 00000087 = rb2bus_initialize__select__1___byte equ _trisc
3584 00000007 = rb2bus_initialize__select__1___bit equ 7
3585 018d 1683          bsf     __rp0___byte, __rp0___bit
3586 018e 1787          bsf     rb2bus_initialize__select__1___byte, rb2bus_initialize__select__1___bit
3587                    ; line_number = 40
3588                    ;  _trisc@6 := _true
3589                    ;info   40, 399
3590 00000087 = rb2bus_initialize__select__2___byte equ _trisc
3591 00000006 = rb2bus_initialize__select__2___bit equ 6
3592 018f 1707          bsf     rb2bus_initialize__select__2___byte, rb2bus_initialize__select__2___bit
3593            
3594                    ; # Initialize the {_txsta} register:
3595                    ; line_number = 43
3596                    ;  _txsta := 0
3597                    ;info   43, 400
3598 0190 0198          clrf    _txsta
3599                    ; line_number = 44
3600                    ;  _tx9 := _true
3601                    ;info   44, 401
3602 0191 1718          bsf     _tx9___byte, _tx9___bit
3603                    ; line_number = 45
3604                    ;  _txen := _true
3605                    ;info   45, 402
3606 0192 1698          bsf     _txen___byte, _txen___bit
3607                    ; line_number = 46
3608                    ;  _brgh := _true
3609                    ;info   46, 403
3610 0193 1518          bsf     _brgh___byte, _brgh___bit
3611            
3612                    ; # Initialize the {_rcsta} register:
3613                    ; line_number = 49
3614                    ;  _rcsta := 0
3615                    ;info   49, 404
3616 0194 1283          bcf     __rp0___byte, __rp0___bit
3617 0195 0198          clrf    _rcsta
3618                    ; line_number = 50
3619                    ;  _spen := _true
3620                    ;info   50, 406
3621 0196 1798          bsf     _spen___byte, _spen___bit
3622                    ; line_number = 51
3623                    ;  _rx9 := _true
3624                    ;info   51, 407
3625 0197 1718          bsf     _rx9___byte, _rx9___bit
3626                    ; line_number = 52
3627                    ;  _cren := _true
3628                    ;info   52, 408
3629 0198 1618          bsf     _cren___byte, _cren___bit
3630                    ; #_adden := _true
3631                    ; line_number = 54
3632                    ;  _adden := _false
3633                    ;info   54, 409
3634 0199 1198          bcf     _adden___byte, _adden___bit
3635            
3636                    ; # Set up the baud rate generator:
3637                    ; line_number = 57
3638                    ;  _spbrg := spbrg_500k
3639                    ;info   57, 410
3640 019a 3001          movlw   1
3641 019b 1683          bsf     __rp0___byte, __rp0___bit
3642 019c 0099          movwf   _spbrg
3643            
3644                    ; line_number = 59
3645                    ;  rb2bus_selected := _false
3646                    ;info   59, 413
3647 019d 1283          bcf     __rp0___byte, __rp0___bit
3648 019e 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
3649                    ; line_number = 60
3650                    ;  rb2bus_error := _true
3651                    ;info   60, 415
3652 019f 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
3653                    ; line_number = 61
3654                    ;  rb2bus_index := 0
3655                    ;info   61, 416
3656 01a0 01a1          clrf    rb2bus_index
3657            
3658            
3659                    ; delay after procedure statements=non-uniform
3660                    ; Implied return
3661 01a1 3400          retlw   0
3662            
3663            
3664            
3665            
3666                    ; line_number = 66
3667                    ;info   66, 418
3668                    ; procedure rb2bus_eedata_read
3669   01a2 :   rb2bus_eedata_read:
3670                    ; arguments_none
3671                    ; line_number = 68
3672                    ;  returns byte
3673            
3674                    ; # This procedure will return the address stored in EEData.  If
3675                    ; # there is no data, 0 is returned.
3676            
3677                    ; line_number = 73
3678                    ;  local temp1 byte
3679 00000023 = rb2bus_eedata_read__temp1 equ globals___0+3
3680                    ; line_number = 74
3681                    ;  local temp2 byte
3682 00000024 = rb2bus_eedata_read__temp2 equ globals___0+4
3683            
3684                    ; # Read the first byte (the address):
3685                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3686                    ; line_number = 77
3687                    ;  _eecon1 := 0
3688                    ;info   77, 418
3689 01a2 1683          bsf     __rp0___byte, __rp0___bit
3690 01a3 1703          bsf     __rp1___byte, __rp1___bit
3691 01a4 018c          clrf    _eecon1
3692                    ; line_number = 78
3693                    ;  _eeadr := rb2bus_eedata_address
3694                    ;info   78, 421
3695 01a5 30fe          movlw   254
3696 01a6 1283          bcf     __rp0___byte, __rp0___bit
3697 01a7 008d          movwf   _eeadr
3698                    ; line_number = 79
3699                    ;  _rd := _true
3700                    ;info   79, 424
3701 01a8 1683          bsf     __rp0___byte, __rp0___bit
3702 01a9 140c          bsf     _rd___byte, _rd___bit
3703                    ; line_number = 80
3704                    ;  temp1 := _eedata
3705                    ;info   80, 426
3706 01aa 1283          bcf     __rp0___byte, __rp0___bit
3707 01ab 080c          movf    _eedata,w
3708 01ac 1303          bcf     __rp1___byte, __rp1___bit
3709 01ad 00a3          movwf   rb2bus_eedata_read__temp1
3710            
3711                    ; # Read the second byte (the 1'z complement)
3712                    ; line_number = 83
3713                    ;  _eeadr := _eeadr + 1
3714                    ;info   83, 430
3715 01ae 1703          bsf     __rp1___byte, __rp1___bit
3716 01af 0a8d          incf    _eeadr,f
3717                    ; line_number = 84
3718                    ;  _rd := _true
3719                    ;info   84, 432
3720 01b0 1683          bsf     __rp0___byte, __rp0___bit
3721 01b1 140c          bsf     _rd___byte, _rd___bit
3722                    ; line_number = 85
3723                    ;  temp2 := _eedata
3724                    ;info   85, 434
3725 01b2 1283          bcf     __rp0___byte, __rp0___bit
3726 01b3 080c          movf    _eedata,w
3727 01b4 1303          bcf     __rp1___byte, __rp1___bit
3728 01b5 00a4          movwf   rb2bus_eedata_read__temp2
3729            
3730                    ; # If they are 1's complement of one another, they are valid:
3731                    ; line_number = 88
3732                    ;  if temp1 = (0xff ^ temp2) start
3733                    ;info   88, 438
3734                    ; Left minus Right
3735 01b6 0924          comf    rb2bus_eedata_read__temp2,w
3736 01b7 0223          subwf   rb2bus_eedata_read__temp1,w
3737                    ; =>bit_code_emit@symbol(): sym=__z
3738                    ; No 1TEST: true.size=2 false.size=0
3739                    ; No 2TEST: true.size=2 false.size=0
3740                    ; 1GOTO: Single test with GOTO
3741 01b8 1d03          btfss   __z___byte, __z___bit
3742 01b9 29bc          goto    rb2bus_eedata_read__1
3743                    ; # Return the valid address:
3744                    ; line_number = 90
3745                    ;  return temp1 start
3746                    ; line_number = 90
3747                    ;info   90, 442
3748 01ba 0823          movf    rb2bus_eedata_read__temp1,w
3749 01bb 0008          return  
3750                    ; line_number = 90
3751                    ;  return temp1 done
3752            
3753                    ; Recombine size1 = 0 || size2 = 0
3754   01bc :   rb2bus_eedata_read__1:
3755                    ; line_number = 88
3756                    ;  if temp1 = (0xff ^ temp2) done
3757                    ; # They are not 1's complement, so return 0 as an error:
3758                    ; line_number = 93
3759                    ;  return 0 start
3760                    ; line_number = 93
3761                    ;info   93, 444
3762 01bc 3400          retlw   0
3763                    ; line_number = 93
3764                    ;  return 0 done
3765            
3766            
3767                    ; delay after procedure statements=non-uniform
3768            
3769            
3770            
3771            
3772                    ; line_number = 96
3773                    ;info   96, 445
3774                    ; procedure rb2bus_eedata_write
3775   01bd :   rb2bus_eedata_write:
3776                    ; Last argument is sitting in W; save into argument variable
3777 01bd 00a5          movwf   rb2bus_eedata_write__address
3778                    ; delay=4294967295
3779                    ; line_number = 97
3780                    ; argument address byte
3781 00000025 = rb2bus_eedata_write__address equ globals___0+5
3782                    ; line_number = 98
3783                    ;  returns_nothing
3784            
3785                    ; # This procedure will write {address} into the EEData.  The
3786                    ; # microcontroll pauses while the EEData is written.
3787            
3788                    ; # Clear out the {_eecon1} register
3789                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3790                    ; line_number = 104
3791                    ;  _eecon1 := 0
3792                    ;info   104, 446
3793 01be 1683          bsf     __rp0___byte, __rp0___bit
3794 01bf 1703          bsf     __rp1___byte, __rp1___bit
3795 01c0 018c          clrf    _eecon1
3796                    ; line_number = 105
3797                    ;  _eeadr := rb2bus_eedata_address
3798                    ;info   105, 449
3799 01c1 30fe          movlw   254
3800 01c2 1283          bcf     __rp0___byte, __rp0___bit
3801 01c3 008d          movwf   _eeadr
3802                    ; line_number = 106
3803                    ;  _eedata := address
3804                    ;info   106, 452
3805 01c4 1303          bcf     __rp1___byte, __rp1___bit
3806 01c5 0825          movf    rb2bus_eedata_write__address,w
3807 01c6 1703          bsf     __rp1___byte, __rp1___bit
3808 01c7 008c          movwf   _eedata
3809            
3810                    ; # Write 2 bytes ({address} followed by {address}^0xff):
3811                    ; line_number = 109
3812                    ;  loop_exactly 2 start
3813                    ;info   109, 456
3814 00000034 = rb2bus_eedata_write__1 equ globals___0+20
3815 01c8 3002          movlw   2
3816 01c9 1303          bcf     __rp1___byte, __rp1___bit
3817 01ca 00b4          movwf   rb2bus_eedata_write__1
3818   01cb :   rb2bus_eedata_write__2:
3819                    ; # Set the data to write:
3820            
3821                    ; # Set up the for the write:
3822                    ; line_number = 113
3823                    ;  _wren := _true
3824                    ;info   113, 459
3825 01cb 1683          bsf     __rp0___byte, __rp0___bit
3826 01cc 1703          bsf     __rp1___byte, __rp1___bit
3827 01cd 150c          bsf     _wren___byte, _wren___bit
3828                    ; line_number = 114
3829                    ;  _gie := _false
3830                    ;info   114, 462
3831 01ce 138b          bcf     _gie___byte, _gie___bit
3832                    ; line_number = 115
3833                    ;  _eecon2 := 0x55
3834                    ;info   115, 463
3835 01cf 3055          movlw   85
3836 01d0 008d          movwf   _eecon2
3837                    ; line_number = 116
3838                    ;  _eecon2 := 0xaa
3839                    ;info   116, 465
3840 01d1 30aa          movlw   170
3841 01d2 008d          movwf   _eecon2
3842                    ; # Start the write:
3843                    ; line_number = 118
3844                    ;  _wr := _true
3845                    ;info   118, 467
3846 01d3 148c          bsf     _wr___byte, _wr___bit
3847            
3848                    ; # Wait for write to complete:
3849                    ; line_number = 121
3850                    ;  while _wr start
3851   01d4 :   rb2bus_eedata_write__3:
3852                    ;info   121, 468
3853                    ; =>bit_code_emit@symbol(): sym=_wr
3854                    ; 1TEST: Single test with code in skip slot
3855 01d4 188c          btfsc   _wr___byte, _wr___bit
3856                    ; line_number = 122
3857                    ; do_nothing
3858                    ;info   122, 469
3859            
3860 01d5 29d4          goto    rb2bus_eedata_write__3
3861                    ; Recombine size1 = 0 || size2 = 0
3862                    ; line_number = 121
3863                    ;  while _wr done
3864                    ; # Disable writing:
3865                    ; line_number = 125
3866                    ;  _wren := _false
3867                    ;info   125, 470
3868 01d6 110c          bcf     _wren___byte, _wren___bit
3869            
3870                    ; # Prepare the second byte of data:
3871                    ; line_number = 128
3872                    ;  _eeadr := _eeadr + 1
3873                    ;info   128, 471
3874 01d7 1283          bcf     __rp0___byte, __rp0___bit
3875 01d8 0a8d          incf    _eeadr,f
3876                    ; line_number = 129
3877                    ;  _eedata := address ^ 0xff
3878                    ;info   129, 473
3879 01d9 1303          bcf     __rp1___byte, __rp1___bit
3880 01da 0925          comf    rb2bus_eedata_write__address,w
3881 01db 1703          bsf     __rp1___byte, __rp1___bit
3882 01dc 008c          movwf   _eedata
3883            
3884            
3885 01dd 1303          bcf     __rp1___byte, __rp1___bit
3886                    ; line_number = 109
3887                    ;  loop_exactly 2 wrap-up
3888 01de 0bb4          decfsz  rb2bus_eedata_write__1,f
3889 01df 29cb          goto    rb2bus_eedata_write__2
3890                    ; line_number = 109
3891                    ;  loop_exactly 2 done
3892                    ; # Disable everything:
3893                    ; line_number = 133
3894                    ;  _eecon1 := 0
3895                    ;info   133, 480
3896 01e0 1683          bsf     __rp0___byte, __rp0___bit
3897 01e1 1703          bsf     __rp1___byte, __rp1___bit
3898 01e2 018c          clrf    _eecon1
3899            
3900                    ; delay after procedure statements=non-uniform
3901 01e3 1283          bcf     __rp0___byte, __rp0___bit
3902 01e4 1303          bcf     __rp1___byte, __rp1___bit
3903                    ; Implied return
3904 01e5 3400          retlw   0
3905            
3906            
3907            
3908            
3909                    ; buffer = 'rb2bus'
3910                    ; line_number = 57
3911                    ;info   57, 486
3912                    ; procedure rb2bus_select_wait
3913   01e6 :   rb2bus_select_wait:
3914                    ; arguments_none
3915                    ; line_number = 59
3916                    ;  returns_nothing
3917            
3918                    ; # This procedure will in an infinite loop until the select
3919                    ; # address matches {rb2bus_address}.  {rb2bus_address} is
3920                    ; # typically set in the {rb2bus_initialize} procedure.
3921                    ; #
3922                    ; # This module will repeatably call the {wait} procedure until
3923                    ; # it is properly selected.
3924            
3925                    ; line_number = 68
3926                    ;  local value byte
3927 00000026 = rb2bus_select_wait__value equ globals___0+6
3928                    ; line_number = 69
3929                    ;  local address_bit bit
3930 0000006f = rb2bus_select_wait__address_bit___byte equ globals___0+79
3931 00000002 = rb2bus_select_wait__address_bit___bit equ 2
3932            
3933                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
3934                    ; line_number = 71
3935                    ;  rb2bus_error := _false
3936                    ;info   71, 486
3937 01e6 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
3938                    ; line_number = 72
3939                    ;  while !rb2bus_selected start
3940   01e7 :   rb2bus_select_wait__1:
3941                    ;info   72, 487
3942                    ; =>bit_code_emit@symbol(): sym=rb2bus_selected
3943                    ; No 1TEST: true.size=0 false.size=25
3944                    ; No 2TEST: true.size=0 false.size=25
3945                    ; 1GOTO: Single test with GOTO
3946 01e7 186f          btfsc   rb2bus_selected___byte, rb2bus_selected___bit
3947 01e8 2a02          goto    rb2bus_select_wait__6
3948                    ; line_number = 73
3949                    ; _adden := _true
3950                    ;info   73, 489
3951 01e9 1598          bsf     _adden___byte, _adden___bit
3952                    ; # Wait for a byte to arrive.
3953                    ; line_number = 75
3954                    ;  while !_rcif start
3955   01ea :   rb2bus_select_wait__2:
3956                    ;info   75, 490
3957                    ; =>bit_code_emit@symbol(): sym=_rcif
3958                    ; No 1TEST: true.size=0 false.size=2
3959                    ; No 2TEST: true.size=0 false.size=2
3960                    ; 1GOTO: Single test with GOTO
3961 01ea 1a8c          btfsc   _rcif___byte, _rcif___bit
3962 01eb 29ee          goto    rb2bus_select_wait__3
3963                    ; line_number = 76
3964                    ; call wait()
3965                    ;info   76, 492
3966 01ec 213e          call    wait
3967            
3968 01ed 29ea          goto    rb2bus_select_wait__2
3969   01ee :   rb2bus_select_wait__3:
3970                    ; Recombine size1 = 0 || size2 = 0
3971                    ; line_number = 75
3972                    ;  while !_rcif done
3973                    ; # Capture the received value:
3974                    ; line_number = 79
3975                    ;  address_bit := _false
3976                    ;info   79, 494
3977 01ee 116f          bcf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3978                    ; line_number = 80
3979                    ;  if _rx9d start
3980                    ;info   80, 495
3981                    ; =>bit_code_emit@symbol(): sym=_rx9d
3982                    ; 1TEST: Single test with code in skip slot
3983 01ef 1818          btfsc   _rx9d___byte, _rx9d___bit
3984                    ; line_number = 81
3985                    ; address_bit := _true
3986                    ;info   81, 496
3987 01f0 156f          bsf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
3988                    ; Recombine size1 = 0 || size2 = 0
3989                    ; line_number = 80
3990                    ;  if _rx9d done
3991                    ; line_number = 82
3992                    ; value := _rcreg
3993                    ;info   82, 497
3994 01f1 081a          movf    _rcreg,w
3995 01f2 00a6          movwf   rb2bus_select_wait__value
3996            
3997                    ; # Clear any UART errors by toggling {_cren}:
3998                    ; line_number = 85
3999                    ;  if _oerr start
4000                    ;info   85, 499
4001                    ; =>bit_code_emit@symbol(): sym=_oerr
4002                    ; 1TEST: Single test with code in skip slot
4003 01f3 1898          btfsc   _oerr___byte, _oerr___bit
4004                    ; line_number = 86
4005                    ; _cren := _false
4006                    ;info   86, 500
4007 01f4 1218          bcf     _cren___byte, _cren___bit
4008                    ; Recombine size1 = 0 || size2 = 0
4009                    ; line_number = 85
4010                    ;  if _oerr done
4011                    ; line_number = 87
4012                    ; if _ferr start
4013                    ;info   87, 501
4014                    ; =>bit_code_emit@symbol(): sym=_ferr
4015                    ; 1TEST: Single test with code in skip slot
4016 01f5 1918          btfsc   _ferr___byte, _ferr___bit
4017                    ; line_number = 88
4018                    ; _cren := _false
4019                    ;info   88, 502
4020 01f6 1218          bcf     _cren___byte, _cren___bit
4021                    ; Recombine size1 = 0 || size2 = 0
4022                    ; line_number = 87
4023                    ; if _ferr done
4024                    ; line_number = 89
4025                    ; _cren := _true
4026                    ;info   89, 503
4027 01f7 1618          bsf     _cren___byte, _cren___bit
4028            
4029                    ; line_number = 91
4030                    ;  if address_bit start
4031                    ;info   91, 504
4032                    ; =>bit_code_emit@symbol(): sym=rb2bus_select_wait__address_bit
4033                    ; No 1TEST: true.size=7 false.size=0
4034                    ; No 2TEST: true.size=7 false.size=0
4035                    ; 1GOTO: Single test with GOTO
4036 01f8 1d6f          btfss   rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4037 01f9 2a01          goto    rb2bus_select_wait__5
4038                    ; line_number = 92
4039                    ; if value = rb2bus_address start
4040                    ;info   92, 506
4041                    ; Left minus Right
4042 01fa 0820          movf    rb2bus_address,w
4043 01fb 0226          subwf   rb2bus_select_wait__value,w
4044                    ; =>bit_code_emit@symbol(): sym=__z
4045                    ; No 1TEST: true.size=3 false.size=0
4046                    ; No 2TEST: true.size=3 false.size=0
4047                    ; 1GOTO: Single test with GOTO
4048 01fc 1d03          btfss   __z___byte, __z___bit
4049 01fd 2a01          goto    rb2bus_select_wait__4
4050                    ; line_number = 93
4051                    ; rb2bus_selected := _true
4052                    ;info   93, 510
4053 01fe 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
4054                    ; line_number = 94
4055                    ;  call rb2bus_byte_put(rb2_ok)
4056                    ;info   94, 511
4057 01ff 30a5          movlw   165
4058 0200 2227          call    rb2bus_byte_put
4059            
4060            
4061                    ; Recombine size1 = 0 || size2 = 0
4062   0201 :   rb2bus_select_wait__4:
4063                    ; line_number = 92
4064                    ; if value = rb2bus_address done
4065                    ; Recombine size1 = 0 || size2 = 0
4066   0201 :   rb2bus_select_wait__5:
4067                    ; line_number = 91
4068                    ;  if address_bit done
4069 0201 29e7          goto    rb2bus_select_wait__1
4070   0202 :   rb2bus_select_wait__6:
4071                    ; Recombine size1 = 0 || size2 = 0
4072                    ; line_number = 72
4073                    ;  while !rb2bus_selected done
4074                    ; delay after procedure statements=non-uniform
4075                    ; Implied return
4076 0202 3400          retlw   0
4077            
4078            
4079            
4080            
4081                    ; line_number = 97
4082                    ;info   97, 515
4083                    ; procedure rb2bus_deselect
4084   0203 :   rb2bus_deselect:
4085                    ; arguments_none
4086                    ; line_number = 99
4087                    ;  returns_nothing
4088            
4089                    ; # This procedure forces this module into the deselected state until
4090                    ; # it is reselected by some master module on the bus.
4091            
4092                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
4093                    ; line_number = 104
4094                    ;  rb2bus_selected := _false
4095                    ;info   104, 515
4096 0203 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4097            
4098            
4099                    ; delay after procedure statements=non-uniform
4100                    ; Implied return
4101 0204 3400          retlw   0
4102            
4103            
4104            
4105            
4106                    ; line_number = 107
4107                    ;info   107, 517
4108                    ; procedure rb2bus_byte_get
4109   0205 :   rb2bus_byte_get:
4110                    ; arguments_none
4111                    ; line_number = 109
4112                    ;  returns byte
4113            
4114                    ; # This procedure will return the next byte received from the bus.
4115                    ; # The address (9th) bit is stored in the global {is_address}.
4116                    ; #
4117                    ; # If {rb2bus_error} is set, 0 is returned.  Otherwise, the {wait}
4118                    ; # procedure is repeatably called until a command byte is successfully
4119                    ; # received.  If an module select byte comes in, we enter a bus
4120                    ; # error condition by setting {rb2bus_error} and returning 0.
4121            
4122                    ; line_number = 119
4123                    ;  local value byte
4124 00000027 = rb2bus_byte_get__value equ globals___0+7
4125                    ; line_number = 120
4126                    ;  local address_bit bit
4127 0000006f = rb2bus_byte_get__address_bit___byte equ globals___0+79
4128 00000003 = rb2bus_byte_get__address_bit___bit equ 3
4129            
4130                    ; # Return 0 in a bus flush condition to get us back to {rb2bus_select_wait}:
4131                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
4132                    ; line_number = 123
4133                    ;  if rb2bus_error start
4134                    ;info   123, 517
4135                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
4136                    ; 1TEST: Single test with code in skip slot
4137 0205 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
4138                    ; line_number = 124
4139                    ; return 0 start
4140                    ; line_number = 124
4141                    ;info   124, 518
4142 0206 3400          retlw   0
4143                    ; line_number = 124
4144                    ; return 0 done
4145            
4146                    ; Recombine size1 = 0 || size2 = 0
4147                    ; line_number = 123
4148                    ;  if rb2bus_error done
4149                    ; # Wait for a byte to arrive.
4150                    ; line_number = 127
4151                    ;  _adden := _false
4152                    ;info   127, 519
4153 0207 1198          bcf     _adden___byte, _adden___bit
4154                    ; line_number = 128
4155                    ;  while !_rcif start
4156   0208 :   rb2bus_byte_get__1:
4157                    ;info   128, 520
4158                    ; =>bit_code_emit@symbol(): sym=_rcif
4159                    ; No 1TEST: true.size=0 false.size=2
4160                    ; No 2TEST: true.size=0 false.size=2
4161                    ; 1GOTO: Single test with GOTO
4162 0208 1a8c          btfsc   _rcif___byte, _rcif___bit
4163 0209 2a0c          goto    rb2bus_byte_get__2
4164                    ; line_number = 129
4165                    ; call wait()
4166                    ;info   129, 522
4167 020a 213e          call    wait
4168            
4169 020b 2a08          goto    rb2bus_byte_get__1
4170   020c :   rb2bus_byte_get__2:
4171                    ; Recombine size1 = 0 || size2 = 0
4172                    ; line_number = 128
4173                    ;  while !_rcif done
4174                    ; # Record the 9th bit in {address_bit}:
4175                    ; line_number = 132
4176                    ;  address_bit := _false
4177                    ;info   132, 524
4178 020c 11ef          bcf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4179                    ; line_number = 133
4180                    ;  if _rx9d start
4181                    ;info   133, 525
4182                    ; =>bit_code_emit@symbol(): sym=_rx9d
4183                    ; 1TEST: Single test with code in skip slot
4184 020d 1818          btfsc   _rx9d___byte, _rx9d___bit
4185                    ; line_number = 134
4186                    ; address_bit := _true
4187                    ;info   134, 526
4188 020e 15ef          bsf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4189                    ; Recombine size1 = 0 || size2 = 0
4190                    ; line_number = 133
4191                    ;  if _rx9d done
4192                    ; line_number = 135
4193                    ; value := _rcreg
4194                    ;info   135, 527
4195 020f 081a          movf    _rcreg,w
4196 0210 00a7          movwf   rb2bus_byte_get__value
4197            
4198                    ; # Clear any errors by toggling _{cren}:
4199                    ; # FIXME: All of this should be done *before* reading {_rcreg}!!!
4200                    ; line_number = 139
4201                    ;  if _oerr start
4202                    ;info   139, 529
4203                    ; =>bit_code_emit@symbol(): sym=_oerr
4204                    ; 1TEST: Single test with code in skip slot
4205 0211 1898          btfsc   _oerr___byte, _oerr___bit
4206                    ; line_number = 140
4207                    ; _cren := _false
4208                    ;info   140, 530
4209 0212 1218          bcf     _cren___byte, _cren___bit
4210                    ; Recombine size1 = 0 || size2 = 0
4211                    ; line_number = 139
4212                    ;  if _oerr done
4213                    ; line_number = 141
4214                    ; if _ferr start
4215                    ;info   141, 531
4216                    ; =>bit_code_emit@symbol(): sym=_ferr
4217                    ; 1TEST: Single test with code in skip slot
4218 0213 1918          btfsc   _ferr___byte, _ferr___bit
4219                    ; line_number = 142
4220                    ; _cren := _false
4221                    ;info   142, 532
4222 0214 1218          bcf     _cren___byte, _cren___bit
4223                    ; Recombine size1 = 0 || size2 = 0
4224                    ; line_number = 141
4225                    ; if _ferr done
4226                    ; line_number = 143
4227                    ; _cren := _true
4228                    ;info   143, 533
4229 0215 1618          bsf     _cren___byte, _cren___bit
4230            
4231                    ; line_number = 145
4232                    ;  if address_bit start
4233                    ;info   145, 534
4234                    ; =>bit_code_emit@symbol(): sym=rb2bus_byte_get__address_bit
4235                    ; No 1TEST: true.size=13 false.size=0
4236                    ; No 2TEST: true.size=13 false.size=0
4237                    ; 1GOTO: Single test with GOTO
4238 0216 1def          btfss   rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4239 0217 2a25          goto    rb2bus_byte_get__5
4240                    ; # We have an unexpected address select coming in:
4241                    ; line_number = 147
4242                    ;  if value = rb2bus_address start
4243                    ;info   147, 536
4244                    ; Left minus Right
4245 0218 0820          movf    rb2bus_address,w
4246 0219 0227          subwf   rb2bus_byte_get__value,w
4247                    ; =>bit_code_emit@symbol(): sym=__z
4248                    ; No 1TEST: true.size=4 false.size=2
4249                    ; No 2TEST: true.size=4 false.size=2
4250                    ; 2GOTO: Single test with two GOTO's
4251 021a 1d03          btfss   __z___byte, __z___bit
4252 021b 2a21          goto    rb2bus_byte_get__3
4253                    ; # We are being selected again:
4254                    ; line_number = 149
4255                    ;  rb2bus_selected := _true
4256                    ;info   149, 540
4257 021c 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
4258                    ; line_number = 150
4259                    ;  _adden := _false
4260                    ;info   150, 541
4261 021d 1198          bcf     _adden___byte, _adden___bit
4262            
4263                    ; line_number = 152
4264                    ;  call rb2bus_byte_put(rb2_ok)
4265                    ;info   152, 542
4266 021e 30a5          movlw   165
4267 021f 2227          call    rb2bus_byte_put
4268                    ; Recombine code1_bit_states != code2_bit_states
4269 0220 2a23          goto    rb2bus_byte_get__4
4270                    ; 2GOTO: Starting code 2
4271   0221 :   rb2bus_byte_get__3:
4272                    ; # Somebody else is being selected; we deselect:
4273                    ; line_number = 155
4274                    ;  rb2bus_selected := _false
4275                    ;info   155, 545
4276 0221 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4277                    ; line_number = 156
4278                    ;  _adden := _true
4279                    ;info   156, 546
4280 0222 1598          bsf     _adden___byte, _adden___bit
4281            
4282   0223 :   rb2bus_byte_get__4:
4283                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4284                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4285                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4286                    ; line_number = 147
4287                    ;  if value = rb2bus_address done
4288                    ; # We want to get back to the beginning of decode:
4289                    ; line_number = 159
4290                    ;  rb2bus_error := _true
4291                    ;info   159, 547
4292 0223 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
4293                    ; line_number = 160
4294                    ;  value := 0
4295                    ;info   160, 548
4296 0224 01a7          clrf    rb2bus_byte_get__value
4297            
4298                    ; Recombine size1 = 0 || size2 = 0
4299   0225 :   rb2bus_byte_get__5:
4300                    ; line_number = 145
4301                    ;  if address_bit done
4302                    ; # Regular data byte:
4303                    ; line_number = 163
4304                    ;  return value start
4305                    ; line_number = 163
4306                    ;info   163, 549
4307 0225 0827          movf    rb2bus_byte_get__value,w
4308 0226 0008          return  
4309                    ; line_number = 163
4310                    ;  return value done
4311            
4312            
4313                    ; delay after procedure statements=non-uniform
4314            
4315            
4316            
4317            
4318                    ; line_number = 166
4319                    ;info   166, 551
4320                    ; procedure rb2bus_byte_put
4321   0227 :   rb2bus_byte_put:
4322                    ; Last argument is sitting in W; save into argument variable
4323 0227 00a8          movwf   rb2bus_byte_put__value
4324                    ; delay=4294967295
4325                    ; line_number = 167
4326                    ; argument value byte
4327 00000028 = rb2bus_byte_put__value equ globals___0+8
4328                    ; line_number = 168
4329                    ;  returns_nothing
4330            
4331                    ; # This procedure will send {value} to the bus.  It automatically
4332                    ; # consumes the echo that is on the bus.  If {rb2bus_error} is
4333                    ; # set, this procedure does nothing.
4334            
4335                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
4336                    ; line_number = 174
4337                    ;  if !rb2bus_error start
4338                    ;info   174, 552
4339                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
4340                    ; No 1TEST: true.size=0 false.size=18
4341                    ; No 2TEST: true.size=0 false.size=18
4342                    ; 1GOTO: Single test with GOTO
4343 0228 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
4344 0229 2a3c          goto    rb2bus_byte_put__4
4345                    ; # Wait until {_txreg} is ready for a value:
4346                    ; line_number = 176
4347                    ;  while !_txif start
4348   022a :   rb2bus_byte_put__1:
4349                    ;info   176, 554
4350                    ; =>bit_code_emit@symbol(): sym=_txif
4351                    ; No 1TEST: true.size=0 false.size=2
4352                    ; No 2TEST: true.size=0 false.size=2
4353                    ; 1GOTO: Single test with GOTO
4354 022a 1a0c          btfsc   _txif___byte, _txif___bit
4355 022b 2a2e          goto    rb2bus_byte_put__2
4356                    ; line_number = 177
4357                    ; call wait()
4358                    ;info   177, 556
4359 022c 213e          call    wait
4360            
4361 022d 2a2a          goto    rb2bus_byte_put__1
4362   022e :   rb2bus_byte_put__2:
4363                    ; Recombine size1 = 0 || size2 = 0
4364                    ; line_number = 176
4365                    ;  while !_txif done
4366                    ; # Ship {value} out to the bus with 9th bit turned off:
4367                    ; line_number = 180
4368                    ;  _adden := _false
4369                    ;info   180, 558
4370 022e 1198          bcf     _adden___byte, _adden___bit
4371                    ; line_number = 181
4372                    ;  _tx9d := _false
4373                    ;info   181, 559
4374 022f 1683          bsf     __rp0___byte, __rp0___bit
4375 0230 1018          bcf     _tx9d___byte, _tx9d___bit
4376                    ; line_number = 182
4377                    ;  _txreg := value
4378                    ;info   182, 561
4379 0231 1283          bcf     __rp0___byte, __rp0___bit
4380 0232 0828          movf    rb2bus_byte_put__value,w
4381 0233 0099          movwf   _txreg
4382            
4383                    ; # Wait for the echo to show up:
4384                    ; line_number = 185
4385                    ;  while !_rcif start
4386   0234 :   rb2bus_byte_put__3:
4387                    ;info   185, 564
4388                    ; =>bit_code_emit@symbol(): sym=_rcif
4389                    ; 1TEST: Single test with code in skip slot
4390 0234 1e8c          btfss   _rcif___byte, _rcif___bit
4391                    ; # Still waiting:
4392 0235 2a34          goto    rb2bus_byte_put__3
4393                    ; Recombine size1 = 0 || size2 = 0
4394                    ; line_number = 185
4395                    ;  while !_rcif done
4396                    ; # Throw the received byte away (store into {_w}).
4397                    ; line_number = 188
4398                    ;  assemble
4399                    ;info   188, 566
4400                    ; line_number = 189
4401                    ;info   189, 566
4402 0236 081a          movf    _rcreg,w
4403            
4404                    ; # Recover from any receive errors by toggling {_cren}:
4405                    ; line_number = 192
4406                    ;  if _oerr start
4407                    ;info   192, 567
4408                    ; =>bit_code_emit@symbol(): sym=_oerr
4409                    ; 1TEST: Single test with code in skip slot
4410 0237 1898          btfsc   _oerr___byte, _oerr___bit
4411                    ; line_number = 193
4412                    ; _cren := _false
4413                    ;info   193, 568
4414 0238 1218          bcf     _cren___byte, _cren___bit
4415                    ; Recombine size1 = 0 || size2 = 0
4416                    ; line_number = 192
4417                    ;  if _oerr done
4418                    ; line_number = 194
4419                    ; if _ferr start
4420                    ;info   194, 569
4421                    ; =>bit_code_emit@symbol(): sym=_ferr
4422                    ; 1TEST: Single test with code in skip slot
4423 0239 1918          btfsc   _ferr___byte, _ferr___bit
4424                    ; line_number = 195
4425                    ; _cren := _false
4426                    ;info   195, 570
4427 023a 1218          bcf     _cren___byte, _cren___bit
4428                    ; Recombine size1 = 0 || size2 = 0
4429                    ; line_number = 194
4430                    ; if _ferr done
4431                    ; line_number = 196
4432                    ; _cren := _true
4433                    ;info   196, 571
4434 023b 1618          bsf     _cren___byte, _cren___bit
4435            
4436            
4437   023c :   rb2bus_byte_put__4:
4438                    ; Recombine size1 = 0 || size2 = 0
4439                    ; line_number = 174
4440                    ;  if !rb2bus_error done
4441                    ; delay after procedure statements=non-uniform
4442                    ; Implied return
4443 023c 3400          retlw   0
4444            
4445            
4446            
4447            
4448                    ; line_number = 199
4449                    ;info   199, 573
4450                    ; procedure rb2bus_command
4451   023d :   rb2bus_command:
4452                    ; Last argument is sitting in W; save into argument variable
4453 023d 00ab          movwf   rb2bus_command__command
4454                    ; delay=4294967295
4455                    ; line_number = 200
4456                    ; argument command byte
4457 0000002b = rb2bus_command__command equ globals___0+11
4458                    ; line_number = 201
4459                    ;  returns_nothing
4460            
4461                    ; # This procedure will process an shared {command}.  This procedure
4462                    ; # accesses the global string {id}.
4463            
4464                    ; line_number = 206
4465                    ;  local new_address byte
4466 00000029 = rb2bus_command__new_address equ globals___0+9
4467                    ; line_number = 207
4468                    ;  local temp byte
4469 0000002a = rb2bus_command__temp equ globals___0+10
4470            
4471                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:00=uu=>00)
4472                    ; line_number = 209
4473                    ;  switch command & 7 start
4474                    ;info   209, 574
4475                    ; switch_before:(data:00=uu=>00 code:00=uu=>00) size=1
4476 023e 3002          movlw   rb2bus_command__13>>8
4477 023f 008a          movwf   __pclath
4478 0240 3007          movlw   7
4479 0241 052b          andwf   rb2bus_command__command,w
4480                    ; switch after expression:(data:00=uu=>00 code:00=uu=>00)
4481 0242 3e44          addlw   rb2bus_command__13
4482 0243 0082          movwf   __pcl
4483                    ; page_group 8
4484   0244 :   rb2bus_command__13:
4485 0244 2a84          goto    rb2bus_command__14
4486 0245 2a84          goto    rb2bus_command__14
4487 0246 2a84          goto    rb2bus_command__14
4488 0247 2a84          goto    rb2bus_command__14
4489 0248 2a4c          goto    rb2bus_command__9
4490 0249 2a78          goto    rb2bus_command__10
4491 024a 2a81          goto    rb2bus_command__11
4492 024b 2a83          goto    rb2bus_command__12
4493                    ; line_number = 210
4494                    ; case 4
4495   024c :   rb2bus_command__9:
4496                    ; # 1111 1100 (Address_Set):
4497                    ; # Return old address:
4498                    ; line_number = 213
4499                    ;  call rb2bus_byte_put(rb2bus_address)
4500                    ;info   213, 588
4501 024c 0820          movf    rb2bus_address,w
4502 024d 2227          call    rb2bus_byte_put
4503            
4504                    ; # Fetch new address:
4505                    ; line_number = 216
4506                    ;  new_address := rb2bus_byte_get()
4507                    ;info   216, 590
4508 024e 2205          call    rb2bus_byte_get
4509 024f 00a9          movwf   rb2bus_command__new_address
4510                    ; line_number = 217
4511                    ;  if new_address = 0 || new_address = rb2bus_address start
4512                    ;info   217, 592
4513                    ; Left minus Right
4514 0250 0829          movf    rb2bus_command__new_address,w
4515                    ; =>bit_code_emit@symbol(): sym=__z
4516                    ; No 1TEST: true.size=1 false.size=36
4517                    ; No 2TEST: true.size=1 false.size=36
4518                    ; 2GOTO: Single test with two GOTO's
4519 0251 1903          btfsc   __z___byte, __z___bit
4520 0252 2a57          goto    rb2bus_command__5
4521                    ; Recombine code1_bit_states != code2_bit_states
4522                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4523                    ; Left minus Right
4524 0253 0820          movf    rb2bus_address,w
4525 0254 0229          subwf   rb2bus_command__new_address,w
4526                    ; =>bit_code_emit@symbol(): sym=__z
4527                    ; No 1TEST: true.size=4 false.size=27
4528                    ; No 2TEST: true.size=4 false.size=27
4529                    ; 2GOTO: Single test with two GOTO's
4530 0255 1d03          btfss   __z___byte, __z___bit
4531 0256 2a5c          goto    rb2bus_command__6
4532   0257 :   rb2bus_command__5:
4533                    ; line_number = 218
4534                    ; call rb2bus_byte_put(0)
4535                    ;info   218, 599
4536 0257 3000          movlw   0
4537 0258 2227          call    rb2bus_byte_put
4538                    ; line_number = 219
4539                    ;  rb2bus_error := _true
4540                    ;info   219, 601
4541 0259 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
4542                    ; line_number = 220
4543                    ;  rb2bus_selected := _false
4544                    ;info   220, 602
4545 025a 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4546 025b 2a77          goto    rb2bus_command__7
4547                    ; 2GOTO: Starting code 2
4548   025c :   rb2bus_command__6:
4549                    ; # Return new address:
4550                    ; line_number = 223
4551                    ;  call rb2bus_byte_put(new_address)
4552                    ;info   223, 604
4553 025c 0829          movf    rb2bus_command__new_address,w
4554 025d 2227          call    rb2bus_byte_put
4555            
4556                    ; # Fetch new address again as a check:
4557                    ; line_number = 226
4558                    ;  temp := rb2bus_byte_get()
4559                    ;info   226, 606
4560 025e 2205          call    rb2bus_byte_get
4561 025f 00aa          movwf   rb2bus_command__temp
4562                    ; line_number = 227
4563                    ;  if temp != new_address start
4564                    ;info   227, 608
4565                    ; Left minus Right
4566 0260 0829          movf    rb2bus_command__new_address,w
4567 0261 022a          subwf   rb2bus_command__temp,w
4568                    ; =>bit_code_emit@symbol(): sym=__z
4569                    ; No 1TEST: true.size=14 false.size=4
4570                    ; No 2TEST: true.size=14 false.size=4
4571                    ; 2GOTO: Single test with two GOTO's
4572 0262 1d03          btfss   __z___byte, __z___bit
4573 0263 2a73          goto    rb2bus_command__3
4574                    ; line_number = 232
4575                    ; call rb2bus_eedata_write(new_address)
4576                    ;info   232, 612
4577 0264 0829          movf    rb2bus_command__new_address,w
4578 0265 21bd          call    rb2bus_eedata_write
4579                    ; line_number = 233
4580                    ;  temp := rb2bus_eedata_read()
4581                    ;info   233, 614
4582 0266 21a2          call    rb2bus_eedata_read
4583 0267 00aa          movwf   rb2bus_command__temp
4584                    ; line_number = 234
4585                    ;  if temp = new_address start
4586                    ;info   234, 616
4587                    ; Left minus Right
4588 0268 0829          movf    rb2bus_command__new_address,w
4589 0269 022a          subwf   rb2bus_command__temp,w
4590                    ; =>bit_code_emit@symbol(): sym=__z
4591                    ; No 1TEST: true.size=3 false.size=1
4592                    ; No 2TEST: true.size=3 false.size=1
4593                    ; 2GOTO: Single test with two GOTO's
4594 026a 1d03          btfss   __z___byte, __z___bit
4595 026b 2a70          goto    rb2bus_command__1
4596                    ; line_number = 235
4597                    ; rb2bus_address := new_address
4598                    ;info   235, 620
4599 026c 0829          movf    rb2bus_command__new_address,w
4600 026d 00a0          movwf   rb2bus_address
4601                    ; line_number = 236
4602                    ;  call rb2bus_byte_put(rb2_ok)
4603                    ;info   236, 622
4604 026e 30a5          movlw   165
4605 026f 2a71          goto    rb2bus_command__2
4606                    ; 2GOTO: Starting code 2
4607   0270 :   rb2bus_command__1:
4608                    ; line_number = 238
4609                    ; call rb2bus_byte_put(0)
4610                    ;info   238, 624
4611 0270 3000          movlw   0
4612   0271 :   rb2bus_command__2:
4613                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4614                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4615                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4616 0271 2227          call    rb2bus_byte_put
4617                    ; line_number = 234
4618                    ;  if temp = new_address done
4619 0272 2a77          goto    rb2bus_command__4
4620                    ; 2GOTO: Starting code 2
4621   0273 :   rb2bus_command__3:
4622                    ; line_number = 228
4623                    ; call rb2bus_byte_put(0)
4624                    ;info   228, 627
4625 0273 3000          movlw   0
4626 0274 2227          call    rb2bus_byte_put
4627                    ; line_number = 229
4628                    ;  rb2bus_error := _true
4629                    ;info   229, 629
4630 0275 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
4631                    ; line_number = 230
4632                    ;  rb2bus_selected := _false
4633                    ;info   230, 630
4634 0276 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4635   0277 :   rb2bus_command__4:
4636                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4637                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4638                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4639                    ; line_number = 227
4640                    ;  if temp != new_address done
4641   0277 :   rb2bus_command__7:
4642                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4643                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4644                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4645                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4646                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4647                    ; 2GOTO: No goto needed; true=rb2bus_command__5 false= true_size=1 false_size=36
4648                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:00=uu=>00)
4649                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:00=uu=>00)
4650                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:00=uu=>00)
4651                    ; line_number = 217
4652                    ;  if new_address = 0 || new_address = rb2bus_address done
4653 0277 2a84          goto    rb2bus_command__14
4654                    ; line_number = 239
4655                    ; case 5
4656   0278 :   rb2bus_command__10:
4657                    ; # 1111 1101 (Id_next):
4658                    ; line_number = 241
4659                    ;  if rb2bus_index < id.size start
4660                    ;info   241, 632
4661 0278 3016          movlw   22
4662 0279 0221          subwf   rb2bus_index,w
4663                    ; =>bit_code_emit@symbol(): sym=__c
4664                    ; No 1TEST: true.size=0 false.size=4
4665                    ; No 2TEST: true.size=0 false.size=4
4666                    ; 1GOTO: Single test with GOTO
4667 027a 1803          btfsc   __c___byte, __c___bit
4668 027b 2a80          goto    rb2bus_command__8
4669                    ; line_number = 242
4670                    ; call rb2bus_byte_put(id[rb2bus_index])
4671                    ;info   242, 636
4672 027c 0821          movf    rb2bus_index,w
4673 027d 216e          call    id
4674 027e 2227          call    rb2bus_byte_put
4675                    ; line_number = 243
4676                    ;  rb2bus_index := rb2bus_index + 1
4677                    ;info   243, 639
4678 027f 0aa1          incf    rb2bus_index,f
4679                    ; #if rb2bus_index >= id.size
4680                    ; #	rb2bus_index := rb2bus_index - 1
4681   0280 :   rb2bus_command__8:
4682                    ; Recombine size1 = 0 || size2 = 0
4683                    ; line_number = 241
4684                    ;  if rb2bus_index < id.size done
4685 0280 2a84          goto    rb2bus_command__14
4686                    ; line_number = 246
4687                    ; case 6
4688   0281 :   rb2bus_command__11:
4689                    ; # 1111 1110 (Id_start):
4690                    ; line_number = 248
4691                    ;  rb2bus_index := 0
4692                    ;info   248, 641
4693 0281 01a1          clrf    rb2bus_index
4694 0282 2a84          goto    rb2bus_command__14
4695                    ; line_number = 249
4696                    ; case 7
4697   0283 :   rb2bus_command__12:
4698                    ; # 1111 1111 (Deselect):
4699                    ; line_number = 251
4700                    ;  call rb2bus_deselect()
4701                    ;info   251, 643
4702 0283 2203          call    rb2bus_deselect
4703            
4704            
4705   0284 :   rb2bus_command__14:
4706                    ; line_number = 209
4707                    ;  switch command & 7 done
4708                    ; delay after procedure statements=non-uniform
4709                    ; Implied return
4710 0284 3400          retlw   0
4711            
4712            
4713            
4714            
4715                    ; Code bank 1; Start address: 2048; End address: 4095
4716   0800 :           org     2048
4717                    ; Code bank 2; Start address: 4096; End address: 6143
4718   1000 :           org     4096
4719                    ; Code bank 3; Start address: 6144; End address: 8191
4720   1800 :           org     6144
4721                    ; Configuration bits
4722                    ; address = 0x2007, fill = 0x1030
4723                    ; cp = off (0x2000)
4724                    ; debug = off (0x800)
4725                    ; wrt = off (0x300)
4726                    ; cpd = off (0x100)
4727                    ; lvp = off (0x0)
4728                    ; boren = off (0x0)
4729                    ; pwrte = off (0x8)
4730                    ; wdte = off (0x0)
4731                    ; fosc = hs (0x2)
4732                    ; 15162 = 0x3b3a
4733   3b3a =           __config 15162
4734                    ; Define start addresses for data regions
4735                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
4736                    ; Region="globals___0" Address=32" Size=80 Bytes=21 Bits=4 Available=58
4737                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
4738                    ; Region="globals___2" Address=272" Size=96 Bytes=0 Bits=0 Available=96
4739                    ; Region="globals___3" Address=400" Size=112 Bytes=0 Bits=0 Available=112
4740                    end
