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