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