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 = 'bumper14'
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 = 'bumper14'
1372                    ; line_number = 7
1373                    ; library _pic16f688 exited
1374            
1375                    ; # The system is running at 20MHz:
1376                    ; line_number = 10
1377                    ; library clock20mhz entered
1378                    ; # Copyright (c) 2004 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 = 'clock20mhz'
1386                    ; line_number = 9
1387                    ; constant clock_rate = 20000000
1388 01312d00 = clock_rate equ 20000000
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 004c4b40 = instruction_rate equ 5000000
1395            
1396            
1397                    ; buffer = 'bumper14'
1398                    ; line_number = 10
1399                    ; library clock20mhz exited
1400                    ; # A microsecond takes 4 cycles at 20MHz:
1401                    ; line_number = 12
1402                    ; constant microsecond = 5
1403 00000005 = microsecond equ 5
1404            
1405                    ; # The {_eusart} library defines some baud rate generator constants:
1406                    ; line_number = 15
1407                    ; constant _eusart_clock = clock_rate
1408 01312d00 = _eusart_clock equ 20000000
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 bits/sec:
1435                    ; buffer = '_eusart'
1436                    ; line_number = 23
1437                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1438 00000822 = _eusart_2400 equ 2082
1439                    ; line_number = 24
1440                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1441 00000022 = _eusart_2400_low equ 34
1442                    ; line_number = 25
1443                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1444 00000008 = _eusart_2400_high equ 8
1445                    ; line_number = 26
1446                    ; constant _eusart_2400_index = 0
1447 00000000 = _eusart_2400_index equ 0
1448                    ; # 4800 bits/sec:
1449                    ; line_number = 28
1450                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1451 00000410 = _eusart_4800 equ 1040
1452                    ; line_number = 29
1453                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1454 00000010 = _eusart_4800_low equ 16
1455                    ; line_number = 30
1456                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1457 00000004 = _eusart_4800_high equ 4
1458                    ; line_number = 31
1459                    ; constant _eusart_4800_index = 1
1460 00000001 = _eusart_4800_index equ 1
1461                    ; # 9600 bits/sec:
1462                    ; line_number = 33
1463                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1464 00000207 = _eusart_9600 equ 519
1465                    ; line_number = 34
1466                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1467 00000007 = _eusart_9600_low equ 7
1468                    ; line_number = 35
1469                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1470 00000002 = _eusart_9600_high equ 2
1471                    ; line_number = 36
1472                    ; constant _eusart_9600_index = 2
1473 00000002 = _eusart_9600_index equ 2
1474                    ; # 19200 bits/sec:
1475                    ; line_number = 38
1476                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1477 00000103 = _eusart_19200 equ 259
1478                    ; line_number = 39
1479                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1480 00000003 = _eusart_19200_low equ 3
1481                    ; line_number = 40
1482                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1483 00000001 = _eusart_19200_high equ 1
1484                    ; line_number = 41
1485                    ; constant _eusart_19200_index = 3
1486 00000003 = _eusart_19200_index equ 3
1487                    ; # 38400 bits/sec:
1488                    ; line_number = 43
1489                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1490 00000081 = _eusart_38400 equ 129
1491                    ; line_number = 44
1492                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1493 00000081 = _eusart_38400_low equ 129
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 bits/sec:
1501                    ; line_number = 48
1502                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1503 00000055 = _eusart_57600 equ 85
1504                    ; line_number = 49
1505                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1506 00000055 = _eusart_57600_low equ 85
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 bits/sec:
1514                    ; line_number = 53
1515                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1516 0000002a = _eusart_115200 equ 42
1517                    ; line_number = 54
1518                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1519 0000002a = _eusart_115200_low equ 42
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 bits/sec:
1527                    ; line_number = 58
1528                    ; constant _eusart_230400 = (_eusart_clock / (230400 * _eusart_factor)) - 1
1529 00000014 = _eusart_230400 equ 20
1530                    ; line_number = 59
1531                    ; constant _eusart_230400_low = _eusart_230400 & 0xff
1532 00000014 = _eusart_230400_low equ 20
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 bits/sec:
1540                    ; line_number = 63
1541                    ; constant _eusart_460800 = (_eusart_clock / (460800 * _eusart_factor)) - 1
1542 00000009 = _eusart_460800 equ 9
1543                    ; line_number = 64
1544                    ; constant _eusart_460800_low = _eusart_460800 & 0xff
1545 00000009 = _eusart_460800_low equ 9
1546                    ; line_number = 65
1547                    ; constant _eusart_460800_high = _eusart_460800 >> 8
1548 00000000 = _eusart_460800_high equ 0
1549                    ; line_number = 66
1550                    ; constant _eusart_460800_index = 8
1551 00000008 = _eusart_460800_index equ 8
1552                    ; # 500000 bits/sec:
1553                    ; line_number = 68
1554                    ; constant _eusart_500000 = (_eusart_clock / (500000 * _eusart_factor)) - 1
1555 00000009 = _eusart_500000 equ 9
1556                    ; line_number = 69
1557                    ; constant _eusart_500000_low = _eusart_500000 & 0xff
1558 00000009 = _eusart_500000_low equ 9
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 = 9
1564 00000009 = _eusart_500000_index equ 9
1565                    ; # 576000 bits/sec (1MHz):
1566                    ; line_number = 73
1567                    ; constant _eusart_576000 = (_eusart_clock / (576000 * _eusart_factor)) - 1
1568 00000007 = _eusart_576000 equ 7
1569                    ; line_number = 74
1570                    ; constant _eusart_576000_low = _eusart_576000 & 0xff
1571 00000007 = _eusart_576000_low equ 7
1572                    ; line_number = 75
1573                    ; constant _eusart_576000_high = _eusart_576000 >> 8
1574 00000000 = _eusart_576000_high equ 0
1575                    ; line_number = 76
1576                    ; constant _eusart_576000_index = 10
1577 0000000a = _eusart_576000_index equ 10
1578                    ; # 625000 bits/sec:
1579                    ; line_number = 78
1580                    ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
1581 00000007 = _eusart_625000 equ 7
1582                    ; line_number = 79
1583                    ; constant _eusart_625000_low = _eusart_625000 & 0xff
1584 00000007 = _eusart_625000_low equ 7
1585                    ; line_number = 80
1586                    ; constant _eusart_625000_high = _eusart_625000 >> 8
1587 00000000 = _eusart_625000_high equ 0
1588                    ; line_number = 81
1589                    ; constant _eusart_625000_index = 11
1590 0000000b = _eusart_625000_index equ 11
1591                    ; # 833333 bits/sec:
1592                    ; line_number = 83
1593                    ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
1594 00000005 = _eusart_833333 equ 5
1595                    ; line_number = 84
1596                    ; constant _eusart_833333_low = _eusart_833333 & 0xff
1597 00000005 = _eusart_833333_low equ 5
1598                    ; line_number = 85
1599                    ; constant _eusart_833333_high = _eusart_833333 >> 8
1600 00000000 = _eusart_833333_high equ 0
1601                    ; line_number = 86
1602                    ; constant _eusart_833333_index = 12
1603 0000000c = _eusart_833333_index equ 12
1604                    ; # 921600 bits/sec:
1605                    ; line_number = 88
1606                    ; constant _eusart_921600 = (_eusart_clock / (921600 * _eusart_factor)) - 1
1607 00000004 = _eusart_921600 equ 4
1608                    ; line_number = 89
1609                    ; constant _eusart_921600_low = _eusart_921600 & 0xff
1610 00000004 = _eusart_921600_low equ 4
1611                    ; line_number = 90
1612                    ; constant _eusart_921600_high = _eusart_921600 >> 8
1613 00000000 = _eusart_921600_high equ 0
1614                    ; line_number = 91
1615                    ; constant _eusart_921600_index = 13
1616 0000000d = _eusart_921600_index equ 13
1617                    ; # 1000000 bits/sec (1MHz):
1618                    ; line_number = 93
1619                    ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
1620 00000004 = _eusart_1000000 equ 4
1621                    ; line_number = 94
1622                    ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
1623 00000004 = _eusart_1000000_low equ 4
1624                    ; line_number = 95
1625                    ; constant _eusart_1000000_high = _eusart_1000000 >> 8
1626 00000000 = _eusart_1000000_high equ 0
1627                    ; line_number = 96
1628                    ; constant _eusart_1000000_index = 14
1629 0000000e = _eusart_1000000_index equ 14
1630            
1631                    ; buffer = 'bumper14'
1632                    ; line_number = 17
1633                    ; library _eusart exited
1634            
1635                    ; # The library of bus access routines for use by a PIC16F688.
1636                    ; line_number = 20
1637                    ; library rb2bus_pic16f688 entered
1638            
1639                    ; # Copyright (c) 2006 by Wayne C. Gramlich
1640                    ; # All rights reserved.
1641            
1642                    ; # This module provides some procedures for accessing a RoboBricks2
1643                    ; # bus via a UART.  It is speicialized for the PIC16F688.
1644                    ; #
1645                    ; # It defines the following procedure:
1646                    ; #
1647                    ; # {rb2bus_initialize}({address}) The procedure that initializes the UART
1648                    ; #                                for bus access.
1649            
1650                    ; # All other bus access procedures are defined in the {rb2bus} library
1651                    ; # which is accessed below:
1652                    ; buffer = 'rb2bus_pic16f688'
1653                    ; line_number = 16
1654                    ; library rb2bus entered
1655            
1656                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
1657                    ; # All rights reserved.
1658            
1659                    ; # This module provides some procedures for accessing a RoboBricks2
1660                    ; # bus via a UART.
1661                    ; #
1662                    ; # This procedure defines the following procedures:
1663                    ; #
1664                    ; # {rb2bus_select_wait}  This procedure waits for the module to become selected
1665                    ; # {rb2bus_deselect}     This procedure causes this module to be deselected.
1666                    ; # {rb2bus_byte_get}     This procedure will get a byte form the bus.
1667                    ; # {rb2bus_byte_put}     This procedure will send a byte to the bus.
1668                    ; #
1669                    ; # The global variable {rb2bus_error} is set to 1 whenever the procedures
1670                    ; # feel like there is a command decoding error.
1671                    ; #
1672                    ; # The way to use these procedures is quite as follows:
1673                    ; #
1674                    ; #    # Comamnd byte variable:
1675                    ; #    local command byte
1676                    ; #
1677                    ; #    # Other initialize code goes here:
1678                    ; #
1679                    ; #    # Process commands from bus master:
1680                    ; #    loop_forever
1681                    ; #        rb2bus_error := _true
1682                    ; #	 while rb2bus_error
1683                    ; #	     call rb2bus_select_wait()
1684                    ; #	     command := rb2bus_byte_get()
1685                    ; #
1686                    ; #        # Decode command:
1687                    ; #	 switch command >> 6
1688                    ; #	   ...
1689                    ; #             case 5:
1690                    ; #	        # 0000 0101 (Foo command):
1691                    ; #	          if !rb2bus_error
1692                    ; #		      # Do foo command:
1693                    ; #
1694                    ; # The key concept behind these procedures is to make command
1695                    ; # decoding for the slave module easy.  If the slave module
1696                    ; # is in the middle of command decoding and the master suddenly
1697                    ; # sends out a module select command, we need to gracefully recover
1698                    ; # from the problem.  A command should only be executed if
1699                    ; # {rb2bus_error} is not set.  If {rb2bus_error} is set, we want
1700                    ; # to gracefully get back to the beginning of the loop without
1701                    ; # doing any damage.  Once {rb2bus_error} is set, all calls to
1702                    ; # {rb2bus_byte_get} return 0 and all calls to {rb2bus_byte_put}
1703                    ; # do nothing.  At the beginning of the loop, {rb2bus_error} is
1704                    ; # cleared by the {rb2bus_select_wait}() procedure and we have
1705                    ; # recovered from the situation.
1706            
1707                    ; buffer = 'rb2bus'
1708                    ; line_number = 54
1709                    ; library rb2_constants entered
1710            
1711                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich.
1712                    ; # All rights reserved.
1713            
1714                    ; buffer = 'rb2_constants'
1715                    ; line_number = 6
1716                    ; constant rb2_ok = 0xa5
1717 000000a5 = rb2_ok equ 165
1718            
1719                    ; line_number = 8
1720                    ; constant rb2_common_address_set = 0xfc
1721 000000fc = rb2_common_address_set equ 252
1722                    ; line_number = 9
1723                    ; constant rb2_common_id_next = 0xfd
1724 000000fd = rb2_common_id_next equ 253
1725                    ; line_number = 10
1726                    ; constant rb2_common_id_start = 0xfe
1727 000000fe = rb2_common_id_start equ 254
1728                    ; line_number = 11
1729                    ; constant rb2_common_deselect = 0xff
1730 000000ff = rb2_common_deselect equ 255
1731            
1732                    ; line_number = 13
1733                    ; constant rb2_laser1_address = 1
1734 00000001 = rb2_laser1_address equ 1
1735            
1736                    ; line_number = 15
1737                    ; constant rb2_minimotor2_address = 2
1738 00000002 = rb2_minimotor2_address equ 2
1739                    ; line_number = 16
1740                    ; constant rb2_midimotor2_address = 3
1741 00000003 = rb2_midimotor2_address equ 3
1742                    ; line_number = 17
1743                    ; constant rb2_motor0_speed_get = 0
1744 00000000 = rb2_motor0_speed_get equ 0
1745                    ; line_number = 18
1746                    ; constant rb2_motor0_speed_set = 1
1747 00000001 = rb2_motor0_speed_set equ 1
1748                    ; line_number = 19
1749                    ; constant rb2_motor1_speed_get = 2
1750 00000002 = rb2_motor1_speed_get equ 2
1751                    ; line_number = 20
1752                    ; constant rb2_motor1_speed_set = 3
1753 00000003 = rb2_motor1_speed_set equ 3
1754                    ; line_number = 21
1755                    ; constant rb2_duty_cycle_get = 4
1756 00000004 = rb2_duty_cycle_get equ 4
1757                    ; line_number = 22
1758                    ; constant rb2_duty_cycle_set = 8
1759 00000008 = rb2_duty_cycle_set equ 8
1760            
1761                    ; line_number = 24
1762                    ; constant rb2_irdistance2_address = 4
1763 00000004 = rb2_irdistance2_address equ 4
1764                    ; line_number = 25
1765                    ; constant rb2_irdistance2_raw0_get = 0
1766 00000000 = rb2_irdistance2_raw0_get equ 0
1767                    ; line_number = 26
1768                    ; constant rb2_irdistance2_raw1_get = 1
1769 00000001 = rb2_irdistance2_raw1_get equ 1
1770                    ; line_number = 27
1771                    ; constant rb2_irdistance2_smooth0_get = 2
1772 00000002 = rb2_irdistance2_smooth0_get equ 2
1773                    ; line_number = 28
1774                    ; constant rb2_irdistance2_smooth1_get = 3
1775 00000003 = rb2_irdistance2_smooth1_get equ 3
1776                    ; line_number = 29
1777                    ; constant rb2_irdistance2_linear0_get = 4
1778 00000004 = rb2_irdistance2_linear0_get equ 4
1779                    ; line_number = 30
1780                    ; constant rb2_irdistance2_linear1_get = 6
1781 00000006 = rb2_irdistance2_linear1_get equ 6
1782            
1783                    ; line_number = 32
1784                    ; constant rb2_shaft2_address = 5
1785 00000005 = rb2_shaft2_address equ 5
1786                    ; line_number = 33
1787                    ; constant rb2_shaft2_count_latch = 0
1788 00000000 = rb2_shaft2_count_latch equ 0
1789                    ; line_number = 34
1790                    ; constant rb2_shaft2_count_clear = 1
1791 00000001 = rb2_shaft2_count_clear equ 1
1792                    ; line_number = 35
1793                    ; constant rb2_shaft2_shaft0_high_get = 2
1794 00000002 = rb2_shaft2_shaft0_high_get equ 2
1795                    ; line_number = 36
1796                    ; constant rb2_shaft2_shaft1_high_get = 3
1797 00000003 = rb2_shaft2_shaft1_high_get equ 3
1798                    ; line_number = 37
1799                    ; constant rb2_shaft2_continue_get = 4
1800 00000004 = rb2_shaft2_continue_get equ 4
1801                    ; line_number = 38
1802                    ; constant rb2_shaft2_shaft0_low_get = rb2_shaft2_continue_get
1803 00000004 = rb2_shaft2_shaft0_low_get equ 4
1804                    ; line_number = 39
1805                    ; constant rb2_shaft2_shaft1_low_get = rb2_shaft2_continue_get
1806 00000004 = rb2_shaft2_shaft1_low_get equ 4
1807                    ; line_number = 40
1808                    ; constant rb2_shaft2_x_get = 0x10
1809 00000010 = rb2_shaft2_x_get equ 16
1810                    ; line_number = 41
1811                    ; constant rb2_shaft2_y_get = 0x11
1812 00000011 = rb2_shaft2_y_get equ 17
1813                    ; line_number = 42
1814                    ; constant rb2_shaft2_bearing16_get = 0x12
1815 00000012 = rb2_shaft2_bearing16_get equ 18
1816                    ; line_number = 43
1817                    ; constant rb2_shaft2_bearing8_get = 0x13
1818 00000013 = rb2_shaft2_bearing8_get equ 19
1819                    ; line_number = 44
1820                    ; constant rb2_shaft2_target_x_get = 0x14
1821 00000014 = rb2_shaft2_target_x_get equ 20
1822                    ; line_number = 45
1823                    ; constant rb2_shaft2_target_y_get = 0x15
1824 00000015 = rb2_shaft2_target_y_get equ 21
1825                    ; line_number = 46
1826                    ; constant rb2_shaft2_target_bearing16_get = 0x16
1827 00000016 = rb2_shaft2_target_bearing16_get equ 22
1828                    ; line_number = 47
1829                    ; constant rb2_shaft2_target_bearing8_get = 0x17
1830 00000017 = rb2_shaft2_target_bearing8_get equ 23
1831                    ; line_number = 48
1832                    ; constant rb2_shaft2_target_distance_get = 0x18
1833 00000018 = rb2_shaft2_target_distance_get equ 24
1834                    ; line_number = 49
1835                    ; constant rb2_shaft2_wheel_spacing_get = 0x19
1836 00000019 = rb2_shaft2_wheel_spacing_get equ 25
1837                    ; line_number = 50
1838                    ; constant rb2_shaft2_wheel_ticks_get = 0x1a
1839 0000001a = rb2_shaft2_wheel_ticks_get equ 26
1840                    ; line_number = 51
1841                    ; constant rb2_shaft2_wheel_diameter_get = 0x1b
1842 0000001b = rb2_shaft2_wheel_diameter_get equ 27
1843                    ; line_number = 52
1844                    ; constant rb2_shaft2_count_iteration_get = 0x1c
1845 0000001c = rb2_shaft2_count_iteration_get equ 28
1846                    ; line_number = 53
1847                    ; constant rb2_shaft2_x_set = 0x20
1848 00000020 = rb2_shaft2_x_set equ 32
1849                    ; line_number = 54
1850                    ; constant rb2_shaft2_y_set = 0x21
1851 00000021 = rb2_shaft2_y_set equ 33
1852                    ; line_number = 55
1853                    ; constant rb2_shaft2_bearing16_set = 0x22
1854 00000022 = rb2_shaft2_bearing16_set equ 34
1855                    ; line_number = 56
1856                    ; constant rb2_shaft2_navigation_latch = 0x23
1857 00000023 = rb2_shaft2_navigation_latch equ 35
1858                    ; line_number = 57
1859                    ; constant rb2_shaft2_target_x_set = 0x24
1860 00000024 = rb2_shaft2_target_x_set equ 36
1861                    ; line_number = 58
1862                    ; constant rb2_shaft2_target_y_set = 0x25
1863 00000025 = rb2_shaft2_target_y_set equ 37
1864                    ; line_number = 59
1865                    ; constant rb2_shaft2_wheel_spacing_set = 0x29
1866 00000029 = rb2_shaft2_wheel_spacing_set equ 41
1867                    ; line_number = 60
1868                    ; constant rb2_shaft2_wheel_ticks_set = 0x2a
1869 0000002a = rb2_shaft2_wheel_ticks_set equ 42
1870                    ; line_number = 61
1871                    ; constant rb2_shaft2_wheel_diameter_set = 0x2b
1872 0000002b = rb2_shaft2_wheel_diameter_set equ 43
1873            
1874            
1875                    ; line_number = 64
1876                    ; constant rb2_orient5_address = 6
1877 00000006 = rb2_orient5_address equ 6
1878            
1879                    ; line_number = 66
1880                    ; constant rb2_compass8_address = 7
1881 00000007 = rb2_compass8_address equ 7
1882            
1883                    ; line_number = 68
1884                    ; constant rb2_io8_address = 8
1885 00000008 = rb2_io8_address equ 8
1886                    ; line_number = 69
1887                    ; constant rb2_io8_digital8_get = 0
1888 00000000 = rb2_io8_digital8_get equ 0
1889                    ; line_number = 70
1890                    ; constant rb2_io8_digital8_set = 1
1891 00000001 = rb2_io8_digital8_set equ 1
1892                    ; line_number = 71
1893                    ; constant rb2_io8_direction_get = 2
1894 00000002 = rb2_io8_direction_get equ 2
1895                    ; line_number = 72
1896                    ; constant rb2_io8_direction_set = 3
1897 00000003 = rb2_io8_direction_set equ 3
1898                    ; line_number = 73
1899                    ; constant rb2_io8_analog_mask_get = 4
1900 00000004 = rb2_io8_analog_mask_get equ 4
1901                    ; line_number = 74
1902                    ; constant rb2_io8_analog_mask_set = 5
1903 00000005 = rb2_io8_analog_mask_set equ 5
1904                    ; line_number = 75
1905                    ; constant rb2_io8_analog8_get = 0x10
1906 00000010 = rb2_io8_analog8_get equ 16
1907                    ; line_number = 76
1908                    ; constant rb2_io8_analog10_get = 0x18
1909 00000018 = rb2_io8_analog10_get equ 24
1910                    ; line_number = 77
1911                    ; constant rb2_low_set = 0x20
1912 00000020 = rb2_low_set equ 32
1913                    ; line_number = 78
1914                    ; constant rb2_high_set = 0x30
1915 00000030 = rb2_high_set equ 48
1916            
1917                    ; line_number = 80
1918                    ; constant rb2_sonar2_address = 9
1919 00000009 = rb2_sonar2_address equ 9
1920            
1921                    ; line_number = 82
1922                    ; constant rb2_voice1_address = 10
1923 0000000a = rb2_voice1_address equ 10
1924            
1925                    ; line_number = 84
1926                    ; constant rb2_servo4_address = 11
1927 0000000b = rb2_servo4_address equ 11
1928                    ; line_number = 85
1929                    ; constant rb2_servo4_servo0 = 0
1930 00000000 = rb2_servo4_servo0 equ 0
1931                    ; line_number = 86
1932                    ; constant rb2_servo4_servo1 = 1
1933 00000001 = rb2_servo4_servo1 equ 1
1934                    ; line_number = 87
1935                    ; constant rb2_servo4_servo2 = 2
1936 00000002 = rb2_servo4_servo2 equ 2
1937                    ; line_number = 88
1938                    ; constant rb2_servo4_servo3 = 3
1939 00000003 = rb2_servo4_servo3 equ 3
1940                    ; line_number = 89
1941                    ; constant rb2_servo4_quick_set = 0
1942 00000000 = rb2_servo4_quick_set equ 0
1943                    ; line_number = 90
1944                    ; constant rb2_servo4_quick_low = 0
1945 00000000 = rb2_servo4_quick_low equ 0
1946                    ; line_number = 91
1947                    ; constant rb2_servo4_quick_center = 40
1948 00000028 = rb2_servo4_quick_center equ 40
1949                    ; line_number = 92
1950                    ; constant rb2_servo4_quick_high = 0x7c
1951 0000007c = rb2_servo4_quick_high equ 124
1952                    ; line_number = 93
1953                    ; constant rb2_servo4_high_low_set = 0x80
1954 00000080 = rb2_servo4_high_low_set equ 128
1955                    ; line_number = 94
1956                    ; constant rb2_servo4_short_high_low_set = 0x84
1957 00000084 = rb2_servo4_short_high_low_set equ 132
1958                    ; line_number = 95
1959                    ; constant rb2_servo4_high_set = 0x88
1960 00000088 = rb2_servo4_high_set equ 136
1961                    ; line_number = 96
1962                    ; constant rb2_servo4_low_set = 0x8c
1963 0000008c = rb2_servo4_low_set equ 140
1964                    ; line_number = 97
1965                    ; constant rb2_servo4_enables_set = 0x90
1966 00000090 = rb2_servo4_enables_set equ 144
1967                    ; line_number = 98
1968                    ; constant rb2_servo4_enable0 = 1
1969 00000001 = rb2_servo4_enable0 equ 1
1970                    ; line_number = 99
1971                    ; constant rb2_servo4_enable1 = 2
1972 00000002 = rb2_servo4_enable1 equ 2
1973                    ; line_number = 100
1974                    ; constant rb2_servo4_enable2 = 4
1975 00000004 = rb2_servo4_enable2 equ 4
1976                    ; line_number = 101
1977                    ; constant rb2_servo4_enable3 = 8
1978 00000008 = rb2_servo4_enable3 equ 8
1979                    ; line_number = 102
1980                    ; constant rb2_servo4_enable_all = 0xf
1981 0000000f = rb2_servo4_enable_all equ 15
1982                    ; line_number = 103
1983                    ; constant rb2_servo4_enable_none = 0
1984 00000000 = rb2_servo4_enable_none equ 0
1985                    ; line_number = 104
1986                    ; constant rb2_servo4_high_get = 0xa0
1987 000000a0 = rb2_servo4_high_get equ 160
1988                    ; line_number = 105
1989                    ; constant rb2_servo4_low_get = 0xa4
1990 000000a4 = rb2_servo4_low_get equ 164
1991                    ; line_number = 106
1992                    ; constant rb2_servo4_enables_get = 0xa8
1993 000000a8 = rb2_servo4_enables_get equ 168
1994            
1995                    ; line_number = 108
1996                    ; constant rb2_controller28_address = 28
1997 0000001c = rb2_controller28_address equ 28
1998            
1999                    ; line_number = 110
2000                    ; constant rb2_lcd32_address = 32
2001 00000020 = rb2_lcd32_address equ 32
2002                    ; line_number = 111
2003                    ; constant rb2_lcd32_row_set = 4
2004 00000004 = rb2_lcd32_row_set equ 4
2005                    ; line_number = 112
2006                    ; constant rb2_lcd32_row0_set = rb2_lcd32_row_set | 0
2007 00000004 = rb2_lcd32_row0_set equ 4
2008                    ; line_number = 113
2009                    ; constant rb2_lcd32_row1_set = rb2_lcd32_row_set | 1
2010 00000005 = rb2_lcd32_row1_set equ 5
2011                    ; line_number = 114
2012                    ; constant rb2_lcd32_row2_set = rb2_lcd32_row_set | 2
2013 00000006 = rb2_lcd32_row2_set equ 6
2014                    ; line_number = 115
2015                    ; constant rb2_lcd32_row3_set = rb2_lcd32_row_set | 3
2016 00000007 = rb2_lcd32_row3_set equ 7
2017                    ; line_number = 116
2018                    ; constant rb2_lcd32_new_line = 0xa
2019 0000000a = rb2_lcd32_new_line equ 10
2020                    ; line_number = 117
2021                    ; constant rb2_lcd32_form_feed = 0xc
2022 0000000c = rb2_lcd32_form_feed equ 12
2023                    ; line_number = 118
2024                    ; constant rb2_lcd32_carriage_return = 0xd
2025 0000000d = rb2_lcd32_carriage_return equ 13
2026                    ; line_number = 119
2027                    ; constant rb2_lcd32_column_set = 0x10
2028 00000010 = rb2_lcd32_column_set equ 16
2029            
2030            
2031                    ; buffer = 'rb2bus'
2032                    ; line_number = 54
2033                    ; library rb2_constants exited
2034                    ; line_number = 55
2035                    ; library rb2bus_globals entered
2036            
2037                    ; # Copyright (c) 2006-2007 by Wayne C. Gramlich
2038                    ; # All rights reserved.
2039            
2040                    ; # These are the global variables used by both the {rb2bus} and
2041                    ; # the various {rb2bus_picXXXX} libraries.  Poll based firmware
2042                    ; # uses both libraries, whereas interrupt driven software only
2043                    ; # uses the {rb2bus_picXXX} libraries.
2044            
2045                    ; buffer = 'rb2bus_globals'
2046                    ; line_number = 11
2047                    ; global rb2bus_selected bit	# 
2048 0000006f = rb2bus_selected___byte equ globals___0+79
2049 00000000 = rb2bus_selected___bit equ 0
2050                    ; line_number = 12
2051                    ; global rb2bus_error bit		# Global error bit
2052 0000006f = rb2bus_error___byte equ globals___0+79
2053 00000001 = rb2bus_error___bit equ 1
2054                    ; line_number = 13
2055                    ; global rb2bus_address byte	# Bus address to respond to
2056 00000020 = rb2bus_address equ globals___0
2057                    ; line_number = 14
2058                    ; global rb2bus_index byte	# Index into id information
2059 00000021 = rb2bus_index equ globals___0+1
2060            
2061            
2062                    ; buffer = 'rb2bus'
2063                    ; line_number = 55
2064                    ; library rb2bus_globals exited
2065            
2066                    ; Delaying code generation for procedure  rb2bus_select_wait
2067                    ; Delaying code generation for procedure  rb2bus_deselect
2068                    ; Delaying code generation for procedure  rb2bus_byte_get
2069                    ; Delaying code generation for procedure  rb2bus_byte_put
2070                    ; Delaying code generation for procedure  rb2bus_command
2071            
2072                    ; buffer = 'rb2bus_pic16f688'
2073                    ; line_number = 16
2074                    ; library rb2bus exited
2075            
2076                    ; Delaying code generation for procedure  rb2bus_initialize
2077                    ; line_number = 62
2078                    ; constant rb2bus_eedata_address = 0xfe
2079 000000fe = rb2bus_eedata_address equ 254
2080            
2081                    ; Delaying code generation for procedure  rb2bus_eedata_read
2082                    ; Delaying code generation for procedure  rb2bus_eedata_write
2083            
2084                    ; buffer = 'bumper14'
2085                    ; line_number = 20
2086                    ; library rb2bus_pic16f688 exited
2087            
2088                    ; # This module uses 16MHz crystal oscillator; hence mode EC=External Clock:
2089            
2090                    ; # All pins on this package are used except RA3.
2091                    ; line_number = 26
2092                    ; package pdip
2093                    ; line_number = 27
2094                    ; pin 1 = power_supply
2095                    ; line_number = 28
2096                    ;  pin 2 = osc1
2097                    ; line_number = 29
2098                    ;  pin 3 = ra4_in, name=io1, mask=io1_mask, bit=io1_bit
2099 00000005 = io1___byte equ _porta
2100 00000004 = io1___bit equ 4
2101 00000010 = io1_mask equ 16
2102 00000004 = io1_bit equ 4
2103                    ; line_number = 30
2104                    ;  pin 4 = ra3_nc, name=nc1
2105 00000005 = nc1___byte equ _porta
2106 00000003 = nc1___bit equ 3
2107                    ; line_number = 31
2108                    ;  pin 5 = rx, name=rx, bit=rx_bit
2109 00000007 = rx___byte equ _portc
2110 00000005 = rx___bit equ 5
2111 00000005 = rx_bit equ 5
2112                    ; line_number = 32
2113                    ;  pin 6 = tx, name=tx, bit=tx_bit
2114 00000007 = tx___byte equ _portc
2115 00000004 = tx___bit equ 4
2116 00000004 = tx_bit equ 4
2117                    ; line_number = 33
2118                    ;  pin 7 = rc3_in, name=io6, mask=io6_mask, bit=io6_bit
2119 00000007 = io6___byte equ _portc
2120 00000003 = io6___bit equ 3
2121 00000008 = io6_mask equ 8
2122 00000003 = io6_bit equ 3
2123                    ; line_number = 34
2124                    ;  pin 8 = rc2_in, name=io4, mask=io4_mask, bit=io4_bit
2125 00000007 = io4___byte equ _portc
2126 00000002 = io4___bit equ 2
2127 00000004 = io4_mask equ 4
2128 00000002 = io4_bit equ 2
2129                    ; line_number = 35
2130                    ;  pin 9 = rc1_in, name=io2, mask=io2_mask, bit=io2_bit
2131 00000007 = io2___byte equ _portc
2132 00000001 = io2___bit equ 1
2133 00000002 = io2_mask equ 2
2134 00000001 = io2_bit equ 1
2135                    ; line_number = 36
2136                    ;  pin 10 = rc0_in, name=io0, mask=io0_mask, bit=io0_bit
2137 00000007 = io0___byte equ _portc
2138 00000000 = io0___bit equ 0
2139 00000001 = io0_mask equ 1
2140 00000000 = io0_bit equ 0
2141                    ; line_number = 37
2142                    ;  pin 11 = ra2_in, name=io7, mask=io7_mask, bit=io7_bit
2143 00000005 = io7___byte equ _porta
2144 00000002 = io7___bit equ 2
2145 00000004 = io7_mask equ 4
2146 00000002 = io7_bit equ 2
2147                    ; line_number = 38
2148                    ;  pin 12 = ra1_in, name=io5, mask=io5_mask, bit=io5_bit
2149 00000005 = io5___byte equ _porta
2150 00000001 = io5___bit equ 1
2151 00000002 = io5_mask equ 2
2152 00000001 = io5_bit equ 1
2153                    ; line_number = 39
2154                    ;  pin 13 = ra0_in, name=io3, mask=io3_mask, bit=io3_bit
2155 00000005 = io3___byte equ _porta
2156 00000000 = io3___bit equ 0
2157 00000001 = io3_mask equ 1
2158 00000000 = io3_bit equ 0
2159                    ; line_number = 40
2160                    ;  pin 14 = ground
2161            
2162                    ; line_number = 42
2163                    ; origin 0
2164   0000 :           org     0
2165            
2166                    ; line_number = 44
2167                    ; global adc_lsbs[8] array[byte]
2168 0000002c = adc_lsbs equ globals___0+12
2169                    ; line_number = 45
2170                    ; global adc_msbs[8] array[byte]
2171 00000034 = adc_msbs equ globals___0+20
2172            
2173                    ; line_number = 47
2174                    ;info   47, 0
2175                    ; procedure main
2176   0000 :   main:
2177                    ; Initialize some registers
2178 0000 019f          clrf    _adcon0
2179 0001 1683          bsf     __rp0___byte, __rp0___bit
2180 0002 0191          clrf    _ansel
2181 0003 3007          movlw   7
2182 0004 1283          bcf     __rp0___byte, __rp0___bit
2183 0005 0099          movwf   _cmcon0
2184 0006 303f          movlw   63
2185 0007 1683          bsf     __rp0___byte, __rp0___bit
2186 0008 0085          movwf   _trisa
2187 0009 303f          movlw   63
2188 000a 0087          movwf   _trisc
2189                    ; arguments_none
2190                    ; line_number = 49
2191                    ;  returns_nothing
2192            
2193                    ; # This procedure initializes everything and does command decoding.
2194            
2195                    ; line_number = 53
2196                    ;  local command byte
2197 0000003c = main__command equ globals___0+28
2198                    ; line_number = 54
2199                    ;  local channel byte
2200 0000003d = main__channel equ globals___0+29
2201                    ; line_number = 55
2202                    ;  local result byte
2203 0000003e = main__result equ globals___0+30
2204            
2205                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:XX=cc=>XX)
2206                    ; line_number = 57
2207                    ;  call rb2bus_initialize(8)
2208                    ;info   57, 11
2209 000b 3008          movlw   8
2210 000c 1283          bcf     __rp0___byte, __rp0___bit
2211 000d 221f          call    rb2bus_initialize
2212            
2213                    ; line_number = 59
2214                    ;  call direction_set(0xff)
2215                    ;info   59, 14
2216 000e 30ff          movlw   255
2217 000f 2162          call    direction_set
2218            
2219                    ; # We are running at 16MHz.  We want Tad to be as close to 1.6uS
2220                    ; # as possible.  1/(16MHz/32) = 2uS which is about as close as
2221                    ; # we are going to get.  Thus, ADCS<2:0> = 010.
2222                    ; line_number = 64
2223                    ;  _adcon1 := 0x20
2224                    ;info   64, 16
2225 0010 3020          movlw   32
2226 0011 1683          bsf     __rp0___byte, __rp0___bit
2227 0012 009f          movwf   _adcon1
2228            
2229                    ; line_number = 66
2230                    ;  _adcon0 := 0
2231                    ;info   66, 19
2232 0013 1283          bcf     __rp0___byte, __rp0___bit
2233 0014 019f          clrf    _adcon0
2234                    ; # A/D result is left justified (10-bits) in ADRESH::ADRESL
2235                    ; line_number = 68
2236                    ;  _adfm := _false
2237                    ;info   68, 21
2238 0015 139f          bcf     _adfm___byte, _adfm___bit
2239                    ; # Use 5 volt voltage reference:
2240                    ; line_number = 70
2241                    ;  _vcfg := _false
2242                    ;info   70, 22
2243 0016 131f          bcf     _vcfg___byte, _vcfg___bit
2244                    ; # Turn on the A/D:
2245                    ; line_number = 72
2246                    ;  _adon := _true
2247                    ;info   72, 23
2248 0017 141f          bsf     _adon___byte, _adon___bit
2249            
2250                    ; line_number = 74
2251                    ;  loop_forever start
2252   0018 :   main__1:
2253                    ; # Make sure that we have been selected:
2254                    ; line_number = 76
2255                    ;  rb2bus_error := _true
2256                    ;info   76, 24
2257 0018 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
2258                    ; line_number = 77
2259                    ;  while rb2bus_error start
2260   0019 :   main__2:
2261                    ;info   77, 25
2262                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2263                    ; No 1TEST: true.size=4 false.size=0
2264                    ; No 2TEST: true.size=4 false.size=0
2265                    ; 1GOTO: Single test with GOTO
2266 0019 1cef          btfss   rb2bus_error___byte, rb2bus_error___bit
2267 001a 281f          goto    main__3
2268                    ; line_number = 78
2269                    ; call rb2bus_select_wait()
2270                    ;info   78, 27
2271 001b 2182          call    rb2bus_select_wait
2272                    ; line_number = 79
2273                    ;  command := rb2bus_byte_get()
2274                    ;info   79, 28
2275 001c 21a1          call    rb2bus_byte_get
2276 001d 00bc          movwf   main__command
2277            
2278 001e 2819          goto    main__2
2279                    ; Recombine size1 = 0 || size2 = 0
2280   001f :   main__3:
2281                    ; line_number = 77
2282                    ;  while rb2bus_error done
2283                    ; line_number = 81
2284                    ; switch command >> 6 start
2285                    ;info   81, 31
2286                    ; switch_before:(data:00=uu=>00 code:XX=cc=>XX) size=7
2287 001f 3000          movlw   main__44>>8
2288 0020 008a          movwf   __pclath
2289 0000004d = main__45 equ globals___0+45
2290 0021 0e3c          swapf   main__command,w
2291 0022 00cd          movwf   main__45
2292 0023 0ccd          rrf     main__45,f
2293 0024 0c4d          rrf     main__45,w
2294 0025 3903          andlw   3
2295                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2296 0026 3e28          addlw   main__44
2297 0027 0082          movwf   __pcl
2298                    ; page_group 4
2299   0028 :   main__44:
2300 0028 282c          goto    main__42
2301 0029 28d6          goto    main__46
2302 002a 28d6          goto    main__46
2303 002b 28c3          goto    main__43
2304                    ; line_number = 82
2305                    ; case 0
2306   002c :   main__42:
2307                    ; line_number = 83
2308                    ; switch (command >> 3) & 7 start
2309                    ;info   83, 44
2310                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2311 002c 3000          movlw   main__35>>8
2312 002d 008a          movwf   __pclath
2313 0000004d = main__36 equ globals___0+45
2314 002e 0c3c          rrf     main__command,w
2315 002f 00cd          movwf   main__36
2316 0030 0ccd          rrf     main__36,f
2317 0031 0c4d          rrf     main__36,w
2318 0032 3907          andlw   7
2319                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2320 0033 3e35          addlw   main__35
2321 0034 0082          movwf   __pcl
2322                    ; page_group 8
2323   0035 :   main__35:
2324 0035 283d          goto    main__30
2325 0036 28c2          goto    main__37
2326 0037 2869          goto    main__31
2327 0038 28ab          goto    main__32
2328 0039 28b2          goto    main__33
2329 003a 28b2          goto    main__33
2330 003b 28ba          goto    main__34
2331 003c 28ba          goto    main__34
2332                    ; line_number = 84
2333                    ; case 0
2334   003d :   main__30:
2335                    ; # 0000 0xxx:
2336                    ; line_number = 86
2337                    ;  switch command & 7 start
2338                    ;info   86, 61
2339                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2340                    ; line_number = 111
2341                    ; case_maximum 7
2342 003d 3000          movlw   main__13>>8
2343 003e 008a          movwf   __pclath
2344 003f 3007          movlw   7
2345 0040 053c          andwf   main__command,w
2346                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2347 0041 3e43          addlw   main__13
2348 0042 0082          movwf   __pcl
2349                    ; page_group 8
2350   0043 :   main__13:
2351 0043 284b          goto    main__7
2352 0044 284e          goto    main__8
2353 0045 2855          goto    main__9
2354 0046 2858          goto    main__10
2355 0047 285f          goto    main__11
2356 0048 2862          goto    main__12
2357 0049 2868          goto    main__14
2358 004a 2868          goto    main__14
2359                    ; line_number = 87
2360                    ; case 0
2361   004b :   main__7:
2362                    ; # 0000 0000 (Digital8_Read):
2363                    ; line_number = 89
2364                    ;  call rb2bus_byte_put(digital_read())
2365                    ;info   89, 75
2366 004b 2118          call    digital_read
2367 004c 21c3          call    rb2bus_byte_put
2368 004d 2868          goto    main__14
2369                    ; line_number = 90
2370                    ; case 1
2371   004e :   main__8:
2372                    ; # 0000 0001 (Digital8_Write):
2373                    ; line_number = 92
2374                    ;  command := rb2bus_byte_get()
2375                    ;info   92, 78
2376 004e 21a1          call    rb2bus_byte_get
2377 004f 00bc          movwf   main__command
2378                    ; line_number = 93
2379                    ;  if !rb2bus_error start
2380                    ;info   93, 80
2381                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2382                    ; No 1TEST: true.size=0 false.size=2
2383                    ; No 2TEST: true.size=0 false.size=2
2384                    ; 1GOTO: Single test with GOTO
2385 0050 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2386 0051 2854          goto    main__4
2387                    ; line_number = 94
2388                    ; call digital_set(command)
2389                    ;info   94, 82
2390 0052 083c          movf    main__command,w
2391 0053 212f          call    digital_set
2392   0054 :   main__4:
2393                    ; Recombine size1 = 0 || size2 = 0
2394                    ; line_number = 93
2395                    ;  if !rb2bus_error done
2396 0054 2868          goto    main__14
2397                    ; line_number = 95
2398                    ; case 2
2399   0055 :   main__9:
2400                    ; # 0000 0010 (Direction_Read):
2401                    ; line_number = 97
2402                    ;  call rb2bus_byte_put(direction_read())
2403                    ;info   97, 85
2404 0055 2147          call    direction_read
2405 0056 21c3          call    rb2bus_byte_put
2406 0057 2868          goto    main__14
2407                    ; line_number = 98
2408                    ; case 3
2409   0058 :   main__10:
2410                    ; # 0000 0011 (Direction_Set):
2411                    ; line_number = 100
2412                    ;  command := rb2bus_byte_get()
2413                    ;info   100, 88
2414 0058 21a1          call    rb2bus_byte_get
2415 0059 00bc          movwf   main__command
2416                    ; line_number = 101
2417                    ;  if !rb2bus_error start
2418                    ;info   101, 90
2419                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2420                    ; No 1TEST: true.size=0 false.size=2
2421                    ; No 2TEST: true.size=0 false.size=2
2422                    ; 1GOTO: Single test with GOTO
2423 005a 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2424 005b 285e          goto    main__5
2425                    ; line_number = 102
2426                    ; call direction_set(command)
2427                    ;info   102, 92
2428 005c 083c          movf    main__command,w
2429 005d 2162          call    direction_set
2430   005e :   main__5:
2431                    ; Recombine size1 = 0 || size2 = 0
2432                    ; line_number = 101
2433                    ;  if !rb2bus_error done
2434 005e 2868          goto    main__14
2435                    ; line_number = 103
2436                    ; case 4
2437   005f :   main__11:
2438                    ; # 0000 0100 (Analog_Mask_Read):
2439                    ; line_number = 105
2440                    ;  call rb2bus_byte_put(analog_mask_read())
2441                    ;info   105, 95
2442 005f 20f1          call    analog_mask_read
2443 0060 21c3          call    rb2bus_byte_put
2444 0061 2868          goto    main__14
2445                    ; line_number = 106
2446                    ; case 5
2447   0062 :   main__12:
2448                    ; # 0000 0101 (Analog_Mask_Set):
2449                    ; line_number = 108
2450                    ;  command := rb2bus_byte_get()
2451                    ;info   108, 98
2452 0062 21a1          call    rb2bus_byte_get
2453 0063 00bc          movwf   main__command
2454                    ; line_number = 109
2455                    ;  if !rb2bus_error start
2456                    ;info   109, 100
2457                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
2458                    ; No 1TEST: true.size=0 false.size=2
2459                    ; No 2TEST: true.size=0 false.size=2
2460                    ; 1GOTO: Single test with GOTO
2461 0064 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
2462 0065 2868          goto    main__6
2463                    ; line_number = 110
2464                    ; call analog_mask_set(command)
2465                    ;info   110, 102
2466 0066 083c          movf    main__command,w
2467 0067 2106          call    analog_mask_set
2468   0068 :   main__6:
2469                    ; Recombine size1 = 0 || size2 = 0
2470                    ; line_number = 109
2471                    ;  if !rb2bus_error done
2472   0068 :   main__14:
2473                    ; line_number = 86
2474                    ;  switch command & 7 done
2475 0068 28c2          goto    main__37
2476                    ; line_number = 112
2477                    ; case 2
2478   0069 :   main__31:
2479                    ; # 0001 0ccc (Analog8_Read):
2480            
2481                    ; # Figure out the actual A/D channel to use:
2482                    ; line_number = 116
2483                    ;  switch command & 7 start
2484                    ;info   116, 105
2485                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2486 0069 3000          movlw   main__23>>8
2487 006a 008a          movwf   __pclath
2488 006b 3007          movlw   7
2489 006c 053c          andwf   main__command,w
2490                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2491 006d 3e6f          addlw   main__23
2492 006e 0082          movwf   __pcl
2493                    ; page_group 8
2494   006f :   main__23:
2495 006f 2877          goto    main__15
2496 0070 287a          goto    main__16
2497 0071 287d          goto    main__17
2498 0072 2880          goto    main__18
2499 0073 2882          goto    main__19
2500 0074 2885          goto    main__20
2501 0075 2888          goto    main__21
2502 0076 288b          goto    main__22
2503                    ; line_number = 117
2504                    ; case 0
2505   0077 :   main__15:
2506                    ; line_number = 118
2507                    ; channel := 4
2508                    ;info   118, 119
2509 0077 3004          movlw   4
2510 0078 00bd          movwf   main__channel
2511 0079 288d          goto    main__24
2512                    ; line_number = 119
2513                    ; case 1
2514   007a :   main__16:
2515                    ; line_number = 120
2516                    ; channel := 3
2517                    ;info   120, 122
2518 007a 3003          movlw   3
2519 007b 00bd          movwf   main__channel
2520 007c 288d          goto    main__24
2521                    ; line_number = 121
2522                    ; case 2
2523   007d :   main__17:
2524                    ; line_number = 122
2525                    ; channel := 5
2526                    ;info   122, 125
2527 007d 3005          movlw   5
2528 007e 00bd          movwf   main__channel
2529 007f 288d          goto    main__24
2530                    ; line_number = 123
2531                    ; case 3
2532   0080 :   main__18:
2533                    ; line_number = 124
2534                    ; channel := 0
2535                    ;info   124, 128
2536 0080 01bd          clrf    main__channel
2537 0081 288d          goto    main__24
2538                    ; line_number = 125
2539                    ; case 4
2540   0082 :   main__19:
2541                    ; line_number = 126
2542                    ; channel := 6
2543                    ;info   126, 130
2544 0082 3006          movlw   6
2545 0083 00bd          movwf   main__channel
2546 0084 288d          goto    main__24
2547                    ; line_number = 127
2548                    ; case 5
2549   0085 :   main__20:
2550                    ; line_number = 128
2551                    ; channel := 1
2552                    ;info   128, 133
2553 0085 3001          movlw   1
2554 0086 00bd          movwf   main__channel
2555 0087 288d          goto    main__24
2556                    ; line_number = 129
2557                    ; case 6
2558   0088 :   main__21:
2559                    ; line_number = 130
2560                    ; channel := 7
2561                    ;info   130, 136
2562 0088 3007          movlw   7
2563 0089 00bd          movwf   main__channel
2564 008a 288d          goto    main__24
2565                    ; line_number = 131
2566                    ; case 7
2567   008b :   main__22:
2568                    ; line_number = 132
2569                    ; channel := 2
2570                    ;info   132, 139
2571 008b 3002          movlw   2
2572 008c 00bd          movwf   main__channel
2573            
2574   008d :   main__24:
2575                    ; line_number = 116
2576                    ;  switch command & 7 done
2577                    ; # Select the channel while keeping the A/D on:
2578                    ; line_number = 135
2579                    ;  _adcon0 := (channel << 2) | 1
2580                    ;info   135, 141
2581 0000004d = main__25 equ globals___0+45
2582 008d 0d3d          rlf     main__channel,w
2583 008e 00cd          movwf   main__25
2584 008f 0d4d          rlf     main__25,w
2585 0090 39fc          andlw   252
2586 0091 3801          iorlw   1
2587 0092 009f          movwf   _adcon0
2588                    ; # It can take up to 20 uS for the A/D to stablize:
2589                    ; line_number = 137
2590                    ;  delay 20 * microsecond start
2591                    ;info   137, 147
2592                    ; Delay expression evaluates to 100
2593                    ; line_number = 138
2594                    ; do_nothing
2595                    ;info   138, 147
2596            
2597                    ; Delay 100 cycles
2598                    ; Delay loop takes 25 * 4 = 100 cycles
2599 0093 3019          movlw   25
2600   0094 :   main__26:
2601 0094 3eff          addlw   255
2602 0095 1d03          btfss   __z___byte, __z___bit
2603 0096 2894          goto    main__26
2604                    ; line_number = 137
2605                    ;  delay 20 * microsecond done
2606                    ; # Now take the A/D sample:
2607                    ; line_number = 141
2608                    ;  _go := _true
2609                    ;info   141, 151
2610 0097 149f          bsf     _go___byte, _go___bit
2611                    ; line_number = 142
2612                    ;  while _go start
2613   0098 :   main__27:
2614                    ;info   142, 152
2615                    ; =>bit_code_emit@symbol(): sym=_go
2616                    ; 1TEST: Single test with code in skip slot
2617 0098 189f          btfsc   _go___byte, _go___bit
2618                    ; line_number = 143
2619                    ; do_nothing
2620                    ;info   143, 153
2621            
2622 0099 2898          goto    main__27
2623                    ; Recombine size1 = 0 || size2 = 0
2624                    ; line_number = 142
2625                    ;  while _go done
2626                    ; # We've got the result:
2627                    ; line_number = 146
2628                    ;  result := _adresh
2629                    ;info   146, 154
2630 009a 081e          movf    _adresh,w
2631 009b 00be          movwf   main__result
2632                    ; line_number = 147
2633                    ;  adc_lsbs[channel] := _adresl
2634                    ;info   147, 156
2635                    ; index_fsr_first
2636 009c 083d          movf    main__channel,w
2637 009d 3e2c          addlw   adc_lsbs
2638 009e 0084          movwf   __fsr
2639 009f 1683          bsf     __rp0___byte, __rp0___bit
2640 00a0 081e          movf    _adresl,w
2641 00a1 0080          movwf   __indf
2642                    ; line_number = 148
2643                    ;  adc_msbs[channel] := result
2644                    ;info   148, 162
2645                    ; index_fsr_first
2646 00a2 1283          bcf     __rp0___byte, __rp0___bit
2647 00a3 083d          movf    main__channel,w
2648 00a4 3e34          addlw   adc_msbs
2649 00a5 0084          movwf   __fsr
2650 00a6 083e          movf    main__result,w
2651 00a7 0080          movwf   __indf
2652                    ; line_number = 149
2653                    ;  call rb2bus_byte_put(result)
2654                    ;info   149, 168
2655 00a8 083e          movf    main__result,w
2656 00a9 21c3          call    rb2bus_byte_put
2657 00aa 28c2          goto    main__37
2658                    ; line_number = 150
2659                    ; case 3
2660   00ab :   main__32:
2661                    ; # 0001 1ccc (Analog10_Read):
2662                    ; line_number = 152
2663                    ;  call rb2bus_byte_put(adc_lsbs[command & 7])
2664                    ;info   152, 171
2665 00ab 3007          movlw   7
2666 00ac 053c          andwf   main__command,w
2667 00ad 3e2c          addlw   adc_lsbs
2668 00ae 0084          movwf   __fsr
2669 00af 0800          movf    __indf,w
2670 00b0 21c3          call    rb2bus_byte_put
2671 00b1 28c2          goto    main__37
2672                    ; line_number = 153
2673                    ; case 4, 5
2674   00b2 :   main__33:
2675                    ; # 0010 dddd (Low Set):
2676                    ; line_number = 155
2677                    ;  call digital_set((digital_read() & 0xf0) | (command & 0xf))
2678                    ;info   155, 178
2679 0000004d = main__28 equ globals___0+45
2680 00b2 2118          call    digital_read
2681 00b3 39f0          andlw   240
2682 00b4 00cd          movwf   main__28
2683 00b5 300f          movlw   15
2684 00b6 053c          andwf   main__command,w
2685 00b7 044d          iorwf   main__28,w
2686 00b8 212f          call    digital_set
2687 00b9 28c2          goto    main__37
2688                    ; line_number = 156
2689                    ; case 6, 7
2690   00ba :   main__34:
2691                    ; # 0011 dddd (High Set):
2692                    ; line_number = 158
2693                    ;  call digital_set((command << 4) | (digital_read() & 0xf))
2694                    ;info   158, 186
2695 0000004d = main__29 equ globals___0+45
2696 00ba 0e3c          swapf   main__command,w
2697 00bb 00cd          movwf   main__29
2698 00bc 30f0          movlw   240
2699 00bd 05cd          andwf   main__29,f
2700 00be 2118          call    digital_read
2701 00bf 390f          andlw   15
2702 00c0 044d          iorwf   main__29,w
2703 00c1 212f          call    digital_set
2704   00c2 :   main__37:
2705                    ; line_number = 83
2706                    ; switch (command >> 3) & 7 done
2707 00c2 28d6          goto    main__46
2708                    ; line_number = 159
2709                    ; case 3
2710   00c3 :   main__43:
2711                    ; # 11xx xxxx:
2712                    ; line_number = 161
2713                    ;  switch (command >> 3) & 7 start
2714                    ;info   161, 195
2715                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2716 00c3 3000          movlw   main__39>>8
2717 00c4 008a          movwf   __pclath
2718 0000004d = main__40 equ globals___0+45
2719 00c5 0c3c          rrf     main__command,w
2720 00c6 00cd          movwf   main__40
2721 00c7 0ccd          rrf     main__40,f
2722 00c8 0c4d          rrf     main__40,w
2723 00c9 3907          andlw   7
2724                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2725 00ca 3ecc          addlw   main__39
2726 00cb 0082          movwf   __pcl
2727                    ; page_group 8
2728   00cc :   main__39:
2729 00cc 28d6          goto    main__41
2730 00cd 28d6          goto    main__41
2731 00ce 28d6          goto    main__41
2732 00cf 28d6          goto    main__41
2733 00d0 28d6          goto    main__41
2734 00d1 28d6          goto    main__41
2735 00d2 28d6          goto    main__41
2736 00d3 28d4          goto    main__38
2737                    ; line_number = 162
2738                    ; case 7
2739   00d4 :   main__38:
2740                    ; # 1111 1xxx:
2741                    ; line_number = 164
2742                    ;  call rb2bus_command(command)
2743                    ;info   164, 212
2744 00d4 083c          movf    main__command,w
2745 00d5 21d7          call    rb2bus_command
2746            
2747            
2748   00d6 :   main__41:
2749                    ; line_number = 161
2750                    ;  switch (command >> 3) & 7 done
2751   00d6 :   main__46:
2752                    ; line_number = 81
2753                    ; switch command >> 6 done
2754                    ; line_number = 74
2755                    ;  loop_forever wrap-up
2756 00d6 2818          goto    main__1
2757                    ; line_number = 74
2758                    ;  loop_forever done
2759                    ; delay after procedure statements=non-uniform
2760            
2761            
2762            
2763            
2764                    ; line_number = 167
2765                    ;info   167, 215
2766                    ; procedure wait
2767   00d7 :   wait:
2768                    ; arguments_none
2769                    ; line_number = 169
2770                    ;  returns_nothing
2771            
2772                    ; # This procedure is repeatably called whenever the software
2773                    ; # is waiting for a byte to arrive from the bus.
2774            
2775                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2776                    ; line_number = 174
2777                    ;  do_nothing
2778                    ;info   174, 215
2779            
2780            
2781                    ; delay after procedure statements=non-uniform
2782                    ; Implied return
2783 00d7 3400          retlw   0
2784            
2785            
2786            
2787            
2788                    ; line_number = 177
2789                    ; string id = "\16,0,8,3,3,5\IO8-C\7\Gramson" start
2790                    ; id = '\16,0,8,3,3,5\IO8-C\7\Gramson'
2791   00d8 :   id:
2792                    ; Temporarily save index into FSR
2793 00d8 0084          movwf   __fsr
2794                    ; Initialize PCLATH to point to this code page
2795 00d9 3000          movlw   id___base>>8
2796 00da 008a          movwf   __pclath
2797                    ; Restore index from FSR
2798 00db 0804          movf    __fsr,w
2799 00dc 3ede          addlw   id___base
2800                    ; Index to the correct return value
2801 00dd 0082          movwf   __pcl
2802                    ; page_group 19
2803   00de :   id___base:
2804 00de 3410          retlw   16
2805 00df 3400          retlw   0
2806 00e0 3408          retlw   8
2807 00e1 3403          retlw   3
2808 00e2 3403          retlw   3
2809 00e3 3405          retlw   5
2810 00e4 3449          retlw   73
2811 00e5 344f          retlw   79
2812 00e6 3438          retlw   56
2813 00e7 342d          retlw   45
2814 00e8 3443          retlw   67
2815 00e9 3407          retlw   7
2816 00ea 3447          retlw   71
2817 00eb 3472          retlw   114
2818 00ec 3461          retlw   97
2819 00ed 346d          retlw   109
2820 00ee 3473          retlw   115
2821 00ef 346f          retlw   111
2822 00f0 346e          retlw   110
2823                    ; line_number = 177
2824                    ; string id = "\16,0,8,3,3,5\IO8-C\7\Gramson" start
2825            
2826                    ; line_number = 179
2827                    ;info   179, 241
2828                    ; procedure analog_mask_read
2829   00f1 :   analog_mask_read:
2830                    ; arguments_none
2831                    ; line_number = 181
2832                    ;  returns byte
2833            
2834                    ; # This procedure will return the analog selection bits.
2835            
2836                    ; line_number = 185
2837                    ;  local analog byte
2838 0000003f = analog_mask_read__analog equ globals___0+31
2839            
2840                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2841                    ; line_number = 187
2842                    ;  analog := 0
2843                    ;info   187, 241
2844 00f1 01bf          clrf    analog_mask_read__analog
2845                    ; line_number = 188
2846                    ;  if _ansel@0 start
2847                    ;info   188, 242
2848 00000091 = analog_mask_read__select__2___byte equ _ansel
2849 00000000 = analog_mask_read__select__2___bit equ 0
2850                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__2
2851                    ; 1TEST: Single test with code in skip slot
2852 00f2 1683          bsf     __rp0___byte, __rp0___bit
2853 00f3 1811          btfsc   analog_mask_read__select__2___byte, analog_mask_read__select__2___bit
2854                    ; line_number = 189
2855                    ; analog@3 := _true
2856                    ;info   189, 244
2857 0000003f = analog_mask_read__select__1___byte equ analog_mask_read__analog
2858 00000003 = analog_mask_read__select__1___bit equ 3
2859 00f4 15bf          bsf     analog_mask_read__select__1___byte, analog_mask_read__select__1___bit
2860                    ; Recombine size1 = 0 || size2 = 0
2861                    ; line_number = 188
2862                    ;  if _ansel@0 done
2863                    ; line_number = 190
2864                    ; if _ansel@1 start
2865                    ;info   190, 245
2866 00000091 = analog_mask_read__select__4___byte equ _ansel
2867 00000001 = analog_mask_read__select__4___bit equ 1
2868                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__4
2869                    ; 1TEST: Single test with code in skip slot
2870 00f5 1891          btfsc   analog_mask_read__select__4___byte, analog_mask_read__select__4___bit
2871                    ; line_number = 191
2872                    ; analog@5 := _true
2873                    ;info   191, 246
2874 0000003f = analog_mask_read__select__3___byte equ analog_mask_read__analog
2875 00000005 = analog_mask_read__select__3___bit equ 5
2876 00f6 16bf          bsf     analog_mask_read__select__3___byte, analog_mask_read__select__3___bit
2877                    ; Recombine size1 = 0 || size2 = 0
2878                    ; line_number = 190
2879                    ; if _ansel@1 done
2880                    ; line_number = 192
2881                    ; if _ansel@2 start
2882                    ;info   192, 247
2883 00000091 = analog_mask_read__select__6___byte equ _ansel
2884 00000002 = analog_mask_read__select__6___bit equ 2
2885                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__6
2886                    ; 1TEST: Single test with code in skip slot
2887 00f7 1911          btfsc   analog_mask_read__select__6___byte, analog_mask_read__select__6___bit
2888                    ; line_number = 193
2889                    ; analog@7 := _true
2890                    ;info   193, 248
2891 0000003f = analog_mask_read__select__5___byte equ analog_mask_read__analog
2892 00000007 = analog_mask_read__select__5___bit equ 7
2893 00f8 17bf          bsf     analog_mask_read__select__5___byte, analog_mask_read__select__5___bit
2894                    ; Recombine size1 = 0 || size2 = 0
2895                    ; line_number = 192
2896                    ; if _ansel@2 done
2897                    ; line_number = 194
2898                    ; if _ansel@3 start
2899                    ;info   194, 249
2900 00000091 = analog_mask_read__select__8___byte equ _ansel
2901 00000003 = analog_mask_read__select__8___bit equ 3
2902                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__8
2903                    ; 1TEST: Single test with code in skip slot
2904 00f9 1991          btfsc   analog_mask_read__select__8___byte, analog_mask_read__select__8___bit
2905                    ; line_number = 195
2906                    ; analog@1 := _true
2907                    ;info   195, 250
2908 0000003f = analog_mask_read__select__7___byte equ analog_mask_read__analog
2909 00000001 = analog_mask_read__select__7___bit equ 1
2910 00fa 14bf          bsf     analog_mask_read__select__7___byte, analog_mask_read__select__7___bit
2911                    ; Recombine size1 = 0 || size2 = 0
2912                    ; line_number = 194
2913                    ; if _ansel@3 done
2914                    ; line_number = 196
2915                    ; if _ansel@4 start
2916                    ;info   196, 251
2917 00000091 = analog_mask_read__select__10___byte equ _ansel
2918 00000004 = analog_mask_read__select__10___bit equ 4
2919                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__10
2920                    ; 1TEST: Single test with code in skip slot
2921 00fb 1a11          btfsc   analog_mask_read__select__10___byte, analog_mask_read__select__10___bit
2922                    ; line_number = 197
2923                    ; analog@0 := _true
2924                    ;info   197, 252
2925 0000003f = analog_mask_read__select__9___byte equ analog_mask_read__analog
2926 00000000 = analog_mask_read__select__9___bit equ 0
2927 00fc 143f          bsf     analog_mask_read__select__9___byte, analog_mask_read__select__9___bit
2928                    ; Recombine size1 = 0 || size2 = 0
2929                    ; line_number = 196
2930                    ; if _ansel@4 done
2931                    ; line_number = 198
2932                    ; if _ansel@5 start
2933                    ;info   198, 253
2934 00000091 = analog_mask_read__select__12___byte equ _ansel
2935 00000005 = analog_mask_read__select__12___bit equ 5
2936                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__12
2937                    ; 1TEST: Single test with code in skip slot
2938 00fd 1a91          btfsc   analog_mask_read__select__12___byte, analog_mask_read__select__12___bit
2939                    ; line_number = 199
2940                    ; analog@2 := _true
2941                    ;info   199, 254
2942 0000003f = analog_mask_read__select__11___byte equ analog_mask_read__analog
2943 00000002 = analog_mask_read__select__11___bit equ 2
2944 00fe 153f          bsf     analog_mask_read__select__11___byte, analog_mask_read__select__11___bit
2945                    ; Recombine size1 = 0 || size2 = 0
2946                    ; line_number = 198
2947                    ; if _ansel@5 done
2948                    ; line_number = 200
2949                    ; if _ansel@6 start
2950                    ;info   200, 255
2951 00000091 = analog_mask_read__select__14___byte equ _ansel
2952 00000006 = analog_mask_read__select__14___bit equ 6
2953                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__14
2954                    ; 1TEST: Single test with code in skip slot
2955 00ff 1b11          btfsc   analog_mask_read__select__14___byte, analog_mask_read__select__14___bit
2956                    ; line_number = 201
2957                    ; analog@4 := _true
2958                    ;info   201, 256
2959 0000003f = analog_mask_read__select__13___byte equ analog_mask_read__analog
2960 00000004 = analog_mask_read__select__13___bit equ 4
2961 0100 163f          bsf     analog_mask_read__select__13___byte, analog_mask_read__select__13___bit
2962                    ; Recombine size1 = 0 || size2 = 0
2963                    ; line_number = 200
2964                    ; if _ansel@6 done
2965                    ; line_number = 202
2966                    ; if _ansel@7 start
2967                    ;info   202, 257
2968 00000091 = analog_mask_read__select__16___byte equ _ansel
2969 00000007 = analog_mask_read__select__16___bit equ 7
2970                    ; =>bit_code_emit@symbol(): sym=analog_mask_read__select__16
2971                    ; 1TEST: Single test with code in skip slot
2972 0101 1b91          btfsc   analog_mask_read__select__16___byte, analog_mask_read__select__16___bit
2973                    ; line_number = 203
2974                    ; analog@6 := _true
2975                    ;info   203, 258
2976 0000003f = analog_mask_read__select__15___byte equ analog_mask_read__analog
2977 00000006 = analog_mask_read__select__15___bit equ 6
2978 0102 173f          bsf     analog_mask_read__select__15___byte, analog_mask_read__select__15___bit
2979                    ; Recombine size1 = 0 || size2 = 0
2980                    ; line_number = 202
2981                    ; if _ansel@7 done
2982                    ; line_number = 204
2983                    ; return analog start
2984                    ; line_number = 204
2985                    ;info   204, 259
2986 0103 1283          bcf     __rp0___byte, __rp0___bit
2987 0104 083f          movf    analog_mask_read__analog,w
2988 0105 0008          return  
2989                    ; line_number = 204
2990                    ; return analog done
2991            
2992            
2993                    ; delay after procedure statements=non-uniform
2994            
2995            
2996            
2997            
2998                    ; line_number = 207
2999                    ;info   207, 262
3000                    ; procedure analog_mask_set
3001   0106 :   analog_mask_set:
3002                    ; Last argument is sitting in W; save into argument variable
3003 0106 00c0          movwf   analog_mask_set__analog
3004                    ; delay=4294967295
3005                    ; line_number = 208
3006                    ; argument analog byte
3007 00000040 = analog_mask_set__analog equ globals___0+32
3008                    ; line_number = 209
3009                    ;  returns_nothing
3010            
3011                    ; # This procedure will set the analog inputs to be equal to {analog}.
3012            
3013                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
3014                    ; line_number = 213
3015                    ;  if analog@0 start
3016                    ;info   213, 263
3017 00000040 = analog_mask_set__select__2___byte equ analog_mask_set__analog
3018 00000000 = analog_mask_set__select__2___bit equ 0
3019                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__2
3020                    ; 1TEST: Single test with code in skip slot
3021 0107 1840          btfsc   analog_mask_set__select__2___byte, analog_mask_set__select__2___bit
3022                    ; line_number = 214
3023                    ; _ansel@4 := _true
3024                    ;info   214, 264
3025 00000091 = analog_mask_set__select__1___byte equ _ansel
3026 00000004 = analog_mask_set__select__1___bit equ 4
3027 0108 1611          bsf     analog_mask_set__select__1___byte, analog_mask_set__select__1___bit
3028                    ; Recombine size1 = 0 || size2 = 0
3029                    ; line_number = 213
3030                    ;  if analog@0 done
3031                    ; line_number = 215
3032                    ; if analog@1 start
3033                    ;info   215, 265
3034 00000040 = analog_mask_set__select__4___byte equ analog_mask_set__analog
3035 00000001 = analog_mask_set__select__4___bit equ 1
3036                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__4
3037                    ; 1TEST: Single test with code in skip slot
3038 0109 18c0          btfsc   analog_mask_set__select__4___byte, analog_mask_set__select__4___bit
3039                    ; line_number = 216
3040                    ; _ansel@3 := _true
3041                    ;info   216, 266
3042 00000091 = analog_mask_set__select__3___byte equ _ansel
3043 00000003 = analog_mask_set__select__3___bit equ 3
3044 010a 1591          bsf     analog_mask_set__select__3___byte, analog_mask_set__select__3___bit
3045                    ; Recombine size1 = 0 || size2 = 0
3046                    ; line_number = 215
3047                    ; if analog@1 done
3048                    ; line_number = 217
3049                    ; if analog@2 start
3050                    ;info   217, 267
3051 00000040 = analog_mask_set__select__6___byte equ analog_mask_set__analog
3052 00000002 = analog_mask_set__select__6___bit equ 2
3053                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__6
3054                    ; 1TEST: Single test with code in skip slot
3055 010b 1940          btfsc   analog_mask_set__select__6___byte, analog_mask_set__select__6___bit
3056                    ; line_number = 218
3057                    ; _ansel@5 := _true
3058                    ;info   218, 268
3059 00000091 = analog_mask_set__select__5___byte equ _ansel
3060 00000005 = analog_mask_set__select__5___bit equ 5
3061 010c 1691          bsf     analog_mask_set__select__5___byte, analog_mask_set__select__5___bit
3062                    ; Recombine size1 = 0 || size2 = 0
3063                    ; line_number = 217
3064                    ; if analog@2 done
3065                    ; line_number = 219
3066                    ; if analog@3 start
3067                    ;info   219, 269
3068 00000040 = analog_mask_set__select__8___byte equ analog_mask_set__analog
3069 00000003 = analog_mask_set__select__8___bit equ 3
3070                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__8
3071                    ; 1TEST: Single test with code in skip slot
3072 010d 19c0          btfsc   analog_mask_set__select__8___byte, analog_mask_set__select__8___bit
3073                    ; line_number = 220
3074                    ; _ansel@0 := _true
3075                    ;info   220, 270
3076 00000091 = analog_mask_set__select__7___byte equ _ansel
3077 00000000 = analog_mask_set__select__7___bit equ 0
3078 010e 1411          bsf     analog_mask_set__select__7___byte, analog_mask_set__select__7___bit
3079                    ; Recombine size1 = 0 || size2 = 0
3080                    ; line_number = 219
3081                    ; if analog@3 done
3082                    ; line_number = 221
3083                    ; if analog@4 start
3084                    ;info   221, 271
3085 00000040 = analog_mask_set__select__10___byte equ analog_mask_set__analog
3086 00000004 = analog_mask_set__select__10___bit equ 4
3087                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__10
3088                    ; 1TEST: Single test with code in skip slot
3089 010f 1a40          btfsc   analog_mask_set__select__10___byte, analog_mask_set__select__10___bit
3090                    ; line_number = 222
3091                    ; _ansel@6 := _true
3092                    ;info   222, 272
3093 00000091 = analog_mask_set__select__9___byte equ _ansel
3094 00000006 = analog_mask_set__select__9___bit equ 6
3095 0110 1711          bsf     analog_mask_set__select__9___byte, analog_mask_set__select__9___bit
3096                    ; Recombine size1 = 0 || size2 = 0
3097                    ; line_number = 221
3098                    ; if analog@4 done
3099                    ; line_number = 223
3100                    ; if analog@5 start
3101                    ;info   223, 273
3102 00000040 = analog_mask_set__select__12___byte equ analog_mask_set__analog
3103 00000005 = analog_mask_set__select__12___bit equ 5
3104                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__12
3105                    ; 1TEST: Single test with code in skip slot
3106 0111 1ac0          btfsc   analog_mask_set__select__12___byte, analog_mask_set__select__12___bit
3107                    ; line_number = 224
3108                    ; _ansel@1 := _true
3109                    ;info   224, 274
3110 00000091 = analog_mask_set__select__11___byte equ _ansel
3111 00000001 = analog_mask_set__select__11___bit equ 1
3112 0112 1491          bsf     analog_mask_set__select__11___byte, analog_mask_set__select__11___bit
3113                    ; Recombine size1 = 0 || size2 = 0
3114                    ; line_number = 223
3115                    ; if analog@5 done
3116                    ; line_number = 225
3117                    ; if analog@6 start
3118                    ;info   225, 275
3119 00000040 = analog_mask_set__select__14___byte equ analog_mask_set__analog
3120 00000006 = analog_mask_set__select__14___bit equ 6
3121                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__14
3122                    ; 1TEST: Single test with code in skip slot
3123 0113 1b40          btfsc   analog_mask_set__select__14___byte, analog_mask_set__select__14___bit
3124                    ; line_number = 226
3125                    ; _ansel@7 := _true
3126                    ;info   226, 276
3127 00000091 = analog_mask_set__select__13___byte equ _ansel
3128 00000007 = analog_mask_set__select__13___bit equ 7
3129 0114 1791          bsf     analog_mask_set__select__13___byte, analog_mask_set__select__13___bit
3130                    ; Recombine size1 = 0 || size2 = 0
3131                    ; line_number = 225
3132                    ; if analog@6 done
3133                    ; line_number = 227
3134                    ; if analog@7 start
3135                    ;info   227, 277
3136 00000040 = analog_mask_set__select__16___byte equ analog_mask_set__analog
3137 00000007 = analog_mask_set__select__16___bit equ 7
3138                    ; =>bit_code_emit@symbol(): sym=analog_mask_set__select__16
3139                    ; 1TEST: Single test with code in skip slot
3140 0115 1bc0          btfsc   analog_mask_set__select__16___byte, analog_mask_set__select__16___bit
3141                    ; line_number = 228
3142                    ; _ansel@2 := _true
3143                    ;info   228, 278
3144 00000091 = analog_mask_set__select__15___byte equ _ansel
3145 00000002 = analog_mask_set__select__15___bit equ 2
3146 0116 1511          bsf     analog_mask_set__select__15___byte, analog_mask_set__select__15___bit
3147            
3148            
3149                    ; Recombine size1 = 0 || size2 = 0
3150                    ; line_number = 227
3151                    ; if analog@7 done
3152                    ; delay after procedure statements=non-uniform
3153                    ; Implied return
3154 0117 3400          retlw   0
3155            
3156            
3157            
3158            
3159                    ; line_number = 231
3160                    ;info   231, 280
3161                    ; procedure digital_read
3162   0118 :   digital_read:
3163                    ; arguments_none
3164                    ; line_number = 233
3165                    ;  returns byte
3166            
3167                    ; # This procedure will return the digital bits corresponding to
3168                    ; # the 8 digital data inputs.
3169            
3170                    ; line_number = 238
3171                    ;  local ra byte
3172 00000041 = digital_read__ra equ globals___0+33
3173                    ; line_number = 239
3174                    ;  local rc byte
3175 00000042 = digital_read__rc equ globals___0+34
3176                    ; line_number = 240
3177                    ;  local digital byte
3178 00000043 = digital_read__digital equ globals___0+35
3179            
3180                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
3181                    ; line_number = 242
3182                    ;  ra := _porta
3183                    ;info   242, 280
3184 0118 0805          movf    _porta,w
3185 0119 00c1          movwf   digital_read__ra
3186                    ; line_number = 243
3187                    ;  rc := _portc
3188                    ;info   243, 282
3189 011a 0807          movf    _portc,w
3190 011b 00c2          movwf   digital_read__rc
3191                    ; line_number = 244
3192                    ;  digital := 0
3193                    ;info   244, 284
3194 011c 01c3          clrf    digital_read__digital
3195            
3196                    ; line_number = 246
3197                    ;  if rc@io0_bit start
3198                    ;info   246, 285
3199 00000042 = digital_read__select__2___byte equ digital_read__rc
3200 00000000 = digital_read__select__2___bit equ 0
3201                    ; =>bit_code_emit@symbol(): sym=digital_read__select__2
3202                    ; 1TEST: Single test with code in skip slot
3203 011d 1842          btfsc   digital_read__select__2___byte, digital_read__select__2___bit
3204                    ; line_number = 247
3205                    ; digital@0 := _true
3206                    ;info   247, 286
3207 00000043 = digital_read__select__1___byte equ digital_read__digital
3208 00000000 = digital_read__select__1___bit equ 0
3209 011e 1443          bsf     digital_read__select__1___byte, digital_read__select__1___bit
3210                    ; Recombine size1 = 0 || size2 = 0
3211                    ; line_number = 246
3212                    ;  if rc@io0_bit done
3213                    ; line_number = 248
3214                    ; if ra@io1_bit start
3215                    ;info   248, 287
3216 00000041 = digital_read__select__4___byte equ digital_read__ra
3217 00000004 = digital_read__select__4___bit equ 4
3218                    ; =>bit_code_emit@symbol(): sym=digital_read__select__4
3219                    ; 1TEST: Single test with code in skip slot
3220 011f 1a41          btfsc   digital_read__select__4___byte, digital_read__select__4___bit
3221                    ; line_number = 249
3222                    ; digital@1 := _true
3223                    ;info   249, 288
3224 00000043 = digital_read__select__3___byte equ digital_read__digital
3225 00000001 = digital_read__select__3___bit equ 1
3226 0120 14c3          bsf     digital_read__select__3___byte, digital_read__select__3___bit
3227                    ; Recombine size1 = 0 || size2 = 0
3228                    ; line_number = 248
3229                    ; if ra@io1_bit done
3230                    ; line_number = 250
3231                    ; if rc@io2_bit start
3232                    ;info   250, 289
3233 00000042 = digital_read__select__6___byte equ digital_read__rc
3234 00000001 = digital_read__select__6___bit equ 1
3235                    ; =>bit_code_emit@symbol(): sym=digital_read__select__6
3236                    ; 1TEST: Single test with code in skip slot
3237 0121 18c2          btfsc   digital_read__select__6___byte, digital_read__select__6___bit
3238                    ; line_number = 251
3239                    ; digital@2 := _true
3240                    ;info   251, 290
3241 00000043 = digital_read__select__5___byte equ digital_read__digital
3242 00000002 = digital_read__select__5___bit equ 2
3243 0122 1543          bsf     digital_read__select__5___byte, digital_read__select__5___bit
3244                    ; Recombine size1 = 0 || size2 = 0
3245                    ; line_number = 250
3246                    ; if rc@io2_bit done
3247                    ; line_number = 252
3248                    ; if ra@io3_bit start
3249                    ;info   252, 291
3250 00000041 = digital_read__select__8___byte equ digital_read__ra
3251 00000000 = digital_read__select__8___bit equ 0
3252                    ; =>bit_code_emit@symbol(): sym=digital_read__select__8
3253                    ; 1TEST: Single test with code in skip slot
3254 0123 1841          btfsc   digital_read__select__8___byte, digital_read__select__8___bit
3255                    ; line_number = 253
3256                    ; digital@3 := _true
3257                    ;info   253, 292
3258 00000043 = digital_read__select__7___byte equ digital_read__digital
3259 00000003 = digital_read__select__7___bit equ 3
3260 0124 15c3          bsf     digital_read__select__7___byte, digital_read__select__7___bit
3261                    ; Recombine size1 = 0 || size2 = 0
3262                    ; line_number = 252
3263                    ; if ra@io3_bit done
3264                    ; line_number = 254
3265                    ; if rc@io4_bit start
3266                    ;info   254, 293
3267 00000042 = digital_read__select__10___byte equ digital_read__rc
3268 00000002 = digital_read__select__10___bit equ 2
3269                    ; =>bit_code_emit@symbol(): sym=digital_read__select__10
3270                    ; 1TEST: Single test with code in skip slot
3271 0125 1942          btfsc   digital_read__select__10___byte, digital_read__select__10___bit
3272                    ; line_number = 255
3273                    ; digital@4 := _true
3274                    ;info   255, 294
3275 00000043 = digital_read__select__9___byte equ digital_read__digital
3276 00000004 = digital_read__select__9___bit equ 4
3277 0126 1643          bsf     digital_read__select__9___byte, digital_read__select__9___bit
3278                    ; Recombine size1 = 0 || size2 = 0
3279                    ; line_number = 254
3280                    ; if rc@io4_bit done
3281                    ; line_number = 256
3282                    ; if ra@io5_bit start
3283                    ;info   256, 295
3284 00000041 = digital_read__select__12___byte equ digital_read__ra
3285 00000001 = digital_read__select__12___bit equ 1
3286                    ; =>bit_code_emit@symbol(): sym=digital_read__select__12
3287                    ; 1TEST: Single test with code in skip slot
3288 0127 18c1          btfsc   digital_read__select__12___byte, digital_read__select__12___bit
3289                    ; line_number = 257
3290                    ; digital@5 := _true
3291                    ;info   257, 296
3292 00000043 = digital_read__select__11___byte equ digital_read__digital
3293 00000005 = digital_read__select__11___bit equ 5
3294 0128 16c3          bsf     digital_read__select__11___byte, digital_read__select__11___bit
3295                    ; Recombine size1 = 0 || size2 = 0
3296                    ; line_number = 256
3297                    ; if ra@io5_bit done
3298                    ; line_number = 258
3299                    ; if rc@io6_bit start
3300                    ;info   258, 297
3301 00000042 = digital_read__select__14___byte equ digital_read__rc
3302 00000003 = digital_read__select__14___bit equ 3
3303                    ; =>bit_code_emit@symbol(): sym=digital_read__select__14
3304                    ; 1TEST: Single test with code in skip slot
3305 0129 19c2          btfsc   digital_read__select__14___byte, digital_read__select__14___bit
3306                    ; line_number = 259
3307                    ; digital@6 := _true
3308                    ;info   259, 298
3309 00000043 = digital_read__select__13___byte equ digital_read__digital
3310 00000006 = digital_read__select__13___bit equ 6
3311 012a 1743          bsf     digital_read__select__13___byte, digital_read__select__13___bit
3312                    ; Recombine size1 = 0 || size2 = 0
3313                    ; line_number = 258
3314                    ; if rc@io6_bit done
3315                    ; line_number = 260
3316                    ; if ra@io7_bit start
3317                    ;info   260, 299
3318 00000041 = digital_read__select__16___byte equ digital_read__ra
3319 00000002 = digital_read__select__16___bit equ 2
3320                    ; =>bit_code_emit@symbol(): sym=digital_read__select__16
3321                    ; 1TEST: Single test with code in skip slot
3322 012b 1941          btfsc   digital_read__select__16___byte, digital_read__select__16___bit
3323                    ; line_number = 261
3324                    ; digital@7 := _true
3325                    ;info   261, 300
3326 00000043 = digital_read__select__15___byte equ digital_read__digital
3327 00000007 = digital_read__select__15___bit equ 7
3328 012c 17c3          bsf     digital_read__select__15___byte, digital_read__select__15___bit
3329                    ; Recombine size1 = 0 || size2 = 0
3330                    ; line_number = 260
3331                    ; if ra@io7_bit done
3332                    ; line_number = 262
3333                    ; return digital start
3334                    ; line_number = 262
3335                    ;info   262, 301
3336 012d 0843          movf    digital_read__digital,w
3337 012e 0008          return  
3338                    ; line_number = 262
3339                    ; return digital done
3340            
3341            
3342                    ; delay after procedure statements=non-uniform
3343            
3344            
3345            
3346            
3347                    ; line_number = 265
3348                    ;info   265, 303
3349                    ; procedure digital_set
3350   012f :   digital_set:
3351                    ; Last argument is sitting in W; save into argument variable
3352 012f 00c6          movwf   digital_set__digital
3353                    ; delay=4294967295
3354                    ; line_number = 266
3355                    ; argument digital byte
3356 00000046 = digital_set__digital equ globals___0+38
3357                    ; line_number = 267
3358                    ;  returns_nothing
3359            
3360                    ; # This procedure will set the digital outputs to be equal to {digital}.
3361            
3362                    ; line_number = 271
3363                    ;  local ra byte
3364 00000044 = digital_set__ra equ globals___0+36
3365                    ; line_number = 272
3366                    ;  local rc byte
3367 00000045 = digital_set__rc equ globals___0+37
3368            
3369                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
3370                    ; line_number = 274
3371                    ;  ra := 0
3372                    ;info   274, 304
3373 0130 01c4          clrf    digital_set__ra
3374                    ; line_number = 275
3375                    ;  rc := 0
3376                    ;info   275, 305
3377 0131 01c5          clrf    digital_set__rc
3378                    ; line_number = 276
3379                    ;  if digital@0 start
3380                    ;info   276, 306
3381 00000046 = digital_set__select__2___byte equ digital_set__digital
3382 00000000 = digital_set__select__2___bit equ 0
3383                    ; =>bit_code_emit@symbol(): sym=digital_set__select__2
3384                    ; 1TEST: Single test with code in skip slot
3385 0132 1846          btfsc   digital_set__select__2___byte, digital_set__select__2___bit
3386                    ; line_number = 277
3387                    ; rc@io0_bit := _true
3388                    ;info   277, 307
3389 00000045 = digital_set__select__1___byte equ digital_set__rc
3390 00000000 = digital_set__select__1___bit equ 0
3391 0133 1445          bsf     digital_set__select__1___byte, digital_set__select__1___bit
3392                    ; Recombine size1 = 0 || size2 = 0
3393                    ; line_number = 276
3394                    ;  if digital@0 done
3395                    ; line_number = 278
3396                    ; if digital@1 start
3397                    ;info   278, 308
3398 00000046 = digital_set__select__4___byte equ digital_set__digital
3399 00000001 = digital_set__select__4___bit equ 1
3400                    ; =>bit_code_emit@symbol(): sym=digital_set__select__4
3401                    ; 1TEST: Single test with code in skip slot
3402 0134 18c6          btfsc   digital_set__select__4___byte, digital_set__select__4___bit
3403                    ; line_number = 279
3404                    ; ra@io1_bit := _true
3405                    ;info   279, 309
3406 00000044 = digital_set__select__3___byte equ digital_set__ra
3407 00000004 = digital_set__select__3___bit equ 4
3408 0135 1644          bsf     digital_set__select__3___byte, digital_set__select__3___bit
3409                    ; Recombine size1 = 0 || size2 = 0
3410                    ; line_number = 278
3411                    ; if digital@1 done
3412                    ; line_number = 280
3413                    ; if digital@2 start
3414                    ;info   280, 310
3415 00000046 = digital_set__select__6___byte equ digital_set__digital
3416 00000002 = digital_set__select__6___bit equ 2
3417                    ; =>bit_code_emit@symbol(): sym=digital_set__select__6
3418                    ; 1TEST: Single test with code in skip slot
3419 0136 1946          btfsc   digital_set__select__6___byte, digital_set__select__6___bit
3420                    ; line_number = 281
3421                    ; rc@io2_bit := _true
3422                    ;info   281, 311
3423 00000045 = digital_set__select__5___byte equ digital_set__rc
3424 00000001 = digital_set__select__5___bit equ 1
3425 0137 14c5          bsf     digital_set__select__5___byte, digital_set__select__5___bit
3426                    ; Recombine size1 = 0 || size2 = 0
3427                    ; line_number = 280
3428                    ; if digital@2 done
3429                    ; line_number = 282
3430                    ; if digital@3 start
3431                    ;info   282, 312
3432 00000046 = digital_set__select__8___byte equ digital_set__digital
3433 00000003 = digital_set__select__8___bit equ 3
3434                    ; =>bit_code_emit@symbol(): sym=digital_set__select__8
3435                    ; 1TEST: Single test with code in skip slot
3436 0138 19c6          btfsc   digital_set__select__8___byte, digital_set__select__8___bit
3437                    ; line_number = 283
3438                    ; ra@io3_bit := _true
3439                    ;info   283, 313
3440 00000044 = digital_set__select__7___byte equ digital_set__ra
3441 00000000 = digital_set__select__7___bit equ 0
3442 0139 1444          bsf     digital_set__select__7___byte, digital_set__select__7___bit
3443                    ; Recombine size1 = 0 || size2 = 0
3444                    ; line_number = 282
3445                    ; if digital@3 done
3446                    ; line_number = 284
3447                    ; if digital@4 start
3448                    ;info   284, 314
3449 00000046 = digital_set__select__10___byte equ digital_set__digital
3450 00000004 = digital_set__select__10___bit equ 4
3451                    ; =>bit_code_emit@symbol(): sym=digital_set__select__10
3452                    ; 1TEST: Single test with code in skip slot
3453 013a 1a46          btfsc   digital_set__select__10___byte, digital_set__select__10___bit
3454                    ; line_number = 285
3455                    ; rc@io4_bit := _true
3456                    ;info   285, 315
3457 00000045 = digital_set__select__9___byte equ digital_set__rc
3458 00000002 = digital_set__select__9___bit equ 2
3459 013b 1545          bsf     digital_set__select__9___byte, digital_set__select__9___bit
3460                    ; Recombine size1 = 0 || size2 = 0
3461                    ; line_number = 284
3462                    ; if digital@4 done
3463                    ; line_number = 286
3464                    ; if digital@5 start
3465                    ;info   286, 316
3466 00000046 = digital_set__select__12___byte equ digital_set__digital
3467 00000005 = digital_set__select__12___bit equ 5
3468                    ; =>bit_code_emit@symbol(): sym=digital_set__select__12
3469                    ; 1TEST: Single test with code in skip slot
3470 013c 1ac6          btfsc   digital_set__select__12___byte, digital_set__select__12___bit
3471                    ; line_number = 287
3472                    ; ra@io5_bit := _true
3473                    ;info   287, 317
3474 00000044 = digital_set__select__11___byte equ digital_set__ra
3475 00000001 = digital_set__select__11___bit equ 1
3476 013d 14c4          bsf     digital_set__select__11___byte, digital_set__select__11___bit
3477                    ; Recombine size1 = 0 || size2 = 0
3478                    ; line_number = 286
3479                    ; if digital@5 done
3480                    ; line_number = 288
3481                    ; if digital@6 start
3482                    ;info   288, 318
3483 00000046 = digital_set__select__14___byte equ digital_set__digital
3484 00000006 = digital_set__select__14___bit equ 6
3485                    ; =>bit_code_emit@symbol(): sym=digital_set__select__14
3486                    ; 1TEST: Single test with code in skip slot
3487 013e 1b46          btfsc   digital_set__select__14___byte, digital_set__select__14___bit
3488                    ; line_number = 289
3489                    ; rc@io6_bit := _true
3490                    ;info   289, 319
3491 00000045 = digital_set__select__13___byte equ digital_set__rc
3492 00000003 = digital_set__select__13___bit equ 3
3493 013f 15c5          bsf     digital_set__select__13___byte, digital_set__select__13___bit
3494                    ; Recombine size1 = 0 || size2 = 0
3495                    ; line_number = 288
3496                    ; if digital@6 done
3497                    ; line_number = 290
3498                    ; if digital@7 start
3499                    ;info   290, 320
3500 00000046 = digital_set__select__16___byte equ digital_set__digital
3501 00000007 = digital_set__select__16___bit equ 7
3502                    ; =>bit_code_emit@symbol(): sym=digital_set__select__16
3503                    ; 1TEST: Single test with code in skip slot
3504 0140 1bc6          btfsc   digital_set__select__16___byte, digital_set__select__16___bit
3505                    ; line_number = 291
3506                    ; ra@io7_bit := _true
3507                    ;info   291, 321
3508 00000044 = digital_set__select__15___byte equ digital_set__ra
3509 00000002 = digital_set__select__15___bit equ 2
3510 0141 1544          bsf     digital_set__select__15___byte, digital_set__select__15___bit
3511                    ; Recombine size1 = 0 || size2 = 0
3512                    ; line_number = 290
3513                    ; if digital@7 done
3514                    ; line_number = 292
3515                    ; _porta := ra
3516                    ;info   292, 322
3517 0142 0844          movf    digital_set__ra,w
3518 0143 0085          movwf   _porta
3519                    ; line_number = 293
3520                    ;  _portc := rc
3521                    ;info   293, 324
3522 0144 0845          movf    digital_set__rc,w
3523 0145 0087          movwf   _portc
3524            
3525            
3526                    ; delay after procedure statements=non-uniform
3527                    ; Implied return
3528 0146 3400          retlw   0
3529            
3530            
3531            
3532            
3533                    ; line_number = 296
3534                    ;info   296, 327
3535                    ; procedure direction_read
3536   0147 :   direction_read:
3537                    ; arguments_none
3538                    ; line_number = 298
3539                    ;  returns byte
3540            
3541                    ; # This procedure will return the digital bits corresponding to
3542                    ; # the 8 digital data inputs.
3543            
3544                    ; line_number = 303
3545                    ;  local trisa byte
3546 00000047 = direction_read__trisa equ globals___0+39
3547                    ; line_number = 304
3548                    ;  local trisc byte
3549 00000048 = direction_read__trisc equ globals___0+40
3550                    ; line_number = 305
3551                    ;  local direction byte
3552 00000049 = direction_read__direction equ globals___0+41
3553            
3554                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
3555                    ; line_number = 307
3556                    ;  direction := 0
3557                    ;info   307, 327
3558 0147 01c9          clrf    direction_read__direction
3559                    ; # Get all data into data bank 0:
3560                    ; line_number = 309
3561                    ;  trisa := _trisa
3562                    ;info   309, 328
3563 0148 1683          bsf     __rp0___byte, __rp0___bit
3564 0149 0805          movf    _trisa,w
3565 014a 1283          bcf     __rp0___byte, __rp0___bit
3566 014b 00c7          movwf   direction_read__trisa
3567                    ; line_number = 310
3568                    ;  trisc := _trisc
3569                    ;info   310, 332
3570 014c 1683          bsf     __rp0___byte, __rp0___bit
3571 014d 0807          movf    _trisc,w
3572 014e 1283          bcf     __rp0___byte, __rp0___bit
3573 014f 00c8          movwf   direction_read__trisc
3574            
3575                    ; line_number = 312
3576                    ;  if trisc@io0_bit start
3577                    ;info   312, 336
3578 00000048 = direction_read__select__2___byte equ direction_read__trisc
3579 00000000 = direction_read__select__2___bit equ 0
3580                    ; =>bit_code_emit@symbol(): sym=direction_read__select__2
3581                    ; 1TEST: Single test with code in skip slot
3582 0150 1848          btfsc   direction_read__select__2___byte, direction_read__select__2___bit
3583                    ; line_number = 313
3584                    ; direction@0 := _true
3585                    ;info   313, 337
3586 00000049 = direction_read__select__1___byte equ direction_read__direction
3587 00000000 = direction_read__select__1___bit equ 0
3588 0151 1449          bsf     direction_read__select__1___byte, direction_read__select__1___bit
3589                    ; Recombine size1 = 0 || size2 = 0
3590                    ; line_number = 312
3591                    ;  if trisc@io0_bit done
3592                    ; line_number = 314
3593                    ; if trisa@io1_bit start
3594                    ;info   314, 338
3595 00000047 = direction_read__select__4___byte equ direction_read__trisa
3596 00000004 = direction_read__select__4___bit equ 4
3597                    ; =>bit_code_emit@symbol(): sym=direction_read__select__4
3598                    ; 1TEST: Single test with code in skip slot
3599 0152 1a47          btfsc   direction_read__select__4___byte, direction_read__select__4___bit
3600                    ; line_number = 315
3601                    ; direction@1 := _true
3602                    ;info   315, 339
3603 00000049 = direction_read__select__3___byte equ direction_read__direction
3604 00000001 = direction_read__select__3___bit equ 1
3605 0153 14c9          bsf     direction_read__select__3___byte, direction_read__select__3___bit
3606                    ; Recombine size1 = 0 || size2 = 0
3607                    ; line_number = 314
3608                    ; if trisa@io1_bit done
3609                    ; line_number = 316
3610                    ; if trisc@io2_bit start
3611                    ;info   316, 340
3612 00000048 = direction_read__select__6___byte equ direction_read__trisc
3613 00000001 = direction_read__select__6___bit equ 1
3614                    ; =>bit_code_emit@symbol(): sym=direction_read__select__6
3615                    ; 1TEST: Single test with code in skip slot
3616 0154 18c8          btfsc   direction_read__select__6___byte, direction_read__select__6___bit
3617                    ; line_number = 317
3618                    ; direction@2 := _true
3619                    ;info   317, 341
3620 00000049 = direction_read__select__5___byte equ direction_read__direction
3621 00000002 = direction_read__select__5___bit equ 2
3622 0155 1549          bsf     direction_read__select__5___byte, direction_read__select__5___bit
3623                    ; Recombine size1 = 0 || size2 = 0
3624                    ; line_number = 316
3625                    ; if trisc@io2_bit done
3626                    ; line_number = 318
3627                    ; if trisa@io3_bit start
3628                    ;info   318, 342
3629 00000047 = direction_read__select__8___byte equ direction_read__trisa
3630 00000000 = direction_read__select__8___bit equ 0
3631                    ; =>bit_code_emit@symbol(): sym=direction_read__select__8
3632                    ; 1TEST: Single test with code in skip slot
3633 0156 1847          btfsc   direction_read__select__8___byte, direction_read__select__8___bit
3634                    ; line_number = 319
3635                    ; direction@3 := _true
3636                    ;info   319, 343
3637 00000049 = direction_read__select__7___byte equ direction_read__direction
3638 00000003 = direction_read__select__7___bit equ 3
3639 0157 15c9          bsf     direction_read__select__7___byte, direction_read__select__7___bit
3640                    ; Recombine size1 = 0 || size2 = 0
3641                    ; line_number = 318
3642                    ; if trisa@io3_bit done
3643                    ; line_number = 320
3644                    ; if trisc@io4_bit start
3645                    ;info   320, 344
3646 00000048 = direction_read__select__10___byte equ direction_read__trisc
3647 00000002 = direction_read__select__10___bit equ 2
3648                    ; =>bit_code_emit@symbol(): sym=direction_read__select__10
3649                    ; 1TEST: Single test with code in skip slot
3650 0158 1948          btfsc   direction_read__select__10___byte, direction_read__select__10___bit
3651                    ; line_number = 321
3652                    ; direction@4 := _true
3653                    ;info   321, 345
3654 00000049 = direction_read__select__9___byte equ direction_read__direction
3655 00000004 = direction_read__select__9___bit equ 4
3656 0159 1649          bsf     direction_read__select__9___byte, direction_read__select__9___bit
3657                    ; Recombine size1 = 0 || size2 = 0
3658                    ; line_number = 320
3659                    ; if trisc@io4_bit done
3660                    ; line_number = 322
3661                    ; if trisa@io5_bit start
3662                    ;info   322, 346
3663 00000047 = direction_read__select__12___byte equ direction_read__trisa
3664 00000001 = direction_read__select__12___bit equ 1
3665                    ; =>bit_code_emit@symbol(): sym=direction_read__select__12
3666                    ; 1TEST: Single test with code in skip slot
3667 015a 18c7          btfsc   direction_read__select__12___byte, direction_read__select__12___bit
3668                    ; line_number = 323
3669                    ; direction@5 := _true
3670                    ;info   323, 347
3671 00000049 = direction_read__select__11___byte equ direction_read__direction
3672 00000005 = direction_read__select__11___bit equ 5
3673 015b 16c9          bsf     direction_read__select__11___byte, direction_read__select__11___bit
3674                    ; Recombine size1 = 0 || size2 = 0
3675                    ; line_number = 322
3676                    ; if trisa@io5_bit done
3677                    ; line_number = 324
3678                    ; if trisc@io6_bit start
3679                    ;info   324, 348
3680 00000048 = direction_read__select__14___byte equ direction_read__trisc
3681 00000003 = direction_read__select__14___bit equ 3
3682                    ; =>bit_code_emit@symbol(): sym=direction_read__select__14
3683                    ; 1TEST: Single test with code in skip slot
3684 015c 19c8          btfsc   direction_read__select__14___byte, direction_read__select__14___bit
3685                    ; line_number = 325
3686                    ; direction@6 := _true
3687                    ;info   325, 349
3688 00000049 = direction_read__select__13___byte equ direction_read__direction
3689 00000006 = direction_read__select__13___bit equ 6
3690 015d 1749          bsf     direction_read__select__13___byte, direction_read__select__13___bit
3691                    ; Recombine size1 = 0 || size2 = 0
3692                    ; line_number = 324
3693                    ; if trisc@io6_bit done
3694                    ; line_number = 326
3695                    ; if trisa@io7_bit start
3696                    ;info   326, 350
3697 00000047 = direction_read__select__16___byte equ direction_read__trisa
3698 00000002 = direction_read__select__16___bit equ 2
3699                    ; =>bit_code_emit@symbol(): sym=direction_read__select__16
3700                    ; 1TEST: Single test with code in skip slot
3701 015e 1947          btfsc   direction_read__select__16___byte, direction_read__select__16___bit
3702                    ; line_number = 327
3703                    ; direction@7 := _true
3704                    ;info   327, 351
3705 00000049 = direction_read__select__15___byte equ direction_read__direction
3706 00000007 = direction_read__select__15___bit equ 7
3707 015f 17c9          bsf     direction_read__select__15___byte, direction_read__select__15___bit
3708                    ; Recombine size1 = 0 || size2 = 0
3709                    ; line_number = 326
3710                    ; if trisa@io7_bit done
3711                    ; line_number = 328
3712                    ; return direction start
3713                    ; line_number = 328
3714                    ;info   328, 352
3715 0160 0849          movf    direction_read__direction,w
3716 0161 0008          return  
3717                    ; line_number = 328
3718                    ; return direction done
3719            
3720            
3721                    ; delay after procedure statements=non-uniform
3722            
3723            
3724            
3725            
3726                    ; line_number = 331
3727                    ;info   331, 354
3728                    ; procedure direction_set
3729   0162 :   direction_set:
3730                    ; Last argument is sitting in W; save into argument variable
3731 0162 00cc          movwf   direction_set__direction
3732                    ; delay=4294967295
3733                    ; line_number = 332
3734                    ; argument direction byte
3735 0000004c = direction_set__direction equ globals___0+44
3736                    ; line_number = 333
3737                    ;  returns_nothing
3738            
3739                    ; # This procedure will set the direction outputs to be equal to {direction}.
3740            
3741                    ; line_number = 337
3742                    ;  local trisa byte
3743 0000004a = direction_set__trisa equ globals___0+42
3744                    ; line_number = 338
3745                    ;  local trisc byte
3746 0000004b = direction_set__trisc equ globals___0+43
3747            
3748                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
3749                    ; line_number = 340
3750                    ;  trisa := 0xc0
3751                    ;info   340, 355
3752 0163 30c0          movlw   192
3753 0164 00ca          movwf   direction_set__trisa
3754                    ; line_number = 341
3755                    ;  trisc := 0xc0
3756                    ;info   341, 357
3757 0165 30c0          movlw   192
3758 0166 00cb          movwf   direction_set__trisc
3759                    ; line_number = 342
3760                    ;  if direction@0 start
3761                    ;info   342, 359
3762 0000004c = direction_set__select__2___byte equ direction_set__direction
3763 00000000 = direction_set__select__2___bit equ 0
3764                    ; =>bit_code_emit@symbol(): sym=direction_set__select__2
3765                    ; 1TEST: Single test with code in skip slot
3766 0167 184c          btfsc   direction_set__select__2___byte, direction_set__select__2___bit
3767                    ; line_number = 343
3768                    ; trisc@io0_bit := _true
3769                    ;info   343, 360
3770 0000004b = direction_set__select__1___byte equ direction_set__trisc
3771 00000000 = direction_set__select__1___bit equ 0
3772 0168 144b          bsf     direction_set__select__1___byte, direction_set__select__1___bit
3773                    ; Recombine size1 = 0 || size2 = 0
3774                    ; line_number = 342
3775                    ;  if direction@0 done
3776                    ; line_number = 344
3777                    ; if direction@1 start
3778                    ;info   344, 361
3779 0000004c = direction_set__select__4___byte equ direction_set__direction
3780 00000001 = direction_set__select__4___bit equ 1
3781                    ; =>bit_code_emit@symbol(): sym=direction_set__select__4
3782                    ; 1TEST: Single test with code in skip slot
3783 0169 18cc          btfsc   direction_set__select__4___byte, direction_set__select__4___bit
3784                    ; line_number = 345
3785                    ; trisa@io1_bit := _true
3786                    ;info   345, 362
3787 0000004a = direction_set__select__3___byte equ direction_set__trisa
3788 00000004 = direction_set__select__3___bit equ 4
3789 016a 164a          bsf     direction_set__select__3___byte, direction_set__select__3___bit
3790                    ; Recombine size1 = 0 || size2 = 0
3791                    ; line_number = 344
3792                    ; if direction@1 done
3793                    ; line_number = 346
3794                    ; if direction@2 start
3795                    ;info   346, 363
3796 0000004c = direction_set__select__6___byte equ direction_set__direction
3797 00000002 = direction_set__select__6___bit equ 2
3798                    ; =>bit_code_emit@symbol(): sym=direction_set__select__6
3799                    ; 1TEST: Single test with code in skip slot
3800 016b 194c          btfsc   direction_set__select__6___byte, direction_set__select__6___bit
3801                    ; line_number = 347
3802                    ; trisc@io2_bit := _true
3803                    ;info   347, 364
3804 0000004b = direction_set__select__5___byte equ direction_set__trisc
3805 00000001 = direction_set__select__5___bit equ 1
3806 016c 14cb          bsf     direction_set__select__5___byte, direction_set__select__5___bit
3807                    ; Recombine size1 = 0 || size2 = 0
3808                    ; line_number = 346
3809                    ; if direction@2 done
3810                    ; line_number = 348
3811                    ; if direction@3 start
3812                    ;info   348, 365
3813 0000004c = direction_set__select__8___byte equ direction_set__direction
3814 00000003 = direction_set__select__8___bit equ 3
3815                    ; =>bit_code_emit@symbol(): sym=direction_set__select__8
3816                    ; 1TEST: Single test with code in skip slot
3817 016d 19cc          btfsc   direction_set__select__8___byte, direction_set__select__8___bit
3818                    ; line_number = 349
3819                    ; trisa@io3_bit := _true
3820                    ;info   349, 366
3821 0000004a = direction_set__select__7___byte equ direction_set__trisa
3822 00000000 = direction_set__select__7___bit equ 0
3823 016e 144a          bsf     direction_set__select__7___byte, direction_set__select__7___bit
3824                    ; Recombine size1 = 0 || size2 = 0
3825                    ; line_number = 348
3826                    ; if direction@3 done
3827                    ; line_number = 350
3828                    ; if direction@4 start
3829                    ;info   350, 367
3830 0000004c = direction_set__select__10___byte equ direction_set__direction
3831 00000004 = direction_set__select__10___bit equ 4
3832                    ; =>bit_code_emit@symbol(): sym=direction_set__select__10
3833                    ; 1TEST: Single test with code in skip slot
3834 016f 1a4c          btfsc   direction_set__select__10___byte, direction_set__select__10___bit
3835                    ; line_number = 351
3836                    ; trisc@io4_bit := _true
3837                    ;info   351, 368
3838 0000004b = direction_set__select__9___byte equ direction_set__trisc
3839 00000002 = direction_set__select__9___bit equ 2
3840 0170 154b          bsf     direction_set__select__9___byte, direction_set__select__9___bit
3841                    ; Recombine size1 = 0 || size2 = 0
3842                    ; line_number = 350
3843                    ; if direction@4 done
3844                    ; line_number = 352
3845                    ; if direction@5 start
3846                    ;info   352, 369
3847 0000004c = direction_set__select__12___byte equ direction_set__direction
3848 00000005 = direction_set__select__12___bit equ 5
3849                    ; =>bit_code_emit@symbol(): sym=direction_set__select__12
3850                    ; 1TEST: Single test with code in skip slot
3851 0171 1acc          btfsc   direction_set__select__12___byte, direction_set__select__12___bit
3852                    ; line_number = 353
3853                    ; trisa@io5_bit := _true
3854                    ;info   353, 370
3855 0000004a = direction_set__select__11___byte equ direction_set__trisa
3856 00000001 = direction_set__select__11___bit equ 1
3857 0172 14ca          bsf     direction_set__select__11___byte, direction_set__select__11___bit
3858                    ; Recombine size1 = 0 || size2 = 0
3859                    ; line_number = 352
3860                    ; if direction@5 done
3861                    ; line_number = 354
3862                    ; if direction@6 start
3863                    ;info   354, 371
3864 0000004c = direction_set__select__14___byte equ direction_set__direction
3865 00000006 = direction_set__select__14___bit equ 6
3866                    ; =>bit_code_emit@symbol(): sym=direction_set__select__14
3867                    ; 1TEST: Single test with code in skip slot
3868 0173 1b4c          btfsc   direction_set__select__14___byte, direction_set__select__14___bit
3869                    ; line_number = 355
3870                    ; trisc@io6_bit := _true
3871                    ;info   355, 372
3872 0000004b = direction_set__select__13___byte equ direction_set__trisc
3873 00000003 = direction_set__select__13___bit equ 3
3874 0174 15cb          bsf     direction_set__select__13___byte, direction_set__select__13___bit
3875                    ; Recombine size1 = 0 || size2 = 0
3876                    ; line_number = 354
3877                    ; if direction@6 done
3878                    ; line_number = 356
3879                    ; if direction@7 start
3880                    ;info   356, 373
3881 0000004c = direction_set__select__16___byte equ direction_set__direction
3882 00000007 = direction_set__select__16___bit equ 7
3883                    ; =>bit_code_emit@symbol(): sym=direction_set__select__16
3884                    ; 1TEST: Single test with code in skip slot
3885 0175 1bcc          btfsc   direction_set__select__16___byte, direction_set__select__16___bit
3886                    ; line_number = 357
3887                    ; trisa@io7_bit := _true
3888                    ;info   357, 374
3889 0000004a = direction_set__select__15___byte equ direction_set__trisa
3890 00000002 = direction_set__select__15___bit equ 2
3891 0176 154a          bsf     direction_set__select__15___byte, direction_set__select__15___bit
3892                    ; Recombine size1 = 0 || size2 = 0
3893                    ; line_number = 356
3894                    ; if direction@7 done
3895                    ; line_number = 358
3896                    ; trisc@rx_bit := _true
3897                    ;info   358, 375
3898 0000004b = direction_set__select__17___byte equ direction_set__trisc
3899 00000005 = direction_set__select__17___bit equ 5
3900 0177 16cb          bsf     direction_set__select__17___byte, direction_set__select__17___bit
3901                    ; line_number = 359
3902                    ;  trisc@tx_bit := _true
3903                    ;info   359, 376
3904 0000004b = direction_set__select__18___byte equ direction_set__trisc
3905 00000004 = direction_set__select__18___bit equ 4
3906 0178 164b          bsf     direction_set__select__18___byte, direction_set__select__18___bit
3907                    ; line_number = 360
3908                    ;  _trisa := trisa
3909                    ;info   360, 377
3910 0179 084a          movf    direction_set__trisa,w
3911 017a 1683          bsf     __rp0___byte, __rp0___bit
3912 017b 0085          movwf   _trisa
3913                    ; line_number = 361
3914                    ;  _trisc := trisc
3915                    ;info   361, 380
3916 017c 1283          bcf     __rp0___byte, __rp0___bit
3917 017d 084b          movf    direction_set__trisc,w
3918 017e 1683          bsf     __rp0___byte, __rp0___bit
3919 017f 0087          movwf   _trisc
3920            
3921                    ; delay after procedure statements=non-uniform
3922 0180 1283          bcf     __rp0___byte, __rp0___bit
3923                    ; Implied return
3924 0181 3400          retlw   0
3925            
3926            
3927            
3928            
3929            
3930                    ; Appending 8 delayed procedures to code bank 0
3931                    ; buffer = 'rb2bus'
3932                    ; line_number = 57
3933                    ;info   57, 386
3934                    ; procedure rb2bus_select_wait
3935   0182 :   rb2bus_select_wait:
3936                    ; arguments_none
3937                    ; line_number = 59
3938                    ;  returns_nothing
3939            
3940                    ; # This procedure will in an infinite loop until the select
3941                    ; # address matches {rb2bus_address}.  {rb2bus_address} is
3942                    ; # typically set in the {rb2bus_initialize} procedure.
3943                    ; #
3944                    ; # This module will repeatably call the {wait} procedure until
3945                    ; # it is properly selected.
3946            
3947                    ; line_number = 68
3948                    ;  local value byte
3949 00000022 = rb2bus_select_wait__value equ globals___0+2
3950                    ; line_number = 69
3951                    ;  local address_bit bit
3952 0000006f = rb2bus_select_wait__address_bit___byte equ globals___0+79
3953 00000002 = rb2bus_select_wait__address_bit___bit equ 2
3954            
3955                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
3956                    ; line_number = 71
3957                    ;  rb2bus_error := _false
3958                    ;info   71, 386
3959 0182 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
3960                    ; line_number = 72
3961                    ;  while !rb2bus_selected start
3962   0183 :   rb2bus_select_wait__1:
3963                    ;info   72, 387
3964                    ; =>bit_code_emit@symbol(): sym=rb2bus_selected
3965                    ; No 1TEST: true.size=0 false.size=25
3966                    ; No 2TEST: true.size=0 false.size=25
3967                    ; 1GOTO: Single test with GOTO
3968 0183 186f          btfsc   rb2bus_selected___byte, rb2bus_selected___bit
3969 0184 299e          goto    rb2bus_select_wait__6
3970                    ; line_number = 73
3971                    ; _adden := _true
3972                    ;info   73, 389
3973 0185 1597          bsf     _adden___byte, _adden___bit
3974                    ; # Wait for a byte to arrive.
3975                    ; line_number = 75
3976                    ;  while !_rcif start
3977   0186 :   rb2bus_select_wait__2:
3978                    ;info   75, 390
3979                    ; =>bit_code_emit@symbol(): sym=_rcif
3980                    ; No 1TEST: true.size=0 false.size=2
3981                    ; No 2TEST: true.size=0 false.size=2
3982                    ; 1GOTO: Single test with GOTO
3983 0186 1a8c          btfsc   _rcif___byte, _rcif___bit
3984 0187 298a          goto    rb2bus_select_wait__3
3985                    ; line_number = 76
3986                    ; call wait()
3987                    ;info   76, 392
3988 0188 20d7          call    wait
3989            
3990 0189 2986          goto    rb2bus_select_wait__2
3991   018a :   rb2bus_select_wait__3:
3992                    ; Recombine size1 = 0 || size2 = 0
3993                    ; line_number = 75
3994                    ;  while !_rcif done
3995                    ; # Capture the received value:
3996                    ; line_number = 79
3997                    ;  address_bit := _false
3998                    ;info   79, 394
3999 018a 116f          bcf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4000                    ; line_number = 80
4001                    ;  if _rx9d start
4002                    ;info   80, 395
4003                    ; =>bit_code_emit@symbol(): sym=_rx9d
4004                    ; 1TEST: Single test with code in skip slot
4005 018b 1817          btfsc   _rx9d___byte, _rx9d___bit
4006                    ; line_number = 81
4007                    ; address_bit := _true
4008                    ;info   81, 396
4009 018c 156f          bsf     rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4010                    ; Recombine size1 = 0 || size2 = 0
4011                    ; line_number = 80
4012                    ;  if _rx9d done
4013                    ; line_number = 82
4014                    ; value := _rcreg
4015                    ;info   82, 397
4016 018d 0814          movf    _rcreg,w
4017 018e 00a2          movwf   rb2bus_select_wait__value
4018            
4019                    ; # Clear any UART errors by toggling {_cren}:
4020                    ; line_number = 85
4021                    ;  if _oerr start
4022                    ;info   85, 399
4023                    ; =>bit_code_emit@symbol(): sym=_oerr
4024                    ; 1TEST: Single test with code in skip slot
4025 018f 1897          btfsc   _oerr___byte, _oerr___bit
4026                    ; line_number = 86
4027                    ; _cren := _false
4028                    ;info   86, 400
4029 0190 1217          bcf     _cren___byte, _cren___bit
4030                    ; Recombine size1 = 0 || size2 = 0
4031                    ; line_number = 85
4032                    ;  if _oerr done
4033                    ; line_number = 87
4034                    ; if _ferr start
4035                    ;info   87, 401
4036                    ; =>bit_code_emit@symbol(): sym=_ferr
4037                    ; 1TEST: Single test with code in skip slot
4038 0191 1917          btfsc   _ferr___byte, _ferr___bit
4039                    ; line_number = 88
4040                    ; _cren := _false
4041                    ;info   88, 402
4042 0192 1217          bcf     _cren___byte, _cren___bit
4043                    ; Recombine size1 = 0 || size2 = 0
4044                    ; line_number = 87
4045                    ; if _ferr done
4046                    ; line_number = 89
4047                    ; _cren := _true
4048                    ;info   89, 403
4049 0193 1617          bsf     _cren___byte, _cren___bit
4050            
4051                    ; line_number = 91
4052                    ;  if address_bit start
4053                    ;info   91, 404
4054                    ; =>bit_code_emit@symbol(): sym=rb2bus_select_wait__address_bit
4055                    ; No 1TEST: true.size=7 false.size=0
4056                    ; No 2TEST: true.size=7 false.size=0
4057                    ; 1GOTO: Single test with GOTO
4058 0194 1d6f          btfss   rb2bus_select_wait__address_bit___byte, rb2bus_select_wait__address_bit___bit
4059 0195 299d          goto    rb2bus_select_wait__5
4060                    ; line_number = 92
4061                    ; if value = rb2bus_address start
4062                    ;info   92, 406
4063                    ; Left minus Right
4064 0196 0820          movf    rb2bus_address,w
4065 0197 0222          subwf   rb2bus_select_wait__value,w
4066                    ; =>bit_code_emit@symbol(): sym=__z
4067                    ; No 1TEST: true.size=3 false.size=0
4068                    ; No 2TEST: true.size=3 false.size=0
4069                    ; 1GOTO: Single test with GOTO
4070 0198 1d03          btfss   __z___byte, __z___bit
4071 0199 299d          goto    rb2bus_select_wait__4
4072                    ; line_number = 93
4073                    ; rb2bus_selected := _true
4074                    ;info   93, 410
4075 019a 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
4076                    ; line_number = 94
4077                    ;  call rb2bus_byte_put(rb2_ok)
4078                    ;info   94, 411
4079 019b 30a5          movlw   165
4080 019c 21c3          call    rb2bus_byte_put
4081            
4082            
4083                    ; Recombine size1 = 0 || size2 = 0
4084   019d :   rb2bus_select_wait__4:
4085                    ; line_number = 92
4086                    ; if value = rb2bus_address done
4087                    ; Recombine size1 = 0 || size2 = 0
4088   019d :   rb2bus_select_wait__5:
4089                    ; line_number = 91
4090                    ;  if address_bit done
4091 019d 2983          goto    rb2bus_select_wait__1
4092   019e :   rb2bus_select_wait__6:
4093                    ; Recombine size1 = 0 || size2 = 0
4094                    ; line_number = 72
4095                    ;  while !rb2bus_selected done
4096                    ; delay after procedure statements=non-uniform
4097                    ; Implied return
4098 019e 3400          retlw   0
4099            
4100            
4101            
4102            
4103                    ; line_number = 97
4104                    ;info   97, 415
4105                    ; procedure rb2bus_deselect
4106   019f :   rb2bus_deselect:
4107                    ; arguments_none
4108                    ; line_number = 99
4109                    ;  returns_nothing
4110            
4111                    ; # This procedure forces this module into the deselected state until
4112                    ; # it is reselected by some master module on the bus.
4113            
4114                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
4115                    ; line_number = 104
4116                    ;  rb2bus_selected := _false
4117                    ;info   104, 415
4118 019f 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4119            
4120            
4121                    ; delay after procedure statements=non-uniform
4122                    ; Implied return
4123 01a0 3400          retlw   0
4124            
4125            
4126            
4127            
4128                    ; line_number = 107
4129                    ;info   107, 417
4130                    ; procedure rb2bus_byte_get
4131   01a1 :   rb2bus_byte_get:
4132                    ; arguments_none
4133                    ; line_number = 109
4134                    ;  returns byte
4135            
4136                    ; # This procedure will return the next byte received from the bus.
4137                    ; # The address (9th) bit is stored in the global {is_address}.
4138                    ; #
4139                    ; # If {rb2bus_error} is set, 0 is returned.  Otherwise, the {wait}
4140                    ; # procedure is repeatably called until a command byte is successfully
4141                    ; # received.  If an module select byte comes in, we enter a bus
4142                    ; # error condition by setting {rb2bus_error} and returning 0.
4143            
4144                    ; line_number = 119
4145                    ;  local value byte
4146 00000023 = rb2bus_byte_get__value equ globals___0+3
4147                    ; line_number = 120
4148                    ;  local address_bit bit
4149 0000006f = rb2bus_byte_get__address_bit___byte equ globals___0+79
4150 00000003 = rb2bus_byte_get__address_bit___bit equ 3
4151            
4152                    ; # Return 0 in a bus flush condition to get us back to {rb2bus_select_wait}:
4153                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
4154                    ; line_number = 123
4155                    ;  if rb2bus_error start
4156                    ;info   123, 417
4157                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
4158                    ; 1TEST: Single test with code in skip slot
4159 01a1 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
4160                    ; line_number = 124
4161                    ; return 0 start
4162                    ; line_number = 124
4163                    ;info   124, 418
4164 01a2 3400          retlw   0
4165                    ; line_number = 124
4166                    ; return 0 done
4167            
4168                    ; Recombine size1 = 0 || size2 = 0
4169                    ; line_number = 123
4170                    ;  if rb2bus_error done
4171                    ; # Wait for a byte to arrive.
4172                    ; line_number = 127
4173                    ;  _adden := _false
4174                    ;info   127, 419
4175 01a3 1197          bcf     _adden___byte, _adden___bit
4176                    ; line_number = 128
4177                    ;  while !_rcif start
4178   01a4 :   rb2bus_byte_get__1:
4179                    ;info   128, 420
4180                    ; =>bit_code_emit@symbol(): sym=_rcif
4181                    ; No 1TEST: true.size=0 false.size=2
4182                    ; No 2TEST: true.size=0 false.size=2
4183                    ; 1GOTO: Single test with GOTO
4184 01a4 1a8c          btfsc   _rcif___byte, _rcif___bit
4185 01a5 29a8          goto    rb2bus_byte_get__2
4186                    ; line_number = 129
4187                    ; call wait()
4188                    ;info   129, 422
4189 01a6 20d7          call    wait
4190            
4191 01a7 29a4          goto    rb2bus_byte_get__1
4192   01a8 :   rb2bus_byte_get__2:
4193                    ; Recombine size1 = 0 || size2 = 0
4194                    ; line_number = 128
4195                    ;  while !_rcif done
4196                    ; # Record the 9th bit in {address_bit}:
4197                    ; line_number = 132
4198                    ;  address_bit := _false
4199                    ;info   132, 424
4200 01a8 11ef          bcf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4201                    ; line_number = 133
4202                    ;  if _rx9d start
4203                    ;info   133, 425
4204                    ; =>bit_code_emit@symbol(): sym=_rx9d
4205                    ; 1TEST: Single test with code in skip slot
4206 01a9 1817          btfsc   _rx9d___byte, _rx9d___bit
4207                    ; line_number = 134
4208                    ; address_bit := _true
4209                    ;info   134, 426
4210 01aa 15ef          bsf     rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4211                    ; Recombine size1 = 0 || size2 = 0
4212                    ; line_number = 133
4213                    ;  if _rx9d done
4214                    ; line_number = 135
4215                    ; value := _rcreg
4216                    ;info   135, 427
4217 01ab 0814          movf    _rcreg,w
4218 01ac 00a3          movwf   rb2bus_byte_get__value
4219            
4220                    ; # Clear any errors by toggling _{cren}:
4221                    ; # FIXME: All of this should be done *before* reading {_rcreg}!!!
4222                    ; line_number = 139
4223                    ;  if _oerr start
4224                    ;info   139, 429
4225                    ; =>bit_code_emit@symbol(): sym=_oerr
4226                    ; 1TEST: Single test with code in skip slot
4227 01ad 1897          btfsc   _oerr___byte, _oerr___bit
4228                    ; line_number = 140
4229                    ; _cren := _false
4230                    ;info   140, 430
4231 01ae 1217          bcf     _cren___byte, _cren___bit
4232                    ; Recombine size1 = 0 || size2 = 0
4233                    ; line_number = 139
4234                    ;  if _oerr done
4235                    ; line_number = 141
4236                    ; if _ferr start
4237                    ;info   141, 431
4238                    ; =>bit_code_emit@symbol(): sym=_ferr
4239                    ; 1TEST: Single test with code in skip slot
4240 01af 1917          btfsc   _ferr___byte, _ferr___bit
4241                    ; line_number = 142
4242                    ; _cren := _false
4243                    ;info   142, 432
4244 01b0 1217          bcf     _cren___byte, _cren___bit
4245                    ; Recombine size1 = 0 || size2 = 0
4246                    ; line_number = 141
4247                    ; if _ferr done
4248                    ; line_number = 143
4249                    ; _cren := _true
4250                    ;info   143, 433
4251 01b1 1617          bsf     _cren___byte, _cren___bit
4252            
4253                    ; line_number = 145
4254                    ;  if address_bit start
4255                    ;info   145, 434
4256                    ; =>bit_code_emit@symbol(): sym=rb2bus_byte_get__address_bit
4257                    ; No 1TEST: true.size=13 false.size=0
4258                    ; No 2TEST: true.size=13 false.size=0
4259                    ; 1GOTO: Single test with GOTO
4260 01b2 1def          btfss   rb2bus_byte_get__address_bit___byte, rb2bus_byte_get__address_bit___bit
4261 01b3 29c1          goto    rb2bus_byte_get__5
4262                    ; # We have an unexpected address select coming in:
4263                    ; line_number = 147
4264                    ;  if value = rb2bus_address start
4265                    ;info   147, 436
4266                    ; Left minus Right
4267 01b4 0820          movf    rb2bus_address,w
4268 01b5 0223          subwf   rb2bus_byte_get__value,w
4269                    ; =>bit_code_emit@symbol(): sym=__z
4270                    ; No 1TEST: true.size=4 false.size=2
4271                    ; No 2TEST: true.size=4 false.size=2
4272                    ; 2GOTO: Single test with two GOTO's
4273 01b6 1d03          btfss   __z___byte, __z___bit
4274 01b7 29bd          goto    rb2bus_byte_get__3
4275                    ; # We are being selected again:
4276                    ; line_number = 149
4277                    ;  rb2bus_selected := _true
4278                    ;info   149, 440
4279 01b8 146f          bsf     rb2bus_selected___byte, rb2bus_selected___bit
4280                    ; line_number = 150
4281                    ;  _adden := _false
4282                    ;info   150, 441
4283 01b9 1197          bcf     _adden___byte, _adden___bit
4284            
4285                    ; line_number = 152
4286                    ;  call rb2bus_byte_put(rb2_ok)
4287                    ;info   152, 442
4288 01ba 30a5          movlw   165
4289 01bb 21c3          call    rb2bus_byte_put
4290 01bc 29bf          goto    rb2bus_byte_get__4
4291                    ; 2GOTO: Starting code 2
4292   01bd :   rb2bus_byte_get__3:
4293                    ; # Somebody else is being selected; we deselect:
4294                    ; line_number = 155
4295                    ;  rb2bus_selected := _false
4296                    ;info   155, 445
4297 01bd 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4298                    ; line_number = 156
4299                    ;  _adden := _true
4300                    ;info   156, 446
4301 01be 1597          bsf     _adden___byte, _adden___bit
4302            
4303   01bf :   rb2bus_byte_get__4:
4304                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4305                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4306                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4307                    ; line_number = 147
4308                    ;  if value = rb2bus_address done
4309                    ; # We want to get back to the beginning of decode:
4310                    ; line_number = 159
4311                    ;  rb2bus_error := _true
4312                    ;info   159, 447
4313 01bf 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
4314                    ; line_number = 160
4315                    ;  value := 0
4316                    ;info   160, 448
4317 01c0 01a3          clrf    rb2bus_byte_get__value
4318            
4319                    ; Recombine size1 = 0 || size2 = 0
4320   01c1 :   rb2bus_byte_get__5:
4321                    ; line_number = 145
4322                    ;  if address_bit done
4323                    ; # Regular data byte:
4324                    ; line_number = 163
4325                    ;  return value start
4326                    ; line_number = 163
4327                    ;info   163, 449
4328 01c1 0823          movf    rb2bus_byte_get__value,w
4329 01c2 0008          return  
4330                    ; line_number = 163
4331                    ;  return value done
4332            
4333            
4334                    ; delay after procedure statements=non-uniform
4335            
4336            
4337            
4338            
4339                    ; line_number = 166
4340                    ;info   166, 451
4341                    ; procedure rb2bus_byte_put
4342   01c3 :   rb2bus_byte_put:
4343                    ; Last argument is sitting in W; save into argument variable
4344 01c3 00a4          movwf   rb2bus_byte_put__value
4345                    ; delay=4294967295
4346                    ; line_number = 167
4347                    ; argument value byte
4348 00000024 = rb2bus_byte_put__value equ globals___0+4
4349                    ; line_number = 168
4350                    ;  returns_nothing
4351            
4352                    ; # This procedure will send {value} to the bus.  It automatically
4353                    ; # consumes the echo that is on the bus.  If {rb2bus_error} is
4354                    ; # set, this procedure does nothing.
4355            
4356                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
4357                    ; line_number = 174
4358                    ;  if !rb2bus_error start
4359                    ;info   174, 452
4360                    ; =>bit_code_emit@symbol(): sym=rb2bus_error
4361                    ; No 1TEST: true.size=0 false.size=16
4362                    ; No 2TEST: true.size=0 false.size=16
4363                    ; 1GOTO: Single test with GOTO
4364 01c4 18ef          btfsc   rb2bus_error___byte, rb2bus_error___bit
4365 01c5 29d6          goto    rb2bus_byte_put__4
4366                    ; # Wait until {_txreg} is ready for a value:
4367                    ; line_number = 176
4368                    ;  while !_txif start
4369   01c6 :   rb2bus_byte_put__1:
4370                    ;info   176, 454
4371                    ; =>bit_code_emit@symbol(): sym=_txif
4372                    ; No 1TEST: true.size=0 false.size=2
4373                    ; No 2TEST: true.size=0 false.size=2
4374                    ; 1GOTO: Single test with GOTO
4375 01c6 188c          btfsc   _txif___byte, _txif___bit
4376 01c7 29ca          goto    rb2bus_byte_put__2
4377                    ; line_number = 177
4378                    ; call wait()
4379                    ;info   177, 456
4380 01c8 20d7          call    wait
4381            
4382 01c9 29c6          goto    rb2bus_byte_put__1
4383   01ca :   rb2bus_byte_put__2:
4384                    ; Recombine size1 = 0 || size2 = 0
4385                    ; line_number = 176
4386                    ;  while !_txif done
4387                    ; # Ship {value} out to the bus with 9th bit turned off:
4388                    ; line_number = 180
4389                    ;  _adden := _false
4390                    ;info   180, 458
4391 01ca 1197          bcf     _adden___byte, _adden___bit
4392                    ; line_number = 181
4393                    ;  _tx9d := _false
4394                    ;info   181, 459
4395 01cb 1016          bcf     _tx9d___byte, _tx9d___bit
4396                    ; line_number = 182
4397                    ;  _txreg := value
4398                    ;info   182, 460
4399 01cc 0824          movf    rb2bus_byte_put__value,w
4400 01cd 0095          movwf   _txreg
4401            
4402                    ; # Wait for the echo to show up:
4403                    ; line_number = 185
4404                    ;  while !_rcif start
4405   01ce :   rb2bus_byte_put__3:
4406                    ;info   185, 462
4407                    ; =>bit_code_emit@symbol(): sym=_rcif
4408                    ; 1TEST: Single test with code in skip slot
4409 01ce 1e8c          btfss   _rcif___byte, _rcif___bit
4410                    ; # Still waiting:
4411 01cf 29ce          goto    rb2bus_byte_put__3
4412                    ; Recombine size1 = 0 || size2 = 0
4413                    ; line_number = 185
4414                    ;  while !_rcif done
4415                    ; # Throw the received byte away (store into {_w}).
4416                    ; line_number = 188
4417                    ;  assemble
4418                    ;info   188, 464
4419                    ; line_number = 189
4420                    ;info   189, 464
4421 01d0 0814          movf    _rcreg,w
4422            
4423                    ; # Recover from any receive errors by toggling {_cren}:
4424                    ; line_number = 192
4425                    ;  if _oerr start
4426                    ;info   192, 465
4427                    ; =>bit_code_emit@symbol(): sym=_oerr
4428                    ; 1TEST: Single test with code in skip slot
4429 01d1 1897          btfsc   _oerr___byte, _oerr___bit
4430                    ; line_number = 193
4431                    ; _cren := _false
4432                    ;info   193, 466
4433 01d2 1217          bcf     _cren___byte, _cren___bit
4434                    ; Recombine size1 = 0 || size2 = 0
4435                    ; line_number = 192
4436                    ;  if _oerr done
4437                    ; line_number = 194
4438                    ; if _ferr start
4439                    ;info   194, 467
4440                    ; =>bit_code_emit@symbol(): sym=_ferr
4441                    ; 1TEST: Single test with code in skip slot
4442 01d3 1917          btfsc   _ferr___byte, _ferr___bit
4443                    ; line_number = 195
4444                    ; _cren := _false
4445                    ;info   195, 468
4446 01d4 1217          bcf     _cren___byte, _cren___bit
4447                    ; Recombine size1 = 0 || size2 = 0
4448                    ; line_number = 194
4449                    ; if _ferr done
4450                    ; line_number = 196
4451                    ; _cren := _true
4452                    ;info   196, 469
4453 01d5 1617          bsf     _cren___byte, _cren___bit
4454            
4455            
4456   01d6 :   rb2bus_byte_put__4:
4457                    ; Recombine size1 = 0 || size2 = 0
4458                    ; line_number = 174
4459                    ;  if !rb2bus_error done
4460                    ; delay after procedure statements=non-uniform
4461                    ; Implied return
4462 01d6 3400          retlw   0
4463            
4464            
4465            
4466            
4467                    ; line_number = 199
4468                    ;info   199, 471
4469                    ; procedure rb2bus_command
4470   01d7 :   rb2bus_command:
4471                    ; Last argument is sitting in W; save into argument variable
4472 01d7 00a7          movwf   rb2bus_command__command
4473                    ; delay=4294967295
4474                    ; line_number = 200
4475                    ; argument command byte
4476 00000027 = rb2bus_command__command equ globals___0+7
4477                    ; line_number = 201
4478                    ;  returns_nothing
4479            
4480                    ; # This procedure will process an shared {command}.  This procedure
4481                    ; # accesses the global string {id}.
4482            
4483                    ; line_number = 206
4484                    ;  local new_address byte
4485 00000025 = rb2bus_command__new_address equ globals___0+5
4486                    ; line_number = 207
4487                    ;  local temp byte
4488 00000026 = rb2bus_command__temp equ globals___0+6
4489            
4490                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
4491                    ; line_number = 209
4492                    ;  switch command & 7 start
4493                    ;info   209, 472
4494                    ; switch_before:(data:00=uu=>00 code:XX=cc=>XX) size=1
4495 01d8 3001          movlw   rb2bus_command__13>>8
4496 01d9 008a          movwf   __pclath
4497 01da 3007          movlw   7
4498 01db 0527          andwf   rb2bus_command__command,w
4499                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
4500 01dc 3ede          addlw   rb2bus_command__13
4501 01dd 0082          movwf   __pcl
4502                    ; page_group 8
4503   01de :   rb2bus_command__13:
4504 01de 2a1e          goto    rb2bus_command__14
4505 01df 2a1e          goto    rb2bus_command__14
4506 01e0 2a1e          goto    rb2bus_command__14
4507 01e1 2a1e          goto    rb2bus_command__14
4508 01e2 29e6          goto    rb2bus_command__9
4509 01e3 2a12          goto    rb2bus_command__10
4510 01e4 2a1b          goto    rb2bus_command__11
4511 01e5 2a1d          goto    rb2bus_command__12
4512                    ; line_number = 210
4513                    ; case 4
4514   01e6 :   rb2bus_command__9:
4515                    ; # 1111 1100 (Address_Set):
4516                    ; # Return old address:
4517                    ; line_number = 213
4518                    ;  call rb2bus_byte_put(rb2bus_address)
4519                    ;info   213, 486
4520 01e6 0820          movf    rb2bus_address,w
4521 01e7 21c3          call    rb2bus_byte_put
4522            
4523                    ; # Fetch new address:
4524                    ; line_number = 216
4525                    ;  new_address := rb2bus_byte_get()
4526                    ;info   216, 488
4527 01e8 21a1          call    rb2bus_byte_get
4528 01e9 00a5          movwf   rb2bus_command__new_address
4529                    ; line_number = 217
4530                    ;  if new_address = 0 || new_address = rb2bus_address start
4531                    ;info   217, 490
4532                    ; Left minus Right
4533 01ea 0825          movf    rb2bus_command__new_address,w
4534                    ; =>bit_code_emit@symbol(): sym=__z
4535                    ; No 1TEST: true.size=1 false.size=36
4536                    ; No 2TEST: true.size=1 false.size=36
4537                    ; 2GOTO: Single test with two GOTO's
4538 01eb 1903          btfsc   __z___byte, __z___bit
4539 01ec 29f1          goto    rb2bus_command__5
4540                    ; Recombine code1_bit_states != code2_bit_states
4541                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4542                    ; Left minus Right
4543 01ed 0820          movf    rb2bus_address,w
4544 01ee 0225          subwf   rb2bus_command__new_address,w
4545                    ; =>bit_code_emit@symbol(): sym=__z
4546                    ; No 1TEST: true.size=4 false.size=27
4547                    ; No 2TEST: true.size=4 false.size=27
4548                    ; 2GOTO: Single test with two GOTO's
4549 01ef 1d03          btfss   __z___byte, __z___bit
4550 01f0 29f6          goto    rb2bus_command__6
4551   01f1 :   rb2bus_command__5:
4552                    ; line_number = 218
4553                    ; call rb2bus_byte_put(0)
4554                    ;info   218, 497
4555 01f1 3000          movlw   0
4556 01f2 21c3          call    rb2bus_byte_put
4557                    ; line_number = 219
4558                    ;  rb2bus_error := _true
4559                    ;info   219, 499
4560 01f3 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
4561                    ; line_number = 220
4562                    ;  rb2bus_selected := _false
4563                    ;info   220, 500
4564 01f4 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4565 01f5 2a11          goto    rb2bus_command__7
4566                    ; 2GOTO: Starting code 2
4567   01f6 :   rb2bus_command__6:
4568                    ; # Return new address:
4569                    ; line_number = 223
4570                    ;  call rb2bus_byte_put(new_address)
4571                    ;info   223, 502
4572 01f6 0825          movf    rb2bus_command__new_address,w
4573 01f7 21c3          call    rb2bus_byte_put
4574            
4575                    ; # Fetch new address again as a check:
4576                    ; line_number = 226
4577                    ;  temp := rb2bus_byte_get()
4578                    ;info   226, 504
4579 01f8 21a1          call    rb2bus_byte_get
4580 01f9 00a6          movwf   rb2bus_command__temp
4581                    ; line_number = 227
4582                    ;  if temp != new_address start
4583                    ;info   227, 506
4584                    ; Left minus Right
4585 01fa 0825          movf    rb2bus_command__new_address,w
4586 01fb 0226          subwf   rb2bus_command__temp,w
4587                    ; =>bit_code_emit@symbol(): sym=__z
4588                    ; No 1TEST: true.size=14 false.size=4
4589                    ; No 2TEST: true.size=14 false.size=4
4590                    ; 2GOTO: Single test with two GOTO's
4591 01fc 1d03          btfss   __z___byte, __z___bit
4592 01fd 2a0d          goto    rb2bus_command__3
4593                    ; line_number = 232
4594                    ; call rb2bus_eedata_write(new_address)
4595                    ;info   232, 510
4596 01fe 0825          movf    rb2bus_command__new_address,w
4597 01ff 2252          call    rb2bus_eedata_write
4598                    ; line_number = 233
4599                    ;  temp := rb2bus_eedata_read()
4600                    ;info   233, 512
4601 0200 223d          call    rb2bus_eedata_read
4602 0201 00a6          movwf   rb2bus_command__temp
4603                    ; line_number = 234
4604                    ;  if temp = new_address start
4605                    ;info   234, 514
4606                    ; Left minus Right
4607 0202 0825          movf    rb2bus_command__new_address,w
4608 0203 0226          subwf   rb2bus_command__temp,w
4609                    ; =>bit_code_emit@symbol(): sym=__z
4610                    ; No 1TEST: true.size=3 false.size=1
4611                    ; No 2TEST: true.size=3 false.size=1
4612                    ; 2GOTO: Single test with two GOTO's
4613 0204 1d03          btfss   __z___byte, __z___bit
4614 0205 2a0a          goto    rb2bus_command__1
4615                    ; line_number = 235
4616                    ; rb2bus_address := new_address
4617                    ;info   235, 518
4618 0206 0825          movf    rb2bus_command__new_address,w
4619 0207 00a0          movwf   rb2bus_address
4620                    ; line_number = 236
4621                    ;  call rb2bus_byte_put(rb2_ok)
4622                    ;info   236, 520
4623 0208 30a5          movlw   165
4624 0209 2a0b          goto    rb2bus_command__2
4625                    ; 2GOTO: Starting code 2
4626   020a :   rb2bus_command__1:
4627                    ; line_number = 238
4628                    ; call rb2bus_byte_put(0)
4629                    ;info   238, 522
4630 020a 3000          movlw   0
4631   020b :   rb2bus_command__2:
4632                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4633                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4634                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4635 020b 21c3          call    rb2bus_byte_put
4636                    ; line_number = 234
4637                    ;  if temp = new_address done
4638 020c 2a11          goto    rb2bus_command__4
4639                    ; 2GOTO: Starting code 2
4640   020d :   rb2bus_command__3:
4641                    ; line_number = 228
4642                    ; call rb2bus_byte_put(0)
4643                    ;info   228, 525
4644 020d 3000          movlw   0
4645 020e 21c3          call    rb2bus_byte_put
4646                    ; line_number = 229
4647                    ;  rb2bus_error := _true
4648                    ;info   229, 527
4649 020f 14ef          bsf     rb2bus_error___byte, rb2bus_error___bit
4650                    ; line_number = 230
4651                    ;  rb2bus_selected := _false
4652                    ;info   230, 528
4653 0210 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4654   0211 :   rb2bus_command__4:
4655                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4656                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4657                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4658                    ; line_number = 227
4659                    ;  if temp != new_address done
4660   0211 :   rb2bus_command__7:
4661                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4662                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4663                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4664                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4665                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4666                    ; 2GOTO: No goto needed; true=rb2bus_command__5 false= true_size=1 false_size=36
4667                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4668                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
4669                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
4670                    ; line_number = 217
4671                    ;  if new_address = 0 || new_address = rb2bus_address done
4672 0211 2a1e          goto    rb2bus_command__14
4673                    ; line_number = 239
4674                    ; case 5
4675   0212 :   rb2bus_command__10:
4676                    ; # 1111 1101 (Id_next):
4677                    ; line_number = 241
4678                    ;  if rb2bus_index < id.size start
4679                    ;info   241, 530
4680 0212 3013          movlw   19
4681 0213 0221          subwf   rb2bus_index,w
4682                    ; =>bit_code_emit@symbol(): sym=__c
4683                    ; No 1TEST: true.size=0 false.size=4
4684                    ; No 2TEST: true.size=0 false.size=4
4685                    ; 1GOTO: Single test with GOTO
4686 0214 1803          btfsc   __c___byte, __c___bit
4687 0215 2a1a          goto    rb2bus_command__8
4688                    ; line_number = 242
4689                    ; call rb2bus_byte_put(id[rb2bus_index])
4690                    ;info   242, 534
4691 0216 0821          movf    rb2bus_index,w
4692 0217 20d8          call    id
4693 0218 21c3          call    rb2bus_byte_put
4694                    ; line_number = 243
4695                    ;  rb2bus_index := rb2bus_index + 1
4696                    ;info   243, 537
4697 0219 0aa1          incf    rb2bus_index,f
4698                    ; #if rb2bus_index >= id.size
4699                    ; #	rb2bus_index := rb2bus_index - 1
4700   021a :   rb2bus_command__8:
4701                    ; Recombine size1 = 0 || size2 = 0
4702                    ; line_number = 241
4703                    ;  if rb2bus_index < id.size done
4704 021a 2a1e          goto    rb2bus_command__14
4705                    ; line_number = 246
4706                    ; case 6
4707   021b :   rb2bus_command__11:
4708                    ; # 1111 1110 (Id_start):
4709                    ; line_number = 248
4710                    ;  rb2bus_index := 0
4711                    ;info   248, 539
4712 021b 01a1          clrf    rb2bus_index
4713 021c 2a1e          goto    rb2bus_command__14
4714                    ; line_number = 249
4715                    ; case 7
4716   021d :   rb2bus_command__12:
4717                    ; # 1111 1111 (Deselect):
4718                    ; line_number = 251
4719                    ;  call rb2bus_deselect()
4720                    ;info   251, 541
4721 021d 219f          call    rb2bus_deselect
4722            
4723            
4724   021e :   rb2bus_command__14:
4725                    ; line_number = 209
4726                    ;  switch command & 7 done
4727                    ; delay after procedure statements=non-uniform
4728                    ; Implied return
4729 021e 3400          retlw   0
4730            
4731            
4732            
4733            
4734                    ; buffer = 'rb2bus_pic16f688'
4735                    ; line_number = 18
4736                    ;info   18, 543
4737                    ; procedure rb2bus_initialize
4738   021f :   rb2bus_initialize:
4739                    ; Last argument is sitting in W; save into argument variable
4740 021f 00a8          movwf   rb2bus_initialize__address
4741                    ; delay=4294967295
4742                    ; line_number = 19
4743                    ; argument address byte
4744 00000028 = rb2bus_initialize__address equ globals___0+8
4745                    ; line_number = 20
4746                    ;  returns_nothing
4747            
4748                    ; # This procedure is responsibile for initializing the UART
4749                    ; # connected to the bus.  {address} is the address of this
4750                    ; # slave module.  This code is specific to the PIC16F688.
4751            
4752                    ; # Warm up the UART:
4753                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
4754                    ; line_number = 27
4755                    ;  _trisc@5 := _true
4756                    ;info   27, 544
4757 00000087 = rb2bus_initialize__select__1___byte equ _trisc
4758 00000005 = rb2bus_initialize__select__1___bit equ 5
4759 0220 1683          bsf     __rp0___byte, __rp0___bit
4760 0221 1687          bsf     rb2bus_initialize__select__1___byte, rb2bus_initialize__select__1___bit
4761                    ; line_number = 28
4762                    ;  _trisc@4 := _true
4763                    ;info   28, 546
4764 00000087 = rb2bus_initialize__select__2___byte equ _trisc
4765 00000004 = rb2bus_initialize__select__2___bit equ 4
4766 0222 1607          bsf     rb2bus_initialize__select__2___byte, rb2bus_initialize__select__2___bit
4767            
4768                    ; # Initialize the {_txsta} register:
4769                    ; line_number = 31
4770                    ;  _txsta := 0
4771                    ;info   31, 547
4772 0223 1283          bcf     __rp0___byte, __rp0___bit
4773 0224 0196          clrf    _txsta
4774                    ; line_number = 32
4775                    ;  _tx9 := _true
4776                    ;info   32, 549
4777 0225 1716          bsf     _tx9___byte, _tx9___bit
4778                    ; #_tx9 := _false
4779                    ; line_number = 34
4780                    ;  _txen := _true
4781                    ;info   34, 550
4782 0226 1696          bsf     _txen___byte, _txen___bit
4783                    ; line_number = 35
4784                    ;  _brgh := _true
4785                    ;info   35, 551
4786 0227 1516          bsf     _brgh___byte, _brgh___bit
4787            
4788                    ; # Initialize the {_rcsta} register:
4789                    ; line_number = 38
4790                    ;  _rcsta := 0
4791                    ;info   38, 552
4792 0228 0197          clrf    _rcsta
4793                    ; line_number = 39
4794                    ;  _spen := _true
4795                    ;info   39, 553
4796 0229 1797          bsf     _spen___byte, _spen___bit
4797                    ; line_number = 40
4798                    ;  _rx9 := _true
4799                    ;info   40, 554
4800 022a 1717          bsf     _rx9___byte, _rx9___bit
4801                    ; line_number = 41
4802                    ;  _cren := _true
4803                    ;info   41, 555
4804 022b 1617          bsf     _cren___byte, _cren___bit
4805                    ; #_adden := _true
4806                    ; line_number = 43
4807                    ;  _adden := _false
4808                    ;info   43, 556
4809 022c 1197          bcf     _adden___byte, _adden___bit
4810            
4811                    ; # Set up the baud rate generator:
4812                    ; line_number = 46
4813                    ;  _baudctl := 0
4814                    ;info   46, 557
4815 022d 0191          clrf    _baudctl
4816                    ; line_number = 47
4817                    ;  _brg16 := _true
4818                    ;info   47, 558
4819 022e 1591          bsf     _brg16___byte, _brg16___bit
4820                    ; line_number = 48
4821                    ;  _spbrg := _eusart_500000_low
4822                    ;info   48, 559
4823 022f 3009          movlw   9
4824 0230 0093          movwf   _spbrg
4825                    ; line_number = 49
4826                    ;  _spbrgh := _eusart_500000_high
4827                    ;info   49, 561
4828 0231 0192          clrf    _spbrgh
4829            
4830                    ; line_number = 51
4831                    ;  rb2bus_selected := _false
4832                    ;info   51, 562
4833 0232 106f          bcf     rb2bus_selected___byte, rb2bus_selected___bit
4834                    ; line_number = 52
4835                    ;  rb2bus_error := _false
4836                    ;info   52, 563
4837 0233 10ef          bcf     rb2bus_error___byte, rb2bus_error___bit
4838                    ; line_number = 53
4839                    ;  rb2bus_index := 0
4840                    ;info   53, 564
4841 0234 01a1          clrf    rb2bus_index
4842            
4843                    ; # Deal with setting {rb2bus_address} from EEData memory:
4844                    ; line_number = 56
4845                    ;  rb2bus_address := rb2bus_eedata_read()
4846                    ;info   56, 565
4847 0235 223d          call    rb2bus_eedata_read
4848 0236 00a0          movwf   rb2bus_address
4849                    ; line_number = 57
4850                    ;  if rb2bus_address = 0 start
4851                    ;info   57, 567
4852                    ; Left minus Right
4853 0237 0820          movf    rb2bus_address,w
4854                    ; =>bit_code_emit@symbol(): sym=__z
4855                    ; No 1TEST: true.size=2 false.size=0
4856                    ; No 2TEST: true.size=2 false.size=0
4857                    ; 1GOTO: Single test with GOTO
4858 0238 1d03          btfss   __z___byte, __z___bit
4859 0239 2a3c          goto    rb2bus_initialize__3
4860                    ; # EE data not set, so use {address} passed in as a argument:
4861                    ; line_number = 59
4862                    ;  rb2bus_address := address
4863                    ;info   59, 570
4864 023a 0828          movf    rb2bus_initialize__address,w
4865 023b 00a0          movwf   rb2bus_address
4866            
4867            
4868                    ; Recombine size1 = 0 || size2 = 0
4869   023c :   rb2bus_initialize__3:
4870                    ; line_number = 57
4871                    ;  if rb2bus_address = 0 done
4872                    ; delay after procedure statements=non-uniform
4873                    ; Implied return
4874 023c 3400          retlw   0
4875            
4876            
4877            
4878            
4879                    ; line_number = 64
4880                    ;info   64, 573
4881                    ; procedure rb2bus_eedata_read
4882   023d :   rb2bus_eedata_read:
4883                    ; arguments_none
4884                    ; line_number = 66
4885                    ;  returns byte
4886            
4887                    ; # This procedure will return the address stored in EEData.  If
4888                    ; # there is no data, 0 is returned.
4889            
4890                    ; line_number = 71
4891                    ;  local temp1 byte
4892 00000029 = rb2bus_eedata_read__temp1 equ globals___0+9
4893                    ; line_number = 72
4894                    ;  local temp2 byte
4895 0000002a = rb2bus_eedata_read__temp2 equ globals___0+10
4896            
4897                    ; # Read the first byte (the address):
4898                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
4899                    ; line_number = 75
4900                    ;  _eecon1 := 0
4901                    ;info   75, 573
4902 023d 1683          bsf     __rp0___byte, __rp0___bit
4903 023e 019c          clrf    _eecon1
4904                    ; line_number = 76
4905                    ;  _eeadr := rb2bus_eedata_address
4906                    ;info   76, 575
4907 023f 30fe          movlw   254
4908 0240 009b          movwf   _eeadr
4909                    ; line_number = 77
4910                    ;  _rd := _true
4911                    ;info   77, 577
4912 0241 141c          bsf     _rd___byte, _rd___bit
4913                    ; line_number = 78
4914                    ;  temp1 := _eedat
4915                    ;info   78, 578
4916 0242 081a          movf    _eedat,w
4917 0243 1283          bcf     __rp0___byte, __rp0___bit
4918 0244 00a9          movwf   rb2bus_eedata_read__temp1
4919            
4920                    ; # Read the second byte (the 1'z complement)
4921                    ; line_number = 81
4922                    ;  _eeadr := _eeadr + 1
4923                    ;info   81, 581
4924 0245 1683          bsf     __rp0___byte, __rp0___bit
4925 0246 0a9b          incf    _eeadr,f
4926                    ; line_number = 82
4927                    ;  _rd := _true
4928                    ;info   82, 583
4929 0247 141c          bsf     _rd___byte, _rd___bit
4930                    ; line_number = 83
4931                    ;  temp2 := _eedat
4932                    ;info   83, 584
4933 0248 081a          movf    _eedat,w
4934 0249 1283          bcf     __rp0___byte, __rp0___bit
4935 024a 00aa          movwf   rb2bus_eedata_read__temp2
4936            
4937                    ; # If they are 1's complement of one another, they are valid:
4938                    ; line_number = 86
4939                    ;  if temp1 = (0xff ^ temp2) start
4940                    ;info   86, 587
4941                    ; Left minus Right
4942 024b 092a          comf    rb2bus_eedata_read__temp2,w
4943 024c 0229          subwf   rb2bus_eedata_read__temp1,w
4944                    ; =>bit_code_emit@symbol(): sym=__z
4945                    ; No 1TEST: true.size=2 false.size=0
4946                    ; No 2TEST: true.size=2 false.size=0
4947                    ; 1GOTO: Single test with GOTO
4948 024d 1d03          btfss   __z___byte, __z___bit
4949 024e 2a51          goto    rb2bus_eedata_read__1
4950                    ; # Return the valid address:
4951                    ; line_number = 88
4952                    ;  return temp1 start
4953                    ; line_number = 88
4954                    ;info   88, 591
4955 024f 0829          movf    rb2bus_eedata_read__temp1,w
4956 0250 0008          return  
4957                    ; line_number = 88
4958                    ;  return temp1 done
4959            
4960                    ; Recombine size1 = 0 || size2 = 0
4961   0251 :   rb2bus_eedata_read__1:
4962                    ; line_number = 86
4963                    ;  if temp1 = (0xff ^ temp2) done
4964                    ; # They are not 1's complement, so return 0 as an error:
4965                    ; line_number = 91
4966                    ;  return 0 start
4967                    ; line_number = 91
4968                    ;info   91, 593
4969 0251 3400          retlw   0
4970                    ; line_number = 91
4971                    ;  return 0 done
4972            
4973            
4974                    ; delay after procedure statements=non-uniform
4975            
4976            
4977            
4978            
4979                    ; line_number = 94
4980                    ;info   94, 594
4981                    ; procedure rb2bus_eedata_write
4982   0252 :   rb2bus_eedata_write:
4983                    ; Last argument is sitting in W; save into argument variable
4984 0252 00ab          movwf   rb2bus_eedata_write__address
4985                    ; delay=4294967295
4986                    ; line_number = 95
4987                    ; argument address byte
4988 0000002b = rb2bus_eedata_write__address equ globals___0+11
4989                    ; line_number = 96
4990                    ;  returns_nothing
4991            
4992                    ; # This procedure will write {address} into the EEData.  The
4993                    ; # microcontroll pauses while the EEData is written.
4994            
4995                    ; # Clear out the {_eecon1} register
4996                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
4997                    ; line_number = 102
4998                    ;  _eecon1 := 0
4999                    ;info   102, 595
5000 0253 1683          bsf     __rp0___byte, __rp0___bit
5001 0254 019c          clrf    _eecon1
5002                    ; line_number = 103
5003                    ;  _eeadr := rb2bus_eedata_address
5004                    ;info   103, 597
5005 0255 30fe          movlw   254
5006 0256 009b          movwf   _eeadr
5007                    ; line_number = 104
5008                    ;  _eedat := address
5009                    ;info   104, 599
5010 0257 1283          bcf     __rp0___byte, __rp0___bit
5011 0258 082b          movf    rb2bus_eedata_write__address,w
5012 0259 1683          bsf     __rp0___byte, __rp0___bit
5013 025a 009a          movwf   _eedat
5014            
5015                    ; # Write 2 bytes ({address} followed by {address}^0xff):
5016                    ; line_number = 107
5017                    ;  loop_exactly 2 start
5018                    ;info   107, 603
5019 0000004e = rb2bus_eedata_write__1 equ globals___0+46
5020 025b 3002          movlw   2
5021 025c 1283          bcf     __rp0___byte, __rp0___bit
5022 025d 00ce          movwf   rb2bus_eedata_write__1
5023   025e :   rb2bus_eedata_write__2:
5024                    ; # Set the data to write:
5025            
5026                    ; # Set up the for the write:
5027                    ; line_number = 111
5028                    ;  _wren := _true
5029                    ;info   111, 606
5030 025e 1683          bsf     __rp0___byte, __rp0___bit
5031 025f 151c          bsf     _wren___byte, _wren___bit
5032                    ; line_number = 112
5033                    ;  _gie := _false
5034                    ;info   112, 608
5035 0260 138b          bcf     _gie___byte, _gie___bit
5036                    ; line_number = 113
5037                    ;  _eecon2 := 0x55
5038                    ;info   113, 609
5039 0261 3055          movlw   85
5040 0262 009d          movwf   _eecon2
5041                    ; line_number = 114
5042                    ;  _eecon2 := 0xaa
5043                    ;info   114, 611
5044 0263 30aa          movlw   170
5045 0264 009d          movwf   _eecon2
5046                    ; # Start the write:
5047                    ; line_number = 116
5048                    ;  _wr := _true
5049                    ;info   116, 613
5050 0265 149c          bsf     _wr___byte, _wr___bit
5051            
5052                    ; # Wait for write to complete:
5053                    ; line_number = 119
5054                    ;  while _wr start
5055   0266 :   rb2bus_eedata_write__3:
5056                    ;info   119, 614
5057                    ; =>bit_code_emit@symbol(): sym=_wr
5058                    ; 1TEST: Single test with code in skip slot
5059 0266 189c          btfsc   _wr___byte, _wr___bit
5060                    ; line_number = 120
5061                    ; do_nothing
5062                    ;info   120, 615
5063            
5064 0267 2a66          goto    rb2bus_eedata_write__3
5065                    ; Recombine size1 = 0 || size2 = 0
5066                    ; line_number = 119
5067                    ;  while _wr done
5068                    ; # Disable writing:
5069                    ; line_number = 123
5070                    ;  _wren := _false
5071                    ;info   123, 616
5072 0268 111c          bcf     _wren___byte, _wren___bit
5073            
5074                    ; # Prepare the second byte of data:
5075                    ; line_number = 126
5076                    ;  _eeadr := _eeadr + 1
5077                    ;info   126, 617
5078 0269 0a9b          incf    _eeadr,f
5079                    ; line_number = 127
5080                    ;  _eedat := address ^ 0xff
5081                    ;info   127, 618
5082 026a 1283          bcf     __rp0___byte, __rp0___bit
5083 026b 092b          comf    rb2bus_eedata_write__address,w
5084 026c 1683          bsf     __rp0___byte, __rp0___bit
5085 026d 009a          movwf   _eedat
5086            
5087 026e 1283          bcf     __rp0___byte, __rp0___bit
5088                    ; line_number = 107
5089                    ;  loop_exactly 2 wrap-up
5090 026f 0bce          decfsz  rb2bus_eedata_write__1,f
5091 0270 2a5e          goto    rb2bus_eedata_write__2
5092                    ; line_number = 107
5093                    ;  loop_exactly 2 done
5094                    ; delay after procedure statements=non-uniform
5095                    ; Implied return
5096 0271 3400          retlw   0
5097            
5098            
5099            
5100            
5101                    ; Configuration bits
5102                    ; address = 0x2007, fill = 0x3000
5103                    ; fcmen = off (0x0)
5104                    ; ieso = off (0x0)
5105                    ; boden = off (0x0)
5106                    ; cpd = off (0x80)
5107                    ; cp = off (0x40)
5108                    ; mclre = off (0x0)
5109                    ; pwrte = off (0x10)
5110                    ; wdte = off (0x0)
5111                    ; fosc = ec (0x3)
5112                    ; 12499 = 0x30d3
5113   30d3 =           __config 12499
5114                    ; Define start addresses for data regions
5115                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
5116                    ; Region="globals___0" Address=32" Size=80 Bytes=47 Bits=4 Available=32
5117                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
5118                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
5119                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
5120                    end
