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