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 = 'digital8'
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 = 'digital8'
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=io1, mask=io1_mask, bit=io1_bit
1532 00000005 = io1___byte equ _porta
1533 00000004 = io1___bit equ 4
1534 00000010 = io1_mask equ 16
1535 00000004 = io1_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=io2, mask=io2_mask, bit=io2_bit
1580 00000005 = io2___byte equ _porta
1581 00000001 = io2___bit equ 1
1582 00000002 = io2_mask equ 2
1583 00000001 = io2_bit equ 1
1584                    ; line_number = 21
1585                    ;  pin 13 = ra0_in, 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 303f          movlw   63
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 22f7          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__106>>8
1765 001c 008a          movwf   __pclath
1766 0000005d = main__107 equ globals___0+61
1767 001d 0e55          swapf   main__command,w
1768 001e 00dd          movwf   main__107
1769 001f 0cdd          rrf     main__107,f
1770 0020 0c5d          rrf     main__107,w
1771 0021 3903          andlw   3
1772 0022 3e24          addlw   main__106
1773 0023 0082          movwf   __pcl
1774                    ; page_group 4
1775   0024 :   main__106:
1776 0024 2828          goto    main__102
1777 0025 28c1          goto    main__103
1778 0026 28f4          goto    main__104
1779 0027 2939          goto    main__105
1780                    ; line_number = 88
1781                    ; case 0
1782   0028 :   main__102:
1783                    ; # 0000 xxxx:
1784                    ; line_number = 90
1785                    ;  switch command >> 4 start
1786 0028 3000          movlw   main__41>>8
1787 0029 008a          movwf   __pclath
1788 0000005d = main__42 equ globals___0+61
1789 002a 0e55          swapf   main__command,w
1790 002b 390f          andlw   15
1791 002c 3e2e          addlw   main__41
1792 002d 0082          movwf   __pcl
1793                    ; page_group 4
1794   002e :   main__41:
1795 002e 2832          goto    main__37
1796 002f 2876          goto    main__38
1797 0030 28b3          goto    main__39
1798 0031 28c0          goto    main__40
1799                    ; line_number = 91
1800                    ; case 0
1801   0032 :   main__37:
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__16>>8
1810 0034 008a          movwf   __pclath
1811 0035 0855          movf    main__command,w
1812 0036 3e38          addlw   main__16
1813 0037 0082          movwf   __pcl
1814                    ; page_group 16
1815   0038 :   main__16:
1816 0038 2848          goto    main__3
1817 0039 284c          goto    main__4
1818 003a 2850          goto    main__5
1819 003b 2853          goto    main__6
1820 003c 2856          goto    main__7
1821 003d 2859          goto    main__8
1822 003e 285c          goto    main__9
1823 003f 285f          goto    main__10
1824 0040 2862          goto    main__11
1825 0041 2865          goto    main__12
1826 0042 2868          goto    main__13
1827 0043 286b          goto    main__14
1828 0044 2870          goto    main__15
1829 0045 2870          goto    main__15
1830 0046 2870          goto    main__15
1831 0047 2870          goto    main__15
1832                    ; line_number = 95
1833                    ; case 0
1834   0048 :   main__3:
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__17
1842                    ; line_number = 98
1843                    ; case 1
1844   004c :   main__4:
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__17
1852                    ; line_number = 101
1853                    ; case 2
1854   0050 :   main__5:
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__17
1861                    ; line_number = 104
1862                    ; case 3
1863   0053 :   main__6:
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__17
1870                    ; line_number = 107
1871                    ; case 4
1872   0056 :   main__7:
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__17
1879                    ; line_number = 110
1880                    ; case 5
1881   0059 :   main__8:
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__17
1888                    ; line_number = 113
1889                    ; case 6
1890   005c :   main__9:
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__17
1897                    ; line_number = 116
1898                    ; case 7
1899   005f :   main__10:
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__17
1906                    ; line_number = 119
1907                    ; case 8
1908   0062 :   main__11:
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__17
1915                    ; line_number = 122
1916                    ; case 9
1917   0065 :   main__12:
1918                    ; # 0000 1001 (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__17
1924                    ; line_number = 125
1925                    ; case 10
1926   0068 :   main__13:
1927                    ; # 0000 1010 (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__17
1933                    ; line_number = 128
1934                    ; case 11
1935   006b :   main__14:
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@0 := 1
1948 00000056 = main__select__2___byte equ main__temp
1949 00000000 = main__select__2___bit equ 0
1950 006e 1456          bsf     main__select__2___byte, main__select__2___bit
1951                    ; Recombine size1 = 0 || size2 = 0
1952                    ; code.delay=4294967295 back_code.delay=4294967295
1953                    ; <=bit_code_emit@symbol; sym=_vcfg (data:00=>00 code:XX=>XX)
1954                    ; line_number = 131
1955                    ;  if _vcfg done
1956 006f 2871          goto    main__17
1957                    ; line_number = 133
1958                    ; default
1959   0070 :   main__15:
1960                    ; # 0000 101x or 0000 11xx (Do nothing):
1961                    ; line_number = 135
1962                    ;  do_send := 0
1963 0070 116f          bcf     main__do_send___byte, main__do_send___bit
1964   0071 :   main__17:
1965                    ; switch end:(data:XX=>00 code:XX=>XX)
1966                    ; line_number = 93
1967                    ;  switch command done
1968                    ; line_number = 136
1969                    ; if do_send start
1970                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1971                    ; CASE: true_code.size = 0 && false_code.size > 1
1972                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
1973 0071 1d6f          btfss   main__do_send___byte, main__do_send___bit
1974 0072 2875          goto    main__18
1975                    ; line_number = 137
1976                    ; call byte_put(temp)
1977 0073 0856          movf    main__temp,w
1978 0074 2303          call    byte_put
1979                    ; Recombine size1 = 0 || size2 = 0
1980   0075 :   main__18:
1981                    ; code.delay=4294967295 back_code.delay=4294967295
1982                    ; <=bit_code_emit@symbol; sym=main__do_send (data:XX=>00 code:XX=>XX)
1983                    ; line_number = 136
1984                    ; if do_send done
1985 0075 28c0          goto    main__43
1986                    ; line_number = 138
1987                    ; case 1
1988   0076 :   main__38:
1989                    ; # 0001 xxxx:
1990                    ; line_number = 140
1991                    ;  switch command & 15 start
1992                    ; line_number = 141
1993                    ; case_maximum 15
1994 0076 3000          movlw   main__32>>8
1995 0077 008a          movwf   __pclath
1996 0078 300f          movlw   15
1997 0079 0555          andwf   main__command,w
1998 007a 3e7c          addlw   main__32
1999 007b 0082          movwf   __pcl
2000                    ; page_group 16
2001   007c :   main__32:
2002 007c 288c          goto    main__19
2003 007d 288f          goto    main__20
2004 007e 2893          goto    main__21
2005 007f 2896          goto    main__22
2006 0080 289a          goto    main__23
2007 0081 289d          goto    main__24
2008 0082 28a0          goto    main__25
2009 0083 28a3          goto    main__26
2010 0084 28a6          goto    main__27
2011 0085 28a9          goto    main__28
2012 0086 28ad          goto    main__29
2013 0087 28af          goto    main__30
2014 0088 28b2          goto    main__33
2015 0089 28b2          goto    main__33
2016 008a 28b2          goto    main__33
2017 008b 28b1          goto    main__31
2018                    ; line_number = 142
2019                    ; case 0
2020   008c :   main__19:
2021                    ; # 0001 0000 (Reset Outputs):
2022                    ; line_number = 144
2023                    ;  outputs := complement_mask
2024 008c 082a          movf    complement_mask,w
2025 008d 00a9          movwf   outputs
2026 008e 28b2          goto    main__33
2027                    ; line_number = 145
2028                    ; case 1
2029   008f :   main__20:
2030                    ; # 0001 0001 (Set Outputs):
2031                    ; line_number = 147
2032                    ;  outputs := byte_get() ^ complement_mask
2033 008f 22f7          call    byte_get
2034 0090 062a          xorwf   complement_mask,w
2035 0091 00a9          movwf   outputs
2036 0092 28b2          goto    main__33
2037                    ; line_number = 148
2038                    ; case 2
2039   0093 :   main__21:
2040                    ; # 0001 0010 (Set Complement Mask):
2041                    ; line_number = 150
2042                    ;  complement_mask := byte_get()
2043 0093 22f7          call    byte_get
2044 0094 00aa          movwf   complement_mask
2045 0095 28b2          goto    main__33
2046                    ; line_number = 151
2047                    ; case 3
2048   0096 :   main__22:
2049                    ; # 0001 0011 (Set Direction Mask):
2050                    ; line_number = 153
2051                    ;  direction := byte_get()
2052 0096 22f7          call    byte_get
2053 0097 00a8          movwf   direction
2054                    ; line_number = 154
2055                    ;  call direction_set()
2056 0098 21b8          call    direction_set
2057 0099 28b2          goto    main__33
2058                    ; line_number = 155
2059                    ; case 4
2060   009a :   main__23:
2061                    ; # 0001 0100 (Set Low Mask):
2062                    ; line_number = 157
2063                    ;  low_mask := byte_get()
2064 009a 22f7          call    byte_get
2065 009b 00ac          movwf   low_mask
2066 009c 28b2          goto    main__33
2067                    ; line_number = 158
2068                    ; case 5
2069   009d :   main__24:
2070                    ; # 0001 0101 (Set High Mask):
2071                    ; line_number = 160
2072                    ;  high_mask := byte_get()
2073 009d 22f7          call    byte_get
2074 009e 00ad          movwf   high_mask
2075 009f 28b2          goto    main__33
2076                    ; line_number = 161
2077                    ; case 6
2078   00a0 :   main__25:
2079                    ; # 0001 0110 (Set Rising Mask):
2080                    ; line_number = 163
2081                    ;  rising_mask := byte_get()
2082 00a0 22f7          call    byte_get
2083 00a1 00ae          movwf   rising_mask
2084 00a2 28b2          goto    main__33
2085                    ; line_number = 164
2086                    ; case 7
2087   00a3 :   main__26:
2088                    ; # 0001 0111 (Set Falling Mask):
2089                    ; line_number = 166
2090                    ;  falling_mask := byte_get()
2091 00a3 22f7          call    byte_get
2092 00a4 00af          movwf   falling_mask
2093 00a5 28b2          goto    main__33
2094                    ; line_number = 167
2095                    ; case 8
2096   00a6 :   main__27:
2097                    ; # 0001 1000 (Set Outputs Raw):
2098                    ; line_number = 169
2099                    ;  outputs := byte_get()
2100 00a6 22f7          call    byte_get
2101 00a7 00a9          movwf   outputs
2102 00a8 28b2          goto    main__33
2103                    ; line_number = 170
2104                    ; case 9
2105   00a9 :   main__28:
2106                    ; # 0001 1001 (Set Analog Mask):
2107                    ; line_number = 172
2108                    ;  analog_mask := byte_get()
2109 00a9 22f7          call    byte_get
2110 00aa 00b0          movwf   analog_mask
2111                    ; line_number = 173
2112                    ;  call direction_set()
2113 00ab 21b8          call    direction_set
2114 00ac 28b2          goto    main__33
2115                    ; line_number = 174
2116                    ; case 10
2117   00ad :   main__29:
2118                    ; # 0001 1010 (Clear Analog Vref):
2119                    ; line_number = 176
2120                    ;  _vcfg := 0
2121 00ad 131f          bcf     _vcfg___byte, _vcfg___bit
2122 00ae 28b2          goto    main__33
2123                    ; line_number = 177
2124                    ; case 11
2125   00af :   main__30:
2126                    ; # 0001 1011 (Set Analog Vref):
2127                    ; line_number = 179
2128                    ;  _vcfg := 1
2129 00af 171f          bsf     _vcfg___byte, _vcfg___bit
2130 00b0 28b2          goto    main__33
2131                    ; line_number = 180
2132                    ; case 15
2133   00b1 :   main__31:
2134                    ; # 0001 1001 (Reset Everything):
2135                    ; line_number = 182
2136                    ;  call reset()
2137 00b1 21eb          call    reset
2138   00b2 :   main__33:
2139                    ; switch end:(data:00=>00 code:XX=>XX)
2140                    ; line_number = 140
2141                    ;  switch command & 15 done
2142 00b2 28c0          goto    main__43
2143                    ; line_number = 183
2144                    ; case 2
2145   00b3 :   main__39:
2146                    ; # 0110 vbbb (Set Output Bit):
2147                    ; line_number = 185
2148                    ;  temp := mask[command & 7]
2149 00b3 3007          movlw   7
2150 00b4 0555          andwf   main__command,w
2151 00b5 22e9          call    mask
2152 00b6 00d6          movwf   main__temp
2153                    ; line_number = 186
2154                    ;  if command@3 start
2155 00000055 = main__select__34___byte equ main__command
2156 00000003 = main__select__34___bit equ 3
2157                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2158                    ; CASE: true_code_size > 1 && false_code_size > 1
2159                    ; true_code_size=2 false_code_size=3
2160 00b7 1dd5          btfss   main__select__34___byte, main__select__34___bit
2161 00b8 28bc          goto    main__35
2162                    ; line_number = 187
2163                    ; outputs := outputs | temp
2164 00b9 0856          movf    main__temp,w
2165 00ba 04a9          iorwf   outputs,f
2166 00bb 28bf          goto    main__36
2167   00bc :   main__35:
2168                    ; line_number = 189
2169                    ; outputs := outputs & (temp ^ 0xff)
2170 00bc 30ff          movlw   255
2171 00bd 0656          xorwf   main__temp,w
2172 00be 05a9          andwf   outputs,f
2173   00bf :   main__36:
2174                    ; code.delay=4294967295 back_code.delay=4294967295
2175                    ; <=bit_code_emit@symbol; sym=main__select__34 (data:00=>00 code:XX=>XX)
2176                    ; line_number = 186
2177                    ;  if command@3 done
2178 00bf 28c0          goto    main__43
2179                    ; line_number = 190
2180                    ; case 3
2181   00c0 :   main__40:
2182                    ; # 0011 xxxx (Do Nothing):
2183                    ; line_number = 192
2184                    ;  do_nothing
2185   00c0 :   main__43:
2186                    ; switch end:(data:00=>?? code:XX=>XX)
2187                    ; line_number = 90
2188                    ;  switch command >> 4 done
2189 00c0 29b5          goto    main__108
2190                    ; line_number = 193
2191                    ; case 1
2192   00c1 :   main__103:
2193                    ; # 01xx xxxx:
2194                    ; line_number = 195
2195                    ;  switch (command >> 4) & 3 start
2196 00c1 3000          movlw   main__53>>8
2197 00c2 008a          movwf   __pclath
2198 0000005d = main__54 equ globals___0+61
2199 00c3 0e55          swapf   main__command,w
2200 00c4 3903          andlw   3
2201 00c5 3ec7          addlw   main__53
2202 00c6 0082          movwf   __pcl
2203                    ; page_group 4
2204   00c7 :   main__53:
2205 00c7 28cb          goto    main__49
2206 00c8 28d4          goto    main__50
2207 00c9 28e1          goto    main__51
2208 00ca 28ea          goto    main__52
2209                    ; line_number = 196
2210                    ; case 0
2211   00cb :   main__49:
2212                    ; # 0100 llll (Set Outputs Low):
2213                    ; line_number = 198
2214                    ;  outputs := outputs & 0xf0 | (command ^ complement_mask) & 0xf
2215 0000005d = main__44 equ globals___0+61
2216 00cb 30f0          movlw   240
2217 00cc 0529          andwf   outputs,w
2218 00cd 00dd          movwf   main__44
2219 00ce 0855          movf    main__command,w
2220 00cf 062a          xorwf   complement_mask,w
2221 00d0 390f          andlw   15
2222 00d1 045d          iorwf   main__44,w
2223 00d2 00a9          movwf   outputs
2224 00d3 28f3          goto    main__55
2225                    ; line_number = 199
2226                    ; case 1
2227   00d4 :   main__50:
2228                    ; # 0101 hhhh (Set Outputs High):
2229                    ; line_number = 201
2230                    ;  outputs := ((command << 4) ^ (complement_mask & 0xf0)) | outputs & 0xf
2231 0000005d = main__45 equ globals___0+61
2232 0000005e = main__46 equ globals___0+62
2233 00d4 0e55          swapf   main__command,w
2234 00d5 00de          movwf   main__46
2235 00d6 30f0          movlw   240
2236 00d7 05de          andwf   main__46,f
2237 00d8 30f0          movlw   240
2238 00d9 052a          andwf   complement_mask,w
2239 00da 065e          xorwf   main__46,w
2240 00db 00dd          movwf   main__45
2241 00dc 300f          movlw   15
2242 00dd 0529          andwf   outputs,w
2243 00de 045d          iorwf   main__45,w
2244 00df 00a9          movwf   outputs
2245            
2246 00e0 28f3          goto    main__55
2247                    ; line_number = 203
2248                    ; case 2
2249   00e1 :   main__51:
2250                    ; # 0110 llll (Set Direction Low):
2251                    ; line_number = 205
2252                    ;  direction := direction & 0xf0 | command & 0xf
2253 0000005d = main__47 equ globals___0+61
2254 00e1 30f0          movlw   240
2255 00e2 0528          andwf   direction,w
2256 00e3 00dd          movwf   main__47
2257 00e4 300f          movlw   15
2258 00e5 0555          andwf   main__command,w
2259 00e6 045d          iorwf   main__47,w
2260 00e7 00a8          movwf   direction
2261                    ; line_number = 206
2262                    ;  call direction_set()
2263 00e8 21b8          call    direction_set
2264 00e9 28f3          goto    main__55
2265                    ; line_number = 207
2266                    ; case 3
2267   00ea :   main__52:
2268                    ; # 0111 hhhh (Set Direction High):
2269                    ; line_number = 209
2270                    ;  direction := (command << 4) | direction & 0xf
2271 0000005d = main__48 equ globals___0+61
2272 00ea 0e55          swapf   main__command,w
2273 00eb 00dd          movwf   main__48
2274 00ec 30f0          movlw   240
2275 00ed 05dd          andwf   main__48,f
2276 00ee 300f          movlw   15
2277 00ef 0528          andwf   direction,w
2278 00f0 045d          iorwf   main__48,w
2279 00f1 00a8          movwf   direction
2280                    ; line_number = 210
2281                    ;  call direction_set()
2282 00f2 21b8          call    direction_set
2283   00f3 :   main__55:
2284                    ; switch end:(data:00=>00 code:XX=>XX)
2285                    ; line_number = 195
2286                    ;  switch (command >> 4) & 3 done
2287 00f3 29b5          goto    main__108
2288                    ; line_number = 211
2289                    ; case 2
2290   00f4 :   main__104:
2291                    ; # 10xx xxxx:
2292                    ; line_number = 213
2293                    ;  temp := command & 7
2294 00f4 3007          movlw   7
2295 00f5 0555          andwf   main__command,w
2296 00f6 00d6          movwf   main__temp
2297                    ; line_number = 214
2298                    ;  switch (command >> 3) & 7 start
2299                    ; line_number = 215
2300                    ; case_maximum 7
2301 00f7 3001          movlw   main__66>>8
2302 00f8 008a          movwf   __pclath
2303 0000005d = main__67 equ globals___0+61
2304 00f9 0c55          rrf     main__command,w
2305 00fa 00dd          movwf   main__67
2306 00fb 0cdd          rrf     main__67,f
2307 00fc 0c5d          rrf     main__67,w
2308 00fd 3907          andlw   7
2309 00fe 3e00          addlw   main__66
2310 00ff 0082          movwf   __pcl
2311                    ; page_group 8
2312   0100 :   main__66:
2313 0100 2908          goto    main__60
2314 0101 290e          goto    main__61
2315 0102 2919          goto    main__62
2316 0103 291f          goto    main__63
2317 0104 2938          goto    main__68
2318 0105 2938          goto    main__68
2319 0106 2925          goto    main__64
2320 0107 292f          goto    main__65
2321                    ; line_number = 216
2322                    ; case 0
2323   0108 :   main__60:
2324                    ; # 1000 0bbb (Read Analog 8-bits):
2325                    ; line_number = 218
2326                    ;  call byte_put(analogs_high[temp])
2327 0108 0856          movf    main__temp,w
2328 0109 3e31          addlw   analogs_high
2329 010a 0084          movwf   __fsr
2330 010b 0800          movf    __indf,w
2331 010c 2303          call    byte_put
2332 010d 2938          goto    main__68
2333                    ; line_number = 219
2334                    ; case 1
2335   010e :   main__61:
2336                    ; # 1000 1bbb (Read Analog 10-bits):
2337                    ; line_number = 221
2338                    ;  call byte_put(analogs_high[temp])
2339 010e 0856          movf    main__temp,w
2340 010f 3e31          addlw   analogs_high
2341 0110 0084          movwf   __fsr
2342 0111 0800          movf    __indf,w
2343 0112 2303          call    byte_put
2344                    ; line_number = 222
2345                    ;  call byte_put(analogs_low[temp])
2346 0113 0856          movf    main__temp,w
2347 0114 3e39          addlw   analogs_low
2348 0115 0084          movwf   __fsr
2349 0116 0800          movf    __indf,w
2350 0117 2303          call    byte_put
2351 0118 2938          goto    main__68
2352                    ; line_number = 223
2353                    ; case 2
2354   0119 :   main__62:
2355                    ; # 1001 0bbb (Read Low Threshold):
2356                    ; line_number = 225
2357                    ;  call byte_put(thresholds_low[temp])
2358 0119 0856          movf    main__temp,w
2359 011a 3e49          addlw   thresholds_low
2360 011b 0084          movwf   __fsr
2361 011c 0800          movf    __indf,w
2362 011d 2303          call    byte_put
2363 011e 2938          goto    main__68
2364                    ; line_number = 226
2365                    ; case 3
2366   011f :   main__63:
2367                    ; # 1001 1bbb (Read High Threshold):
2368                    ; line_number = 228
2369                    ;  call byte_put(thresholds_high[temp])
2370 011f 0856          movf    main__temp,w
2371 0120 3e41          addlw   thresholds_high
2372 0121 0084          movwf   __fsr
2373 0122 0800          movf    __indf,w
2374 0123 2303          call    byte_put
2375 0124 2938          goto    main__68
2376                    ; line_number = 229
2377                    ; case 6
2378   0125 :   main__64:
2379                    ; # 1011 0bbb (Set Low Threshold):
2380                    ; line_number = 231
2381                    ;  thresholds_low[temp] := byte_get()
2382                    ; index_temporary_first
2383 0000005d = main__56 equ globals___0+61
2384 0000005e = main__57 equ globals___0+62
2385 0125 0856          movf    main__temp,w
2386 0126 00dd          movwf   main__56
2387 0127 22f7          call    byte_get
2388 0128 00de          movwf   main__57
2389 0129 085d          movf    main__56,w
2390 012a 3e49          addlw   thresholds_low
2391 012b 0084          movwf   __fsr
2392 012c 085e          movf    main__57,w
2393 012d 0080          movwf   __indf
2394 012e 2938          goto    main__68
2395                    ; line_number = 232
2396                    ; case 7
2397   012f :   main__65:
2398                    ; # 1011 1bbb (Set High Threshold):
2399                    ; line_number = 234
2400                    ;  thresholds_high[temp] := byte_get()
2401                    ; index_temporary_first
2402 0000005d = main__58 equ globals___0+61
2403 0000005e = main__59 equ globals___0+62
2404 012f 0856          movf    main__temp,w
2405 0130 00dd          movwf   main__58
2406 0131 22f7          call    byte_get
2407 0132 00de          movwf   main__59
2408 0133 085d          movf    main__58,w
2409 0134 3e41          addlw   thresholds_high
2410 0135 0084          movwf   __fsr
2411 0136 085e          movf    main__59,w
2412 0137 0080          movwf   __indf
2413   0138 :   main__68:
2414                    ; switch end:(data:00=>00 code:XX=>XX)
2415                    ; line_number = 214
2416                    ;  switch (command >> 3) & 7 done
2417 0138 29b5          goto    main__108
2418                    ; line_number = 235
2419                    ; case 3
2420   0139 :   main__105:
2421                    ; # 11xx xxxx:
2422                    ; line_number = 237
2423                    ;  switch (command >> 3) & 7 start
2424 0139 3001          movlw   main__99>>8
2425 013a 008a          movwf   __pclath
2426 0000005d = main__100 equ globals___0+61
2427 013b 0c55          rrf     main__command,w
2428 013c 00dd          movwf   main__100
2429 013d 0cdd          rrf     main__100,f
2430 013e 0c5d          rrf     main__100,w
2431 013f 3907          andlw   7
2432 0140 3e42          addlw   main__99
2433 0141 0082          movwf   __pcl
2434                    ; page_group 8
2435   0142 :   main__99:
2436 0142 294a          goto    main__95
2437 0143 294a          goto    main__95
2438 0144 294a          goto    main__95
2439 0145 294a          goto    main__95
2440 0146 294a          goto    main__95
2441 0147 294b          goto    main__96
2442 0148 2964          goto    main__97
2443 0149 2981          goto    main__98
2444                    ; line_number = 238
2445                    ; default
2446   014a :   main__95:
2447                    ; # 110x xxxx or 1110 0xxx:
2448                    ; line_number = 240
2449                    ;  do_nothing
2450 014a 29b5          goto    main__101
2451                    ; line_number = 241
2452                    ; case 5
2453   014b :   main__96:
2454                    ; # 1110 1xxx:
2455                    ; line_number = 243
2456                    ;  switch command & 7 start
2457 014b 3001          movlw   main__73>>8
2458 014c 008a          movwf   __pclath
2459 014d 3007          movlw   7
2460 014e 0555          andwf   main__command,w
2461 014f 3e51          addlw   main__73
2462 0150 0082          movwf   __pcl
2463                    ; page_group 8
2464   0151 :   main__73:
2465 0151 2963          goto    main__74
2466 0152 2963          goto    main__74
2467 0153 2963          goto    main__74
2468 0154 2963          goto    main__74
2469 0155 2963          goto    main__74
2470 0156 2963          goto    main__74
2471 0157 2959          goto    main__71
2472 0158 295b          goto    main__72
2473                    ; line_number = 244
2474                    ; case 6
2475   0159 :   main__71:
2476                    ; # 1110 1110 (Reset)
2477                    ; line_number = 246
2478                    ;  call reset()
2479 0159 21eb          call    reset
2480 015a 2963          goto    main__74
2481                    ; line_number = 247
2482                    ; case 7
2483   015b :   main__72:
2484                    ; # 1110 1111 (Read Interrupt Bits):
2485                    ; line_number = 249
2486                    ;  temp := 0
2487 015b 3000          movlw   0
2488 015c 00d6          movwf   main__temp
2489                    ; line_number = 250
2490                    ;  if interrupt_pending start
2491                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2492                    ; CASE: True.size=1 False.size=0
2493 015d 18ab          btfsc   interrupt_pending___byte, interrupt_pending___bit
2494                    ; line_number = 251
2495                    ; temp@0 := 1
2496 00000056 = main__select__69___byte equ main__temp
2497 00000000 = main__select__69___bit equ 0
2498 015e 1456          bsf     main__select__69___byte, main__select__69___bit
2499                    ; Recombine size1 = 0 || size2 = 0
2500                    ; code.delay=4294967295 back_code.delay=4294967295
2501                    ; <=bit_code_emit@symbol; sym=interrupt_pending (data:00=>00 code:XX=>XX)
2502                    ; line_number = 250
2503                    ;  if interrupt_pending done
2504                    ; line_number = 252
2505                    ; if interrupt_enable start
2506                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2507                    ; CASE: True.size=1 False.size=0
2508 015f 182b          btfsc   interrupt_enable___byte, interrupt_enable___bit
2509                    ; line_number = 253
2510                    ; temp@1 := 1
2511 00000056 = main__select__70___byte equ main__temp
2512 00000001 = main__select__70___bit equ 1
2513 0160 14d6          bsf     main__select__70___byte, main__select__70___bit
2514                    ; Recombine size1 = 0 || size2 = 0
2515                    ; code.delay=4294967295 back_code.delay=4294967295
2516                    ; <=bit_code_emit@symbol; sym=interrupt_enable (data:00=>00 code:XX=>XX)
2517                    ; line_number = 252
2518                    ; if interrupt_enable done
2519                    ; line_number = 254
2520                    ; call byte_put(temp)
2521 0161 0856          movf    main__temp,w
2522 0162 2303          call    byte_put
2523   0163 :   main__74:
2524                    ; switch end:(data:00=>00 code:XX=>XX)
2525                    ; line_number = 243
2526                    ;  switch command & 7 done
2527 0163 29b5          goto    main__101
2528                    ; line_number = 255
2529                    ; case 6
2530   0164 :   main__97:
2531                    ; # 1111 0xxx:
2532                    ; line_number = 257
2533                    ;  switch command & 7 start
2534 0164 3001          movlw   main__82>>8
2535 0165 008a          movwf   __pclath
2536 0166 3007          movlw   7
2537 0167 0555          andwf   main__command,w
2538 0168 3e6a          addlw   main__82
2539 0169 0082          movwf   __pcl
2540                    ; page_group 8
2541   016a :   main__82:
2542 016a 2972          goto    main__79
2543 016b 2972          goto    main__79
2544 016c 2972          goto    main__79
2545 016d 2972          goto    main__79
2546 016e 2979          goto    main__80
2547 016f 2979          goto    main__80
2548 0170 297d          goto    main__81
2549 0171 297d          goto    main__81
2550                    ; line_number = 258
2551                    ; case 0, 1, 2, 3
2552   0172 :   main__79:
2553                    ; # 1111 00ep (Set Interrupt Bits):
2554                    ; line_number = 260
2555                    ;  interrupt_enable := command@1
2556 0172 102b          bcf     interrupt_enable___byte, interrupt_enable___bit
2557 00000055 = main__select__75___byte equ main__command
2558 00000001 = main__select__75___bit equ 1
2559                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2560                    ; CASE: True.size=1 False.size=0
2561 0173 18d5          btfsc   main__select__75___byte, main__select__75___bit
2562 0174 142b          bsf     interrupt_enable___byte, interrupt_enable___bit
2563                    ; Recombine size1 = 0 || size2 = 0
2564                    ; code.delay=4294967295 back_code.delay=4294967295
2565                    ; <=bit_code_emit@symbol; sym=main__select__75 (data:00=>00 code:XX=>XX)
2566                    ; line_number = 261
2567                    ;  interrupt_pending := command@0
2568 0175 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
2569 00000055 = main__select__76___byte equ main__command
2570 00000000 = main__select__76___bit equ 0
2571                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2572                    ; CASE: True.size=1 False.size=0
2573 0176 1855          btfsc   main__select__76___byte, main__select__76___bit
2574 0177 14ab          bsf     interrupt_pending___byte, interrupt_pending___bit
2575                    ; Recombine size1 = 0 || size2 = 0
2576                    ; code.delay=4294967295 back_code.delay=4294967295
2577                    ; <=bit_code_emit@symbol; sym=main__select__76 (data:00=>00 code:XX=>XX)
2578 0178 2980          goto    main__83
2579                    ; line_number = 262
2580                    ; case 4, 5
2581   0179 :   main__80:
2582                    ; # 1111 010p (Set Interrupt Pending):
2583                    ; line_number = 264
2584                    ;  interrupt_pending := command@0
2585 0179 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
2586 00000055 = main__select__77___byte equ main__command
2587 00000000 = main__select__77___bit equ 0
2588                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2589                    ; CASE: True.size=1 False.size=0
2590 017a 1855          btfsc   main__select__77___byte, main__select__77___bit
2591 017b 14ab          bsf     interrupt_pending___byte, interrupt_pending___bit
2592                    ; Recombine size1 = 0 || size2 = 0
2593                    ; code.delay=4294967295 back_code.delay=4294967295
2594                    ; <=bit_code_emit@symbol; sym=main__select__77 (data:00=>00 code:XX=>XX)
2595 017c 2980          goto    main__83
2596                    ; line_number = 265
2597                    ; case 6, 7
2598   017d :   main__81:
2599                    ; # 1111 011e (Set Interrupt Enable):
2600                    ; line_number = 267
2601                    ;  interrupt_enable := command@0
2602 017d 102b          bcf     interrupt_enable___byte, interrupt_enable___bit
2603 00000055 = main__select__78___byte equ main__command
2604 00000000 = main__select__78___bit equ 0
2605                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2606                    ; CASE: True.size=1 False.size=0
2607 017e 1855          btfsc   main__select__78___byte, main__select__78___bit
2608 017f 142b          bsf     interrupt_enable___byte, interrupt_enable___bit
2609                    ; Recombine size1 = 0 || size2 = 0
2610                    ; code.delay=4294967295 back_code.delay=4294967295
2611                    ; <=bit_code_emit@symbol; sym=main__select__78 (data:00=>00 code:XX=>XX)
2612   0180 :   main__83:
2613                    ; switch end:(data:00=>00 code:XX=>XX)
2614                    ; line_number = 257
2615                    ;  switch command & 7 done
2616 0180 29b5          goto    main__101
2617                    ; line_number = 268
2618                    ; case 7
2619   0181 :   main__98:
2620                    ; line_number = 269
2621                    ; switch command & 7 start
2622 0181 3001          movlw   main__93>>8
2623 0182 008a          movwf   __pclath
2624 0183 3007          movlw   7
2625 0184 0555          andwf   main__command,w
2626 0185 3e87          addlw   main__93
2627 0186 0082          movwf   __pcl
2628                    ; page_group 8
2629   0187 :   main__93:
2630 0187 298f          goto    main__85
2631 0188 2992          goto    main__86
2632 0189 2995          goto    main__87
2633 018a 299a          goto    main__88
2634 018b 299d          goto    main__89
2635 018c 29aa          goto    main__90
2636 018d 29ad          goto    main__91
2637 018e 29b2          goto    main__92
2638                    ; line_number = 270
2639                    ; case 0
2640   018f :   main__85:
2641                    ; This case body wants this bit set
2642 018f 1683          bsf     __rp0___byte, __rp0___bit
2643                    ; # 1111 1000 (Clock Decrement):
2644                    ; line_number = 272
2645                    ;  _osctune := _osctune - _osccal_lsb
2646 0190 0390          decf    _osctune,f
2647 0191 29b5          goto    main__94
2648                    ; line_number = 273
2649                    ; case 1
2650   0192 :   main__86:
2651                    ; This case body wants this bit set
2652 0192 1683          bsf     __rp0___byte, __rp0___bit
2653                    ; # 1111 1001 (Clock Increment):
2654                    ; line_number = 275
2655                    ;  _osctune := _osctune + _osccal_lsb
2656 0193 0a90          incf    _osctune,f
2657 0194 29b5          goto    main__94
2658                    ; line_number = 276
2659                    ; case 2
2660   0195 :   main__87:
2661                    ; This case body wants this bit set
2662 0195 1683          bsf     __rp0___byte, __rp0___bit
2663                    ; # 1111 1010 (Clock Read):
2664                    ; line_number = 278
2665                    ;  call byte_put(_osctune)
2666 0196 0810          movf    _osctune,w
2667 0197 1283          bcf     __rp0___byte, __rp0___bit
2668 0198 2303          call    byte_put
2669 0199 29b5          goto    main__94
2670                    ; line_number = 279
2671                    ; case 3
2672   019a :   main__88:
2673                    ; # 1111 1011 (Clock Pulse):
2674                    ; line_number = 281
2675                    ;  call byte_put(0)
2676 019a 3000          movlw   0
2677 019b 2303          call    byte_put
2678 019c 29b5          goto    main__94
2679                    ; line_number = 282
2680                    ; case 4
2681   019d :   main__89:
2682                    ; # 1111 1100 (ID Next):
2683                    ; line_number = 284
2684                    ;  temp := 0
2685 019d 3000          movlw   0
2686 019e 00d6          movwf   main__temp
2687                    ; line_number = 285
2688                    ;  if index < id.size start
2689 019f 3032          movlw   50
2690 01a0 0252          subwf   index,w
2691                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2692                    ; CASE: true.size=0 && false.size>1
2693                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
2694 01a1 1803          btfsc   __c___byte, __c___bit
2695 01a2 29a7          goto    main__84
2696                    ; line_number = 286
2697                    ; temp := id[index]
2698 01a3 0852          movf    index,w
2699 01a4 22a3          call    id
2700 01a5 00d6          movwf   main__temp
2701                    ; line_number = 287
2702                    ;  index := index + 1
2703 01a6 0ad2          incf    index,f
2704   01a7 :   main__84:
2705                    ; Recombine size1 = 0 || size2 = 0
2706                    ; code.delay=4294967295 back_code.delay=4294967295
2707                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2708                    ; line_number = 285
2709                    ;  if index < id.size done
2710                    ; line_number = 288
2711                    ; call byte_put(temp)
2712 01a7 0856          movf    main__temp,w
2713 01a8 2303          call    byte_put
2714 01a9 29b5          goto    main__94
2715                    ; line_number = 289
2716                    ; case 5
2717   01aa :   main__90:
2718                    ; # 1111 1101 (ID Reset):
2719                    ; line_number = 291
2720                    ;  index := 0
2721 01aa 3000          movlw   0
2722 01ab 00d2          movwf   index
2723 01ac 29b5          goto    main__94
2724                    ; line_number = 292
2725                    ; case 6
2726   01ad :   main__91:
2727                    ; # 1111 1110 (Glitch Read):
2728                    ; line_number = 294
2729                    ;  call byte_put(glitch)
2730 01ad 0851          movf    glitch,w
2731 01ae 2303          call    byte_put
2732                    ; line_number = 295
2733                    ;  glitch := 0
2734 01af 3000          movlw   0
2735 01b0 00d1          movwf   glitch
2736 01b1 29b5          goto    main__94
2737                    ; line_number = 296
2738                    ; case 7
2739   01b2 :   main__92:
2740                    ; # 1111 1111 (Glitch):
2741                    ; line_number = 298
2742                    ;  if glitch != 0xff start
2743                    ; Left minus Right
2744 01b2 0a51          incf    glitch,w
2745                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2746                    ; CASE: true_code.size=0 && false_code.size=1
2747 01b3 1d03          btfss   __z___byte, __z___bit
2748                    ; line_number = 299
2749                    ; glitch := glitch + 1
2750 01b4 0ad1          incf    glitch,f
2751            
2752            
2753                    ; Recombine size1 = 0 || size2 = 0
2754                    ; code.delay=4294967295 back_code.delay=4294967295
2755                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2756                    ; line_number = 298
2757                    ;  if glitch != 0xff done
2758   01b5 :   main__94:
2759                    ; switch end:(data:00=>0? code:XX=>XX)
2760                    ; line_number = 269
2761                    ; switch command & 7 done
2762   01b5 :   main__101:
2763                    ; switch end:(data:00=>?? code:XX=>XX)
2764                    ; line_number = 237
2765                    ;  switch (command >> 3) & 7 done
2766   01b5 :   main__108:
2767                    ; switch end:(data:00=>?? code:XX=>XX)
2768                    ; line_number = 86
2769                    ;  switch command >> 6 done
2770                    ; line_number = 81
2771                    ;  loop_forever wrap-up
2772                    ; Need to adjust code banks to match front of loop
2773 01b5 1283          bcf     __rp0___byte, __rp0___bit
2774 01b6 1303          bcf     __rp1___byte, __rp1___bit
2775 01b7 2819          goto    main__1
2776                    ; line_number = 81
2777                    ;  loop_forever done
2778                    ; delay after procedure statements=non-uniform
2779            
2780            
2781            
2782            
2783                    ; line_number = 302
2784                    ; procedure direction_set
2785   01b8 :   direction_set:
2786                    ; arguments_none
2787                    ; line_number = 304
2788                    ;  returns_nothing
2789            
2790                    ; # This procedure will set the direction appropriately.
2791            
2792                    ; line_number = 308
2793                    ;  local temp byte
2794 00000057 = direction_set__temp equ globals___0+55
2795            
2796                    ; # Deal with port C:
2797                    ; # RX and TX should both be inputs:
2798                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2799                    ; line_number = 312
2800                    ;  temp := 0x30
2801 01b8 3030          movlw   48
2802 01b9 00d7          movwf   direction_set__temp
2803                    ; line_number = 313
2804                    ;  if direction@4 start
2805 00000028 = direction_set__select__2___byte equ direction
2806 00000004 = direction_set__select__2___bit equ 4
2807                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2808                    ; CASE: True.size=1 False.size=0
2809 01ba 1a28          btfsc   direction_set__select__2___byte, direction_set__select__2___bit
2810                    ; line_number = 314
2811                    ; temp@io4_bit := 1
2812 00000057 = direction_set__select__1___byte equ direction_set__temp
2813 00000000 = direction_set__select__1___bit equ 0
2814 01bb 1457          bsf     direction_set__select__1___byte, direction_set__select__1___bit
2815                    ; Recombine size1 = 0 || size2 = 0
2816                    ; code.delay=4294967295 back_code.delay=4294967295
2817                    ; <=bit_code_emit@symbol; sym=direction_set__select__2 (data:00=>00 code:XX=>XX)
2818                    ; line_number = 313
2819                    ;  if direction@4 done
2820                    ; line_number = 315
2821                    ; if direction@5 start
2822 00000028 = direction_set__select__4___byte equ direction
2823 00000005 = direction_set__select__4___bit equ 5
2824                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2825                    ; CASE: True.size=1 False.size=0
2826 01bc 1aa8          btfsc   direction_set__select__4___byte, direction_set__select__4___bit
2827                    ; line_number = 316
2828                    ; temp@io5_bit := 1
2829 00000057 = direction_set__select__3___byte equ direction_set__temp
2830 00000001 = direction_set__select__3___bit equ 1
2831 01bd 14d7          bsf     direction_set__select__3___byte, direction_set__select__3___bit
2832                    ; Recombine size1 = 0 || size2 = 0
2833                    ; code.delay=4294967295 back_code.delay=4294967295
2834                    ; <=bit_code_emit@symbol; sym=direction_set__select__4 (data:00=>00 code:XX=>XX)
2835                    ; line_number = 315
2836                    ; if direction@5 done
2837                    ; line_number = 317
2838                    ; if direction@6 start
2839 00000028 = direction_set__select__6___byte equ direction
2840 00000006 = direction_set__select__6___bit equ 6
2841                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2842                    ; CASE: True.size=1 False.size=0
2843 01be 1b28          btfsc   direction_set__select__6___byte, direction_set__select__6___bit
2844                    ; line_number = 318
2845                    ; temp@io6_bit := 1
2846 00000057 = direction_set__select__5___byte equ direction_set__temp
2847 00000002 = direction_set__select__5___bit equ 2
2848 01bf 1557          bsf     direction_set__select__5___byte, direction_set__select__5___bit
2849                    ; Recombine size1 = 0 || size2 = 0
2850                    ; code.delay=4294967295 back_code.delay=4294967295
2851                    ; <=bit_code_emit@symbol; sym=direction_set__select__6 (data:00=>00 code:XX=>XX)
2852                    ; line_number = 317
2853                    ; if direction@6 done
2854                    ; line_number = 319
2855                    ; if direction@7 start
2856 00000028 = direction_set__select__8___byte equ direction
2857 00000007 = direction_set__select__8___bit equ 7
2858                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2859                    ; CASE: True.size=1 False.size=0
2860 01c0 1ba8          btfsc   direction_set__select__8___byte, direction_set__select__8___bit
2861                    ; line_number = 320
2862                    ; temp@io7_bit := 1
2863 00000057 = direction_set__select__7___byte equ direction_set__temp
2864 00000003 = direction_set__select__7___bit equ 3
2865 01c1 15d7          bsf     direction_set__select__7___byte, direction_set__select__7___bit
2866                    ; Recombine size1 = 0 || size2 = 0
2867                    ; code.delay=4294967295 back_code.delay=4294967295
2868                    ; <=bit_code_emit@symbol; sym=direction_set__select__8 (data:00=>00 code:XX=>XX)
2869                    ; line_number = 319
2870                    ; if direction@7 done
2871                    ; line_number = 321
2872                    ; _trisc := temp
2873 01c2 0857          movf    direction_set__temp,w
2874 01c3 1683          bsf     __rp0___byte, __rp0___bit
2875 01c4 0087          movwf   _trisc
2876            
2877                    ; # Deal with port A:
2878                    ; line_number = 324
2879                    ;  temp := 0
2880 01c5 3000          movlw   0
2881 01c6 1283          bcf     __rp0___byte, __rp0___bit
2882 01c7 00d7          movwf   direction_set__temp
2883                    ; line_number = 325
2884                    ;  if direction@0 start
2885 00000028 = direction_set__select__10___byte equ direction
2886 00000000 = direction_set__select__10___bit equ 0
2887                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2888                    ; CASE: True.size=1 False.size=0
2889 01c8 1828          btfsc   direction_set__select__10___byte, direction_set__select__10___bit
2890                    ; line_number = 326
2891                    ; temp@io0_bit := 1
2892 00000057 = direction_set__select__9___byte equ direction_set__temp
2893 00000000 = direction_set__select__9___bit equ 0
2894 01c9 1457          bsf     direction_set__select__9___byte, direction_set__select__9___bit
2895                    ; Recombine size1 = 0 || size2 = 0
2896                    ; code.delay=4294967295 back_code.delay=4294967295
2897                    ; <=bit_code_emit@symbol; sym=direction_set__select__10 (data:00=>00 code:XX=>XX)
2898                    ; line_number = 325
2899                    ;  if direction@0 done
2900                    ; line_number = 327
2901                    ; if direction@1 start
2902 00000028 = direction_set__select__12___byte equ direction
2903 00000001 = direction_set__select__12___bit equ 1
2904                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2905                    ; CASE: True.size=1 False.size=0
2906 01ca 18a8          btfsc   direction_set__select__12___byte, direction_set__select__12___bit
2907                    ; line_number = 328
2908                    ; temp@io1_bit := 1
2909 00000057 = direction_set__select__11___byte equ direction_set__temp
2910 00000004 = direction_set__select__11___bit equ 4
2911 01cb 1657          bsf     direction_set__select__11___byte, direction_set__select__11___bit
2912                    ; Recombine size1 = 0 || size2 = 0
2913                    ; code.delay=4294967295 back_code.delay=4294967295
2914                    ; <=bit_code_emit@symbol; sym=direction_set__select__12 (data:00=>00 code:XX=>XX)
2915                    ; line_number = 327
2916                    ; if direction@1 done
2917                    ; line_number = 329
2918                    ; if direction@2 start
2919 00000028 = direction_set__select__14___byte equ direction
2920 00000002 = direction_set__select__14___bit equ 2
2921                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2922                    ; CASE: True.size=1 False.size=0
2923 01cc 1928          btfsc   direction_set__select__14___byte, direction_set__select__14___bit
2924                    ; line_number = 330
2925                    ; temp@io2_bit:= 1
2926 00000057 = direction_set__select__13___byte equ direction_set__temp
2927 00000001 = direction_set__select__13___bit equ 1
2928 01cd 14d7          bsf     direction_set__select__13___byte, direction_set__select__13___bit
2929                    ; Recombine size1 = 0 || size2 = 0
2930                    ; code.delay=4294967295 back_code.delay=4294967295
2931                    ; <=bit_code_emit@symbol; sym=direction_set__select__14 (data:00=>00 code:XX=>XX)
2932                    ; line_number = 329
2933                    ; if direction@2 done
2934                    ; line_number = 331
2935                    ; if direction@3 start
2936 00000028 = direction_set__select__16___byte equ direction
2937 00000003 = direction_set__select__16___bit equ 3
2938                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2939                    ; CASE: True.size=1 False.size=0
2940 01ce 19a8          btfsc   direction_set__select__16___byte, direction_set__select__16___bit
2941                    ; line_number = 332
2942                    ; temp@io3_bit := 1
2943 00000057 = direction_set__select__15___byte equ direction_set__temp
2944 00000002 = direction_set__select__15___bit equ 2
2945 01cf 1557          bsf     direction_set__select__15___byte, direction_set__select__15___bit
2946                    ; Recombine size1 = 0 || size2 = 0
2947                    ; code.delay=4294967295 back_code.delay=4294967295
2948                    ; <=bit_code_emit@symbol; sym=direction_set__select__16 (data:00=>00 code:XX=>XX)
2949                    ; line_number = 331
2950                    ; if direction@3 done
2951                    ; line_number = 333
2952                    ; _trisa := temp
2953 01d0 0857          movf    direction_set__temp,w
2954 01d1 1683          bsf     __rp0___byte, __rp0___bit
2955 01d2 0085          movwf   _trisa
2956            
2957                    ; line_number = 335
2958                    ;  temp := 0
2959 01d3 3000          movlw   0
2960 01d4 1283          bcf     __rp0___byte, __rp0___bit
2961 01d5 00d7          movwf   direction_set__temp
2962                    ; line_number = 336
2963                    ;  if analog_mask@0 start
2964 00000030 = direction_set__select__18___byte equ analog_mask
2965 00000000 = direction_set__select__18___bit equ 0
2966                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2967                    ; CASE: True.size=1 False.size=0
2968 01d6 1830          btfsc   direction_set__select__18___byte, direction_set__select__18___bit
2969                    ; line_number = 337
2970                    ; temp@0 := 1
2971 00000057 = direction_set__select__17___byte equ direction_set__temp
2972 00000000 = direction_set__select__17___bit equ 0
2973 01d7 1457          bsf     direction_set__select__17___byte, direction_set__select__17___bit
2974                    ; Recombine size1 = 0 || size2 = 0
2975                    ; code.delay=4294967295 back_code.delay=4294967295
2976                    ; <=bit_code_emit@symbol; sym=direction_set__select__18 (data:00=>00 code:XX=>XX)
2977                    ; line_number = 336
2978                    ;  if analog_mask@0 done
2979                    ; line_number = 338
2980                    ; if analog_mask@1 start
2981 00000030 = direction_set__select__20___byte equ analog_mask
2982 00000001 = direction_set__select__20___bit equ 1
2983                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2984                    ; CASE: True.size=1 False.size=0
2985 01d8 18b0          btfsc   direction_set__select__20___byte, direction_set__select__20___bit
2986                    ; line_number = 339
2987                    ; temp@1 := 1
2988 00000057 = direction_set__select__19___byte equ direction_set__temp
2989 00000001 = direction_set__select__19___bit equ 1
2990 01d9 14d7          bsf     direction_set__select__19___byte, direction_set__select__19___bit
2991                    ; Recombine size1 = 0 || size2 = 0
2992                    ; code.delay=4294967295 back_code.delay=4294967295
2993                    ; <=bit_code_emit@symbol; sym=direction_set__select__20 (data:00=>00 code:XX=>XX)
2994                    ; line_number = 338
2995                    ; if analog_mask@1 done
2996                    ; line_number = 340
2997                    ; if analog_mask@2 start
2998 00000030 = direction_set__select__22___byte equ analog_mask
2999 00000002 = direction_set__select__22___bit equ 2
3000                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3001                    ; CASE: True.size=1 False.size=0
3002 01da 1930          btfsc   direction_set__select__22___byte, direction_set__select__22___bit
3003                    ; line_number = 341
3004                    ; temp@3 := 1
3005 00000057 = direction_set__select__21___byte equ direction_set__temp
3006 00000003 = direction_set__select__21___bit equ 3
3007 01db 15d7          bsf     direction_set__select__21___byte, direction_set__select__21___bit
3008                    ; Recombine size1 = 0 || size2 = 0
3009                    ; code.delay=4294967295 back_code.delay=4294967295
3010                    ; <=bit_code_emit@symbol; sym=direction_set__select__22 (data:00=>00 code:XX=>XX)
3011                    ; line_number = 340
3012                    ; if analog_mask@2 done
3013                    ; line_number = 342
3014                    ; if analog_mask@3 start
3015 00000030 = direction_set__select__24___byte equ analog_mask
3016 00000003 = direction_set__select__24___bit equ 3
3017                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3018                    ; CASE: True.size=1 False.size=0
3019 01dc 19b0          btfsc   direction_set__select__24___byte, direction_set__select__24___bit
3020                    ; line_number = 343
3021                    ; temp@2 := 1
3022 00000057 = direction_set__select__23___byte equ direction_set__temp
3023 00000002 = direction_set__select__23___bit equ 2
3024 01dd 1557          bsf     direction_set__select__23___byte, direction_set__select__23___bit
3025                    ; Recombine size1 = 0 || size2 = 0
3026                    ; code.delay=4294967295 back_code.delay=4294967295
3027                    ; <=bit_code_emit@symbol; sym=direction_set__select__24 (data:00=>00 code:XX=>XX)
3028                    ; line_number = 342
3029                    ; if analog_mask@3 done
3030                    ; line_number = 344
3031                    ; if analog_mask@4 start
3032 00000030 = direction_set__select__26___byte equ analog_mask
3033 00000004 = direction_set__select__26___bit equ 4
3034                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3035                    ; CASE: True.size=1 False.size=0
3036 01de 1a30          btfsc   direction_set__select__26___byte, direction_set__select__26___bit
3037                    ; line_number = 345
3038                    ; temp@4 := 1
3039 00000057 = direction_set__select__25___byte equ direction_set__temp
3040 00000004 = direction_set__select__25___bit equ 4
3041 01df 1657          bsf     direction_set__select__25___byte, direction_set__select__25___bit
3042                    ; Recombine size1 = 0 || size2 = 0
3043                    ; code.delay=4294967295 back_code.delay=4294967295
3044                    ; <=bit_code_emit@symbol; sym=direction_set__select__26 (data:00=>00 code:XX=>XX)
3045                    ; line_number = 344
3046                    ; if analog_mask@4 done
3047                    ; line_number = 346
3048                    ; if analog_mask@5 start
3049 00000030 = direction_set__select__28___byte equ analog_mask
3050 00000005 = direction_set__select__28___bit equ 5
3051                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3052                    ; CASE: True.size=1 False.size=0
3053 01e0 1ab0          btfsc   direction_set__select__28___byte, direction_set__select__28___bit
3054                    ; line_number = 347
3055                    ; temp@5 := 1
3056 00000057 = direction_set__select__27___byte equ direction_set__temp
3057 00000005 = direction_set__select__27___bit equ 5
3058 01e1 16d7          bsf     direction_set__select__27___byte, direction_set__select__27___bit
3059                    ; Recombine size1 = 0 || size2 = 0
3060                    ; code.delay=4294967295 back_code.delay=4294967295
3061                    ; <=bit_code_emit@symbol; sym=direction_set__select__28 (data:00=>00 code:XX=>XX)
3062                    ; line_number = 346
3063                    ; if analog_mask@5 done
3064                    ; line_number = 348
3065                    ; if analog_mask@6 start
3066 00000030 = direction_set__select__30___byte equ analog_mask
3067 00000006 = direction_set__select__30___bit equ 6
3068                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3069                    ; CASE: True.size=1 False.size=0
3070 01e2 1b30          btfsc   direction_set__select__30___byte, direction_set__select__30___bit
3071                    ; line_number = 349
3072                    ; temp@6 := 1
3073 00000057 = direction_set__select__29___byte equ direction_set__temp
3074 00000006 = direction_set__select__29___bit equ 6
3075 01e3 1757          bsf     direction_set__select__29___byte, direction_set__select__29___bit
3076                    ; Recombine size1 = 0 || size2 = 0
3077                    ; code.delay=4294967295 back_code.delay=4294967295
3078                    ; <=bit_code_emit@symbol; sym=direction_set__select__30 (data:00=>00 code:XX=>XX)
3079                    ; line_number = 348
3080                    ; if analog_mask@6 done
3081                    ; line_number = 350
3082                    ; if analog_mask@7 start
3083 00000030 = direction_set__select__32___byte equ analog_mask
3084 00000007 = direction_set__select__32___bit equ 7
3085                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3086                    ; CASE: True.size=1 False.size=0
3087 01e4 1bb0          btfsc   direction_set__select__32___byte, direction_set__select__32___bit
3088                    ; line_number = 351
3089                    ; temp@7 := 1
3090 00000057 = direction_set__select__31___byte equ direction_set__temp
3091 00000007 = direction_set__select__31___bit equ 7
3092 01e5 17d7          bsf     direction_set__select__31___byte, direction_set__select__31___bit
3093                    ; Recombine size1 = 0 || size2 = 0
3094                    ; code.delay=4294967295 back_code.delay=4294967295
3095                    ; <=bit_code_emit@symbol; sym=direction_set__select__32 (data:00=>00 code:XX=>XX)
3096                    ; line_number = 350
3097                    ; if analog_mask@7 done
3098                    ; line_number = 352
3099                    ; _ansel := temp
3100 01e6 0857          movf    direction_set__temp,w
3101 01e7 1683          bsf     __rp0___byte, __rp0___bit
3102 01e8 0091          movwf   _ansel
3103            
3104            
3105                    ; delay after procedure statements=non-uniform
3106 01e9 1283          bcf     __rp0___byte, __rp0___bit
3107                    ; Implied return
3108 01ea 3400          retlw   0
3109            
3110            
3111            
3112            
3113                    ; line_number = 355
3114                    ; procedure reset
3115   01eb :   reset:
3116                    ; arguments_none
3117                    ; line_number = 357
3118                    ;  returns_nothing
3119            
3120                    ; # This procedure will initialize all global registers:
3121            
3122                    ; # Initialize global registertes:
3123                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3124                    ; line_number = 362
3125                    ;  index := 0
3126 01eb 3000          movlw   0
3127 01ec 00d2          movwf   index
3128                    ; line_number = 363
3129                    ;  loop_exactly state_size start
3130 0000005f = reset__1 equ globals___0+63
3131 01ed 300e          movlw   14
3132 01ee 00df          movwf   reset__1
3133   01ef :   reset__2:
3134                    ; line_number = 364
3135                    ; state[index] := 0
3136                    ; index_fsr_first
3137 01ef 0852          movf    index,w
3138 01f0 3e23          addlw   state
3139 01f1 0084          movwf   __fsr
3140 01f2 3000          movlw   0
3141 01f3 0080          movwf   __indf
3142                    ; line_number = 365
3143                    ;  index := index + 1
3144 01f4 0ad2          incf    index,f
3145            
3146                    ; line_number = 363
3147                    ;  loop_exactly state_size wrap-up
3148 01f5 0bdf          decfsz  reset__1,f
3149 01f6 29ef          goto    reset__2
3150                    ; line_number = 363
3151                    ;  loop_exactly state_size done
3152                    ; line_number = 367
3153                    ; index := 0
3154 01f7 3000          movlw   0
3155 01f8 00d2          movwf   index
3156                    ; line_number = 368
3157                    ;  loop_exactly 8 start
3158 0000005f = reset__3 equ globals___0+63
3159 01f9 3008          movlw   8
3160 01fa 00df          movwf   reset__3
3161   01fb :   reset__4:
3162                    ; line_number = 369
3163                    ; analogs_high[index] := 0
3164                    ; index_fsr_first
3165 01fb 0852          movf    index,w
3166 01fc 3e31          addlw   analogs_high
3167 01fd 0084          movwf   __fsr
3168 01fe 3000          movlw   0
3169 01ff 0080          movwf   __indf
3170                    ; line_number = 370
3171                    ;  analogs_low[index] := 0
3172                    ; index_fsr_first
3173 0200 0852          movf    index,w
3174 0201 3e39          addlw   analogs_low
3175 0202 0084          movwf   __fsr
3176 0203 3000          movlw   0
3177 0204 0080          movwf   __indf
3178                    ; line_number = 371
3179                    ;  thresholds_high[index] := 0x80
3180                    ; index_fsr_first
3181 0205 0852          movf    index,w
3182 0206 3e41          addlw   thresholds_high
3183 0207 0084          movwf   __fsr
3184 0208 3080          movlw   128
3185 0209 0080          movwf   __indf
3186                    ; line_number = 372
3187                    ;  thresholds_low[index] := 0x80
3188                    ; index_fsr_first
3189 020a 0852          movf    index,w
3190 020b 3e49          addlw   thresholds_low
3191 020c 0084          movwf   __fsr
3192 020d 3080          movlw   128
3193 020e 0080          movwf   __indf
3194                    ; line_number = 373
3195                    ;  index := index + 1
3196 020f 0ad2          incf    index,f
3197            
3198                    ; line_number = 368
3199                    ;  loop_exactly 8 wrap-up
3200 0210 0bdf          decfsz  reset__3,f
3201 0211 29fb          goto    reset__4
3202                    ; line_number = 368
3203                    ;  loop_exactly 8 done
3204                    ; line_number = 375
3205                    ; interrupt_enable := 0
3206 0212 102b          bcf     interrupt_enable___byte, interrupt_enable___bit
3207                    ; line_number = 376
3208                    ;  interrupt_pending := 0
3209 0213 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
3210                    ; line_number = 377
3211                    ;  direction := 0xff
3212 0214 30ff          movlw   255
3213 0215 00a8          movwf   direction
3214                    ; line_number = 378
3215                    ;  analog_mask := 0
3216 0216 3000          movlw   0
3217 0217 00b0          movwf   analog_mask
3218            
3219                    ; # Initialize the A/D module:
3220                    ; # A/D Conversion clock is Fosc/8 (Tad=2uS) and AD is on:
3221                    ; line_number = 382
3222                    ;  _adcon0 := 1
3223 0218 3001          movlw   1
3224 0219 009f          movwf   _adcon0
3225                    ; line_number = 383
3226                    ;  _adcon1 := 0x20
3227 021a 3020          movlw   32
3228 021b 1683          bsf     __rp0___byte, __rp0___bit
3229 021c 009f          movwf   _adcon1
3230                    ; line_number = 384
3231                    ;  _adcs0 := 1
3232 021d 161f          bsf     _adcs0___byte, _adcs0___bit
3233                    ; line_number = 385
3234                    ;  _adif := 0
3235 021e 1283          bcf     __rp0___byte, __rp0___bit
3236 021f 130c          bcf     _adif___byte, _adif___bit
3237                    ; line_number = 386
3238                    ;  _adie := 0
3239 0220 1683          bsf     __rp0___byte, __rp0___bit
3240 0221 130c          bcf     _adie___byte, _adie___bit
3241                    ; line_number = 387
3242                    ;  _gie := 0
3243 0222 1283          bcf     __rp0___byte, __rp0___bit
3244 0223 138b          bcf     _gie___byte, _gie___bit
3245                    ; line_number = 388
3246                    ;  channel := 0
3247 0224 3000          movlw   0
3248 0225 00d4          movwf   channel
3249                    ; line_number = 389
3250                    ;  _vcfg := 0
3251 0226 131f          bcf     _vcfg___byte, _vcfg___bit
3252            
3253                    ; # This sets TRISA and TRISC:
3254                    ; line_number = 392
3255                    ;  call direction_set()
3256 0227 21b8          call    direction_set
3257            
3258                    ; # Initialize remaining registers:
3259                    ; line_number = 395
3260                    ;  glitch := 0
3261 0228 3000          movlw   0
3262 0229 00d1          movwf   glitch
3263                    ; line_number = 396
3264                    ;  index := 0
3265 022a 3000          movlw   0
3266 022b 00d2          movwf   index
3267            
3268            
3269                    ; delay after procedure statements=non-uniform
3270                    ; Implied return
3271 022c 3400          retlw   0
3272            
3273            
3274            
3275            
3276                    ; line_number = 399
3277                    ; procedure delay
3278   022d :   delay:
3279                    ; arguments_none
3280                    ; line_number = 401
3281                    ;  returns_nothing
3282            
3283                    ; # This procedure delays 1/3 of a bit.
3284            
3285                    ; line_number = 405
3286                    ;  local temp byte
3287 00000058 = delay__temp equ globals___0+56
3288                    ; line_number = 406
3289                    ;  local previous byte
3290 00000059 = delay__previous equ globals___0+57
3291                    ; line_number = 407
3292                    ;  local current byte
3293 0000005a = delay__current equ globals___0+58
3294                    ; line_number = 408
3295                    ;  local not_current byte
3296 0000005b = delay__not_current equ globals___0+59
3297                    ; line_number = 409
3298                    ;  local changed byte
3299 0000005c = delay__changed equ globals___0+60
3300            
3301            
3302                    ; # Perform A/D:
3303                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3304                    ; line_number = 413
3305                    ;  chan := chans[channel]
3306 022d 0854          movf    channel,w
3307 022e 22db          call    chans
3308 022f 00d3          movwf   chan
3309            
3310                    ; # At 8MHz, TAD = 1.6uS (ADCS<2:0>=010).  An A/D conversion takes
3311                    ; # 11*TAD = 11*1.6uS = 17.1uS 
3312            
3313                    ; # Acquiring the signal takes approximately 20uS.
3314                    ; # We'll pad that out a little to 25uS to be safe:
3315            
3316                    ; line_number = 421
3317                    ;  temp := (chan << 2) | 1
3318 00000060 = delay__1 equ globals___0+64
3319 0230 0d53          rlf     chan,w
3320 0231 00e0          movwf   delay__1
3321 0232 0d60          rlf     delay__1,w
3322 0233 39fc          andlw   252
3323 0234 3801          iorlw   1
3324 0235 00d8          movwf   delay__temp
3325                    ; line_number = 422
3326                    ;  if _vcfg start
3327                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3328                    ; CASE: True.size=1 False.size=0
3329 0236 1b1f          btfsc   _vcfg___byte, _vcfg___bit
3330                    ; # Keep _vcfg set:
3331                    ; line_number = 424
3332                    ;  temp@6 := 1
3333 00000058 = delay__select__2___byte equ delay__temp
3334 00000006 = delay__select__2___bit equ 6
3335 0237 1758          bsf     delay__select__2___byte, delay__select__2___bit
3336                    ; Recombine size1 = 0 || size2 = 0
3337                    ; code.delay=4294967295 back_code.delay=4294967295
3338                    ; <=bit_code_emit@symbol; sym=_vcfg (data:00=>00 code:XX=>XX)
3339                    ; line_number = 422
3340                    ;  if _vcfg done
3341                    ; line_number = 425
3342                    ; _adcon0 := temp
3343 0238 0858          movf    delay__temp,w
3344 0239 009f          movwf   _adcon0
3345                    ; line_number = 426
3346                    ;  delay 25 * microsecond start
3347                    ; Delay expression evaluates to 50
3348                    ; # Kick the dog:
3349                    ; line_number = 428
3350                    ;  watch_dog_reset done
3351                    ; Delay at watch_dog_reset is 0
3352 023a 0064          clrwdt  
3353            
3354                    ; # Read inputs:
3355                    ; line_number = 431
3356                    ;  raw := 0
3357                    ; Delay at assignment is 1
3358 023b 3000          movlw   0
3359 023c 00a7          movwf   raw
3360                    ; line_number = 432
3361                    ;  if io7 start
3362                    ; Delay at if is 3
3363                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3364                    ; CASE: True.size=1 False.size=0
3365 023d 1987          btfsc   io7___byte, io7___bit
3366                    ; line_number = 433
3367                    ; raw@7 := 1
3368                    ; Delay at assignment is 0
3369 00000027 = delay__select__3___byte equ raw
3370 00000007 = delay__select__3___bit equ 7
3371 023e 17a7          bsf     delay__select__3___byte, delay__select__3___bit
3372                    ; code.delay=5 back_code.delay=0
3373                    ; <=bit_code_emit@symbol; sym=io7 (data:00=>00 code:XX=>XX)
3374                    ; if final true delay=1 false delay=0 code delay=5
3375                    ; line_number = 432
3376                    ;  if io7 done
3377                    ; line_number = 434
3378                    ; if io6 start
3379                    ; Delay at if is 5
3380                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3381                    ; CASE: True.size=1 False.size=0
3382 023f 1907          btfsc   io6___byte, io6___bit
3383                    ; line_number = 435
3384                    ; raw@6 := 1
3385                    ; Delay at assignment is 0
3386 00000027 = delay__select__4___byte equ raw
3387 00000006 = delay__select__4___bit equ 6
3388 0240 1727          bsf     delay__select__4___byte, delay__select__4___bit
3389                    ; code.delay=7 back_code.delay=0
3390                    ; <=bit_code_emit@symbol; sym=io6 (data:00=>00 code:XX=>XX)
3391                    ; if final true delay=1 false delay=0 code delay=7
3392                    ; line_number = 434
3393                    ; if io6 done
3394                    ; line_number = 436
3395                    ; if io5 start
3396                    ; Delay at if is 7
3397                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3398                    ; CASE: True.size=1 False.size=0
3399 0241 1887          btfsc   io5___byte, io5___bit
3400                    ; line_number = 437
3401                    ; raw@5 := 1
3402                    ; Delay at assignment is 0
3403 00000027 = delay__select__5___byte equ raw
3404 00000005 = delay__select__5___bit equ 5
3405 0242 16a7          bsf     delay__select__5___byte, delay__select__5___bit
3406                    ; code.delay=9 back_code.delay=0
3407                    ; <=bit_code_emit@symbol; sym=io5 (data:00=>00 code:XX=>XX)
3408                    ; if final true delay=1 false delay=0 code delay=9
3409                    ; line_number = 436
3410                    ; if io5 done
3411                    ; line_number = 438
3412                    ; if io4 start
3413                    ; Delay at if is 9
3414                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3415                    ; CASE: True.size=1 False.size=0
3416 0243 1807          btfsc   io4___byte, io4___bit
3417                    ; line_number = 439
3418                    ; raw@4 := 1
3419                    ; Delay at assignment is 0
3420 00000027 = delay__select__6___byte equ raw
3421 00000004 = delay__select__6___bit equ 4
3422 0244 1627          bsf     delay__select__6___byte, delay__select__6___bit
3423                    ; code.delay=11 back_code.delay=0
3424                    ; <=bit_code_emit@symbol; sym=io4 (data:00=>00 code:XX=>XX)
3425                    ; if final true delay=1 false delay=0 code delay=11
3426                    ; line_number = 438
3427                    ; if io4 done
3428                    ; line_number = 440
3429                    ; if io3 start
3430                    ; Delay at if is 11
3431                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3432                    ; CASE: True.size=1 False.size=0
3433 0245 1905          btfsc   io3___byte, io3___bit
3434                    ; line_number = 441
3435                    ; raw@3 := 1
3436                    ; Delay at assignment is 0
3437 00000027 = delay__select__7___byte equ raw
3438 00000003 = delay__select__7___bit equ 3
3439 0246 15a7          bsf     delay__select__7___byte, delay__select__7___bit
3440                    ; code.delay=13 back_code.delay=0
3441                    ; <=bit_code_emit@symbol; sym=io3 (data:00=>00 code:XX=>XX)
3442                    ; if final true delay=1 false delay=0 code delay=13
3443                    ; line_number = 440
3444                    ; if io3 done
3445                    ; line_number = 442
3446                    ; if io2 start
3447                    ; Delay at if is 13
3448                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3449                    ; CASE: True.size=1 False.size=0
3450 0247 1885          btfsc   io2___byte, io2___bit
3451                    ; line_number = 443
3452                    ; raw@2 := 1
3453                    ; Delay at assignment is 0
3454 00000027 = delay__select__8___byte equ raw
3455 00000002 = delay__select__8___bit equ 2
3456 0248 1527          bsf     delay__select__8___byte, delay__select__8___bit
3457                    ; code.delay=15 back_code.delay=0
3458                    ; <=bit_code_emit@symbol; sym=io2 (data:00=>00 code:XX=>XX)
3459                    ; if final true delay=1 false delay=0 code delay=15
3460                    ; line_number = 442
3461                    ; if io2 done
3462                    ; line_number = 444
3463                    ; if io1 start
3464                    ; Delay at if is 15
3465                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3466                    ; CASE: True.size=1 False.size=0
3467 0249 1a05          btfsc   io1___byte, io1___bit
3468                    ; line_number = 445
3469                    ; raw@1 := 1
3470                    ; Delay at assignment is 0
3471 00000027 = delay__select__9___byte equ raw
3472 00000001 = delay__select__9___bit equ 1
3473 024a 14a7          bsf     delay__select__9___byte, delay__select__9___bit
3474                    ; code.delay=17 back_code.delay=0
3475                    ; <=bit_code_emit@symbol; sym=io1 (data:00=>00 code:XX=>XX)
3476                    ; if final true delay=1 false delay=0 code delay=17
3477                    ; line_number = 444
3478                    ; if io1 done
3479                    ; line_number = 446
3480                    ; if io0 start
3481                    ; Delay at if is 17
3482                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3483                    ; CASE: True.size=1 False.size=0
3484 024b 1805          btfsc   io0___byte, io0___bit
3485                    ; line_number = 447
3486                    ; raw@0 := 1
3487                    ; Delay at assignment is 0
3488 00000027 = delay__select__10___byte equ raw
3489 00000000 = delay__select__10___bit equ 0
3490 024c 1427          bsf     delay__select__10___byte, delay__select__10___bit
3491            
3492                    ; code.delay=19 back_code.delay=0
3493                    ; <=bit_code_emit@symbol; sym=io0 (data:00=>00 code:XX=>XX)
3494                    ; if final true delay=1 false delay=0 code delay=19
3495                    ; line_number = 446
3496                    ; if io0 done
3497                    ; Delay 31 cycles
3498                    ; Delay loop takes 7 * 4 = 28 cycles
3499 024d 3007          movlw   7
3500   024e :   delay__11:
3501 024e 3eff          addlw   255
3502 024f 1d03          btfss   __z___byte, __z___bit
3503 0250 2a4e          goto    delay__11
3504 0251 2a52          goto    delay__12
3505   0252 :   delay__12:
3506 0252 0000          nop     
3507                    ; line_number = 426
3508                    ;  delay 25 * microsecond done
3509                    ; # Getting the value takes 11 & Tad, where Tad = 2uS = 22uS.
3510                    ; # We'll add 5uS for a little pad:
3511                    ; line_number = 451
3512                    ;  _go := 1
3513 0253 149f          bsf     _go___byte, _go___bit
3514                    ; line_number = 452
3515                    ;  delay 28 * microsecond start
3516                    ; Delay expression evaluates to 56
3517                    ; # Write out port C:
3518                    ; line_number = 454
3519                    ;  temp := 0
3520                    ; Delay at assignment is 0
3521 0254 3000          movlw   0
3522 0255 00d8          movwf   delay__temp
3523                    ; line_number = 455
3524                    ;  if outputs@7 start
3525                    ; Delay at if is 2
3526 00000029 = delay__select__14___byte equ outputs
3527 00000007 = delay__select__14___bit equ 7
3528                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3529                    ; CASE: True.size=1 False.size=0
3530 0256 1ba9          btfsc   delay__select__14___byte, delay__select__14___bit
3531                    ; line_number = 456
3532                    ; temp@io7_bit := 1
3533                    ; Delay at assignment is 0
3534 00000058 = delay__select__13___byte equ delay__temp
3535 00000003 = delay__select__13___bit equ 3
3536 0257 15d8          bsf     delay__select__13___byte, delay__select__13___bit
3537                    ; code.delay=4 back_code.delay=0
3538                    ; <=bit_code_emit@symbol; sym=delay__select__14 (data:00=>00 code:XX=>XX)
3539                    ; if final true delay=1 false delay=0 code delay=4
3540                    ; line_number = 455
3541                    ;  if outputs@7 done
3542                    ; line_number = 457
3543                    ; if outputs@6 start
3544                    ; Delay at if is 4
3545 00000029 = delay__select__16___byte equ outputs
3546 00000006 = delay__select__16___bit equ 6
3547                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3548                    ; CASE: True.size=1 False.size=0
3549 0258 1b29          btfsc   delay__select__16___byte, delay__select__16___bit
3550                    ; line_number = 458
3551                    ; temp@io6_bit := 1
3552                    ; Delay at assignment is 0
3553 00000058 = delay__select__15___byte equ delay__temp
3554 00000002 = delay__select__15___bit equ 2
3555 0259 1558          bsf     delay__select__15___byte, delay__select__15___bit
3556                    ; code.delay=6 back_code.delay=0
3557                    ; <=bit_code_emit@symbol; sym=delay__select__16 (data:00=>00 code:XX=>XX)
3558                    ; if final true delay=1 false delay=0 code delay=6
3559                    ; line_number = 457
3560                    ; if outputs@6 done
3561                    ; line_number = 459
3562                    ; if outputs@5 start
3563                    ; Delay at if is 6
3564 00000029 = delay__select__18___byte equ outputs
3565 00000005 = delay__select__18___bit equ 5
3566                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3567                    ; CASE: True.size=1 False.size=0
3568 025a 1aa9          btfsc   delay__select__18___byte, delay__select__18___bit
3569                    ; line_number = 460
3570                    ; temp@io5_bit := 1
3571                    ; Delay at assignment is 0
3572 00000058 = delay__select__17___byte equ delay__temp
3573 00000001 = delay__select__17___bit equ 1
3574 025b 14d8          bsf     delay__select__17___byte, delay__select__17___bit
3575                    ; code.delay=8 back_code.delay=0
3576                    ; <=bit_code_emit@symbol; sym=delay__select__18 (data:00=>00 code:XX=>XX)
3577                    ; if final true delay=1 false delay=0 code delay=8
3578                    ; line_number = 459
3579                    ; if outputs@5 done
3580                    ; line_number = 461
3581                    ; if outputs@4 start
3582                    ; Delay at if is 8
3583 00000029 = delay__select__20___byte equ outputs
3584 00000004 = delay__select__20___bit equ 4
3585                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3586                    ; CASE: True.size=1 False.size=0
3587 025c 1a29          btfsc   delay__select__20___byte, delay__select__20___bit
3588                    ; line_number = 462
3589                    ; temp@io4_bit := 1
3590                    ; Delay at assignment is 0
3591 00000058 = delay__select__19___byte equ delay__temp
3592 00000000 = delay__select__19___bit equ 0
3593 025d 1458          bsf     delay__select__19___byte, delay__select__19___bit
3594                    ; code.delay=10 back_code.delay=0
3595                    ; <=bit_code_emit@symbol; sym=delay__select__20 (data:00=>00 code:XX=>XX)
3596                    ; if final true delay=1 false delay=0 code delay=10
3597                    ; line_number = 461
3598                    ; if outputs@4 done
3599                    ; line_number = 463
3600                    ; _portc := temp
3601                    ; Delay at assignment is 10
3602 025e 0858          movf    delay__temp,w
3603 025f 0087          movwf   _portc
3604            
3605                    ; # Write out port A:
3606                    ; line_number = 466
3607                    ;  temp := 0
3608                    ; Delay at assignment is 12
3609 0260 3000          movlw   0
3610 0261 00d8          movwf   delay__temp
3611                    ; line_number = 467
3612                    ;  if outputs@3 start
3613                    ; Delay at if is 14
3614 00000029 = delay__select__22___byte equ outputs
3615 00000003 = delay__select__22___bit equ 3
3616                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3617                    ; CASE: True.size=1 False.size=0
3618 0262 19a9          btfsc   delay__select__22___byte, delay__select__22___bit
3619                    ; line_number = 468
3620                    ; temp@io3_bit := 1
3621                    ; Delay at assignment is 0
3622 00000058 = delay__select__21___byte equ delay__temp
3623 00000002 = delay__select__21___bit equ 2
3624 0263 1558          bsf     delay__select__21___byte, delay__select__21___bit
3625                    ; code.delay=16 back_code.delay=0
3626                    ; <=bit_code_emit@symbol; sym=delay__select__22 (data:00=>00 code:XX=>XX)
3627                    ; if final true delay=1 false delay=0 code delay=16
3628                    ; line_number = 467
3629                    ;  if outputs@3 done
3630                    ; line_number = 469
3631                    ; if outputs@2 start
3632                    ; Delay at if is 16
3633 00000029 = delay__select__24___byte equ outputs
3634 00000002 = delay__select__24___bit equ 2
3635                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3636                    ; CASE: True.size=1 False.size=0
3637 0264 1929          btfsc   delay__select__24___byte, delay__select__24___bit
3638                    ; line_number = 470
3639                    ; temp@io2_bit := 1
3640                    ; Delay at assignment is 0
3641 00000058 = delay__select__23___byte equ delay__temp
3642 00000001 = delay__select__23___bit equ 1
3643 0265 14d8          bsf     delay__select__23___byte, delay__select__23___bit
3644                    ; code.delay=18 back_code.delay=0
3645                    ; <=bit_code_emit@symbol; sym=delay__select__24 (data:00=>00 code:XX=>XX)
3646                    ; if final true delay=1 false delay=0 code delay=18
3647                    ; line_number = 469
3648                    ; if outputs@2 done
3649                    ; line_number = 471
3650                    ; if outputs@1 start
3651                    ; Delay at if is 18
3652 00000029 = delay__select__26___byte equ outputs
3653 00000001 = delay__select__26___bit equ 1
3654                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3655                    ; CASE: True.size=1 False.size=0
3656 0266 18a9          btfsc   delay__select__26___byte, delay__select__26___bit
3657                    ; line_number = 472
3658                    ; temp@io1_bit := 1
3659                    ; Delay at assignment is 0
3660 00000058 = delay__select__25___byte equ delay__temp
3661 00000004 = delay__select__25___bit equ 4
3662 0267 1658          bsf     delay__select__25___byte, delay__select__25___bit
3663                    ; code.delay=20 back_code.delay=0
3664                    ; <=bit_code_emit@symbol; sym=delay__select__26 (data:00=>00 code:XX=>XX)
3665                    ; if final true delay=1 false delay=0 code delay=20
3666                    ; line_number = 471
3667                    ; if outputs@1 done
3668                    ; line_number = 473
3669                    ; if outputs@0 start
3670                    ; Delay at if is 20
3671 00000029 = delay__select__28___byte equ outputs
3672 00000000 = delay__select__28___bit equ 0
3673                    ; (after recombine) true_delay=1, false_delay=0 uniform_delay=true
3674                    ; CASE: True.size=1 False.size=0
3675 0268 1829          btfsc   delay__select__28___byte, delay__select__28___bit
3676                    ; line_number = 474
3677                    ; temp@io0_bit := 1
3678                    ; Delay at assignment is 0
3679 00000058 = delay__select__27___byte equ delay__temp
3680 00000000 = delay__select__27___bit equ 0
3681 0269 1458          bsf     delay__select__27___byte, delay__select__27___bit
3682                    ; code.delay=22 back_code.delay=0
3683                    ; <=bit_code_emit@symbol; sym=delay__select__28 (data:00=>00 code:XX=>XX)
3684                    ; if final true delay=1 false delay=0 code delay=22
3685                    ; line_number = 473
3686                    ; if outputs@0 done
3687                    ; line_number = 475
3688                    ; _porta := temp
3689                    ; Delay at assignment is 22
3690 026a 0858          movf    delay__temp,w
3691 026b 0085          movwf   _porta
3692            
3693                    ; Delay 32 cycles
3694                    ; Delay loop takes 8 * 4 = 32 cycles
3695 026c 3008          movlw   8
3696   026d :   delay__29:
3697 026d 3eff          addlw   255
3698 026e 1d03          btfss   __z___byte, __z___bit
3699 026f 2a6d          goto    delay__29
3700                    ; line_number = 452
3701                    ;  delay 28 * microsecond done
3702                    ; # A/D result is ready:
3703                    ; line_number = 478
3704                    ;  analogs_high[channel] := _adresh
3705                    ; index_fsr_first
3706 0270 0854          movf    channel,w
3707 0271 3e31          addlw   analogs_high
3708 0272 0084          movwf   __fsr
3709 0273 081e          movf    _adresh,w
3710 0274 0080          movwf   __indf
3711                    ; line_number = 479
3712                    ;  analogs_low[channel] := _adresl
3713                    ; index_fsr_first
3714 0275 0854          movf    channel,w
3715 0276 3e39          addlw   analogs_low
3716 0277 0084          movwf   __fsr
3717 0278 1683          bsf     __rp0___byte, __rp0___bit
3718 0279 081e          movf    _adresl,w
3719 027a 0080          movwf   __indf
3720            
3721                    ; # Store the result away:
3722                    ; line_number = 482
3723                    ;  channel := (channel + 1) & 7
3724 027b 1283          bcf     __rp0___byte, __rp0___bit
3725 027c 0a54          incf    channel,w
3726 027d 3907          andlw   7
3727 027e 00d4          movwf   channel
3728            
3729                    ; # Setup for interrupts:
3730                    ; line_number = 485
3731                    ;  previous := current
3732 027f 085a          movf    delay__current,w
3733 0280 00d9          movwf   delay__previous
3734                    ; # Read the I/O port once:
3735                    ; line_number = 487
3736                    ;  current := raw ^ complement_mask
3737 0281 0827          movf    raw,w
3738 0282 062a          xorwf   complement_mask,w
3739 0283 00da          movwf   delay__current
3740                    ; line_number = 488
3741                    ;  not_current := current ^ 0xff
3742 0284 30ff          movlw   255
3743 0285 065a          xorwf   delay__current,w
3744 0286 00db          movwf   delay__not_current
3745                    ; line_number = 489
3746                    ;  changed := current ^ previous
3747 0287 085a          movf    delay__current,w
3748 0288 0659          xorwf   delay__previous,w
3749 0289 00dc          movwf   delay__changed
3750            
3751                    ; # See about triggering the interrupt_pending flag:
3752                    ; line_number = 492
3753                    ;  if (low_mask & not_current) | (high_mask & current) | (changed & current & rising_mask) | (changed & not_current & falling_mask) != 0 start
3754                    ; Left minus Right
3755 00000060 = delay__30 equ globals___0+64
3756 028a 082c          movf    low_mask,w
3757 028b 055b          andwf   delay__not_current,w
3758 028c 00e0          movwf   delay__30
3759 028d 082d          movf    high_mask,w
3760 028e 055a          andwf   delay__current,w
3761 028f 04e0          iorwf   delay__30,f
3762 0290 085c          movf    delay__changed,w
3763 0291 055a          andwf   delay__current,w
3764 0292 052e          andwf   rising_mask,w
3765 0293 04e0          iorwf   delay__30,f
3766 0294 085c          movf    delay__changed,w
3767 0295 055b          andwf   delay__not_current,w
3768 0296 052f          andwf   falling_mask,w
3769 0297 0460          iorwf   delay__30,w
3770                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3771                    ; CASE: true_code.size=0 && false_code.size=1
3772 0298 1d03          btfss   __z___byte, __z___bit
3773                    ; line_number = 495
3774                    ; interrupt_pending := 1
3775 0299 14ab          bsf     interrupt_pending___byte, interrupt_pending___bit
3776            
3777                    ; Recombine size1 = 0 || size2 = 0
3778                    ; code.delay=4294967295 back_code.delay=4294967295
3779                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3780                    ; line_number = 492
3781                    ;  if (low_mask & not_current) | (high_mask & current) | (changed & current & rising_mask) | (changed & not_current & falling_mask) != 0 done
3782            
3783                    ; # Send an interrupt if interrupts are enabled:
3784                    ; line_number = 498
3785                    ;  if interrupt_pending start
3786                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3787                    ; CASE: true_code.size = 0 && false_code.size > 1
3788                    ; bit_code_emit_helper1: body_code.size=6 true_test=true body_code.delay=0 (non-uniform delay)
3789 029a 1cab          btfss   interrupt_pending___byte, interrupt_pending___bit
3790 029b 2aa2          goto    delay__33
3791                    ; line_number = 499
3792                    ; if interrupt_enable start
3793                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3794                    ; CASE: true_code.size = 0 && false_code.size > 1
3795                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
3796 029c 1c2b          btfss   interrupt_enable___byte, interrupt_enable___bit
3797 029d 2aa2          goto    delay__32
3798                    ; # If transmit buffer is empty, send a null:
3799                    ; line_number = 501
3800                    ;  if _trmt start
3801                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3802                    ; CASE: true_code.size = 0 && false_code.size > 1
3803                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
3804 029e 1c96          btfss   _trmt___byte, _trmt___bit
3805 029f 2aa2          goto    delay__31
3806                    ; line_number = 502
3807                    ; _txreg := 0
3808 02a0 3000          movlw   0
3809 02a1 0095          movwf   _txreg
3810            
3811            
3812                    ; Recombine size1 = 0 || size2 = 0
3813   02a2 :   delay__31:
3814                    ; code.delay=4294967295 back_code.delay=4294967295
3815                    ; <=bit_code_emit@symbol; sym=_trmt (data:00=>00 code:XX=>XX)
3816                    ; line_number = 501
3817                    ;  if _trmt done
3818                    ; Recombine size1 = 0 || size2 = 0
3819   02a2 :   delay__32:
3820                    ; code.delay=4294967295 back_code.delay=4294967295
3821                    ; <=bit_code_emit@symbol; sym=interrupt_enable (data:00=>00 code:XX=>XX)
3822                    ; line_number = 499
3823                    ; if interrupt_enable done
3824                    ; Recombine size1 = 0 || size2 = 0
3825   02a2 :   delay__33:
3826                    ; code.delay=4294967295 back_code.delay=4294967295
3827                    ; <=bit_code_emit@symbol; sym=interrupt_pending (data:00=>00 code:XX=>XX)
3828                    ; line_number = 498
3829                    ;  if interrupt_pending done
3830                    ; delay after procedure statements=non-uniform
3831                    ; Implied return
3832 02a2 3400          retlw   0
3833            
3834            
3835            
3836            
3837                    ; line_number = 505
3838                    ; constant zeros8 = "\0,0,0,0,0,0,0,0\"
3839                    ; zeros8 = '\0,0,0,0,0,0,0,0\'
3840                    ; line_number = 506
3841                    ; constant module_name = "\9\Digital8D"
3842                    ; module_name = '\9\Digital8D'
3843                    ; line_number = 507
3844                    ; constant vendor_name = "\15\Gramlich&Benson"
3845                    ; vendor_name = '\15\Gramlich&Benson'
3846                    ; line_number = 508
3847                    ; string id = "\1,0,32,3,3,0,0,0\" ~ zeros8 ~ zeros8 ~ module_name ~ vendor_name start
3848                    ; id = '\1,0\ \3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9\Digital8D\15\Gramlich&Benson'
3849   02a3 :   id:
3850                    ; Temporarily save index into FSR
3851 02a3 0084          movwf   __fsr
3852                    ; Initialize PCLATH to point to this code page
3853 02a4 3002          movlw   id___base>>8
3854 02a5 008a          movwf   __pclath
3855                    ; Restore index from FSR
3856 02a6 0804          movf    __fsr,w
3857 02a7 3ea9          addlw   id___base
3858                    ; Index to the correct return value
3859 02a8 0082          movwf   __pcl
3860                    ; page_group 50
3861   02a9 :   id___base:
3862 02a9 3401          retlw   1
3863 02aa 3400          retlw   0
3864 02ab 3420          retlw   32
3865 02ac 3403          retlw   3
3866 02ad 3403          retlw   3
3867 02ae 3400          retlw   0
3868 02af 3400          retlw   0
3869 02b0 3400          retlw   0
3870 02b1 3400          retlw   0
3871 02b2 3400          retlw   0
3872 02b3 3400          retlw   0
3873 02b4 3400          retlw   0
3874 02b5 3400          retlw   0
3875 02b6 3400          retlw   0
3876 02b7 3400          retlw   0
3877 02b8 3400          retlw   0
3878 02b9 3400          retlw   0
3879 02ba 3400          retlw   0
3880 02bb 3400          retlw   0
3881 02bc 3400          retlw   0
3882 02bd 3400          retlw   0
3883 02be 3400          retlw   0
3884 02bf 3400          retlw   0
3885 02c0 3400          retlw   0
3886 02c1 3409          retlw   9
3887 02c2 3444          retlw   68
3888 02c3 3469          retlw   105
3889 02c4 3467          retlw   103
3890 02c5 3469          retlw   105
3891 02c6 3474          retlw   116
3892 02c7 3461          retlw   97
3893 02c8 346c          retlw   108
3894 02c9 3438          retlw   56
3895 02ca 3444          retlw   68
3896 02cb 340f          retlw   15
3897 02cc 3447          retlw   71
3898 02cd 3472          retlw   114
3899 02ce 3461          retlw   97
3900 02cf 346d          retlw   109
3901 02d0 346c          retlw   108
3902 02d1 3469          retlw   105
3903 02d2 3463          retlw   99
3904 02d3 3468          retlw   104
3905 02d4 3426          retlw   38
3906 02d5 3442          retlw   66
3907 02d6 3465          retlw   101
3908 02d7 346e          retlw   110
3909 02d8 3473          retlw   115
3910 02d9 346f          retlw   111
3911 02da 346e          retlw   110
3912                    ; line_number = 508
3913                    ; string id = "\1,0,32,3,3,0,0,0\" ~ zeros8 ~ zeros8 ~ module_name ~ vendor_name start
3914            
3915                    ; line_number = 510
3916                    ; string chans = "\0,3,1,2,4,5,6,7\" start
3917                    ; chans = '\0,3,1,2,4,5,6,7\'
3918   02db :   chans:
3919                    ; Temporarily save index into FSR
3920 02db 0084          movwf   __fsr
3921                    ; Initialize PCLATH to point to this code page
3922 02dc 3002          movlw   chans___base>>8
3923 02dd 008a          movwf   __pclath
3924                    ; Restore index from FSR
3925 02de 0804          movf    __fsr,w
3926 02df 3ee1          addlw   chans___base
3927                    ; Index to the correct return value
3928 02e0 0082          movwf   __pcl
3929                    ; page_group 8
3930   02e1 :   chans___base:
3931 02e1 3400          retlw   0
3932 02e2 3403          retlw   3
3933 02e3 3401          retlw   1
3934 02e4 3402          retlw   2
3935 02e5 3404          retlw   4
3936 02e6 3405          retlw   5
3937 02e7 3406          retlw   6
3938 02e8 3407          retlw   7
3939                    ; line_number = 510
3940                    ; string chans = "\0,3,1,2,4,5,6,7\" start
3941            
3942                    ; line_number = 512
3943                    ; string mask = "\1,2,4,8,16,32,64,128\" start
3944                    ; mask = '\1,2,4,8,16\ @\128\'
3945   02e9 :   mask:
3946                    ; Temporarily save index into FSR
3947 02e9 0084          movwf   __fsr
3948                    ; Initialize PCLATH to point to this code page
3949 02ea 3002          movlw   mask___base>>8
3950 02eb 008a          movwf   __pclath
3951                    ; Restore index from FSR
3952 02ec 0804          movf    __fsr,w
3953 02ed 3eef          addlw   mask___base
3954                    ; Index to the correct return value
3955 02ee 0082          movwf   __pcl
3956                    ; page_group 8
3957   02ef :   mask___base:
3958 02ef 3401          retlw   1
3959 02f0 3402          retlw   2
3960 02f1 3404          retlw   4
3961 02f2 3408          retlw   8
3962 02f3 3410          retlw   16
3963 02f4 3420          retlw   32
3964 02f5 3440          retlw   64
3965 02f6 3480          retlw   128
3966                    ; line_number = 512
3967                    ; string mask = "\1,2,4,8,16,32,64,128\" start
3968            
3969            
3970            
3971                    ; Appending 4 delayed procedures to code bank 0
3972                    ; buffer = '_robobricks_pic16f688'
3973                    ; line_number = 17
3974                    ; procedure byte_get
3975   02f7 :   byte_get:
3976                    ; arguments_none
3977                    ; line_number = 19
3978                    ;  returns byte
3979            
3980                    ; # This procedure will return the next byte from the UART.
3981                    ; # It continuously calls delay() while it is waiting.
3982            
3983                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3984                    ; line_number = 24
3985                    ;  while !_rcif start
3986   02f7 :   byte_get__1:
3987                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3988                    ; CASE: true.size=0 && false.size>1
3989                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
3990 02f7 1a8c          btfsc   _rcif___byte, _rcif___bit
3991 02f8 2afd          goto    byte_get__2
3992                    ; line_number = 25
3993                    ; in_byte_get := 1
3994 02f9 14ef          bsf     in_byte_get___byte, in_byte_get___bit
3995                    ; line_number = 26
3996                    ;  call delay()
3997 02fa 222d          call    delay
3998                    ; line_number = 27
3999                    ;  in_byte_get := 0
4000 02fb 10ef          bcf     in_byte_get___byte, in_byte_get___bit
4001 02fc 2af7          goto    byte_get__1
4002   02fd :   byte_get__2:
4003                    ; Recombine size1 = 0 || size2 = 0
4004                    ; code.delay=4294967295 back_code.delay=4294967295
4005                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
4006                    ; line_number = 24
4007                    ;  while !_rcif done
4008                    ; line_number = 28
4009                    ; interrupt_pending := 0
4010 02fd 10ab          bcf     interrupt_pending___byte, interrupt_pending___bit
4011                    ; line_number = 29
4012                    ;  command_previous := command_last
4013 02fe 0824          movf    command_last,w
4014 02ff 00a3          movwf   command_previous
4015                    ; line_number = 30
4016                    ;  _rcif := 0
4017 0300 128c          bcf     _rcif___byte, _rcif___bit
4018                    ; line_number = 31
4019                    ;  return _rcreg start
4020                    ; line_number = 31
4021 0301 0814          movf    _rcreg,w
4022 0302 0008          return  
4023                    ; line_number = 31
4024                    ;  return _rcreg done
4025            
4026            
4027                    ; delay after procedure statements=non-uniform
4028            
4029            
4030            
4031            
4032                    ; line_number = 34
4033                    ; procedure byte_put
4034   0303 :   byte_put:
4035                    ; Last argument is sitting in W; save into argument variable
4036 0303 00a0          movwf   byte_put__value
4037                    ; delay=4294967295
4038                    ; line_number = 35
4039                    ; argument value byte
4040 00000020 = byte_put__value equ globals___0
4041                    ; line_number = 36
4042                    ;  returns_nothing
4043            
4044                    ; # This procedure will output {value} to the UART.  If the UART is
4045                    ; # already busy transmitting a character, the {delay} procedure is
4046                    ; # repeatably called until {value} can be sent.
4047            
4048                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4049                    ; line_number = 42
4050                    ;  while !_trmt start
4051   0304 :   byte_put__1:
4052                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4053                    ; CASE: true.size=0 && false.size>1
4054                    ; bit_code_emit_helper1: body_code.size=2 true_test=false body_code.delay=0 (non-uniform delay)
4055 0304 1896          btfsc   _trmt___byte, _trmt___bit
4056 0305 2b08          goto    byte_put__2
4057                    ; line_number = 43
4058                    ; call delay()
4059 0306 222d          call    delay
4060 0307 2b04          goto    byte_put__1
4061   0308 :   byte_put__2:
4062                    ; Recombine size1 = 0 || size2 = 0
4063                    ; code.delay=4294967295 back_code.delay=4294967295
4064                    ; <=bit_code_emit@symbol; sym=_trmt (data:00=>00 code:XX=>XX)
4065                    ; line_number = 42
4066                    ;  while !_trmt done
4067                    ; line_number = 44
4068                    ; debug := 0
4069 0308 1285          bcf     debug___byte, debug___bit
4070                    ; line_number = 45
4071                    ;  sent_previous := sent_last
4072 0309 0825          movf    sent_last,w
4073 030a 00a6          movwf   sent_previous
4074                    ; line_number = 46
4075                    ;  sent_last := value
4076 030b 0820          movf    byte_put__value,w
4077 030c 00a5          movwf   sent_last
4078                    ; line_number = 47
4079                    ;  _txreg := value
4080 030d 0820          movf    byte_put__value,w
4081 030e 0095          movwf   _txreg
4082            
4083            
4084                    ; delay after procedure statements=non-uniform
4085                    ; Implied return
4086 030f 3400          retlw   0
4087            
4088            
4089            
4090            
4091                    ; line_number = 50
4092                    ; procedure baud_rate_low
4093   0310 :   baud_rate_low:
4094                    ; Last argument is sitting in W; save into argument variable
4095 0310 00a1          movwf   baud_rate_low__baud_rate_index
4096                    ; delay=4294967295
4097                    ; line_number = 51
4098                    ; argument baud_rate_index byte
4099 00000021 = baud_rate_low__baud_rate_index equ globals___0+1
4100                    ; line_number = 52
4101                    ;  returns byte
4102            
4103                    ; #: This procedure will return the baud rate low byte for {baud_rate_index}.
4104            
4105                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4106                    ; line_number = 56
4107                    ;  switch baud_rate_index start
4108 0311 3003          movlw   baud_rate_low__9>>8
4109 0312 008a          movwf   __pclath
4110 0313 0821          movf    baud_rate_low__baud_rate_index,w
4111 0314 3e16          addlw   baud_rate_low__9
4112 0315 0082          movwf   __pcl
4113                    ; page_group 8
4114   0316 :   baud_rate_low__9:
4115                    ; line_number = 58
4116                    ; return _eusart_2400_low start
4117                    ; line_number = 58
4118 0316 3440          retlw   64
4119                    ; line_number = 58
4120                    ; return _eusart_2400_low done
4121                    ; line_number = 60
4122                    ; return _eusart_4800_low start
4123                    ; line_number = 60
4124 0317 349f          retlw   159
4125                    ; line_number = 60
4126                    ; return _eusart_4800_low done
4127                    ; line_number = 62
4128                    ; return _eusart_9600_low start
4129                    ; line_number = 62
4130 0318 34cf          retlw   207
4131                    ; line_number = 62
4132                    ; return _eusart_9600_low done
4133                    ; line_number = 64
4134                    ; return _eusart_19200_low start
4135                    ; line_number = 64
4136 0319 3467          retlw   103
4137                    ; line_number = 64
4138                    ; return _eusart_19200_low done
4139                    ; line_number = 66
4140                    ; return _eusart_38400_low start
4141                    ; line_number = 66
4142 031a 3433          retlw   51
4143                    ; line_number = 66
4144                    ; return _eusart_38400_low done
4145                    ; line_number = 68
4146                    ; return _eusart_57600_low start
4147                    ; line_number = 68
4148 031b 3421          retlw   33
4149                    ; line_number = 68
4150                    ; return _eusart_57600_low done
4151                    ; line_number = 70
4152                    ; return _eusart_115200_low start
4153                    ; line_number = 70
4154 031c 3410          retlw   16
4155                    ; line_number = 70
4156                    ; return _eusart_115200_low done
4157                    ; line_number = 72
4158                    ; return _eusart_203400_low start
4159                    ; line_number = 72
4160 031d 3408          retlw   8
4161                    ; line_number = 72
4162                    ; return _eusart_203400_low done
4163            
4164            
4165   031e :   baud_rate_low__10:
4166                    ; switch end:(data:00=>00 code:XX=>XX)
4167                    ; line_number = 56
4168                    ;  switch baud_rate_index done
4169                    ; delay after procedure statements=non-uniform
4170                    ; Exiting procedure with no return(s); fail with infinite loop
4171   031e :   baud_rate_low__11:
4172 031e 2b1e          goto    baud_rate_low__11
4173            
4174            
4175            
4176            
4177                    ; line_number = 75
4178                    ; procedure baud_rate_high
4179   031f :   baud_rate_high:
4180                    ; Last argument is sitting in W; save into argument variable
4181 031f 00a2          movwf   baud_rate_high__baud_rate_index
4182                    ; delay=4294967295
4183                    ; line_number = 76
4184                    ; argument baud_rate_index byte
4185 00000022 = baud_rate_high__baud_rate_index equ globals___0+2
4186                    ; line_number = 77
4187                    ;  returns byte
4188            
4189                    ; # This procedure will return the baud rate high byte for
4190                    ; # {baud_rate_index}.
4191            
4192                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4193                    ; line_number = 82
4194                    ;  switch baud_rate_index start
4195 0320 3003          movlw   baud_rate_high__9>>8
4196 0321 008a          movwf   __pclath
4197 0322 0822          movf    baud_rate_high__baud_rate_index,w
4198 0323 3e25          addlw   baud_rate_high__9
4199 0324 0082          movwf   __pcl
4200                    ; page_group 8
4201   0325 :   baud_rate_high__9:
4202                    ; line_number = 84
4203                    ; return _eusart_2400_high start
4204                    ; line_number = 84
4205 0325 3403          retlw   3
4206                    ; line_number = 84
4207                    ; return _eusart_2400_high done
4208                    ; line_number = 86
4209                    ; return _eusart_4800_high start
4210                    ; line_number = 86
4211 0326 3401          retlw   1
4212                    ; line_number = 86
4213                    ; return _eusart_4800_high done
4214                    ; line_number = 88
4215                    ; return _eusart_9600_high start
4216                    ; line_number = 88
4217 0327 3400          retlw   0
4218                    ; line_number = 88
4219                    ; return _eusart_9600_high done
4220                    ; line_number = 90
4221                    ; return _eusart_19200_high start
4222                    ; line_number = 90
4223 0328 3400          retlw   0
4224                    ; line_number = 90
4225                    ; return _eusart_19200_high done
4226                    ; line_number = 92
4227                    ; return _eusart_38400_high start
4228                    ; line_number = 92
4229 0329 3400          retlw   0
4230                    ; line_number = 92
4231                    ; return _eusart_38400_high done
4232                    ; line_number = 94
4233                    ; return _eusart_57600_high start
4234                    ; line_number = 94
4235 032a 3400          retlw   0
4236                    ; line_number = 94
4237                    ; return _eusart_57600_high done
4238                    ; line_number = 96
4239                    ; return _eusart_115200_high start
4240                    ; line_number = 96
4241 032b 3400          retlw   0
4242                    ; line_number = 96
4243                    ; return _eusart_115200_high done
4244                    ; line_number = 98
4245                    ; return _eusart_203400_high start
4246                    ; line_number = 98
4247 032c 3400          retlw   0
4248                    ; line_number = 98
4249                    ; return _eusart_203400_high done
4250            
4251   032d :   baud_rate_high__10:
4252                    ; switch end:(data:00=>00 code:XX=>XX)
4253                    ; line_number = 82
4254                    ;  switch baud_rate_index done
4255                    ; delay after procedure statements=non-uniform
4256                    ; Exiting procedure with no return(s); fail with infinite loop
4257   032d :   baud_rate_high__11:
4258 032d 2b2d          goto    baud_rate_high__11
4259            
4260            
4261            
4262            
4263                    ; Configuration bits
4264                    ; fill = 0x3000
4265                    ; fcmen = off (0x0)
4266                    ; ieso = off (0x0)
4267                    ; boden = off (0x0)
4268                    ; cpd = off (0x80)
4269                    ; cp = off (0x40)
4270                    ; mclre = off (0x20)
4271                    ; pwrte = off (0x10)
4272                    ; wdte = off (0x0)
4273                    ; fosc = int_no_clk (0x4)
4274                    ; 12532 = 0x30f4
4275   30f4 =           __config 12532
4276                    ; Define start addresses for data regions
4277                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
4278                    ; Region="globals___0" Address=32" Size=80 Bytes=65 Bits=3 Available=14
4279                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
4280                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
4281                    ; Region="globals___3" Address=416" Size=80 Bytes=0 Bits=0 Available=80
4282                    end
