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    00000120 = globals___2 equ 288
10   00000000 = __indf equ 0
11   00000002 = __pcl equ 2
12   00000003 = __status equ 3
13   00000004 = __fsr equ 4
14   00000003 = __c___byte equ 3
15   00000000 = __c___bit equ 0
16   00000003 = __z___byte equ 3
17   00000002 = __z___bit equ 2
18   00000003 = __rp0___byte equ 3
19   00000005 = __rp0___bit equ 5
20   00000003 = __rp1___byte equ 3
21   00000006 = __rp1___bit equ 6
22   00000003 = __irp___byte equ 3
23   00000007 = __irp___bit equ 7
24   0000000a = __pclath equ 10
25   0000000a = __cb0___byte equ 10
26   00000003 = __cb0___bit equ 3
27   0000000a = __cb1___byte equ 10
28   00000004 = __cb1___bit equ 4
29              
30                      ; # Copyright (c) 2005-2008 by Wayne C. Gramlich
31                      ; # All rights reserved.
32              
33                      ; # This module uses a PIC16F688:
34                      ; buffer = 'io8'
35                      ; line_number = 7
36                      ; library _pic16f688 entered
37              
38                      ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
39                      ; # All rights reserved.
40              
41                      ; buffer = '_pic16f688'
42                      ; line_number = 6
43                      ; processor pic16f688
44                      ; line_number = 7
45                      ; configure_address 0x2007
46                      ; line_number = 8
47                      ;  configure_fill 0x3000
48                      ; line_number = 9
49                      ;  configure_option fcmen: on = 0x800
50                      ; line_number = 10
51                      ;  configure_option fcmen: off = 0x000
52                      ; line_number = 11
53                      ;  configure_option ieso: on = 0x400
54                      ; line_number = 12
55                      ;  configure_option ieso: off = 0x000
56                      ; line_number = 13
57                      ;  configure_option boden: on = 0x300
58                      ; line_number = 14
59                      ;  configure_option boden: partial = 0x200
60                      ; line_number = 15
61                      ;  configure_option boden: sboden = 0x100
62                      ; line_number = 16
63                      ;  configure_option boden: off = 0x000
64                      ; line_number = 17
65                      ;  configure_option cpd: on = 0x00
66                      ; line_number = 18
67                      ;  configure_option cpd: off = 0x80
68                      ; line_number = 19
69                      ;  configure_option cp: on = 0x00
70                      ; line_number = 20
71                      ;  configure_option cp: off = 0x40
72                      ; line_number = 21
73                      ;  configure_option mclre: on = 0x20
74                      ; line_number = 22
75                      ;  configure_option mclre: off = 0x00
76                      ; line_number = 23
77                      ;  configure_option pwrte: on = 0x00
78                      ; line_number = 24
79                      ;  configure_option pwrte: off = 0x10
80                      ; line_number = 25
81                      ;  configure_option wdte: on = 8
82                      ; line_number = 26
83                      ;  configure_option wdte: off = 0
84                      ; line_number = 27
85                      ;  configure_option fosc: rc_clk = 7
86                      ; line_number = 28
87                      ;  configure_option fosc: rc_no_clk = 6
88                      ; line_number = 29
89                      ;  configure_option fosc: int_clk = 5
90                      ; line_number = 30
91                      ;  configure_option fosc: int_no_clk = 4
92                      ; line_number = 31
93                      ;  configure_option fosc: ec = 3
94                      ; line_number = 32
95                      ;  configure_option fosc: hs = 2
96                      ; line_number = 33
97                      ;  configure_option fosc: xt = 1
98                      ; line_number = 34
99                      ;  configure_option fosc: lp = 0
100             
101                     ; line_number = 36
102                     ;  code_bank 0x0 : 0x7ff
103                     ; line_number = 37
104                     ;  code_bank 0x800 : 0xfff
105                     ; line_number = 38
106                     ;  data_bank 0x0 : 0x7f
107                     ; line_number = 39
108                     ;  data_bank 0x80 : 0xff
109                     ; line_number = 40
110                     ;  data_bank 0x100 : 0x17f
111                     ; line_number = 41
112                     ;  data_bank 0x180 : 0x1ff
113             
114                     ; line_number = 43
115                     ;  global_region 0x20 : 0x6f
116                     ; line_number = 44
117                     ;  icd2_global_region 0x20 : 0x6f
118             
119                     ; line_number = 46
120                     ;  global_region 0xa0 : 0xef
121                     ; line_number = 47
122                     ;  icd2_global_region 0xa0 : 0xef
123             
124                     ; line_number = 49
125                     ;  global_region 0x120 : 0x16f
126                     ; line_number = 50
127                     ;  icd2_global_region 0x120 : 0x164
128             
129                     ; line_number = 52
130                     ;  shared_region 0x70 : 0x7f
131                     ; line_number = 53
132                     ;  icd2_shared_region 0x71 : 0x7f
133             
134                     ; line_number = 55
135                     ;  interrupts_possible
136                     ; line_number = 56
137                     ;  packages pdip=14, soic=14, tssop=14
138                     ; line_number = 57
139                     ;  pin vdd, power_supply
140                     ; line_number = 58
141                     ; pin_bindings pdip=1, soic=1, tssop=1
142                     ; line_number = 59
143                     ; pin ra5_in, ra5_nc, ra5_out, t1cki, osc1, clkin
144                     ; line_number = 60
145                     ; pin_bindings pdip=2, soic=2, tssop=2
146                     ; line_number = 61
147                     ;  bind_to _porta@5
148                     ; line_number = 62
149                     ;  or_if ra5_in _trisa 32
150                     ; line_number = 63
151                     ;  or_if ra5_nc _trisa 32
152                     ; line_number = 64
153                     ;  or_if ra5_out _trisa 0
154                     ; line_number = 65
155                     ;  or_if osc1 _trisa 32
156                     ; line_number = 66
157                     ; pin ra4_in, ra4_nc, ra4_out, t1g, osc2, an3, clkout
158                     ; line_number = 67
159                     ; pin_bindings pdip=3, soic=3, tssop=3
160                     ; line_number = 68
161                     ;  bind_to _porta@4
162                     ; line_number = 69
163                     ;  or_if ra4_in _trisa 16
164                     ; line_number = 70
165                     ;  or_if ra4_nc _trisa 16
166                     ; line_number = 71
167                     ;  or_if ra4_out _trisa 0
168                     ; line_number = 72
169                     ;  or_if an3 _trisa 16
170                     ; line_number = 73
171                     ;  or_if osc2 _trisa 16
172                     ; line_number = 74
173                     ;  or_if ra4_in _ansel 0
174                     ; line_number = 75
175                     ;  or_if ra4_out _ansel 0
176                     ; line_number = 76
177                     ;  or_if an3 _ansel 8
178                     ; line_number = 77
179                     ;  or_if ra4_in _adcon0 0
180                     ; line_number = 78
181                     ;  or_if ra4_out _adcon0 0
182                     ; line_number = 79
183                     ;  or_if an3 _adcon0 1
184                     ; line_number = 80
185                     ; pin ra3_in, ra3_nc, mclr, vpp
186                     ; line_number = 81
187                     ; pin_bindings pdip=4, soic=4, tssop=4
188                     ; line_number = 82
189                     ;  bind_to _porta@3
190                     ; line_number = 83
191                     ;  or_if ra3_in _trisa 8
192                     ; line_number = 84
193                     ;  or_if ra3_nc _trisa 8
194                     ; line_number = 85
195                     ; pin rc5_in, rc5_nc, rc5_out, rx, dt
196                     ; line_number = 86
197                     ; pin_bindings pdip=5, soic=5, tssop=5
198                     ; line_number = 87
199                     ;  bind_to _portc@5
200                     ; line_number = 88
201                     ;  or_if rc5_in _trisc 32
202                     ; line_number = 89
203                     ;  or_if rc5_nc _trisc 32
204                     ; line_number = 90
205                     ;  or_if rc5_out _trisc 0
206                     ; line_number = 91
207                     ;  or_if rx _trisc 32
208                     ; line_number = 92
209                     ; pin rc4_in, rc4_nc, rc4_out, c2out, tx, ck
210                     ; line_number = 93
211                     ; pin_bindings pdip=6, soic=6, tssop=6
212                     ; line_number = 94
213                     ;  bind_to _portc@4
214                     ; line_number = 95
215                     ;  or_if rc4_in _trisc 16
216                     ; line_number = 96
217                     ;  or_if rc4_nc _trisc 16
218                     ; line_number = 97
219                     ;  or_if rc4_out _trisc 0
220                     ; # The UART documentation says TX must be marked as in input:
221                     ; line_number = 99
222                     ;  or_if tx _trisc 16
223                     ; line_number = 100
224                     ; pin rc3_in, rc3_nc, rc3_out, an7
225                     ; line_number = 101
226                     ; pin_bindings pdip=7, soic=7, tssop=7
227                     ; line_number = 102
228                     ;  bind_to _portc@3
229                     ; line_number = 103
230                     ;  or_if rc3_in _trisc 8
231                     ; line_number = 104
232                     ;  or_if rc3_nc _trisc 8
233                     ; line_number = 105
234                     ;  or_if rc3_out _trisc 0
235                     ; line_number = 106
236                     ;  or_if an7 _trisc 8
237                     ; line_number = 107
238                     ;  or_if rc3_in _ansel 0
239                     ; line_number = 108
240                     ;  or_if rc3_out _ansel 0
241                     ; line_number = 109
242                     ;  or_if an7 _ansel 128
243                     ; line_number = 110
244                     ;  or_if rc3_in _adcon0 0
245                     ; line_number = 111
246                     ;  or_if rc3_out _adcon0 0
247                     ; line_number = 112
248                     ;  or_if an7 _adcon0 1
249                     ; line_number = 113
250                     ; pin rc2_in, rc2_nc, rc2_out, an6
251                     ; line_number = 114
252                     ; pin_bindings pdip=8, soic=8, tssop=8
253                     ; line_number = 115
254                     ;  bind_to _portc@2
255                     ; line_number = 116
256                     ;  or_if rc2_in _trisc 4
257                     ; line_number = 117
258                     ;  or_if rc2_nc _trisc 4
259                     ; line_number = 118
260                     ;  or_if rc2_out _trisc 0
261                     ; line_number = 119
262                     ;  or_if an6 _trisc 4
263                     ; line_number = 120
264                     ;  or_if rc2_in _ansel 0
265                     ; line_number = 121
266                     ;  or_if rc2_out _ansel 0
267                     ; line_number = 122
268                     ;  or_if an6 _ansel 64
269                     ; line_number = 123
270                     ;  or_if rc2_in _adcon0 0
271                     ; line_number = 124
272                     ;  or_if rc2_out _adcon0 0
273                     ; line_number = 125
274                     ;  or_if an6 _adcon0 1
275                     ; line_number = 126
276                     ; pin rc1_in, rc1_nc, rc1_out, an5, c2in_minus
277                     ; line_number = 127
278                     ; pin_bindings pdip=9, soic=9, tssop=9
279                     ; line_number = 128
280                     ;  bind_to _portc@1
281                     ; line_number = 129
282                     ;  or_if rc1_in _trisc 2
283                     ; line_number = 130
284                     ;  or_if rc1_nc _trisc 2
285                     ; line_number = 131
286                     ;  or_if rc1_out _trisc 0
287                     ; line_number = 132
288                     ;  or_if rc1_in _cmcon0 7
289                     ; line_number = 133
290                     ;  or_if rc1_out _cmcon0 7
291                     ; line_number = 134
292                     ;  or_if an5 _trisc 2
293                     ; line_number = 135
294                     ;  or_if rc1_in _ansel 0
295                     ; line_number = 136
296                     ;  or_if rc1_out _ansel 0
297                     ; line_number = 137
298                     ;  or_if an5 _ansel 32
299                     ; line_number = 138
300                     ;  or_if rc1_in _adcon0 0
301                     ; line_number = 139
302                     ;  or_if rc1_out _adcon0 0
303                     ; line_number = 140
304                     ;  or_if an5 _adcon0 1
305                     ; line_number = 141
306                     ; pin rc0_in, rc0_nc, rc0_out, an4, c2in_plus
307                     ; line_number = 142
308                     ; pin_bindings pdip=10, soic=10, tssop=10
309                     ; line_number = 143
310                     ;  bind_to _portc@0
311                     ; line_number = 144
312                     ;  or_if rc0_in _trisc 1
313                     ; line_number = 145
314                     ;  or_if rc0_nc _trisc 1
315                     ; line_number = 146
316                     ;  or_if rc0_out _trisc 0
317                     ; line_number = 147
318                     ;  or_if rc0_in _cmcon0 7
319                     ; line_number = 148
320                     ;  or_if rc0_out _cmcon0 7
321                     ; line_number = 149
322                     ;  or_if an4 _trisc 1
323                     ; line_number = 150
324                     ;  or_if rc0_in _ansel 0
325                     ; line_number = 151
326                     ;  or_if rc0_out _ansel 0
327                     ; line_number = 152
328                     ;  or_if an4 _ansel 16
329                     ; line_number = 153
330                     ;  or_if rc0_in _adcon0 0
331                     ; line_number = 154
332                     ;  or_if rc0_out _adcon0 0
333                     ; line_number = 155
334                     ;  or_if an4 _adcon0 1
335                     ; line_number = 156
336                     ; pin ra2_in, ra2_nc, ra2_out, an2, c1out, t0cki, int
337                     ; line_number = 157
338                     ; pin_bindings pdip=11, soic=11, tssop=11
339                     ; line_number = 158
340                     ;  bind_to _porta@2
341                     ; line_number = 159
342                     ;  or_if ra2_in _trisa 4
343                     ; line_number = 160
344                     ;  or_if ra2_nc _trisa 4
345                     ; line_number = 161
346                     ;  or_if ra2_out _trisa 0
347                     ; line_number = 162
348                     ;  or_if an2 _trisa 4
349                     ; line_number = 163
350                     ;  or_if ra2_in _ansel 0
351                     ; line_number = 164
352                     ;  or_if ra2_out _ansel 0
353                     ; line_number = 165
354                     ;  or_if an2 _ansel 4
355                     ; line_number = 166
356                     ;  or_if ra2_in _adcon0 0
357                     ; line_number = 167
358                     ;  or_if ra2_out _adcon0 0
359                     ; line_number = 168
360                     ;  or_if an2 _adcon0 1
361                     ; line_number = 169
362                     ; pin ra1_in, ra1_nc, ra1_out, an1, c1in_minus, vref, icspclk
363                     ; line_number = 170
364                     ; pin_bindings pdip=12, soic=12, tssop=12
365                     ; line_number = 171
366                     ;  bind_to _porta@1
367                     ; line_number = 172
368                     ;  or_if ra1_in _trisa 2
369                     ; line_number = 173
370                     ;  or_if ra1_nc _trisa 2
371                     ; line_number = 174
372                     ;  or_if ra1_out _trisa 0
373                     ; line_number = 175
374                     ;  or_if ra1_in _cmcon0 7
375                     ; line_number = 176
376                     ;  or_if ra1_out _cmcon0 7
377                     ; line_number = 177
378                     ;  or_if an1 _trisa 2
379                     ; line_number = 178
380                     ;  or_if vref _trisa 2
381                     ; line_number = 179
382                     ;  or_if ra1_in _ansel 0
383                     ; line_number = 180
384                     ;  or_if ra1_out _ansel 0
385                     ; line_number = 181
386                     ;  or_if an1 _ansel 2
387                     ; line_number = 182
388                     ;  or_if vref _ansel 2
389                     ; line_number = 183
390                     ;  or_if ra1_in _adcon0 0
391                     ; line_number = 184
392                     ;  or_if ra1_out _adcon0 0
393                     ; line_number = 185
394                     ;  or_if an1 _adcon0 1		# Turn on _addon
395                     ; line_number = 186
396                     ;  or_if vref _adcon0 1		# Turn on _addon
397                     ; line_number = 187
398                     ;  or_if vref _adcon0 64		# Turn of _vcfg
399                     ; line_number = 188
400                     ; pin ra0_in, ra0_nc, ra0_out, an0, c1in_plus, icspdat, ulpwu
401                     ; line_number = 189
402                     ; pin_bindings pdip=13, soic=13, tssop=13
403                     ; line_number = 190
404                     ;  bind_to _porta@0
405                     ; line_number = 191
406                     ;  or_if ra0_in _trisa 1
407                     ; line_number = 192
408                     ;  or_if ra0_nc _trisa 1
409                     ; line_number = 193
410                     ;  or_if ra0_out _trisa 0
411                     ; line_number = 194
412                     ;  or_if ra0_in _cmcon0 7
413                     ; line_number = 195
414                     ;  or_if ra0_out _cmcon0 7
415                     ; line_number = 196
416                     ;  or_if an0 _trisa 1
417                     ; line_number = 197
418                     ;  or_if ra0_in _ansel 0
419                     ; line_number = 198
420                     ;  or_if ra0_out _ansel 0
421                     ; line_number = 199
422                     ;  or_if an0 _ansel 1
423                     ; line_number = 200
424                     ;  or_if ra0_in _adcon0 0
425                     ; line_number = 201
426                     ;  or_if ra0_out _adcon0 0
427                     ; line_number = 202
428                     ;  or_if an0 _adcon0 1
429                     ; line_number = 203
430                     ; pin vss, ground
431                     ; line_number = 204
432                     ; pin_bindings pdip=14, soic=14, tssop=14
433             
434                     ; line_number = 206
435                     ; library _standard entered
436             
437                     ; # Copyright (c) 2006 by Wayne C. Gramlich
438                     ; # All rights reserved.
439             
440                     ; # Standard definition for uCL:
441             
442                     ; buffer = '_standard'
443                     ; line_number = 8
444                     ; constant _true = (1 = 1)
445  00000001 = _true equ 1
446                     ; line_number = 9
447                     ; constant _false = (0 != 0)
448  00000000 = _false equ 0
449             
450             
451                     ; buffer = '_pic16f688'
452                     ; line_number = 206
453                     ; library _standard exited
454             
455             
456                     ; # Register/bit bindings:
457             
458                     ; # Databank 0 (0x0 - 0x7f):
459             
460                     ; line_number = 217
461                     ; register _indf = 
462  00000000 = _indf equ 0
463             
464                     ; line_number = 219
465                     ; register _tmr0 = 
466  00000001 = _tmr0 equ 1
467             
468                     ; line_number = 221
469                     ; register _pcl = 
470  00000002 = _pcl equ 2
471             
472                     ; line_number = 223
473                     ; register _status = 
474  00000003 = _status equ 3
475                     ; line_number = 224
476                     ; bind _irp = _status@7
477  00000003 = _irp___byte equ _status
478  00000007 = _irp___bit equ 7
479                     ; line_number = 225
480                     ; bind _rp1 = _status@5
481  00000003 = _rp1___byte equ _status
482  00000005 = _rp1___bit equ 5
483                     ; line_number = 226
484                     ; bind _rp0 = _status@5
485  00000003 = _rp0___byte equ _status
486  00000005 = _rp0___bit equ 5
487                     ; line_number = 227
488                     ; bind _to = _status@4
489  00000003 = _to___byte equ _status
490  00000004 = _to___bit equ 4
491                     ; line_number = 228
492                     ; bind _pd = _status@3
493  00000003 = _pd___byte equ _status
494  00000003 = _pd___bit equ 3
495                     ; line_number = 229
496                     ; bind _z = _status@2
497  00000003 = _z___byte equ _status
498  00000002 = _z___bit equ 2
499                     ; line_number = 230
500                     ; bind _dc = _status@1
501  00000003 = _dc___byte equ _status
502  00000001 = _dc___bit equ 1
503                     ; line_number = 231
504                     ; bind _c = _status@0
505  00000003 = _c___byte equ _status
506  00000000 = _c___bit equ 0
507             
508                     ; line_number = 233
509                     ; register _fsr = 
510  00000004 = _fsr equ 4
511             
512                     ; line_number = 235
513                     ; register _porta = 
514  00000005 = _porta equ 5
515                     ; line_number = 236
516                     ; register _ra = 
517  00000005 = _ra equ 5
518                     ; line_number = 237
519                     ; bind _ra5 = _porta@5
520  00000005 = _ra5___byte equ _porta
521  00000005 = _ra5___bit equ 5
522                     ; line_number = 238
523                     ; bind _ra4 = _porta@4
524  00000005 = _ra4___byte equ _porta
525  00000004 = _ra4___bit equ 4
526                     ; line_number = 239
527                     ; bind _ra3 = _porta@3
528  00000005 = _ra3___byte equ _porta
529  00000003 = _ra3___bit equ 3
530                     ; line_number = 240
531                     ; bind _ra2 = _porta@2
532  00000005 = _ra2___byte equ _porta
533  00000002 = _ra2___bit equ 2
534                     ; line_number = 241
535                     ; bind _ra1 = _porta@1
536  00000005 = _ra1___byte equ _porta
537  00000001 = _ra1___bit equ 1
538                     ; line_number = 242
539                     ; bind _ra0 = _porta@0
540  00000005 = _ra0___byte equ _porta
541  00000000 = _ra0___bit equ 0
542             
543                     ; line_number = 244
544                     ; register _portc = 
545  00000007 = _portc equ 7
546                     ; line_number = 245
547                     ; register _rc = 
548  00000007 = _rc equ 7
549                     ; line_number = 246
550                     ; bind _rc5 = _portc@5
551  00000007 = _rc5___byte equ _portc
552  00000005 = _rc5___bit equ 5
553                     ; line_number = 247
554                     ; bind _rc4 = _portc@4
555  00000007 = _rc4___byte equ _portc
556  00000004 = _rc4___bit equ 4
557                     ; line_number = 248
558                     ; bind _rc3 = _portc@3
559  00000007 = _rc3___byte equ _portc
560  00000003 = _rc3___bit equ 3
561                     ; line_number = 249
562                     ; bind _rc2 = _portc@2
563  00000007 = _rc2___byte equ _portc
564  00000002 = _rc2___bit equ 2
565                     ; line_number = 250
566                     ; bind _rc1 = _portc@1
567  00000007 = _rc1___byte equ _portc
568  00000001 = _rc1___bit equ 1
569                     ; line_number = 251
570                     ; bind _rc0 = _portc@0
571  00000007 = _rc0___byte equ _portc
572  00000000 = _rc0___bit equ 0
573             
574                     ; line_number = 253
575                     ; register _pclath = 
576  0000000a = _pclath equ 10
577             
578                     ; line_number = 255
579                     ; register _intcon = 
580  0000000b = _intcon equ 11
581                     ; line_number = 256
582                     ; bind _gie = _intcon@7
583  0000000b = _gie___byte equ _intcon
584  00000007 = _gie___bit equ 7
585                     ; line_number = 257
586                     ; bind _peie = _intcon@6
587  0000000b = _peie___byte equ _intcon
588  00000006 = _peie___bit equ 6
589                     ; line_number = 258
590                     ; bind _t0ie = _intcon@5
591  0000000b = _t0ie___byte equ _intcon
592  00000005 = _t0ie___bit equ 5
593                     ; line_number = 259
594                     ; bind _inte = _intcon@4
595  0000000b = _inte___byte equ _intcon
596  00000004 = _inte___bit equ 4
597                     ; line_number = 260
598                     ; bind _raie = _intcon@3
599  0000000b = _raie___byte equ _intcon
600  00000003 = _raie___bit equ 3
601                     ; line_number = 261
602                     ; bind _t0if = _intcon@2
603  0000000b = _t0if___byte equ _intcon
604  00000002 = _t0if___bit equ 2
605                     ; line_number = 262
606                     ; bind _intf = _intcon@1
607  0000000b = _intf___byte equ _intcon
608  00000001 = _intf___bit equ 1
609                     ; line_number = 263
610                     ; bind _raif = _intcon@0
611  0000000b = _raif___byte equ _intcon
612  00000000 = _raif___bit equ 0
613             
614                     ; line_number = 265
615                     ; register _pir1 = 
616  0000000c = _pir1 equ 12
617                     ; line_number = 266
618                     ; bind _eeif = _pir1@7
619  0000000c = _eeif___byte equ _pir1
620  00000007 = _eeif___bit equ 7
621                     ; line_number = 267
622                     ; bind _adif = _pir1@6
623  0000000c = _adif___byte equ _pir1
624  00000006 = _adif___bit equ 6
625                     ; line_number = 268
626                     ; bind _rcif = _pir1@5
627  0000000c = _rcif___byte equ _pir1
628  00000005 = _rcif___bit equ 5
629                     ; line_number = 269
630                     ; bind _c2if = _pir1@4
631  0000000c = _c2if___byte equ _pir1
632  00000004 = _c2if___bit equ 4
633                     ; line_number = 270
634                     ; bind _c1if = _pir1@3
635  0000000c = _c1if___byte equ _pir1
636  00000003 = _c1if___bit equ 3
637                     ; line_number = 271
638                     ; bind _osfif = _pir1@2
639  0000000c = _osfif___byte equ _pir1
640  00000002 = _osfif___bit equ 2
641                     ; line_number = 272
642                     ; bind _txif = _pir1@1
643  0000000c = _txif___byte equ _pir1
644  00000001 = _txif___bit equ 1
645                     ; line_number = 273
646                     ; bind _tmr1if = _pir1@0
647  0000000c = _tmr1if___byte equ _pir1
648  00000000 = _tmr1if___bit equ 0
649             
650                     ; line_number = 275
651                     ; register _tmr1l = 
652  0000000e = _tmr1l equ 14
653             
654                     ; line_number = 277
655                     ; register _tmr1h = 
656  0000000f = _tmr1h equ 15
657             
658                     ; line_number = 279
659                     ; register _t1con = 
660  00000010 = _t1con equ 16
661                     ; line_number = 280
662                     ; bind t1ginv = _t1con@7
663  00000010 = t1ginv___byte equ _t1con
664  00000007 = t1ginv___bit equ 7
665                     ; line_number = 281
666                     ; bind _tmr1ge = _t1con@6
667  00000010 = _tmr1ge___byte equ _t1con
668  00000006 = _tmr1ge___bit equ 6
669                     ; line_number = 282
670                     ; bind _t1ckps1 = _t1con@5
671  00000010 = _t1ckps1___byte equ _t1con
672  00000005 = _t1ckps1___bit equ 5
673                     ; line_number = 283
674                     ; bind _t1ckps0 = _t1con@4
675  00000010 = _t1ckps0___byte equ _t1con
676  00000004 = _t1ckps0___bit equ 4
677                     ; line_number = 284
678                     ; bind _t1oscen = _t1con@3
679  00000010 = _t1oscen___byte equ _t1con
680  00000003 = _t1oscen___bit equ 3
681                     ; line_number = 285
682                     ; bind _t1sync = _t1con@2
683  00000010 = _t1sync___byte equ _t1con
684  00000002 = _t1sync___bit equ 2
685                     ; line_number = 286
686                     ; bind _tmr1cs = _t1con@1
687  00000010 = _tmr1cs___byte equ _t1con
688  00000001 = _tmr1cs___bit equ 1
689                     ; line_number = 287
690                     ; bind _tmr1on = _t1con@0
691  00000010 = _tmr1on___byte equ _t1con
692  00000000 = _tmr1on___bit equ 0
693             
694                     ; line_number = 289
695                     ; register _baudctl = 
696  00000011 = _baudctl equ 17
697                     ; line_number = 290
698                     ; bind _abdovf = _baudctl@7
699  00000011 = _abdovf___byte equ _baudctl
700  00000007 = _abdovf___bit equ 7
701                     ; line_number = 291
702                     ; bind _rcidl = _baudctl@6
703  00000011 = _rcidl___byte equ _baudctl
704  00000006 = _rcidl___bit equ 6
705                     ; line_number = 292
706                     ; bind _sckp = _baudctl@4
707  00000011 = _sckp___byte equ _baudctl
708  00000004 = _sckp___bit equ 4
709                     ; line_number = 293
710                     ; bind _brg16 = _baudctl@3
711  00000011 = _brg16___byte equ _baudctl
712  00000003 = _brg16___bit equ 3
713                     ; line_number = 294
714                     ; bind _wue = _baudctl@1
715  00000011 = _wue___byte equ _baudctl
716  00000001 = _wue___bit equ 1
717                     ; line_number = 295
718                     ; bind _abden = _baudctl@0
719  00000011 = _abden___byte equ _baudctl
720  00000000 = _abden___bit equ 0
721             
722                     ; line_number = 297
723                     ; register _spbrgh = 
724  00000012 = _spbrgh equ 18
725             
726                     ; line_number = 299
727                     ; register _spbrg = 
728  00000013 = _spbrg equ 19
729             
730                     ; line_number = 301
731                     ; register _rcreg = 
732  00000014 = _rcreg equ 20
733             
734                     ; line_number = 303
735                     ; register _txreg = 
736  00000015 = _txreg equ 21
737             
738                     ; line_number = 305
739                     ; register _txsta = 
740  00000016 = _txsta equ 22
741                     ; line_number = 306
742                     ; bind _csrc = _txsta@7
743  00000016 = _csrc___byte equ _txsta
744  00000007 = _csrc___bit equ 7
745                     ; line_number = 307
746                     ; bind _tx9 = _txsta@6
747  00000016 = _tx9___byte equ _txsta
748  00000006 = _tx9___bit equ 6
749                     ; line_number = 308
750                     ; bind _txen = _txsta@5
751  00000016 = _txen___byte equ _txsta
752  00000005 = _txen___bit equ 5
753                     ; line_number = 309
754                     ; bind _sync = _txsta@4
755  00000016 = _sync___byte equ _txsta
756  00000004 = _sync___bit equ 4
757                     ; line_number = 310
758                     ; bind _sendb = _txsta@3
759  00000016 = _sendb___byte equ _txsta
760  00000003 = _sendb___bit equ 3
761                     ; line_number = 311
762                     ; bind _brgh = _txsta@2
763  00000016 = _brgh___byte equ _txsta
764  00000002 = _brgh___bit equ 2
765                     ; line_number = 312
766                     ; bind _trmt = _txsta@1
767  00000016 = _trmt___byte equ _txsta
768  00000001 = _trmt___bit equ 1
769                     ; line_number = 313
770                     ; bind _tx9d = _txsta@0
771  00000016 = _tx9d___byte equ _txsta
772  00000000 = _tx9d___bit equ 0
773             
774                     ; line_number = 315
775                     ; register _rcsta = 
776  00000017 = _rcsta equ 23
777                     ; line_number = 316
778                     ; bind _spen = _rcsta@7
779  00000017 = _spen___byte equ _rcsta
780  00000007 = _spen___bit equ 7
781                     ; line_number = 317
782                     ; bind _rx9 = _rcsta@6
783  00000017 = _rx9___byte equ _rcsta
784  00000006 = _rx9___bit equ 6
785                     ; line_number = 318
786                     ; bind _sren = _rcsta@5
787  00000017 = _sren___byte equ _rcsta
788  00000005 = _sren___bit equ 5
789                     ; line_number = 319
790                     ; bind _cren = _rcsta@4
791  00000017 = _cren___byte equ _rcsta
792  00000004 = _cren___bit equ 4
793                     ; line_number = 320
794                     ; bind _adden = _rcsta@3
795  00000017 = _adden___byte equ _rcsta
796  00000003 = _adden___bit equ 3
797                     ; line_number = 321
798                     ; bind _ferr = _rcsta@2
799  00000017 = _ferr___byte equ _rcsta
800  00000002 = _ferr___bit equ 2
801                     ; line_number = 322
802                     ; bind _oerr = _rcsta@1
803  00000017 = _oerr___byte equ _rcsta
804  00000001 = _oerr___bit equ 1
805                     ; line_number = 323
806                     ; bind _rx9d = _rcsta@0
807  00000017 = _rx9d___byte equ _rcsta
808  00000000 = _rx9d___bit equ 0
809             
810                     ; line_number = 325
811                     ; register _wdtcon = 
812  00000018 = _wdtcon equ 24
813                     ; line_number = 326
814                     ; bind _wdtps3 = _wdtcon@4
815  00000018 = _wdtps3___byte equ _wdtcon
816  00000004 = _wdtps3___bit equ 4
817                     ; line_number = 327
818                     ; bind _wdtps2 = _wdtcon@3
819  00000018 = _wdtps2___byte equ _wdtcon
820  00000003 = _wdtps2___bit equ 3
821                     ; line_number = 328
822                     ; bind _wdtps1 = _wdtcon@2
823  00000018 = _wdtps1___byte equ _wdtcon
824  00000002 = _wdtps1___bit equ 2
825                     ; line_number = 329
826                     ; bind _wdtps0 = _wdtcon@1
827  00000018 = _wdtps0___byte equ _wdtcon
828  00000001 = _wdtps0___bit equ 1
829                     ; line_number = 330
830                     ; bind _swdten = _wdtcon@0
831  00000018 = _swdten___byte equ _wdtcon
832  00000000 = _swdten___bit equ 0
833             
834                     ; line_number = 332
835                     ; register _cmcon0 = 
836  00000019 = _cmcon0 equ 25
837                     ; line_number = 333
838                     ; bind _c1out = _cmcon0@7
839  00000019 = _c1out___byte equ _cmcon0
840  00000007 = _c1out___bit equ 7
841                     ; line_number = 334
842                     ; bind _c2out = _cmcon0@6
843  00000019 = _c2out___byte equ _cmcon0
844  00000006 = _c2out___bit equ 6
845                     ; line_number = 335
846                     ; bind _c1inv = _cmcon0@5
847  00000019 = _c1inv___byte equ _cmcon0
848  00000005 = _c1inv___bit equ 5
849                     ; line_number = 336
850                     ; bind _c2inv = _cmcon0@4
851  00000019 = _c2inv___byte equ _cmcon0
852  00000004 = _c2inv___bit equ 4
853                     ; line_number = 337
854                     ; bind _cis = _cmcon0@3
855  00000019 = _cis___byte equ _cmcon0
856  00000003 = _cis___bit equ 3
857                     ; line_number = 338
858                     ; bind _cm2 = _cmcon0@2
859  00000019 = _cm2___byte equ _cmcon0
860  00000002 = _cm2___bit equ 2
861                     ; line_number = 339
862                     ; bind _cm1 = _cmcon0@1
863  00000019 = _cm1___byte equ _cmcon0
864  00000001 = _cm1___bit equ 1
865                     ; line_number = 340
866                     ; bind _cm0 = _cmcon0@0
867  00000019 = _cm0___byte equ _cmcon0
868  00000000 = _cm0___bit equ 0
869             
870                     ; line_number = 342
871                     ; register _cmcon1 = 
872  0000001a = _cmcon1 equ 26
873                     ; line_number = 343
874                     ; bind _t1gss = _cmcon1@0
875  0000001a = _t1gss___byte equ _cmcon1
876  00000000 = _t1gss___bit equ 0
877                     ; line_number = 344
878                     ; bind _c2sync = _cmcon1@1
879  0000001a = _c2sync___byte equ _cmcon1
880  00000001 = _c2sync___bit equ 1
881             
882                     ; line_number = 346
883                     ; register _adresh = 
884  0000001e = _adresh equ 30
885             
886                     ; line_number = 348
887                     ; register _adcon0 = 
888  0000001f = _adcon0 equ 31
889                     ; line_number = 349
890                     ; bind _adfm = _adcon0@7
891  0000001f = _adfm___byte equ _adcon0
892  00000007 = _adfm___bit equ 7
893                     ; line_number = 350
894                     ; bind _vcfg = _adcon0@6
895  0000001f = _vcfg___byte equ _adcon0
896  00000006 = _vcfg___bit equ 6
897                     ; line_number = 351
898                     ; bind _chs2 = _adcon0@4
899  0000001f = _chs2___byte equ _adcon0
900  00000004 = _chs2___bit equ 4
901                     ; line_number = 352
902                     ; bind _chs1 = _adcon0@3
903  0000001f = _chs1___byte equ _adcon0
904  00000003 = _chs1___bit equ 3
905                     ; line_number = 353
906                     ; bind _chs0 = _adcon0@2
907  0000001f = _chs0___byte equ _adcon0
908  00000002 = _chs0___bit equ 2
909                     ; line_number = 354
910                     ; bind _go = _adcon0@1
911  0000001f = _go___byte equ _adcon0
912  00000001 = _go___bit equ 1
913                     ; line_number = 355
914                     ; bind _adon = _adcon0@0
915  0000001f = _adon___byte equ _adcon0
916  00000000 = _adon___bit equ 0
917             
918                     ; # Data bank 1 (0x80-0xff):
919             
920                     ; line_number = 359
921                     ; register _option_reg = 
922  00000081 = _option_reg equ 129
923                     ; line_number = 360
924                     ; bind _rapu = _option_reg@7
925  00000081 = _rapu___byte equ _option_reg
926  00000007 = _rapu___bit equ 7
927                     ; line_number = 361
928                     ; bind _intedg = _option_reg@6
929  00000081 = _intedg___byte equ _option_reg
930  00000006 = _intedg___bit equ 6
931                     ; line_number = 362
932                     ; bind _t0cs = _option_reg@5
933  00000081 = _t0cs___byte equ _option_reg
934  00000005 = _t0cs___bit equ 5
935                     ; line_number = 363
936                     ; bind _t0se = _option_reg@4
937  00000081 = _t0se___byte equ _option_reg
938  00000004 = _t0se___bit equ 4
939                     ; line_number = 364
940                     ; bind _psa = _option_reg@3
941  00000081 = _psa___byte equ _option_reg
942  00000003 = _psa___bit equ 3
943                     ; line_number = 365
944                     ; bind _ps2 = _option_reg@2
945  00000081 = _ps2___byte equ _option_reg
946  00000002 = _ps2___bit equ 2
947                     ; line_number = 366
948                     ; bind _ps1 = _option_reg@1
949  00000081 = _ps1___byte equ _option_reg
950  00000001 = _ps1___bit equ 1
951                     ; line_number = 367
952                     ; bind _ps0 = _option_reg@0
953  00000081 = _ps0___byte equ _option_reg
954  00000000 = _ps0___bit equ 0
955             
956                     ; line_number = 369
957                     ; register _trisa = 
958  00000085 = _trisa equ 133
959                     ; line_number = 370
960                     ; bind _trisa5 = _trisa@5
961  00000085 = _trisa5___byte equ _trisa
962  00000005 = _trisa5___bit equ 5
963                     ; line_number = 371
964                     ; bind _trisa4 = _trisa@4
965  00000085 = _trisa4___byte equ _trisa
966  00000004 = _trisa4___bit equ 4
967                     ; line_number = 372
968                     ; bind _trisa3 = _trisa@3
969  00000085 = _trisa3___byte equ _trisa
970  00000003 = _trisa3___bit equ 3
971                     ; line_number = 373
972                     ; bind _trisa2 = _trisa@2
973  00000085 = _trisa2___byte equ _trisa
974  00000002 = _trisa2___bit equ 2
975                     ; line_number = 374
976                     ; bind _trisa1 = _trisa@1
977  00000085 = _trisa1___byte equ _trisa
978  00000001 = _trisa1___bit equ 1
979                     ; line_number = 375
980                     ; bind _trisa0 = _trisa@0
981  00000085 = _trisa0___byte equ _trisa
982  00000000 = _trisa0___bit equ 0
983             
984                     ; line_number = 377
985                     ; register _trisc = 
986  00000087 = _trisc equ 135
987                     ; line_number = 378
988                     ; bind _trisc5 = _trisc@5
989  00000087 = _trisc5___byte equ _trisc
990  00000005 = _trisc5___bit equ 5
991                     ; line_number = 379
992                     ; bind _trisc4 = _trisc@4
993  00000087 = _trisc4___byte equ _trisc
994  00000004 = _trisc4___bit equ 4
995                     ; line_number = 380
996                     ; bind _trisc3 = _trisc@3
997  00000087 = _trisc3___byte equ _trisc
998  00000003 = _trisc3___bit equ 3
999                     ; line_number = 381
1000                    ; bind _trisc2 = _trisc@2
1001 00000087 = _trisc2___byte equ _trisc
1002 00000002 = _trisc2___bit equ 2
1003                    ; line_number = 382
1004                    ; bind _trisc1 = _trisc@1
1005 00000087 = _trisc1___byte equ _trisc
1006 00000001 = _trisc1___bit equ 1
1007                    ; line_number = 383
1008                    ; bind _trisc0 = _trisc@0
1009 00000087 = _trisc0___byte equ _trisc
1010 00000000 = _trisc0___bit equ 0
1011            
1012                    ; line_number = 385
1013                    ; register _pie1 = 
1014 0000008c = _pie1 equ 140
1015                    ; line_number = 386
1016                    ; bind _eeie = _pie1@7
1017 0000008c = _eeie___byte equ _pie1
1018 00000007 = _eeie___bit equ 7
1019                    ; line_number = 387
1020                    ; bind _adie = _pie1@6
1021 0000008c = _adie___byte equ _pie1
1022 00000006 = _adie___bit equ 6
1023                    ; line_number = 388
1024                    ; bind _rcie = _pie1@5
1025 0000008c = _rcie___byte equ _pie1
1026 00000005 = _rcie___bit equ 5
1027                    ; line_number = 389
1028                    ; bind _c2ie = _pie1@4
1029 0000008c = _c2ie___byte equ _pie1
1030 00000004 = _c2ie___bit equ 4
1031                    ; line_number = 390
1032                    ; bind _c1ie = _pie1@3
1033 0000008c = _c1ie___byte equ _pie1
1034 00000003 = _c1ie___bit equ 3
1035                    ; line_number = 391
1036                    ; bind _osfie = _pie1@2
1037 0000008c = _osfie___byte equ _pie1
1038 00000002 = _osfie___bit equ 2
1039                    ; line_number = 392
1040                    ; bind _txie = _pie1@1
1041 0000008c = _txie___byte equ _pie1
1042 00000001 = _txie___bit equ 1
1043                    ; line_number = 393
1044                    ; bind _tmr1ie = _pie1@0
1045 0000008c = _tmr1ie___byte equ _pie1
1046 00000000 = _tmr1ie___bit equ 0
1047            
1048                    ; line_number = 395
1049                    ; register _pcon = 
1050 0000008e = _pcon equ 142
1051                    ; line_number = 396
1052                    ; bind _ulpwue = _pcon@5
1053 0000008e = _ulpwue___byte equ _pcon
1054 00000005 = _ulpwue___bit equ 5
1055                    ; line_number = 397
1056                    ; bind _sboden = _pcon@4
1057 0000008e = _sboden___byte equ _pcon
1058 00000004 = _sboden___bit equ 4
1059                    ; line_number = 398
1060                    ; bind _por = _pcon@1
1061 0000008e = _por___byte equ _pcon
1062 00000001 = _por___bit equ 1
1063                    ; line_number = 399
1064                    ; bind _bod = _pcon@0
1065 0000008e = _bod___byte equ _pcon
1066 00000000 = _bod___bit equ 0
1067            
1068                    ; line_number = 401
1069                    ; register _osccon = 
1070 0000008f = _osccon equ 143
1071                    ; line_number = 402
1072                    ; bind _ircf2 = _osccon@6
1073 0000008f = _ircf2___byte equ _osccon
1074 00000006 = _ircf2___bit equ 6
1075                    ; line_number = 403
1076                    ; bind _ircf1 = _osccon@5
1077 0000008f = _ircf1___byte equ _osccon
1078 00000005 = _ircf1___bit equ 5
1079                    ; line_number = 404
1080                    ; bind _ircf0 = _osccon@4
1081 0000008f = _ircf0___byte equ _osccon
1082 00000004 = _ircf0___bit equ 4
1083                    ; line_number = 405
1084                    ; bind _osts = _osccon@3
1085 0000008f = _osts___byte equ _osccon
1086 00000003 = _osts___bit equ 3
1087                    ; line_number = 406
1088                    ; bind _hts = _osccon@2
1089 0000008f = _hts___byte equ _osccon
1090 00000002 = _hts___bit equ 2
1091                    ; line_number = 407
1092                    ; bind _lts = _osccon@3
1093 0000008f = _lts___byte equ _osccon
1094 00000003 = _lts___bit equ 3
1095                    ; line_number = 408
1096                    ; bind _scs = _osccon@2
1097 0000008f = _scs___byte equ _osccon
1098 00000002 = _scs___bit equ 2
1099            
1100                    ; line_number = 410
1101                    ; register _osctune = 
1102 00000090 = _osctune equ 144
1103                    ; line_number = 411
1104                    ; bind _tun4 = _osctune@4
1105 00000090 = _tun4___byte equ _osctune
1106 00000004 = _tun4___bit equ 4
1107                    ; line_number = 412
1108                    ; bind _tun3 = _osctune@3
1109 00000090 = _tun3___byte equ _osctune
1110 00000003 = _tun3___bit equ 3
1111                    ; line_number = 413
1112                    ; bind _tun2 = _osctune@2
1113 00000090 = _tun2___byte equ _osctune
1114 00000002 = _tun2___bit equ 2
1115                    ; line_number = 414
1116                    ; bind _tun1 = _osctune@1
1117 00000090 = _tun1___byte equ _osctune
1118 00000001 = _tun1___bit equ 1
1119                    ; line_number = 415
1120                    ; bind _tun0 = _osctune@0
1121 00000090 = _tun0___byte equ _osctune
1122 00000000 = _tun0___bit equ 0
1123                    ; line_number = 416
1124                    ; constant _osccal_lsb = 1
1125 00000001 = _osccal_lsb equ 1
1126            
1127                    ; line_number = 418
1128                    ; register _ansel = 
1129 00000091 = _ansel equ 145
1130                    ; line_number = 419
1131                    ; bind _ans7 = _ansel@7
1132 00000091 = _ans7___byte equ _ansel
1133 00000007 = _ans7___bit equ 7
1134                    ; line_number = 420
1135                    ; bind _ans6 = _ansel@6
1136 00000091 = _ans6___byte equ _ansel
1137 00000006 = _ans6___bit equ 6
1138                    ; line_number = 421
1139                    ; bind _ans5 = _ansel@5
1140 00000091 = _ans5___byte equ _ansel
1141 00000005 = _ans5___bit equ 5
1142                    ; line_number = 422
1143                    ; bind _ans4 = _ansel@4
1144 00000091 = _ans4___byte equ _ansel
1145 00000004 = _ans4___bit equ 4
1146                    ; line_number = 423
1147                    ; bind _ans3 = _ansel@3
1148 00000091 = _ans3___byte equ _ansel
1149 00000003 = _ans3___bit equ 3
1150                    ; line_number = 424
1151                    ; bind _ans2 = _ansel@2
1152 00000091 = _ans2___byte equ _ansel
1153 00000002 = _ans2___bit equ 2
1154                    ; line_number = 425
1155                    ; bind _ans1 = _ansel@1
1156 00000091 = _ans1___byte equ _ansel
1157 00000001 = _ans1___bit equ 1
1158                    ; line_number = 426
1159                    ; bind _ans0 = _ansel@0
1160 00000091 = _ans0___byte equ _ansel
1161 00000000 = _ans0___bit equ 0
1162            
1163                    ; line_number = 428
1164                    ; register _wpua = 
1165 00000095 = _wpua equ 149
1166                    ; line_number = 429
1167                    ; bind _wpua5 = _wpua@5
1168 00000095 = _wpua5___byte equ _wpua
1169 00000005 = _wpua5___bit equ 5
1170                    ; line_number = 430
1171                    ; bind _wpua4 = _wpua@4
1172 00000095 = _wpua4___byte equ _wpua
1173 00000004 = _wpua4___bit equ 4
1174                    ; line_number = 431
1175                    ; bind _wpua2 = _wpua@2
1176 00000095 = _wpua2___byte equ _wpua
1177 00000002 = _wpua2___bit equ 2
1178                    ; line_number = 432
1179                    ; bind _wpua1 = _wpua@1
1180 00000095 = _wpua1___byte equ _wpua
1181 00000001 = _wpua1___bit equ 1
1182                    ; line_number = 433
1183                    ; bind _wpua0 = _wpua@0
1184 00000095 = _wpua0___byte equ _wpua
1185 00000000 = _wpua0___bit equ 0
1186            
1187                    ; line_number = 435
1188                    ; register _ioca = 
1189 00000096 = _ioca equ 150
1190                    ; line_number = 436
1191                    ; bind _ioca5 = _ioca@5
1192 00000096 = _ioca5___byte equ _ioca
1193 00000005 = _ioca5___bit equ 5
1194                    ; line_number = 437
1195                    ; bind _ioca4 = _ioca@4
1196 00000096 = _ioca4___byte equ _ioca
1197 00000004 = _ioca4___bit equ 4
1198                    ; line_number = 438
1199                    ; bind _ioca3 = _ioca@3
1200 00000096 = _ioca3___byte equ _ioca
1201 00000003 = _ioca3___bit equ 3
1202                    ; line_number = 439
1203                    ; bind _ioca2 = _ioca@2
1204 00000096 = _ioca2___byte equ _ioca
1205 00000002 = _ioca2___bit equ 2
1206                    ; line_number = 440
1207                    ; bind _ioca1 = _ioca@1
1208 00000096 = _ioca1___byte equ _ioca
1209 00000001 = _ioca1___bit equ 1
1210                    ; line_number = 441
1211                    ; bind _ioca0 = _ioca@0
1212 00000096 = _ioca0___byte equ _ioca
1213 00000000 = _ioca0___bit equ 0
1214            
1215                    ; line_number = 443
1216                    ; register _eedath = 
1217 00000097 = _eedath equ 151
1218            
1219                    ; line_number = 445
1220                    ; register _eeadrh = 
1221 00000098 = _eeadrh equ 152
1222            
1223                    ; line_number = 447
1224                    ; register _vrcon = 
1225 00000099 = _vrcon equ 153
1226                    ; line_number = 448
1227                    ; bind _vren = _vrcon@7
1228 00000099 = _vren___byte equ _vrcon
1229 00000007 = _vren___bit equ 7
1230                    ; line_number = 449
1231                    ; bind _vrr = _vrcon@5
1232 00000099 = _vrr___byte equ _vrcon
1233 00000005 = _vrr___bit equ 5
1234                    ; line_number = 450
1235                    ; bind _vr3 = _vrcon@3
1236 00000099 = _vr3___byte equ _vrcon
1237 00000003 = _vr3___bit equ 3
1238                    ; line_number = 451
1239                    ; bind _vr2 = _vrcon@2
1240 00000099 = _vr2___byte equ _vrcon
1241 00000002 = _vr2___bit equ 2
1242                    ; line_number = 452
1243                    ; bind _vr1 = _vrcon@1
1244 00000099 = _vr1___byte equ _vrcon
1245 00000001 = _vr1___bit equ 1
1246                    ; line_number = 453
1247                    ; bind _vr0 = _vrcon@0
1248 00000099 = _vr0___byte equ _vrcon
1249 00000000 = _vr0___bit equ 0
1250            
1251                    ; line_number = 455
1252                    ; register _eedat = 
1253 0000009a = _eedat equ 154
1254                    ; line_number = 456
1255                    ; bind _eedat7 = _eedat@7
1256 0000009a = _eedat7___byte equ _eedat
1257 00000007 = _eedat7___bit equ 7
1258                    ; line_number = 457
1259                    ; bind _eedat6 = _eedat@6
1260 0000009a = _eedat6___byte equ _eedat
1261 00000006 = _eedat6___bit equ 6
1262                    ; line_number = 458
1263                    ; bind _eedat5 = _eedat@5
1264 0000009a = _eedat5___byte equ _eedat
1265 00000005 = _eedat5___bit equ 5
1266                    ; line_number = 459
1267                    ; bind _eedat4 = _eedat@4
1268 0000009a = _eedat4___byte equ _eedat
1269 00000004 = _eedat4___bit equ 4
1270                    ; line_number = 460
1271                    ; bind _eedat3 = _eedat@3
1272 0000009a = _eedat3___byte equ _eedat
1273 00000003 = _eedat3___bit equ 3
1274                    ; line_number = 461
1275                    ; bind _eedat2 = _eedat@2
1276 0000009a = _eedat2___byte equ _eedat
1277 00000002 = _eedat2___bit equ 2
1278                    ; line_number = 462
1279                    ; bind _eedat1 = _eedat@1
1280 0000009a = _eedat1___byte equ _eedat
1281 00000001 = _eedat1___bit equ 1
1282                    ; line_number = 463
1283                    ; bind _eedat0 = _eedat@0
1284 0000009a = _eedat0___byte equ _eedat
1285 00000000 = _eedat0___bit equ 0
1286            
1287                    ; line_number = 465
1288                    ; register _eeadr = 
1289 0000009b = _eeadr equ 155
1290                    ; line_number = 466
1291                    ; bind _eeadr7 = _eeadr@7
1292 0000009b = _eeadr7___byte equ _eeadr
1293 00000007 = _eeadr7___bit equ 7
1294                    ; line_number = 467
1295                    ; bind _eeadr6 = _eeadr@6
1296 0000009b = _eeadr6___byte equ _eeadr
1297 00000006 = _eeadr6___bit equ 6
1298                    ; line_number = 468
1299                    ; bind _eeadr5 = _eeadr@5
1300 0000009b = _eeadr5___byte equ _eeadr
1301 00000005 = _eeadr5___bit equ 5
1302                    ; line_number = 469
1303                    ; bind _eeadr4 = _eeadr@4
1304 0000009b = _eeadr4___byte equ _eeadr
1305 00000004 = _eeadr4___bit equ 4
1306                    ; line_number = 470
1307                    ; bind _eeadr3 = _eeadr@3
1308 0000009b = _eeadr3___byte equ _eeadr
1309 00000003 = _eeadr3___bit equ 3
1310                    ; line_number = 471
1311                    ; bind _eeadr2 = _eeadr@2
1312 0000009b = _eeadr2___byte equ _eeadr
1313 00000002 = _eeadr2___bit equ 2
1314                    ; line_number = 472
1315                    ; bind _eeadr1 = _eeadr@1
1316 0000009b = _eeadr1___byte equ _eeadr
1317 00000001 = _eeadr1___bit equ 1
1318                    ; line_number = 473
1319                    ; bind _eeadr0 = _eeadr@0
1320 0000009b = _eeadr0___byte equ _eeadr
1321 00000000 = _eeadr0___bit equ 0
1322            
1323                    ; line_number = 475
1324                    ; register _eecon1 = 
1325 0000009c = _eecon1 equ 156
1326                    ; line_number = 476
1327                    ; bind _eepgd = _eecon1@7
1328 0000009c = _eepgd___byte equ _eecon1
1329 00000007 = _eepgd___bit equ 7
1330                    ; line_number = 477
1331                    ; bind _wrerr = _eecon1@3
1332 0000009c = _wrerr___byte equ _eecon1
1333 00000003 = _wrerr___bit equ 3
1334                    ; line_number = 478
1335                    ; bind _wren = _eecon1@2
1336 0000009c = _wren___byte equ _eecon1
1337 00000002 = _wren___bit equ 2
1338                    ; line_number = 479
1339                    ; bind _wr = _eecon1@1
1340 0000009c = _wr___byte equ _eecon1
1341 00000001 = _wr___bit equ 1
1342                    ; line_number = 480
1343                    ; bind _rd = _eecon1@0
1344 0000009c = _rd___byte equ _eecon1
1345 00000000 = _rd___bit equ 0
1346            
1347                    ; line_number = 482
1348                    ; register _eecon2 = 
1349 0000009d = _eecon2 equ 157
1350            
1351                    ; line_number = 484
1352                    ; register _adresl = 
1353 0000009e = _adresl equ 158
1354            
1355                    ; line_number = 486
1356                    ; register _adcon1 = 
1357 0000009f = _adcon1 equ 159
1358                    ; line_number = 487
1359                    ; bind _adcs2 = _adcon1@6
1360 0000009f = _adcs2___byte equ _adcon1
1361 00000006 = _adcs2___bit equ 6
1362                    ; line_number = 488
1363                    ; bind _adcs1 = _adcon1@5
1364 0000009f = _adcs1___byte equ _adcon1
1365 00000005 = _adcs1___bit equ 5
1366                    ; line_number = 489
1367                    ; bind _adcs0 = _adcon1@4
1368 0000009f = _adcs0___byte equ _adcon1
1369 00000004 = _adcs0___bit equ 4
1370            
1371                    ; # Data Bank 2 (0x100 - 0x17f):
1372            
1373                    ; buffer = 'io8'
1374                    ; line_number = 7
1375                    ; library _pic16f688 exited
1376            
1377                    ; # The system is running at 20MHz:
1378                    ; line_number = 10
1379                    ; library clock20mhz entered
1380                    ; # Copyright (c) 2004 by Wayne C. Gramlich
1381                    ; # All rights reserved.
1382            
1383                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1384                    ; # and {clocks_per_instruction}.
1385            
1386                    ; # Define processor constants:
1387                    ; buffer = 'clock20mhz'
1388                    ; line_number = 9
1389                    ; constant clock_rate = 20000000
1390 01312d00 = clock_rate equ 20000000
1391                    ; line_number = 10
1392                    ; constant clocks_per_instruction = 4
1393 00000004 = clocks_per_instruction equ 4
1394                    ; line_number = 11
1395                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1396 004c4b40 = instruction_rate equ 5000000
1397            
1398            
1399                    ; buffer = 'io8'
1400                    ; line_number = 10
1401                    ; library clock20mhz exited
1402                    ; # A microsecond takes 5 cycles at 20MHz:
1403                    ; line_number = 12
1404                    ; constant microsecond = 5
1405 00000005 = microsecond equ 5
1406            
1407                    ; # The {_eusart} library defines some baud rate generator constants:
1408                    ; line_number = 15
1409                    ; constant _eusart_clock = clock_rate
1410 01312d00 = _eusart_clock equ 20000000
1411                    ; line_number = 16
1412                    ; constant _eusart_factor = 4
1413 00000004 = _eusart_factor equ 4
1414                    ; line_number = 17
1415                    ; library _eusart entered
1416            
1417                    ; # Copyright (c) 2005 by Wayne C. Gramlich
1418                    ; # All rights reserved.
1419            
1420                    ; # This library contains a bunch of definitions for the Enhanced Universal
1421                    ; # Asynchronous Serial Receiver/Transmitter (EUSART) that is available
1422                    ; # on many of the PIC microcontrollers.
1423            
1424                    ; # In order to use this module you have to get two constants defined
1425                    ; # BEFORE including this library -- {_eusart_factor} and {_eusart_clock}.
1426                    ; # {_eusart_clock} should be set to the frequency oscillator for the chip.
1427                    ; # {_eusart_factor} should be set to 4, 16, or 64 depending upon whether
1428                    ; # the {_brg16} and {_brgh} bits are set.  Use the table below to select:
1429                    ; #
1430                    ; #        _{brg16}	{_brgh}		_{eusart_factor}
1431                    ; #	    0		   0		      64
1432                    ; #	    0		   1		      16
1433                    ; #	    1		   0		      16
1434                    ; #	    1		   1		       4
1435            
1436                    ; # 2400 bits/sec:
1437                    ; buffer = '_eusart'
1438                    ; line_number = 23
1439                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1440 00000822 = _eusart_2400 equ 2082
1441                    ; line_number = 24
1442                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1443 00000022 = _eusart_2400_low equ 34
1444                    ; line_number = 25
1445                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1446 00000008 = _eusart_2400_high equ 8
1447                    ; line_number = 26
1448                    ; constant _eusart_2400_index = 0
1449 00000000 = _eusart_2400_index equ 0
1450                    ; # 4800 bits/sec:
1451                    ; line_number = 28
1452                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1453 00000410 = _eusart_4800 equ 1040
1454                    ; line_number = 29
1455                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1456 00000010 = _eusart_4800_low equ 16
1457                    ; line_number = 30
1458                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1459 00000004 = _eusart_4800_high equ 4
1460                    ; line_number = 31
1461                    ; constant _eusart_4800_index = 1
1462 00000001 = _eusart_4800_index equ 1
1463                    ; # 9600 bits/sec:
1464                    ; line_number = 33
1465                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1466 00000207 = _eusart_9600 equ 519
1467                    ; line_number = 34
1468                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1469 00000007 = _eusart_9600_low equ 7
1470                    ; line_number = 35
1471                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1472 00000002 = _eusart_9600_high equ 2
1473                    ; line_number = 36
1474                    ; constant _eusart_9600_index = 2
1475 00000002 = _eusart_9600_index equ 2
1476                    ; # 19200 bits/sec:
1477                    ; line_number = 38
1478                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1479 00000103 = _eusart_19200 equ 259
1480                    ; line_number = 39
1481                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1482 00000003 = _eusart_19200_low equ 3
1483                    ; line_number = 40
1484                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1485 00000001 = _eusart_19200_high equ 1
1486                    ; line_number = 41
1487                    ; constant _eusart_19200_index = 3
1488 00000003 = _eusart_19200_index equ 3
1489                    ; # 38400 bits/sec:
1490                    ; line_number = 43
1491                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1492 00000081 = _eusart_38400 equ 129
1493                    ; line_number = 44
1494                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1495 00000081 = _eusart_38400_low equ 129
1496                    ; line_number = 45
1497                    ; constant _eusart_38400_high = _eusart_38400 >> 8
1498 00000000 = _eusart_38400_high equ 0
1499                    ; line_number = 46
1500                    ; constant _eusart_38400_index = 4
1501 00000004 = _eusart_38400_index equ 4
1502                    ; # 57600 bits/sec:
1503                    ; line_number = 48
1504                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1505 00000055 = _eusart_57600 equ 85
1506                    ; line_number = 49
1507                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1508 00000055 = _eusart_57600_low equ 85
1509                    ; line_number = 50
1510                    ; constant _eusart_57600_high = _eusart_57600 >> 8
1511 00000000 = _eusart_57600_high equ 0
1512                    ; line_number = 51
1513                    ; constant _eusart_57600_index = 5
1514 00000005 = _eusart_57600_index equ 5
1515                    ; # 115200 bits/sec:
1516                    ; line_number = 53
1517                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1518 0000002a = _eusart_115200 equ 42
1519                    ; line_number = 54
1520                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1521 0000002a = _eusart_115200_low equ 42
1522                    ; line_number = 55
1523                    ; constant _eusart_115200_high = _eusart_115200 >> 8
1524 00000000 = _eusart_115200_high equ 0
1525                    ; line_number = 56
1526                    ; constant _eusart_115200_index = 6
1527 00000006 = _eusart_115200_index equ 6
1528                    ; # 203400 bits/sec:
1529                    ; line_number = 58
1530                    ; constant _eusart_230400 = (_eusart_clock / (230400 * _eusart_factor)) - 1
1531 00000014 = _eusart_230400 equ 20
1532                    ; line_number = 59
1533                    ; constant _eusart_230400_low = _eusart_230400 & 0xff
1534 00000014 = _eusart_230400_low equ 20
1535                    ; line_number = 60
1536                    ; constant _eusart_230400_high = _eusart_230400 >> 8
1537 00000000 = _eusart_230400_high equ 0
1538                    ; line_number = 61
1539                    ; constant _eusart_230400_index = 7
1540 00000007 = _eusart_230400_index equ 7
1541                    ; # 406800 bits/sec:
1542                    ; line_number = 63
1543                    ; constant _eusart_460800 = (_eusart_clock / (460800 * _eusart_factor)) - 1
1544 00000009 = _eusart_460800 equ 9
1545                    ; line_number = 64
1546                    ; constant _eusart_460800_low = _eusart_460800 & 0xff
1547 00000009 = _eusart_460800_low equ 9
1548                    ; line_number = 65
1549                    ; constant _eusart_460800_high = _eusart_460800 >> 8
1550 00000000 = _eusart_460800_high equ 0
1551                    ; line_number = 66
1552                    ; constant _eusart_460800_index = 8
1553 00000008 = _eusart_460800_index equ 8
1554                    ; # 500000 bits/sec:
1555                    ; line_number = 68
1556                    ; constant _eusart_500000 = (_eusart_clock / (500000 * _eusart_factor)) - 1
1557 00000009 = _eusart_500000 equ 9
1558                    ; line_number = 69
1559                    ; constant _eusart_500000_low = _eusart_500000 & 0xff
1560 00000009 = _eusart_500000_low equ 9
1561                    ; line_number = 70
1562                    ; constant _eusart_500000_high = _eusart_500000 >> 8
1563 00000000 = _eusart_500000_high equ 0
1564                    ; line_number = 71
1565                    ; constant _eusart_500000_index = 9
1566 00000009 = _eusart_500000_index equ 9
1567                    ; # 576000 bits/sec (1MHz):
1568                    ; line_number = 73
1569                    ; constant _eusart_576000 = (_eusart_clock / (576000 * _eusart_factor)) - 1
1570 00000007 = _eusart_576000 equ 7
1571                    ; line_number = 74
1572                    ; constant _eusart_576000_low = _eusart_576000 & 0xff
1573 00000007 = _eusart_576000_low equ 7
1574                    ; line_number = 75
1575                    ; constant _eusart_576000_high = _eusart_576000 >> 8
1576 00000000 = _eusart_576000_high equ 0
1577                    ; line_number = 76
1578                    ; constant _eusart_576000_index = 10
1579 0000000a = _eusart_576000_index equ 10
1580                    ; # 625000 bits/sec:
1581                    ; line_number = 78
1582                    ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
1583 00000007 = _eusart_625000 equ 7
1584                    ; line_number = 79
1585                    ; constant _eusart_625000_low = _eusart_625000 & 0xff
1586 00000007 = _eusart_625000_low equ 7
1587                    ; line_number = 80
1588                    ; constant _eusart_625000_high = _eusart_625000 >> 8
1589 00000000 = _eusart_625000_high equ 0
1590                    ; line_number = 81
1591                    ; constant _eusart_625000_index = 11
1592 0000000b = _eusart_625000_index equ 11
1593                    ; # 833333 bits/sec:
1594                    ; line_number = 83
1595                    ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
1596 00000005 = _eusart_833333 equ 5
1597                    ; line_number = 84
1598                    ; constant _eusart_833333_low = _eusart_833333 & 0xff
1599 00000005 = _eusart_833333_low equ 5
1600                    ; line_number = 85
1601                    ; constant _eusart_833333_high = _eusart_833333 >> 8
1602 00000000 = _eusart_833333_high equ 0
1603                    ; line_number = 86
1604                    ; constant _eusart_833333_index = 12
1605 0000000c = _eusart_833333_index equ 12
1606                    ; # 921600 bits/sec:
1607                    ; line_number = 88
1608                    ; constant _eusart_921600 = (_eusart_clock / (921600 * _eusart_factor)) - 1
1609 00000004 = _eusart_921600 equ 4
1610                    ; line_number = 89
1611                    ; constant _eusart_921600_low = _eusart_921600 & 0xff
1612 00000004 = _eusart_921600_low equ 4
1613                    ; line_number = 90
1614                    ; constant _eusart_921600_high = _eusart_921600 >> 8
1615 00000000 = _eusart_921600_high equ 0
1616                    ; line_number = 91
1617                    ; constant _eusart_921600_index = 13
1618 0000000d = _eusart_921600_index equ 13
1619                    ; # 1000000 bits/sec (1MHz):
1620                    ; line_number = 93
1621                    ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
1622 00000004 = _eusart_1000000 equ 4
1623                    ; line_number = 94
1624                    ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
1625 00000004 = _eusart_1000000_low equ 4
1626                    ; line_number = 95
1627                    ; constant _eusart_1000000_high = _eusart_1000000 >> 8
1628 00000000 = _eusart_1000000_high equ 0
1629                    ; line_number = 96
1630                    ; constant _eusart_1000000_index = 14
1631 0000000e = _eusart_1000000_index equ 14
1632            
1633                    ; buffer = 'io8'
1634                    ; line_number = 17
1635                    ; library _eusart exited
1636            
1637                    ; # The library of bus access routines for use by a PIC16F688.
1638                    ; line_number = 20
1639                    ; library rb2bus_pic16f688 entered
1640            
1641                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1642                    ; # All rights reserved.
1643            
1644                    ; # This module provides some procedures for accessing a RoboBricks2
1645                    ; # bus via a UART.  It is speicialized for the PIC16F688.
1646                    ; #
1647                    ; # It defines the following procedure:
1648                    ; #
1649                    ; # {rb2bus_initialize}({address}) The procedure that initializes the UART
1650                    ; #                                for bus access.
1651            
1652                    ; # All other bus access procedures are defined in the {rb2bus} library
1653                    ; # which is accessed below:
1654                    ; buffer = 'rb2bus_pic16f688'
1655                    ; line_number = 16
1656                    ; library rb2bus entered
1657            
1658                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1659                    ; # All rights reserved.
1660            
1661                    ; # This module provides some procedures for accessing a RoboBricks2
1662                    ; # bus via a UART.
1663                    ; #
1664                    ; # This procedure defines the following procedures:
1665                    ; #
1666                    ; # {rb2bus_select_wait}  This procedure waits for the module to become selected
1667                    ; # {rb2bus_deselect}     This procedure causes this module to be deselected.
1668                    ; # {rb2bus_byte_get}     This procedure will get a byte form the bus.
1669                    ; # {rb2bus_byte_put}     This procedure will send a byte to the bus.
1670                    ; #
1671                    ; # The global variable {rb2bus_error} is set to 1 whenever the procedures
1672                    ; # feel like there is a command decoding error.
1673                    ; #
1674                    ; # The way to use these procedures is quite as follows:
1675                    ; #
1676                    ; #    # Comamnd byte variable:
1677                    ; #    local command byte
1678                    ; #
1679                    ; #    # Other initialize code goes here:
1680                    ; #
1681                    ; #    # Process commands from bus master:
1682                    ; #    loop_forever
1683                    ; #        rb2bus_error := _true
1684                    ; #	 while rb2bus_error
1685                    ; #	     call rb2bus_select_wait()
1686                    ; #	     command := rb2bus_byte_get()
1687                    ; #
1688                    ; #        # Decode command:
1689                    ; #	 switch command >> 6
1690                    ; #	   ...
1691                    ; #             case 5:
1692                    ; #	        # 0000 0101 (Foo command):
1693                    ; #	          if !rb2bus_error
1694                    ; #		      # Do foo command:
1695                    ; #
1696                    ; # The key concept behind these procedures is to make command
1697                    ; # decoding for the slave module easy.  If the slave module
1698                    ; # is in the middle of command decoding and the master suddenly
1699                    ; # sends out a module select command, we need to gracefully recover
1700                    ; # from the problem.  A command should only be executed if
1701                    ; # {rb2bus_error} is not set.  If {rb2bus_error} is set, we want
1702                    ; # to gracefully get back to the beginning of the loop without
1703                    ; # doing any damage.  Once {rb2bus_error} is set, all calls to
1704                    ; # {rb2bus_byte_get} return 0 and all calls to {rb2bus_byte_put}
1705                    ; # do nothing.  At the beginning of the loop, {rb2bus_error} is
1706                    ; # cleared by the {rb2bus_select_wait}() procedure and we have
1707                    ; # recovered from the situation.
1708            
1709                    ; buffer = 'rb2bus'
1710                    ; line_number = 54
1711                    ; library rb2_constants entered
1712            
1713                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich.
1714                    ; # All rights reserved.
1715            
1716                    ; buffer = 'rb2_constants'
1717                    ; line_number = 6
1718                    ; constant rb2_ok = 0xa5
1719 000000a5 = rb2_ok equ 165
1720            
1721                    ; line_number = 8
1722                    ; constant rb2_common_address_set = 0xfc
1723 000000fc = rb2_common_address_set equ 252
1724                    ; line_number = 9
1725                    ; constant rb2_common_id_next = 0xfd
1726 000000fd = rb2_common_id_next equ 253
1727                    ; line_number = 10
1728                    ; constant rb2_common_id_start = 0xfe
1729 000000fe = rb2_common_id_start equ 254
1730                    ; line_number = 11
1731                    ; constant rb2_common_deselect = 0xff
1732 000000ff = rb2_common_deselect equ 255
1733            
1734                    ; line_number = 13
1735                    ; constant rb2_laser1_address = 1
1736 00000001 = rb2_laser1_address equ 1
1737                    ; line_number = 14
1738                    ; constant rb2_laser1_sense_read = 0
1739 00000000 = rb2_laser1_sense_read equ 0
1740                    ; line_number = 15
1741                    ; constant rb2_laser1_enable_read = 1
1742 00000001 = rb2_laser1_enable_read equ 1
1743                    ; line_number = 16
1744                    ; constant rb2_laser1_enable_clear = 2
1745 00000002 = rb2_laser1_enable_clear equ 2
1746                    ; line_number = 17
1747                    ; constant rb2_laser1_enable_set = 3
1748 00000003 = rb2_laser1_enable_set equ 3
1749            
1750                    ; line_number = 19
1751                    ; constant rb2_minimotor2_address = 2
1752 00000002 = rb2_minimotor2_address equ 2
1753                    ; line_number = 20
1754                    ; constant rb2_midimotor2_address = 3
1755 00000003 = rb2_midimotor2_address equ 3
1756                    ; line_number = 21
1757                    ; constant rb2_motor0_speed_get = 0
1758 00000000 = rb2_motor0_speed_get equ 0
1759                    ; line_number = 22
1760                    ; constant rb2_motor0_speed_set = 1
1761 00000001 = rb2_motor0_speed_set equ 1
1762                    ; line_number = 23
1763                    ; constant rb2_motor1_speed_get = 2
1764 00000002 = rb2_motor1_speed_get equ 2
1765                    ; line_number = 24
1766                    ; constant rb2_motor1_speed_set = 3
1767 00000003 = rb2_motor1_speed_set equ 3
1768                    ; line_number = 25
1769                    ; constant rb2_duty_cycle_get = 4
1770 00000004 = rb2_duty_cycle_get equ 4
1771                    ; line_number = 26
1772                    ; constant rb2_duty_cycle_set = 8
1773 00000008 = rb2_duty_cycle_set equ 8
1774            
1775                    ; line_number = 28
1776                    ; constant rb2_irdistance2_address = 4
1777 00000004 = rb2_irdistance2_address equ 4
1778                    ; line_number = 29
1779                    ; constant rb2_irdistance2_raw0_get = 0
1780 00000000 = rb2_irdistance2_raw0_get equ 0
1781                    ; line_number = 30
1782                    ; constant rb2_irdistance2_raw1_get = 1
1783 00000001 = rb2_irdistance2_raw1_get equ 1
1784                    ; line_number = 31
1785                    ; constant rb2_irdistance2_smooth0_get = 2
1786 00000002 = rb2_irdistance2_smooth0_get equ 2
1787                    ; line_number = 32
1788                    ; constant rb2_irdistance2_smooth1_get = 3
1789 00000003 = rb2_irdistance2_smooth1_get equ 3
1790                    ; line_number = 33
1791                    ; constant rb2_irdistance2_linear0_get = 4
1792 00000004 = rb2_irdistance2_linear0_get equ 4
1793                    ; line_number = 34
1794                    ; constant rb2_irdistance2_linear1_get = 6
1795 00000006 = rb2_irdistance2_linear1_get equ 6
1796            
1797                    ; line_number = 36
1798                    ; constant rb2_shaft2_address = 5
1799 00000005 = rb2_shaft2_address equ 5
1800                    ; line_number = 37
1801                    ; constant rb2_shaft2_count_latch = 0
1802 00000000 = rb2_shaft2_count_latch equ 0
1803                    ; line_number = 38
1804                    ; constant rb2_shaft2_count_clear = 1
1805 00000001 = rb2_shaft2_count_clear equ 1
1806                    ; line_number = 39
1807                    ; constant rb2_shaft2_shaft0_high_get = 2
1808 00000002 = rb2_shaft2_shaft0_high_get equ 2
1809                    ; line_number = 40
1810                    ; constant rb2_shaft2_shaft1_high_get = 3
1811 00000003 = rb2_shaft2_shaft1_high_get equ 3
1812                    ; line_number = 41
1813                    ; constant rb2_shaft2_continue_get = 4
1814 00000004 = rb2_shaft2_continue_get equ 4
1815                    ; line_number = 42
1816                    ; constant rb2_shaft2_shaft0_low_get = rb2_shaft2_continue_get
1817 00000004 = rb2_shaft2_shaft0_low_get equ 4
1818                    ; line_number = 43
1819                    ; constant rb2_shaft2_shaft1_low_get = rb2_shaft2_continue_get
1820 00000004 = rb2_shaft2_shaft1_low_get equ 4
1821                    ; line_number = 44
1822                    ; constant rb2_shaft2_x_get = 0x10
1823 00000010 = rb2_shaft2_x_get equ 16
1824                    ; line_number = 45
1825                    ; constant rb2_shaft2_y_get = 0x11
1826 00000011 = rb2_shaft2_y_get equ 17
1827                    ; line_number = 46
1828                    ; constant rb2_shaft2_bearing16_get = 0x12
1829 00000012 = rb2_shaft2_bearing16_get equ 18
1830                    ; line_number = 47
1831                    ; constant rb2_shaft2_bearing8_get = 0x13
1832 00000013 = rb2_shaft2_bearing8_get equ 19
1833                    ; line_number = 48
1834                    ; constant rb2_shaft2_target_x_get = 0x14
1835 00000014 = rb2_shaft2_target_x_get equ 20
1836                    ; line_number = 49
1837                    ; constant rb2_shaft2_target_y_get = 0x15
1838 00000015 = rb2_shaft2_target_y_get equ 21
1839                    ; line_number = 50
1840                    ; constant rb2_shaft2_target_bearing16_get = 0x16
1841 00000016 = rb2_shaft2_target_bearing16_get equ 22
1842                    ; line_number = 51
1843                    ; constant rb2_shaft2_target_bearing8_get = 0x17
1844 00000017 = rb2_shaft2_target_bearing8_get equ 23
1845                    ; line_number = 52
1846                    ; constant rb2_shaft2_target_distance_get = 0x18
1847 00000018 = rb2_shaft2_target_distance_get equ 24
1848                    ; line_number = 53
1849                    ; constant rb2_shaft2_wheel_spacing_get = 0x19
1850 00000019 = rb2_shaft2_wheel_spacing_get equ 25
1851                    ; line_number = 54
1852                    ; constant rb2_shaft2_wheel_ticks_get = 0x1a
1853 0000001a = rb2_shaft2_wheel_ticks_get equ 26
1854                    ; line_number = 55
1855                    ; constant rb2_shaft2_wheel_diameter_get = 0x1b
1856 0000001b = rb2_shaft2_wheel_diameter_get equ 27
1857                    ; line_number = 56
1858                    ; constant rb2_shaft2_count_iteration_get = 0x1c
1859 0000001c = rb2_shaft2_count_iteration_get equ 28
1860                    ; line_number = 57
1861                    ; constant rb2_shaft2_counter_signs_get = 0x1d
1862 0000001d = rb2_shaft2_counter_signs_get equ 29
1863                    ; line_number = 58
1864                    ; constant rb2_shaft2_x_set = 0x20
1865 00000020 = rb2_shaft2_x_set equ 32
1866                    ; line_number = 59
1867                    ; constant rb2_shaft2_y_set = 0x21
1868 00000021 = rb2_shaft2_y_set equ 33
1869                    ; line_number = 60
1870                    ; constant rb2_shaft2_bearing16_set = 0x22
1871 00000022 = rb2_shaft2_bearing16_set equ 34
1872                    ; line_number = 61
1873                    ; constant rb2_shaft2_navigation_latch = 0x23
1874 00000023 = rb2_shaft2_navigation_latch equ 35
1875                    ; line_number = 62
1876                    ; constant rb2_shaft2_target_x_set = 0x24
1877 00000024 = rb2_shaft2_target_x_set equ 36
1878                    ; line_number = 63
1879                    ; constant rb2_shaft2_target_y_set = 0x25
1880 00000025 = rb2_shaft2_target_y_set equ 37
1881                    ; line_number = 64
1882                    ; constant rb2_shaft2_wheel_spacing_set = 0x29
1883 00000029 = rb2_shaft2_wheel_spacing_set equ 41
1884                    ; line_number = 65
1885                    ; constant rb2_shaft2_wheel_ticks_set = 0x2a
1886 0000002a = rb2_shaft2_wheel_ticks_set equ 42
1887                    ; line_number = 66
1888                    ; constant rb2_shaft2_wheel_diameter_set = 0x2b
1889 0000002b = rb2_shaft2_wheel_diameter_set equ 43
1890                    ; line_number = 67
1891                    ; constant rb2_shaft2_counter_signs_set = 0x2c
1892 0000002c = rb2_shaft2_counter_signs_set equ 44
1893            
1894                    ; line_number = 69
1895                    ; constant rb2_orient5_address = 6
1896 00000006 = rb2_orient5_address equ 6
1897            
1898                    ; line_number = 71
1899                    ; constant rb2_compass8_address = 7
1900 00000007 = rb2_compass8_address equ 7
1901            
1902                    ; line_number = 73
1903                    ; constant rb2_io8_address = 8
1904 00000008 = rb2_io8_address equ 8
1905                    ; line_number = 74
1906                    ; constant rb2_io8_digital8_get = 0
1907 00000000 = rb2_io8_digital8_get equ 0
1908                    ; line_number = 75
1909                    ; constant rb2_io8_digital8_set = 1
1910 00000001 = rb2_io8_digital8_set equ 1
1911                    ; line_number = 76
1912                    ; constant rb2_io8_direction_get = 2
1913 00000002 = rb2_io8_direction_get equ 2
1914                    ; line_number = 77
1915                    ; constant rb2_io8_direction_set = 3
1916 00000003 = rb2_io8_direction_set equ 3
1917                    ; line_number = 78
1918                    ; constant rb2_io8_analog_mask_get = 4
1919 00000004 = rb2_io8_analog_mask_get equ 4
1920                    ; line_number = 79
1921                    ; constant rb2_io8_analog_mask_set = 5
1922 00000005 = rb2_io8_analog_mask_set equ 5
1923                    ; line_number = 80
1924                    ; constant rb2_io8_analog8_get = 0x10
1925 00000010 = rb2_io8_analog8_get equ 16
1926                    ; line_number = 81
1927                    ; constant rb2_io8_analog10_get = 0x18
1928 00000018 = rb2_io8_analog10_get equ 24
1929                    ; line_number = 82
1930                    ; constant rb2_low_set = 0x20
1931 00000020 = rb2_low_set equ 32
1932                    ; line_number = 83
1933                    ; constant rb2_high_set = 0x30
1934 00000030 = rb2_high_set equ 48
1935            
1936                    ; line_number = 85
1937                    ; constant rb2_sonar2_address = 9
1938 00000009 = rb2_sonar2_address equ 9
1939            
1940                    ; line_number = 87
1941                    ; constant rb2_voice1_address = 10
1942 0000000a = rb2_voice1_address equ 10
1943            
1944                    ; line_number = 89
1945                    ; constant rb2_servo4_address = 11
1946 0000000b = rb2_servo4_address equ 11
1947                    ; line_number = 90
1948                    ; constant rb2_servo4_servo0 = 0
1949 00000000 = rb2_servo4_servo0 equ 0
1950                    ; line_number = 91
1951                    ; constant rb2_servo4_servo1 = 1
1952 00000001 = rb2_servo4_servo1 equ 1
1953                    ; line_number = 92
1954                    ; constant rb2_servo4_servo2 = 2
1955 00000002 = rb2_servo4_servo2 equ 2
1956                    ; line_number = 93
1957                    ; constant rb2_servo4_servo3 = 3
1958 00000003 = rb2_servo4_servo3 equ 3
1959                    ; line_number = 94
1960                    ; constant rb2_servo4_quick_set = 0
1961 00000000 = rb2_servo4_quick_set equ 0
1962                    ; line_number = 95
1963                    ; constant rb2_servo4_quick_low = 0
1964 00000000 = rb2_servo4_quick_low equ 0
1965                    ; line_number = 96
1966                    ; constant rb2_servo4_quick_center = 40
1967 00000028 = rb2_servo4_quick_center equ 40
1968                    ; line_number = 97
1969                    ; constant rb2_servo4_quick_high = 0x7c
1970 0000007c = rb2_servo4_quick_high equ 124
1971                    ; line_number = 98
1972                    ; constant rb2_servo4_high_low_set = 0x80
1973 00000080 = rb2_servo4_high_low_set equ 128
1974                    ; line_number = 99
1975                    ; constant rb2_servo4_short_high_low_set = 0x84
1976 00000084 = rb2_servo4_short_high_low_set equ 132
1977                    ; line_number = 100
1978                    ; constant rb2_servo4_high_set = 0x88
1979 00000088 = rb2_servo4_high_set equ 136
1980                    ; line_number = 101
1981                    ; constant rb2_servo4_low_set = 0x8c
1982 0000008c = rb2_servo4_low_set equ 140
1983                    ; line_number = 102
1984                    ; constant rb2_servo4_enables_set = 0x90
1985 00000090 = rb2_servo4_enables_set equ 144
1986                    ; line_number = 103
1987                    ; constant rb2_servo4_enable0 = 1
1988 00000001 = rb2_servo4_enable0 equ 1
1989                    ; line_number = 104
1990                    ; constant rb2_servo4_enable1 = 2
1991 00000002 = rb2_servo4_enable1 equ 2
1992                    ; line_number = 105
1993                    ; constant rb2_servo4_enable2 = 4
1994 00000004 = rb2_servo4_enable2 equ 4
1995                    ; line_number = 106
1996                    ; constant rb2_servo4_enable3 = 8
1997 00000008 = rb2_servo4_enable3 equ 8
1998                    ; line_number = 107
1999                    ; constant rb2_servo4_enable_all = 0xf
2000 0000000f = rb2_servo4_enable_all equ 15
2001                    ; line_number = 108
2002                    ; constant rb2_servo4_enable_none = 0
2003 00000000 = rb2_servo4_enable_none equ 0
2004                    ; line_number = 109
2005                    ; constant rb2_servo4_high_get = 0xa0
2006 000000a0 = rb2_servo4_high_get equ 160
2007                    ; line_number = 110
2008                    ; constant rb2_servo4_low_get = 0xa4
2009 000000a4 = rb2_servo4_low_get equ 164
2010                    ; line_number = 111
2011                    ; constant rb2_servo4_enables_get = 0xa8
2012 000000a8 = rb2_servo4_enables_get equ 168
2013            
2014                    ; line_number = 113
2015                    ; constant rb2_controller28_address = 28
2016 0000001c = rb2_controller28_address equ 28
2017            
2018                    ; line_number = 115
2019                    ; constant rb2_lcd32_address = 32
2020 00000020 = rb2_lcd32_address equ 32
2021                    ; line_number = 116
2022                    ; constant rb2_lcd32_row_set = 4
2023 00000004 = rb2_lcd32_row_set equ 4
2024                    ; line_number = 117
2025                    ; constant rb2_lcd32_row0_set = rb2_lcd32_row_set | 0
2026 00000004 = rb2_lcd32_row0_set equ 4
2027                    ; line_number = 118
2028                    ; constant rb2_lcd32_row1_set = rb2_lcd32_row_set | 1
2029 00000005 = rb2_lcd32_row1_set equ 5
2030                    ; line_number = 119
2031                    ; constant rb2_lcd32_row2_set = rb2_lcd32_row_set | 2
2032 00000006 = rb2_lcd32_row2_set equ 6
2033                    ; line_number = 120
2034                    ; constant rb2_lcd32_row3_set = rb2_lcd32_row_set | 3
2035 00000007 = rb2_lcd32_row3_set equ 7
2036                    ; line_number = 121
2037                    ; constant rb2_lcd32_new_line = 0xa
2038 0000000a = rb2_lcd32_new_line equ 10
2039                    ; line_number = 122
2040                    ; constant rb2_lcd32_form_feed = 0xc
2041 0000000c = rb2_lcd32_form_feed equ 12
2042                    ; line_number = 123
2043                    ; constant rb2_lcd32_carriage_return = 0xd
2044 0000000d = rb2_lcd32_carriage_return equ 13
2045                    ; line_number = 124
2046                    ; constant rb2_lcd32_column_set = 0x10
2047 00000010 = rb2_lcd32_column_set equ 16
2048            
2049            
2050                    ; buffer = 'rb2bus'
2051                    ; line_number = 54
2052                    ; library rb2_constants exited
2053                    ; line_number = 55
2054                    ; library rb2bus_globals entered
2055            
2056                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
2057                    ; # All rights reserved.
2058            
2059                    ; # These are the global variables used by both the {rb2bus} and
2060                    ; # the various {rb2bus_picXXXX} libraries.  Poll based firmware
2061                    ; # uses both libraries, whereas interrupt driven software only
2062                    ; # uses the {rb2bus_picXXX} libraries.
2063            
2064                    ; buffer = 'rb2bus_globals'
2065                    ; line_number = 11
2066                    ; global rb2bus_selected bit	# 
2067 0000006f = rb2bus_selected___byte equ globals___0+79
2068 00000000 = rb2bus_selected___bit equ 0
2069                    ; line_number = 12
2070                    ; global rb2bus_error bit		# Global error bit
2071 0000006f = rb2bus_error___byte equ globals___0+79
2072 00000001 = rb2bus_error___bit equ 1
2073                    ; line_number = 13
2074                    ; global rb2bus_address byte	# Bus address to respond to
2075 00000020 = rb2bus_address equ globals___0
2076                    ; line_number = 14
2077                    ; global rb2bus_index byte	# Index into id information
2078 00000021 = rb2bus_index equ globals___0+1
2079            
2080            
2081                    ; buffer = 'rb2bus'
2082                    ; line_number = 55
2083                    ; library rb2bus_globals exited
2084            
2085                    ; Delaying code generation for procedure  rb2bus_select_wait
2086                    ; Delaying code generation for procedure  rb2bus_deselect
2087                    ; Delaying code generation for procedure  rb2bus_byte_get
2088                    ; Delaying code generation for procedure  rb2bus_byte_put
2089                    ; Delaying code generation for procedure  rb2bus_command
2090            
2091                    ; buffer = 'rb2bus_pic16f688'
2092                    ; line_number = 16
2093                    ; library rb2bus exited
2094            
2095                    ; Delaying code generation for procedure  rb2bus_initialize
2096                    ; line_number = 62
2097                    ; constant rb2bus_eedata_address = 0xfe
2098 000000fe = rb2bus_eedata_address equ 254
2099            
2100                    ; Delaying code generation for procedure  rb2bus_eedata_read
2101                    ; Delaying code generation for procedure  rb2bus_eedata_write
2102            
2103                    ; buffer = 'io8'
2104                    ; line_number = 20
2105                    ; library rb2bus_pic16f688 exited
2106            
2107                    ; # This module uses 20MHz crystal oscillator; hence mode EC=External Clock:
2108            
2109                    ; # All pins on this package are used except RA3.
2110                    ; line_number = 26
2111                    ; package pdip
2112                    ; line_number = 27
2113                    ; pin 1 = power_supply
2114                    ; line_number = 28
2115                    ;  pin 2 = osc1
2116                    ; line_number = 29
2117                    ;  pin 3 = ra4_in, name=io5, mask=io5_mask, bit=io5_bit
2118 00000005 = io5___byte equ _porta
2119 00000004 = io5___bit equ 4
2120 00000010 = io5_mask equ 16
2121 00000004 = io5_bit equ 4
2122                    ; line_number = 30
2123                    ;  pin 4 = ra3_nc, name=nc1
2124 00000005 = nc1___byte equ _porta
2125 00000003 = nc1___bit equ 3
2126                    ; line_number = 31
2127                    ;  pin 5 = rx, name=rx, bit=rx_bit
2128 00000007 = rx___byte equ _portc
2129 00000005 = rx___bit equ 5
2130 00000005 = rx_bit equ 5
2131                    ; line_number = 32
2132                    ;  pin 6 = tx, name=tx, bit=tx_bit
2133 00000007 = tx___byte equ _portc
2134 00000004 = tx___bit equ 4
2135 00000004 = tx_bit equ 4
2136                    ; line_number = 33
2137                    ;  pin 7 = rc3_in, name=io1, mask=io1_mask, bit=io1_bit
2138 00000007 = io1___byte equ _portc
2139 00000003 = io1___bit equ 3
2140 00000008 = io1_mask equ 8
2141 00000003 = io1_bit equ 3
2142                    ; line_number = 34
2143                    ;  pin 8 = rc2_in, name=io2, mask=io2_mask, bit=io2_bit
2144 00000007 = io2___byte equ _portc
2145 00000002 = io2___bit equ 2
2146 00000004 = io2_mask equ 4
2147 00000002 = io2_bit equ 2
2148                    ; line_number = 35
2149                    ;  pin 9 = rc1_in, name=io0, mask=io0_mask, bit=io0_bit
2150 00000007 = io0___byte equ _portc
2151 00000001 = io0___bit equ 1
2152 00000002 = io0_mask equ 2
2153 00000001 = io0_bit equ 1
2154                    ; line_number = 36
2155                    ;  pin 10 = rc0_in, name=io3, mask=io3_mask, bit=io3_bit
2156 00000007 = io3___byte equ _portc
2157 00000000 = io3___bit equ 0
2158 00000001 = io3_mask equ 1
2159 00000000 = io3_bit equ 0
2160                    ; line_number = 37
2161                    ;  pin 11 = ra2_in, name=io7, mask=io7_mask, bit=io7_bit
2162 00000005 = io7___byte equ _porta
2163 00000002 = io7___bit equ 2
2164 00000004 = io7_mask equ 4
2165 00000002 = io7_bit equ 2
2166                    ; line_number = 38
2167                    ;  pin 12 = ra1_in, name=io4, mask=io4_mask, bit=io4_bit
2168 00000005 = io4___byte equ _porta
2169 00000001 = io4___bit equ 1
2170 00000002 = io4_mask equ 2
2171 00000001 = io4_bit equ 1
2172                    ; line_number = 39
2173                    ;  pin 13 = ra0_in, name=io6, mask=io6_mask, bit=io6_bit
2174 00000005 = io6___byte equ _porta
2175 00000000 = io6___bit equ 0
2176 00000001 = io6_mask equ 1
2177 00000000 = io6_bit equ 0
2178                    ; line_number = 40
2179                    ;  pin 14 = ground
2180            
2181                    ; line_number = 42
2182                    ; global adc_lsbs[8] array[byte]
2183 0000002c = adc_lsbs equ globals___0+12
2184                    ; line_number = 43
2185                    ; global adc_msbs[8] array[byte]
2186 00000034 = adc_msbs equ globals___0+20
2187            
2188                    ; line_number = 45
2189                    ; origin 0
2190   0000 :           org     0
2191            
2192                    ; #procedure start
2193                    ; #    arguments_none
2194                    ; #    returns_nothing
2195                    ; #    return_suppress
2196                    ; #
2197                    ; #    assemble
2198                    ; #	codebank start, main
2199                    ; #	goto main
2200                    ; #
2201                    ; #origin 4
2202            
2203                    ; line_number = 58
2204                    ; global time_high bit
2205 0000006f = time_high___byte equ globals___0+79
2206 00000004 = time_high___bit equ 4
2207                    ; line_number = 59
2208                    ; global pulse_low byte
2209 0000003c = pulse_low equ globals___0+28
2210                    ; line_number = 60
2211                    ; global pulse_high byte
2212 0000003d = pulse_high equ globals___0+29
2213                    ; line_number = 61
2214                    ; global pulse_count byte
2215 0000003e = pulse_count equ globals___0+30
2216                    ; line_number = 62
2217                    ; global analog_threshold byte
2218 0000003f = analog_threshold equ globals___0+31
2219            
2220                    ; #procedure interrupt
2221                    ; #    arguments_none
2222                    ; #    returns_nothing
2223                    ; #
2224                    ; #    local a byte
2225                    ; #
2226                    ; #    # No matter what, turn the counter off:
2227                    ; #    _tmr1on := _false
2228                    ; #
2229                    ; #    # Make sure it is the register A interrupt flag:
2230                    ; #    if _raif
2231                    ; #	# We need to read port A to clear the condition.  Doing a
2232                    ; #	# bit test does not read port A and (hence) does not clear
2233                    ; #	# the condition:
2234                    ; #	a := _porta
2235                    ; #	_raif := _false
2236                    ; #
2237                    ; #	# Bump pulse counter:
2238                    ; #	pulse_count := pulse_count + 1
2239                    ; #
2240                    ; #	# IO7 bit changed; turn the counter on and off:
2241                    ; #	if time_high
2242                    ; #	    # Measure the length of a high pulse:
2243                    ; #	    if !(a@io7_bit)
2244                    ; #		# We just went low; record the result:
2245                    ; #		pulse_low := _tmr1l
2246                    ; #		pulse_high := _tmr1h
2247                    ; #	else
2248                    ; #	    # Measure the length of a low pulse:
2249                    ; #	    if a@io7_bit
2250                    ; #		# We just went high; record the resulta:
2251                    ; #		pulse_low := _tmr1l
2252                    ; #		pulse_high := _tmr1h
2253                    ; #
2254                    ; #	# Zero the counter and turn it on:
2255                    ; #	_tmr1h := 0
2256                    ; #	_tmr1l := 0
2257                    ; #	_tmr1on := _true
2258            
2259            
2260                    ; line_number = 104
2261                    ;info   104, 0
2262                    ; procedure main
2263   0000 :   main:
2264                    ; Initialize some registers
2265 0000 019f          clrf    _adcon0
2266 0001 1683          bsf     __rp0___byte, __rp0___bit
2267 0002 0191          clrf    _ansel
2268 0003 3007          movlw   7
2269 0004 1283          bcf     __rp0___byte, __rp0___bit
2270 0005 0099          movwf   _cmcon0
2271 0006 303f          movlw   63
2272 0007 1683          bsf     __rp0___byte, __rp0___bit
2273 0008 0085          movwf   _trisa
2274 0009 303f          movlw   63
2275 000a 0087          movwf   _trisc
2276                    ; arguments_none
2277                    ; line_number = 106
2278                    ;  returns_nothing
2279            
2280                    ; # This procedure initializes everything and does command decoding.
2281            
2282            
2283                    ; line_number = 111
2284                    ;  local command byte
2285 00000040 = main__command equ globals___0+32
2286                    ; line_number = 112
2287                    ;  local channel byte
2288 00000041 = main__channel equ globals___0+33
2289                    ; line_number = 113
2290                    ;  local high byte
2291 00000042 = main__high equ globals___0+34
2292                    ; line_number = 114
2293                    ;  local low byte
2294 00000043 = main__low equ globals___0+35
2295                    ; line_number = 115
2296                    ;  local result byte
2297 00000044 = main__result equ globals___0+36
2298                    ; line_number = 116
2299                    ;  local mask byte
2300 00000045 = main__mask equ globals___0+37
2301                    ; line_number = 117
2302                    ;  local mask_complement byte
2303 00000046 = main__mask_complement equ globals___0+38
2304                    ; line_number = 118
2305                    ;  local temporary byte
2306 00000047 = main__temporary equ globals___0+39
2307            
2308                    ; # For now keep interrupts off:
2309                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:X0=cu=>X0)
2310                    ; line_number = 121
2311                    ;  _gie := _false
2312                    ;info   121, 11
2313 000b 138b          bcf     _gie___byte, _gie___bit
2314            
2315                    ; line_number = 123
2316                    ;  call rb2bus_initialize(8)
2317                    ;info   123, 12
2318 000c 3008          movlw   8
2319 000d 1283          bcf     __rp0___byte, __rp0___bit
2320 000e 22d6          call    rb2bus_initialize
2321            
2322                    ; line_number = 125
2323                    ;  call direction_set(0xff)
2324                    ;info   125, 15
2325 000f 30ff          movlw   255
2326 0010 2219          call    direction_set
2327            
2328                    ; # We are running at 16MHz.  We want Tad to be as close to 1.6uS
2329                    ; # as possible.  1/(16MHz/32) = 2uS which is about as close as
2330                    ; # we are going to get.  Thus, ADCS<2:0> = 010.
2331                    ; line_number = 130
2332                    ;  _adcon1 := 0x20
2333                    ;info   130, 17
2334 0011 3020          movlw   32
2335 0012 1683          bsf     __rp0___byte, __rp0___bit
2336 0013 009f          movwf   _adcon1
2337            
2338                    ; line_number = 132
2339                    ;  _adcon0 := 0
2340                    ;info   132, 20
2341 0014 1283          bcf     __rp0___byte, __rp0___bit
2342 0015 019f          clrf    _adcon0
2343                    ; # A/D result is left justified (10-bits) in ADRESH::ADRESL
2344                    ; line_number = 134
2345                    ;  _adfm := _false
2346                    ;info   134, 22
2347 0016 139f          bcf     _adfm___byte, _adfm___bit
2348                    ; # Use 5 volt voltage reference:
2349                    ; line_number = 136
2350                    ;  _vcfg := _false
2351                    ;info   136, 23
2352 0017 131f          bcf     _vcfg___byte, _vcfg___bit
2353                    ; # Turn on the A/D:
2354                    ; line_number = 138
2355                    ;  _adon := _true
2356                    ;info   138, 24
2357 0018 141f          bsf     _adon___byte, _adon___bit
2358            
2359                    ; line_number = 140
2360                    ;  pulse_high := 0x12
2361                    ;info   140, 25
2362 0019 3012          movlw   18
2363 001a 00bd          movwf   pulse_high
2364                    ; line_number = 141
2365                    ;  pulse_low := 0x34
2366                    ;info   141, 27
2367 001b 3034          movlw   52
2368 001c 00bc          movwf   pulse_low
2369                    ; line_number = 142
2370                    ;  analog_threshold := 0x7f
2371                    ;info   142, 29
2372 001d 307f          movlw   127
2373 001e 00bf          movwf   analog_threshold
2374            
2375                    ; line_number = 144
2376                    ;  loop_forever start
2377   001f :   main__1:
2378                    ; # Make sure that we have been selected:
2379                    ; line_number = 146
2380                    ;  rb2bus_error := _true
2381                    ;info   146, 31
2382 001f 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2383                    ; line_number = 147
2384                    ;  while rb2bus_error start
2385   0020 :   main__2:
2386                    ;info   147, 32
2387                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2388                    ; No 1TEST: true.size=4 false.size=0
2389                    ; No 2TEST: true.size=4 false.size=0
2390                    ; 1GOTO: Single test with GOTO
2391 0020 1cef          btfss   rb2bus_error___byte, rb2bus_error___bit
2392 0021 2826          goto    main__3
2393                    ; line_number = 148
2394                    ; call rb2bus_select_wait()
2395                    ;info   148, 34
2396 0022 2239          call    rb2bus_select_wait
2397                    ; line_number = 149
2398                    ;  command := rb2bus_byte_get()
2399                    ;info   149, 35
2400 0023 2258          call    rb2bus_byte_get
2401 0024 00c0          movwf   main__command
2402            
2403 0025 2820          goto    main__2
2404                    ; Recombine size1 = 0 || size2 = 0
2405   0026 :   main__3:
2406                    ; line_number = 147
2407                    ;  while rb2bus_error done
2408                    ; line_number = 151
2409                    ; switch command >> 6 start
2410                    ;info   151, 38
2411                    ; switch_before:(data:00=uu=>00 code:X0=cu=>X0) size=7
2412 0026 3000          movlw   main__44>>8
2413 0027 008a          movwf   __pclath
2414 00000061 = main__45 equ globals___0+65
2415 0028 0e40          swapf   main__command,w
2416 0029 00e1          movwf   main__45
2417 002a 0ce1          rrf     main__45,f
2418 002b 0c61          rrf     main__45,w
2419 002c 3903          andlw   3
2420                    ; switch after expression:(data:00=uu=>00 code:X0=cu=>X0)
2421 002d 3e2f          addlw   main__44
2422 002e 0082          movwf   __pcl
2423                    ; page_group 4
2424   002f :   main__44:
2425 002f 2833          goto    main__41
2426 0030 28dc          goto    main__46
2427 0031 2891          goto    main__42
2428 0032 28c9          goto    main__43
2429                    ; line_number = 152
2430                    ; case 0
2431   0033 :   main__41:
2432                    ; # 00xx xxxx:
2433                    ; line_number = 154
2434                    ;  switch (command >> 3) & 7 start
2435                    ;info   154, 51
2436                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2437 0033 3000          movlw   main__22>>8
2438 0034 008a          movwf   __pclath
2439 00000061 = main__23 equ globals___0+65
2440 0035 0c40          rrf     main__command,w
2441 0036 00e1          movwf   main__23
2442 0037 0ce1          rrf     main__23,f
2443 0038 0c61          rrf     main__23,w
2444 0039 3907          andlw   7
2445                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2446 003a 3e3c          addlw   main__22
2447 003b 0082          movwf   __pcl
2448                    ; page_group 8
2449   003c :   main__22:
2450 003c 2844          goto    main__17
2451 003d 2890          goto    main__24
2452 003e 2870          goto    main__18
2453 003f 2878          goto    main__19
2454 0040 2880          goto    main__20
2455 0041 2880          goto    main__20
2456 0042 2888          goto    main__21
2457 0043 2888          goto    main__21
2458                    ; line_number = 155
2459                    ; case 0
2460   0044 :   main__17:
2461                    ; # 0000 0xxx:
2462                    ; line_number = 157
2463                    ;  switch command & 7 start
2464                    ;info   157, 68
2465                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2466                    ; line_number = 182
2467                    ; case_maximum 7
2468 0044 3000          movlw   main__13>>8
2469 0045 008a          movwf   __pclath
2470 0046 3007          movlw   7
2471 0047 0540          andwf   main__command,w
2472                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2473 0048 3e4a          addlw   main__13
2474 0049 0082          movwf   __pcl
2475                    ; page_group 8
2476   004a :   main__13:
2477 004a 2852          goto    main__7
2478 004b 2855          goto    main__8
2479 004c 285c          goto    main__9
2480 004d 285f          goto    main__10
2481 004e 2866          goto    main__11
2482 004f 2869          goto    main__12
2483 0050 286f          goto    main__14
2484 0051 286f          goto    main__14
2485                    ; line_number = 158
2486                    ; case 0
2487   0052 :   main__7:
2488                    ; # 0000 0000 (Digital8_Read):
2489                    ; line_number = 160
2490                    ;  call rb2bus_byte_put(digital_read())
2491                    ;info   160, 82
2492 0052 21cf          call    digital_read
2493 0053 227a          call    rb2bus_byte_put
2494 0054 286f          goto    main__14
2495                    ; line_number = 161
2496                    ; case 1
2497   0055 :   main__8:
2498                    ; # 0000 0001 (Digital8_Write):
2499                    ; line_number = 163
2500                    ;  command := rb2bus_byte_get()
2501                    ;info   163, 85
2502 0055 2258          call    rb2bus_byte_get
2503 0056 00c0          movwf   main__command
2504                    ; line_number = 164
2505                    ;  if !rb2bus_error start
2506                    ;info   164, 87
2507                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2508                    ; No 1TEST: true.size=0 false.size=2
2509                    ; No 2TEST: true.size=0 false.size=2
2510                    ; 1GOTO: Single test with GOTO
2511 0057 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2512 0058 285b          goto    main__4
2513                    ; line_number = 165
2514                    ; call digital_set(command)
2515                    ;info   165, 89
2516 0059 0840          movf    main__command,w
2517 005a 21e6          call    digital_set
2518   005b :   main__4:
2519                    ; Recombine size1 = 0 || size2 = 0
2520                    ; line_number = 164
2521                    ;  if !rb2bus_error done
2522 005b 286f          goto    main__14
2523                    ; line_number = 166
2524                    ; case 2
2525   005c :   main__9:
2526                    ; # 0000 0010 (Direction_Read):
2527                    ; line_number = 168
2528                    ;  call rb2bus_byte_put(direction_read())
2529                    ;info   168, 92
2530 005c 21fe          call    direction_read
2531 005d 227a          call    rb2bus_byte_put
2532 005e 286f          goto    main__14
2533                    ; line_number = 169
2534                    ; case 3
2535   005f :   main__10:
2536                    ; # 0000 0011 (Direction_Set):
2537                    ; line_number = 171
2538                    ;  command := rb2bus_byte_get()
2539                    ;info   171, 95
2540 005f 2258          call    rb2bus_byte_get
2541 0060 00c0          movwf   main__command
2542                    ; line_number = 172
2543                    ;  if !rb2bus_error start
2544                    ;info   172, 97
2545                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2546                    ; No 1TEST: true.size=0 false.size=2
2547                    ; No 2TEST: true.size=0 false.size=2
2548                    ; 1GOTO: Single test with GOTO
2549 0061 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2550 0062 2865          goto    main__5
2551                    ; line_number = 173
2552                    ; call direction_set(command)
2553                    ;info   173, 99
2554 0063 0840          movf    main__command,w
2555 0064 2219          call    direction_set
2556   0065 :   main__5:
2557                    ; Recombine size1 = 0 || size2 = 0
2558                    ; line_number = 172
2559                    ;  if !rb2bus_error done
2560 0065 286f          goto    main__14
2561                    ; line_number = 174
2562                    ; case 4
2563   0066 :   main__11:
2564                    ; # 0000 0100 (Analog_Mask_Read):
2565                    ; line_number = 176
2566                    ;  call rb2bus_byte_put(analog_mask_read())
2567                    ;info   176, 102
2568 0066 21a1          call    analog_mask_read
2569 0067 227a          call    rb2bus_byte_put
2570 0068 286f          goto    main__14
2571                    ; line_number = 177
2572                    ; case 5
2573   0069 :   main__12:
2574                    ; # 0000 0101 (Analog_Mask_Set):
2575                    ; line_number = 179
2576                    ;  command := rb2bus_byte_get()
2577                    ;info   179, 105
2578 0069 2258          call    rb2bus_byte_get
2579 006a 00c0          movwf   main__command
2580                    ; line_number = 180
2581                    ;  if !rb2bus_error start
2582                    ;info   180, 107
2583                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2584                    ; No 1TEST: true.size=0 false.size=2
2585                    ; No 2TEST: true.size=0 false.size=2
2586                    ; 1GOTO: Single test with GOTO
2587 006b 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2588 006c 286f          goto    main__6
2589                    ; line_number = 181
2590                    ; call analog_mask_set(command)
2591                    ;info   181, 109
2592 006d 0840          movf    main__command,w
2593 006e 21b8          call    analog_mask_set
2594   006f :   main__6:
2595                    ; Recombine size1 = 0 || size2 = 0
2596                    ; line_number = 180
2597                    ;  if !rb2bus_error done
2598   006f :   main__14:
2599                    ; line_number = 157
2600                    ;  switch command & 7 done
2601 006f 2890          goto    main__24
2602                    ; line_number = 183
2603                    ; case 2
2604   0070 :   main__18:
2605                    ; # 0001 0ccc (Analog8_Read):
2606                    ; #result := analog_read(command & 7)
2607                    ; line_number = 186
2608                    ;  call rb2bus_byte_put(adc_msbs[command & 7])
2609                    ;info   186, 112
2610 0070 3007          movlw   7
2611 0071 0540          andwf   main__command,w
2612 0072 3e34          addlw   adc_msbs
2613 0073 0084          movwf   __fsr
2614 0074 1383          bcf     __irp___byte, __irp___bit
2615 0075 0800          movf    __indf,w
2616 0076 227a          call    rb2bus_byte_put
2617 0077 2890          goto    main__24
2618                    ; line_number = 187
2619                    ; case 3
2620   0078 :   main__19:
2621                    ; # 0001 1ccc (Analog10_Read):
2622                    ; line_number = 189
2623                    ;  call rb2bus_byte_put(adc_lsbs[command & 7])
2624                    ;info   189, 120
2625 0078 3007          movlw   7
2626 0079 0540          andwf   main__command,w
2627 007a 3e2c          addlw   adc_lsbs
2628 007b 0084          movwf   __fsr
2629 007c 1383          bcf     __irp___byte, __irp___bit
2630 007d 0800          movf    __indf,w
2631 007e 227a          call    rb2bus_byte_put
2632 007f 2890          goto    main__24
2633                    ; line_number = 190
2634                    ; case 4, 5
2635   0080 :   main__20:
2636                    ; # 0010 dddd (Low Set):
2637                    ; line_number = 192
2638                    ;  call digital_set((digital_read() & 0xf0) | (command & 0xf))
2639                    ;info   192, 128
2640 00000061 = main__15 equ globals___0+65
2641 0080 21cf          call    digital_read
2642 0081 39f0          andlw   240
2643 0082 00e1          movwf   main__15
2644 0083 300f          movlw   15
2645 0084 0540          andwf   main__command,w
2646 0085 0461          iorwf   main__15,w
2647 0086 21e6          call    digital_set
2648 0087 2890          goto    main__24
2649                    ; line_number = 193
2650                    ; case 6, 7
2651   0088 :   main__21:
2652                    ; # 0011 dddd (High Set):
2653                    ; line_number = 195
2654                    ;  call digital_set((command << 4) | (digital_read() & 0xf))
2655                    ;info   195, 136
2656 00000061 = main__16 equ globals___0+65
2657 0088 0e40          swapf   main__command,w
2658 0089 00e1          movwf   main__16
2659 008a 30f0          movlw   240
2660 008b 05e1          andwf   main__16,f
2661 008c 21cf          call    digital_read
2662 008d 390f          andlw   15
2663 008e 0461          iorwf   main__16,w
2664 008f 21e6          call    digital_set
2665   0090 :   main__24:
2666                    ; line_number = 154
2667                    ;  switch (command >> 3) & 7 done
2668 0090 28dc          goto    main__46
2669                    ; line_number = 196
2670                    ; case 2
2671   0091 :   main__42:
2672                    ; # 10xx xxxx:
2673                    ; line_number = 198
2674                    ;  switch (command >> 3) & 7 start
2675                    ;info   198, 145
2676                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2677 0091 3000          movlw   main__34>>8
2678 0092 008a          movwf   __pclath
2679 00000061 = main__35 equ globals___0+65
2680 0093 0c40          rrf     main__command,w
2681 0094 00e1          movwf   main__35
2682 0095 0ce1          rrf     main__35,f
2683 0096 0c61          rrf     main__35,w
2684 0097 3907          andlw   7
2685                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2686 0098 3e9a          addlw   main__34
2687 0099 0082          movwf   __pcl
2688                    ; page_group 4
2689   009a :   main__34:
2690 009a 28c8          goto    main__36
2691 009b 28c8          goto    main__36
2692 009c 28c8          goto    main__36
2693 009d 289e          goto    main__33
2694                    ; line_number = 199
2695                    ; case 3
2696   009e :   main__33:
2697                    ; # 1001 1xxx:
2698                    ; line_number = 201
2699                    ;  switch command & 7 start
2700                    ;info   201, 158
2701                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2702                    ; line_number = 202
2703                    ; case_maximum 7
2704 009e 3000          movlw   main__31>>8
2705 009f 008a          movwf   __pclath
2706 00a0 3007          movlw   7
2707 00a1 0540          andwf   main__command,w
2708                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2709 00a2 3ea4          addlw   main__31
2710 00a3 0082          movwf   __pcl
2711                    ; page_group 8
2712   00a4 :   main__31:
2713 00a4 28c8          goto    main__32
2714 00a5 28c8          goto    main__32
2715 00a6 28c8          goto    main__32
2716 00a7 28c8          goto    main__32
2717 00a8 28ac          goto    main__28
2718 00a9 28af          goto    main__29
2719 00aa 28b2          goto    main__30
2720 00ab 28c8          goto    main__32
2721                    ; line_number = 203
2722                    ; case 4
2723   00ac :   main__28:
2724                    ; # 1001 1100 (Threshold Get)
2725                    ; line_number = 205
2726                    ;  call rb2bus_byte_put(analog_threshold)
2727                    ;info   205, 172
2728 00ac 083f          movf    analog_threshold,w
2729 00ad 227a          call    rb2bus_byte_put
2730 00ae 28c8          goto    main__32
2731                    ; line_number = 206
2732                    ; case 5
2733   00af :   main__29:
2734                    ; # 1001 1101 (Threshold Set)
2735                    ; line_number = 208
2736                    ;  analog_threshold := rb2bus_byte_get()
2737                    ;info   208, 175
2738 00af 2258          call    rb2bus_byte_get
2739 00b0 00bf          movwf   analog_threshold
2740 00b1 28c8          goto    main__32
2741                    ; line_number = 209
2742                    ; case 6
2743   00b2 :   main__30:
2744                    ; # 1001 1110 (Analog Thresholded Get)
2745                    ; line_number = 211
2746                    ;  result := 0
2747                    ;info   211, 178
2748 00b2 01c4          clrf    main__result
2749                    ; line_number = 212
2750                    ;  channel := 0
2751                    ;info   212, 179
2752 00b3 01c1          clrf    main__channel
2753                    ; line_number = 213
2754                    ;  while channel < 8 start
2755   00b4 :   main__25:
2756                    ;info   213, 180
2757 00b4 3008          movlw   8
2758 00b5 0241          subwf   main__channel,w
2759                    ; =>bit_code_emit@symbol(): sym=__c
2760                    ; No 1TEST: true.size=0 false.size=14
2761                    ; No 2TEST: true.size=0 false.size=14
2762                    ; 1GOTO: Single test with GOTO
2763 00b6 1803          btfsc   __c___byte, __c___bit
2764 00b7 28c6          goto    main__27
2765                    ; line_number = 214
2766                    ; high := adc_msbs[channel]
2767                    ;info   214, 184
2768 00b8 0841          movf    main__channel,w
2769 00b9 3e34          addlw   adc_msbs
2770 00ba 0084          movwf   __fsr
2771 00bb 1383          bcf     __irp___byte, __irp___bit
2772 00bc 0800          movf    __indf,w
2773 00bd 00c2          movwf   main__high
2774                    ; line_number = 215
2775                    ;  result := result >> 1
2776                    ;info   215, 190
2777                    ; Assignment of variable to self (no code needed)
2778 00be 0cc4          rrf     main__result,f
2779 00bf 13c4          bcf     main__result, 7
2780                    ; line_number = 216
2781                    ;  if high >= analog_threshold start
2782                    ;info   216, 192
2783 00c0 083f          movf    analog_threshold,w
2784 00c1 0242          subwf   main__high,w
2785                    ; =>bit_code_emit@symbol(): sym=__c
2786                    ; 1TEST: Single test with code in skip slot
2787 00c2 1803          btfsc   __c___byte, __c___bit
2788                    ; line_number = 217
2789                    ; result@7 := _true
2790                    ;info   217, 195
2791 00000044 = main__select__26___byte equ main__result
2792 00000007 = main__select__26___bit equ 7
2793 00c3 17c4          bsf     main__select__26___byte, main__select__26___bit
2794                    ; Recombine size1 = 0 || size2 = 0
2795                    ; line_number = 216
2796                    ;  if high >= analog_threshold done
2797                    ; line_number = 218
2798                    ; channel := channel + 1
2799                    ;info   218, 196
2800 00c4 0ac1          incf    main__channel,f
2801 00c5 28b4          goto    main__25
2802   00c6 :   main__27:
2803                    ; Recombine size1 = 0 || size2 = 0
2804                    ; line_number = 213
2805                    ;  while channel < 8 done
2806                    ; line_number = 219
2807                    ; call rb2bus_byte_put(result)
2808                    ;info   219, 198
2809 00c6 0844          movf    main__result,w
2810 00c7 227a          call    rb2bus_byte_put
2811   00c8 :   main__32:
2812                    ; line_number = 201
2813                    ;  switch command & 7 done
2814   00c8 :   main__36:
2815                    ; line_number = 198
2816                    ;  switch (command >> 3) & 7 done
2817 00c8 28dc          goto    main__46
2818                    ; line_number = 220
2819                    ; case 3
2820   00c9 :   main__43:
2821                    ; # 11xx xxxx:
2822                    ; line_number = 222
2823                    ;  switch (command >> 3) & 7 start
2824                    ;info   222, 201
2825                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2826 00c9 3000          movlw   main__38>>8
2827 00ca 008a          movwf   __pclath
2828 00000061 = main__39 equ globals___0+65
2829 00cb 0c40          rrf     main__command,w
2830 00cc 00e1          movwf   main__39
2831 00cd 0ce1          rrf     main__39,f
2832 00ce 0c61          rrf     main__39,w
2833 00cf 3907          andlw   7
2834                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2835 00d0 3ed2          addlw   main__38
2836 00d1 0082          movwf   __pcl
2837                    ; page_group 8
2838   00d2 :   main__38:
2839 00d2 28dc          goto    main__40
2840 00d3 28dc          goto    main__40
2841 00d4 28dc          goto    main__40
2842 00d5 28dc          goto    main__40
2843 00d6 28dc          goto    main__40
2844 00d7 28dc          goto    main__40
2845 00d8 28dc          goto    main__40
2846 00d9 28da          goto    main__37
2847                    ; line_number = 223
2848                    ; case 7
2849   00da :   main__37:
2850                    ; # 1111 1xxx:
2851                    ; line_number = 225
2852                    ;  call rb2bus_command(command)
2853                    ;info   225, 218
2854 00da 0840          movf    main__command,w
2855 00db 228e          call    rb2bus_command
2856            
2857   00dc :   main__40:
2858                    ; line_number = 222
2859                    ;  switch (command >> 3) & 7 done
2860   00dc :   main__46:
2861                    ; line_number = 151
2862                    ; switch command >> 6 done
2863                    ; line_number = 144
2864                    ;  loop_forever wrap-up
2865 00dc 281f          goto    main__1
2866                    ; line_number = 144
2867                    ;  loop_forever done
2868                    ; delay after procedure statements=non-uniform
2869            
2870            
2871            
2872            
2873                    ; # Removed code for bit toggle and bit time:
2874                    ; #	  case 1
2875                    ; #	    # 01xx xbbb:
2876                    ; #	    switch command & 7
2877                    ; #	      case 0
2878                    ; #		mask := 1
2879                    ; #	      case 1
2880                    ; #		mask := 2
2881                    ; #	      case 2
2882                    ; #		mask := 4
2883                    ; #	      case 3
2884                    ; #		mask := 8
2885                    ; #	      case 4
2886                    ; #		mask := 0x10
2887                    ; #	      case 5
2888                    ; #		mask := 0x20
2889                    ; #	      case 6
2890                    ; #		mask := 0x40
2891                    ; #	      case 7
2892                    ; #		mask := 0x80
2893                    ; #	    mask_complement := 0xff ^ mask
2894                    ; #	    switch (command >> 3) & 7
2895                    ; #	      case 0
2896                    ; #		# 0100 0bbb (Direction Mask Bit Clear):
2897                    ; #		call direction_set(direction_read() & mask_complement)
2898                    ; #	      case 1
2899                    ; #		# 0100 1bbb (Direction Mask Bit Set):
2900                    ; #		call direction_set(direction_read() | mask)
2901                    ; #	      case 2
2902                    ; #		# 0101 0bbb (Analog Mask Bit Clear):
2903                    ; #		call analog_mask_set(analog_mask_read() & mask_complement)
2904                    ; #	      case 3
2905                    ; #		# 0101 1bbb (Analog Mask Bit Set):
2906                    ; #		call analog_mask_set(analog_mask_read() | mask)
2907                    ; #	      case 4
2908                    ; #		# 0110 0bbb (Digital Bit Clear):
2909                    ; #		call digital_set(digital_read() & mask_complement)
2910                    ; #	      case 5
2911                    ; #		# 0110 1bbb (Digital Bit Set):
2912                    ; #		call digital_set(digital_read() | mask)
2913                    ; #	      case 6
2914                    ; #		# 0111 1bbb (Digital Bit Toggle):
2915                    ; #		call digital_set(digital_read() ^ mask)
2916                    ; #	      case 7
2917                    ; #		# 0111 1bbb:
2918                    ; #		do_nothing
2919                    ; #	  case 2
2920                    ; #	    # 10xx xxxx:
2921                    ; #	    switch (command >> 3) & 7
2922                    ; #	      case_maximum 7
2923                    ; #	      case 0, 1
2924                    ; #		# 1000 pphe (Pulse Time Configure):
2925                    ; #		if command@0
2926                    ; #		    # Enable:
2927                    ; #
2928                    ; #		    # Configure set prescale bits (pp) and clear rest:
2929                    ; #		    _t1con := (command << 2) & 0x30
2930                    ; #
2931                    ; #		    # Congifure Interrupt on Change Port A:
2932                    ; #		    _ioca := 1 << io7_bit
2933                    ; #		    _raif := _false
2934                    ; #		    _raie := _true
2935                    ; #
2936                    ; #		    # Get interrupts turned on:
2937                    ; #		    #_peie := _true
2938                    ; #		    #_gie := _true
2939                    ; #		    pulse_count := 0
2940                    ; #		else
2941                    ; #		    # Disable:
2942                    ; #		    _t1con := 0
2943                    ; #		    _ioca := 0
2944                    ; #		    _raie := _false
2945                    ; #		    #_gie := _false
2946                    ; #
2947                    ; #		# Remember whether to use high or low pulses:
2948                    ; #		time_high := _false
2949                    ; #		if command@1
2950                    ; #		    time_high := _true
2951                    ; #	      case 3
2952                    ; #		# 1001 1xxx:
2953                    ; #		switch command & 7
2954                    ; #		  case_maximum 7
2955                    ; #		  case 0
2956                    ; #		    # 1001 1000 (Pulse Count Get):
2957                    ; #		    call rb2bus_byte_put(pulse_count)
2958                    ; #		  case 1
2959                    ; #		    # 1001 1001 (Pulse Count Set):
2960                    ; #		    pulse_count := rb2bus_byte_get()
2961                    ; #		  case 2
2962                    ; #		    # 1001 1010 (Pulse Get):
2963                    ; #		    #_gie := _false
2964                    ; #		    high := pulse_high
2965                    ; #		    low := pulse_low
2966                    ; #		    #_gie := _true
2967                    ; #		    call rb2bus_byte_put(high)
2968                    ; #		    call rb2bus_byte_put(low)
2969                    ; #		  case 4
2970                    ; #		    # 1001 1100 (Threshold Get)
2971                    ; #		    analog_threshold := rb2bus_byte_get()
2972                    ; #		  case 5
2973                    ; #		    # 1001 1100 (Threshold Set)
2974                    ; #		    call rb2bus_byte_put(analog_threshold)
2975                    ; #		  case 6
2976                    ; #		    # 1001 1100 (Analog Thresholded Get)
2977                    ; #		    result := 0
2978                    ; #		    channel := 0
2979                    ; #		    while channel < 8
2980                    ; #			call analog_read(channel)
2981                    ; #			low := adc_lsbs[channel]
2982                    ; #			high := adc_msbs[channel]
2983                    ; #			result := result << 1
2984                    ; #			temporary := (high << 6) | (low >> 2)
2985                    ; #			if temporary >= analog_threshold
2986                    ; #			    result@0 := _true
2987                    ; #			channel := channel + 1
2988                    ; #		    call rb2bus_byte_put(result)
2989            
2990            
2991                    ; line_number = 345
2992                    ;info   345, 221
2993                    ; procedure analog_read
2994   00dd :   analog_read:
2995                    ; Last argument is sitting in W; save into argument variable
2996 00dd 00cb          movwf   analog_read__channel
2997                    ; delay=4294967295
2998                    ; line_number = 346
2999                    ; argument channel byte
3000 0000004b = analog_read__channel equ globals___0+43
3001                    ; line_number = 347
3002                    ;  returns byte
3003            
3004                    ; # Read A/D channel {channel} and return it.  The bits are
3005                    ; # stored into {adc_lsbs}[] and {adc_msbs}[].
3006            
3007                    ; line_number = 352
3008                    ;  local adc_channel byte
3009 00000048 = analog_read__adc_channel equ globals___0+40
3010                    ; line_number = 353
3011                    ;  local adc_high byte
3012 00000049 = analog_read__adc_high equ globals___0+41
3013                    ; line_number = 354
3014                    ;  local adc_low byte
3015 0000004a = analog_read__adc_low equ globals___0+42
3016            
3017                    ; # The IO8 pin wiring is different from the
3018                    ; # "logical" pins.  Do the remapping here:
3019                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3020                    ; line_number = 358
3021                    ;  channel := channel & 7
3022                    ;info   358, 222
3023 00de 3007          movlw   7
3024 00df 05cb          andwf   analog_read__channel,f
3025                    ; line_number = 359
3026                    ;  switch channel start
3027                    ;info   359, 224
3028                    ; switch_before:(data:00=uu=>00 code:X0=cu=>X0) size=3
3029 00e0 3000          movlw   analog_read__9>>8
3030 00e1 008a          movwf   __pclath
3031 00e2 084b          movf    analog_read__channel,w
3032                    ; switch after expression:(data:00=uu=>00 code:X0=cu=>X0)
3033 00e3 3ee5          addlw   analog_read__9
3034 00e4 0082          movwf   __pcl
3035                    ; page_group 8
3036   00e5 :   analog_read__9:
3037 00e5 28ed          goto    analog_read__1
3038 00e6 28f0          goto    analog_read__2
3039 00e7 28f3          goto    analog_read__3
3040 00e8 28f6          goto    analog_read__4
3041 00e9 28f8          goto    analog_read__5
3042 00ea 28fb          goto    analog_read__6
3043 00eb 28fe          goto    analog_read__7
3044 00ec 2901          goto    analog_read__8
3045                    ; line_number = 360
3046                    ; case 0
3047   00ed :   analog_read__1:
3048                    ; line_number = 361
3049                    ; adc_channel := 4
3050                    ;info   361, 237
3051 00ed 3004          movlw   4
3052 00ee 00c8          movwf   analog_read__adc_channel
3053 00ef 2903          goto    analog_read__10
3054                    ; line_number = 362
3055                    ; case 1
3056   00f0 :   analog_read__2:
3057                    ; line_number = 363
3058                    ; adc_channel := 3
3059                    ;info   363, 240
3060 00f0 3003          movlw   3
3061 00f1 00c8          movwf   analog_read__adc_channel
3062 00f2 2903          goto    analog_read__10
3063                    ; line_number = 364
3064                    ; case 2
3065   00f3 :   analog_read__3:
3066                    ; line_number = 365
3067                    ; adc_channel := 5
3068                    ;info   365, 243
3069 00f3 3005          movlw   5
3070 00f4 00c8          movwf   analog_read__adc_channel
3071 00f5 2903          goto    analog_read__10
3072                    ; line_number = 366
3073                    ; case 3
3074   00f6 :   analog_read__4:
3075                    ; line_number = 367
3076                    ; adc_channel := 0
3077                    ;info   367, 246
3078 00f6 01c8          clrf    analog_read__adc_channel
3079 00f7 2903          goto    analog_read__10
3080                    ; line_number = 368
3081                    ; case 4
3082   00f8 :   analog_read__5:
3083                    ; line_number = 369
3084                    ; adc_channel := 6
3085                    ;info   369, 248
3086 00f8 3006          movlw   6
3087 00f9 00c8          movwf   analog_read__adc_channel
3088 00fa 2903          goto    analog_read__10
3089                    ; line_number = 370
3090                    ; case 5
3091   00fb :   analog_read__6:
3092                    ; line_number = 371
3093                    ; adc_channel := 1
3094                    ;info   371, 251
3095 00fb 3001          movlw   1
3096 00fc 00c8          movwf   analog_read__adc_channel
3097 00fd 2903          goto    analog_read__10
3098                    ; line_number = 372
3099                    ; case 6
3100   00fe :   analog_read__7:
3101                    ; line_number = 373
3102                    ; adc_channel := 7
3103                    ;info   373, 254
3104 00fe 3007          movlw   7
3105 00ff 00c8          movwf   analog_read__adc_channel
3106 0100 2903          goto    analog_read__10
3107                    ; line_number = 374
3108                    ; case 7
3109   0101 :   analog_read__8:
3110                    ; line_number = 375
3111                    ; adc_channel := 2
3112                    ;info   375, 257
3113 0101 3002          movlw   2
3114 0102 00c8          movwf   analog_read__adc_channel
3115            
3116   0103 :   analog_read__10:
3117                    ; line_number = 359
3118                    ;  switch channel done
3119                    ; # Select the channel while keeping the A/D on:
3120                    ; line_number = 378
3121                    ;  _adcon0 := (adc_channel << 2) | 1
3122                    ;info   378, 259
3123 00000062 = analog_read__11 equ globals___0+66
3124 0103 0d48          rlf     analog_read__adc_channel,w
3125 0104 00e2          movwf   analog_read__11
3126 0105 0d62          rlf     analog_read__11,w
3127 0106 39fc          andlw   252
3128 0107 3801          iorlw   1
3129 0108 009f          movwf   _adcon0
3130                    ; # It can take up to 20 uS for the A/D to stablize:
3131                    ; line_number = 380
3132                    ;  delay 20 * microsecond start
3133                    ;info   380, 265
3134                    ; Delay expression evaluates to 100
3135                    ; line_number = 381
3136                    ; do_nothing
3137                    ;info   381, 265
3138            
3139                    ; Delay 100 cycles
3140                    ; Delay loop takes 25 * 4 = 100 cycles
3141 0109 3019          movlw   25
3142   010a :   analog_read__12:
3143 010a 3eff          addlw   255
3144 010b 1d03          btfss   __z___byte, __z___bit
3145 010c 290a          goto    analog_read__12
3146                    ; line_number = 380
3147                    ;  delay 20 * microsecond done
3148                    ; # Now take the A/D sample:
3149                    ; line_number = 384
3150                    ;  _go := _true
3151                    ;info   384, 269
3152 010d 149f          bsf     _go___byte, _go___bit
3153                    ; line_number = 385
3154                    ;  while _go start
3155   010e :   analog_read__13:
3156                    ;info   385, 270
3157                    ; =>bit_code_emit@symbol(): sym=_go
3158                    ; 1TEST: Single test with code in skip slot
3159 010e 189f          btfsc   _go___byte, _go___bit
3160                    ; line_number = 386
3161                    ; do_nothing
3162                    ;info   386, 271
3163            
3164 010f 290e          goto    analog_read__13
3165                    ; Recombine size1 = 0 || size2 = 0
3166                    ; line_number = 385
3167                    ;  while _go done
3168                    ; # We've got the result:
3169                    ; line_number = 389
3170                    ;  adc_high := _adresh
3171                    ;info   389, 272
3172 0110 081e          movf    _adresh,w
3173 0111 00c9          movwf   analog_read__adc_high
3174                    ; line_number = 390
3175                    ;  adc_low := _adresl
3176                    ;info   390, 274
3177 0112 1683          bsf     __rp0___byte, __rp0___bit
3178 0113 081e          movf    _adresl,w
3179 0114 1283          bcf     __rp0___byte, __rp0___bit
3180 0115 00ca          movwf   analog_read__adc_low
3181                    ; line_number = 391
3182                    ;  adc_lsbs[channel] := adc_low
3183                    ;info   391, 278
3184                    ; index_fsr_first
3185 0116 084b          movf    analog_read__channel,w
3186 0117 3e2c          addlw   adc_lsbs
3187 0118 0084          movwf   __fsr
3188 0119 1383          bcf     __irp___byte, __irp___bit
3189 011a 084a          movf    analog_read__adc_low,w
3190 011b 0080          movwf   __indf
3191                    ; line_number = 392
3192                    ;  adc_msbs[channel] := adc_high
3193                    ;info   392, 284
3194                    ; index_fsr_first
3195 011c 084b          movf    analog_read__channel,w
3196 011d 3e34          addlw   adc_msbs
3197 011e 0084          movwf   __fsr
3198 011f 1383          bcf     __irp___byte, __irp___bit
3199 0120 0849          movf    analog_read__adc_high,w
3200 0121 0080          movwf   __indf
3201            
3202                    ; # Return the adc value as 8-bits:
3203                    ; line_number = 395
3204                    ;  return adc_high start
3205                    ; line_number = 395
3206                    ;info   395, 290
3207 0122 0849          movf    analog_read__adc_high,w
3208 0123 0008          return  
3209                    ; line_number = 395
3210                    ;  return adc_high done
3211            
3212            
3213                    ; delay after procedure statements=non-uniform
3214            
3215            
3216            
3217            
3218                    ; line_number = 398
3219                    ; global counter byte
3220 0000004c = counter equ globals___0+44
3221            
3222                    ; line_number = 400
3223                    ;info   400, 292
3224                    ; procedure wait
3225   0124 :   wait:
3226                    ; arguments_none
3227                    ; line_number = 402
3228                    ;  returns_nothing
3229            
3230                    ; line_number = 404
3231                    ;  local channel byte
3232 0000004d = wait__channel equ globals___0+45
3233                    ; line_number = 405
3234                    ;  local adc_channel byte
3235 0000004e = wait__adc_channel equ globals___0+46
3236                    ; line_number = 406
3237                    ;  local adc_high byte
3238 0000004f = wait__adc_high equ globals___0+47
3239                    ; line_number = 407
3240                    ;  local adc_low byte
3241 00000050 = wait__adc_low equ globals___0+48
3242            
3243                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3244                    ; line_number = 409
3245                    ;  switch counter & 3 start
3246                    ;info   409, 292
3247                    ; switch_before:(data:00=uu=>00 code:X0=cu=>X0) size=0
3248 0124 3001          movlw   wait__22>>8
3249 0125 008a          movwf   __pclath
3250 0126 3003          movlw   3
3251 0127 054c          andwf   counter,w
3252                    ; switch after expression:(data:00=uu=>00 code:X0=cu=>X0)
3253 0128 3e2a          addlw   wait__22
3254 0129 0082          movwf   __pcl
3255                    ; page_group 4
3256   012a :   wait__22:
3257 012a 292e          goto    wait__18
3258 012b 2963          goto    wait__19
3259 012c 296b          goto    wait__20
3260 012d 296e          goto    wait__21
3261                    ; line_number = 410
3262                    ; case 0
3263   012e :   wait__18:
3264                    ; line_number = 411
3265                    ; channel := (counter >> 2) & 7
3266                    ;info   411, 302
3267 00000063 = wait__1 equ globals___0+67
3268 012e 0c4c          rrf     counter,w
3269 012f 00e3          movwf   wait__1
3270 0130 0c63          rrf     wait__1,w
3271 0131 3907          andlw   7
3272 0132 00cd          movwf   wait__channel
3273                    ; line_number = 412
3274                    ;  switch channel start
3275                    ;info   412, 307
3276                    ; switch_before:(data:00=uu=>00 code:XX=cc=>XX) size=5
3277 0133 3001          movlw   wait__10>>8
3278 0134 008a          movwf   __pclath
3279 0135 084d          movf    wait__channel,w
3280                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
3281 0136 3e38          addlw   wait__10
3282 0137 0082          movwf   __pcl
3283                    ; page_group 8
3284   0138 :   wait__10:
3285 0138 2940          goto    wait__2
3286 0139 2943          goto    wait__3
3287 013a 2946          goto    wait__4
3288 013b 2949          goto    wait__5
3289 013c 294c          goto    wait__6
3290 013d 294f          goto    wait__7
3291 013e 2952          goto    wait__8
3292 013f 2954          goto    wait__9
3293                    ; line_number = 413
3294                    ; case 0
3295   0140 :   wait__2:
3296                    ; line_number = 414
3297                    ; adc_channel := 5
3298                    ;info   414, 320
3299 0140 3005          movlw   5
3300 0141 00ce          movwf   wait__adc_channel
3301 0142 2956          goto    wait__11
3302                    ; line_number = 415
3303                    ; case 1
3304   0143 :   wait__3:
3305                    ; line_number = 416
3306                    ; adc_channel := 7
3307                    ;info   416, 323
3308 0143 3007          movlw   7
3309 0144 00ce          movwf   wait__adc_channel
3310 0145 2956          goto    wait__11
3311                    ; line_number = 417
3312                    ; case 2
3313   0146 :   wait__4:
3314                    ; line_number = 418
3315                    ; adc_channel := 6
3316                    ;info   418, 326
3317 0146 3006          movlw   6
3318 0147 00ce          movwf   wait__adc_channel
3319 0148 2956          goto    wait__11
3320                    ; line_number = 419
3321                    ; case 3
3322   0149 :   wait__5:
3323                    ; line_number = 420
3324                    ; adc_channel := 4
3325                    ;info   420, 329
3326 0149 3004          movlw   4
3327 014a 00ce          movwf   wait__adc_channel
3328 014b 2956          goto    wait__11
3329                    ; line_number = 421
3330                    ; case 4
3331   014c :   wait__6:
3332                    ; line_number = 422
3333                    ; adc_channel := 1
3334                    ;info   422, 332
3335 014c 3001          movlw   1
3336 014d 00ce          movwf   wait__adc_channel
3337 014e 2956          goto    wait__11
3338                    ; line_number = 423
3339                    ; case 5
3340   014f :   wait__7:
3341                    ; line_number = 424
3342                    ; adc_channel := 3
3343                    ;info   424, 335
3344 014f 3003          movlw   3
3345 0150 00ce          movwf   wait__adc_channel
3346 0151 2956          goto    wait__11
3347                    ; line_number = 425
3348                    ; case 6
3349   0152 :   wait__8:
3350                    ; line_number = 426
3351                    ; adc_channel := 0
3352                    ;info   426, 338
3353 0152 01ce          clrf    wait__adc_channel
3354 0153 2956          goto    wait__11
3355                    ; line_number = 427
3356                    ; case 7
3357   0154 :   wait__9:
3358                    ; line_number = 428
3359                    ; adc_channel := 2
3360                    ;info   428, 340
3361 0154 3002          movlw   2
3362 0155 00ce          movwf   wait__adc_channel
3363            
3364   0156 :   wait__11:
3365                    ; line_number = 412
3366                    ;  switch channel done
3367                    ; # Select the channel while keeping the A/D on:
3368                    ; line_number = 431
3369                    ;  _adcon0 := (adc_channel << 2) | 1
3370                    ;info   431, 342
3371 00000063 = wait__12 equ globals___0+67
3372 0156 0d4e          rlf     wait__adc_channel,w
3373 0157 00e3          movwf   wait__12
3374 0158 0d63          rlf     wait__12,w
3375 0159 39fc          andlw   252
3376 015a 3801          iorlw   1
3377 015b 009f          movwf   _adcon0
3378            
3379                    ; # It can take up to 20 uS for the A/D to stablize,
3380                    ; # Do the first 10 microseconds here:
3381                    ; line_number = 435
3382                    ;  delay 10 * microsecond start
3383                    ;info   435, 348
3384                    ; Delay expression evaluates to 50
3385                    ; line_number = 436
3386                    ; do_nothing
3387                    ;info   436, 348
3388                    ; Delay 50 cycles
3389                    ; Delay loop takes 12 * 4 = 48 cycles
3390 015c 300c          movlw   12
3391   015d :   wait__13:
3392 015d 3eff          addlw   255
3393 015e 1d03          btfss   __z___byte, __z___bit
3394 015f 295d          goto    wait__13
3395 0160 2961          goto    wait__14
3396   0161 :   wait__14:
3397                    ; line_number = 435
3398                    ;  delay 10 * microsecond done
3399                    ; line_number = 437
3400                    ; counter := counter + 1
3401                    ;info   437, 353
3402 0161 0acc          incf    counter,f
3403 0162 2986          goto    wait__23
3404                    ; line_number = 438
3405                    ; case 1
3406   0163 :   wait__19:
3407                    ; # Do the second 10 microseconds here:
3408                    ; line_number = 440
3409                    ;  delay 10 * microsecond start
3410                    ;info   440, 355
3411                    ; Delay expression evaluates to 50
3412                    ; line_number = 441
3413                    ; do_nothing
3414                    ;info   441, 355
3415            
3416                    ; Delay 50 cycles
3417                    ; Delay loop takes 12 * 4 = 48 cycles
3418 0163 300c          movlw   12
3419   0164 :   wait__15:
3420 0164 3eff          addlw   255
3421 0165 1d03          btfss   __z___byte, __z___bit
3422 0166 2964          goto    wait__15
3423 0167 2968          goto    wait__16
3424   0168 :   wait__16:
3425                    ; line_number = 440
3426                    ;  delay 10 * microsecond done
3427                    ; # Start the A/D sample
3428                    ; line_number = 444
3429                    ;  _go := _true
3430                    ;info   444, 360
3431 0168 149f          bsf     _go___byte, _go___bit
3432            
3433                    ; line_number = 446
3434                    ;  counter := counter + 1
3435                    ;info   446, 361
3436 0169 0acc          incf    counter,f
3437 016a 2986          goto    wait__23
3438                    ; line_number = 447
3439                    ; case 2
3440   016b :   wait__20:
3441                    ; line_number = 448
3442                    ; if !_go start
3443                    ;info   448, 363
3444                    ; =>bit_code_emit@symbol(): sym=_go
3445                    ; 1TEST: Single test with code in skip slot
3446 016b 1c9f          btfss   _go___byte, _go___bit
3447                    ; line_number = 449
3448                    ; counter := counter + 1
3449                    ;info   449, 364
3450 016c 0acc          incf    counter,f
3451                    ; Recombine size1 = 0 || size2 = 0
3452                    ; line_number = 448
3453                    ; if !_go done
3454 016d 2986          goto    wait__23
3455                    ; line_number = 450
3456                    ; case 3
3457   016e :   wait__21:
3458                    ; # We've got the result:
3459                    ; line_number = 452
3460                    ;  channel := (counter >> 2) & 7
3461                    ;info   452, 366
3462 00000063 = wait__17 equ globals___0+67
3463 016e 0c4c          rrf     counter,w
3464 016f 00e3          movwf   wait__17
3465 0170 0c63          rrf     wait__17,w
3466 0171 3907          andlw   7
3467 0172 00cd          movwf   wait__channel
3468                    ; line_number = 453
3469                    ;  adc_high := _adresh
3470                    ;info   453, 371
3471 0173 081e          movf    _adresh,w
3472 0174 00cf          movwf   wait__adc_high
3473                    ; line_number = 454
3474                    ;  adc_low := _adresl
3475                    ;info   454, 373
3476 0175 1683          bsf     __rp0___byte, __rp0___bit
3477 0176 081e          movf    _adresl,w
3478 0177 1283          bcf     __rp0___byte, __rp0___bit
3479 0178 00d0          movwf   wait__adc_low
3480                    ; line_number = 455
3481                    ;  adc_lsbs[channel] := adc_low
3482                    ;info   455, 377
3483                    ; index_fsr_first
3484 0179 084d          movf    wait__channel,w
3485 017a 3e2c          addlw   adc_lsbs
3486 017b 0084          movwf   __fsr
3487 017c 1383          bcf     __irp___byte, __irp___bit
3488 017d 0850          movf    wait__adc_low,w
3489 017e 0080          movwf   __indf
3490                    ; line_number = 456
3491                    ;  adc_msbs[channel] := adc_high
3492                    ;info   456, 383
3493                    ; index_fsr_first
3494 017f 084d          movf    wait__channel,w
3495 0180 3e34          addlw   adc_msbs
3496 0181 0084          movwf   __fsr
3497 0182 1383          bcf     __irp___byte, __irp___bit
3498 0183 084f          movf    wait__adc_high,w
3499 0184 0080          movwf   __indf
3500                    ; line_number = 457
3501                    ;  counter := counter + 1
3502                    ;info   457, 389
3503 0185 0acc          incf    counter,f
3504            
3505   0186 :   wait__23:
3506                    ; line_number = 409
3507                    ;  switch counter & 3 done
3508                    ; line_number = 459
3509                    ; do_nothing
3510                    ;info   459, 390
3511            
3512            
3513                    ; delay after procedure statements=non-uniform
3514                    ; Implied return
3515 0186 3400          retlw   0
3516            
3517            
3518            
3519            
3520                    ; line_number = 462
3521                    ; string id = "\16,0,8,3,3,6\IO8-C2\7\Gramson" start
3522                    ; id = '\16,0,8,3,3,6\IO8-C2\7\Gramson'
3523   0187 :   id:
3524                    ; Temporarily save index into FSR
3525 0187 0084          movwf   __fsr
3526                    ; Initialize PCLATH to point to this code page
3527 0188 3001          movlw   id___base>>8
3528 0189 008a          movwf   __pclath
3529                    ; Restore index from FSR
3530 018a 0804          movf    __fsr,w
3531 018b 3e8d          addlw   id___base
3532                    ; Index to the correct return value
3533 018c 0082          movwf   __pcl
3534                    ; page_group 20
3535   018d :   id___base:
3536 018d 3410          retlw   16
3537 018e 3400          retlw   0
3538 018f 3408          retlw   8
3539 0190 3403          retlw   3
3540 0191 3403          retlw   3
3541 0192 3406          retlw   6
3542 0193 3449          retlw   73
3543 0194 344f          retlw   79
3544 0195 3438          retlw   56
3545 0196 342d          retlw   45
3546 0197 3443          retlw   67
3547 0198 3432          retlw   50
3548 0199 3407          retlw   7
3549 019a 3447          retlw   71
3550 019b 3472          retlw   114
3551 019c 3461          retlw   97
3552 019d 346d          retlw   109
3553 019e 3473          retlw   115
3554 019f 346f          retlw   111
3555 01a0 346e          retlw   110
3556                    ; line_number = 462
3557                    ; string id = "\16,0,8,3,3,6\IO8-C2\7\Gramson" start
3558            
3559                    ; line_number = 464
3560                    ;info   464, 417
3561                    ; procedure analog_mask_read
3562   01a1 :   analog_mask_read:
3563                    ; arguments_none
3564                    ; line_number = 466
3565                    ;  returns byte
3566            
3567                    ; # This procedure will return the analog selection bits.
3568            
3569                    ; line_number = 470
3570                    ;  local mask byte
3571 00000051 = analog_mask_read__mask equ globals___0+49
3572                    ; line_number = 471
3573                    ;  local result byte
3574 00000052 = analog_mask_read__result equ globals___0+50
3575            
3576                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3577                    ; line_number = 473
3578                    ;  result := 0
3579                    ;info   473, 417
3580 01a1 01d2          clrf    analog_mask_read__result
3581                    ; line_number = 474
3582                    ;  mask := _ansel
3583                    ;info   474, 418
3584 01a2 1683          bsf     __rp0___byte, __rp0___bit
3585 01a3 0811          movf    _ansel,w
3586 01a4 1283          bcf     __rp0___byte, __rp0___bit
3587 01a5 00d1          movwf   analog_mask_read__mask
3588                    ; line_number = 475
3589                    ;  if mask@0 start
3590                    ;info   475, 422
3591 00000051 = analog_mask_read__select__2___byte equ analog_mask_read__mask
3592 00000000 = analog_mask_read__select__2___bit equ 0
3593                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__2
3594                    ; 1TEST: Single test with code in skip slot
3595 01a6 1851          btfsc   analog_mask_read__select__2___byte, analog_mask_read__select__2___bit
3596                    ; line_number = 476
3597                    ; result@5 := _true
3598                    ;info   476, 423
3599 00000052 = analog_mask_read__select__1___byte equ analog_mask_read__result
3600 00000005 = analog_mask_read__select__1___bit equ 5
3601 01a7 16d2          bsf     analog_mask_read__select__1___byte, analog_mask_read__select__1___bit
3602                    ; Recombine size1 = 0 || size2 = 0
3603                    ; line_number = 475
3604                    ;  if mask@0 done
3605                    ; line_number = 477
3606                    ; if mask@1 start
3607                    ;info   477, 424
3608 00000051 = analog_mask_read__select__4___byte equ analog_mask_read__mask
3609 00000001 = analog_mask_read__select__4___bit equ 1
3610                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__4
3611                    ; 1TEST: Single test with code in skip slot
3612 01a8 18d1          btfsc   analog_mask_read__select__4___byte, analog_mask_read__select__4___bit
3613                    ; line_number = 478
3614                    ; result@7 := _true
3615                    ;info   478, 425
3616 00000052 = analog_mask_read__select__3___byte equ analog_mask_read__result
3617 00000007 = analog_mask_read__select__3___bit equ 7
3618 01a9 17d2          bsf     analog_mask_read__select__3___byte, analog_mask_read__select__3___bit
3619                    ; Recombine size1 = 0 || size2 = 0
3620                    ; line_number = 477
3621                    ; if mask@1 done
3622                    ; line_number = 479
3623                    ; if mask@2 start
3624                    ;info   479, 426
3625 00000051 = analog_mask_read__select__6___byte equ analog_mask_read__mask
3626 00000002 = analog_mask_read__select__6___bit equ 2
3627                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__6
3628                    ; 1TEST: Single test with code in skip slot
3629 01aa 1951          btfsc   analog_mask_read__select__6___byte, analog_mask_read__select__6___bit
3630                    ; line_number = 480
3631                    ; result@6 := _true
3632                    ;info   480, 427
3633 00000052 = analog_mask_read__select__5___byte equ analog_mask_read__result
3634 00000006 = analog_mask_read__select__5___bit equ 6
3635 01ab 1752          bsf     analog_mask_read__select__5___byte, analog_mask_read__select__5___bit
3636                    ; Recombine size1 = 0 || size2 = 0
3637                    ; line_number = 479
3638                    ; if mask@2 done
3639                    ; line_number = 481
3640                    ; if mask@3 start
3641                    ;info   481, 428
3642 00000051 = analog_mask_read__select__8___byte equ analog_mask_read__mask
3643 00000003 = analog_mask_read__select__8___bit equ 3
3644                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__8
3645                    ; 1TEST: Single test with code in skip slot
3646 01ac 19d1          btfsc   analog_mask_read__select__8___byte, analog_mask_read__select__8___bit
3647                    ; line_number = 482
3648                    ; result@4 := _true
3649                    ;info   482, 429
3650 00000052 = analog_mask_read__select__7___byte equ analog_mask_read__result
3651 00000004 = analog_mask_read__select__7___bit equ 4
3652 01ad 1652          bsf     analog_mask_read__select__7___byte, analog_mask_read__select__7___bit
3653                    ; Recombine size1 = 0 || size2 = 0
3654                    ; line_number = 481
3655                    ; if mask@3 done
3656                    ; line_number = 483
3657                    ; if mask@4 start
3658                    ;info   483, 430
3659 00000051 = analog_mask_read__select__10___byte equ analog_mask_read__mask
3660 00000004 = analog_mask_read__select__10___bit equ 4
3661                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__10
3662                    ; 1TEST: Single test with code in skip slot
3663 01ae 1a51          btfsc   analog_mask_read__select__10___byte, analog_mask_read__select__10___bit
3664                    ; line_number = 484
3665                    ; result@1 := _true
3666                    ;info   484, 431
3667 00000052 = analog_mask_read__select__9___byte equ analog_mask_read__result
3668 00000001 = analog_mask_read__select__9___bit equ 1
3669 01af 14d2          bsf     analog_mask_read__select__9___byte, analog_mask_read__select__9___bit
3670                    ; Recombine size1 = 0 || size2 = 0
3671                    ; line_number = 483
3672                    ; if mask@4 done
3673                    ; line_number = 485
3674                    ; if mask@5 start
3675                    ;info   485, 432
3676 00000051 = analog_mask_read__select__12___byte equ analog_mask_read__mask
3677 00000005 = analog_mask_read__select__12___bit equ 5
3678                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__12
3679                    ; 1TEST: Single test with code in skip slot
3680 01b0 1ad1          btfsc   analog_mask_read__select__12___byte, analog_mask_read__select__12___bit
3681                    ; line_number = 486
3682                    ; result@3 := _true
3683                    ;info   486, 433
3684 00000052 = analog_mask_read__select__11___byte equ analog_mask_read__result
3685 00000003 = analog_mask_read__select__11___bit equ 3
3686 01b1 15d2          bsf     analog_mask_read__select__11___byte, analog_mask_read__select__11___bit
3687                    ; Recombine size1 = 0 || size2 = 0
3688                    ; line_number = 485
3689                    ; if mask@5 done
3690                    ; line_number = 487
3691                    ; if mask@6 start
3692                    ;info   487, 434
3693 00000051 = analog_mask_read__select__14___byte equ analog_mask_read__mask
3694 00000006 = analog_mask_read__select__14___bit equ 6
3695                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__14
3696                    ; 1TEST: Single test with code in skip slot
3697 01b2 1b51          btfsc   analog_mask_read__select__14___byte, analog_mask_read__select__14___bit
3698                    ; line_number = 488
3699                    ; result@0 := _true
3700                    ;info   488, 435
3701 00000052 = analog_mask_read__select__13___byte equ analog_mask_read__result
3702 00000000 = analog_mask_read__select__13___bit equ 0
3703 01b3 1452          bsf     analog_mask_read__select__13___byte, analog_mask_read__select__13___bit
3704                    ; Recombine size1 = 0 || size2 = 0
3705                    ; line_number = 487
3706                    ; if mask@6 done
3707                    ; line_number = 489
3708                    ; if mask@7 start
3709                    ;info   489, 436
3710 00000051 = analog_mask_read__select__16___byte equ analog_mask_read__mask
3711 00000007 = analog_mask_read__select__16___bit equ 7
3712                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__16
3713                    ; 1TEST: Single test with code in skip slot
3714 01b4 1bd1          btfsc   analog_mask_read__select__16___byte, analog_mask_read__select__16___bit
3715                    ; line_number = 490
3716                    ; result@2 := _true
3717                    ;info   490, 437
3718 00000052 = analog_mask_read__select__15___byte equ analog_mask_read__result
3719 00000002 = analog_mask_read__select__15___bit equ 2
3720 01b5 1552          bsf     analog_mask_read__select__15___byte, analog_mask_read__select__15___bit
3721                    ; Recombine size1 = 0 || size2 = 0
3722                    ; line_number = 489
3723                    ; if mask@7 done
3724                    ; line_number = 491
3725                    ; return result start
3726                    ; line_number = 491
3727                    ;info   491, 438
3728 01b6 0852          movf    analog_mask_read__result,w
3729 01b7 0008          return  
3730                    ; line_number = 491
3731                    ; return result done
3732            
3733            
3734                    ; delay after procedure statements=non-uniform
3735            
3736            
3737            
3738            
3739                    ; line_number = 494
3740                    ;info   494, 440
3741                    ; procedure analog_mask_set
3742   01b8 :   analog_mask_set:
3743                    ; Last argument is sitting in W; save into argument variable
3744 01b8 00d4          movwf   analog_mask_set__analog
3745                    ; delay=4294967295
3746                    ; line_number = 495
3747                    ; argument analog byte
3748 00000054 = analog_mask_set__analog equ globals___0+52
3749                    ; line_number = 496
3750                    ;  returns_nothing
3751            
3752                    ; # This procedure will set the analog inputs to be equal to {analog}.
3753            
3754                    ; line_number = 500
3755                    ;  local mask byte
3756 00000053 = analog_mask_set__mask equ globals___0+51
3757            
3758                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3759                    ; line_number = 502
3760                    ;  mask := 0
3761                    ;info   502, 441
3762 01b9 01d3          clrf    analog_mask_set__mask
3763                    ; line_number = 503
3764                    ;  if analog@0 start
3765                    ;info   503, 442
3766 00000054 = analog_mask_set__select__2___byte equ analog_mask_set__analog
3767 00000000 = analog_mask_set__select__2___bit equ 0
3768                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__2
3769                    ; 1TEST: Single test with code in skip slot
3770 01ba 1854          btfsc   analog_mask_set__select__2___byte, analog_mask_set__select__2___bit
3771                    ; line_number = 504
3772                    ; mask@6 := _true
3773                    ;info   504, 443
3774 00000053 = analog_mask_set__select__1___byte equ analog_mask_set__mask
3775 00000006 = analog_mask_set__select__1___bit equ 6
3776 01bb 1753          bsf     analog_mask_set__select__1___byte, analog_mask_set__select__1___bit
3777                    ; Recombine size1 = 0 || size2 = 0
3778                    ; line_number = 503
3779                    ;  if analog@0 done
3780                    ; line_number = 505
3781                    ; if analog@1 start
3782                    ;info   505, 444
3783 00000054 = analog_mask_set__select__4___byte equ analog_mask_set__analog
3784 00000001 = analog_mask_set__select__4___bit equ 1
3785                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__4
3786                    ; 1TEST: Single test with code in skip slot
3787 01bc 18d4          btfsc   analog_mask_set__select__4___byte, analog_mask_set__select__4___bit
3788                    ; line_number = 506
3789                    ; mask@4 := _true
3790                    ;info   506, 445
3791 00000053 = analog_mask_set__select__3___byte equ analog_mask_set__mask
3792 00000004 = analog_mask_set__select__3___bit equ 4
3793 01bd 1653          bsf     analog_mask_set__select__3___byte, analog_mask_set__select__3___bit
3794                    ; Recombine size1 = 0 || size2 = 0
3795                    ; line_number = 505
3796                    ; if analog@1 done
3797                    ; line_number = 507
3798                    ; if analog@2 start
3799                    ;info   507, 446
3800 00000054 = analog_mask_set__select__6___byte equ analog_mask_set__analog
3801 00000002 = analog_mask_set__select__6___bit equ 2
3802                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__6
3803                    ; 1TEST: Single test with code in skip slot
3804 01be 1954          btfsc   analog_mask_set__select__6___byte, analog_mask_set__select__6___bit
3805                    ; line_number = 508
3806                    ; mask@7 := _true
3807                    ;info   508, 447
3808 00000053 = analog_mask_set__select__5___byte equ analog_mask_set__mask
3809 00000007 = analog_mask_set__select__5___bit equ 7
3810 01bf 17d3          bsf     analog_mask_set__select__5___byte, analog_mask_set__select__5___bit
3811                    ; Recombine size1 = 0 || size2 = 0
3812                    ; line_number = 507
3813                    ; if analog@2 done
3814                    ; line_number = 509
3815                    ; if analog@3 start
3816                    ;info   509, 448
3817 00000054 = analog_mask_set__select__8___byte equ analog_mask_set__analog
3818 00000003 = analog_mask_set__select__8___bit equ 3
3819                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__8
3820                    ; 1TEST: Single test with code in skip slot
3821 01c0 19d4          btfsc   analog_mask_set__select__8___byte, analog_mask_set__select__8___bit
3822                    ; line_number = 510
3823                    ; mask@5 := _true
3824                    ;info   510, 449
3825 00000053 = analog_mask_set__select__7___byte equ analog_mask_set__mask
3826 00000005 = analog_mask_set__select__7___bit equ 5
3827 01c1 16d3          bsf     analog_mask_set__select__7___byte, analog_mask_set__select__7___bit
3828                    ; Recombine size1 = 0 || size2 = 0
3829                    ; line_number = 509
3830                    ; if analog@3 done
3831                    ; line_number = 511
3832                    ; if analog@4 start
3833                    ;info   511, 450
3834 00000054 = analog_mask_set__select__10___byte equ analog_mask_set__analog
3835 00000004 = analog_mask_set__select__10___bit equ 4
3836                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__10
3837                    ; 1TEST: Single test with code in skip slot
3838 01c2 1a54          btfsc   analog_mask_set__select__10___byte, analog_mask_set__select__10___bit
3839                    ; line_number = 512
3840                    ; mask@3 := _true
3841                    ;info   512, 451
3842 00000053 = analog_mask_set__select__9___byte equ analog_mask_set__mask
3843 00000003 = analog_mask_set__select__9___bit equ 3
3844 01c3 15d3          bsf     analog_mask_set__select__9___byte, analog_mask_set__select__9___bit
3845                    ; Recombine size1 = 0 || size2 = 0
3846                    ; line_number = 511
3847                    ; if analog@4 done
3848                    ; line_number = 513
3849                    ; if analog@5 start
3850                    ;info   513, 452
3851 00000054 = analog_mask_set__select__12___byte equ analog_mask_set__analog
3852 00000005 = analog_mask_set__select__12___bit equ 5
3853                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__12
3854                    ; 1TEST: Single test with code in skip slot
3855 01c4 1ad4          btfsc   analog_mask_set__select__12___byte, analog_mask_set__select__12___bit
3856                    ; line_number = 514
3857                    ; mask@0 := _true
3858                    ;info   514, 453
3859 00000053 = analog_mask_set__select__11___byte equ analog_mask_set__mask
3860 00000000 = analog_mask_set__select__11___bit equ 0
3861 01c5 1453          bsf     analog_mask_set__select__11___byte, analog_mask_set__select__11___bit
3862                    ; Recombine size1 = 0 || size2 = 0
3863                    ; line_number = 513
3864                    ; if analog@5 done
3865                    ; line_number = 515
3866                    ; if analog@6 start
3867                    ;info   515, 454
3868 00000054 = analog_mask_set__select__14___byte equ analog_mask_set__analog
3869 00000006 = analog_mask_set__select__14___bit equ 6
3870                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__14
3871                    ; 1TEST: Single test with code in skip slot
3872 01c6 1b54          btfsc   analog_mask_set__select__14___byte, analog_mask_set__select__14___bit
3873                    ; line_number = 516
3874                    ; mask@2 := _true
3875                    ;info   516, 455
3876 00000053 = analog_mask_set__select__13___byte equ analog_mask_set__mask
3877 00000002 = analog_mask_set__select__13___bit equ 2
3878 01c7 1553          bsf     analog_mask_set__select__13___byte, analog_mask_set__select__13___bit
3879                    ; Recombine size1 = 0 || size2 = 0
3880                    ; line_number = 515
3881                    ; if analog@6 done
3882                    ; line_number = 517
3883                    ; if analog@7 start
3884                    ;info   517, 456
3885 00000054 = analog_mask_set__select__16___byte equ analog_mask_set__analog
3886 00000007 = analog_mask_set__select__16___bit equ 7
3887                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__16
3888                    ; 1TEST: Single test with code in skip slot
3889 01c8 1bd4          btfsc   analog_mask_set__select__16___byte, analog_mask_set__select__16___bit
3890                    ; line_number = 518
3891                    ; mask@1 := _true
3892                    ;info   518, 457
3893 00000053 = analog_mask_set__select__15___byte equ analog_mask_set__mask
3894 00000001 = analog_mask_set__select__15___bit equ 1
3895 01c9 14d3          bsf     analog_mask_set__select__15___byte, analog_mask_set__select__15___bit
3896                    ; Recombine size1 = 0 || size2 = 0
3897                    ; line_number = 517
3898                    ; if analog@7 done
3899                    ; line_number = 519
3900                    ; _ansel := mask
3901                    ;info   519, 458
3902 01ca 0853          movf    analog_mask_set__mask,w
3903 01cb 1683          bsf     __rp0___byte, __rp0___bit
3904 01cc 0091          movwf   _ansel
3905            
3906            
3907                    ; delay after procedure statements=non-uniform
3908 01cd 1283          bcf     __rp0___byte, __rp0___bit
3909                    ; Implied return
3910 01ce 3400          retlw   0
3911            
3912            
3913            
3914            
3915                    ; line_number = 522
3916                    ;info   522, 463
3917                    ; procedure digital_read
3918   01cf :   digital_read:
3919                    ; arguments_none
3920                    ; line_number = 524
3921                    ;  returns byte
3922            
3923                    ; # This procedure will return the digital bits corresponding to
3924                    ; # the 8 digital data inputs.
3925            
3926                    ; line_number = 529
3927                    ;  local ra byte
3928 00000055 = digital_read__ra equ globals___0+53
3929                    ; line_number = 530
3930                    ;  local rc byte
3931 00000056 = digital_read__rc equ globals___0+54
3932                    ; line_number = 531
3933                    ;  local digital byte
3934 00000057 = digital_read__digital equ globals___0+55
3935            
3936                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3937                    ; line_number = 533
3938                    ;  ra := _porta
3939                    ;info   533, 463
3940 01cf 0805          movf    _porta,w
3941 01d0 00d5          movwf   digital_read__ra
3942                    ; line_number = 534
3943                    ;  rc := _portc
3944                    ;info   534, 465
3945 01d1 0807          movf    _portc,w
3946 01d2 00d6          movwf   digital_read__rc
3947                    ; line_number = 535
3948                    ;  digital := 0
3949                    ;info   535, 467
3950 01d3 01d7          clrf    digital_read__digital
3951            
3952                    ; line_number = 537
3953                    ;  if rc@io0_bit start
3954                    ;info   537, 468
3955 00000056 = digital_read__select__2___byte equ digital_read__rc
3956 00000001 = digital_read__select__2___bit equ 1
3957                    ; =>bit_code_emit@symbol(): sym=digital_read__select__2
3958                    ; 1TEST: Single test with code in skip slot
3959 01d4 18d6          btfsc   digital_read__select__2___byte, digital_read__select__2___bit
3960                    ; line_number = 538
3961                    ; digital@0 := _true
3962                    ;info   538, 469
3963 00000057 = digital_read__select__1___byte equ digital_read__digital
3964 00000000 = digital_read__select__1___bit equ 0
3965 01d5 1457          bsf     digital_read__select__1___byte, digital_read__select__1___bit
3966                    ; Recombine size1 = 0 || size2 = 0
3967                    ; line_number = 537
3968                    ;  if rc@io0_bit done
3969                    ; line_number = 539
3970                    ; if rc@io1_bit start
3971                    ;info   539, 470
3972 00000056 = digital_read__select__4___byte equ digital_read__rc
3973 00000003 = digital_read__select__4___bit equ 3
3974                    ; =>bit_code_emit@symbol(): sym=digital_read__select__4
3975                    ; 1TEST: Single test with code in skip slot
3976 01d6 19d6          btfsc   digital_read__select__4___byte, digital_read__select__4___bit
3977                    ; line_number = 540
3978                    ; digital@1 := _true
3979                    ;info   540, 471
3980 00000057 = digital_read__select__3___byte equ digital_read__digital
3981 00000001 = digital_read__select__3___bit equ 1
3982 01d7 14d7          bsf     digital_read__select__3___byte, digital_read__select__3___bit
3983                    ; Recombine size1 = 0 || size2 = 0
3984                    ; line_number = 539
3985                    ; if rc@io1_bit done
3986                    ; line_number = 541
3987                    ; if rc@io2_bit start
3988                    ;info   541, 472
3989 00000056 = digital_read__select__6___byte equ digital_read__rc
3990 00000002 = digital_read__select__6___bit equ 2
3991                    ; =>bit_code_emit@symbol(): sym=digital_read__select__6
3992                    ; 1TEST: Single test with code in skip slot
3993 01d8 1956          btfsc   digital_read__select__6___byte, digital_read__select__6___bit
3994                    ; line_number = 542
3995                    ; digital@2 := _true
3996                    ;info   542, 473
3997 00000057 = digital_read__select__5___byte equ digital_read__digital
3998 00000002 = digital_read__select__5___bit equ 2
3999 01d9 1557          bsf     digital_read__select__5___byte, digital_read__select__5___bit
4000                    ; Recombine size1 = 0 || size2 = 0
4001                    ; line_number = 541
4002                    ; if rc@io2_bit done
4003                    ; line_number = 543
4004                    ; if rc@io3_bit start
4005                    ;info   543, 474
4006 00000056 = digital_read__select__8___byte equ digital_read__rc
4007 00000000 = digital_read__select__8___bit equ 0
4008                    ; =>bit_code_emit@symbol(): sym=digital_read__select__8
4009                    ; 1TEST: Single test with code in skip slot
4010 01da 1856          btfsc   digital_read__select__8___byte, digital_read__select__8___bit
4011                    ; line_number = 544
4012                    ; digital@3 := _true
4013                    ;info   544, 475
4014 00000057 = digital_read__select__7___byte equ digital_read__digital
4015 00000003 = digital_read__select__7___bit equ 3
4016 01db 15d7          bsf     digital_read__select__7___byte, digital_read__select__7___bit
4017                    ; Recombine size1 = 0 || size2 = 0
4018                    ; line_number = 543
4019                    ; if rc@io3_bit done
4020                    ; line_number = 545
4021                    ; if ra@io4_bit start
4022                    ;info   545, 476
4023 00000055 = digital_read__select__10___byte equ digital_read__ra
4024 00000001 = digital_read__select__10___bit equ 1
4025                    ; =>bit_code_emit@symbol(): sym=digital_read__select__10
4026                    ; 1TEST: Single test with code in skip slot
4027 01dc 18d5          btfsc   digital_read__select__10___byte, digital_read__select__10___bit
4028                    ; line_number = 546
4029                    ; digital@4 := _true
4030                    ;info   546, 477
4031 00000057 = digital_read__select__9___byte equ digital_read__digital
4032 00000004 = digital_read__select__9___bit equ 4
4033 01dd 1657          bsf     digital_read__select__9___byte, digital_read__select__9___bit
4034                    ; Recombine size1 = 0 || size2 = 0
4035                    ; line_number = 545
4036                    ; if ra@io4_bit done
4037                    ; line_number = 547
4038                    ; if ra@io5_bit start
4039                    ;info   547, 478
4040 00000055 = digital_read__select__12___byte equ digital_read__ra
4041 00000004 = digital_read__select__12___bit equ 4
4042                    ; =>bit_code_emit@symbol(): sym=digital_read__select__12
4043                    ; 1TEST: Single test with code in skip slot
4044 01de 1a55          btfsc   digital_read__select__12___byte, digital_read__select__12___bit
4045                    ; line_number = 548
4046                    ; digital@5 := _true
4047                    ;info   548, 479
4048 00000057 = digital_read__select__11___byte equ digital_read__digital
4049 00000005 = digital_read__select__11___bit equ 5
4050 01df 16d7          bsf     digital_read__select__11___byte, digital_read__select__11___bit
4051                    ; Recombine size1 = 0 || size2 = 0
4052                    ; line_number = 547
4053                    ; if ra@io5_bit done
4054                    ; line_number = 549
4055                    ; if ra@io6_bit start
4056                    ;info   549, 480
4057 00000055 = digital_read__select__14___byte equ digital_read__ra
4058 00000000 = digital_read__select__14___bit equ 0
4059                    ; =>bit_code_emit@symbol(): sym=digital_read__select__14
4060                    ; 1TEST: Single test with code in skip slot
4061 01e0 1855          btfsc   digital_read__select__14___byte, digital_read__select__14___bit
4062                    ; line_number = 550
4063                    ; digital@6 := _true
4064                    ;info   550, 481
4065 00000057 = digital_read__select__13___byte equ digital_read__digital
4066 00000006 = digital_read__select__13___bit equ 6
4067 01e1 1757          bsf     digital_read__select__13___byte, digital_read__select__13___bit
4068                    ; Recombine size1 = 0 || size2 = 0
4069                    ; line_number = 549
4070                    ; if ra@io6_bit done
4071                    ; line_number = 551
4072                    ; if ra@io7_bit start
4073                    ;info   551, 482
4074 00000055 = digital_read__select__16___byte equ digital_read__ra
4075 00000002 = digital_read__select__16___bit equ 2
4076                    ; =>bit_code_emit@symbol(): sym=digital_read__select__16
4077                    ; 1TEST: Single test with code in skip slot
4078 01e2 1955          btfsc   digital_read__select__16___byte, digital_read__select__16___bit
4079                    ; line_number = 552
4080                    ; digital@7 := _true
4081                    ;info   552, 483
4082 00000057 = digital_read__select__15___byte equ digital_read__digital
4083 00000007 = digital_read__select__15___bit equ 7
4084 01e3 17d7          bsf     digital_read__select__15___byte, digital_read__select__15___bit
4085                    ; Recombine size1 = 0 || size2 = 0
4086                    ; line_number = 551
4087                    ; if ra@io7_bit done
4088                    ; line_number = 553
4089                    ; return digital start
4090                    ; line_number = 553
4091                    ;info   553, 484
4092 01e4 0857          movf    digital_read__digital,w
4093 01e5 0008          return  
4094                    ; line_number = 553
4095                    ; return digital done
4096            
4097            
4098                    ; delay after procedure statements=non-uniform
4099            
4100            
4101            
4102            
4103                    ; line_number = 556
4104                    ;info   556, 486
4105                    ; procedure digital_set
4106   01e6 :   digital_set:
4107                    ; Last argument is sitting in W; save into argument variable
4108 01e6 00da          movwf   digital_set__digital
4109                    ; delay=4294967295
4110                    ; line_number = 557
4111                    ; argument digital byte
4112 0000005a = digital_set__digital equ globals___0+58
4113                    ; line_number = 558
4114                    ;  returns_nothing
4115            
4116                    ; # This procedure will set the digital outputs to be equal to {digital}.
4117            
4118                    ; line_number = 562
4119                    ;  local ra byte
4120 00000058 = digital_set__ra equ globals___0+56
4121                    ; line_number = 563
4122                    ;  local rc byte
4123 00000059 = digital_set__rc equ globals___0+57
4124            
4125                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4126                    ; line_number = 565
4127                    ;  ra := 0
4128                    ;info   565, 487
4129 01e7 01d8          clrf    digital_set__ra
4130                    ; line_number = 566
4131                    ;  rc := 0
4132                    ;info   566, 488
4133 01e8 01d9          clrf    digital_set__rc
4134                    ; line_number = 567
4135                    ;  if digital@0 start
4136                    ;info   567, 489
4137 0000005a = digital_set__select__2___byte equ digital_set__digital
4138 00000000 = digital_set__select__2___bit equ 0
4139                    ; =>bit_code_emit@symbol(): sym=digital_set__select__2
4140                    ; 1TEST: Single test with code in skip slot
4141 01e9 185a          btfsc   digital_set__select__2___byte, digital_set__select__2___bit
4142                    ; line_number = 568
4143                    ; rc@io0_bit := _true
4144                    ;info   568, 490
4145 00000059 = digital_set__select__1___byte equ digital_set__rc
4146 00000001 = digital_set__select__1___bit equ 1
4147 01ea 14d9          bsf     digital_set__select__1___byte, digital_set__select__1___bit
4148                    ; Recombine size1 = 0 || size2 = 0
4149                    ; line_number = 567
4150                    ;  if digital@0 done
4151                    ; line_number = 569
4152                    ; if digital@1 start
4153                    ;info   569, 491
4154 0000005a = digital_set__select__4___byte equ digital_set__digital
4155 00000001 = digital_set__select__4___bit equ 1
4156                    ; =>bit_code_emit@symbol(): sym=digital_set__select__4
4157                    ; 1TEST: Single test with code in skip slot
4158 01eb 18da          btfsc   digital_set__select__4___byte, digital_set__select__4___bit
4159                    ; line_number = 570
4160                    ; rc@io1_bit := _true
4161                    ;info   570, 492
4162 00000059 = digital_set__select__3___byte equ digital_set__rc
4163 00000003 = digital_set__select__3___bit equ 3
4164 01ec 15d9          bsf     digital_set__select__3___byte, digital_set__select__3___bit
4165                    ; Recombine size1 = 0 || size2 = 0
4166                    ; line_number = 569
4167                    ; if digital@1 done
4168                    ; line_number = 571
4169                    ; if digital@2 start
4170                    ;info   571, 493
4171 0000005a = digital_set__select__6___byte equ digital_set__digital
4172 00000002 = digital_set__select__6___bit equ 2
4173                    ; =>bit_code_emit@symbol(): sym=digital_set__select__6
4174                    ; 1TEST: Single test with code in skip slot
4175 01ed 195a          btfsc   digital_set__select__6___byte, digital_set__select__6___bit
4176                    ; line_number = 572
4177                    ; rc@io2_bit := _true
4178                    ;info   572, 494
4179 00000059 = digital_set__select__5___byte equ digital_set__rc
4180 00000002 = digital_set__select__5___bit equ 2
4181 01ee 1559          bsf     digital_set__select__5___byte, digital_set__select__5___bit
4182                    ; Recombine size1 = 0 || size2 = 0
4183                    ; line_number = 571
4184                    ; if digital@2 done
4185                    ; line_number = 573
4186                    ; if digital@3 start
4187                    ;info   573, 495
4188 0000005a = digital_set__select__8___byte equ digital_set__digital
4189 00000003 = digital_set__select__8___bit equ 3
4190                    ; =>bit_code_emit@symbol(): sym=digital_set__select__8
4191                    ; 1TEST: Single test with code in skip slot
4192 01ef 19da          btfsc   digital_set__select__8___byte, digital_set__select__8___bit
4193                    ; line_number = 574
4194                    ; rc@io3_bit := _true
4195                    ;info   574, 496
4196 00000059 = digital_set__select__7___byte equ digital_set__rc
4197 00000000 = digital_set__select__7___bit equ 0
4198 01f0 1459          bsf     digital_set__select__7___byte, digital_set__select__7___bit
4199                    ; Recombine size1 = 0 || size2 = 0
4200                    ; line_number = 573
4201                    ; if digital@3 done
4202                    ; line_number = 575
4203                    ; if digital@4 start
4204                    ;info   575, 497
4205 0000005a = digital_set__select__10___byte equ digital_set__digital
4206 00000004 = digital_set__select__10___bit equ 4
4207                    ; =>bit_code_emit@symbol(): sym=digital_set__select__10
4208                    ; 1TEST: Single test with code in skip slot
4209 01f1 1a5a          btfsc   digital_set__select__10___byte, digital_set__select__10___bit
4210                    ; line_number = 576
4211                    ; ra@io4_bit := _true
4212                    ;info   576, 498
4213 00000058 = digital_set__select__9___byte equ digital_set__ra
4214 00000001 = digital_set__select__9___bit equ 1
4215 01f2 14d8          bsf     digital_set__select__9___byte, digital_set__select__9___bit
4216                    ; Recombine size1 = 0 || size2 = 0
4217                    ; line_number = 575
4218                    ; if digital@4 done
4219                    ; line_number = 577
4220                    ; if digital@5 start
4221                    ;info   577, 499
4222 0000005a = digital_set__select__12___byte equ digital_set__digital
4223 00000005 = digital_set__select__12___bit equ 5
4224                    ; =>bit_code_emit@symbol(): sym=digital_set__select__12
4225                    ; 1TEST: Single test with code in skip slot
4226 01f3 1ada          btfsc   digital_set__select__12___byte, digital_set__select__12___bit
4227                    ; line_number = 578
4228                    ; ra@io5_bit := _true
4229                    ;info   578, 500
4230 00000058 = digital_set__select__11___byte equ digital_set__ra
4231 00000004 = digital_set__select__11___bit equ 4
4232 01f4 1658          bsf     digital_set__select__11___byte, digital_set__select__11___bit
4233                    ; Recombine size1 = 0 || size2 = 0
4234                    ; line_number = 577
4235                    ; if digital@5 done
4236                    ; line_number = 579
4237                    ; if digital@6 start
4238                    ;info   579, 501
4239 0000005a = digital_set__select__14___byte equ digital_set__digital
4240 00000006 = digital_set__select__14___bit equ 6
4241                    ; =>bit_code_emit@symbol(): sym=digital_set__select__14
4242                    ; 1TEST: Single test with code in skip slot
4243 01f5 1b5a          btfsc   digital_set__select__14___byte, digital_set__select__14___bit
4244                    ; line_number = 580
4245                    ; ra@io6_bit := _true
4246                    ;info   580, 502
4247 00000058 = digital_set__select__13___byte equ digital_set__ra
4248 00000000 = digital_set__select__13___bit equ 0
4249 01f6 1458          bsf     digital_set__select__13___byte, digital_set__select__13___bit
4250                    ; Recombine size1 = 0 || size2 = 0
4251                    ; line_number = 579
4252                    ; if digital@6 done
4253                    ; line_number = 581
4254                    ; if digital@7 start
4255                    ;info   581, 503
4256 0000005a = digital_set__select__16___byte equ digital_set__digital
4257 00000007 = digital_set__select__16___bit equ 7
4258                    ; =>bit_code_emit@symbol(): sym=digital_set__select__16
4259                    ; 1TEST: Single test with code in skip slot
4260 01f7 1bda          btfsc   digital_set__select__16___byte, digital_set__select__16___bit
4261                    ; line_number = 582
4262                    ; ra@io7_bit := _true
4263                    ;info   582, 504
4264 00000058 = digital_set__select__15___byte equ digital_set__ra
4265 00000002 = digital_set__select__15___bit equ 2
4266 01f8 1558          bsf     digital_set__select__15___byte, digital_set__select__15___bit
4267                    ; Recombine size1 = 0 || size2 = 0
4268                    ; line_number = 581
4269                    ; if digital@7 done
4270                    ; line_number = 583
4271                    ; _porta := ra
4272                    ;info   583, 505
4273 01f9 0858          movf    digital_set__ra,w
4274 01fa 0085          movwf   _porta
4275                    ; line_number = 584
4276                    ;  _portc := rc
4277                    ;info   584, 507
4278 01fb 0859          movf    digital_set__rc,w
4279 01fc 0087          movwf   _portc
4280            
4281            
4282                    ; delay after procedure statements=non-uniform
4283                    ; Implied return
4284 01fd 3400          retlw   0
4285            
4286            
4287            
4288            
4289                    ; line_number = 587
4290                    ;info   587, 510
4291                    ; procedure direction_read
4292   01fe :   direction_read:
4293                    ; arguments_none
4294                    ; line_number = 589
4295                    ;  returns byte
4296            
4297                    ; # This procedure will return the digital bits corresponding to
4298                    ; # the 8 digital data inputs.
4299            
4300                    ; line_number = 594
4301                    ;  local trisa byte
4302 0000005b = direction_read__trisa equ globals___0+59
4303                    ; line_number = 595
4304                    ;  local trisc byte
4305 0000005c = direction_read__trisc equ globals___0+60
4306                    ; line_number = 596
4307                    ;  local direction byte
4308 0000005d = direction_read__direction equ globals___0+61
4309            
4310                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4311                    ; line_number = 598
4312                    ;  direction := 0
4313                    ;info   598, 510
4314 01fe 01dd          clrf    direction_read__direction
4315                    ; # Get all data into data bank 0:
4316                    ; line_number = 600
4317                    ;  trisa := _trisa
4318                    ;info   600, 511
4319 01ff 1683          bsf     __rp0___byte, __rp0___bit
4320 0200 0805          movf    _trisa,w
4321 0201 1283          bcf     __rp0___byte, __rp0___bit
4322 0202 00db          movwf   direction_read__trisa
4323                    ; line_number = 601
4324                    ;  trisc := _trisc
4325                    ;info   601, 515
4326 0203 1683          bsf     __rp0___byte, __rp0___bit
4327 0204 0807          movf    _trisc,w
4328 0205 1283          bcf     __rp0___byte, __rp0___bit
4329 0206 00dc          movwf   direction_read__trisc
4330            
4331                    ; line_number = 603
4332                    ;  if trisc@io0_bit start
4333                    ;info   603, 519
4334 0000005c = direction_read__select__2___byte equ direction_read__trisc
4335 00000001 = direction_read__select__2___bit equ 1
4336                    ; =>bit_code_emit@symbol(): sym=direction_read__select__2
4337                    ; 1TEST: Single test with code in skip slot
4338 0207 18dc          btfsc   direction_read__select__2___byte, direction_read__select__2___bit
4339                    ; line_number = 604
4340                    ; direction@0 := _true
4341                    ;info   604, 520
4342 0000005d = direction_read__select__1___byte equ direction_read__direction
4343 00000000 = direction_read__select__1___bit equ 0
4344 0208 145d          bsf     direction_read__select__1___byte, direction_read__select__1___bit
4345                    ; Recombine size1 = 0 || size2 = 0
4346                    ; line_number = 603
4347                    ;  if trisc@io0_bit done
4348                    ; line_number = 605
4349                    ; if trisc@io1_bit start
4350                    ;info   605, 521
4351 0000005c = direction_read__select__4___byte equ direction_read__trisc
4352 00000003 = direction_read__select__4___bit equ 3
4353                    ; =>bit_code_emit@symbol(): sym=direction_read__select__4
4354                    ; 1TEST: Single test with code in skip slot
4355 0209 19dc          btfsc   direction_read__select__4___byte, direction_read__select__4___bit
4356                    ; line_number = 606
4357                    ; direction@1 := _true
4358                    ;info   606, 522
4359 0000005d = direction_read__select__3___byte equ direction_read__direction
4360 00000001 = direction_read__select__3___bit equ 1
4361 020a 14dd          bsf     direction_read__select__3___byte, direction_read__select__3___bit
4362                    ; Recombine size1 = 0 || size2 = 0
4363                    ; line_number = 605
4364                    ; if trisc@io1_bit done
4365                    ; line_number = 607
4366                    ; if trisc@io2_bit start
4367                    ;info   607, 523
4368 0000005c = direction_read__select__6___byte equ direction_read__trisc
4369 00000002 = direction_read__select__6___bit equ 2
4370                    ; =>bit_code_emit@symbol(): sym=direction_read__select__6
4371                    ; 1TEST: Single test with code in skip slot
4372 020b 195c          btfsc   direction_read__select__6___byte, direction_read__select__6___bit
4373                    ; line_number = 608
4374                    ; direction@2 := _true
4375                    ;info   608, 524
4376 0000005d = direction_read__select__5___byte equ direction_read__direction
4377 00000002 = direction_read__select__5___bit equ 2
4378 020c 155d          bsf     direction_read__select__5___byte, direction_read__select__5___bit
4379                    ; Recombine size1 = 0 || size2 = 0
4380                    ; line_number = 607
4381                    ; if trisc@io2_bit done
4382                    ; line_number = 609
4383                    ; if trisc@io3_bit start
4384                    ;info   609, 525
4385 0000005c = direction_read__select__8___byte equ direction_read__trisc
4386 00000000 = direction_read__select__8___bit equ 0
4387                    ; =>bit_code_emit@symbol(): sym=direction_read__select__8
4388                    ; 1TEST: Single test with code in skip slot
4389 020d 185c          btfsc   direction_read__select__8___byte, direction_read__select__8___bit
4390                    ; line_number = 610
4391                    ; direction@3 := _true
4392                    ;info   610, 526
4393 0000005d = direction_read__select__7___byte equ direction_read__direction
4394 00000003 = direction_read__select__7___bit equ 3
4395 020e 15dd          bsf     direction_read__select__7___byte, direction_read__select__7___bit
4396                    ; Recombine size1 = 0 || size2 = 0
4397                    ; line_number = 609
4398                    ; if trisc@io3_bit done
4399                    ; line_number = 611
4400                    ; if trisa@io4_bit start
4401                    ;info   611, 527
4402 0000005b = direction_read__select__10___byte equ direction_read__trisa
4403 00000001 = direction_read__select__10___bit equ 1
4404                    ; =>bit_code_emit@symbol(): sym=direction_read__select__10
4405                    ; 1TEST: Single test with code in skip slot
4406 020f 18db          btfsc   direction_read__select__10___byte, direction_read__select__10___bit
4407                    ; line_number = 612
4408                    ; direction@4 := _true
4409                    ;info   612, 528
4410 0000005d = direction_read__select__9___byte equ direction_read__direction
4411 00000004 = direction_read__select__9___bit equ 4
4412 0210 165d          bsf     direction_read__select__9___byte, direction_read__select__9___bit
4413                    ; Recombine size1 = 0 || size2 = 0
4414                    ; line_number = 611
4415                    ; if trisa@io4_bit done
4416                    ; line_number = 613
4417                    ; if trisa@io5_bit start
4418                    ;info   613, 529
4419 0000005b = direction_read__select__12___byte equ direction_read__trisa
4420 00000004 = direction_read__select__12___bit equ 4
4421                    ; =>bit_code_emit@symbol(): sym=direction_read__select__12
4422                    ; 1TEST: Single test with code in skip slot
4423 0211 1a5b          btfsc   direction_read__select__12___byte, direction_read__select__12___bit
4424                    ; line_number = 614
4425                    ; direction@5 := _true
4426                    ;info   614, 530
4427 0000005d = direction_read__select__11___byte equ direction_read__direction
4428 00000005 = direction_read__select__11___bit equ 5
4429 0212 16dd          bsf     direction_read__select__11___byte, direction_read__select__11___bit
4430                    ; Recombine size1 = 0 || size2 = 0
4431                    ; line_number = 613
4432                    ; if trisa@io5_bit done
4433                    ; line_number = 615
4434                    ; if trisa@io6_bit start
4435                    ;info   615, 531
4436 0000005b = direction_read__select__14___byte equ direction_read__trisa
4437 00000000 = direction_read__select__14___bit equ 0
4438                    ; =>bit_code_emit@symbol(): sym=direction_read__select__14
4439                    ; 1TEST: Single test with code in skip slot
4440 0213 185b          btfsc   direction_read__select__14___byte, direction_read__select__14___bit
4441                    ; line_number = 616
4442                    ; direction@6 := _true
4443                    ;info   616, 532
4444 0000005d = direction_read__select__13___byte equ direction_read__direction
4445 00000006 = direction_read__select__13___bit equ 6
4446 0214 175d          bsf     direction_read__select__13___byte, direction_read__select__13___bit
4447                    ; Recombine size1 = 0 || size2 = 0
4448                    ; line_number = 615
4449                    ; if trisa@io6_bit done
4450                    ; line_number = 617
4451                    ; if trisa@io7_bit start
4452                    ;info   617, 533
4453 0000005b = direction_read__select__16___byte equ direction_read__trisa
4454 00000002 = direction_read__select__16___bit equ 2
4455                    ; =>bit_code_emit@symbol(): sym=direction_read__select__16
4456                    ; 1TEST: Single test with code in skip slot
4457 0215 195b          btfsc   direction_read__select__16___byte, direction_read__select__16___bit
4458                    ; line_number = 618
4459                    ; direction@7 := _true
4460                    ;info   618, 534
4461 0000005d = direction_read__select__15___byte equ direction_read__direction
4462 00000007 = direction_read__select__15___bit equ 7
4463 0216 17dd          bsf     direction_read__select__15___byte, direction_read__select__15___bit
4464                    ; Recombine size1 = 0 || size2 = 0
4465                    ; line_number = 617
4466                    ; if trisa@io7_bit done
4467                    ; line_number = 619
4468                    ; return direction start
4469                    ; line_number = 619
4470                    ;info   619, 535
4471 0217 085d          movf    direction_read__direction,w
4472 0218 0008          return  
4473                    ; line_number = 619
4474                    ; return direction done
4475            
4476            
4477                    ; delay after procedure statements=non-uniform
4478            
4479            
4480            
4481            
4482                    ; line_number = 622
4483                    ;info   622, 537
4484                    ; procedure direction_set
4485   0219 :   direction_set:
4486                    ; Last argument is sitting in W; save into argument variable
4487 0219 00e0          movwf   direction_set__direction
4488                    ; delay=4294967295
4489                    ; line_number = 623
4490                    ; argument direction byte
4491 00000060 = direction_set__direction equ globals___0+64
4492                    ; line_number = 624
4493                    ;  returns_nothing
4494            
4495                    ; # This procedure will set the direction outputs to be equal to {direction}.
4496            
4497                    ; line_number = 628
4498                    ;  local trisa byte
4499 0000005e = direction_set__trisa equ globals___0+62
4500                    ; line_number = 629
4501                    ;  local trisc byte
4502 0000005f = direction_set__trisc equ globals___0+63
4503            
4504                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4505                    ; line_number = 631
4506                    ;  trisa := 0xc0
4507                    ;info   631, 538
4508 021a 30c0          movlw   192
4509 021b 00de          movwf   direction_set__trisa
4510                    ; line_number = 632
4511                    ;  trisc := 0xc0
4512                    ;info   632, 540
4513 021c 30c0          movlw   192
4514 021d 00df          movwf   direction_set__trisc
4515                    ; line_number = 633
4516                    ;  if direction@0 start
4517                    ;info   633, 542
4518 00000060 = direction_set__select__2___byte equ direction_set__direction
4519 00000000 = direction_set__select__2___bit equ 0
4520                    ; =>bit_code_emit@symbol(): sym=direction_set__select__2
4521                    ; 1TEST: Single test with code in skip slot
4522 021e 1860          btfsc   direction_set__select__2___byte, direction_set__select__2___bit
4523                    ; line_number = 634
4524                    ; trisc@io0_bit := _true
4525                    ;info   634, 543
4526 0000005f = direction_set__select__1___byte equ direction_set__trisc
4527 00000001 = direction_set__select__1___bit equ 1
4528 021f 14df          bsf     direction_set__select__1___byte, direction_set__select__1___bit
4529                    ; Recombine size1 = 0 || size2 = 0
4530                    ; line_number = 633
4531                    ;  if direction@0 done
4532                    ; line_number = 635
4533                    ; if direction@1 start
4534                    ;info   635, 544
4535 00000060 = direction_set__select__4___byte equ direction_set__direction
4536 00000001 = direction_set__select__4___bit equ 1
4537                    ; =>bit_code_emit@symbol(): sym=direction_set__select__4
4538                    ; 1TEST: Single test with code in skip slot
4539 0220 18e0          btfsc   direction_set__select__4___byte, direction_set__select__4___bit
4540                    ; line_number = 636
4541                    ; trisc@io1_bit := _true
4542                    ;info   636, 545
4543 0000005f = direction_set__select__3___byte equ direction_set__trisc
4544 00000003 = direction_set__select__3___bit equ 3
4545 0221 15df          bsf     direction_set__select__3___byte, direction_set__select__3___bit
4546                    ; Recombine size1 = 0 || size2 = 0
4547                    ; line_number = 635
4548                    ; if direction@1 done
4549                    ; line_number = 637
4550                    ; if direction@2 start
4551                    ;info   637, 546
4552 00000060 = direction_set__select__6___byte equ direction_set__direction
4553 00000002 = direction_set__select__6___bit equ 2
4554                    ; =>bit_code_emit@symbol(): sym=direction_set__select__6
4555                    ; 1TEST: Single test with code in skip slot
4556 0222 1960          btfsc   direction_set__select__6___byte, direction_set__select__6___bit
4557                    ; line_number = 638
4558                    ; trisc@io2_bit := _true
4559                    ;info   638, 547
4560 0000005f = direction_set__select__5___byte equ direction_set__trisc
4561 00000002 = direction_set__select__5___bit equ 2
4562 0223 155f          bsf     direction_set__select__5___byte, direction_set__select__5___bit
4563                    ; Recombine size1 = 0 || size2 = 0
4564                    ; line_number = 637
4565                    ; if direction@2 done
4566                    ; line_number = 639
4567                    ; if direction@3 start
4568                    ;info   639, 548
4569 00000060 = direction_set__select__8___byte equ direction_set__direction
4570 00000003 = direction_set__select__8___bit equ 3
4571                    ; =>bit_code_emit@symbol(): sym=direction_set__select__8
4572                    ; 1TEST: Single test with code in skip slot
4573 0224 19e0          btfsc   direction_set__select__8___byte, direction_set__select__8___bit
4574                    ; line_number = 640
4575                    ; trisc@io3_bit := _true
4576                    ;info   640, 549
4577 0000005f = direction_set__select__7___byte equ direction_set__trisc
4578 00000000 = direction_set__select__7___bit equ 0
4579 0225 145f          bsf     direction_set__select__7___byte, direction_set__select__7___bit
4580                    ; Recombine size1 = 0 || size2 = 0
4581                    ; line_number = 639
4582                    ; if direction@3 done
4583                    ; line_number = 641
4584                    ; if direction@4 start
4585                    ;info   641, 550
4586 00000060 = direction_set__select__10___byte equ direction_set__direction
4587 00000004 = direction_set__select__10___bit equ 4
4588                    ; =>bit_code_emit@symbol(): sym=direction_set__select__10
4589                    ; 1TEST: Single test with code in skip slot
4590 0226 1a60          btfsc   direction_set__select__10___byte, direction_set__select__10___bit
4591                    ; line_number = 642
4592                    ; trisa@io4_bit := _true
4593                    ;info   642, 551
4594 0000005e = direction_set__select__9___byte equ direction_set__trisa
4595 00000001 = direction_set__select__9___bit equ 1
4596 0227 14de          bsf     direction_set__select__9___byte, direction_set__select__9___bit
4597                    ; Recombine size1 = 0 || size2 = 0
4598                    ; line_number = 641
4599                    ; if direction@4 done
4600                    ; line_number = 643
4601                    ; if direction@5 start
4602                    ;info   643, 552
4603 00000060 = direction_set__select__12___byte equ direction_set__direction
4604 00000005 = direction_set__select__12___bit equ 5
4605                    ; =>bit_code_emit@symbol(): sym=direction_set__select__12
4606                    ; 1TEST: Single test with code in skip slot
4607 0228 1ae0          btfsc   direction_set__select__12___byte, direction_set__select__12___bit
4608                    ; line_number = 644
4609                    ; trisa@io5_bit := _true
4610                    ;info   644, 553
4611 0000005e = direction_set__select__11___byte equ direction_set__trisa
4612 00000004 = direction_set__select__11___bit equ 4
4613 0229 165e          bsf     direction_set__select__11___byte, direction_set__select__11___bit
4614                    ; Recombine size1 = 0 || size2 = 0
4615                    ; line_number = 643
4616                    ; if direction@5 done
4617                    ; line_number = 645
4618                    ; if direction@6 start
4619                    ;info   645, 554
4620 00000060 = direction_set__select__14___byte equ direction_set__direction
4621 00000006 = direction_set__select__14___bit equ 6
4622                    ; =>bit_code_emit@symbol(): sym=direction_set__select__14
4623                    ; 1TEST: Single test with code in skip slot
4624 022a 1b60          btfsc   direction_set__select__14___byte, direction_set__select__14___bit
4625                    ; line_number = 646
4626                    ; trisa@io6_bit := _true
4627                    ;info   646, 555
4628 0000005e = direction_set__select__13___byte equ direction_set__trisa
4629 00000000 = direction_set__select__13___bit equ 0
4630 022b 145e          bsf     direction_set__select__13___byte, direction_set__select__13___bit
4631                    ; Recombine size1 = 0 || size2 = 0
4632                    ; line_number = 645
4633                    ; if direction@6 done
4634                    ; line_number = 647
4635                    ; if direction@7 start
4636                    ;info   647, 556
4637 00000060 = direction_set__select__16___byte equ direction_set__direction
4638 00000007 = direction_set__select__16___bit equ 7
4639                    ; =>bit_code_emit@symbol(): sym=direction_set__select__16
4640                    ; 1TEST: Single test with code in skip slot
4641 022c 1be0          btfsc   direction_set__select__16___byte, direction_set__select__16___bit
4642                    ; line_number = 648
4643                    ; trisa@io7_bit := _true
4644                    ;info   648, 557
4645 0000005e = direction_set__select__15___byte equ direction_set__trisa
4646 00000002 = direction_set__select__15___bit equ 2
4647 022d 155e          bsf     direction_set__select__15___byte, direction_set__select__15___bit
4648                    ; Recombine size1 = 0 || size2 = 0
4649                    ; line_number = 647
4650                    ; if direction@7 done
4651                    ; line_number = 649
4652                    ; trisc@rx_bit := _true
4653                    ;info   649, 558
4654 0000005f = direction_set__select__17___byte equ direction_set__trisc
4655 00000005 = direction_set__select__17___bit equ 5
4656 022e 16df          bsf     direction_set__select__17___byte, direction_set__select__17___bit
4657                    ; line_number = 650
4658                    ;  trisc@tx_bit := _true
4659                    ;info   650, 559
4660 0000005f = direction_set__select__18___byte equ direction_set__trisc
4661 00000004 = direction_set__select__18___bit equ 4
4662 022f 165f          bsf     direction_set__select__18___byte, direction_set__select__18___bit
4663                    ; line_number = 651
4664                    ;  _trisa := trisa
4665                    ;info   651, 560
4666 0230 085e          movf    direction_set__trisa,w
4667 0231 1683          bsf     __rp0___byte, __rp0___bit
4668 0232 0085          movwf   _trisa
4669                    ; line_number = 652
4670                    ;  _trisc := trisc
4671                    ;info   652, 563
4672 0233 1283          bcf     __rp0___byte, __rp0___bit
4673 0234 085f          movf    direction_set__trisc,w
4674 0235 1683          bsf     __rp0___byte, __rp0___bit
4675 0236 0087          movwf   _trisc
4676            
4677                    ; delay after procedure statements=non-uniform
4678 0237 1283          bcf     __rp0___byte, __rp0___bit
4679                    ; Implied return
4680 0238 3400          retlw   0
4681            
4682            
4683            
4684            
4685            
4686                    ; Appending 8 delayed procedures to code bank 0
4687                    ; buffer = 'rb2bus'
4688                    ; line_number = 57
4689                    ;info   57, 569
4690                    ; procedure rb2bus_select_wait
4691   0239 :   rb2bus_select_wait:
4692                    ; arguments_none
4693                    ; line_number = 59
4694                    ;  returns_nothing
4695            
4696                    ; # This procedure will in an infinite loop until the select
4697                    ; # address matches {rb2bus_address}.  {rb2bus_address} is
4698                    ; # typically set in the {rb2bus_initialize} procedure.
4699                    ; #
4700                    ; # This module will repeatably call the {wait} procedure until
4701                    ; # it is properly selected.
4702            
4703                    ; line_number = 68
4704                    ;  local value byte
4705 00000022 = rb2bus_select_wait__value equ globals___0+2
4706                    ; line_number = 69
4707                    ;  local address_bit bit
4708 0000006f = rb2bus_select_wait__address_bit___byte equ globals___0+79
4709 00000002 = rb2bus_select_wait__address_bit___bit equ 2
4710            
4711                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4712                    ; line_number = 71
4713                    ;  rb2bus_error := _false
4714                    ;info   71, 569
4715 0239 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
4716                    ; line_number = 72
4717                    ;  while !rb2bus_selected start
4718   023a :   rb2bus_select_wait__1:
4719                    ;info   72, 570
4720                    ; =>bit_code_emit@symbol(): sym=rb2bus_selected
4721                    ; No 1TEST: true.size=0 false.size=25
4722                    ; No 2TEST: true.size=0 false.size=25
4723                    ; 1GOTO: Single test with GOTO
4724 023a 186f          btfsc   rb2bus_selected___byte, rb2bus_selected___bit
4725 023b 2a55          goto    rb2bus_select_wait__6
4726                    ; line_number = 73
4727                    ; _adden := _true
4728                    ;info   73, 572
4729 023c 1597          bsf     _adden___byte, _adden___bit
4730                    ; # Wait for a byte to arrive.
4731                    ; line_number = 75
4732                    ;  while !_rcif start
4733   023d :   rb2bus_select_wait__2:
4734                    ;info   75, 573
4735                    ; =>bit_code_emit@symbol(): sym=_rcif
4736                    ; No 1TEST: true.size=0 false.size=2
4737                    ; No 2TEST: true.size=0 false.size=2
4738                    ; 1GOTO: Single test with GOTO
4739 023d 1a8c          btfsc   _rcif___byte, _rcif___bit
4740 023e 2a41          goto    rb2bus_select_wait__3
4741                    ; line_number = 76
4742                    ; call wait()
4743                    ;info   76, 575
4744 023f 2124          call    wait
4745            
4746 0240 2a3d          goto    rb2bus_select_wait__2
4747   0241 :   rb2bus_select_wait__3:
4748                    ; Recombine size1 = 0 || size2 = 0
4749                    ; line_number = 75
4750                    ;  while !_rcif done
4751                    ; # Capture the received value:
4752                    ; line_number = 79
4753                    ;  address_bit := _false
4754                    ;info   79, 577
4755 0241 116f          bcf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4756                    ; line_number = 80
4757                    ;  if _rx9d start
4758                    ;info   80, 578
4759                    ; =>bit_code_emit@symbol(): sym=_rx9d
4760                    ; 1TEST: Single test with code in skip slot
4761 0242 1817          btfsc   _rx9d___byte, _rx9d___bit
4762                    ; line_number = 81
4763                    ; address_bit := _true
4764                    ;info   81, 579
4765 0243 156f          bsf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4766                    ; Recombine size1 = 0 || size2 = 0
4767                    ; line_number = 80
4768                    ;  if _rx9d done
4769                    ; line_number = 82
4770                    ; value := _rcreg
4771                    ;info   82, 580
4772 0244 0814          movf    _rcreg,w
4773 0245 00a2          movwf   rb2bus_select_wait__value
4774            
4775                    ; # Clear any UART errors by toggling {_cren}:
4776                    ; line_number = 85
4777                    ;  if _oerr start
4778                    ;info   85, 582
4779                    ; =>bit_code_emit@symbol(): sym=_oerr
4780                    ; 1TEST: Single test with code in skip slot
4781 0246 1897          btfsc   _oerr___byte, _oerr___bit
4782                    ; line_number = 86
4783                    ; _cren := _false
4784                    ;info   86, 583
4785 0247 1217          bcf     _cren___byte, _cren___bit
4786                    ; Recombine size1 = 0 || size2 = 0
4787                    ; line_number = 85
4788                    ;  if _oerr done
4789                    ; line_number = 87
4790                    ; if _ferr start
4791                    ;info   87, 584
4792                    ; =>bit_code_emit@symbol(): sym=_ferr
4793                    ; 1TEST: Single test with code in skip slot
4794 0248 1917          btfsc   _ferr___byte, _ferr___bit
4795                    ; line_number = 88
4796                    ; _cren := _false
4797                    ;info   88, 585
4798 0249 1217          bcf     _cren___byte, _cren___bit
4799                    ; Recombine size1 = 0 || size2 = 0
4800                    ; line_number = 87
4801                    ; if _ferr done
4802                    ; line_number = 89
4803                    ; _cren := _true
4804                    ;info   89, 586
4805 024a 1617          bsf     _cren___byte, _cren___bit
4806            
4807                    ; line_number = 91
4808                    ;  if address_bit start
4809                    ;info   91, 587
4810                    ; =>bit_code_emit@symbol(): sym=rb2bus_select_wait__address_bit
4811                    ; No 1TEST: true.size=7 false.size=0
4812                    ; No 2TEST: true.size=7 false.size=0
4813                    ; 1GOTO: Single test with GOTO
4814 024b 1d6f          btfss   rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4815 024c 2a54          goto    rb2bus_select_wait__5
4816                    ; line_number = 92
4817                    ; if value = rb2bus_address start
4818                    ;info   92, 589
4819                    ; Left minus Right
4820 024d 0820          movf    rb2bus_address,w
4821 024e 0222          subwf   rb2bus_select_wait__value,w
4822                    ; =>bit_code_emit@symbol(): sym=__z
4823                    ; No 1TEST: true.size=3 false.size=0
4824                    ; No 2TEST: true.size=3 false.size=0
4825                    ; 1GOTO: Single test with GOTO
4826 024f 1d03          btfss   __z___byte, __z___bit
4827 0250 2a54          goto    rb2bus_select_wait__4
4828                    ; line_number = 93
4829                    ; rb2bus_selected := _true
4830                    ;info   93, 593
4831 0251 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
4832                    ; line_number = 94
4833                    ;  call rb2bus_byte_put(rb2_ok)
4834                    ;info   94, 594
4835 0252 30a5          movlw   165
4836 0253 227a          call    rb2bus_byte_put
4837            
4838            
4839                    ; Recombine size1 = 0 || size2 = 0
4840   0254 :   rb2bus_select_wait__4:
4841                    ; line_number = 92
4842                    ; if value = rb2bus_address done
4843                    ; Recombine size1 = 0 || size2 = 0
4844   0254 :   rb2bus_select_wait__5:
4845                    ; line_number = 91
4846                    ;  if address_bit done
4847 0254 2a3a          goto    rb2bus_select_wait__1
4848   0255 :   rb2bus_select_wait__6:
4849                    ; Recombine size1 = 0 || size2 = 0
4850                    ; line_number = 72
4851                    ;  while !rb2bus_selected done
4852                    ; delay after procedure statements=non-uniform
4853                    ; Implied return
4854 0255 3400          retlw   0
4855            
4856            
4857            
4858            
4859                    ; line_number = 97
4860                    ;info   97, 598
4861                    ; procedure rb2bus_deselect
4862   0256 :   rb2bus_deselect:
4863                    ; arguments_none
4864                    ; line_number = 99
4865                    ;  returns_nothing
4866            
4867                    ; # This procedure forces this module into the deselected state until
4868                    ; # it is reselected by some master module on the bus.
4869            
4870                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4871                    ; line_number = 104
4872                    ;  rb2bus_selected := _false
4873                    ;info   104, 598
4874 0256 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4875            
4876            
4877                    ; delay after procedure statements=non-uniform
4878                    ; Implied return
4879 0257 3400          retlw   0
4880            
4881            
4882            
4883            
4884                    ; line_number = 107
4885                    ;info   107, 600
4886                    ; procedure rb2bus_byte_get
4887   0258 :   rb2bus_byte_get:
4888                    ; arguments_none
4889                    ; line_number = 109
4890                    ;  returns byte
4891            
4892                    ; # This procedure will return the next byte received from the bus.
4893                    ; # The address (9th) bit is stored in the global {is_address}.
4894                    ; #
4895                    ; # If {rb2bus_error} is set, 0 is returned.  Otherwise, the {wait}
4896                    ; # procedure is repeatably called until a command byte is successfully
4897                    ; # received.  If an module select byte comes in, we enter a bus
4898                    ; # error condition by setting {rb2bus_error} and returning 0.
4899            
4900                    ; line_number = 119
4901                    ;  local value byte
4902 00000023 = rb2bus_byte_get__value equ globals___0+3
4903                    ; line_number = 120
4904                    ;  local address_bit bit
4905 0000006f = rb2bus_byte_get__address_bit___byte equ globals___0+79
4906 00000003 = rb2bus_byte_get__address_bit___bit equ 3
4907            
4908                    ; # Return 0 in a bus flush condition to get us back to {rb2bus_select_wait}:
4909                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4910                    ; line_number = 123
4911                    ;  if rb2bus_error start
4912                    ;info   123, 600
4913                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
4914                    ; 1TEST: Single test with code in skip slot
4915 0258 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
4916                    ; line_number = 124
4917                    ; return 0 start
4918                    ; line_number = 124
4919                    ;info   124, 601
4920 0259 3400          retlw   0
4921                    ; line_number = 124
4922                    ; return 0 done
4923            
4924                    ; Recombine size1 = 0 || size2 = 0
4925                    ; line_number = 123
4926                    ;  if rb2bus_error done
4927                    ; # Wait for a byte to arrive.
4928                    ; line_number = 127
4929                    ;  _adden := _false
4930                    ;info   127, 602
4931 025a 1197          bcf     _adden___byte, _adden___bit
4932                    ; line_number = 128
4933                    ;  while !_rcif start
4934   025b :   rb2bus_byte_get__1:
4935                    ;info   128, 603
4936                    ; =>bit_code_emit@symbol(): sym=_rcif
4937                    ; No 1TEST: true.size=0 false.size=2
4938                    ; No 2TEST: true.size=0 false.size=2
4939                    ; 1GOTO: Single test with GOTO
4940 025b 1a8c          btfsc   _rcif___byte, _rcif___bit
4941 025c 2a5f          goto    rb2bus_byte_get__2
4942                    ; line_number = 129
4943                    ; call wait()
4944                    ;info   129, 605
4945 025d 2124          call    wait
4946            
4947 025e 2a5b          goto    rb2bus_byte_get__1
4948   025f :   rb2bus_byte_get__2:
4949                    ; Recombine size1 = 0 || size2 = 0
4950                    ; line_number = 128
4951                    ;  while !_rcif done
4952                    ; # Record the 9th bit in {address_bit}:
4953                    ; line_number = 132
4954                    ;  address_bit := _false
4955                    ;info   132, 607
4956 025f 11ef          bcf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4957                    ; line_number = 133
4958                    ;  if _rx9d start
4959                    ;info   133, 608
4960                    ; =>bit_code_emit@symbol(): sym=_rx9d
4961                    ; 1TEST: Single test with code in skip slot
4962 0260 1817          btfsc   _rx9d___byte, _rx9d___bit
4963                    ; line_number = 134
4964                    ; address_bit := _true
4965                    ;info   134, 609
4966 0261 15ef          bsf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4967                    ; Recombine size1 = 0 || size2 = 0
4968                    ; line_number = 133
4969                    ;  if _rx9d done
4970                    ; line_number = 135
4971                    ; value := _rcreg
4972                    ;info   135, 610
4973 0262 0814          movf    _rcreg,w
4974 0263 00a3          movwf   rb2bus_byte_get__value
4975            
4976                    ; # Clear any errors by toggling _{cren}:
4977                    ; # FIXME: All of this should be done *before* reading {_rcreg}!!!
4978                    ; line_number = 139
4979                    ;  if _oerr start
4980                    ;info   139, 612
4981                    ; =>bit_code_emit@symbol(): sym=_oerr
4982                    ; 1TEST: Single test with code in skip slot
4983 0264 1897          btfsc   _oerr___byte, _oerr___bit
4984                    ; line_number = 140
4985                    ; _cren := _false
4986                    ;info   140, 613
4987 0265 1217          bcf     _cren___byte, _cren___bit
4988                    ; Recombine size1 = 0 || size2 = 0
4989                    ; line_number = 139
4990                    ;  if _oerr done
4991                    ; line_number = 141
4992                    ; if _ferr start
4993                    ;info   141, 614
4994                    ; =>bit_code_emit@symbol(): sym=_ferr
4995                    ; 1TEST: Single test with code in skip slot
4996 0266 1917          btfsc   _ferr___byte, _ferr___bit
4997                    ; line_number = 142
4998                    ; _cren := _false
4999                    ;info   142, 615
5000 0267 1217          bcf     _cren___byte, _cren___bit
5001                    ; Recombine size1 = 0 || size2 = 0
5002                    ; line_number = 141
5003                    ; if _ferr done
5004                    ; line_number = 143
5005                    ; _cren := _true
5006                    ;info   143, 616
5007 0268 1617          bsf     _cren___byte, _cren___bit
5008            
5009                    ; line_number = 145
5010                    ;  if address_bit start
5011                    ;info   145, 617
5012                    ; =>bit_code_emit@symbol(): sym=rb2bus_byte_get__address_bit
5013                    ; No 1TEST: true.size=13 false.size=0
5014                    ; No 2TEST: true.size=13 false.size=0
5015                    ; 1GOTO: Single test with GOTO
5016 0269 1def          btfss   rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
5017 026a 2a78          goto    rb2bus_byte_get__5
5018                    ; # We have an unexpected address select coming in:
5019                    ; line_number = 147
5020                    ;  if value = rb2bus_address start
5021                    ;info   147, 619
5022                    ; Left minus Right
5023 026b 0820          movf    rb2bus_address,w
5024 026c 0223          subwf   rb2bus_byte_get__value,w
5025                    ; =>bit_code_emit@symbol(): sym=__z
5026                    ; No 1TEST: true.size=4 false.size=2
5027                    ; No 2TEST: true.size=4 false.size=2
5028                    ; 2GOTO: Single test with two GOTO's
5029 026d 1d03          btfss   __z___byte, __z___bit
5030 026e 2a74          goto    rb2bus_byte_get__3
5031                    ; # We are being selected again:
5032                    ; line_number = 149
5033                    ;  rb2bus_selected := _true
5034                    ;info   149, 623
5035 026f 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
5036                    ; line_number = 150
5037                    ;  _adden := _false
5038                    ;info   150, 624
5039 0270 1197          bcf     _adden___byte, _adden___bit
5040            
5041                    ; line_number = 152
5042                    ;  call rb2bus_byte_put(rb2_ok)
5043                    ;info   152, 625
5044 0271 30a5          movlw   165
5045 0272 227a          call    rb2bus_byte_put
5046                    ; Recombine code1_bit_states != code2_bit_states
5047 0273 2a76          goto    rb2bus_byte_get__4
5048                    ; 2GOTO: Starting code 2
5049   0274 :   rb2bus_byte_get__3:
5050                    ; # Somebody else is being selected; we deselect:
5051                    ; line_number = 155
5052                    ;  rb2bus_selected := _false
5053                    ;info   155, 628
5054 0274 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
5055                    ; line_number = 156
5056                    ;  _adden := _true
5057                    ;info   156, 629
5058 0275 1597          bsf     _adden___byte, _adden___bit
5059            
5060   0276 :   rb2bus_byte_get__4:
5061                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5062                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
5063                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5064                    ; line_number = 147
5065                    ;  if value = rb2bus_address done
5066                    ; # We want to get back to the beginning of decode:
5067                    ; line_number = 159
5068                    ;  rb2bus_error := _true
5069                    ;info   159, 630
5070 0276 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
5071                    ; line_number = 160
5072                    ;  value := 0
5073                    ;info   160, 631
5074 0277 01a3          clrf    rb2bus_byte_get__value
5075            
5076                    ; Recombine size1 = 0 || size2 = 0
5077   0278 :   rb2bus_byte_get__5:
5078                    ; line_number = 145
5079                    ;  if address_bit done
5080                    ; # Regular data byte:
5081                    ; line_number = 163
5082                    ;  return value start
5083                    ; line_number = 163
5084                    ;info   163, 632
5085 0278 0823          movf    rb2bus_byte_get__value,w
5086 0279 0008          return  
5087                    ; line_number = 163
5088                    ;  return value done
5089            
5090            
5091                    ; delay after procedure statements=non-uniform
5092            
5093            
5094            
5095            
5096                    ; line_number = 166
5097                    ;info   166, 634
5098                    ; procedure rb2bus_byte_put
5099   027a :   rb2bus_byte_put:
5100                    ; Last argument is sitting in W; save into argument variable
5101 027a 00a4          movwf   rb2bus_byte_put__value
5102                    ; delay=4294967295
5103                    ; line_number = 167
5104                    ; argument value byte
5105 00000024 = rb2bus_byte_put__value equ globals___0+4
5106                    ; line_number = 168
5107                    ;  returns_nothing
5108            
5109                    ; # This procedure will send {value} to the bus.  It automatically
5110                    ; # consumes the echo that is on the bus.  If {rb2bus_error} is
5111                    ; # set, this procedure does nothing.
5112            
5113                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5114                    ; line_number = 174
5115                    ;  if !rb2bus_error start
5116                    ;info   174, 635
5117                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
5118                    ; No 1TEST: true.size=0 false.size=16
5119                    ; No 2TEST: true.size=0 false.size=16
5120                    ; 1GOTO: Single test with GOTO
5121 027b 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
5122 027c 2a8d          goto    rb2bus_byte_put__4
5123                    ; # Wait until {_txreg} is ready for a value:
5124                    ; line_number = 176
5125                    ;  while !_txif start
5126   027d :   rb2bus_byte_put__1:
5127                    ;info   176, 637
5128                    ; =>bit_code_emit@symbol(): sym=_txif
5129                    ; No 1TEST: true.size=0 false.size=2
5130                    ; No 2TEST: true.size=0 false.size=2
5131                    ; 1GOTO: Single test with GOTO
5132 027d 188c          btfsc   _txif___byte, _txif___bit
5133 027e 2a81          goto    rb2bus_byte_put__2
5134                    ; line_number = 177
5135                    ; call wait()
5136                    ;info   177, 639
5137 027f 2124          call    wait
5138            
5139 0280 2a7d          goto    rb2bus_byte_put__1
5140   0281 :   rb2bus_byte_put__2:
5141                    ; Recombine size1 = 0 || size2 = 0
5142                    ; line_number = 176
5143                    ;  while !_txif done
5144                    ; # Ship {value} out to the bus with 9th bit turned off:
5145                    ; line_number = 180
5146                    ;  _adden := _false
5147                    ;info   180, 641
5148 0281 1197          bcf     _adden___byte, _adden___bit
5149                    ; line_number = 181
5150                    ;  _tx9d := _false
5151                    ;info   181, 642
5152 0282 1016          bcf     _tx9d___byte, _tx9d___bit
5153                    ; line_number = 182
5154                    ;  _txreg := value
5155                    ;info   182, 643
5156 0283 0824          movf    rb2bus_byte_put__value,w
5157 0284 0095          movwf   _txreg
5158            
5159                    ; # Wait for the echo to show up:
5160                    ; line_number = 185
5161                    ;  while !_rcif start
5162   0285 :   rb2bus_byte_put__3:
5163                    ;info   185, 645
5164                    ; =>bit_code_emit@symbol(): sym=_rcif
5165                    ; 1TEST: Single test with code in skip slot
5166 0285 1e8c          btfss   _rcif___byte, _rcif___bit
5167                    ; # Still waiting:
5168 0286 2a85          goto    rb2bus_byte_put__3
5169                    ; Recombine size1 = 0 || size2 = 0
5170                    ; line_number = 185
5171                    ;  while !_rcif done
5172                    ; # Throw the received byte away (store into {_w}).
5173                    ; line_number = 188
5174                    ;  assemble
5175                    ;info   188, 647
5176                    ; line_number = 189
5177                    ;info   189, 647
5178 0287 0814          movf    _rcreg,w
5179            
5180                    ; # Recover from any receive errors by toggling {_cren}:
5181                    ; line_number = 192
5182                    ;  if _oerr start
5183                    ;info   192, 648
5184                    ; =>bit_code_emit@symbol(): sym=_oerr
5185                    ; 1TEST: Single test with code in skip slot
5186 0288 1897          btfsc   _oerr___byte, _oerr___bit
5187                    ; line_number = 193
5188                    ; _cren := _false
5189                    ;info   193, 649
5190 0289 1217          bcf     _cren___byte, _cren___bit
5191                    ; Recombine size1 = 0 || size2 = 0
5192                    ; line_number = 192
5193                    ;  if _oerr done
5194                    ; line_number = 194
5195                    ; if _ferr start
5196                    ;info   194, 650
5197                    ; =>bit_code_emit@symbol(): sym=_ferr
5198                    ; 1TEST: Single test with code in skip slot
5199 028a 1917          btfsc   _ferr___byte, _ferr___bit
5200                    ; line_number = 195
5201                    ; _cren := _false
5202                    ;info   195, 651
5203 028b 1217          bcf     _cren___byte, _cren___bit
5204                    ; Recombine size1 = 0 || size2 = 0
5205                    ; line_number = 194
5206                    ; if _ferr done
5207                    ; line_number = 196
5208                    ; _cren := _true
5209                    ;info   196, 652
5210 028c 1617          bsf     _cren___byte, _cren___bit
5211            
5212            
5213   028d :   rb2bus_byte_put__4:
5214                    ; Recombine size1 = 0 || size2 = 0
5215                    ; line_number = 174
5216                    ;  if !rb2bus_error done
5217                    ; delay after procedure statements=non-uniform
5218                    ; Implied return
5219 028d 3400          retlw   0
5220            
5221            
5222            
5223            
5224                    ; line_number = 199
5225                    ;info   199, 654
5226                    ; procedure rb2bus_command
5227   028e :   rb2bus_command:
5228                    ; Last argument is sitting in W; save into argument variable
5229 028e 00a7          movwf   rb2bus_command__command
5230                    ; delay=4294967295
5231                    ; line_number = 200
5232                    ; argument command byte
5233 00000027 = rb2bus_command__command equ globals___0+7
5234                    ; line_number = 201
5235                    ;  returns_nothing
5236            
5237                    ; # This procedure will process an shared {command}.  This procedure
5238                    ; # accesses the global string {id}.
5239            
5240                    ; line_number = 206
5241                    ;  local new_address byte
5242 00000025 = rb2bus_command__new_address equ globals___0+5
5243                    ; line_number = 207
5244                    ;  local temp byte
5245 00000026 = rb2bus_command__temp equ globals___0+6
5246            
5247                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5248                    ; line_number = 209
5249                    ;  switch command & 7 start
5250                    ;info   209, 655
5251                    ; switch_before:(data:00=uu=>00 code:X0=cu=>X0) size=1
5252 028f 3002          movlw   rb2bus_command__13>>8
5253 0290 008a          movwf   __pclath
5254 0291 3007          movlw   7
5255 0292 0527          andwf   rb2bus_command__command,w
5256                    ; switch after expression:(data:00=uu=>00 code:X0=cu=>X0)
5257 0293 3e95          addlw   rb2bus_command__13
5258 0294 0082          movwf   __pcl
5259                    ; page_group 8
5260   0295 :   rb2bus_command__13:
5261 0295 2ad5          goto    rb2bus_command__14
5262 0296 2ad5          goto    rb2bus_command__14
5263 0297 2ad5          goto    rb2bus_command__14
5264 0298 2ad5          goto    rb2bus_command__14
5265 0299 2a9d          goto    rb2bus_command__9
5266 029a 2ac9          goto    rb2bus_command__10
5267 029b 2ad2          goto    rb2bus_command__11
5268 029c 2ad4          goto    rb2bus_command__12
5269                    ; line_number = 210
5270                    ; case 4
5271   029d :   rb2bus_command__9:
5272                    ; # 1111 1100 (Address_Set):
5273                    ; # Return old address:
5274                    ; line_number = 213
5275                    ;  call rb2bus_byte_put(rb2bus_address)
5276                    ;info   213, 669
5277 029d 0820          movf    rb2bus_address,w
5278 029e 227a          call    rb2bus_byte_put
5279            
5280                    ; # Fetch new address:
5281                    ; line_number = 216
5282                    ;  new_address := rb2bus_byte_get()
5283                    ;info   216, 671
5284 029f 2258          call    rb2bus_byte_get
5285 02a0 00a5          movwf   rb2bus_command__new_address
5286                    ; line_number = 217
5287                    ;  if new_address = 0 || new_address = rb2bus_address start
5288                    ;info   217, 673
5289                    ; Left minus Right
5290 02a1 0825          movf    rb2bus_command__new_address,w
5291                    ; =>bit_code_emit@symbol(): sym=__z
5292                    ; No 1TEST: true.size=1 false.size=36
5293                    ; No 2TEST: true.size=1 false.size=36
5294                    ; 2GOTO: Single test with two GOTO's
5295 02a2 1903          btfsc   __z___byte, __z___bit
5296 02a3 2aa8          goto    rb2bus_command__5
5297                    ; Recombine code1_bit_states != code2_bit_states
5298                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5299                    ; Left minus Right
5300 02a4 0820          movf    rb2bus_address,w
5301 02a5 0225          subwf   rb2bus_command__new_address,w
5302                    ; =>bit_code_emit@symbol(): sym=__z
5303                    ; No 1TEST: true.size=4 false.size=27
5304                    ; No 2TEST: true.size=4 false.size=27
5305                    ; 2GOTO: Single test with two GOTO's
5306 02a6 1d03          btfss   __z___byte, __z___bit
5307 02a7 2aad          goto    rb2bus_command__6
5308   02a8 :   rb2bus_command__5:
5309                    ; line_number = 218
5310                    ; call rb2bus_byte_put(0)
5311                    ;info   218, 680
5312 02a8 3000          movlw   0
5313 02a9 227a          call    rb2bus_byte_put
5314                    ; line_number = 219
5315                    ;  rb2bus_error := _true
5316                    ;info   219, 682
5317 02aa 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
5318                    ; line_number = 220
5319                    ;  rb2bus_selected := _false
5320                    ;info   220, 683
5321 02ab 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
5322 02ac 2ac8          goto    rb2bus_command__7
5323                    ; 2GOTO: Starting code 2
5324   02ad :   rb2bus_command__6:
5325                    ; # Return new address:
5326                    ; line_number = 223
5327                    ;  call rb2bus_byte_put(new_address)
5328                    ;info   223, 685
5329 02ad 0825          movf    rb2bus_command__new_address,w
5330 02ae 227a          call    rb2bus_byte_put
5331            
5332                    ; # Fetch new address again as a check:
5333                    ; line_number = 226
5334                    ;  temp := rb2bus_byte_get()
5335                    ;info   226, 687
5336 02af 2258          call    rb2bus_byte_get
5337 02b0 00a6          movwf   rb2bus_command__temp
5338                    ; line_number = 227
5339                    ;  if temp != new_address start
5340                    ;info   227, 689
5341                    ; Left minus Right
5342 02b1 0825          movf    rb2bus_command__new_address,w
5343 02b2 0226          subwf   rb2bus_command__temp,w
5344                    ; =>bit_code_emit@symbol(): sym=__z
5345                    ; No 1TEST: true.size=14 false.size=4
5346                    ; No 2TEST: true.size=14 false.size=4
5347                    ; 2GOTO: Single test with two GOTO's
5348 02b3 1d03          btfss   __z___byte, __z___bit
5349 02b4 2ac4          goto    rb2bus_command__3
5350                    ; line_number = 232
5351                    ; call rb2bus_eedata_write(new_address)
5352                    ;info   232, 693
5353 02b5 0825          movf    rb2bus_command__new_address,w
5354 02b6 2309          call    rb2bus_eedata_write
5355                    ; line_number = 233
5356                    ;  temp := rb2bus_eedata_read()
5357                    ;info   233, 695
5358 02b7 22f4          call    rb2bus_eedata_read
5359 02b8 00a6          movwf   rb2bus_command__temp
5360                    ; line_number = 234
5361                    ;  if temp = new_address start
5362                    ;info   234, 697
5363                    ; Left minus Right
5364 02b9 0825          movf    rb2bus_command__new_address,w
5365 02ba 0226          subwf   rb2bus_command__temp,w
5366                    ; =>bit_code_emit@symbol(): sym=__z
5367                    ; No 1TEST: true.size=3 false.size=1
5368                    ; No 2TEST: true.size=3 false.size=1
5369                    ; 2GOTO: Single test with two GOTO's
5370 02bb 1d03          btfss   __z___byte, __z___bit
5371 02bc 2ac1          goto    rb2bus_command__1
5372                    ; line_number = 235
5373                    ; rb2bus_address := new_address
5374                    ;info   235, 701
5375 02bd 0825          movf    rb2bus_command__new_address,w
5376 02be 00a0          movwf   rb2bus_address
5377                    ; line_number = 236
5378                    ;  call rb2bus_byte_put(rb2_ok)
5379                    ;info   236, 703
5380 02bf 30a5          movlw   165
5381 02c0 2ac2          goto    rb2bus_command__2
5382                    ; 2GOTO: Starting code 2
5383   02c1 :   rb2bus_command__1:
5384                    ; line_number = 238
5385                    ; call rb2bus_byte_put(0)
5386                    ;info   238, 705
5387 02c1 3000          movlw   0
5388   02c2 :   rb2bus_command__2:
5389                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5390                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5391                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5392 02c2 227a          call    rb2bus_byte_put
5393                    ; line_number = 234
5394                    ;  if temp = new_address done
5395 02c3 2ac8          goto    rb2bus_command__4
5396                    ; 2GOTO: Starting code 2
5397   02c4 :   rb2bus_command__3:
5398                    ; line_number = 228
5399                    ; call rb2bus_byte_put(0)
5400                    ;info   228, 708
5401 02c4 3000          movlw   0
5402 02c5 227a          call    rb2bus_byte_put
5403                    ; line_number = 229
5404                    ;  rb2bus_error := _true
5405                    ;info   229, 710
5406 02c6 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
5407                    ; line_number = 230
5408                    ;  rb2bus_selected := _false
5409                    ;info   230, 711
5410 02c7 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
5411   02c8 :   rb2bus_command__4:
5412                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5413                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5414                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5415                    ; line_number = 227
5416                    ;  if temp != new_address done
5417   02c8 :   rb2bus_command__7:
5418                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5419                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5420                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5421                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5422                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
5423                    ; 2GOTO: No goto needed; true=rb2bus_command__5 false= true_size=1 false_size=36
5424                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5425                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
5426                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5427                    ; line_number = 217
5428                    ;  if new_address = 0 || new_address = rb2bus_address done
5429 02c8 2ad5          goto    rb2bus_command__14
5430                    ; line_number = 239
5431                    ; case 5
5432   02c9 :   rb2bus_command__10:
5433                    ; # 1111 1101 (Id_next):
5434                    ; line_number = 241
5435                    ;  if rb2bus_index < id.size start
5436                    ;info   241, 713
5437 02c9 3014          movlw   20
5438 02ca 0221          subwf   rb2bus_index,w
5439                    ; =>bit_code_emit@symbol(): sym=__c
5440                    ; No 1TEST: true.size=0 false.size=4
5441                    ; No 2TEST: true.size=0 false.size=4
5442                    ; 1GOTO: Single test with GOTO
5443 02cb 1803          btfsc   __c___byte, __c___bit
5444 02cc 2ad1          goto    rb2bus_command__8
5445                    ; line_number = 242
5446                    ; call rb2bus_byte_put(id[rb2bus_index])
5447                    ;info   242, 717
5448 02cd 0821          movf    rb2bus_index,w
5449 02ce 2187          call    id
5450 02cf 227a          call    rb2bus_byte_put
5451                    ; line_number = 243
5452                    ;  rb2bus_index := rb2bus_index + 1
5453                    ;info   243, 720
5454 02d0 0aa1          incf    rb2bus_index,f
5455                    ; #if rb2bus_index >= id.size
5456                    ; #	rb2bus_index := rb2bus_index - 1
5457   02d1 :   rb2bus_command__8:
5458                    ; Recombine size1 = 0 || size2 = 0
5459                    ; line_number = 241
5460                    ;  if rb2bus_index < id.size done
5461 02d1 2ad5          goto    rb2bus_command__14
5462                    ; line_number = 246
5463                    ; case 6
5464   02d2 :   rb2bus_command__11:
5465                    ; # 1111 1110 (Id_start):
5466                    ; line_number = 248
5467                    ;  rb2bus_index := 0
5468                    ;info   248, 722
5469 02d2 01a1          clrf    rb2bus_index
5470 02d3 2ad5          goto    rb2bus_command__14
5471                    ; line_number = 249
5472                    ; case 7
5473   02d4 :   rb2bus_command__12:
5474                    ; # 1111 1111 (Deselect):
5475                    ; line_number = 251
5476                    ;  call rb2bus_deselect()
5477                    ;info   251, 724
5478 02d4 2256          call    rb2bus_deselect
5479            
5480            
5481   02d5 :   rb2bus_command__14:
5482                    ; line_number = 209
5483                    ;  switch command & 7 done
5484                    ; delay after procedure statements=non-uniform
5485                    ; Implied return
5486 02d5 3400          retlw   0
5487            
5488            
5489            
5490            
5491                    ; buffer = 'rb2bus_pic16f688'
5492                    ; line_number = 18
5493                    ;info   18, 726
5494                    ; procedure rb2bus_initialize
5495   02d6 :   rb2bus_initialize:
5496                    ; Last argument is sitting in W; save into argument variable
5497 02d6 00a8          movwf   rb2bus_initialize__address
5498                    ; delay=4294967295
5499                    ; line_number = 19
5500                    ; argument address byte
5501 00000028 = rb2bus_initialize__address equ globals___0+8
5502                    ; line_number = 20
5503                    ;  returns_nothing
5504            
5505                    ; # This procedure is responsibile for initializing the UART
5506                    ; # connected to the bus.  {address} is the address of this
5507                    ; # slave module.  This code is specific to the PIC16F688.
5508            
5509                    ; # Warm up the UART:
5510                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5511                    ; line_number = 27
5512                    ;  _trisc@5 := _true
5513                    ;info   27, 727
5514 00000087 = rb2bus_initialize__select__1___byte equ _trisc
5515 00000005 = rb2bus_initialize__select__1___bit equ 5
5516 02d7 1683          bsf     __rp0___byte, __rp0___bit
5517 02d8 1687          bsf     rb2bus_initialize__select__1___byte, rb2bus_initialize__select__1___bit
5518                    ; line_number = 28
5519                    ;  _trisc@4 := _true
5520                    ;info   28, 729
5521 00000087 = rb2bus_initialize__select__2___byte equ _trisc
5522 00000004 = rb2bus_initialize__select__2___bit equ 4
5523 02d9 1607          bsf     rb2bus_initialize__select__2___byte, rb2bus_initialize__select__2___bit
5524            
5525                    ; # Initialize the {_txsta} register:
5526                    ; line_number = 31
5527                    ;  _txsta := 0
5528                    ;info   31, 730
5529 02da 1283          bcf     __rp0___byte, __rp0___bit
5530 02db 0196          clrf    _txsta
5531                    ; line_number = 32
5532                    ;  _tx9 := _true
5533                    ;info   32, 732
5534 02dc 1716          bsf     _tx9___byte, _tx9___bit
5535                    ; #_tx9 := _false
5536                    ; line_number = 34
5537                    ;  _txen := _true
5538                    ;info   34, 733
5539 02dd 1696          bsf     _txen___byte, _txen___bit
5540                    ; line_number = 35
5541                    ;  _brgh := _true
5542                    ;info   35, 734
5543 02de 1516          bsf     _brgh___byte, _brgh___bit
5544            
5545                    ; # Initialize the {_rcsta} register:
5546                    ; line_number = 38
5547                    ;  _rcsta := 0
5548                    ;info   38, 735
5549 02df 0197          clrf    _rcsta
5550                    ; line_number = 39
5551                    ;  _spen := _true
5552                    ;info   39, 736
5553 02e0 1797          bsf     _spen___byte, _spen___bit
5554                    ; line_number = 40
5555                    ;  _rx9 := _true
5556                    ;info   40, 737
5557 02e1 1717          bsf     _rx9___byte, _rx9___bit
5558                    ; line_number = 41
5559                    ;  _cren := _true
5560                    ;info   41, 738
5561 02e2 1617          bsf     _cren___byte, _cren___bit
5562                    ; #_adden := _true
5563                    ; line_number = 43
5564                    ;  _adden := _false
5565                    ;info   43, 739
5566 02e3 1197          bcf     _adden___byte, _adden___bit
5567            
5568                    ; # Set up the baud rate generator:
5569                    ; line_number = 46
5570                    ;  _baudctl := 0
5571                    ;info   46, 740
5572 02e4 0191          clrf    _baudctl
5573                    ; line_number = 47
5574                    ;  _brg16 := _true
5575                    ;info   47, 741
5576 02e5 1591          bsf     _brg16___byte, _brg16___bit
5577                    ; line_number = 48
5578                    ;  _spbrg := _eusart_500000_low
5579                    ;info   48, 742
5580 02e6 3009          movlw   9
5581 02e7 0093          movwf   _spbrg
5582                    ; line_number = 49
5583                    ;  _spbrgh := _eusart_500000_high
5584                    ;info   49, 744
5585 02e8 0192          clrf    _spbrgh
5586            
5587                    ; line_number = 51
5588                    ;  rb2bus_selected := _false
5589                    ;info   51, 745
5590 02e9 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
5591                    ; line_number = 52
5592                    ;  rb2bus_error := _false
5593                    ;info   52, 746
5594 02ea 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
5595                    ; line_number = 53
5596                    ;  rb2bus_index := 0
5597                    ;info   53, 747
5598 02eb 01a1          clrf    rb2bus_index
5599            
5600                    ; # Deal with setting {rb2bus_address} from EEData memory:
5601                    ; line_number = 56
5602                    ;  rb2bus_address := rb2bus_eedata_read()
5603                    ;info   56, 748
5604 02ec 22f4          call    rb2bus_eedata_read
5605 02ed 00a0          movwf   rb2bus_address
5606                    ; line_number = 57
5607                    ;  if rb2bus_address = 0 start
5608                    ;info   57, 750
5609                    ; Left minus Right
5610 02ee 0820          movf    rb2bus_address,w
5611                    ; =>bit_code_emit@symbol(): sym=__z
5612                    ; No 1TEST: true.size=2 false.size=0
5613                    ; No 2TEST: true.size=2 false.size=0
5614                    ; 1GOTO: Single test with GOTO
5615 02ef 1d03          btfss   __z___byte, __z___bit
5616 02f0 2af3          goto    rb2bus_initialize__3
5617                    ; # EE data not set, so use {address} passed in as a argument:
5618                    ; line_number = 59
5619                    ;  rb2bus_address := address
5620                    ;info   59, 753
5621 02f1 0828          movf    rb2bus_initialize__address,w
5622 02f2 00a0          movwf   rb2bus_address
5623            
5624            
5625                    ; Recombine size1 = 0 || size2 = 0
5626   02f3 :   rb2bus_initialize__3:
5627                    ; line_number = 57
5628                    ;  if rb2bus_address = 0 done
5629                    ; delay after procedure statements=non-uniform
5630                    ; Implied return
5631 02f3 3400          retlw   0
5632            
5633            
5634            
5635            
5636                    ; line_number = 64
5637                    ;info   64, 756
5638                    ; procedure rb2bus_eedata_read
5639   02f4 :   rb2bus_eedata_read:
5640                    ; arguments_none
5641                    ; line_number = 66
5642                    ;  returns byte
5643            
5644                    ; # This procedure will return the address stored in EEData.  If
5645                    ; # there is no data, 0 is returned.
5646            
5647                    ; line_number = 71
5648                    ;  local temp1 byte
5649 00000029 = rb2bus_eedata_read__temp1 equ globals___0+9
5650                    ; line_number = 72
5651                    ;  local temp2 byte
5652 0000002a = rb2bus_eedata_read__temp2 equ globals___0+10
5653            
5654                    ; # Read the first byte (the address):
5655                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5656                    ; line_number = 75
5657                    ;  _eecon1 := 0
5658                    ;info   75, 756
5659 02f4 1683          bsf     __rp0___byte, __rp0___bit
5660 02f5 019c          clrf    _eecon1
5661                    ; line_number = 76
5662                    ;  _eeadr := rb2bus_eedata_address
5663                    ;info   76, 758
5664 02f6 30fe          movlw   254
5665 02f7 009b          movwf   _eeadr
5666                    ; line_number = 77
5667                    ;  _rd := _true
5668                    ;info   77, 760
5669 02f8 141c          bsf     _rd___byte, _rd___bit
5670                    ; line_number = 78
5671                    ;  temp1 := _eedat
5672                    ;info   78, 761
5673 02f9 081a          movf    _eedat,w
5674 02fa 1283          bcf     __rp0___byte, __rp0___bit
5675 02fb 00a9          movwf   rb2bus_eedata_read__temp1
5676            
5677                    ; # Read the second byte (the 1'z complement)
5678                    ; line_number = 81
5679                    ;  _eeadr := _eeadr + 1
5680                    ;info   81, 764
5681 02fc 1683          bsf     __rp0___byte, __rp0___bit
5682 02fd 0a9b          incf    _eeadr,f
5683                    ; line_number = 82
5684                    ;  _rd := _true
5685                    ;info   82, 766
5686 02fe 141c          bsf     _rd___byte, _rd___bit
5687                    ; line_number = 83
5688                    ;  temp2 := _eedat
5689                    ;info   83, 767
5690 02ff 081a          movf    _eedat,w
5691 0300 1283          bcf     __rp0___byte, __rp0___bit
5692 0301 00aa          movwf   rb2bus_eedata_read__temp2
5693            
5694                    ; # If they are 1's complement of one another, they are valid:
5695                    ; line_number = 86
5696                    ;  if temp1 = (0xff ^ temp2) start
5697                    ;info   86, 770
5698                    ; Left minus Right
5699 0302 092a          comf    rb2bus_eedata_read__temp2,w
5700 0303 0229          subwf   rb2bus_eedata_read__temp1,w
5701                    ; =>bit_code_emit@symbol(): sym=__z
5702                    ; No 1TEST: true.size=2 false.size=0
5703                    ; No 2TEST: true.size=2 false.size=0
5704                    ; 1GOTO: Single test with GOTO
5705 0304 1d03          btfss   __z___byte, __z___bit
5706 0305 2b08          goto    rb2bus_eedata_read__1
5707                    ; # Return the valid address:
5708                    ; line_number = 88
5709                    ;  return temp1 start
5710                    ; line_number = 88
5711                    ;info   88, 774
5712 0306 0829          movf    rb2bus_eedata_read__temp1,w
5713 0307 0008          return  
5714                    ; line_number = 88
5715                    ;  return temp1 done
5716            
5717                    ; Recombine size1 = 0 || size2 = 0
5718   0308 :   rb2bus_eedata_read__1:
5719                    ; line_number = 86
5720                    ;  if temp1 = (0xff ^ temp2) done
5721                    ; # They are not 1's complement, so return 0 as an error:
5722                    ; line_number = 91
5723                    ;  return 0 start
5724                    ; line_number = 91
5725                    ;info   91, 776
5726 0308 3400          retlw   0
5727                    ; line_number = 91
5728                    ;  return 0 done
5729            
5730            
5731                    ; delay after procedure statements=non-uniform
5732            
5733            
5734            
5735            
5736                    ; line_number = 94
5737                    ;info   94, 777
5738                    ; procedure rb2bus_eedata_write
5739   0309 :   rb2bus_eedata_write:
5740                    ; Last argument is sitting in W; save into argument variable
5741 0309 00ab          movwf   rb2bus_eedata_write__address
5742                    ; delay=4294967295
5743                    ; line_number = 95
5744                    ; argument address byte
5745 0000002b = rb2bus_eedata_write__address equ globals___0+11
5746                    ; line_number = 96
5747                    ;  returns_nothing
5748            
5749                    ; # This procedure will write {address} into the EEData.  The
5750                    ; # microcontroll pauses while the EEData is written.
5751            
5752                    ; # Clear out the {_eecon1} register
5753                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5754                    ; line_number = 102
5755                    ;  _eecon1 := 0
5756                    ;info   102, 778
5757 030a 1683          bsf     __rp0___byte, __rp0___bit
5758 030b 019c          clrf    _eecon1
5759                    ; line_number = 103
5760                    ;  _eeadr := rb2bus_eedata_address
5761                    ;info   103, 780
5762 030c 30fe          movlw   254
5763 030d 009b          movwf   _eeadr
5764                    ; line_number = 104
5765                    ;  _eedat := address
5766                    ;info   104, 782
5767 030e 1283          bcf     __rp0___byte, __rp0___bit
5768 030f 082b          movf    rb2bus_eedata_write__address,w
5769 0310 1683          bsf     __rp0___byte, __rp0___bit
5770 0311 009a          movwf   _eedat
5771            
5772                    ; # Write 2 bytes ({address} followed by {address}^0xff):
5773                    ; line_number = 107
5774                    ;  loop_exactly 2 start
5775                    ;info   107, 786
5776 00000064 = rb2bus_eedata_write__1 equ globals___0+68
5777 0312 3002          movlw   2
5778 0313 1283          bcf     __rp0___byte, __rp0___bit
5779 0314 00e4          movwf   rb2bus_eedata_write__1
5780   0315 :   rb2bus_eedata_write__2:
5781                    ; # Set the data to write:
5782            
5783                    ; # Set up the for the write:
5784                    ; line_number = 111
5785                    ;  _wren := _true
5786                    ;info   111, 789
5787 0315 1683          bsf     __rp0___byte, __rp0___bit
5788 0316 151c          bsf     _wren___byte, _wren___bit
5789                    ; line_number = 112
5790                    ;  _gie := _false
5791                    ;info   112, 791
5792 0317 138b          bcf     _gie___byte, _gie___bit
5793                    ; line_number = 113
5794                    ;  _eecon2 := 0x55
5795                    ;info   113, 792
5796 0318 3055          movlw   85
5797 0319 009d          movwf   _eecon2
5798                    ; line_number = 114
5799                    ;  _eecon2 := 0xaa
5800                    ;info   114, 794
5801 031a 30aa          movlw   170
5802 031b 009d          movwf   _eecon2
5803                    ; # Start the write:
5804                    ; line_number = 116
5805                    ;  _wr := _true
5806                    ;info   116, 796
5807 031c 149c          bsf     _wr___byte, _wr___bit
5808            
5809                    ; # Wait for write to complete:
5810                    ; line_number = 119
5811                    ;  while _wr start
5812   031d :   rb2bus_eedata_write__3:
5813                    ;info   119, 797
5814                    ; =>bit_code_emit@symbol(): sym=_wr
5815                    ; 1TEST: Single test with code in skip slot
5816 031d 189c          btfsc   _wr___byte, _wr___bit
5817                    ; line_number = 120
5818                    ; do_nothing
5819                    ;info   120, 798
5820            
5821 031e 2b1d          goto    rb2bus_eedata_write__3
5822                    ; Recombine size1 = 0 || size2 = 0
5823                    ; line_number = 119
5824                    ;  while _wr done
5825                    ; # Disable writing:
5826                    ; line_number = 123
5827                    ;  _wren := _false
5828                    ;info   123, 799
5829 031f 111c          bcf     _wren___byte, _wren___bit
5830            
5831                    ; # Prepare the second byte of data:
5832                    ; line_number = 126
5833                    ;  _eeadr := _eeadr + 1
5834                    ;info   126, 800
5835 0320 0a9b          incf    _eeadr,f
5836                    ; line_number = 127
5837                    ;  _eedat := address ^ 0xff
5838                    ;info   127, 801
5839 0321 1283          bcf     __rp0___byte, __rp0___bit
5840 0322 092b          comf    rb2bus_eedata_write__address,w
5841 0323 1683          bsf     __rp0___byte, __rp0___bit
5842 0324 009a          movwf   _eedat
5843            
5844 0325 1283          bcf     __rp0___byte, __rp0___bit
5845                    ; line_number = 107
5846                    ;  loop_exactly 2 wrap-up
5847 0326 0be4          decfsz  rb2bus_eedata_write__1,f
5848 0327 2b15          goto    rb2bus_eedata_write__2
5849                    ; line_number = 107
5850                    ;  loop_exactly 2 done
5851                    ; delay after procedure statements=non-uniform
5852                    ; Implied return
5853 0328 3400          retlw   0
5854            
5855            
5856            
5857            
5858                    ; Code bank 1; Start address: 2048; End address: 4095
5859   0800 :           org     2048
5860                    ; Configuration bits
5861                    ; address = 0x2007, fill = 0x3000
5862                    ; fcmen = off (0x0)
5863                    ; ieso = off (0x0)
5864                    ; boden = off (0x0)
5865                    ; cpd = off (0x80)
5866                    ; cp = off (0x40)
5867                    ; mclre = off (0x0)
5868                    ; pwrte = off (0x10)
5869                    ; wdte = off (0x0)
5870                    ; fosc = ec (0x3)
5871                    ; 12499 = 0x30d3
5872   30d3 =           __config 12499
5873                    ; Define start addresses for data regions
5874                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
5875                    ; Region="globals___0" Address=32" Size=80 Bytes=69 Bits=5 Available=10
5876                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
5877                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
5878                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
5879                    end
