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   000001a0 = globals___3 equ 416
11   00000000 = __indf equ 0
12   00000002 = __pcl equ 2
13   00000003 = __status equ 3
14   00000004 = __fsr equ 4
15   00000003 = __c___byte equ 3
16   00000000 = __c___bit equ 0
17   00000003 = __z___byte equ 3
18   00000002 = __z___bit equ 2
19   00000003 = __rp0___byte equ 3
20   00000005 = __rp0___bit equ 5
21   00000003 = __rp1___byte equ 3
22   00000006 = __rp1___bit equ 6
23   00000003 = __irp___byte equ 3
24   00000007 = __irp___bit equ 7
25   0000000a = __pclath equ 10
26   0000000a = __cb0___byte equ 10
27   00000003 = __cb0___bit equ 3
28   0000000a = __cb1___byte equ 10
29   00000004 = __cb1___bit equ 4
30              
31                      ; # Copyright (c) 2000-2005 by Wayne C. Gramlich
32                      ; # All rights reserved.
33              
34                      ; buffer = 'io8'
35                      ; line_number = 6
36                      ; library _robobricks_pic16f688 entered
37              
38                      ; # Copyright (c) 2000-2005 by Wayne C. Gramlich and Bill Benson
39                      ; # All rights reserved.
40              
41                      ; buffer = '_robobricks_pic16f688'
42                      ; line_number = 6
43                      ; library _pic16f688 entered
44                      ; # Copyright (c) 2004 by Wayne C. Gramlich
45                      ; # All rights reserved.
46              
47                      ; buffer = '_pic16f688'
48                      ; line_number = 5
49                      ; processor pic16f688
50                      ; line_number = 6
51                      ; configure_address 0x2007
52                      ; line_number = 7
53                      ;  configure_fill 0x3000
54                      ; line_number = 8
55                      ;  configure_option fcmen: on = 0x800
56                      ; line_number = 9
57                      ;  configure_option fcmen: off = 0x000
58                      ; line_number = 10
59                      ;  configure_option ieso: on = 0x400
60                      ; line_number = 11
61                      ;  configure_option ieso: off = 0x000
62                      ; line_number = 12
63                      ;  configure_option boden: on = 0x300
64                      ; line_number = 13
65                      ;  configure_option boden: partial = 0x200
66                      ; line_number = 14
67                      ;  configure_option boden: sboden = 0x100
68                      ; line_number = 15
69                      ;  configure_option boden: off = 0x000
70                      ; line_number = 16
71                      ;  configure_option cpd: on = 0x00
72                      ; line_number = 17
73                      ;  configure_option cpd: off = 0x80
74                      ; line_number = 18
75                      ;  configure_option cp: on = 0x00
76                      ; line_number = 19
77                      ;  configure_option cp: off = 0x40
78                      ; line_number = 20
79                      ;  configure_option mclre: on = 0x20
80                      ; line_number = 21
81                      ;  configure_option mclre: off = 0x20
82                      ; line_number = 22
83                      ;  configure_option pwrte: on = 0x00
84                      ; line_number = 23
85                      ;  configure_option pwrte: off = 0x10
86                      ; line_number = 24
87                      ;  configure_option wdte: on = 8
88                      ; line_number = 25
89                      ;  configure_option wdte: off = 0
90                      ; line_number = 26
91                      ;  configure_option fosc: rc_clk = 7
92                      ; line_number = 27
93                      ;  configure_option fosc: rc_no_clk = 6
94                      ; line_number = 28
95                      ;  configure_option fosc: int_clk = 5
96                      ; line_number = 29
97                      ;  configure_option fosc: int_no_clk = 4
98                      ; line_number = 30
99                      ;  configure_option fosc: ec = 3
100                     ; line_number = 31
101                     ;  configure_option fosc: hs = 2
102                     ; line_number = 32
103                     ;  configure_option fosc: xt = 1
104                     ; line_number = 33
105                     ;  configure_option fosc: lp = 0
106             
107                     ; line_number = 35
108                     ;  code_bank 0x0 : 0xfff
109                     ; line_number = 36
110                     ;  data_bank 0x0 : 0x7f
111                     ; line_number = 37
112                     ;  data_bank 0x80 : 0xff
113                     ; line_number = 38
114                     ;  data_bank 0x100 : 0x17f
115                     ; line_number = 39
116                     ;  data_bank 0x180 : 0x1ff
117                     ; line_number = 40
118                     ;  global_region 0x20 : 0x6f
119                     ; line_number = 41
120                     ;  global_region 0xa0 : 0xef
121                     ; line_number = 42
122                     ;  global_region 0x120 : 0x16f
123                     ; line_number = 43
124                     ;  global_region 0x1a0 : 0x1ef
125                     ; line_number = 44
126                     ;  shared_region 0x70 : 0x7f
127                     ; line_number = 45
128                     ;  interrupts_possible
129                     ; line_number = 46
130                     ;  packages pdip=14, soic=14, tssop=14
131                     ; line_number = 47
132                     ;  pin vdd, power_supply
133                     ; line_number = 48
134                     ; pin_bindings pdip=1, soic=1, tssop=1
135                     ; line_number = 49
136                     ; pin ra5_in, ra5_nc, ra5_out, t1cki, osc1, clkin
137                     ; line_number = 50
138                     ; pin_bindings pdip=2, soic=2, tssop=2
139                     ; line_number = 51
140                     ;  bind_to _porta@5
141                     ; line_number = 52
142                     ;  or_if ra5_in _trisa 32
143                     ; line_number = 53
144                     ;  or_if ra5_nc _trisa 32
145                     ; line_number = 54
146                     ;  or_if ra5_out _trisa 0
147                     ; line_number = 55
148                     ; pin ra4_in, ra4_nc, ra4_out, t1g, osc2, an3, clkout
149                     ; line_number = 56
150                     ; pin_bindings pdip=3, soic=3, tssop=3
151                     ; line_number = 57
152                     ;  bind_to _porta@4
153                     ; line_number = 58
154                     ;  or_if ra4_in _trisa 16
155                     ; line_number = 59
156                     ;  or_if ra4_nc _trisa 16
157                     ; line_number = 60
158                     ;  or_if ra4_out _trisa 0
159                     ; line_number = 61
160                     ;  or_if an3 _trisa 8
161                     ; line_number = 62
162                     ;  or_if ra4_in _ansel 0
163                     ; line_number = 63
164                     ;  or_if ra4_out _ansel 0
165                     ; line_number = 64
166                     ;  or_if an3 _ansel 8
167                     ; line_number = 65
168                     ;  or_if ra4_in _adcon0 0
169                     ; line_number = 66
170                     ;  or_if ra4_out _adcon0 0
171                     ; line_number = 67
172                     ;  or_if an3 _adcon0 1
173                     ; line_number = 68
174                     ; pin ra3_in, ra3_nc, mclr, vpp
175                     ; line_number = 69
176                     ; pin_bindings pdip=4, soic=4, tssop=4
177                     ; line_number = 70
178                     ;  bind_to _porta@4
179                     ; line_number = 71
180                     ;  or_if ra3_in _trisa 8
181                     ; line_number = 72
182                     ;  or_if ra3_nc _trisa 8
183                     ; line_number = 73
184                     ; pin rc5_in, rc5_nc, rc5_out, rx, dt
185                     ; line_number = 74
186                     ; pin_bindings pdip=5, soic=5, tssop=5
187                     ; line_number = 75
188                     ;  bind_to _portc@5
189                     ; line_number = 76
190                     ;  or_if rc5_in _trisc 32
191                     ; line_number = 77
192                     ;  or_if rc5_nc _trisc 32
193                     ; line_number = 78
194                     ;  or_if rc5_out _trisc 0
195                     ; line_number = 79
196                     ;  or_if rx _trisc 32
197                     ; line_number = 80
198                     ; pin rc4_in, rc4_nc, rc4_out, c2out, tx, ck
199                     ; line_number = 81
200                     ; pin_bindings pdip=6, soic=6, tssop=6
201                     ; line_number = 82
202                     ;  bind_to _portc@4
203                     ; line_number = 83
204                     ;  or_if rc4_in _trisc 16
205                     ; line_number = 84
206                     ;  or_if rc4_nc _trisc 16
207                     ; line_number = 85
208                     ;  or_if rc4_out _trisc 0
209                     ; # The UART documentation says TX must be marked as in input:
210                     ; line_number = 87
211                     ;  or_if tx _trisc 16
212                     ; line_number = 88
213                     ; pin rc3_in, rc3_nc, rc3_out, an7
214                     ; line_number = 89
215                     ; pin_bindings pdip=7, soic=7, tssop=7
216                     ; line_number = 90
217                     ;  bind_to _portc@3
218                     ; line_number = 91
219                     ;  or_if rc3_in _trisc 8
220                     ; line_number = 92
221                     ;  or_if rc3_nc _trisc 8
222                     ; line_number = 93
223                     ;  or_if rc3_out _trisc 0
224                     ; line_number = 94
225                     ;  or_if an7 _trisc 8
226                     ; line_number = 95
227                     ;  or_if rc3_in _ansel 0
228                     ; line_number = 96
229                     ;  or_if rc3_out _ansel 0
230                     ; line_number = 97
231                     ;  or_if an7 _ansel 128
232                     ; line_number = 98
233                     ;  or_if rc3_in _adcon0 0
234                     ; line_number = 99
235                     ;  or_if rc3_out _adcon0 0
236                     ; line_number = 100
237                     ;  or_if an7 _adcon0 1
238                     ; line_number = 101
239                     ; pin rc2_in, rc2_nc, rc2_out, an6
240                     ; line_number = 102
241                     ; pin_bindings pdip=8, soic=8, tssop=8
242                     ; line_number = 103
243                     ;  bind_to _portc@2
244                     ; line_number = 104
245                     ;  or_if rc2_in _trisc 4
246                     ; line_number = 105
247                     ;  or_if rc2_nc _trisc 4
248                     ; line_number = 106
249                     ;  or_if rc2_out _trisc 0
250                     ; line_number = 107
251                     ;  or_if an6 _trisc 4
252                     ; line_number = 108
253                     ;  or_if rc2_in _ansel 0
254                     ; line_number = 109
255                     ;  or_if rc2_out _ansel 0
256                     ; line_number = 110
257                     ;  or_if an6 _ansel 64
258                     ; line_number = 111
259                     ;  or_if rc2_in _adcon0 0
260                     ; line_number = 112
261                     ;  or_if rc2_out _adcon0 0
262                     ; line_number = 113
263                     ;  or_if an6 _adcon0 1
264                     ; line_number = 114
265                     ; pin rc1_in, rc1_nc, rc1_out, an5, c2in_minus
266                     ; line_number = 115
267                     ; pin_bindings pdip=9, soic=9, tssop=9
268                     ; line_number = 116
269                     ;  bind_to _portc@1
270                     ; line_number = 117
271                     ;  or_if rc1_in _trisc 2
272                     ; line_number = 118
273                     ;  or_if rc1_nc _trisc 2
274                     ; line_number = 119
275                     ;  or_if rc1_out _trisc 0
276                     ; line_number = 120
277                     ;  or_if rc1_in _cmcon0 7
278                     ; line_number = 121
279                     ;  or_if rc1_out _cmcon0 7
280                     ; line_number = 122
281                     ;  or_if an5 _trisc 2
282                     ; line_number = 123
283                     ;  or_if rc1_in _ansel 0
284                     ; line_number = 124
285                     ;  or_if rc1_out _ansel 0
286                     ; line_number = 125
287                     ;  or_if an5 _ansel 32
288                     ; line_number = 126
289                     ;  or_if rc1_in _adcon0 0
290                     ; line_number = 127
291                     ;  or_if rc1_out _adcon0 0
292                     ; line_number = 128
293                     ;  or_if an5 _adcon0 1
294                     ; line_number = 129
295                     ; pin rc0_in, rc0_nc, rc0_out, an4, c2in_plus
296                     ; line_number = 130
297                     ; pin_bindings pdip=10, soic=10, tssop=10
298                     ; line_number = 131
299                     ;  bind_to _portc@0
300                     ; line_number = 132
301                     ;  or_if rc0_in _trisc 1
302                     ; line_number = 133
303                     ;  or_if rc0_nc _trisc 1
304                     ; line_number = 134
305                     ;  or_if rc0_out _trisc 0
306                     ; line_number = 135
307                     ;  or_if rc0_in _cmcon0 7
308                     ; line_number = 136
309                     ;  or_if rc0_out _cmcon0 7
310                     ; line_number = 137
311                     ;  or_if an4 _trisc 1
312                     ; line_number = 138
313                     ;  or_if rc0_in _ansel 0
314                     ; line_number = 139
315                     ;  or_if rc0_out _ansel 0
316                     ; line_number = 140
317                     ;  or_if an4 _ansel 16
318                     ; line_number = 141
319                     ;  or_if rc0_in _adcon0 0
320                     ; line_number = 142
321                     ;  or_if rc0_out _adcon0 0
322                     ; line_number = 143
323                     ;  or_if an4 _adcon0 1
324                     ; line_number = 144
325                     ; pin ra2_in, ra2_nc, ra2_out, an2, c1out, t0cki, int
326                     ; line_number = 145
327                     ; pin_bindings pdip=11, soic=11, tssop=11
328                     ; line_number = 146
329                     ;  bind_to _porta@2
330                     ; line_number = 147
331                     ;  or_if ra2_in _trisa 4
332                     ; line_number = 148
333                     ;  or_if ra2_nc _trisa 4
334                     ; line_number = 149
335                     ;  or_if ra2_out _trisa 0
336                     ; line_number = 150
337                     ;  or_if an2 _trisa 4
338                     ; line_number = 151
339                     ;  or_if ra2_in _ansel 0
340                     ; line_number = 152
341                     ;  or_if ra2_out _ansel 0
342                     ; line_number = 153
343                     ;  or_if an2 _ansel 4
344                     ; line_number = 154
345                     ;  or_if ra2_in _adcon0 0
346                     ; line_number = 155
347                     ;  or_if ra2_out _adcon0 0
348                     ; line_number = 156
349                     ;  or_if an2 _adcon0 1
350                     ; line_number = 157
351                     ; pin ra1_in, ra1_nc, ra1_out, an1, c1in_minus, vref, icspclk
352                     ; line_number = 158
353                     ; pin_bindings pdip=12, soic=12, tssop=12
354                     ; line_number = 159
355                     ;  bind_to _porta@1
356                     ; line_number = 160
357                     ;  or_if ra1_in _trisa 2
358                     ; line_number = 161
359                     ;  or_if ra1_nc _trisa 2
360                     ; line_number = 162
361                     ;  or_if ra1_out _trisa 0
362                     ; line_number = 163
363                     ;  or_if ra1_in _cmcon0 7
364                     ; line_number = 164
365                     ;  or_if ra1_out _cmcon0 7
366                     ; line_number = 165
367                     ;  or_if an1 _trisa 2
368                     ; line_number = 166
369                     ;  or_if ra1_in _ansel 0
370                     ; line_number = 167
371                     ;  or_if ra1_out _ansel 0
372                     ; line_number = 168
373                     ;  or_if an1 _ansel 2
374                     ; line_number = 169
375                     ;  or_if ra1_in _adcon0 0
376                     ; line_number = 170
377                     ;  or_if ra1_out _adcon0 0
378                     ; line_number = 171
379                     ;  or_if an1 _adcon0 1
380                     ; line_number = 172
381                     ; pin ra0_in, ra0_nc, ra0_out, an0, c1in_plus, icspdat, ulpwu
382                     ; line_number = 173
383                     ; pin_bindings pdip=13, soic=13, tssop=13
384                     ; line_number = 174
385                     ;  bind_to _porta@0
386                     ; line_number = 175
387                     ;  or_if ra0_in _trisa 1
388                     ; line_number = 176
389                     ;  or_if ra0_nc _trisa 1
390                     ; line_number = 177
391                     ;  or_if ra0_out _trisa 0
392                     ; line_number = 178
393                     ;  or_if ra0_in _cmcon0 7
394                     ; line_number = 179
395                     ;  or_if ra0_out _cmcon0 7
396                     ; line_number = 180
397                     ;  or_if an0 _trisa 1
398                     ; line_number = 181
399                     ;  or_if ra0_in _ansel 0
400                     ; line_number = 182
401                     ;  or_if ra0_out _ansel 0
402                     ; line_number = 183
403                     ;  or_if an0 _ansel 1
404                     ; line_number = 184
405                     ;  or_if ra0_in _adcon0 0
406                     ; line_number = 185
407                     ;  or_if ra0_out _adcon0 0
408                     ; line_number = 186
409                     ;  or_if an0 _adcon0 1
410                     ; line_number = 187
411                     ; pin vss, ground
412                     ; line_number = 188
413                     ; pin_bindings pdip=14, soic=14, tssop=14
414             
415             
416                     ; # Register/bit bindings:
417             
418                     ; # Databank 0 (0x0 - 0x7f):
419             
420                     ; line_number = 197
421                     ; register _indf = 
422  00000000 = _indf equ 0
423             
424                     ; line_number = 199
425                     ; register _tmr0 = 
426  00000001 = _tmr0 equ 1
427             
428                     ; line_number = 201
429                     ; register _pcl = 
430  00000002 = _pcl equ 2
431             
432                     ; line_number = 203
433                     ; register _status = 
434  00000003 = _status equ 3
435                     ; line_number = 204
436                     ; bind _irp = _status@7
437  00000003 = _irp___byte equ _status
438  00000007 = _irp___bit equ 7
439                     ; line_number = 205
440                     ; bind _rp1 = _status@5
441  00000003 = _rp1___byte equ _status
442  00000005 = _rp1___bit equ 5
443                     ; line_number = 206
444                     ; bind _rp0 = _status@5
445  00000003 = _rp0___byte equ _status
446  00000005 = _rp0___bit equ 5
447                     ; line_number = 207
448                     ; bind _to = _status@4
449  00000003 = _to___byte equ _status
450  00000004 = _to___bit equ 4
451                     ; line_number = 208
452                     ; bind _pd = _status@3
453  00000003 = _pd___byte equ _status
454  00000003 = _pd___bit equ 3
455                     ; line_number = 209
456                     ; bind _z = _status@2
457  00000003 = _z___byte equ _status
458  00000002 = _z___bit equ 2
459                     ; line_number = 210
460                     ; bind _dc = _status@1
461  00000003 = _dc___byte equ _status
462  00000001 = _dc___bit equ 1
463                     ; line_number = 211
464                     ; bind _c = _status@0
465  00000003 = _c___byte equ _status
466  00000000 = _c___bit equ 0
467             
468                     ; line_number = 213
469                     ; register _fsr = 
470  00000004 = _fsr equ 4
471             
472                     ; line_number = 215
473                     ; register _porta = 
474  00000005 = _porta equ 5
475                     ; line_number = 216
476                     ; register _ra = 
477  00000005 = _ra equ 5
478                     ; line_number = 217
479                     ; bind _ra5 = _porta@5
480  00000005 = _ra5___byte equ _porta
481  00000005 = _ra5___bit equ 5
482                     ; line_number = 218
483                     ; bind _ra4 = _porta@4
484  00000005 = _ra4___byte equ _porta
485  00000004 = _ra4___bit equ 4
486                     ; line_number = 219
487                     ; bind _ra3 = _porta@3
488  00000005 = _ra3___byte equ _porta
489  00000003 = _ra3___bit equ 3
490                     ; line_number = 220
491                     ; bind _ra2 = _porta@2
492  00000005 = _ra2___byte equ _porta
493  00000002 = _ra2___bit equ 2
494                     ; line_number = 221
495                     ; bind _ra1 = _porta@1
496  00000005 = _ra1___byte equ _porta
497  00000001 = _ra1___bit equ 1
498                     ; line_number = 222
499                     ; bind _ra0 = _porta@0
500  00000005 = _ra0___byte equ _porta
501  00000000 = _ra0___bit equ 0
502             
503                     ; line_number = 224
504                     ; register _portc = 
505  00000007 = _portc equ 7
506                     ; line_number = 225
507                     ; register _rc = 
508  00000007 = _rc equ 7
509                     ; line_number = 226
510                     ; bind _rc5 = _portc@5
511  00000007 = _rc5___byte equ _portc
512  00000005 = _rc5___bit equ 5
513                     ; line_number = 227
514                     ; bind _rc4 = _portc@4
515  00000007 = _rc4___byte equ _portc
516  00000004 = _rc4___bit equ 4
517                     ; line_number = 228
518                     ; bind _rc3 = _portc@3
519  00000007 = _rc3___byte equ _portc
520  00000003 = _rc3___bit equ 3
521                     ; line_number = 229
522                     ; bind _rc2 = _portc@2
523  00000007 = _rc2___byte equ _portc
524  00000002 = _rc2___bit equ 2
525                     ; line_number = 230
526                     ; bind _rc1 = _portc@1
527  00000007 = _rc1___byte equ _portc
528  00000001 = _rc1___bit equ 1
529                     ; line_number = 231
530                     ; bind _rc0 = _portc@0
531  00000007 = _rc0___byte equ _portc
532  00000000 = _rc0___bit equ 0
533             
534                     ; line_number = 233
535                     ; register _pclath = 
536  0000000a = _pclath equ 10
537             
538                     ; line_number = 235
539                     ; register _intcon = 
540  0000000b = _intcon equ 11
541                     ; line_number = 236
542                     ; bind _gie = _intcon@7
543  0000000b = _gie___byte equ _intcon
544  00000007 = _gie___bit equ 7
545                     ; line_number = 237
546                     ; bind _peie = _intcon@6
547  0000000b = _peie___byte equ _intcon
548  00000006 = _peie___bit equ 6
549                     ; line_number = 238
550                     ; bind _t0ie = _intcon@5
551  0000000b = _t0ie___byte equ _intcon
552  00000005 = _t0ie___bit equ 5
553                     ; line_number = 239
554                     ; bind _inte = _intcon@4
555  0000000b = _inte___byte equ _intcon
556  00000004 = _inte___bit equ 4
557                     ; line_number = 240
558                     ; bind _raie = _intcon@3
559  0000000b = _raie___byte equ _intcon
560  00000003 = _raie___bit equ 3
561                     ; line_number = 241
562                     ; bind _t0if = _intcon@2
563  0000000b = _t0if___byte equ _intcon
564  00000002 = _t0if___bit equ 2
565                     ; line_number = 242
566                     ; bind _intf = _intcon@1
567  0000000b = _intf___byte equ _intcon
568  00000001 = _intf___bit equ 1
569                     ; line_number = 243
570                     ; bind _raif = _intcon@0
571  0000000b = _raif___byte equ _intcon
572  00000000 = _raif___bit equ 0
573             
574                     ; line_number = 245
575                     ; register _pir1 = 
576  0000000c = _pir1 equ 12
577                     ; line_number = 246
578                     ; bind _eeif = _pir1@7
579  0000000c = _eeif___byte equ _pir1
580  00000007 = _eeif___bit equ 7
581                     ; line_number = 247
582                     ; bind _adif = _pir1@6
583  0000000c = _adif___byte equ _pir1
584  00000006 = _adif___bit equ 6
585                     ; line_number = 248
586                     ; bind _rcif = _pir1@5
587  0000000c = _rcif___byte equ _pir1
588  00000005 = _rcif___bit equ 5
589                     ; line_number = 249
590                     ; bind _c2if = _pir1@4
591  0000000c = _c2if___byte equ _pir1
592  00000004 = _c2if___bit equ 4
593                     ; line_number = 250
594                     ; bind _c1if = _pir1@3
595  0000000c = _c1if___byte equ _pir1
596  00000003 = _c1if___bit equ 3
597                     ; line_number = 251
598                     ; bind _osfif = _pir1@2
599  0000000c = _osfif___byte equ _pir1
600  00000002 = _osfif___bit equ 2
601                     ; line_number = 252
602                     ; bind _txif = _pir1@1
603  0000000c = _txif___byte equ _pir1
604  00000001 = _txif___bit equ 1
605                     ; line_number = 253
606                     ; bind _tmr1if = _pir1@0
607  0000000c = _tmr1if___byte equ _pir1
608  00000000 = _tmr1if___bit equ 0
609             
610                     ; line_number = 255
611                     ; register _tmr1l = 
612  0000000e = _tmr1l equ 14
613             
614                     ; line_number = 257
615                     ; register _tmr1h = 
616  0000000f = _tmr1h equ 15
617             
618                     ; line_number = 259
619                     ; register _t1con = 
620  00000010 = _t1con equ 16
621                     ; line_number = 260
622                     ; bind t1ginv = _t1con@7
623  00000010 = t1ginv___byte equ _t1con
624  00000007 = t1ginv___bit equ 7
625                     ; line_number = 261
626                     ; bind _tmr1ge = _t1con@6
627  00000010 = _tmr1ge___byte equ _t1con
628  00000006 = _tmr1ge___bit equ 6
629                     ; line_number = 262
630                     ; bind _t1ckps1 = _t1con@5
631  00000010 = _t1ckps1___byte equ _t1con
632  00000005 = _t1ckps1___bit equ 5
633                     ; line_number = 263
634                     ; bind _t1ckps0 = _t1con@4
635  00000010 = _t1ckps0___byte equ _t1con
636  00000004 = _t1ckps0___bit equ 4
637                     ; line_number = 264
638                     ; bind _t1oscen = _t1con@3
639  00000010 = _t1oscen___byte equ _t1con
640  00000003 = _t1oscen___bit equ 3
641                     ; line_number = 265
642                     ; bind _t1sync = _t1con@2
643  00000010 = _t1sync___byte equ _t1con
644  00000002 = _t1sync___bit equ 2
645                     ; line_number = 266
646                     ; bind _tmr1cs = _t1con@1
647  00000010 = _tmr1cs___byte equ _t1con
648  00000001 = _tmr1cs___bit equ 1
649                     ; line_number = 267
650                     ; bind _tmr1on = _t1con@0
651  00000010 = _tmr1on___byte equ _t1con
652  00000000 = _tmr1on___bit equ 0
653             
654                     ; line_number = 269
655                     ; register _baudctl = 
656  00000011 = _baudctl equ 17
657                     ; line_number = 270
658                     ; bind _abdovf = _baudctl@7
659  00000011 = _abdovf___byte equ _baudctl
660  00000007 = _abdovf___bit equ 7
661                     ; line_number = 271
662                     ; bind _rcidl = _baudctl@6
663  00000011 = _rcidl___byte equ _baudctl
664  00000006 = _rcidl___bit equ 6
665                     ; line_number = 272
666                     ; bind _sckp = _baudctl@4
667  00000011 = _sckp___byte equ _baudctl
668  00000004 = _sckp___bit equ 4
669                     ; line_number = 273
670                     ; bind _brg16 = _baudctl@3
671  00000011 = _brg16___byte equ _baudctl
672  00000003 = _brg16___bit equ 3
673                     ; line_number = 274
674                     ; bind _wue = _baudctl@1
675  00000011 = _wue___byte equ _baudctl
676  00000001 = _wue___bit equ 1
677                     ; line_number = 275
678                     ; bind _abden = _baudctl@0
679  00000011 = _abden___byte equ _baudctl
680  00000000 = _abden___bit equ 0
681             
682                     ; line_number = 277
683                     ; register _spbrgh = 
684  00000012 = _spbrgh equ 18
685             
686                     ; line_number = 279
687                     ; register _spbrg = 
688  00000013 = _spbrg equ 19
689             
690                     ; line_number = 281
691                     ; register _rcreg = 
692  00000014 = _rcreg equ 20
693             
694                     ; line_number = 283
695                     ; register _txreg = 
696  00000015 = _txreg equ 21
697             
698                     ; line_number = 285
699                     ; register _txsta = 
700  00000016 = _txsta equ 22
701                     ; line_number = 286
702                     ; bind _csrc = _txsta@7
703  00000016 = _csrc___byte equ _txsta
704  00000007 = _csrc___bit equ 7
705                     ; line_number = 287
706                     ; bind _tx9 = _txsta@6
707  00000016 = _tx9___byte equ _txsta
708  00000006 = _tx9___bit equ 6
709                     ; line_number = 288
710                     ; bind _txen = _txsta@5
711  00000016 = _txen___byte equ _txsta
712  00000005 = _txen___bit equ 5
713                     ; line_number = 289
714                     ; bind _sync = _txsta@4
715  00000016 = _sync___byte equ _txsta
716  00000004 = _sync___bit equ 4
717                     ; line_number = 290
718                     ; bind _sendb = _txsta@3
719  00000016 = _sendb___byte equ _txsta
720  00000003 = _sendb___bit equ 3
721                     ; line_number = 291
722                     ; bind _brgh = _txsta@2
723  00000016 = _brgh___byte equ _txsta
724  00000002 = _brgh___bit equ 2
725                     ; line_number = 292
726                     ; bind _trmt = _txsta@1
727  00000016 = _trmt___byte equ _txsta
728  00000001 = _trmt___bit equ 1
729                     ; line_number = 293
730                     ; bind _tx9d = _txsta@7
731  00000016 = _tx9d___byte equ _txsta
732  00000007 = _tx9d___bit equ 7
733             
734                     ; line_number = 295
735                     ; register _rcsta = 
736  00000017 = _rcsta equ 23
737                     ; line_number = 296
738                     ; bind _spen = _rcsta@7
739  00000017 = _spen___byte equ _rcsta
740  00000007 = _spen___bit equ 7
741                     ; line_number = 297
742                     ; bind _rx9 = _rcsta@6
743  00000017 = _rx9___byte equ _rcsta
744  00000006 = _rx9___bit equ 6
745                     ; line_number = 298
746                     ; bind _sren = _rcsta@5
747  00000017 = _sren___byte equ _rcsta
748  00000005 = _sren___bit equ 5
749                     ; line_number = 299
750                     ; bind _cren = _rcsta@4
751  00000017 = _cren___byte equ _rcsta
752  00000004 = _cren___bit equ 4
753                     ; line_number = 300
754                     ; bind _adden = _rcsta@3
755  00000017 = _adden___byte equ _rcsta
756  00000003 = _adden___bit equ 3
757                     ; line_number = 301
758                     ; bind _ferr = _rcsta@2
759  00000017 = _ferr___byte equ _rcsta
760  00000002 = _ferr___bit equ 2
761                     ; line_number = 302
762                     ; bind _oerr = _rcsta@1
763  00000017 = _oerr___byte equ _rcsta
764  00000001 = _oerr___bit equ 1
765                     ; line_number = 303
766                     ; bind _rx9d = _rcsta@0
767  00000017 = _rx9d___byte equ _rcsta
768  00000000 = _rx9d___bit equ 0
769             
770                     ; line_number = 305
771                     ; register _wdtcon = 
772  00000018 = _wdtcon equ 24
773                     ; line_number = 306
774                     ; bind _wdtps3 = _wdtcon@4
775  00000018 = _wdtps3___byte equ _wdtcon
776  00000004 = _wdtps3___bit equ 4
777                     ; line_number = 307
778                     ; bind _wdtps2 = _wdtcon@3
779  00000018 = _wdtps2___byte equ _wdtcon
780  00000003 = _wdtps2___bit equ 3
781                     ; line_number = 308
782                     ; bind _wdtps1 = _wdtcon@2
783  00000018 = _wdtps1___byte equ _wdtcon
784  00000002 = _wdtps1___bit equ 2
785                     ; line_number = 309
786                     ; bind _wdtps0 = _wdtcon@1
787  00000018 = _wdtps0___byte equ _wdtcon
788  00000001 = _wdtps0___bit equ 1
789                     ; line_number = 310
790                     ; bind _swdten = _wdtcon@0
791  00000018 = _swdten___byte equ _wdtcon
792  00000000 = _swdten___bit equ 0
793             
794                     ; line_number = 312
795                     ; register _cmcon0 = 
796  00000019 = _cmcon0 equ 25
797                     ; line_number = 313
798                     ; bind _c1out = _cmcon0@7
799  00000019 = _c1out___byte equ _cmcon0
800  00000007 = _c1out___bit equ 7
801                     ; line_number = 314
802                     ; bind _c2out = _cmcon0@6
803  00000019 = _c2out___byte equ _cmcon0
804  00000006 = _c2out___bit equ 6
805                     ; line_number = 315
806                     ; bind _c1inv = _cmcon0@5
807  00000019 = _c1inv___byte equ _cmcon0
808  00000005 = _c1inv___bit equ 5
809                     ; line_number = 316
810                     ; bind _c2inv = _cmcon0@4
811  00000019 = _c2inv___byte equ _cmcon0
812  00000004 = _c2inv___bit equ 4
813                     ; line_number = 317
814                     ; bind _cis = _cmcon0@3
815  00000019 = _cis___byte equ _cmcon0
816  00000003 = _cis___bit equ 3
817                     ; line_number = 318
818                     ; bind _cm2 = _cmcon0@2
819  00000019 = _cm2___byte equ _cmcon0
820  00000002 = _cm2___bit equ 2
821                     ; line_number = 319
822                     ; bind _cm1 = _cmcon0@1
823  00000019 = _cm1___byte equ _cmcon0
824  00000001 = _cm1___bit equ 1
825                     ; line_number = 320
826                     ; bind _cm0 = _cmcon0@0
827  00000019 = _cm0___byte equ _cmcon0
828  00000000 = _cm0___bit equ 0
829             
830                     ; line_number = 322
831                     ; register _cmcon1 = 
832  0000001a = _cmcon1 equ 26
833                     ; line_number = 323
834                     ; bind _t1gss = _cmcon1@0
835  0000001a = _t1gss___byte equ _cmcon1
836  00000000 = _t1gss___bit equ 0
837                     ; line_number = 324
838                     ; bind _c2sync = _cmcon1@1
839  0000001a = _c2sync___byte equ _cmcon1
840  00000001 = _c2sync___bit equ 1
841             
842                     ; line_number = 326
843                     ; register _adresh = 
844  0000001e = _adresh equ 30
845             
846                     ; line_number = 328
847                     ; register _adcon0 = 
848  0000001f = _adcon0 equ 31
849                     ; line_number = 329
850                     ; bind _adfm = _adcon0@7
851  0000001f = _adfm___byte equ _adcon0
852  00000007 = _adfm___bit equ 7
853                     ; line_number = 330
854                     ; bind _vcfg = _adcon0@6
855  0000001f = _vcfg___byte equ _adcon0
856  00000006 = _vcfg___bit equ 6
857                     ; line_number = 331
858                     ; bind _chs2 = _adcon0@4
859  0000001f = _chs2___byte equ _adcon0
860  00000004 = _chs2___bit equ 4
861                     ; line_number = 332
862                     ; bind _chs1 = _adcon0@3
863  0000001f = _chs1___byte equ _adcon0
864  00000003 = _chs1___bit equ 3
865                     ; line_number = 333
866                     ; bind _chs0 = _adcon0@2
867  0000001f = _chs0___byte equ _adcon0
868  00000002 = _chs0___bit equ 2
869                     ; line_number = 334
870                     ; bind _go = _adcon0@1
871  0000001f = _go___byte equ _adcon0
872  00000001 = _go___bit equ 1
873                     ; line_number = 335
874                     ; bind _adon = _adcon0@0
875  0000001f = _adon___byte equ _adcon0
876  00000000 = _adon___bit equ 0
877             
878                     ; # Data bank 1 (0x80-0xff):
879             
880                     ; line_number = 339
881                     ; register _option_reg = 
882  00000081 = _option_reg equ 129
883                     ; line_number = 340
884                     ; bind _rapu = _option_reg@7
885  00000081 = _rapu___byte equ _option_reg
886  00000007 = _rapu___bit equ 7
887                     ; line_number = 341
888                     ; bind _intedg = _option_reg@6
889  00000081 = _intedg___byte equ _option_reg
890  00000006 = _intedg___bit equ 6
891                     ; line_number = 342
892                     ; bind _t0cs = _option_reg@5
893  00000081 = _t0cs___byte equ _option_reg
894  00000005 = _t0cs___bit equ 5
895                     ; line_number = 343
896                     ; bind _t0se = _option_reg@4
897  00000081 = _t0se___byte equ _option_reg
898  00000004 = _t0se___bit equ 4
899                     ; line_number = 344
900                     ; bind _psa = _option_reg@3
901  00000081 = _psa___byte equ _option_reg
902  00000003 = _psa___bit equ 3
903                     ; line_number = 345
904                     ; bind _ps2 = _option_reg@2
905  00000081 = _ps2___byte equ _option_reg
906  00000002 = _ps2___bit equ 2
907                     ; line_number = 346
908                     ; bind _ps1 = _option_reg@1
909  00000081 = _ps1___byte equ _option_reg
910  00000001 = _ps1___bit equ 1
911                     ; line_number = 347
912                     ; bind _ps0 = _option_reg@0
913  00000081 = _ps0___byte equ _option_reg
914  00000000 = _ps0___bit equ 0
915             
916                     ; line_number = 349
917                     ; register _trisa = 
918  00000085 = _trisa equ 133
919                     ; line_number = 350
920                     ; bind _trisa5 = _trisa@5
921  00000085 = _trisa5___byte equ _trisa
922  00000005 = _trisa5___bit equ 5
923                     ; line_number = 351
924                     ; bind _trisa4 = _trisa@4
925  00000085 = _trisa4___byte equ _trisa
926  00000004 = _trisa4___bit equ 4
927                     ; line_number = 352
928                     ; bind _trisa3 = _trisa@3
929  00000085 = _trisa3___byte equ _trisa
930  00000003 = _trisa3___bit equ 3
931                     ; line_number = 353
932                     ; bind _trisa2 = _trisa@2
933  00000085 = _trisa2___byte equ _trisa
934  00000002 = _trisa2___bit equ 2
935                     ; line_number = 354
936                     ; bind _trisa1 = _trisa@1
937  00000085 = _trisa1___byte equ _trisa
938  00000001 = _trisa1___bit equ 1
939                     ; line_number = 355
940                     ; bind _trisa0 = _trisa@0
941  00000085 = _trisa0___byte equ _trisa
942  00000000 = _trisa0___bit equ 0
943             
944                     ; line_number = 357
945                     ; register _trisc = 
946  00000087 = _trisc equ 135
947                     ; line_number = 358
948                     ; bind _trisc5 = _trisc@5
949  00000087 = _trisc5___byte equ _trisc
950  00000005 = _trisc5___bit equ 5
951                     ; line_number = 359
952                     ; bind _trisc4 = _trisc@4
953  00000087 = _trisc4___byte equ _trisc
954  00000004 = _trisc4___bit equ 4
955                     ; line_number = 360
956                     ; bind _trisc3 = _trisc@3
957  00000087 = _trisc3___byte equ _trisc
958  00000003 = _trisc3___bit equ 3
959                     ; line_number = 361
960                     ; bind _trisc2 = _trisc@2
961  00000087 = _trisc2___byte equ _trisc
962  00000002 = _trisc2___bit equ 2
963                     ; line_number = 362
964                     ; bind _trisc1 = _trisc@1
965  00000087 = _trisc1___byte equ _trisc
966  00000001 = _trisc1___bit equ 1
967                     ; line_number = 363
968                     ; bind _trisc0 = _trisc@0
969  00000087 = _trisc0___byte equ _trisc
970  00000000 = _trisc0___bit equ 0
971             
972                     ; line_number = 365
973                     ; register _pie1 = 
974  0000008c = _pie1 equ 140
975                     ; line_number = 366
976                     ; bind _eeie = _pie1@7
977  0000008c = _eeie___byte equ _pie1
978  00000007 = _eeie___bit equ 7
979                     ; line_number = 367
980                     ; bind _adie = _pie1@6
981  0000008c = _adie___byte equ _pie1
982  00000006 = _adie___bit equ 6
983                     ; line_number = 368
984                     ; bind _rcie = _pie1@5
985  0000008c = _rcie___byte equ _pie1
986  00000005 = _rcie___bit equ 5
987                     ; line_number = 369
988                     ; bind _c2ie = _pie1@4
989  0000008c = _c2ie___byte equ _pie1
990  00000004 = _c2ie___bit equ 4
991                     ; line_number = 370
992                     ; bind _c1ie = _pie1@3
993  0000008c = _c1ie___byte equ _pie1
994  00000003 = _c1ie___bit equ 3
995                     ; line_number = 371
996                     ; bind _osfie = _pie1@2
997  0000008c = _osfie___byte equ _pie1
998  00000002 = _osfie___bit equ 2
999                     ; line_number = 372
1000                    ; bind _txie = _pie1@1
1001 0000008c = _txie___byte equ _pie1
1002 00000001 = _txie___bit equ 1
1003                    ; line_number = 373
1004                    ; bind _tmr1ie = _pie1@0
1005 0000008c = _tmr1ie___byte equ _pie1
1006 00000000 = _tmr1ie___bit equ 0
1007            
1008                    ; line_number = 375
1009                    ; register _pcon = 
1010 0000008e = _pcon equ 142
1011                    ; line_number = 376
1012                    ; bind _ulpwue = _pcon@5
1013 0000008e = _ulpwue___byte equ _pcon
1014 00000005 = _ulpwue___bit equ 5
1015                    ; line_number = 377
1016                    ; bind _sboden = _pcon@4
1017 0000008e = _sboden___byte equ _pcon
1018 00000004 = _sboden___bit equ 4
1019                    ; line_number = 378
1020                    ; bind _por = _pcon@1
1021 0000008e = _por___byte equ _pcon
1022 00000001 = _por___bit equ 1
1023                    ; line_number = 379
1024                    ; bind _bod = _pcon@0
1025 0000008e = _bod___byte equ _pcon
1026 00000000 = _bod___bit equ 0
1027            
1028                    ; line_number = 381
1029                    ; register _osccon = 
1030 0000008f = _osccon equ 143
1031                    ; line_number = 382
1032                    ; bind _ircf2 = _osccon@6
1033 0000008f = _ircf2___byte equ _osccon
1034 00000006 = _ircf2___bit equ 6
1035                    ; line_number = 383
1036                    ; bind _ircf1 = _osccon@5
1037 0000008f = _ircf1___byte equ _osccon
1038 00000005 = _ircf1___bit equ 5
1039                    ; line_number = 384
1040                    ; bind _ircf0 = _osccon@4
1041 0000008f = _ircf0___byte equ _osccon
1042 00000004 = _ircf0___bit equ 4
1043                    ; line_number = 385
1044                    ; bind _osts = _osccon@3
1045 0000008f = _osts___byte equ _osccon
1046 00000003 = _osts___bit equ 3
1047                    ; line_number = 386
1048                    ; bind _hts = _osccon@2
1049 0000008f = _hts___byte equ _osccon
1050 00000002 = _hts___bit equ 2
1051                    ; line_number = 387
1052                    ; bind _lts = _osccon@3
1053 0000008f = _lts___byte equ _osccon
1054 00000003 = _lts___bit equ 3
1055                    ; line_number = 388
1056                    ; bind _scs = _osccon@2
1057 0000008f = _scs___byte equ _osccon
1058 00000002 = _scs___bit equ 2
1059            
1060                    ; line_number = 390
1061                    ; register _osctune = 
1062 00000090 = _osctune equ 144
1063                    ; line_number = 391
1064                    ; bind _tun4 = _osctune@4
1065 00000090 = _tun4___byte equ _osctune
1066 00000004 = _tun4___bit equ 4
1067                    ; line_number = 392
1068                    ; bind _tun3 = _osctune@3
1069 00000090 = _tun3___byte equ _osctune
1070 00000003 = _tun3___bit equ 3
1071                    ; line_number = 393
1072                    ; bind _tun2 = _osctune@2
1073 00000090 = _tun2___byte equ _osctune
1074 00000002 = _tun2___bit equ 2
1075                    ; line_number = 394
1076                    ; bind _tun1 = _osctune@1
1077 00000090 = _tun1___byte equ _osctune
1078 00000001 = _tun1___bit equ 1
1079                    ; line_number = 395
1080                    ; bind _tun0 = _osctune@0
1081 00000090 = _tun0___byte equ _osctune
1082 00000000 = _tun0___bit equ 0
1083                    ; line_number = 396
1084                    ; constant _osccal_lsb = 1
1085 00000001 = _osccal_lsb equ 1
1086            
1087                    ; line_number = 398
1088                    ; register _ansel = 
1089 00000091 = _ansel equ 145
1090                    ; line_number = 399
1091                    ; bind _ans7 = _ansel@7
1092 00000091 = _ans7___byte equ _ansel
1093 00000007 = _ans7___bit equ 7
1094                    ; line_number = 400
1095                    ; bind _ans6 = _ansel@6
1096 00000091 = _ans6___byte equ _ansel
1097 00000006 = _ans6___bit equ 6
1098                    ; line_number = 401
1099                    ; bind _ans5 = _ansel@5
1100 00000091 = _ans5___byte equ _ansel
1101 00000005 = _ans5___bit equ 5
1102                    ; line_number = 402
1103                    ; bind _ans4 = _ansel@4
1104 00000091 = _ans4___byte equ _ansel
1105 00000004 = _ans4___bit equ 4
1106                    ; line_number = 403
1107                    ; bind _ans3 = _ansel@3
1108 00000091 = _ans3___byte equ _ansel
1109 00000003 = _ans3___bit equ 3
1110                    ; line_number = 404
1111                    ; bind _ans2 = _ansel@2
1112 00000091 = _ans2___byte equ _ansel
1113 00000002 = _ans2___bit equ 2
1114                    ; line_number = 405
1115                    ; bind _ans1 = _ansel@1
1116 00000091 = _ans1___byte equ _ansel
1117 00000001 = _ans1___bit equ 1
1118                    ; line_number = 406
1119                    ; bind _ans0 = _ansel@0
1120 00000091 = _ans0___byte equ _ansel
1121 00000000 = _ans0___bit equ 0
1122            
1123                    ; line_number = 408
1124                    ; register _wpua = 
1125 00000095 = _wpua equ 149
1126                    ; line_number = 409
1127                    ; bind _wpua5 = _wpua@5
1128 00000095 = _wpua5___byte equ _wpua
1129 00000005 = _wpua5___bit equ 5
1130                    ; line_number = 410
1131                    ; bind _wpua4 = _wpua@4
1132 00000095 = _wpua4___byte equ _wpua
1133 00000004 = _wpua4___bit equ 4
1134                    ; line_number = 411
1135                    ; bind _wpua2 = _wpua@2
1136 00000095 = _wpua2___byte equ _wpua
1137 00000002 = _wpua2___bit equ 2
1138                    ; line_number = 412
1139                    ; bind _wpua1 = _wpua@1
1140 00000095 = _wpua1___byte equ _wpua
1141 00000001 = _wpua1___bit equ 1
1142                    ; line_number = 413
1143                    ; bind _wpua0 = _wpua@0
1144 00000095 = _wpua0___byte equ _wpua
1145 00000000 = _wpua0___bit equ 0
1146            
1147                    ; line_number = 415
1148                    ; register _ioca = 
1149 00000096 = _ioca equ 150
1150                    ; line_number = 416
1151                    ; bind _ioca5 = _ioca@5
1152 00000096 = _ioca5___byte equ _ioca
1153 00000005 = _ioca5___bit equ 5
1154                    ; line_number = 417
1155                    ; bind _ioca4 = _ioca@4
1156 00000096 = _ioca4___byte equ _ioca
1157 00000004 = _ioca4___bit equ 4
1158                    ; line_number = 418
1159                    ; bind _ioca3 = _ioca@3
1160 00000096 = _ioca3___byte equ _ioca
1161 00000003 = _ioca3___bit equ 3
1162                    ; line_number = 419
1163                    ; bind _ioca2 = _ioca@2
1164 00000096 = _ioca2___byte equ _ioca
1165 00000002 = _ioca2___bit equ 2
1166                    ; line_number = 420
1167                    ; bind _ioca1 = _ioca@1
1168 00000096 = _ioca1___byte equ _ioca
1169 00000001 = _ioca1___bit equ 1
1170                    ; line_number = 421
1171                    ; bind _ioca0 = _ioca@0
1172 00000096 = _ioca0___byte equ _ioca
1173 00000000 = _ioca0___bit equ 0
1174            
1175                    ; line_number = 423
1176                    ; register _eedath = 
1177 00000097 = _eedath equ 151
1178            
1179                    ; line_number = 425
1180                    ; register _eeadrh = 
1181 00000098 = _eeadrh equ 152
1182            
1183                    ; line_number = 427
1184                    ; register _vrcon = 
1185 00000099 = _vrcon equ 153
1186                    ; line_number = 428
1187                    ; bind _vren = _vrcon@7
1188 00000099 = _vren___byte equ _vrcon
1189 00000007 = _vren___bit equ 7
1190                    ; line_number = 429
1191                    ; bind _vrr = _vrcon@5
1192 00000099 = _vrr___byte equ _vrcon
1193 00000005 = _vrr___bit equ 5
1194                    ; line_number = 430
1195                    ; bind _vr3 = _vrcon@3
1196 00000099 = _vr3___byte equ _vrcon
1197 00000003 = _vr3___bit equ 3
1198                    ; line_number = 431
1199                    ; bind _vr2 = _vrcon@2
1200 00000099 = _vr2___byte equ _vrcon
1201 00000002 = _vr2___bit equ 2
1202                    ; line_number = 432
1203                    ; bind _vr1 = _vrcon@1
1204 00000099 = _vr1___byte equ _vrcon
1205 00000001 = _vr1___bit equ 1
1206                    ; line_number = 433
1207                    ; bind _vr0 = _vrcon@0
1208 00000099 = _vr0___byte equ _vrcon
1209 00000000 = _vr0___bit equ 0
1210            
1211                    ; line_number = 435
1212                    ; register _eedata = 
1213 0000009a = _eedata equ 154
1214                    ; line_number = 436
1215                    ; bind _eedat7 = _eedata@7
1216 0000009a = _eedat7___byte equ _eedata
1217 00000007 = _eedat7___bit equ 7
1218                    ; line_number = 437
1219                    ; bind _eedat6 = _eedata@6
1220 0000009a = _eedat6___byte equ _eedata
1221 00000006 = _eedat6___bit equ 6
1222                    ; line_number = 438
1223                    ; bind _eedat5 = _eedata@5
1224 0000009a = _eedat5___byte equ _eedata
1225 00000005 = _eedat5___bit equ 5
1226                    ; line_number = 439
1227                    ; bind _eedat4 = _eedata@4
1228 0000009a = _eedat4___byte equ _eedata
1229 00000004 = _eedat4___bit equ 4
1230                    ; line_number = 440
1231                    ; bind _eedat3 = _eedata@3
1232 0000009a = _eedat3___byte equ _eedata
1233 00000003 = _eedat3___bit equ 3
1234                    ; line_number = 441
1235                    ; bind _eedat2 = _eedata@2
1236 0000009a = _eedat2___byte equ _eedata
1237 00000002 = _eedat2___bit equ 2
1238                    ; line_number = 442
1239                    ; bind _eedat1 = _eedata@1
1240 0000009a = _eedat1___byte equ _eedata
1241 00000001 = _eedat1___bit equ 1
1242                    ; line_number = 443
1243                    ; bind _eedat0 = _eedata@0
1244 0000009a = _eedat0___byte equ _eedata
1245 00000000 = _eedat0___bit equ 0
1246            
1247                    ; line_number = 445
1248                    ; register _eeadr = 
1249 0000009b = _eeadr equ 155
1250                    ; line_number = 446
1251                    ; bind _eeadr7 = _eeadr@7
1252 0000009b = _eeadr7___byte equ _eeadr
1253 00000007 = _eeadr7___bit equ 7
1254                    ; line_number = 447
1255                    ; bind _eeadr6 = _eeadr@6
1256 0000009b = _eeadr6___byte equ _eeadr
1257 00000006 = _eeadr6___bit equ 6
1258                    ; line_number = 448
1259                    ; bind _eeadr5 = _eeadr@5
1260 0000009b = _eeadr5___byte equ _eeadr
1261 00000005 = _eeadr5___bit equ 5
1262                    ; line_number = 449
1263                    ; bind _eeadr4 = _eeadr@4
1264 0000009b = _eeadr4___byte equ _eeadr
1265 00000004 = _eeadr4___bit equ 4
1266                    ; line_number = 450
1267                    ; bind _eeadr3 = _eeadr@3
1268 0000009b = _eeadr3___byte equ _eeadr
1269 00000003 = _eeadr3___bit equ 3
1270                    ; line_number = 451
1271                    ; bind _eeadr2 = _eeadr@2
1272 0000009b = _eeadr2___byte equ _eeadr
1273 00000002 = _eeadr2___bit equ 2
1274                    ; line_number = 452
1275                    ; bind _eeadr1 = _eeadr@1
1276 0000009b = _eeadr1___byte equ _eeadr
1277 00000001 = _eeadr1___bit equ 1
1278                    ; line_number = 453
1279                    ; bind _eeadr0 = _eeadr@0
1280 0000009b = _eeadr0___byte equ _eeadr
1281 00000000 = _eeadr0___bit equ 0
1282            
1283                    ; line_number = 455
1284                    ; register _eecon1 = 
1285 0000009c = _eecon1 equ 156
1286                    ; line_number = 456
1287                    ; bind _eepgd = _eecon1@7
1288 0000009c = _eepgd___byte equ _eecon1
1289 00000007 = _eepgd___bit equ 7
1290                    ; line_number = 457
1291                    ; bind _wrerr = _eecon1@3
1292 0000009c = _wrerr___byte equ _eecon1
1293 00000003 = _wrerr___bit equ 3
1294                    ; line_number = 458
1295                    ; bind _wren = _eecon1@2
1296 0000009c = _wren___byte equ _eecon1
1297 00000002 = _wren___bit equ 2
1298                    ; line_number = 459
1299                    ; bind _wr = _eecon1@1
1300 0000009c = _wr___byte equ _eecon1
1301 00000001 = _wr___bit equ 1
1302                    ; line_number = 460
1303                    ; bind _rd = _eecon1@0
1304 0000009c = _rd___byte equ _eecon1
1305 00000000 = _rd___bit equ 0
1306            
1307                    ; line_number = 462
1308                    ; register _eecon2 = 
1309 0000009d = _eecon2 equ 157
1310            
1311                    ; line_number = 464
1312                    ; register _adresl = 
1313 0000009e = _adresl equ 158
1314            
1315                    ; line_number = 466
1316                    ; register _adcon1 = 
1317 0000009f = _adcon1 equ 159
1318                    ; line_number = 467
1319                    ; bind _adcs2 = _adcon1@6
1320 0000009f = _adcs2___byte equ _adcon1
1321 00000006 = _adcs2___bit equ 6
1322                    ; line_number = 468
1323                    ; bind _adcs1 = _adcon1@5
1324 0000009f = _adcs1___byte equ _adcon1
1325 00000005 = _adcs1___bit equ 5
1326                    ; line_number = 469
1327                    ; bind _adcs0 = _adcon1@4
1328 0000009f = _adcs0___byte equ _adcon1
1329 00000004 = _adcs0___bit equ 4
1330            
1331                    ; # Data Bank 2 (0x100 - 0x17f):
1332            
1333                    ; buffer = '_robobricks_pic16f688'
1334                    ; line_number = 6
1335                    ; library _pic16f688 exited
1336                    ; line_number = 7
1337                    ; library clock8mhz entered
1338                    ; # Copyright (c) 2004-2005 by Wayne C. Gramlich
1339                    ; # All rights reserved.
1340            
1341                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1342                    ; # and {clocks_per_instruction}.
1343            
1344                    ; # Define processor constants:
1345                    ; buffer = 'clock8mhz'
1346                    ; line_number = 9
1347                    ; constant clock_rate = 8000000
1348 007a1200 = clock_rate equ 8000000
1349                    ; line_number = 10
1350                    ; constant clocks_per_instruction = 4
1351 00000004 = clocks_per_instruction equ 4
1352                    ; line_number = 11
1353                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1354 001e8480 = instruction_rate equ 2000000
1355                    ; line_number = 12
1356                    ; constant microsecond = 2
1357 00000002 = microsecond equ 2
1358            
1359            
1360                    ; buffer = '_robobricks_pic16f688'
1361                    ; line_number = 7
1362                    ; library clock8mhz exited
1363            
1364                    ; # Get some EUSART constants defined:
1365                    ; line_number = 10
1366                    ; constant _eusart_clock = clock_rate
1367 007a1200 = _eusart_clock equ 8000000
1368                    ; line_number = 11
1369                    ; constant _eusart_factor = 4
1370 00000004 = _eusart_factor equ 4
1371                    ; line_number = 12
1372                    ; library _eusart entered
1373            
1374                    ; # Copyright (c) 2005 by Wayne C. Gramlich
1375                    ; # All rights reserved.
1376            
1377                    ; # This library contains a bunch of definitions for the Enhanced Universal
1378                    ; # Asynchronous Serial Receiver/Transmitter (EUSART) that is available
1379                    ; # on many of the PIC microcontrollers.
1380            
1381                    ; # In order to use this module you have to get two constants defined
1382                    ; # BEFORE including this library -- {_eusart_factor} and {_eusart_clock}.
1383                    ; # {_eusart_clock} should be set to the frequency oscillator for the chip.
1384                    ; # {_eusart_factor} should be set to 4, 16, or 64 depending upon whether
1385                    ; # the {_brg16} and {_brgh} bits are set.  Use the table below to select:
1386                    ; #
1387                    ; #        _{brg16}	{_brgh}		_{eusart_factor}
1388                    ; #	    0		   0		      64
1389                    ; #	    0		   1		      16
1390                    ; #	    1		   0		      16
1391                    ; #	    1		   1		       
1392            
1393                    ; # 2400 baud:
1394                    ; buffer = '_eusart'
1395                    ; line_number = 23
1396                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1397 00000340 = _eusart_2400 equ 832
1398                    ; line_number = 24
1399                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1400 00000040 = _eusart_2400_low equ 64
1401                    ; line_number = 25
1402                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1403 00000003 = _eusart_2400_high equ 3
1404                    ; line_number = 26
1405                    ; constant _eusart_2400_index = 0
1406 00000000 = _eusart_2400_index equ 0
1407                    ; # 4800 baud:
1408                    ; line_number = 28
1409                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1410 0000019f = _eusart_4800 equ 415
1411                    ; line_number = 29
1412                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1413 0000009f = _eusart_4800_low equ 159
1414                    ; line_number = 30
1415                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1416 00000001 = _eusart_4800_high equ 1
1417                    ; line_number = 31
1418                    ; constant _eusart_4800_index = 1
1419 00000001 = _eusart_4800_index equ 1
1420                    ; # 9600 baud:
1421                    ; line_number = 33
1422                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1423 000000cf = _eusart_9600 equ 207
1424                    ; line_number = 34
1425                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1426 000000cf = _eusart_9600_low equ 207
1427                    ; line_number = 35
1428                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1429 00000000 = _eusart_9600_high equ 0
1430                    ; line_number = 36
1431                    ; constant _eusart_9600_index = 2
1432 00000002 = _eusart_9600_index equ 2
1433                    ; # 19200 baud:
1434                    ; line_number = 38
1435                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1436 00000067 = _eusart_19200 equ 103
1437                    ; line_number = 39
1438                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1439 00000067 = _eusart_19200_low equ 103
1440                    ; line_number = 40
1441                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1442 00000000 = _eusart_19200_high equ 0
1443                    ; line_number = 41
1444                    ; constant _eusart_19200_index = 3
1445 00000003 = _eusart_19200_index equ 3
1446                    ; # 38400 baud:
1447                    ; line_number = 43
1448                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1449 00000033 = _eusart_38400 equ 51
1450                    ; line_number = 44
1451                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1452 00000033 = _eusart_38400_low equ 51
1453                    ; line_number = 45
1454                    ; constant _eusart_38400_high = _eusart_38400 >> 8
1455 00000000 = _eusart_38400_high equ 0
1456                    ; line_number = 46
1457                    ; constant _eusart_38400_index = 4
1458 00000004 = _eusart_38400_index equ 4
1459                    ; # 57600 baud:
1460                    ; line_number = 48
1461                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1462 00000021 = _eusart_57600 equ 33
1463                    ; line_number = 49
1464                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1465 00000021 = _eusart_57600_low equ 33
1466                    ; line_number = 50
1467                    ; constant _eusart_57600_high = _eusart_57600 >> 8
1468 00000000 = _eusart_57600_high equ 0
1469                    ; line_number = 51
1470                    ; constant _eusart_57600_index = 5
1471 00000005 = _eusart_57600_index equ 5
1472                    ; # 115200 baud:
1473                    ; line_number = 53
1474                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1475 00000010 = _eusart_115200 equ 16
1476                    ; line_number = 54
1477                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1478 00000010 = _eusart_115200_low equ 16
1479                    ; line_number = 55
1480                    ; constant _eusart_115200_high = _eusart_115200 >> 8
1481 00000000 = _eusart_115200_high equ 0
1482                    ; line_number = 56
1483                    ; constant _eusart_115200_index = 6
1484 00000006 = _eusart_115200_index equ 6
1485                    ; # 203400 baud:
1486                    ; line_number = 58
1487                    ; constant _eusart_203400 = (_eusart_clock / (203400 * _eusart_factor)) - 1
1488 00000008 = _eusart_203400 equ 8
1489                    ; line_number = 59
1490                    ; constant _eusart_203400_low = _eusart_203400 & 0xff
1491 00000008 = _eusart_203400_low equ 8
1492                    ; line_number = 60
1493                    ; constant _eusart_203400_high = _eusart_203400 >> 8
1494 00000000 = _eusart_203400_high equ 0
1495                    ; line_number = 61
1496                    ; constant _eusart_203400_index = 7
1497 00000007 = _eusart_203400_index equ 7
1498            
1499            
1500                    ; buffer = '_robobricks_pic16f688'
1501                    ; line_number = 12
1502                    ; library _eusart exited
1503            
1504                    ; line_number = 14
1505                    ; global debug_mode bit
1506 0000006f = debug_mode___byte equ globals___0+79
1507 00000000 = debug_mode___bit equ 0
1508                    ; line_number = 15
1509                    ; global in_byte_get bit
1510 0000006f = in_byte_get___byte equ globals___0+79
1511 00000001 = in_byte_get___bit equ 1
1512            
1513                    ; Delaying code generation for procedure  byte_get
1514                    ; Delaying code generation for procedure  byte_put
1515                    ; Delaying code generation for procedure  baud_rate_low
1516                    ; Delaying code generation for procedure  baud_rate_high
1517            
1518                    ; buffer = 'io8'
1519                    ; line_number = 6
1520                    ; library _robobricks_pic16f688 exited
1521            
1522                    ; line_number = 8
1523                    ; package pdip
1524                    ; line_number = 9
1525                    ; pin 1 = power_supply
1526                    ; line_number = 10
1527                    ;  pin 2 = ra5_in, name=debug
1528 00000005 = debug___byte equ _porta
1529 00000005 = debug___bit equ 5
1530                    ; line_number = 11
1531                    ;  pin 3 = ra4_in, name=io2, mask=io2_mask, bit=io2_bit
1532 00000005 = io2___byte equ _porta
1533 00000004 = io2___bit equ 4
1534 00000010 = io2_mask equ 16
1535 00000004 = io2_bit equ 4
1536                    ; line_number = 12
1537                    ;  pin 4 = ra3_nc, name=nc1
1538 00000005 = nc1___byte equ _porta
1539 00000004 = nc1___bit equ 4
1540                    ; line_number = 13
1541                    ;  pin 5 = rx, name=rx
1542 00000007 = rx___byte equ _portc
1543 00000005 = rx___bit equ 5
1544                    ; line_number = 14
1545                    ;  pin 6 = tx, name=tx
1546 00000007 = tx___byte equ _portc
1547 00000004 = tx___bit equ 4
1548                    ; line_number = 15
1549                    ;  pin 7 = rc3_in, name=io7, mask=io7_mask, bit=io7_bit
1550 00000007 = io7___byte equ _portc
1551 00000003 = io7___bit equ 3
1552 00000008 = io7_mask equ 8
1553 00000003 = io7_bit equ 3
1554                    ; line_number = 16
1555                    ;  pin 8 = rc2_in, name=io6, mask=io6_mask, bit=io6_bit
1556 00000007 = io6___byte equ _portc
1557 00000002 = io6___bit equ 2
1558 00000004 = io6_mask equ 4
1559 00000002 = io6_bit equ 2
1560                    ; line_number = 17
1561                    ;  pin 9 = rc1_in, name=io5, mask=io5_mask, bit=io5_bit
1562 00000007 = io5___byte equ _portc
1563 00000001 = io5___bit equ 1
1564 00000002 = io5_mask equ 2
1565 00000001 = io5_bit equ 1
1566                    ; line_number = 18
1567                    ;  pin 10 = rc0_in, name=io4, mask=io4_mask, bit=io4_bit
1568 00000007 = io4___byte equ _portc
1569 00000000 = io4___bit equ 0
1570 00000001 = io4_mask equ 1
1571 00000000 = io4_bit equ 0
1572                    ; line_number = 19
1573                    ;  pin 11 = ra2_in, name=io3, mask=io3_mask, bit=io3_bit
1574 00000005 = io3___byte equ _porta
1575 00000002 = io3___bit equ 2
1576 00000004 = io3_mask equ 4
1577 00000002 = io3_bit equ 2
1578                    ; line_number = 20
1579                    ;  pin 12 = ra1_in, name=io1, mask=io1_mask, bit=io1_bit
1580 00000005 = io1___byte equ _porta
1581 00000001 = io1___bit equ 1
1582 00000002 = io1_mask equ 2
1583 00000001 = io1_bit equ 1
1584                    ; line_number = 21
1585                    ;  pin 13 = ra0_out, name=io0, mask=io0_mask, bit=io0_bit
1586 00000005 = io0___byte equ _porta
1587 00000000 = io0___bit equ 0
1588 00000001 = io0_mask equ 1
1589 00000000 = io0_bit equ 0
1590                    ; line_number = 22
1591                    ;  pin 14 = ground
1592            
1593                    ; # Pin bindings:6
1594            
1595                    ; # Some globals: byte
1596                    ; line_number = 27
1597                    ; constant state_size = 14
1598 0000000e = state_size equ 14
1599                    ; line_number = 28
1600                    ; constant state_size2 = state_size << 1
1601 0000001c = state_size2 equ 28
1602                    ; line_number = 29
1603                    ; global state[state_size] array[byte]
1604 00000023 = state equ globals___0+3
1605                    ; line_number = 30
1606                    ; bind command_previous = state[0]
1607 00000023 = command_previous equ globals___0+3
1608                    ; line_number = 31
1609                    ; bind command_last = state[1]
1610 00000024 = command_last equ globals___0+4
1611                    ; line_number = 32
1612                    ; bind sent_last = state[2]
1613 00000025 = sent_last equ globals___0+5
1614                    ; line_number = 33
1615                    ; bind sent_previous = state[3]
1616 00000026 = sent_previous equ globals___0+6
1617                    ; line_number = 34
1618                    ; bind raw = state[4]
1619 00000027 = raw equ globals___0+7
1620                    ; line_number = 35
1621                    ; bind direction = state[5]
1622 00000028 = direction equ globals___0+8
1623                    ; line_number = 36
1624                    ; bind outputs = state[6]
1625 00000029 = outputs equ globals___0+9
1626                    ; line_number = 37
1627                    ; bind complement_mask = state[7]
1628 0000002a = complement_mask equ globals___0+10
1629                    ; line_number = 38
1630                    ; bind flags = state[8]
1631 0000002b = flags equ globals___0+11
1632                    ; line_number = 39
1633                    ; bind low_mask = state[9]
1634 0000002c = low_mask equ globals___0+12
1635                    ; line_number = 40
1636                    ; bind high_mask = state[10]
1637 0000002d = high_mask equ globals___0+13
1638                    ; line_number = 41
1639                    ; bind rising_mask = state[11]
1640 0000002e = rising_mask equ globals___0+14
1641                    ; line_number = 42
1642                    ; bind falling_mask = state[12]
1643 0000002f = falling_mask equ globals___0+15
1644                    ; line_number = 43
1645                    ; bind analog_mask = state[13]
1646 00000030 = analog_mask equ globals___0+16
1647                    ; line_number = 44
1648                    ; global analogs_high[8] array[byte]
1649 00000031 = analogs_high equ globals___0+17
1650                    ; line_number = 45
1651                    ; global analogs_low[8] array[byte]
1652 00000039 = analogs_low equ globals___0+25
1653                    ; line_number = 46
1654                    ; global thresholds_high[8] array[byte]
1655 00000041 = thresholds_high equ globals___0+33
1656                    ; line_number = 47
1657                    ; global thresholds_low[8] array[byte]
1658 00000049 = thresholds_low equ globals___0+41
1659            
1660                    ; line_number = 49
1661                    ; bind interrupt_enable = flags@0
1662 0000002b = interrupt_enable___byte equ globals___0+11
1663 00000000 = interrupt_enable___bit equ 0
1664                    ; line_number = 50
1665                    ; bind interrupt_pending = flags@1
1666 0000002b = interrupt_pending___byte equ globals___0+11
1667 00000001 = interrupt_pending___bit equ 1
1668            
1669                    ; line_number = 52
1670                    ; global glitch byte
1671 00000051 = glitch equ globals___0+49
1672                    ; line_number = 53
1673                    ; global index byte
1674 00000052 = index equ globals___0+50
1675                    ; line_number = 54
1676                    ; global chan byte
1677 00000053 = chan equ globals___0+51
1678                    ; line_number = 55
1679                    ; global channel byte
1680 00000054 = channel equ globals___0+52
1681            
1682                    ; line_number = 57
1683                    ; origin 0
1684   0000 :           org     0
1685            
1686                    ; line_number = 59
1687                    ; procedure main
1688   0000 :   main:
1689                    ; Initialize some registers
1690 0000 019f          clrf    _adcon0
1691 0001 1683          bsf     __rp0___byte, __rp0___bit
1692 0002 0191          clrf    _ansel
1693 0003 3007          movlw   7
1694 0004 1283          bcf     __rp0___byte, __rp0___bit
1695 0005 0099          movwf   _cmcon0
1696 0006 303e          movlw   62
1697 0007 1683          bsf     __rp0___byte, __rp0___bit
1698 0008 0085          movwf   _trisa
1699 0009 303f          movlw   63
1700 000a 0087          movwf   _trisc
1701                    ; arguments_none
1702                    ; line_number = 61
1703                    ;  returns_nothing
1704            
1705                    ; line_number = 63
1706                    ;  local command byte
1707 00000055 = main__command equ globals___0+53
1708                    ; line_number = 64
1709                    ;  local temp byte
1710 00000056 = main__temp equ globals___0+54
1711                    ; line_number = 65
1712                    ;  local do_send bit
1713 0000006f = main__do_send___byte equ globals___0+79
1714 00000002 = main__do_send___bit equ 2
1715            
1716                    ; # Switch over to 8MHz:
1717                    ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:XX=>XX)
1718                    ; line_number = 68
1719                    ;  _osccon := 0x71
1720 000b 3071          movlw   113
1721 000c 008f          movwf   _osccon
1722            
1723                    ; # Warm up the UART:
1724                    ; line_number = 71
1725                    ;  _txsta := 0x24
1726 000d 3024          movlw   36
1727 000e 1283          bcf     __rp0___byte, __rp0___bit
1728 000f 0096          movwf   _txsta
1729                    ; line_number = 72
1730                    ;  _rcsta := 0x90
1731 0010 3090          movlw   144
1732 0011 0097          movwf   _rcsta
1733                    ; line_number = 73
1734                    ;  _baudctl := 0x08
1735 0012 3008          movlw   8
1736 0013 0091          movwf   _baudctl
1737                    ; line_number = 74
1738                    ;  _spbrg := _eusart_2400_low
1739 0014 3040          movlw   64
1740 0015 0093          movwf   _spbrg
1741                    ; line_number = 75
1742                    ;  _spbrgh := _eusart_2400_high
1743 0016 3003          movlw   3
1744 0017 0092          movwf   _spbrgh
1745            
1746                    ; # Initalize all of the globals:
1747                    ; line_number = 78
1748                    ;  call reset()
1749 0018 21eb          call    reset
1750            
1751                    ; # Process commands:
1752                    ; line_number = 81
1753                    ;  loop_forever start
1754   0019 :   main__1:
1755                    ; # Wait for command:
1756                    ; line_number = 83
1757                    ;  command := byte_get()
1758 0019 22e5          call    byte_get
1759 001a 00d5          movwf   main__command
1760            
1761                    ; # Dispatch on command 
1762                    ; line_number = 86
1763                    ;  switch command >> 6 start
1764 001b 3000          movlw   main__105>>8
1765 001c 008a          movwf   __pclath
1766 0000005d = main__106 equ globals___0+61
1767 001d 0e55          swapf   main__command,w
1768 001e 00dd          movwf   main__106
1769 001f 0cdd          rrf     main__106,f
1770 0020 0c5d          rrf     main__106,w
1771 0021 3903          andlw   3
1772 0022 3e24          addlw   main__105
1773 0023 0082          movwf   __pcl
1774                    ; page_group 4
1775   0024 :   main__105:
1776 0024 2828          goto    main__101
1777 0025 28c1          goto    main__102
1778 0026 28f4          goto    main__103
1779 0027 2939          goto    main__104
1780                    ; line_number = 88
1781                    ; case 0
1782   0028 :   main__101:
1783                    ; # 0000 xxxx:
1784                    ; line_number = 90
1785                    ;  switch command >> 4 start
1786 0028 3000          movlw   main__40>>8
1787 0029 008a          movwf   __pclath
1788 0000005d = main__41 equ globals___0+61
1789 002a 0e55          swapf   main__command,w
1790 002b 390f          andlw   15
1791 002c 3e2e          addlw   main__40
1792 002d 0082          movwf   __pcl
1793                    ; page_group 4
1794   002e :   main__40:
1795 002e 2832          goto    main__36
1796 002f 2876          goto    main__37
1797 0030 28b3          goto    main__38
1798 0031 28c0          goto    main__39
1799                    ; line_number = 91
1800                    ; case 0
1801   0032 :   main__36:
1802                    ; line_number = 92
1803                    ; do_send := 1
1804 0032 156f          bsf     main__do_send___byte, main__do_send___bit
1805                    ; line_number = 93
1806                    ;  switch command start
1807                    ; line_number = 94
1808                    ; case_maximum 15
1809 0033 3000          movlw   main__15>>8
1810 0034 008a          movwf   __pclath
1811 0035 0855          movf    main__command,w
1812 0036 3e38          addlw   main__15
1813 0037 0082          movwf   __pcl
1814                    ; page_group 16
1815   0038 :   main__15:
1816 0038 2848          goto    main__2
1817 0039 284c          goto    main__3
1818 003a 2850          goto    main__4
1819 003b 2853          goto    main__5
1820 003c 2856          goto    main__6
1821 003d 2859          goto    main__7
1822 003e 285c          goto    main__8
1823 003f 285f          goto    main__9
1824 0040 2862          goto    main__10
1825 0041 2865          goto    main__11
1826 0042 2868          goto    main__12
1827 0043 286b          goto    main__13
1828 0044 2870          goto    main__14
1829 0045 2870          goto    main__14
1830 0046 2870          goto    main__14
1831 0047 2870          goto    main__14
1832                    ; line_number = 95
1833                    ; case 0
1834   0048 :   main__2:
1835                    ; # 0000 0000 (Read Inputs):
1836                    ; line_number = 97
1837                    ;  temp := raw ^ complement_mask
1838 0048 0827          movf    raw,w
1839 0049 062a          xorwf   complement_mask,w
1840 004a 00d6          movwf   main__temp
1841 004b 2871          goto    main__16
1842                    ; line_number = 98
1843                    ; case 1
1844   004c :   main__3:
1845                    ; # 0000 0001 (Read Outputs):
1846                    ; line_number = 100
1847                    ;  temp := outputs ^ complement_mask
1848 004c 0829          movf    outputs,w
1849 004d 062a          xorwf   complement_mask,w
1850 004e 00d6          movwf   main__temp
1851 004f 2871          goto    main__16
1852                    ; line_number = 101
1853                    ; case 2
1854   0050 :   main__4:
1855                    ; # 0000 0010 (Read Direction):
1856                    ; line_number = 103
1857                    ;  temp := complement_mask
1858 0050 082a          movf    complement_mask,w
1859 0051 00d6          movwf   main__temp
1860 0052 2871          goto    main__16
1861                    ; line_number = 104
1862                    ; case 3
1863   0053 :   main__5:
1864                    ; # 0000 0011 (Read Raw):
1865                    ; line_number = 106
1866                    ;  temp := direction
1867 0053 0828          movf    direction,w
1868 0054 00d6          movwf   main__temp
1869 0055 2871          goto    main__16
1870                    ; line_number = 107
1871                    ; case 4
1872   0056 :   main__6:
1873                    ; # 0000 0100 (Read Read Low Mask):
1874                    ; line_number = 109
1875                    ;  temp := low_mask
1876 0056 082c          movf    low_mask,w
1877 0057 00d6          movwf   main__temp
1878 0058 2871          goto    main__16
1879                    ; line_number = 110
1880                    ; case 5
1881   0059 :   main__7:
1882                    ; # 0000 0101 (Read High Mask):
1883                    ; line_number = 112
1884                    ;  temp := high_mask
1885 0059 082d          movf    high_mask,w
1886 005a 00d6          movwf   main__temp
1887 005b 2871          goto    main__16
1888                    ; line_number = 113
1889                    ; case 6
1890   005c :   main__8:
1891                    ; # 0000 0110 (Read Rising Mask):
1892                    ; line_number = 115
1893                    ;  temp := rising_mask
1894 005c 082e          movf    rising_mask,w
1895 005d 00d6          movwf   main__temp
1896 005e 2871          goto    main__16
1897                    ; line_number = 116
1898                    ; case 7
1899   005f :   main__9:
1900                    ; # 0000 0111 (Read Falling Mask):
1901                    ; line_number = 118
1902                    ;  temp := falling_mask
1903 005f 082f          movf    falling_mask,w
1904 0060 00d6          movwf   main__temp
1905 0061 2871          goto    main__16
1906                    ; line_number = 119
1907                    ; case 8
1908   0062 :   main__10:
1909                    ; # 0000 1000 (Read Inputs Raw):
1910                    ; line_number = 121
1911                    ;  temp := raw
1912 0062 0827          movf    raw,w
1913 0063 00d6          movwf   main__temp
1914 0064 2871          goto    main__16
1915                    ; line_number = 122
1916                    ; case 9
1917   0065 :   main__11:
1918                    ; # 0000 1010 (Read Analog Mask):
1919                    ; line_number = 124
1920                    ;  temp := analog_mask
1921 0065 0830          movf    analog_mask,w
1922 0066 00d6          movwf   main__temp
1923 0067 2871          goto    main__16
1924                    ; line_number = 125
1925                    ; case 10
1926   0068 :   main__12:
1927                    ; # 0000 1001 (Read Outputs Raw):
1928                    ; line_number = 127
1929                    ;  temp := outputs
1930 0068 0829          movf    outputs,w
1931 0069 00d6          movwf   main__temp
1932 006a 2871          goto    main__16
1933                    ; line_number = 128
1934                    ; case 11
1935   006b :   main__13:
1936                    ; # 0000 1011 (Read Analog VRef):
1937                    ; line_number = 130
1938                    ;  temp := 0
1939 006b 3000          movlw   0
1940 006c 00d6          movwf   main__temp
1941                    ; line_number = 131
1942                    ;  if _vcfg start
1943                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1944                    ; CASE: True.size=1 False.size=0
1945 006d 1b1f          btfsc   _vcfg___byte, _vcfg___bit
1946                    ; line_number = 132
1947                    ; temp := temp + 1
1948 006e 0ad6          incf    main__temp,f
1949                    ; Recombine size1 = 0 || size2 = 0
1950                    ; code.delay=4294967295 back_code.delay=4294967295
1951                    ; <=bit_code_emit@symbol; sym=_vcfg (data:00=>00 code:XX=>XX)
1952                    ; line_number = 131
1953                    ;  if _vcfg done
1954 006f 2871          goto    main__16
1955                    ; line_number = 133
1956                    ; default
1957   0070 :   main__14:
1958                    ; # 0000 101x or 0000 11xx (Do nothing):
1959                    ; line_number = 135
1960                    ;  do_send := 0
1961 0070 116f          bcf     main__do_send___byte, main__do_send___bit
1962   0071 :   main__16:
1963                    ; switch end:(data:XX=>00 code:XX=>XX)
1964                    ; line_number = 93
1965                    ;  switch command done
1966                    ; line_number = 136
1967                    ; if do_send start
1968                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1969                    ; CASE: true_code.size = 0 && false_code.size > 1
1970                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
1971 0071 1d6f          btfss   main__do_send___byte, main__do_send___bit
1972 0072 2875          goto    main__17
1973                    ; line_number = 137
1974                    ; call byte_put(temp)
1975 0073 0856          movf    main__temp,w
1976 0074 22f1          call    byte_put
1977                    ; Recombine size1 = 0 || size2 = 0
1978   0075 :   main__17:
1979                    ; code.delay=4294967295 back_code.delay=4294967295
1980                    ; <=bit_code_emit@symbol; sym=main__do_send (data:XX=>00 code:XX=>XX)
1981                    ; line_number = 136
1982                    ; if do_send done
1983 0075 28c0          goto    main__42
1984                    ; line_number = 138
1985                    ; case 1
1986   0076 :   main__37:
1987                    ; # 0001 xxxx:
1988                    ; line_number = 140
1989                    ;  switch command & 15 start
1990                    ; line_number = 141
1991                    ; case_maximum 15
1992 0076 3000          movlw   main__31>>8
1993 0077 008a          movwf   __pclath
1994 0078 300f          movlw   15
1995 0079 0555          andwf   main__command,w
1996 007a 3e7c          addlw   main__31
1997 007b 0082          movwf   __pcl
1998                    ; page_group 16
1999   007c :   main__31:
2000 007c 288c          goto    main__18
2001 007d 288f          goto    main__19
2002 007e 2893          goto    main__20
2003 007f 2896          goto    main__21
2004 0080 289a          goto    main__22
2005 0081 289d          goto    main__23
2006 0082 28a0          goto    main__24
2007 0083 28a3          goto    main__25
2008 0084 28a6          goto    main__26
2009 0085 28a9          goto    main__27
2010 0086 28ad          goto    main__28
2011 0087 28af          goto    main__29
2012 0088 28b2          goto    main__32
2013 0089 28b2          goto    main__32
2014 008a 28b2          goto    main__32
2015 008b 28b1          goto    main__30
2016                    ; line_number = 142
2017                    ; case 0
2018   008c :   main__18:
2019                    ; # 0001 0000 (Reset Outputs):
2020                    ; line_number = 144
2021                    ;  outputs := complement_mask
2022 008c 082a          movf    complement_mask,w
2023 008d 00a9          movwf   outputs
2024 008e 28b2          goto    main__32
2025                    ; line_number = 145
2026                    ; case 1
2027   008f :   main__19:
2028                    ; # 0001 0001 (Set Outputs):
2029                    ; line_number = 147
2030                    ;  outputs := byte_get() ^ complement_mask
2031 008f 22e5          call    byte_get
2032 0090 062a          xorwf   complement_mask,w
2033 0091 00a9          movwf   outputs
2034 0092 28b2          goto    main__32
2035                    ; line_number = 148
2036                    ; case 2
2037   0093 :   main__20:
2038                    ; # 0001 0010 (Set Complement Mask):
2039                    ; line_number = 150
2040                    ;  complement_mask := byte_get()
2041 0093 22e5          call    byte_get
2042 0094 00aa          movwf   complement_mask
2043 0095 28b2          goto    main__32
2044                    ; line_number = 151
2045                    ; case 3
2046   0096 :   main__21:
2047                    ; # 0001 0011 (Set Direction Mask):
2048                    ; line_number = 153
2049                    ;  direction := byte_get()
2050 0096 22e5          call    byte_get
2051 0097 00a8          movwf   direction
2052                    ; line_number = 154
2053                    ;  call direction_set()
2054 0098 21b8          call    direction_set
2055 0099 28b2          goto    main__32
2056                    ; line_number = 155
2057                    ; case 4
2058   009a :   main__22:
2059                    ; # 0001 0100 (Set Low Mask):
2060                    ; line_number = 157
2061                    ;  low_mask := byte_get()
2062 009a 22e5          call    byte_get
2063 009b 00ac          movwf   low_mask
2064 009c 28b2          goto    main__32
2065                    ; line_number = 158
2066                    ; case 5
2067   009d :   main__23:
2068                    ; # 0001 0101 (Set High Mask):
2069                    ; line_number = 160
2070                    ;  high_mask := byte_get()
2071 009d 22e5          call    byte_get
2072 009e 00ad          movwf   high_mask
2073 009f 28b2          goto    main__32
2074                    ; line_number = 161
2075                    ; case 6
2076   00a0 :   main__24:
2077                    ; # 0001 0110 (Set Rising Mask):
2078                    ; line_number = 163
2079                    ;  rising_mask := byte_get()
2080 00a0 22e5          call    byte_get
2081 00a1 00ae          movwf   rising_mask
2082 00a2 28b2          goto    main__32
2083                    ; line_number = 164
2084                    ; case 7
2085   00a3 :   main__25:
2086                    ; # 0001 0111 (Set Falling Mask):
2087                    ; line_number = 166
2088                    ;  falling_mask := byte_get()
2089 00a3 22e5          call    byte_get
2090 00a4 00af          movwf   falling_mask
2091 00a5 28b2          goto    main__32
2092                    ; line_number = 167
2093                    ; case 8
2094   00a6 :   main__26:
2095                    ; # 0001 1000 (Set Outputs Raw):
2096                    ; line_number = 169
2097                    ;  outputs := byte_get()
2098 00a6 22e5          call    byte_get
2099 00a7 00a9          movwf   outputs
2100 00a8 28b2          goto    main__32
2101                    ; line_number = 170
2102                    ; case 9
2103   00a9 :   main__27:
2104                    ; # 0001 1001 (Set Analog Mask):
2105                    ; line_number = 172
2106                    ;  analog_mask := byte_get()
2107 00a9 22e5          call    byte_get
2108 00aa 00b0          movwf   analog_mask
2109                    ; line_number = 173
2110                    ;  call direction_set()
2111 00ab 21b8          call    direction_set
2112 00ac 28b2          goto    main__32
2113                    ; line_number = 174
2114                    ; case 10
2115   00ad :   main__28:
2116                    ; # 0001 101v (Set Analog Vref):
2117                    ; line_number = 176
2118                    ;  _vcfg := 0
2119 00ad 131f          bcf     _vcfg___byte, _vcfg___bit
2120 00ae 28b2          goto    main__32
2121                    ; line_number = 177
2122                    ; case 11
2123   00af :   main__29:
2124                    ; # 0001 101v (Set Analog Vref):
2125                    ; line_number = 179
2126                    ;  _vcfg := 1
2127 00af 171f          bsf     _vcfg___byte, _vcfg___bit
2128 00b0 28b2          goto    main__32
2129                    ; line_number = 180
2130                    ; case 15
2131   00b1 :   main__30:
2132                    ; # 0001 1001 (Reset Everything):
2133                    ; line_number = 182
2134                    ;  call reset()
2135 00b1 21eb          call    reset
2136   00b2 :   main__32:
2137                    ; switch end:(data:00=>00 code:XX=>XX)
2138                    ; line_number = 140
2139                    ;  switch command & 15 done
2140 00b2 28c0          goto    main__42
2141                    ; line_number = 183
2142                    ; case 2
2143   00b3 :   main__38:
2144                    ; # 0110 vbbb (Set Output Bit):
2145                    ; line_number = 185
2146                    ;  temp := mask[command & 7]
2147 00b3 3007          movlw   7
2148 00b4 0555          andwf   main__command,w
2149 00b5 22d7          call    mask
2150 00b6 00d6          movwf   main__temp
2151                    ; line_number = 186
2152                    ;  if command@3 start
2153 00000055 = main__select__33___byte equ main__command
2154 00000003 = main__select__33___bit equ 3
2155                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2156                    ; CASE: true_code_size > 1 && false_code_size > 1
2157                    ; true_code_size=2 false_code_size=3
2158 00b7 1dd5          btfss   main__select__33___byte, main__select__33___bit
2159 00b8 28bc          goto    main__34
2160                    ; line_number = 187
2161                    ; outputs := outputs | temp
2162 00b9 0856          movf    main__temp,w
2163 00ba 04a9          iorwf   outputs,f
2164 00bb 28bf          goto    main__35
2165   00bc :   main__34:
2166                    ; line_number = 189
2167                    ; outputs := outputs & (temp ^ 0xff)
2168 00bc 30ff          movlw   255
2169 00bd 0656          xorwf   main__temp,w
2170 00be 05a9          andwf   outputs,f
2171   00bf :   main__35:
2172                    ; code.delay=4294967295 back_code.delay=4294967295
2173                    ; <=bit_code_emit@symbol; sym=main__select__33 (data:00=>00 code:XX=>XX)
2174                    ; line_number = 186
2175                    ;  if command@3 done
2176 00bf 28c0          goto    main__42
2177                    ; line_number = 190
2178                    ; case 3
2179   00c0 :   main__39:
2180                    ; # 0011 xxxx (Do Nothing):
2181                    ; line_number = 192
2182                    ;  do_nothing
2183   00c0 :   main__42:
2184                    ; switch end:(data:00=>?? code:XX=>XX)
2185                    ; line_number = 90
2186                    ;  switch command >> 4 done
2187 00c0 29b5          goto    main__107
2188                    ; line_number = 193
2189                    ; case 1
2190   00c1 :   main__102:
2191                    ; # 01xx xxxx:
2192                    ; line_number = 195
2193                    ;  switch (command >> 4) & 3 start
2194 00c1 3000          movlw   main__52>>8
2195 00c2 008a          movwf   __pclath
2196 0000005d = main__53 equ globals___0+61
2197 00c3 0e55          swapf   main__command,w
2198 00c4 3903          andlw   3
2199 00c5 3ec7          addlw   main__52
2200 00c6 0082          movwf   __pcl
2201                    ; page_group 4
2202   00c7 :   main__52:
2203 00c7 28cb          goto    main__48
2204 00c8 28d4          goto    main__49
2205 00c9 28e1          goto    main__50
2206 00ca 28ea          goto    main__51
2207                    ; line_number = 196
2208                    ; case 0
2209   00cb :   main__48:
2210                    ; # 0100 llll (Set Outputs Low):
2211                    ; line_number = 198
2212                    ;  outputs := outputs & 0xf0 | (command ^ complement_mask) & 0xf
2213 0000005d = main__43 equ globals___0+61
2214 00cb 30f0          movlw   240
2215 00cc 0529          andwf   outputs,w
2216 00cd 00dd          movwf   main__43
2217 00ce 0855          movf    main__command,w
2218 00cf 062a          xorwf   complement_mask,w
2219 00d0 390f          andlw   15
2220 00d1 045d          iorwf   main__43,w
2221 00d2 00a9          movwf   outputs
2222 00d3 28f3          goto    main__54
2223                    ; line_number = 199
2224                    ; case 1
2225   00d4 :   main__49:
2226                    ; # 0101 hhhh (Set Outputs High):
2227                    ; line_number = 201
2228                    ;  outputs := ((command << 4) ^ (complement_mask & 0xf0)) | outputs & 0xf
2229 0000005d = main__44 equ globals___0+61
2230 0000005e = main__45 equ globals___0+62
2231 00d4 0e55          swapf   main__command,w
2232 00d5 00de          movwf   main__45
2233 00d6 30f0          movlw   240
2234 00d7 05de          andwf   main__45,f
2235 00d8 30f0          movlw   240
2236 00d9 052a          andwf   complement_mask,w
2237 00da 065e          xorwf   main__45,w
2238 00db 00dd          movwf   main__44
2239 00dc 300f          movlw   15
2240 00dd 0529          andwf   outputs,w
2241 00de 045d          iorwf   main__44,w
2242 00df 00a9          movwf   outputs
2243            
2244 00e0 28f3          goto    main__54
2245                    ; line_number = 203
2246                    ; case 2
2247   00e1 :   main__50:
2248                    ; # 0110 llll (Set Direction Low):
2249                    ; line_number = 205
2250                    ;  direction := direction & 0xf0 | command & 0xf
2251 0000005d = main__46 equ globals___0+61
2252 00e1 30f0          movlw   240
2253 00e2 0528          andwf   direction,w
2254 00e3 00dd          movwf   main__46
2255 00e4 300f          movlw   15
2256 00e5 0555          andwf   main__command,w
2257 00e6 045d          iorwf   main__46,w
2258 00e7 00a8          movwf   direction
2259                    ; line_number = 206
2260                    ;  call direction_set()
2261 00e8 21b8          call    direction_set
2262 00e9 28f3          goto    main__54
2263                    ; line_number = 207
2264                    ; case 3
2265   00ea :   main__51:
2266                    ; # 0111 hhhh (Set Direction High):
2267                    ; line_number = 209
2268                    ;  direction := (command << 4) | direction & 0xf
2269 0000005d = main__47 equ globals___0+61
2270 00ea 0e55          swapf   main__command,w
2271 00eb 00dd          movwf   main__47
2272 00ec 30f0          movlw   240
2273 00ed 05dd          andwf   main__47,f
2274 00ee 300f          movlw   15
2275 00ef 0528          andwf   direction,w
2276 00f0 045d          iorwf   main__47,w
2277 00f1 00a8          movwf   direction
2278                    ; line_number = 210
2279                    ;  call direction_set()
2280 00f2 21b8          call    direction_set
2281   00f3 :   main__54:
2282                    ; switch end:(data:00=>00 code:XX=>XX)
2283                    ; line_number = 195
2284                    ;  switch (command >> 4) & 3 done
2285 00f3 29b5          goto    main__107
2286                    ; line_number = 211
2287                    ; case 2
2288   00f4 :   main__103:
2289                    ; # 10xx xxxx:
2290                    ; line_number = 213
2291                    ;  temp := command & 7
2292 00f4 3007          movlw   7
2293 00f5 0555          andwf   main__command,w
2294 00f6 00d6          movwf   main__temp
2295                    ; line_number = 214
2296                    ;  switch (command >> 3) & 7 start
2297                    ; line_number = 215
2298                    ; case_maximum 7
2299 00f7 3001          movlw   main__65>>8
2300 00f8 008a          movwf   __pclath
2301 0000005d = main__66 equ globals___0+61
2302 00f9 0c55          rrf     main__command,w
2303 00fa 00dd          movwf   main__66
2304 00fb 0cdd          rrf     main__66,f
2305 00fc 0c5d          rrf     main__66,w
2306 00fd 3907          andlw   7
2307 00fe 3e00          addlw   main__65
2308 00ff 0082          movwf   __pcl
2309                    ; page_group 8
2310   0100 :   main__65:
2311 0100 2908          goto    main__59
2312 0101 290e          goto    main__60
2313 0102 2919          goto    main__61
2314 0103 291f          goto    main__62
2315 0104 2938          goto    main__67
2316 0105 2938          goto    main__67
2317 0106 2925          goto    main__63
2318 0107 292f          goto    main__64
2319                    ; line_number = 216
2320                    ; case 0
2321   0108 :   main__59:
2322                    ; # 1000 0bbb (Read Analog 8-bits):
2323                    ; line_number = 218
2324                    ;  call byte_put(analogs_high[temp])
2325 0108 0856          movf    main__temp,w
2326 0109 3e31          addlw   analogs_high
2327 010a 0084          movwf   __fsr
2328 010b 0800          movf    __indf,w
2329 010c 22f1          call    byte_put
2330 010d 2938          goto    main__67
2331                    ; line_number = 219
2332                    ; case 1
2333   010e :   main__60:
2334                    ; # 1000 1bbb (Read Analog 10-bits):
2335                    ; line_number = 221
2336                    ;  call byte_put(analogs_high[temp])
2337 010e 0856          movf    main__temp,w
2338 010f 3e31          addlw   analogs_high
2339 0110 0084          movwf   __fsr
2340 0111 0800          movf    __indf,w
2341 0112 22f1          call    byte_put
2342                    ; line_number = 222
2343                    ;  call byte_put(analogs_low[temp])
2344 0113 0856          movf    main__temp,w
2345 0114 3e39          addlw   analogs_low
2346 0115 0084          movwf   __fsr
2347 0116 0800          movf    __indf,w
2348 0117 22f1          call    byte_put
2349 0118 2938          goto    main__67
2350                    ; line_number = 223
2351                    ; case 2
2352   0119 :   main__61:
2353                    ; # 1001 0bbb (Read Low Threshold):
2354                    ; line_number = 225
2355                    ;  call byte_put(thresholds_low[temp])
2356 0119 0856          movf    main__temp,w
2357 011a 3e49          addlw   thresholds_low
2358 011b 0084          movwf   __fsr
2359 011c 0800          movf    __indf,w
2360 011d 22f1          call    byte_put
2361 011e 2938          goto    main__67
2362                    ; line_number = 226
2363                    ; case 3
2364   011f :   main__62:
2365                    ; # 1001 1bbb (Read High Threshold):
2366                    ; line_number = 228
2367                    ;  call byte_put(thresholds_high[temp])
2368 011f 0856          movf    main__temp,w
2369 0120 3e41          addlw   thresholds_high
2370 0121 0084          movwf   __fsr
2371 0122 0800          movf    __indf,w
2372 0123 22f1          call    byte_put
2373 0124 2938          goto    main__67
2374                    ; line_number = 229
2375                    ; case 6
2376   0125 :   main__63:
2377                    ; # 1011 0bbb (Set Low Threshold):
2378                    ; line_number = 231
2379                    ;  thresholds_low[temp] := byte_get()
2380                    ; index_temporary_first
2381 0000005d = main__55 equ globals___0+61
2382 0000005e = main__56 equ globals___0+62
2383 0125 0856          movf    main__temp,w
2384 0126 00dd          movwf   main__55
2385 0127 22e5          call    byte_get
2386 0128 00de          movwf   main__56
2387 0129 085d          movf    main__55,w
2388 012a 3e49          addlw   thresholds_low
2389 012b 0084          movwf   __fsr
2390 012c 085e          movf    main__56,w
2391 012d 0080          movwf   __indf
2392 012e 2938          goto    main__67
2393                    ; line_number = 232
2394                    ; case 7
2395   012f :   main__64:
2396                    ; # 1011 1bbb (Set High Threshold):
2397                    ; line_number = 234
2398                    ;  thresholds_high[temp] := byte_get()
2399                    ; index_temporary_first
2400 0000005d = main__57 equ globals___0+61
2401 0000005e = main__58 equ globals___0+62
2402 012f 0856          movf    main__temp,w
2403 0130 00dd          movwf   main__57
2404 0131 22e5          call    byte_get
2405 0132 00de          movwf   main__58
2406 0133 085d          movf    main__57,w
2407 0134 3e41          addlw   thresholds_high
2408 0135 0084          movwf   __fsr
2409 0136 085e          movf    main__58,w
2410 0137 0080          movwf   __indf
2411   0138 :   main__67:
2412                    ; switch end:(data:00=>00 code:XX=>XX)
2413                    ; line_number = 214
2414                    ;  switch (command >> 3) & 7 done
2415 0138 29b5          goto    main__107
2416                    ; line_number = 235
2417                    ; case 3
2418   0139 :   main__104:
2419                    ; # 11xx xxxx:
2420                    ; line_number = 237
2421                    ;  switch (command >> 3) & 7 start
2422 0139 3001          movlw   main__98>>8
2423 013a 008a          movwf   __pclath
2424 0000005d = main__99 equ globals___0+61
2425 013b 0c55          rrf     main__command,w
2426 013c 00dd          movwf   main__99
2427 013d 0cdd          rrf     main__99,f
2428 013e 0c5d          rrf     main__99,w
2429 013f 3907          andlw   7
2430 0140 3e42          addlw   main__98
2431 0141 0082          movwf   __pcl
2432                    ; page_group 8
2433   0142 :   main__98:
2434 0142 294a          goto    main__94
2435 0143 294a          goto    main__94
2436 0144 294a          goto    main__94
2437 0145 294a          goto    main__94
2438 0146 294a          goto    main__94
2439 0147 294b          goto    main__95
2440 0148 2964          goto    main__96
2441 0149 2981          goto    main__97
2442                    ; line_number = 238
2443                    ; default
2444   014a :   main__94:
2445                    ; # 110x xxxx or 1110 0xxx:
2446                    ; line_number = 240
2447                    ;  do_nothing
2448 014a 29b5          goto    main__100
2449                    ; line_number = 241
2450                    ; case 5
2451   014b :   main__95:
2452                    ; # 1110 1xxx:
2453                    ; line_number = 243
2454                    ;  switch command & 7 start
2455 014b 3001          movlw   main__72>>8
2456 014c 008a          movwf   __pclath
2457 014d 3007          movlw   7
2458 014e 0555          andwf   main__command,w
2459 014f 3e51          addlw   main__72
2460 0150 0082          movwf   __pcl
2461                    ; page_group 8
2462   0151 :   main__72:
2463 0151 2963          goto    main__73
2464 0152 2963          goto    main__73
2465 0153 2963          goto    main__73
2466 0154 2963          goto    main__73
2467 0155 2963          goto    main__73
2468 0156 2963          goto    main__73
2469 0157 2959          goto    main__70
2470 0158 295b          goto    main__71
2471                    ; line_number = 244
2472                    ; case 6
2473   0159 :   main__70:
2474                    ; # 1110 1110 (Reset)
2475                    ; line_number = 246
2476                    ;  call reset()
2477 0159 21eb          call    reset
2478 015a 2963          goto    main__73
2479                    ; line_number = 247
2480                    ; case 7
2481   015b :   main__71:
2482                    ; # 1110 1111 (Read Interrupt Bits):
2483                    ; line_number = 249
2484                    ;  temp := 0
2485 015b 3000          movlw   0
2486 015c 00d6          movwf   main__temp
2487                    ; line_number = 250
2488                    ;  if interrupt_pending start
2489                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2490                    ; CASE: True.size=1 False.size=0
2491 015d 18ab          btfsc   interrupt_pending___byte, interrupt_pending___bit
2492                    ; line_number = 251
2493                    ; temp@0 := 1
2494 00000056 = main__select__68___byte equ main__temp
2495 00000000 = main__select__68___bit equ 0
2496 015e 1456          bsf     main__select__68___byte, main__select__68___bit
2497                    ; Recombine size1 = 0 || size2 = 0
2498                    ; code.delay=4294967295 back_code.delay=4294967295
2499                    ; <=bit_code_emit@symbol; sym=interrupt_pending (data:00=>00 code:XX=>XX)
2500                    ; line_number = 250
2501                    ;  if interrupt_pending done
2502                    ; line_number = 252
2503                    ; if interrupt_enable start
2504                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2505                    ; CASE: True.size=1 False.size=0
2506 015f 182b          btfsc   interrupt_enable___byte, interrupt_enable___bit
2507                    ; line_number = 253
2508                    ; temp@1 := 1
2509 00000056 = main__select__69___byte equ main__temp
2510 00000001 = main__select__69___bit equ 1
2511 0160 14d6          bsf     main__select__69___byte, main__select__69___bit
2512                    ; Recombine size1 = 0 || size2 = 0
2513                    ; code.delay=4294967295 back_code.delay=4294967295
2514                    ; <=bit_code_emit@symbol; sym=interrupt_enable (data:00=>00 code:XX=>XX)
2515                    ; line_number = 252
2516                    ; if interrupt_enable done
2517                    ; line_number = 254
2518                    ; call byte_put(temp)
2519 0161 0856          movf    main__temp,w
2520 0162 22f1          call    byte_put
2521   0163 :   main__73:
2522                    ; switch end:(data:00=>00 code:XX=>XX)
2523                    ; line_number = 243
2524                    ;  switch command & 7 done
2525 0163 29b5          goto    main__100
2526                    ; line_number = 255
2527                    ; case 6
2528   0164 :   main__96:
2529                    ; # 1111 0xxx:
2530                    ; line_number = 257
2531                    ;  switch command & 7 start
2532 0164 3001          movlw   main__81>>8
2533 0165 008a          movwf   __pclath
2534 0166 3007          movlw   7
2535 0167 0555          andwf   main__command,w
2536 0168 3e6a          addlw   main__81
2537 0169 0082          movwf   __pcl
2538                    ; page_group 8
2539   016a :   main__81:
2540 016a 2972          goto    main__78
2541 016b 2972          goto    main__78
2542 016c 2972          goto    main__78
2543 016d 2972          goto    main__78
2544 016e 2979          goto    main__79
2545 016f 2979          goto    main__79
2546 0170 297d          goto    main__80
2547 0171 297d          goto    main__80
2548                    ; line_number = 258
2549                    ; case 0, 1, 2, 3
2550   0172 :   main__78:
2551                    ; # 1111 00ep (Set Interrupt Bits):
2552                    ; line_number = 260
2553                    ;  interrupt_enable := command@1
2554 0172 102b          bcf     interrupt_enable___byte, interrupt_enable___bit
2555 00000055 = main__select__74___byte equ main__command
2556 00000001 = main__select__74___bit equ 1
2557                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2558                    ; CASE: True.size=1 False.size=0
2559 0173 18d5          btfsc   main__select__74___byte, main__select__74___bit
2560 0174 142b          bsf     interrupt_enable___byte, interrupt_enable___bit
2561                    ; Recombine size1 = 0 || size2 = 0
2562                    ; code.delay=4294967295 back_code.delay=4294967295
2563                    ; <=bit_code_emit@symbol; sym=main__select__74 (data:00=>00 code:XX=>XX)
2564                    ; line_number = 261
2565                    ;  interrupt_pending := command@0
2566 0175 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
2567 00000055 = main__select__75___byte equ main__command
2568 00000000 = main__select__75___bit equ 0
2569                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2570                    ; CASE: True.size=1 False.size=0
2571 0176 1855          btfsc   main__select__75___byte, main__select__75___bit
2572 0177 14ab          bsf     interrupt_pending___byte, interrupt_pending___bit
2573                    ; Recombine size1 = 0 || size2 = 0
2574                    ; code.delay=4294967295 back_code.delay=4294967295
2575                    ; <=bit_code_emit@symbol; sym=main__select__75 (data:00=>00 code:XX=>XX)
2576 0178 2980          goto    main__82
2577                    ; line_number = 262
2578                    ; case 4, 5
2579   0179 :   main__79:
2580                    ; # 1111 010p (Set Interrupt Pending):
2581                    ; line_number = 264
2582                    ;  interrupt_pending := command@0
2583 0179 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
2584 00000055 = main__select__76___byte equ main__command
2585 00000000 = main__select__76___bit equ 0
2586                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2587                    ; CASE: True.size=1 False.size=0
2588 017a 1855          btfsc   main__select__76___byte, main__select__76___bit
2589 017b 14ab          bsf     interrupt_pending___byte, interrupt_pending___bit
2590                    ; Recombine size1 = 0 || size2 = 0
2591                    ; code.delay=4294967295 back_code.delay=4294967295
2592                    ; <=bit_code_emit@symbol; sym=main__select__76 (data:00=>00 code:XX=>XX)
2593 017c 2980          goto    main__82
2594                    ; line_number = 265
2595                    ; case 6, 7
2596   017d :   main__80:
2597                    ; # 1111 011e (Set Interrupt Enable):
2598                    ; line_number = 267
2599                    ;  interrupt_enable := command@0
2600 017d 102b          bcf     interrupt_enable___byte, interrupt_enable___bit
2601 00000055 = main__select__77___byte equ main__command
2602 00000000 = main__select__77___bit equ 0
2603                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2604                    ; CASE: True.size=1 False.size=0
2605 017e 1855          btfsc   main__select__77___byte, main__select__77___bit
2606 017f 142b          bsf     interrupt_enable___byte, interrupt_enable___bit
2607                    ; Recombine size1 = 0 || size2 = 0
2608                    ; code.delay=4294967295 back_code.delay=4294967295
2609                    ; <=bit_code_emit@symbol; sym=main__select__77 (data:00=>00 code:XX=>XX)
2610   0180 :   main__82:
2611                    ; switch end:(data:00=>00 code:XX=>XX)
2612                    ; line_number = 257
2613                    ;  switch command & 7 done
2614 0180 29b5          goto    main__100
2615                    ; line_number = 268
2616                    ; case 7
2617   0181 :   main__97:
2618                    ; line_number = 269
2619                    ; switch command & 7 start
2620 0181 3001          movlw   main__92>>8
2621 0182 008a          movwf   __pclath
2622 0183 3007          movlw   7
2623 0184 0555          andwf   main__command,w
2624 0185 3e87          addlw   main__92
2625 0186 0082          movwf   __pcl
2626                    ; page_group 8
2627   0187 :   main__92:
2628 0187 298f          goto    main__84
2629 0188 2992          goto    main__85
2630 0189 2995          goto    main__86
2631 018a 299a          goto    main__87
2632 018b 299d          goto    main__88
2633 018c 29aa          goto    main__89
2634 018d 29ad          goto    main__90
2635 018e 29b2          goto    main__91
2636                    ; line_number = 270
2637                    ; case 0
2638   018f :   main__84:
2639                    ; This case body wants this bit set
2640 018f 1683          bsf     __rp0___byte, __rp0___bit
2641                    ; # 1111 1000 (Clock Decrement):
2642                    ; line_number = 272
2643                    ;  _osctune := _osctune - _osccal_lsb
2644 0190 0390          decf    _osctune,f
2645 0191 29b5          goto    main__93
2646                    ; line_number = 273
2647                    ; case 1
2648   0192 :   main__85:
2649                    ; This case body wants this bit set
2650 0192 1683          bsf     __rp0___byte, __rp0___bit
2651                    ; # 1111 1001 (Clock Increment):
2652                    ; line_number = 275
2653                    ;  _osctune := _osctune + _osccal_lsb
2654 0193 0a90          incf    _osctune,f
2655 0194 29b5          goto    main__93
2656                    ; line_number = 276
2657                    ; case 2
2658   0195 :   main__86:
2659                    ; This case body wants this bit set
2660 0195 1683          bsf     __rp0___byte, __rp0___bit
2661                    ; # 1111 1010 (Clock Read):
2662                    ; line_number = 278
2663                    ;  call byte_put(_osctune)
2664 0196 0810          movf    _osctune,w
2665 0197 1283          bcf     __rp0___byte, __rp0___bit
2666 0198 22f1          call    byte_put
2667 0199 29b5          goto    main__93
2668                    ; line_number = 279
2669                    ; case 3
2670   019a :   main__87:
2671                    ; # 1111 1011 (Clock Pulse):
2672                    ; line_number = 281
2673                    ;  call byte_put(0)
2674 019a 3000          movlw   0
2675 019b 22f1          call    byte_put
2676 019c 29b5          goto    main__93
2677                    ; line_number = 282
2678                    ; case 4
2679   019d :   main__88:
2680                    ; # 1111 1100 (ID Next):
2681                    ; line_number = 284
2682                    ;  temp := 0
2683 019d 3000          movlw   0
2684 019e 00d6          movwf   main__temp
2685                    ; line_number = 285
2686                    ;  if index < id.size start
2687 019f 3025          movlw   37
2688 01a0 0252          subwf   index,w
2689                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2690                    ; CASE: true.size=0 && false.size>1
2691                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
2692 01a1 1803          btfsc   __c___byte, __c___bit
2693 01a2 29a7          goto    main__83
2694                    ; line_number = 286
2695                    ; temp := id[index]
2696 01a3 0852          movf    index,w
2697 01a4 229e          call    id
2698 01a5 00d6          movwf   main__temp
2699                    ; line_number = 287
2700                    ;  index := index + 1
2701 01a6 0ad2          incf    index,f
2702   01a7 :   main__83:
2703                    ; Recombine size1 = 0 || size2 = 0
2704                    ; code.delay=4294967295 back_code.delay=4294967295
2705                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2706                    ; line_number = 285
2707                    ;  if index < id.size done
2708                    ; line_number = 288
2709                    ; call byte_put(temp)
2710 01a7 0856          movf    main__temp,w
2711 01a8 22f1          call    byte_put
2712 01a9 29b5          goto    main__93
2713                    ; line_number = 289
2714                    ; case 5
2715   01aa :   main__89:
2716                    ; # 1111 1101 (ID Reset):
2717                    ; line_number = 291
2718                    ;  index := 0
2719 01aa 3000          movlw   0
2720 01ab 00d2          movwf   index
2721 01ac 29b5          goto    main__93
2722                    ; line_number = 292
2723                    ; case 6
2724   01ad :   main__90:
2725                    ; # 1111 1110 (Glitch Read):
2726                    ; line_number = 294
2727                    ;  call byte_put(glitch)
2728 01ad 0851          movf    glitch,w
2729 01ae 22f1          call    byte_put
2730                    ; line_number = 295
2731                    ;  glitch := 0
2732 01af 3000          movlw   0
2733 01b0 00d1          movwf   glitch
2734 01b1 29b5          goto    main__93
2735                    ; line_number = 296
2736                    ; case 7
2737   01b2 :   main__91:
2738                    ; # 1111 1111 (Glitch):
2739                    ; line_number = 298
2740                    ;  if glitch != 0xff start
2741                    ; Left minus Right
2742 01b2 0a51          incf    glitch,w
2743                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2744                    ; CASE: true_code.size=0 && false_code.size=1
2745 01b3 1d03          btfss   __z___byte, __z___bit
2746                    ; line_number = 299
2747                    ; glitch := glitch + 1
2748 01b4 0ad1          incf    glitch,f
2749            
2750            
2751                    ; Recombine size1 = 0 || size2 = 0
2752                    ; code.delay=4294967295 back_code.delay=4294967295
2753                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2754                    ; line_number = 298
2755                    ;  if glitch != 0xff done
2756   01b5 :   main__93:
2757                    ; switch end:(data:00=>0? code:XX=>XX)
2758                    ; line_number = 269
2759                    ; switch command & 7 done
2760   01b5 :   main__100:
2761                    ; switch end:(data:00=>?? code:XX=>XX)
2762                    ; line_number = 237
2763                    ;  switch (command >> 3) & 7 done
2764   01b5 :   main__107:
2765                    ; switch end:(data:00=>?? code:XX=>XX)
2766                    ; line_number = 86
2767                    ;  switch command >> 6 done
2768                    ; line_number = 81
2769                    ;  loop_forever wrap-up
2770                    ; Need to adjust code banks to match front of loop
2771 01b5 1283          bcf     __rp0___byte, __rp0___bit
2772 01b6 1303          bcf     __rp1___byte, __rp1___bit
2773 01b7 2819          goto    main__1
2774                    ; line_number = 81
2775                    ;  loop_forever done
2776                    ; delay after procedure statements=non-uniform
2777            
2778            
2779            
2780            
2781                    ; line_number = 302
2782                    ; procedure direction_set
2783   01b8 :   direction_set:
2784                    ; arguments_none
2785                    ; line_number = 304
2786                    ;  returns_nothing
2787            
2788                    ; # This procedure will set the direction appropriately.
2789            
2790                    ; line_number = 308
2791                    ;  local temp byte
2792 00000057 = direction_set__temp equ globals___0+55
2793            
2794                    ; # Deal with port C:
2795                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2796                    ; line_number = 311
2797                    ;  temp := 0
2798 01b8 3000          movlw   0
2799 01b9 00d7          movwf   direction_set__temp
2800                    ; line_number = 312
2801                    ;  if direction@4 start
2802 00000028 = direction_set__select__2___byte equ direction
2803 00000004 = direction_set__select__2___bit equ 4
2804                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2805                    ; CASE: True.size=1 False.size=0
2806 01ba 1a28          btfsc   direction_set__select__2___byte, direction_set__select__2___bit
2807                    ; line_number = 313
2808                    ; temp@io4_bit := 1
2809 00000057 = direction_set__select__1___byte equ direction_set__temp
2810 00000000 = direction_set__select__1___bit equ 0
2811 01bb 1457          bsf     direction_set__select__1___byte, direction_set__select__1___bit
2812                    ; Recombine size1 = 0 || size2 = 0
2813                    ; code.delay=4294967295 back_code.delay=4294967295
2814                    ; <=bit_code_emit@symbol; sym=direction_set__select__2 (data:00=>00 code:XX=>XX)
2815                    ; line_number = 312
2816                    ;  if direction@4 done
2817                    ; line_number = 314
2818                    ; if direction@5 start
2819 00000028 = direction_set__select__4___byte equ direction
2820 00000005 = direction_set__select__4___bit equ 5
2821                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2822                    ; CASE: True.size=1 False.size=0
2823 01bc 1aa8          btfsc   direction_set__select__4___byte, direction_set__select__4___bit
2824                    ; line_number = 315
2825                    ; temp@io5_bit := 1
2826 00000057 = direction_set__select__3___byte equ direction_set__temp
2827 00000001 = direction_set__select__3___bit equ 1
2828 01bd 14d7          bsf     direction_set__select__3___byte, direction_set__select__3___bit
2829                    ; Recombine size1 = 0 || size2 = 0
2830                    ; code.delay=4294967295 back_code.delay=4294967295
2831                    ; <=bit_code_emit@symbol; sym=direction_set__select__4 (data:00=>00 code:XX=>XX)
2832                    ; line_number = 314
2833                    ; if direction@5 done
2834                    ; line_number = 316
2835                    ; if direction@6 start
2836 00000028 = direction_set__select__6___byte equ direction
2837 00000006 = direction_set__select__6___bit equ 6
2838                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2839                    ; CASE: True.size=1 False.size=0
2840 01be 1b28          btfsc   direction_set__select__6___byte, direction_set__select__6___bit
2841                    ; line_number = 317
2842                    ; temp@io6_bit := 1
2843 00000057 = direction_set__select__5___byte equ direction_set__temp
2844 00000002 = direction_set__select__5___bit equ 2
2845 01bf 1557          bsf     direction_set__select__5___byte, direction_set__select__5___bit
2846                    ; Recombine size1 = 0 || size2 = 0
2847                    ; code.delay=4294967295 back_code.delay=4294967295
2848                    ; <=bit_code_emit@symbol; sym=direction_set__select__6 (data:00=>00 code:XX=>XX)
2849                    ; line_number = 316
2850                    ; if direction@6 done
2851                    ; line_number = 318
2852                    ; if direction@7 start
2853 00000028 = direction_set__select__8___byte equ direction
2854 00000007 = direction_set__select__8___bit equ 7
2855                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2856                    ; CASE: True.size=1 False.size=0
2857 01c0 1ba8          btfsc   direction_set__select__8___byte, direction_set__select__8___bit
2858                    ; line_number = 319
2859                    ; temp@io7_bit := 1
2860 00000057 = direction_set__select__7___byte equ direction_set__temp
2861 00000003 = direction_set__select__7___bit equ 3
2862 01c1 15d7          bsf     direction_set__select__7___byte, direction_set__select__7___bit
2863                    ; Recombine size1 = 0 || size2 = 0
2864                    ; code.delay=4294967295 back_code.delay=4294967295
2865                    ; <=bit_code_emit@symbol; sym=direction_set__select__8 (data:00=>00 code:XX=>XX)
2866                    ; line_number = 318
2867                    ; if direction@7 done
2868                    ; line_number = 320
2869                    ; _trisc := temp
2870 01c2 0857          movf    direction_set__temp,w
2871 01c3 1683          bsf     __rp0___byte, __rp0___bit
2872 01c4 0087          movwf   _trisc
2873            
2874                    ; # Deal with port A:
2875                    ; line_number = 323
2876                    ;  temp := 0
2877 01c5 3000          movlw   0
2878 01c6 1283          bcf     __rp0___byte, __rp0___bit
2879 01c7 00d7          movwf   direction_set__temp
2880                    ; line_number = 324
2881                    ;  if direction@0 start
2882 00000028 = direction_set__select__10___byte equ direction
2883 00000000 = direction_set__select__10___bit equ 0
2884                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2885                    ; CASE: True.size=1 False.size=0
2886 01c8 1828          btfsc   direction_set__select__10___byte, direction_set__select__10___bit
2887                    ; line_number = 325
2888                    ; temp@io0_bit := 1
2889 00000057 = direction_set__select__9___byte equ direction_set__temp
2890 00000000 = direction_set__select__9___bit equ 0
2891 01c9 1457          bsf     direction_set__select__9___byte, direction_set__select__9___bit
2892                    ; Recombine size1 = 0 || size2 = 0
2893                    ; code.delay=4294967295 back_code.delay=4294967295
2894                    ; <=bit_code_emit@symbol; sym=direction_set__select__10 (data:00=>00 code:XX=>XX)
2895                    ; line_number = 324
2896                    ;  if direction@0 done
2897                    ; line_number = 326
2898                    ; if direction@1 start
2899 00000028 = direction_set__select__12___byte equ direction
2900 00000001 = direction_set__select__12___bit equ 1
2901                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2902                    ; CASE: True.size=1 False.size=0
2903 01ca 18a8          btfsc   direction_set__select__12___byte, direction_set__select__12___bit
2904                    ; line_number = 327
2905                    ; temp@io1_bit := 1
2906 00000057 = direction_set__select__11___byte equ direction_set__temp
2907 00000001 = direction_set__select__11___bit equ 1
2908 01cb 14d7          bsf     direction_set__select__11___byte, direction_set__select__11___bit
2909                    ; Recombine size1 = 0 || size2 = 0
2910                    ; code.delay=4294967295 back_code.delay=4294967295
2911                    ; <=bit_code_emit@symbol; sym=direction_set__select__12 (data:00=>00 code:XX=>XX)
2912                    ; line_number = 326
2913                    ; if direction@1 done
2914                    ; line_number = 328
2915                    ; if direction@2 start
2916 00000028 = direction_set__select__14___byte equ direction
2917 00000002 = direction_set__select__14___bit equ 2
2918                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2919                    ; CASE: True.size=1 False.size=0
2920 01cc 1928          btfsc   direction_set__select__14___byte, direction_set__select__14___bit
2921                    ; line_number = 329
2922                    ; temp@io2_bit:= 1
2923 00000057 = direction_set__select__13___byte equ direction_set__temp
2924 00000004 = direction_set__select__13___bit equ 4
2925 01cd 1657          bsf     direction_set__select__13___byte, direction_set__select__13___bit
2926                    ; Recombine size1 = 0 || size2 = 0
2927                    ; code.delay=4294967295 back_code.delay=4294967295
2928                    ; <=bit_code_emit@symbol; sym=direction_set__select__14 (data:00=>00 code:XX=>XX)
2929                    ; line_number = 328
2930                    ; if direction@2 done
2931                    ; line_number = 330
2932                    ; if direction@3 start
2933 00000028 = direction_set__select__16___byte equ direction
2934 00000003 = direction_set__select__16___bit equ 3
2935                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2936                    ; CASE: True.size=1 False.size=0
2937 01ce 19a8          btfsc   direction_set__select__16___byte, direction_set__select__16___bit
2938                    ; line_number = 331
2939                    ; temp@io3_bit := 1
2940 00000057 = direction_set__select__15___byte equ direction_set__temp
2941 00000002 = direction_set__select__15___bit equ 2
2942 01cf 1557          bsf     direction_set__select__15___byte, direction_set__select__15___bit
2943                    ; Recombine size1 = 0 || size2 = 0
2944                    ; code.delay=4294967295 back_code.delay=4294967295
2945                    ; <=bit_code_emit@symbol; sym=direction_set__select__16 (data:00=>00 code:XX=>XX)
2946                    ; line_number = 330
2947                    ; if direction@3 done
2948                    ; line_number = 332
2949                    ; _trisa := temp
2950 01d0 0857          movf    direction_set__temp,w
2951 01d1 1683          bsf     __rp0___byte, __rp0___bit
2952 01d2 0085          movwf   _trisa
2953            
2954                    ; line_number = 334
2955                    ;  temp := 0
2956 01d3 3000          movlw   0
2957 01d4 1283          bcf     __rp0___byte, __rp0___bit
2958 01d5 00d7          movwf   direction_set__temp
2959                    ; line_number = 335
2960                    ;  if analog_mask@0 start
2961 00000030 = direction_set__select__18___byte equ analog_mask
2962 00000000 = direction_set__select__18___bit equ 0
2963                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2964                    ; CASE: True.size=1 False.size=0
2965 01d6 1830          btfsc   direction_set__select__18___byte, direction_set__select__18___bit
2966                    ; line_number = 336
2967                    ; temp@0 := 1
2968 00000057 = direction_set__select__17___byte equ direction_set__temp
2969 00000000 = direction_set__select__17___bit equ 0
2970 01d7 1457          bsf     direction_set__select__17___byte, direction_set__select__17___bit
2971                    ; Recombine size1 = 0 || size2 = 0
2972                    ; code.delay=4294967295 back_code.delay=4294967295
2973                    ; <=bit_code_emit@symbol; sym=direction_set__select__18 (data:00=>00 code:XX=>XX)
2974                    ; line_number = 335
2975                    ;  if analog_mask@0 done
2976                    ; line_number = 337
2977                    ; if analog_mask@1 start
2978 00000030 = direction_set__select__20___byte equ analog_mask
2979 00000001 = direction_set__select__20___bit equ 1
2980                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2981                    ; CASE: True.size=1 False.size=0
2982 01d8 18b0          btfsc   direction_set__select__20___byte, direction_set__select__20___bit
2983                    ; line_number = 338
2984                    ; temp@1 := 1
2985 00000057 = direction_set__select__19___byte equ direction_set__temp
2986 00000001 = direction_set__select__19___bit equ 1
2987 01d9 14d7          bsf     direction_set__select__19___byte, direction_set__select__19___bit
2988                    ; Recombine size1 = 0 || size2 = 0
2989                    ; code.delay=4294967295 back_code.delay=4294967295
2990                    ; <=bit_code_emit@symbol; sym=direction_set__select__20 (data:00=>00 code:XX=>XX)
2991                    ; line_number = 337
2992                    ; if analog_mask@1 done
2993                    ; line_number = 339
2994                    ; if analog_mask@2 start
2995 00000030 = direction_set__select__22___byte equ analog_mask
2996 00000002 = direction_set__select__22___bit equ 2
2997                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2998                    ; CASE: True.size=1 False.size=0
2999 01da 1930          btfsc   direction_set__select__22___byte, direction_set__select__22___bit
3000                    ; line_number = 340
3001                    ; temp@3 := 1
3002 00000057 = direction_set__select__21___byte equ direction_set__temp
3003 00000003 = direction_set__select__21___bit equ 3
3004 01db 15d7          bsf     direction_set__select__21___byte, direction_set__select__21___bit
3005                    ; Recombine size1 = 0 || size2 = 0
3006                    ; code.delay=4294967295 back_code.delay=4294967295
3007                    ; <=bit_code_emit@symbol; sym=direction_set__select__22 (data:00=>00 code:XX=>XX)
3008                    ; line_number = 339
3009                    ; if analog_mask@2 done
3010                    ; line_number = 341
3011                    ; if analog_mask@3 start
3012 00000030 = direction_set__select__24___byte equ analog_mask
3013 00000003 = direction_set__select__24___bit equ 3
3014                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3015                    ; CASE: True.size=1 False.size=0
3016 01dc 19b0          btfsc   direction_set__select__24___byte, direction_set__select__24___bit
3017                    ; line_number = 342
3018                    ; temp@2 := 1
3019 00000057 = direction_set__select__23___byte equ direction_set__temp
3020 00000002 = direction_set__select__23___bit equ 2
3021 01dd 1557          bsf     direction_set__select__23___byte, direction_set__select__23___bit
3022                    ; Recombine size1 = 0 || size2 = 0
3023                    ; code.delay=4294967295 back_code.delay=4294967295
3024                    ; <=bit_code_emit@symbol; sym=direction_set__select__24 (data:00=>00 code:XX=>XX)
3025                    ; line_number = 341
3026                    ; if analog_mask@3 done
3027                    ; line_number = 343
3028                    ; if analog_mask@4 start
3029 00000030 = direction_set__select__26___byte equ analog_mask
3030 00000004 = direction_set__select__26___bit equ 4
3031                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3032                    ; CASE: True.size=1 False.size=0
3033 01de 1a30          btfsc   direction_set__select__26___byte, direction_set__select__26___bit
3034                    ; line_number = 344
3035                    ; temp@4 := 1
3036 00000057 = direction_set__select__25___byte equ direction_set__temp
3037 00000004 = direction_set__select__25___bit equ 4
3038 01df 1657          bsf     direction_set__select__25___byte, direction_set__select__25___bit
3039                    ; Recombine size1 = 0 || size2 = 0
3040                    ; code.delay=4294967295 back_code.delay=4294967295
3041                    ; <=bit_code_emit@symbol; sym=direction_set__select__26 (data:00=>00 code:XX=>XX)
3042                    ; line_number = 343
3043                    ; if analog_mask@4 done
3044                    ; line_number = 345
3045                    ; if analog_mask@5 start
3046 00000030 = direction_set__select__28___byte equ analog_mask
3047 00000005 = direction_set__select__28___bit equ 5
3048                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3049                    ; CASE: True.size=1 False.size=0
3050 01e0 1ab0          btfsc   direction_set__select__28___byte, direction_set__select__28___bit
3051                    ; line_number = 346
3052                    ; temp@5 := 1
3053 00000057 = direction_set__select__27___byte equ direction_set__temp
3054 00000005 = direction_set__select__27___bit equ 5
3055 01e1 16d7          bsf     direction_set__select__27___byte, direction_set__select__27___bit
3056                    ; Recombine size1 = 0 || size2 = 0
3057                    ; code.delay=4294967295 back_code.delay=4294967295
3058                    ; <=bit_code_emit@symbol; sym=direction_set__select__28 (data:00=>00 code:XX=>XX)
3059                    ; line_number = 345
3060                    ; if analog_mask@5 done
3061                    ; line_number = 347
3062                    ; if analog_mask@6 start
3063 00000030 = direction_set__select__30___byte equ analog_mask
3064 00000006 = direction_set__select__30___bit equ 6
3065                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3066                    ; CASE: True.size=1 False.size=0
3067 01e2 1b30          btfsc   direction_set__select__30___byte, direction_set__select__30___bit
3068                    ; line_number = 348
3069                    ; temp@6 := 1
3070 00000057 = direction_set__select__29___byte equ direction_set__temp
3071 00000006 = direction_set__select__29___bit equ 6
3072 01e3 1757          bsf     direction_set__select__29___byte, direction_set__select__29___bit
3073                    ; Recombine size1 = 0 || size2 = 0
3074                    ; code.delay=4294967295 back_code.delay=4294967295
3075                    ; <=bit_code_emit@symbol; sym=direction_set__select__30 (data:00=>00 code:XX=>XX)
3076                    ; line_number = 347
3077                    ; if analog_mask@6 done
3078                    ; line_number = 349
3079                    ; if analog_mask@7 start
3080 00000030 = direction_set__select__32___byte equ analog_mask
3081 00000007 = direction_set__select__32___bit equ 7
3082                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3083                    ; CASE: True.size=1 False.size=0
3084 01e4 1bb0          btfsc   direction_set__select__32___byte, direction_set__select__32___bit
3085                    ; line_number = 350
3086                    ; temp@7 := 1
3087 00000057 = direction_set__select__31___byte equ direction_set__temp
3088 00000007 = direction_set__select__31___bit equ 7
3089 01e5 17d7          bsf     direction_set__select__31___byte, direction_set__select__31___bit
3090                    ; Recombine size1 = 0 || size2 = 0
3091                    ; code.delay=4294967295 back_code.delay=4294967295
3092                    ; <=bit_code_emit@symbol; sym=direction_set__select__32 (data:00=>00 code:XX=>XX)
3093                    ; line_number = 349
3094                    ; if analog_mask@7 done
3095                    ; line_number = 351
3096                    ; _ansel := temp
3097 01e6 0857          movf    direction_set__temp,w
3098 01e7 1683          bsf     __rp0___byte, __rp0___bit
3099 01e8 0091          movwf   _ansel
3100            
3101            
3102                    ; delay after procedure statements=non-uniform
3103 01e9 1283          bcf     __rp0___byte, __rp0___bit
3104                    ; Implied return
3105 01ea 3400          retlw   0
3106            
3107            
3108            
3109            
3110                    ; line_number = 354
3111                    ; procedure reset
3112   01eb :   reset:
3113                    ; arguments_none
3114                    ; line_number = 356
3115                    ;  returns_nothing
3116            
3117                    ; # This procedure will initialize all global registers:
3118            
3119                    ; # Initialize global registertes:
3120                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3121                    ; line_number = 361
3122                    ;  index := 0
3123 01eb 3000          movlw   0
3124 01ec 00d2          movwf   index
3125                    ; line_number = 362
3126                    ;  loop_exactly state_size start
3127 0000005f = reset__1 equ globals___0+63
3128 01ed 300e          movlw   14
3129 01ee 00df          movwf   reset__1
3130   01ef :   reset__2:
3131                    ; line_number = 363
3132                    ; state[index] := 0
3133                    ; index_fsr_first
3134 01ef 0852          movf    index,w
3135 01f0 3e23          addlw   state
3136 01f1 0084          movwf   __fsr
3137 01f2 3000          movlw   0
3138 01f3 0080          movwf   __indf
3139                    ; line_number = 364
3140                    ;  index := index + 1
3141 01f4 0ad2          incf    index,f
3142            
3143                    ; line_number = 362
3144                    ;  loop_exactly state_size wrap-up
3145 01f5 0bdf          decfsz  reset__1,f
3146 01f6 29ef          goto    reset__2
3147                    ; line_number = 362
3148                    ;  loop_exactly state_size done
3149                    ; line_number = 366
3150                    ; index := 0
3151 01f7 3000          movlw   0
3152 01f8 00d2          movwf   index
3153                    ; line_number = 367
3154                    ;  loop_exactly 8 start
3155 0000005f = reset__3 equ globals___0+63
3156 01f9 3008          movlw   8
3157 01fa 00df          movwf   reset__3
3158   01fb :   reset__4:
3159                    ; line_number = 368
3160                    ; analogs_high[index] := 0
3161                    ; index_fsr_first
3162 01fb 0852          movf    index,w
3163 01fc 3e31          addlw   analogs_high
3164 01fd 0084          movwf   __fsr
3165 01fe 3000          movlw   0
3166 01ff 0080          movwf   __indf
3167                    ; line_number = 369
3168                    ;  analogs_low[index] := 0
3169                    ; index_fsr_first
3170 0200 0852          movf    index,w
3171 0201 3e39          addlw   analogs_low
3172 0202 0084          movwf   __fsr
3173 0203 3000          movlw   0
3174 0204 0080          movwf   __indf
3175                    ; line_number = 370
3176                    ;  thresholds_high[index] := 0x80
3177                    ; index_fsr_first
3178 0205 0852          movf    index,w
3179 0206 3e41          addlw   thresholds_high
3180 0207 0084          movwf   __fsr
3181 0208 3080          movlw   128
3182 0209 0080          movwf   __indf
3183                    ; line_number = 371
3184                    ;  thresholds_low[index] := 0x80
3185                    ; index_fsr_first
3186 020a 0852          movf    index,w
3187 020b 3e49          addlw   thresholds_low
3188 020c 0084          movwf   __fsr
3189 020d 3080          movlw   128
3190 020e 0080          movwf   __indf
3191                    ; line_number = 372
3192                    ;  index := index + 1
3193 020f 0ad2          incf    index,f
3194            
3195                    ; line_number = 367
3196                    ;  loop_exactly 8 wrap-up
3197 0210 0bdf          decfsz  reset__3,f
3198 0211 29fb          goto    reset__4
3199                    ; line_number = 367
3200                    ;  loop_exactly 8 done
3201                    ; line_number = 374
3202                    ; interrupt_enable := 0
3203 0212 102b          bcf     interrupt_enable___byte, interrupt_enable___bit
3204                    ; line_number = 375
3205                    ;  interrupt_pending := 0
3206 0213 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
3207                    ; line_number = 376
3208                    ;  direction := 0xff
3209 0214 30ff          movlw   255
3210 0215 00a8          movwf   direction
3211                    ; line_number = 377
3212                    ;  analog_mask := 0
3213 0216 3000          movlw   0
3214 0217 00b0          movwf   analog_mask
3215            
3216                    ; # Initialize the A/D module:
3217                    ; # A/D Conversion clock is Fosc/8 (Tad=2uS) and AD is on:
3218                    ; line_number = 381
3219                    ;  _adcon0 := 1
3220 0218 3001          movlw   1
3221 0219 009f          movwf   _adcon0
3222                    ; line_number = 382
3223                    ;  _adcon1 := 0x20
3224 021a 3020          movlw   32
3225 021b 1683          bsf     __rp0___byte, __rp0___bit
3226 021c 009f          movwf   _adcon1
3227                    ; line_number = 383
3228                    ;  _adcs0 := 1
3229 021d 161f          bsf     _adcs0___byte, _adcs0___bit
3230                    ; line_number = 384
3231                    ;  _adif := 0
3232 021e 1283          bcf     __rp0___byte, __rp0___bit
3233 021f 130c          bcf     _adif___byte, _adif___bit
3234                    ; line_number = 385
3235                    ;  _adie := 0
3236 0220 1683          bsf     __rp0___byte, __rp0___bit
3237 0221 130c          bcf     _adie___byte, _adie___bit
3238                    ; line_number = 386
3239                    ;  _gie := 0
3240 0222 1283          bcf     __rp0___byte, __rp0___bit
3241 0223 138b          bcf     _gie___byte, _gie___bit
3242                    ; line_number = 387
3243                    ;  channel := 0
3244 0224 3000          movlw   0
3245 0225 00d4          movwf   channel
3246            
3247                    ; # This sets TRISA and TRISC:
3248                    ; line_number = 390
3249                    ;  call direction_set()
3250 0226 21b8          call    direction_set
3251            
3252                    ; # Initialize remaining registers:
3253                    ; line_number = 393
3254                    ;  glitch := 0
3255 0227 3000          movlw   0
3256 0228 00d1          movwf   glitch
3257                    ; line_number = 394
3258                    ;  index := 0
3259 0229 3000          movlw   0
3260 022a 00d2          movwf   index
3261            
3262            
3263                    ; delay after procedure statements=non-uniform
3264                    ; Implied return
3265 022b 3400          retlw   0
3266            
3267            
3268            
3269            
3270                    ; line_number = 397
3271                    ; procedure delay
3272   022c :   delay:
3273                    ; arguments_none
3274                    ; line_number = 399
3275                    ;  returns_nothing
3276            
3277                    ; # This procedure delays 1/3 of a bit.
3278            
3279                    ; line_number = 403
3280                    ;  local temp byte
3281 00000058 = delay__temp equ globals___0+56
3282                    ; line_number = 404
3283                    ;  local previous byte
3284 00000059 = delay__previous equ globals___0+57
3285                    ; line_number = 405
3286                    ;  local current byte
3287 0000005a = delay__current equ globals___0+58
3288                    ; line_number = 406
3289                    ;  local not_current byte
3290 0000005b = delay__not_current equ globals___0+59
3291                    ; line_number = 407
3292                    ;  local changed byte
3293 0000005c = delay__changed equ globals___0+60
3294            
3295            
3296                    ; # Perform A/D:
3297                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3298                    ; line_number = 411
3299                    ;  chan := chans[channel]
3300 022c 0854          movf    channel,w
3301 022d 22c9          call    chans
3302 022e 00d3          movwf   chan
3303            
3304                    ; # At 8MHz, TAD = 1.6uS (ADCS<2:0>=010).  An A/D conversion takes
3305                    ; # 11*TAD = 11*1.6uS = 17.1uS 
3306            
3307                    ; # Acquiring the signal takes approximately 20uS.
3308                    ; # We'll pad that out a little to 25uS to be safe:
3309            
3310                    ; line_number = 419
3311                    ;  _adcon0 := (chan << 2) | 1
3312 00000060 = delay__1 equ globals___0+64
3313 022f 0d53          rlf     chan,w
3314 0230 00e0          movwf   delay__1
3315 0231 0d60          rlf     delay__1,w
3316 0232 39fc          andlw   252
3317 0233 3801          iorlw   1
3318 0234 009f          movwf   _adcon0
3319                    ; line_number = 420
3320                    ;  delay 25 * microsecond start
3321                    ; Delay expression evaluates to 50
3322                    ; # Kick the dog:
3323                    ; line_number = 422
3324                    ;  watch_dog_reset done
3325                    ; Delay at watch_dog_reset is 0
3326 0235 0064          clrwdt  
3327            
3328                    ; # Read inputs:
3329                    ; line_number = 425
3330                    ;  raw := 0
3331                    ; Delay at assignment is 1
3332 0236 3000          movlw   0
3333 0237 00a7          movwf   raw
3334                    ; line_number = 426
3335                    ;  if io7 start
3336                    ; Delay at if is 3
3337                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3338                    ; CASE: True.size=1 False.size=0
3339 0238 1987          btfsc   io7___byte, io7___bit
3340                    ; line_number = 427
3341                    ; raw@7 := 1
3342                    ; Delay at assignment is 0
3343 00000027 = delay__select__2___byte equ raw
3344 00000007 = delay__select__2___bit equ 7
3345 0239 17a7          bsf     delay__select__2___byte, delay__select__2___bit
3346                    ; code.delay=5 back_code.delay=0
3347                    ; <=bit_code_emit@symbol; sym=io7 (data:00=>00 code:XX=>XX)
3348                    ; if final true delay=1 false delay=0 code delay=5
3349                    ; line_number = 426
3350                    ;  if io7 done
3351                    ; line_number = 428
3352                    ; if io6 start
3353                    ; Delay at if is 5
3354                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3355                    ; CASE: True.size=1 False.size=0
3356 023a 1907          btfsc   io6___byte, io6___bit
3357                    ; line_number = 429
3358                    ; raw@6 := 1
3359                    ; Delay at assignment is 0
3360 00000027 = delay__select__3___byte equ raw
3361 00000006 = delay__select__3___bit equ 6
3362 023b 1727          bsf     delay__select__3___byte, delay__select__3___bit
3363                    ; code.delay=7 back_code.delay=0
3364                    ; <=bit_code_emit@symbol; sym=io6 (data:00=>00 code:XX=>XX)
3365                    ; if final true delay=1 false delay=0 code delay=7
3366                    ; line_number = 428
3367                    ; if io6 done
3368                    ; line_number = 430
3369                    ; if io5 start
3370                    ; Delay at if is 7
3371                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3372                    ; CASE: True.size=1 False.size=0
3373 023c 1887          btfsc   io5___byte, io5___bit
3374                    ; line_number = 431
3375                    ; raw@5 := 1
3376                    ; Delay at assignment is 0
3377 00000027 = delay__select__4___byte equ raw
3378 00000005 = delay__select__4___bit equ 5
3379 023d 16a7          bsf     delay__select__4___byte, delay__select__4___bit
3380                    ; code.delay=9 back_code.delay=0
3381                    ; <=bit_code_emit@symbol; sym=io5 (data:00=>00 code:XX=>XX)
3382                    ; if final true delay=1 false delay=0 code delay=9
3383                    ; line_number = 430
3384                    ; if io5 done
3385                    ; line_number = 432
3386                    ; if io4 start
3387                    ; Delay at if is 9
3388                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3389                    ; CASE: True.size=1 False.size=0
3390 023e 1807          btfsc   io4___byte, io4___bit
3391                    ; line_number = 433
3392                    ; raw@4 := 1
3393                    ; Delay at assignment is 0
3394 00000027 = delay__select__5___byte equ raw
3395 00000004 = delay__select__5___bit equ 4
3396 023f 1627          bsf     delay__select__5___byte, delay__select__5___bit
3397                    ; code.delay=11 back_code.delay=0
3398                    ; <=bit_code_emit@symbol; sym=io4 (data:00=>00 code:XX=>XX)
3399                    ; if final true delay=1 false delay=0 code delay=11
3400                    ; line_number = 432
3401                    ; if io4 done
3402                    ; line_number = 434
3403                    ; if io3 start
3404                    ; Delay at if is 11
3405                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3406                    ; CASE: True.size=1 False.size=0
3407 0240 1905          btfsc   io3___byte, io3___bit
3408                    ; line_number = 435
3409                    ; raw@3 := 1
3410                    ; Delay at assignment is 0
3411 00000027 = delay__select__6___byte equ raw
3412 00000003 = delay__select__6___bit equ 3
3413 0241 15a7          bsf     delay__select__6___byte, delay__select__6___bit
3414                    ; code.delay=13 back_code.delay=0
3415                    ; <=bit_code_emit@symbol; sym=io3 (data:00=>00 code:XX=>XX)
3416                    ; if final true delay=1 false delay=0 code delay=13
3417                    ; line_number = 434
3418                    ; if io3 done
3419                    ; line_number = 436
3420                    ; if io2 start
3421                    ; Delay at if is 13
3422                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3423                    ; CASE: True.size=1 False.size=0
3424 0242 1a05          btfsc   io2___byte, io2___bit
3425                    ; line_number = 437
3426                    ; raw@2 := 1
3427                    ; Delay at assignment is 0
3428 00000027 = delay__select__7___byte equ raw
3429 00000002 = delay__select__7___bit equ 2
3430 0243 1527          bsf     delay__select__7___byte, delay__select__7___bit
3431                    ; code.delay=15 back_code.delay=0
3432                    ; <=bit_code_emit@symbol; sym=io2 (data:00=>00 code:XX=>XX)
3433                    ; if final true delay=1 false delay=0 code delay=15
3434                    ; line_number = 436
3435                    ; if io2 done
3436                    ; line_number = 438
3437                    ; if io1 start
3438                    ; Delay at if is 15
3439                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3440                    ; CASE: True.size=1 False.size=0
3441 0244 1885          btfsc   io1___byte, io1___bit
3442                    ; line_number = 439
3443                    ; raw@1 := 1
3444                    ; Delay at assignment is 0
3445 00000027 = delay__select__8___byte equ raw
3446 00000001 = delay__select__8___bit equ 1
3447 0245 14a7          bsf     delay__select__8___byte, delay__select__8___bit
3448                    ; code.delay=17 back_code.delay=0
3449                    ; <=bit_code_emit@symbol; sym=io1 (data:00=>00 code:XX=>XX)
3450                    ; if final true delay=1 false delay=0 code delay=17
3451                    ; line_number = 438
3452                    ; if io1 done
3453                    ; line_number = 440
3454                    ; if io0 start
3455                    ; Delay at if is 17
3456                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3457                    ; CASE: True.size=1 False.size=0
3458 0246 1805          btfsc   io0___byte, io0___bit
3459                    ; line_number = 441
3460                    ; raw@0 := 1
3461                    ; Delay at assignment is 0
3462 00000027 = delay__select__9___byte equ raw
3463 00000000 = delay__select__9___bit equ 0
3464 0247 1427          bsf     delay__select__9___byte, delay__select__9___bit
3465            
3466                    ; code.delay=19 back_code.delay=0
3467                    ; <=bit_code_emit@symbol; sym=io0 (data:00=>00 code:XX=>XX)
3468                    ; if final true delay=1 false delay=0 code delay=19
3469                    ; line_number = 440
3470                    ; if io0 done
3471                    ; Delay 31 cycles
3472                    ; Delay loop takes 7 * 4 = 28 cycles
3473 0248 3007          movlw   7
3474   0249 :   delay__10:
3475 0249 3eff          addlw   255
3476 024a 1d03          btfss   __z___byte, __z___bit
3477 024b 2a49          goto    delay__10
3478 024c 2a4d          goto    delay__11
3479   024d :   delay__11:
3480 024d 0000          nop     
3481                    ; line_number = 420
3482                    ;  delay 25 * microsecond done
3483                    ; # Getting the value takes 11 & Tad, where Tad = 2uS = 22uS.
3484                    ; # We'll add 5uS for a little pad:
3485                    ; line_number = 445
3486                    ;  _go := 1
3487 024e 149f          bsf     _go___byte, _go___bit
3488                    ; line_number = 446
3489                    ;  delay 28 * microsecond start
3490                    ; Delay expression evaluates to 56
3491                    ; # Write out port C:
3492                    ; line_number = 448
3493                    ;  temp := 0
3494                    ; Delay at assignment is 0
3495 024f 3000          movlw   0
3496 0250 00d8          movwf   delay__temp
3497                    ; line_number = 449
3498                    ;  if outputs@7 start
3499                    ; Delay at if is 2
3500 00000029 = delay__select__13___byte equ outputs
3501 00000007 = delay__select__13___bit equ 7
3502                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3503                    ; CASE: True.size=1 False.size=0
3504 0251 1ba9          btfsc   delay__select__13___byte, delay__select__13___bit
3505                    ; line_number = 450
3506                    ; temp@io7_bit := 1
3507                    ; Delay at assignment is 0
3508 00000058 = delay__select__12___byte equ delay__temp
3509 00000003 = delay__select__12___bit equ 3
3510 0252 15d8          bsf     delay__select__12___byte, delay__select__12___bit
3511                    ; code.delay=4 back_code.delay=0
3512                    ; <=bit_code_emit@symbol; sym=delay__select__13 (data:00=>00 code:XX=>XX)
3513                    ; if final true delay=1 false delay=0 code delay=4
3514                    ; line_number = 449
3515                    ;  if outputs@7 done
3516                    ; line_number = 451
3517                    ; if outputs@6 start
3518                    ; Delay at if is 4
3519 00000029 = delay__select__15___byte equ outputs
3520 00000006 = delay__select__15___bit equ 6
3521                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3522                    ; CASE: True.size=1 False.size=0
3523 0253 1b29          btfsc   delay__select__15___byte, delay__select__15___bit
3524                    ; line_number = 452
3525                    ; temp@io6_bit := 1
3526                    ; Delay at assignment is 0
3527 00000058 = delay__select__14___byte equ delay__temp
3528 00000002 = delay__select__14___bit equ 2
3529 0254 1558          bsf     delay__select__14___byte, delay__select__14___bit
3530                    ; code.delay=6 back_code.delay=0
3531                    ; <=bit_code_emit@symbol; sym=delay__select__15 (data:00=>00 code:XX=>XX)
3532                    ; if final true delay=1 false delay=0 code delay=6
3533                    ; line_number = 451
3534                    ; if outputs@6 done
3535                    ; line_number = 453
3536                    ; if outputs@5 start
3537                    ; Delay at if is 6
3538 00000029 = delay__select__17___byte equ outputs
3539 00000005 = delay__select__17___bit equ 5
3540                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3541                    ; CASE: True.size=1 False.size=0
3542 0255 1aa9          btfsc   delay__select__17___byte, delay__select__17___bit
3543                    ; line_number = 454
3544                    ; temp@io5_bit := 1
3545                    ; Delay at assignment is 0
3546 00000058 = delay__select__16___byte equ delay__temp
3547 00000001 = delay__select__16___bit equ 1
3548 0256 14d8          bsf     delay__select__16___byte, delay__select__16___bit
3549                    ; code.delay=8 back_code.delay=0
3550                    ; <=bit_code_emit@symbol; sym=delay__select__17 (data:00=>00 code:XX=>XX)
3551                    ; if final true delay=1 false delay=0 code delay=8
3552                    ; line_number = 453
3553                    ; if outputs@5 done
3554                    ; line_number = 455
3555                    ; if outputs@4 start
3556                    ; Delay at if is 8
3557 00000029 = delay__select__19___byte equ outputs
3558 00000004 = delay__select__19___bit equ 4
3559                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3560                    ; CASE: True.size=1 False.size=0
3561 0257 1a29          btfsc   delay__select__19___byte, delay__select__19___bit
3562                    ; line_number = 456
3563                    ; temp@io4_bit := 1
3564                    ; Delay at assignment is 0
3565 00000058 = delay__select__18___byte equ delay__temp
3566 00000000 = delay__select__18___bit equ 0
3567 0258 1458          bsf     delay__select__18___byte, delay__select__18___bit
3568                    ; code.delay=10 back_code.delay=0
3569                    ; <=bit_code_emit@symbol; sym=delay__select__19 (data:00=>00 code:XX=>XX)
3570                    ; if final true delay=1 false delay=0 code delay=10
3571                    ; line_number = 455
3572                    ; if outputs@4 done
3573                    ; line_number = 457
3574                    ; _portc := temp
3575                    ; Delay at assignment is 10
3576 0259 0858          movf    delay__temp,w
3577 025a 0087          movwf   _portc
3578            
3579                    ; # Write out port A:
3580                    ; line_number = 460
3581                    ;  temp := 0
3582                    ; Delay at assignment is 12
3583 025b 3000          movlw   0
3584 025c 00d8          movwf   delay__temp
3585                    ; line_number = 461
3586                    ;  if outputs@3 start
3587                    ; Delay at if is 14
3588 00000029 = delay__select__21___byte equ outputs
3589 00000003 = delay__select__21___bit equ 3
3590                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3591                    ; CASE: True.size=1 False.size=0
3592 025d 19a9          btfsc   delay__select__21___byte, delay__select__21___bit
3593                    ; line_number = 462
3594                    ; temp@io3_bit := 1
3595                    ; Delay at assignment is 0
3596 00000058 = delay__select__20___byte equ delay__temp
3597 00000002 = delay__select__20___bit equ 2
3598 025e 1558          bsf     delay__select__20___byte, delay__select__20___bit
3599                    ; code.delay=16 back_code.delay=0
3600                    ; <=bit_code_emit@symbol; sym=delay__select__21 (data:00=>00 code:XX=>XX)
3601                    ; if final true delay=1 false delay=0 code delay=16
3602                    ; line_number = 461
3603                    ;  if outputs@3 done
3604                    ; line_number = 463
3605                    ; if outputs@2 start
3606                    ; Delay at if is 16
3607 00000029 = delay__select__23___byte equ outputs
3608 00000002 = delay__select__23___bit equ 2
3609                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3610                    ; CASE: True.size=1 False.size=0
3611 025f 1929          btfsc   delay__select__23___byte, delay__select__23___bit
3612                    ; line_number = 464
3613                    ; temp@io2_bit := 1
3614                    ; Delay at assignment is 0
3615 00000058 = delay__select__22___byte equ delay__temp
3616 00000004 = delay__select__22___bit equ 4
3617 0260 1658          bsf     delay__select__22___byte, delay__select__22___bit
3618                    ; code.delay=18 back_code.delay=0
3619                    ; <=bit_code_emit@symbol; sym=delay__select__23 (data:00=>00 code:XX=>XX)
3620                    ; if final true delay=1 false delay=0 code delay=18
3621                    ; line_number = 463
3622                    ; if outputs@2 done
3623                    ; line_number = 465
3624                    ; if outputs@1 start
3625                    ; Delay at if is 18
3626 00000029 = delay__select__25___byte equ outputs
3627 00000001 = delay__select__25___bit equ 1
3628                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3629                    ; CASE: True.size=1 False.size=0
3630 0261 18a9          btfsc   delay__select__25___byte, delay__select__25___bit
3631                    ; line_number = 466
3632                    ; temp@io1_bit := 1
3633                    ; Delay at assignment is 0
3634 00000058 = delay__select__24___byte equ delay__temp
3635 00000001 = delay__select__24___bit equ 1
3636 0262 14d8          bsf     delay__select__24___byte, delay__select__24___bit
3637                    ; code.delay=20 back_code.delay=0
3638                    ; <=bit_code_emit@symbol; sym=delay__select__25 (data:00=>00 code:XX=>XX)
3639                    ; if final true delay=1 false delay=0 code delay=20
3640                    ; line_number = 465
3641                    ; if outputs@1 done
3642                    ; line_number = 467
3643                    ; if outputs@0 start
3644                    ; Delay at if is 20
3645 00000029 = delay__select__27___byte equ outputs
3646 00000000 = delay__select__27___bit equ 0
3647                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3648                    ; CASE: True.size=1 False.size=0
3649 0263 1829          btfsc   delay__select__27___byte, delay__select__27___bit
3650                    ; line_number = 468
3651                    ; temp@io0_bit := 1
3652                    ; Delay at assignment is 0
3653 00000058 = delay__select__26___byte equ delay__temp
3654 00000000 = delay__select__26___bit equ 0
3655 0264 1458          bsf     delay__select__26___byte, delay__select__26___bit
3656                    ; code.delay=22 back_code.delay=0
3657                    ; <=bit_code_emit@symbol; sym=delay__select__27 (data:00=>00 code:XX=>XX)
3658                    ; if final true delay=1 false delay=0 code delay=22
3659                    ; line_number = 467
3660                    ; if outputs@0 done
3661                    ; line_number = 469
3662                    ; _porta := temp
3663                    ; Delay at assignment is 22
3664 0265 0858          movf    delay__temp,w
3665 0266 0085          movwf   _porta
3666            
3667                    ; Delay 32 cycles
3668                    ; Delay loop takes 8 * 4 = 32 cycles
3669 0267 3008          movlw   8
3670   0268 :   delay__28:
3671 0268 3eff          addlw   255
3672 0269 1d03          btfss   __z___byte, __z___bit
3673 026a 2a68          goto    delay__28
3674                    ; line_number = 446
3675                    ;  delay 28 * microsecond done
3676                    ; # A/D result is ready:
3677                    ; line_number = 472
3678                    ;  analogs_high[channel] := _adresh
3679                    ; index_fsr_first
3680 026b 0854          movf    channel,w
3681 026c 3e31          addlw   analogs_high
3682 026d 0084          movwf   __fsr
3683 026e 081e          movf    _adresh,w
3684 026f 0080          movwf   __indf
3685                    ; line_number = 473
3686                    ;  analogs_low[channel] := _adresl
3687                    ; index_fsr_first
3688 0270 0854          movf    channel,w
3689 0271 3e39          addlw   analogs_low
3690 0272 0084          movwf   __fsr
3691 0273 1683          bsf     __rp0___byte, __rp0___bit
3692 0274 081e          movf    _adresl,w
3693 0275 0080          movwf   __indf
3694            
3695                    ; # Store the result away:
3696                    ; line_number = 476
3697                    ;  channel := (channel + 1) & 7
3698 0276 1283          bcf     __rp0___byte, __rp0___bit
3699 0277 0a54          incf    channel,w
3700 0278 3907          andlw   7
3701 0279 00d4          movwf   channel
3702            
3703                    ; # Setup for interrupts:
3704                    ; line_number = 479
3705                    ;  previous := current
3706 027a 085a          movf    delay__current,w
3707 027b 00d9          movwf   delay__previous
3708                    ; # Read the I/O port once:
3709                    ; line_number = 481
3710                    ;  current := raw ^ complement_mask
3711 027c 0827          movf    raw,w
3712 027d 062a          xorwf   complement_mask,w
3713 027e 00da          movwf   delay__current
3714                    ; line_number = 482
3715                    ;  not_current := current ^ 0xff
3716 027f 30ff          movlw   255
3717 0280 065a          xorwf   delay__current,w
3718 0281 00db          movwf   delay__not_current
3719                    ; line_number = 483
3720                    ;  changed := current ^ previous
3721 0282 085a          movf    delay__current,w
3722 0283 0659          xorwf   delay__previous,w
3723 0284 00dc          movwf   delay__changed
3724            
3725                    ; # See about triggering the interrupt_pending flag:
3726                    ; line_number = 486
3727                    ;  if (low_mask & not_current) | (high_mask & current) | (changed & current & rising_mask) | (changed & not_current & falling_mask) != 0 start
3728                    ; Left minus Right
3729 00000060 = delay__29 equ globals___0+64
3730 0285 082c          movf    low_mask,w
3731 0286 055b          andwf   delay__not_current,w
3732 0287 00e0          movwf   delay__29
3733 0288 082d          movf    high_mask,w
3734 0289 055a          andwf   delay__current,w
3735 028a 04e0          iorwf   delay__29,f
3736 028b 085c          movf    delay__changed,w
3737 028c 055a          andwf   delay__current,w
3738 028d 052e          andwf   rising_mask,w
3739 028e 04e0          iorwf   delay__29,f
3740 028f 085c          movf    delay__changed,w
3741 0290 055b          andwf   delay__not_current,w
3742 0291 052f          andwf   falling_mask,w
3743 0292 0460          iorwf   delay__29,w
3744                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3745                    ; CASE: true_code.size=0 && false_code.size=1
3746 0293 1d03          btfss   __z___byte, __z___bit
3747                    ; line_number = 489
3748                    ; interrupt_pending := 1
3749 0294 14ab          bsf     interrupt_pending___byte, interrupt_pending___bit
3750            
3751                    ; Recombine size1 = 0 || size2 = 0
3752                    ; code.delay=4294967295 back_code.delay=4294967295
3753                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3754                    ; line_number = 486
3755                    ;  if (low_mask & not_current) | (high_mask & current) | (changed & current & rising_mask) | (changed & not_current & falling_mask) != 0 done
3756            
3757                    ; # Send an interrupt if interrupts are enabled:
3758                    ; line_number = 492
3759                    ;  if interrupt_pending start
3760                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3761                    ; CASE: true_code.size = 0 && false_code.size > 1
3762                    ; bit_code_emit_helper1: body_code.size=6 true_test=true body_code.delay=0 (non-uniform delay)
3763 0295 1cab          btfss   interrupt_pending___byte, interrupt_pending___bit
3764 0296 2a9d          goto    delay__32
3765                    ; line_number = 493
3766                    ; if interrupt_enable start
3767                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3768                    ; CASE: true_code.size = 0 && false_code.size > 1
3769                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
3770 0297 1c2b          btfss   interrupt_enable___byte, interrupt_enable___bit
3771 0298 2a9d          goto    delay__31
3772                    ; # If transmit buffer is empty, send a null:
3773                    ; line_number = 495
3774                    ;  if _trmt start
3775                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3776                    ; CASE: true_code.size = 0 && false_code.size > 1
3777                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
3778 0299 1c96          btfss   _trmt___byte, _trmt___bit
3779 029a 2a9d          goto    delay__30
3780                    ; line_number = 496
3781                    ; _txreg := 0
3782 029b 3000          movlw   0
3783 029c 0095          movwf   _txreg
3784            
3785            
3786                    ; Recombine size1 = 0 || size2 = 0
3787   029d :   delay__30:
3788                    ; code.delay=4294967295 back_code.delay=4294967295
3789                    ; <=bit_code_emit@symbol; sym=_trmt (data:00=>00 code:XX=>XX)
3790                    ; line_number = 495
3791                    ;  if _trmt done
3792                    ; Recombine size1 = 0 || size2 = 0
3793   029d :   delay__31:
3794                    ; code.delay=4294967295 back_code.delay=4294967295
3795                    ; <=bit_code_emit@symbol; sym=interrupt_enable (data:00=>00 code:XX=>XX)
3796                    ; line_number = 493
3797                    ; if interrupt_enable done
3798                    ; Recombine size1 = 0 || size2 = 0
3799   029d :   delay__32:
3800                    ; code.delay=4294967295 back_code.delay=4294967295
3801                    ; <=bit_code_emit@symbol; sym=interrupt_pending (data:00=>00 code:XX=>XX)
3802                    ; line_number = 492
3803                    ;  if interrupt_pending done
3804                    ; delay after procedure statements=non-uniform
3805                    ; Implied return
3806 029d 3400          retlw   0
3807            
3808            
3809            
3810            
3811                    ; line_number = 499
3812                    ; constant zeros8 = "\0,0,0,0,0,0,0,0\"
3813                    ; zeros8 = '\0,0,0,0,0,0,0,0\'
3814                    ; line_number = 500
3815                    ; constant module_name = "\4\IO8A"
3816                    ; module_name = '\4\IO8A'
3817                    ; line_number = 501
3818                    ; constant vendor_name = "\7\Gramson"
3819                    ; vendor_name = '\7\Gramson'
3820                    ; line_number = 502
3821                    ; string id = "\1,1,32,2,9,0,0,0\" ~ zeros8 ~ zeros8 ~ module_name ~ vendor_name start
3822                    ; id = '\1,1\ \2,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4\IO8A\7\Gramson'
3823   029e :   id:
3824                    ; Temporarily save index into FSR
3825 029e 0084          movwf   __fsr
3826                    ; Initialize PCLATH to point to this code page
3827 029f 3002          movlw   id___base>>8
3828 02a0 008a          movwf   __pclath
3829                    ; Restore index from FSR
3830 02a1 0804          movf    __fsr,w
3831 02a2 3ea4          addlw   id___base
3832                    ; Index to the correct return value
3833 02a3 0082          movwf   __pcl
3834                    ; page_group 37
3835   02a4 :   id___base:
3836 02a4 3401          retlw   1
3837 02a5 3401          retlw   1
3838 02a6 3420          retlw   32
3839 02a7 3402          retlw   2
3840 02a8 3409          retlw   9
3841 02a9 3400          retlw   0
3842 02aa 3400          retlw   0
3843 02ab 3400          retlw   0
3844 02ac 3400          retlw   0
3845 02ad 3400          retlw   0
3846 02ae 3400          retlw   0
3847 02af 3400          retlw   0
3848 02b0 3400          retlw   0
3849 02b1 3400          retlw   0
3850 02b2 3400          retlw   0
3851 02b3 3400          retlw   0
3852 02b4 3400          retlw   0
3853 02b5 3400          retlw   0
3854 02b6 3400          retlw   0
3855 02b7 3400          retlw   0
3856 02b8 3400          retlw   0
3857 02b9 3400          retlw   0
3858 02ba 3400          retlw   0
3859 02bb 3400          retlw   0
3860 02bc 3404          retlw   4
3861 02bd 3449          retlw   73
3862 02be 344f          retlw   79
3863 02bf 3438          retlw   56
3864 02c0 3441          retlw   65
3865 02c1 3407          retlw   7
3866 02c2 3447          retlw   71
3867 02c3 3472          retlw   114
3868 02c4 3461          retlw   97
3869 02c5 346d          retlw   109
3870 02c6 3473          retlw   115
3871 02c7 346f          retlw   111
3872 02c8 346e          retlw   110
3873                    ; line_number = 502
3874                    ; string id = "\1,1,32,2,9,0,0,0\" ~ zeros8 ~ zeros8 ~ module_name ~ vendor_name start
3875            
3876                    ; #string chans = "\0,1,3,2,4,5,6,7\"
3877                    ; line_number = 505
3878                    ; string chans = "\3,6,5,1,0,4,2,7\" start
3879                    ; chans = '\3,6,5,1,0,4,2,7\'
3880   02c9 :   chans:
3881                    ; Temporarily save index into FSR
3882 02c9 0084          movwf   __fsr
3883                    ; Initialize PCLATH to point to this code page
3884 02ca 3002          movlw   chans___base>>8
3885 02cb 008a          movwf   __pclath
3886                    ; Restore index from FSR
3887 02cc 0804          movf    __fsr,w
3888 02cd 3ecf          addlw   chans___base
3889                    ; Index to the correct return value
3890 02ce 0082          movwf   __pcl
3891                    ; page_group 8
3892   02cf :   chans___base:
3893 02cf 3403          retlw   3
3894 02d0 3406          retlw   6
3895 02d1 3405          retlw   5
3896 02d2 3401          retlw   1
3897 02d3 3400          retlw   0
3898 02d4 3404          retlw   4
3899 02d5 3402          retlw   2
3900 02d6 3407          retlw   7
3901                    ; line_number = 505
3902                    ; string chans = "\3,6,5,1,0,4,2,7\" start
3903            
3904                    ; line_number = 507
3905                    ; string mask = "\1,2,4,8,16,32,64,128\" start
3906                    ; mask = '\1,2,4,8,16\ @\128\'
3907   02d7 :   mask:
3908                    ; Temporarily save index into FSR
3909 02d7 0084          movwf   __fsr
3910                    ; Initialize PCLATH to point to this code page
3911 02d8 3002          movlw   mask___base>>8
3912 02d9 008a          movwf   __pclath
3913                    ; Restore index from FSR
3914 02da 0804          movf    __fsr,w
3915 02db 3edd          addlw   mask___base
3916                    ; Index to the correct return value
3917 02dc 0082          movwf   __pcl
3918                    ; page_group 8
3919   02dd :   mask___base:
3920 02dd 3401          retlw   1
3921 02de 3402          retlw   2
3922 02df 3404          retlw   4
3923 02e0 3408          retlw   8
3924 02e1 3410          retlw   16
3925 02e2 3420          retlw   32
3926 02e3 3440          retlw   64
3927 02e4 3480          retlw   128
3928                    ; line_number = 507
3929                    ; string mask = "\1,2,4,8,16,32,64,128\" start
3930            
3931            
3932            
3933                    ; Appending 4 delayed procedures to code bank 0
3934                    ; buffer = '_robobricks_pic16f688'
3935                    ; line_number = 17
3936                    ; procedure byte_get
3937   02e5 :   byte_get:
3938                    ; arguments_none
3939                    ; line_number = 19
3940                    ;  returns byte
3941            
3942                    ; # This procedure will return the next byte from the UART.
3943                    ; # It continuously calls delay() while it is waiting.
3944            
3945                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3946                    ; line_number = 24
3947                    ;  while !_rcif start
3948   02e5 :   byte_get__1:
3949                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3950                    ; CASE: true.size=0 && false.size>1
3951                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
3952 02e5 1a8c          btfsc   _rcif___byte, _rcif___bit
3953 02e6 2aeb          goto    byte_get__2
3954                    ; line_number = 25
3955                    ; in_byte_get := 1
3956 02e7 14ef          bsf     in_byte_get___byte, in_byte_get___bit
3957                    ; line_number = 26
3958                    ;  call delay()
3959 02e8 222c          call    delay
3960                    ; line_number = 27
3961                    ;  in_byte_get := 0
3962 02e9 10ef          bcf     in_byte_get___byte, in_byte_get___bit
3963 02ea 2ae5          goto    byte_get__1
3964   02eb :   byte_get__2:
3965                    ; Recombine size1 = 0 || size2 = 0
3966                    ; code.delay=4294967295 back_code.delay=4294967295
3967                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
3968                    ; line_number = 24
3969                    ;  while !_rcif done
3970                    ; line_number = 28
3971                    ; interrupt_pending := 0
3972 02eb 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
3973                    ; line_number = 29
3974                    ;  command_previous := command_last
3975 02ec 0824          movf    command_last,w
3976 02ed 00a3          movwf   command_previous
3977                    ; line_number = 30
3978                    ;  _rcif := 0
3979 02ee 128c          bcf     _rcif___byte, _rcif___bit
3980                    ; line_number = 31
3981                    ;  return _rcreg start
3982                    ; line_number = 31
3983 02ef 0814          movf    _rcreg,w
3984 02f0 0008          return  
3985                    ; line_number = 31
3986                    ;  return _rcreg done
3987            
3988            
3989                    ; delay after procedure statements=non-uniform
3990            
3991            
3992            
3993            
3994                    ; line_number = 34
3995                    ; procedure byte_put
3996   02f1 :   byte_put:
3997                    ; Last argument is sitting in W; save into argument variable
3998 02f1 00a0          movwf   byte_put__value
3999                    ; delay=4294967295
4000                    ; line_number = 35
4001                    ; argument value byte
4002 00000020 = byte_put__value equ globals___0
4003                    ; line_number = 36
4004                    ;  returns_nothing
4005            
4006                    ; # This procedure will output {value} to the UART.  If the UART is
4007                    ; # already busy transmitting a character, the {delay} procedure is
4008                    ; # repeatably called until {value} can be sent.
4009            
4010                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4011                    ; line_number = 42
4012                    ;  while !_trmt start
4013   02f2 :   byte_put__1:
4014                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4015                    ; CASE: true.size=0 && false.size>1
4016                    ; bit_code_emit_helper1: body_code.size=2 true_test=false body_code.delay=0 (non-uniform delay)
4017 02f2 1896          btfsc   _trmt___byte, _trmt___bit
4018 02f3 2af6          goto    byte_put__2
4019                    ; line_number = 43
4020                    ; call delay()
4021 02f4 222c          call    delay
4022 02f5 2af2          goto    byte_put__1
4023   02f6 :   byte_put__2:
4024                    ; Recombine size1 = 0 || size2 = 0
4025                    ; code.delay=4294967295 back_code.delay=4294967295
4026                    ; <=bit_code_emit@symbol; sym=_trmt (data:00=>00 code:XX=>XX)
4027                    ; line_number = 42
4028                    ;  while !_trmt done
4029                    ; line_number = 44
4030                    ; debug := 0
4031 02f6 1285          bcf     debug___byte, debug___bit
4032                    ; line_number = 45
4033                    ;  sent_previous := sent_last
4034 02f7 0825          movf    sent_last,w
4035 02f8 00a6          movwf   sent_previous
4036                    ; line_number = 46
4037                    ;  sent_last := value
4038 02f9 0820          movf    byte_put__value,w
4039 02fa 00a5          movwf   sent_last
4040                    ; line_number = 47
4041                    ;  _txreg := value
4042 02fb 0820          movf    byte_put__value,w
4043 02fc 0095          movwf   _txreg
4044            
4045            
4046                    ; delay after procedure statements=non-uniform
4047                    ; Implied return
4048 02fd 3400          retlw   0
4049            
4050            
4051            
4052            
4053                    ; line_number = 50
4054                    ; procedure baud_rate_low
4055   02fe :   baud_rate_low:
4056                    ; Last argument is sitting in W; save into argument variable
4057 02fe 00a1          movwf   baud_rate_low__baud_rate_index
4058                    ; delay=4294967295
4059                    ; line_number = 51
4060                    ; argument baud_rate_index byte
4061 00000021 = baud_rate_low__baud_rate_index equ globals___0+1
4062                    ; line_number = 52
4063                    ;  returns byte
4064            
4065                    ; #: This procedure will return the baud rate low byte for {baud_rate_index}.
4066            
4067                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4068                    ; line_number = 56
4069                    ;  switch baud_rate_index start
4070 02ff 3003          movlw   baud_rate_low__9>>8
4071 0300 008a          movwf   __pclath
4072 0301 0821          movf    baud_rate_low__baud_rate_index,w
4073 0302 3e04          addlw   baud_rate_low__9
4074 0303 0082          movwf   __pcl
4075                    ; page_group 8
4076   0304 :   baud_rate_low__9:
4077                    ; line_number = 58
4078                    ; return _eusart_2400_low start
4079                    ; line_number = 58
4080 0304 3440          retlw   64
4081                    ; line_number = 58
4082                    ; return _eusart_2400_low done
4083                    ; line_number = 60
4084                    ; return _eusart_4800_low start
4085                    ; line_number = 60
4086 0305 349f          retlw   159
4087                    ; line_number = 60
4088                    ; return _eusart_4800_low done
4089                    ; line_number = 62
4090                    ; return _eusart_9600_low start
4091                    ; line_number = 62
4092 0306 34cf          retlw   207
4093                    ; line_number = 62
4094                    ; return _eusart_9600_low done
4095                    ; line_number = 64
4096                    ; return _eusart_19200_low start
4097                    ; line_number = 64
4098 0307 3467          retlw   103
4099                    ; line_number = 64
4100                    ; return _eusart_19200_low done
4101                    ; line_number = 66
4102                    ; return _eusart_38400_low start
4103                    ; line_number = 66
4104 0308 3433          retlw   51
4105                    ; line_number = 66
4106                    ; return _eusart_38400_low done
4107                    ; line_number = 68
4108                    ; return _eusart_57600_low start
4109                    ; line_number = 68
4110 0309 3421          retlw   33
4111                    ; line_number = 68
4112                    ; return _eusart_57600_low done
4113                    ; line_number = 70
4114                    ; return _eusart_115200_low start
4115                    ; line_number = 70
4116 030a 3410          retlw   16
4117                    ; line_number = 70
4118                    ; return _eusart_115200_low done
4119                    ; line_number = 72
4120                    ; return _eusart_203400_low start
4121                    ; line_number = 72
4122 030b 3408          retlw   8
4123                    ; line_number = 72
4124                    ; return _eusart_203400_low done
4125            
4126            
4127   030c :   baud_rate_low__10:
4128                    ; switch end:(data:00=>00 code:XX=>XX)
4129                    ; line_number = 56
4130                    ;  switch baud_rate_index done
4131                    ; delay after procedure statements=non-uniform
4132                    ; Exiting procedure with no return(s); fail with infinite loop
4133   030c :   baud_rate_low__11:
4134 030c 2b0c          goto    baud_rate_low__11
4135            
4136            
4137            
4138            
4139                    ; line_number = 75
4140                    ; procedure baud_rate_high
4141   030d :   baud_rate_high:
4142                    ; Last argument is sitting in W; save into argument variable
4143 030d 00a2          movwf   baud_rate_high__baud_rate_index
4144                    ; delay=4294967295
4145                    ; line_number = 76
4146                    ; argument baud_rate_index byte
4147 00000022 = baud_rate_high__baud_rate_index equ globals___0+2
4148                    ; line_number = 77
4149                    ;  returns byte
4150            
4151                    ; # This procedure will return the baud rate high byte for
4152                    ; # {baud_rate_index}.
4153            
4154                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4155                    ; line_number = 82
4156                    ;  switch baud_rate_index start
4157 030e 3003          movlw   baud_rate_high__9>>8
4158 030f 008a          movwf   __pclath
4159 0310 0822          movf    baud_rate_high__baud_rate_index,w
4160 0311 3e13          addlw   baud_rate_high__9
4161 0312 0082          movwf   __pcl
4162                    ; page_group 8
4163   0313 :   baud_rate_high__9:
4164                    ; line_number = 84
4165                    ; return _eusart_2400_high start
4166                    ; line_number = 84
4167 0313 3403          retlw   3
4168                    ; line_number = 84
4169                    ; return _eusart_2400_high done
4170                    ; line_number = 86
4171                    ; return _eusart_4800_high start
4172                    ; line_number = 86
4173 0314 3401          retlw   1
4174                    ; line_number = 86
4175                    ; return _eusart_4800_high done
4176                    ; line_number = 88
4177                    ; return _eusart_9600_high start
4178                    ; line_number = 88
4179 0315 3400          retlw   0
4180                    ; line_number = 88
4181                    ; return _eusart_9600_high done
4182                    ; line_number = 90
4183                    ; return _eusart_19200_high start
4184                    ; line_number = 90
4185 0316 3400          retlw   0
4186                    ; line_number = 90
4187                    ; return _eusart_19200_high done
4188                    ; line_number = 92
4189                    ; return _eusart_38400_high start
4190                    ; line_number = 92
4191 0317 3400          retlw   0
4192                    ; line_number = 92
4193                    ; return _eusart_38400_high done
4194                    ; line_number = 94
4195                    ; return _eusart_57600_high start
4196                    ; line_number = 94
4197 0318 3400          retlw   0
4198                    ; line_number = 94
4199                    ; return _eusart_57600_high done
4200                    ; line_number = 96
4201                    ; return _eusart_115200_high start
4202                    ; line_number = 96
4203 0319 3400          retlw   0
4204                    ; line_number = 96
4205                    ; return _eusart_115200_high done
4206                    ; line_number = 98
4207                    ; return _eusart_203400_high start
4208                    ; line_number = 98
4209 031a 3400          retlw   0
4210                    ; line_number = 98
4211                    ; return _eusart_203400_high done
4212            
4213   031b :   baud_rate_high__10:
4214                    ; switch end:(data:00=>00 code:XX=>XX)
4215                    ; line_number = 82
4216                    ;  switch baud_rate_index done
4217                    ; delay after procedure statements=non-uniform
4218                    ; Exiting procedure with no return(s); fail with infinite loop
4219   031b :   baud_rate_high__11:
4220 031b 2b1b          goto    baud_rate_high__11
4221            
4222            
4223            
4224            
4225                    ; Configuration bits
4226                    ; fill = 0x3000
4227                    ; fcmen = off (0x0)
4228                    ; ieso = off (0x0)
4229                    ; boden = off (0x0)
4230                    ; cpd = off (0x80)
4231                    ; cp = off (0x40)
4232                    ; mclre = off (0x20)
4233                    ; pwrte = off (0x10)
4234                    ; wdte = off (0x0)
4235                    ; fosc = int_no_clk (0x4)
4236                    ; 12532 = 0x30f4
4237   30f4 =           __config 12532
4238                    ; Define start addresses for data regions
4239                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
4240                    ; Region="globals___0" Address=32" Size=80 Bytes=65 Bits=3 Available=14
4241                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
4242                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
4243                    ; Region="globals___3" Address=416" Size=80 Bytes=0 Bits=0 Available=80
4244                    end
