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 = 'iredge4'
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 = 'iredge4'
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_out, name = led1
1528 00000005 = led1___byte equ _porta
1529 00000005 = led1___bit equ 5
1530                    ; line_number = 11
1531                    ;  pin 3 = ra4_out, name = led2
1532 00000005 = led2___byte equ _porta
1533 00000004 = led2___bit equ 4
1534                    ; line_number = 12
1535                    ;  pin 4 = ra3_nc
1536                    ; line_number = 13
1537                    ;  pin 5 = rx
1538                    ; line_number = 14
1539                    ;  pin 6 = tx
1540                    ; line_number = 15
1541                    ;  pin 7 = rc3_out, name = led3
1542 00000007 = led3___byte equ _portc
1543 00000003 = led3___bit equ 3
1544                    ; line_number = 16
1545                    ;  pin 8 = rc2_out, name = led0
1546 00000007 = led0___byte equ _portc
1547 00000002 = led0___bit equ 2
1548                    ; line_number = 17
1549                    ;  pin 9 = an5, name = in0
1550 00000007 = in0___byte equ _portc
1551 00000001 = in0___bit equ 1
1552                    ; line_number = 18
1553                    ;  pin 10 = rc0_in, name = debug
1554 00000007 = debug___byte equ _portc
1555 00000000 = debug___bit equ 0
1556                    ; line_number = 19
1557                    ;  pin 11 = an2, name = in1
1558 00000005 = in1___byte equ _porta
1559 00000002 = in1___bit equ 2
1560                    ; line_number = 20
1561                    ;  pin 12 = an1, name = in2
1562 00000005 = in2___byte equ _porta
1563 00000001 = in2___bit equ 1
1564                    ; line_number = 21
1565                    ;  pin 13 = an0, name = in3
1566 00000005 = in3___byte equ _porta
1567 00000000 = in3___bit equ 0
1568                    ; line_number = 22
1569                    ;  pin 14 = ground
1570            
1571                    ; line_number = 24
1572                    ; constant analogs_size = 4
1573 00000004 = analogs_size equ 4
1574                    ; line_number = 25
1575                    ; constant io_mask = 0xf
1576 0000000f = io_mask equ 15
1577                    ; line_number = 26
1578                    ; constant threshold_default = 0x80
1579 00000080 = threshold_default equ 128
1580            
1581                    ; line_number = 28
1582                    ; constant state_size = 16 + 12
1583 0000001c = state_size equ 28
1584                    ; line_number = 29
1585                    ; constant state_size2 = state_size << 1
1586 00000038 = state_size2 equ 56
1587                    ; line_number = 30
1588                    ; global state[state_size] array[byte]
1589 00000023 = state equ globals___0+3
1590                    ; line_number = 31
1591                    ; bind command_previous = state[0]
1592 00000023 = command_previous equ globals___0+3
1593                    ; line_number = 32
1594                    ; bind command_last = state[1]
1595 00000024 = command_last equ globals___0+4
1596                    ; line_number = 33
1597                    ; bind sent_previous = state[2]
1598 00000025 = sent_previous equ globals___0+5
1599                    ; line_number = 34
1600                    ; bind sent_last = state[3]
1601 00000026 = sent_last equ globals___0+6
1602                    ; line_number = 35
1603                    ; bind threshold_trim_pot = state[4]
1604 00000027 = threshold_trim_pot equ globals___0+7
1605                    ; line_number = 36
1606                    ; bind inputs = state[5]
1607 00000028 = inputs equ globals___0+8
1608                    ; line_number = 37
1609                    ; bind complement = state[6]
1610 00000029 = complement equ globals___0+9
1611                    ; line_number = 38
1612                    ; bind command = state[7]
1613 0000002a = command equ globals___0+10
1614                    ; line_number = 39
1615                    ; bind raw_inputs = state[8]
1616 0000002b = raw_inputs equ globals___0+11
1617                    ; line_number = 40
1618                    ; bind interrupt_bits = state[9]
1619 0000002c = interrupt_bits equ globals___0+12
1620                    ; line_number = 41
1621                    ; bind falling = state[10]
1622 0000002d = falling equ globals___0+13
1623                    ; line_number = 42
1624                    ; bind high = state[11]
1625 0000002e = high equ globals___0+14
1626                    ; line_number = 43
1627                    ; bind low = state[12]
1628 0000002f = low equ globals___0+15
1629                    ; line_number = 44
1630                    ; bind raising = state[13]
1631 00000030 = raising equ globals___0+16
1632                    ; line_number = 45
1633                    ; bind threshold_enables = state[14]
1634 00000031 = threshold_enables equ globals___0+17
1635                    ; line_number = 46
1636                    ; bind thresholds_low[0] = state[16]
1637 00000033 = thresholds_low equ globals___0+19
1638                    ; line_number = 47
1639                    ; bind thresholds_high[0] = state[20]
1640 00000037 = thresholds_high equ globals___0+23
1641                    ; line_number = 48
1642                    ; bind analogs[0] = state[24]
1643 0000003b = analogs equ globals___0+27
1644            
1645                    ; line_number = 50
1646                    ; global delay_counter byte
1647 0000003f = delay_counter equ globals___0+31
1648                    ; line_number = 51
1649                    ; global channel byte
1650 00000040 = channel equ globals___0+32
1651                    ; line_number = 52
1652                    ; global glitch byte
1653 00000041 = glitch equ globals___0+33
1654                    ; line_number = 53
1655                    ; global id_index byte
1656 00000042 = id_index equ globals___0+34
1657            
1658                    ; line_number = 55
1659                    ; bind interrupt_enable = interrupt_bits@1
1660 0000002c = interrupt_enable___byte equ globals___0+12
1661 00000001 = interrupt_enable___bit equ 1
1662                    ; line_number = 56
1663                    ; bind interrupt_pending = interrupt_bits@0
1664 0000002c = interrupt_pending___byte equ globals___0+12
1665 00000000 = interrupt_pending___bit equ 0
1666            
1667                    ; line_number = 58
1668                    ; procedure main
1669   0000 :   main:
1670                    ; Initialize some registers
1671 0000 3001          movlw   1
1672 0001 009f          movwf   _adcon0
1673 0002 3027          movlw   39
1674 0003 1683          bsf     __rp0___byte, __rp0___bit
1675 0004 0091          movwf   _ansel
1676 0005 3007          movlw   7
1677 0006 1283          bcf     __rp0___byte, __rp0___bit
1678 0007 0099          movwf   _cmcon0
1679 0008 300f          movlw   15
1680 0009 1683          bsf     __rp0___byte, __rp0___bit
1681 000a 0085          movwf   _trisa
1682 000b 3033          movlw   51
1683 000c 0087          movwf   _trisc
1684                    ; arguments_none
1685                    ; line_number = 60
1686                    ;  returns_nothing
1687            
1688                    ; line_number = 62
1689                    ;  local bit byte
1690 00000043 = main__bit equ globals___0+35
1691                    ; line_number = 63
1692                    ;  local temporary byte
1693 00000044 = main__temporary equ globals___0+36
1694            
1695                    ; # Switch over to 8MHz:
1696                    ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:XX=>XX)
1697                    ; line_number = 66
1698                    ;  _osccon := 0x71
1699 000d 3071          movlw   113
1700 000e 008f          movwf   _osccon
1701            
1702                    ; # Warm up the UART:
1703                    ; line_number = 69
1704                    ;  _txsta := 0x24
1705 000f 3024          movlw   36
1706 0010 1283          bcf     __rp0___byte, __rp0___bit
1707 0011 0096          movwf   _txsta
1708                    ; line_number = 70
1709                    ;  _rcsta := 0x90
1710 0012 3090          movlw   144
1711 0013 0097          movwf   _rcsta
1712                    ; line_number = 71
1713                    ;  _baudctl := 0x08
1714 0014 3008          movlw   8
1715 0015 0091          movwf   _baudctl
1716                    ; line_number = 72
1717                    ;  _spbrg := _eusart_2400_low
1718 0016 3040          movlw   64
1719 0017 0093          movwf   _spbrg
1720                    ; line_number = 73
1721                    ;  _spbrgh := _eusart_2400_high
1722 0018 3003          movlw   3
1723 0019 0092          movwf   _spbrgh
1724            
1725                    ; line_number = 75
1726                    ;  call reset()
1727 001a 2199          call    reset
1728            
1729                    ; # Set the direction:
1730                    ; line_number = 78
1731                    ;  loop_forever start
1732   001b :   main__1:
1733                    ; # Wait for a command:
1734                    ; line_number = 80
1735                    ;  command := byte_get()
1736 001b 2213          call    byte_get
1737 001c 00aa          movwf   command
1738            
1739                    ; # Dispatch on command:
1740                    ; line_number = 83
1741                    ;  switch command >> 6 start
1742 001d 3000          movlw   main__84>>8
1743 001e 008a          movwf   __pclath
1744 00000051 = main__85 equ globals___0+49
1745 001f 0e2a          swapf   command,w
1746 0020 00d1          movwf   main__85
1747 0021 0cd1          rrf     main__85,f
1748 0022 0c51          rrf     main__85,w
1749 0023 3903          andlw   3
1750 0024 3e26          addlw   main__84
1751 0025 0082          movwf   __pcl
1752                    ; page_group 4
1753   0026 :   main__84:
1754 0026 282a          goto    main__80
1755 0027 28ac          goto    main__81
1756 0028 28c5          goto    main__82
1757 0029 28db          goto    main__83
1758                    ; line_number = 84
1759                    ; case 0
1760   002a :   main__80:
1761                    ; # 00xx xxxx:
1762                    ; line_number = 86
1763                    ;  switch command >> 3 start
1764 002a 3000          movlw   main__33>>8
1765 002b 008a          movwf   __pclath
1766 00000051 = main__34 equ globals___0+49
1767 002c 0c2a          rrf     command,w
1768 002d 00d1          movwf   main__34
1769 002e 0cd1          rrf     main__34,f
1770 002f 0c51          rrf     main__34,w
1771 0030 391f          andlw   31
1772 0031 3e33          addlw   main__33
1773 0032 0082          movwf   __pcl
1774                    ; page_group 8
1775   0033 :   main__33:
1776 0033 283b          goto    main__28
1777 0034 285a          goto    main__29
1778 0035 2878          goto    main__30
1779 0036 2878          goto    main__30
1780 0037 28a7          goto    main__31
1781 0038 28a7          goto    main__31
1782 0039 28ab          goto    main__32
1783 003a 28ab          goto    main__32
1784                    ; line_number = 87
1785                    ; case 0
1786   003b :   main__28:
1787                    ; # 0000 0xxx:
1788                    ; line_number = 89
1789                    ;  switch command & 7 start
1790 003b 3000          movlw   main__7>>8
1791 003c 008a          movwf   __pclath
1792 003d 3007          movlw   7
1793 003e 052a          andwf   command,w
1794 003f 3e41          addlw   main__7
1795 0040 0082          movwf   __pcl
1796                    ; page_group 8
1797   0041 :   main__7:
1798 0041 2849          goto    main__2
1799 0042 2849          goto    main__2
1800 0043 2849          goto    main__2
1801 0044 2849          goto    main__2
1802 0045 284f          goto    main__3
1803 0046 2852          goto    main__4
1804 0047 2855          goto    main__5
1805 0048 2858          goto    main__6
1806                    ; line_number = 90
1807                    ; case 0, 1, 2, 3
1808   0049 :   main__2:
1809                    ; # 0000 00bb (Read Pin):
1810                    ; line_number = 92
1811                    ;  call byte_put(analogs[command])
1812 0049 082a          movf    command,w
1813 004a 3e3b          addlw   analogs
1814 004b 0084          movwf   __fsr
1815 004c 0800          movf    __indf,w
1816 004d 221e          call    byte_put
1817 004e 2859          goto    main__8
1818                    ; line_number = 93
1819                    ; case 4
1820   004f :   main__3:
1821                    ; # 0000 01000 (Read Binary Values):
1822                    ; line_number = 95
1823                    ;  call byte_put(inputs)
1824 004f 0828          movf    inputs,w
1825 0050 221e          call    byte_put
1826 0051 2859          goto    main__8
1827                    ; line_number = 96
1828                    ; case 5
1829   0052 :   main__4:
1830                    ; # 0000 0101 (Read Raw Binary):
1831                    ; line_number = 98
1832                    ;  call byte_put(raw_inputs)
1833 0052 082b          movf    raw_inputs,w
1834 0053 221e          call    byte_put
1835 0054 2859          goto    main__8
1836                    ; line_number = 99
1837                    ; case 6
1838   0055 :   main__5:
1839                    ; # 0000 0110 (Read Threshold Enables):
1840                    ; line_number = 101
1841                    ;  call byte_put(threshold_enables)
1842 0055 0831          movf    threshold_enables,w
1843 0056 221e          call    byte_put
1844 0057 2859          goto    main__8
1845                    ; line_number = 102
1846                    ; case 7
1847   0058 :   main__6:
1848                    ; # 0000 0111 (Reset):
1849                    ; line_number = 104
1850                    ;  call reset()
1851 0058 2199          call    reset
1852   0059 :   main__8:
1853                    ; switch end:(data:00=>00 code:XX=>XX)
1854                    ; line_number = 89
1855                    ;  switch command & 7 done
1856 0059 28ab          goto    main__35
1857                    ; line_number = 105
1858                    ; case 1
1859   005a :   main__29:
1860                    ; # 0000 1xxx:
1861                    ; line_number = 107
1862                    ;  switch command & 7 start
1863 005a 3000          movlw   main__15>>8
1864 005b 008a          movwf   __pclath
1865 005c 3007          movlw   7
1866 005d 052a          andwf   command,w
1867 005e 3e60          addlw   main__15
1868 005f 0082          movwf   __pcl
1869                    ; page_group 8
1870   0060 :   main__15:
1871 0060 2868          goto    main__9
1872 0061 286b          goto    main__10
1873 0062 286e          goto    main__11
1874 0063 2871          goto    main__12
1875 0064 2874          goto    main__13
1876 0065 2877          goto    main__14
1877 0066 2877          goto    main__14
1878 0067 2877          goto    main__14
1879                    ; line_number = 108
1880                    ; case 0
1881   0068 :   main__9:
1882                    ; # 0000 1000 (Read Complement Mask):
1883                    ; line_number = 110
1884                    ;  call byte_put(complement)
1885 0068 0829          movf    complement,w
1886 0069 221e          call    byte_put
1887 006a 2877          goto    main__16
1888                    ; line_number = 111
1889                    ; case 1
1890   006b :   main__10:
1891                    ; # 0000 1001 (Read High Mask):
1892                    ; line_number = 113
1893                    ;  call byte_put(high)
1894 006b 082e          movf    high,w
1895 006c 221e          call    byte_put
1896 006d 2877          goto    main__16
1897                    ; line_number = 114
1898                    ; case 2
1899   006e :   main__11:
1900                    ; # 0000 1010 (Read Low Mask):
1901                    ; line_number = 116
1902                    ;  call byte_put(low)
1903 006e 082f          movf    low,w
1904 006f 221e          call    byte_put
1905 0070 2877          goto    main__16
1906                    ; line_number = 117
1907                    ; case 3
1908   0071 :   main__12:
1909                    ; # 0000 1011 (Read Raising Mask):
1910                    ; line_number = 119
1911                    ;  call byte_put(raising)
1912 0071 0830          movf    raising,w
1913 0072 221e          call    byte_put
1914 0073 2877          goto    main__16
1915                    ; line_number = 120
1916                    ; case 4
1917   0074 :   main__13:
1918                    ; # 0000 1100 (Read Falling Mask):
1919                    ; line_number = 122
1920                    ;  call byte_put(falling)
1921 0074 082d          movf    falling,w
1922 0075 221e          call    byte_put
1923 0076 2877          goto    main__16
1924                    ; line_number = 123
1925                    ; case 5, 6, 7
1926   0077 :   main__14:
1927                    ; # 0000 111x or 0000 1101
1928                    ; line_number = 125
1929                    ;  do_nothing
1930   0077 :   main__16:
1931                    ; switch end:(data:00=>?? code:XX=>XX)
1932                    ; line_number = 107
1933                    ;  switch command & 7 done
1934 0077 28ab          goto    main__35
1935                    ; line_number = 126
1936                    ; case 2, 3
1937   0078 :   main__30:
1938                    ; # 0001 ccbb:
1939                    ; line_number = 128
1940                    ;  bit := command & 3
1941 0078 3003          movlw   3
1942 0079 052a          andwf   command,w
1943 007a 00c3          movwf   main__bit
1944                    ; line_number = 129
1945                    ;  switch (command >> 2) & 3 start
1946 007b 3000          movlw   main__25>>8
1947 007c 008a          movwf   __pclath
1948 00000051 = main__26 equ globals___0+49
1949 007d 0c2a          rrf     command,w
1950 007e 00d1          movwf   main__26
1951 007f 0c51          rrf     main__26,w
1952 0080 3903          andlw   3
1953 0081 3e83          addlw   main__25
1954 0082 0082          movwf   __pcl
1955                    ; page_group 4
1956   0083 :   main__25:
1957 0083 2887          goto    main__21
1958 0084 288d          goto    main__22
1959 0085 2893          goto    main__23
1960 0086 289d          goto    main__24
1961                    ; line_number = 130
1962                    ; case 0
1963   0087 :   main__21:
1964                    ; # 0001 00bb (Read High Threshold):
1965                    ; line_number = 132
1966                    ;  call byte_put(thresholds_high[bit])
1967 0087 0843          movf    main__bit,w
1968 0088 3e37          addlw   thresholds_high
1969 0089 0084          movwf   __fsr
1970 008a 0800          movf    __indf,w
1971 008b 221e          call    byte_put
1972 008c 28a6          goto    main__27
1973                    ; line_number = 133
1974                    ; case 1
1975   008d :   main__22:
1976                    ; # 0001 01bb (Read Low Threshold):
1977                    ; line_number = 135
1978                    ;  call byte_put(thresholds_low[bit])
1979 008d 0843          movf    main__bit,w
1980 008e 3e33          addlw   thresholds_low
1981 008f 0084          movwf   __fsr
1982 0090 0800          movf    __indf,w
1983 0091 221e          call    byte_put
1984 0092 28a6          goto    main__27
1985                    ; line_number = 136
1986                    ; case 2
1987   0093 :   main__23:
1988                    ; # 0001 10bb (Set High Threshold):
1989                    ; line_number = 138
1990                    ;  thresholds_high[bit] := byte_get()
1991                    ; index_temporary_first
1992 00000051 = main__17 equ globals___0+49
1993 00000052 = main__18 equ globals___0+50
1994 0093 0843          movf    main__bit,w
1995 0094 00d1          movwf   main__17
1996 0095 2213          call    byte_get
1997 0096 00d2          movwf   main__18
1998 0097 0851          movf    main__17,w
1999 0098 3e37          addlw   thresholds_high
2000 0099 0084          movwf   __fsr
2001 009a 0852          movf    main__18,w
2002 009b 0080          movwf   __indf
2003 009c 28a6          goto    main__27
2004                    ; line_number = 139
2005                    ; case 3
2006   009d :   main__24:
2007                    ; # 0001 11bb (Set Low Threshold):
2008                    ; line_number = 141
2009                    ;  thresholds_low[bit] := byte_get()
2010                    ; index_temporary_first
2011 00000051 = main__19 equ globals___0+49
2012 00000052 = main__20 equ globals___0+50
2013 009d 0843          movf    main__bit,w
2014 009e 00d1          movwf   main__19
2015 009f 2213          call    byte_get
2016 00a0 00d2          movwf   main__20
2017 00a1 0851          movf    main__19,w
2018 00a2 3e33          addlw   thresholds_low
2019 00a3 0084          movwf   __fsr
2020 00a4 0852          movf    main__20,w
2021 00a5 0080          movwf   __indf
2022   00a6 :   main__27:
2023                    ; switch end:(data:00=>00 code:XX=>XX)
2024                    ; line_number = 129
2025                    ;  switch (command >> 2) & 3 done
2026 00a6 28ab          goto    main__35
2027                    ; line_number = 142
2028                    ; case 4, 5
2029   00a7 :   main__31:
2030                    ; # 0010 cccc (Set Complement Mask):
2031                    ; line_number = 144
2032                    ;  complement := command & io_mask
2033 00a7 300f          movlw   15
2034 00a8 052a          andwf   command,w
2035 00a9 00a9          movwf   complement
2036 00aa 28ab          goto    main__35
2037                    ; line_number = 145
2038                    ; case 6, 7
2039   00ab :   main__32:
2040                    ; # 0011 xxxx:
2041                    ; line_number = 147
2042                    ;  do_nothing
2043   00ab :   main__35:
2044                    ; switch end:(data:00=>?? code:XX=>XX)
2045                    ; line_number = 86
2046                    ;  switch command >> 3 done
2047 00ab 2950          goto    main__86
2048                    ; line_number = 148
2049                    ; case 1
2050   00ac :   main__81:
2051                    ; # 01cc mmmm:
2052                    ; line_number = 150
2053                    ;  temporary := command & io_mask
2054 00ac 300f          movlw   15
2055 00ad 052a          andwf   command,w
2056 00ae 00c4          movwf   main__temporary
2057                    ; line_number = 151
2058                    ;  switch (command >> 4) & 3 start
2059 00af 3000          movlw   main__40>>8
2060 00b0 008a          movwf   __pclath
2061 00000051 = main__41 equ globals___0+49
2062 00b1 0e2a          swapf   command,w
2063 00b2 3903          andlw   3
2064 00b3 3eb5          addlw   main__40
2065 00b4 0082          movwf   __pcl
2066                    ; page_group 4
2067   00b5 :   main__40:
2068 00b5 28b9          goto    main__36
2069 00b6 28bc          goto    main__37
2070 00b7 28bf          goto    main__38
2071 00b8 28c2          goto    main__39
2072                    ; line_number = 152
2073                    ; case 0
2074   00b9 :   main__36:
2075                    ; # 0100 hhhh (Set High Mask):
2076                    ; line_number = 154
2077                    ;  high := temporary
2078 00b9 0844          movf    main__temporary,w
2079 00ba 00ae          movwf   high
2080 00bb 28c4          goto    main__42
2081                    ; line_number = 155
2082                    ; case 1
2083   00bc :   main__37:
2084                    ; # 0101 llll (Set Low Mask):
2085                    ; line_number = 157
2086                    ;  low := temporary
2087 00bc 0844          movf    main__temporary,w
2088 00bd 00af          movwf   low
2089 00be 28c4          goto    main__42
2090                    ; line_number = 158
2091                    ; case 2
2092   00bf :   main__38:
2093                    ; # 0110 rrrr (Set Raising Mask):
2094                    ; line_number = 160
2095                    ;  raising := temporary
2096 00bf 0844          movf    main__temporary,w
2097 00c0 00b0          movwf   raising
2098 00c1 28c4          goto    main__42
2099                    ; line_number = 161
2100                    ; case 3
2101   00c2 :   main__39:
2102                    ; # 0111 ffff (Set Falling Mask):
2103                    ; line_number = 163
2104                    ;  falling := temporary
2105 00c2 0844          movf    main__temporary,w
2106 00c3 00ad          movwf   falling
2107   00c4 :   main__42:
2108                    ; switch end:(data:00=>00 code:XX=>XX)
2109                    ; line_number = 151
2110                    ;  switch (command >> 4) & 3 done
2111 00c4 2950          goto    main__86
2112                    ; line_number = 164
2113                    ; case 2
2114   00c5 :   main__82:
2115                    ; # 10xx xxxx:
2116                    ; line_number = 166
2117                    ;  switch (command >> 3) & 7 start
2118 00c5 3000          movlw   main__45>>8
2119 00c6 008a          movwf   __pclath
2120 00000051 = main__46 equ globals___0+49
2121 00c7 0c2a          rrf     command,w
2122 00c8 00d1          movwf   main__46
2123 00c9 0cd1          rrf     main__46,f
2124 00ca 0c51          rrf     main__46,w
2125 00cb 3907          andlw   7
2126 00cc 3ece          addlw   main__45
2127 00cd 0082          movwf   __pcl
2128                    ; page_group 8
2129   00ce :   main__45:
2130 00ce 28d6          goto    main__43
2131 00cf 28d6          goto    main__43
2132 00d0 28da          goto    main__44
2133 00d1 28da          goto    main__44
2134 00d2 28da          goto    main__44
2135 00d3 28da          goto    main__44
2136 00d4 28da          goto    main__44
2137 00d5 28da          goto    main__44
2138                    ; line_number = 167
2139                    ; case 0, 1
2140   00d6 :   main__43:
2141                    ; # 1000 eeee (Set Threshold Enables):
2142                    ; line_number = 169
2143                    ;  threshold_enables := command & 0xf
2144 00d6 300f          movlw   15
2145 00d7 052a          andwf   command,w
2146 00d8 00b1          movwf   threshold_enables
2147 00d9 28da          goto    main__47
2148                    ; line_number = 170
2149                    ; case 2, 3, 4, 5, 6, 7
2150   00da :   main__44:
2151                    ; # 1001 xxxx or 101x xxxx:
2152                    ; line_number = 172
2153                    ;  do_nothing
2154   00da :   main__47:
2155                    ; switch end:(data:00=>?? code:XX=>XX)
2156                    ; line_number = 166
2157                    ;  switch (command >> 3) & 7 done
2158 00da 2950          goto    main__86
2159                    ; line_number = 173
2160                    ; case 3
2161   00db :   main__83:
2162                    ; # Command = 11xx xxxx:
2163                    ; line_number = 175
2164                    ;  switch (command >> 3) & 7 start
2165 00db 3000          movlw   main__77>>8
2166 00dc 008a          movwf   __pclath
2167 00000051 = main__78 equ globals___0+49
2168 00dd 0c2a          rrf     command,w
2169 00de 00d1          movwf   main__78
2170 00df 0cd1          rrf     main__78,f
2171 00e0 0c51          rrf     main__78,w
2172 00e1 3907          andlw   7
2173 00e2 3ee4          addlw   main__77
2174 00e3 0082          movwf   __pcl
2175                    ; page_group 8
2176   00e4 :   main__77:
2177 00e4 28ec          goto    main__73
2178 00e5 28ec          goto    main__73
2179 00e6 28ec          goto    main__73
2180 00e7 28ec          goto    main__73
2181 00e8 28ec          goto    main__73
2182 00e9 28ed          goto    main__74
2183 00ea 2901          goto    main__75
2184 00eb 291e          goto    main__76
2185                    ; line_number = 176
2186                    ; case 0, 1, 2, 3, 4
2187   00ec :   main__73:
2188                    ; # 1100 xxxx or 1110 0xxx:
2189                    ; line_number = 178
2190                    ;  do_nothing
2191 00ec 2950          goto    main__79
2192                    ; line_number = 179
2193                    ; case 5
2194   00ed :   main__74:
2195                    ; # Read Interrupt Bits (Command = 1110 1111):
2196                    ; line_number = 181
2197                    ;  switch command & 7 start
2198 00ed 3000          movlw   main__51>>8
2199 00ee 008a          movwf   __pclath
2200 00ef 3007          movlw   7
2201 00f0 052a          andwf   command,w
2202 00f1 3ef3          addlw   main__51
2203 00f2 0082          movwf   __pcl
2204                    ; page_group 8
2205   00f3 :   main__51:
2206 00f3 28fb          goto    main__48
2207 00f4 28fb          goto    main__48
2208 00f5 28fb          goto    main__48
2209 00f6 28fb          goto    main__48
2210 00f7 28fb          goto    main__48
2211 00f8 28fb          goto    main__48
2212 00f9 28fc          goto    main__49
2213 00fa 28fe          goto    main__50
2214                    ; line_number = 182
2215                    ; case 0, 1, 2, 3, 4, 5
2216   00fb :   main__48:
2217                    ; # 1110 10xx or 1110 1110x:
2218 00fb 2900          goto    main__52
2219                    ; line_number = 184
2220                    ; case 6
2221   00fc :   main__49:
2222                    ; # 1110 1110 (Reset):
2223                    ; line_number = 186
2224                    ;  call reset()
2225 00fc 2199          call    reset
2226 00fd 2900          goto    main__52
2227                    ; line_number = 187
2228                    ; case 7
2229   00fe :   main__50:
2230                    ; # 1110 1111 (Return Interrupt Bits):
2231                    ; line_number = 189
2232                    ;  call byte_put(interrupt_bits)
2233 00fe 082c          movf    interrupt_bits,w
2234 00ff 221e          call    byte_put
2235   0100 :   main__52:
2236                    ; switch end:(data:00=>?? code:XX=>XX)
2237                    ; line_number = 181
2238                    ;  switch command & 7 done
2239 0100 2950          goto    main__79
2240                    ; line_number = 190
2241                    ; case 6
2242   0101 :   main__75:
2243                    ; # Shared Interrupt commands (Command = 1111 0xxx):
2244                    ; line_number = 192
2245                    ;  switch command & 7 start
2246 0101 3001          movlw   main__60>>8
2247 0102 008a          movwf   __pclath
2248 0103 3007          movlw   7
2249 0104 052a          andwf   command,w
2250 0105 3e07          addlw   main__60
2251 0106 0082          movwf   __pcl
2252                    ; page_group 8
2253   0107 :   main__60:
2254 0107 290f          goto    main__57
2255 0108 290f          goto    main__57
2256 0109 290f          goto    main__57
2257 010a 290f          goto    main__57
2258 010b 2916          goto    main__58
2259 010c 2916          goto    main__58
2260 010d 291a          goto    main__59
2261 010e 291a          goto    main__59
2262                    ; line_number = 193
2263                    ; case 0, 1, 2, 3
2264   010f :   main__57:
2265                    ; # 1111 10ep (Set interrupt bits):
2266                    ; line_number = 195
2267                    ;  interrupt_enable := command@1
2268 010f 10ac          bcf     interrupt_enable___byte, interrupt_enable___bit
2269 0000002a = main__select__53___byte equ command
2270 00000001 = main__select__53___bit equ 1
2271                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2272                    ; CASE: True.size=1 False.size=0
2273 0110 18aa          btfsc   main__select__53___byte, main__select__53___bit
2274 0111 14ac          bsf     interrupt_enable___byte, interrupt_enable___bit
2275                    ; Recombine size1 = 0 || size2 = 0
2276                    ; code.delay=4294967295 back_code.delay=4294967295
2277                    ; <=bit_code_emit@symbol; sym=main__select__53 (data:00=>00 code:XX=>XX)
2278                    ; line_number = 196
2279                    ;  interrupt_pending := command@0
2280 0112 102c          bcf     interrupt_pending___byte, interrupt_pending___bit
2281 0000002a = main__select__54___byte equ command
2282 00000000 = main__select__54___bit equ 0
2283                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2284                    ; CASE: True.size=1 False.size=0
2285 0113 182a          btfsc   main__select__54___byte, main__select__54___bit
2286 0114 142c          bsf     interrupt_pending___byte, interrupt_pending___bit
2287                    ; Recombine size1 = 0 || size2 = 0
2288                    ; code.delay=4294967295 back_code.delay=4294967295
2289                    ; <=bit_code_emit@symbol; sym=main__select__54 (data:00=>00 code:XX=>XX)
2290 0115 291d          goto    main__61
2291                    ; line_number = 197
2292                    ; case 4, 5
2293   0116 :   main__58:
2294                    ; # 1111 110p (Set Interrupt Pending):
2295                    ; line_number = 199
2296                    ;  interrupt_pending := command@0
2297 0116 102c          bcf     interrupt_pending___byte, interrupt_pending___bit
2298 0000002a = main__select__55___byte equ command
2299 00000000 = main__select__55___bit equ 0
2300                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2301                    ; CASE: True.size=1 False.size=0
2302 0117 182a          btfsc   main__select__55___byte, main__select__55___bit
2303 0118 142c          bsf     interrupt_pending___byte, interrupt_pending___bit
2304                    ; Recombine size1 = 0 || size2 = 0
2305                    ; code.delay=4294967295 back_code.delay=4294967295
2306                    ; <=bit_code_emit@symbol; sym=main__select__55 (data:00=>00 code:XX=>XX)
2307 0119 291d          goto    main__61
2308                    ; line_number = 200
2309                    ; case 6, 7
2310   011a :   main__59:
2311                    ; # 1110 111e (Set Interrupt Enable):
2312                    ; line_number = 202
2313                    ;  interrupt_enable := command@0
2314 011a 10ac          bcf     interrupt_enable___byte, interrupt_enable___bit
2315 0000002a = main__select__56___byte equ command
2316 00000000 = main__select__56___bit equ 0
2317                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2318                    ; CASE: True.size=1 False.size=0
2319 011b 182a          btfsc   main__select__56___byte, main__select__56___bit
2320 011c 14ac          bsf     interrupt_enable___byte, interrupt_enable___bit
2321                    ; Recombine size1 = 0 || size2 = 0
2322                    ; code.delay=4294967295 back_code.delay=4294967295
2323                    ; <=bit_code_emit@symbol; sym=main__select__56 (data:00=>00 code:XX=>XX)
2324   011d :   main__61:
2325                    ; switch end:(data:00=>00 code:XX=>XX)
2326                    ; line_number = 192
2327                    ;  switch command & 7 done
2328 011d 2950          goto    main__79
2329                    ; line_number = 203
2330                    ; case 7
2331   011e :   main__76:
2332                    ; # Shared commands (Command = 1111 1xxx):
2333                    ; line_number = 205
2334                    ;  switch command & 7 start
2335 011e 3001          movlw   main__71>>8
2336 011f 008a          movwf   __pclath
2337 0120 3007          movlw   7
2338 0121 052a          andwf   command,w
2339 0122 3e24          addlw   main__71
2340 0123 0082          movwf   __pcl
2341                    ; page_group 8
2342   0124 :   main__71:
2343 0124 292c          goto    main__63
2344 0125 292f          goto    main__64
2345 0126 2932          goto    main__65
2346 0127 2937          goto    main__66
2347 0128 293a          goto    main__67
2348 0129 2945          goto    main__68
2349 012a 2948          goto    main__69
2350 012b 294d          goto    main__70
2351                    ; line_number = 206
2352                    ; case 0
2353   012c :   main__63:
2354                    ; This case body wants this bit set
2355 012c 1683          bsf     __rp0___byte, __rp0___bit
2356                    ; # 1111 1000 (Clock Decrement):
2357                    ; line_number = 208
2358                    ;  _osctune := _osctune - _osccal_lsb
2359 012d 0390          decf    _osctune,f
2360 012e 2950          goto    main__72
2361                    ; line_number = 209
2362                    ; case 1
2363   012f :   main__64:
2364                    ; This case body wants this bit set
2365 012f 1683          bsf     __rp0___byte, __rp0___bit
2366                    ; # 1111 1001 (Clock Increment):
2367                    ; line_number = 211
2368                    ;  _osctune := _osctune + _osccal_lsb
2369 0130 0a90          incf    _osctune,f
2370 0131 2950          goto    main__72
2371                    ; line_number = 212
2372                    ; case 2
2373   0132 :   main__65:
2374                    ; This case body wants this bit set
2375 0132 1683          bsf     __rp0___byte, __rp0___bit
2376                    ; # 1111 1010 (Clock Read):
2377                    ; line_number = 214
2378                    ;  call byte_put(_osctune)
2379 0133 0810          movf    _osctune,w
2380 0134 1283          bcf     __rp0___byte, __rp0___bit
2381 0135 221e          call    byte_put
2382 0136 2950          goto    main__72
2383                    ; line_number = 215
2384                    ; case 3
2385   0137 :   main__66:
2386                    ; # 1111 1011 (Clock Pulse):
2387                    ; line_number = 217
2388                    ;  call byte_put(0)
2389 0137 3000          movlw   0
2390 0138 221e          call    byte_put
2391 0139 2950          goto    main__72
2392                    ; line_number = 218
2393                    ; case 4
2394   013a :   main__67:
2395                    ; # 1111 1100 (ID Next):
2396                    ; line_number = 220
2397                    ;  call byte_put(id[id_index])
2398 013a 0842          movf    id_index,w
2399 013b 21d0          call    id
2400 013c 221e          call    byte_put
2401                    ; line_number = 221
2402                    ;  id_index := id_index + 1
2403 013d 0ac2          incf    id_index,f
2404                    ; line_number = 222
2405                    ;  if id_index >= id.size start
2406 013e 3029          movlw   41
2407 013f 0242          subwf   id_index,w
2408                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2409                    ; CASE: true_code.size = 0 && false_code.size > 1
2410                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
2411 0140 1c03          btfss   __c___byte, __c___bit
2412 0141 2944          goto    main__62
2413                    ; line_number = 223
2414                    ; id_index := 0
2415 0142 3000          movlw   0
2416 0143 00c2          movwf   id_index
2417                    ; Recombine size1 = 0 || size2 = 0
2418   0144 :   main__62:
2419                    ; code.delay=4294967295 back_code.delay=4294967295
2420                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2421                    ; line_number = 222
2422                    ;  if id_index >= id.size done
2423 0144 2950          goto    main__72
2424                    ; line_number = 224
2425                    ; case 5
2426   0145 :   main__68:
2427                    ; # 1111 1101 (ID Reset):
2428                    ; line_number = 226
2429                    ;  id_index := 0
2430 0145 3000          movlw   0
2431 0146 00c2          movwf   id_index
2432 0147 2950          goto    main__72
2433                    ; line_number = 227
2434                    ; case 6
2435   0148 :   main__69:
2436                    ; # 1111 1110 (Glitch Read):
2437                    ; line_number = 229
2438                    ;  call byte_put(glitch)
2439 0148 0841          movf    glitch,w
2440 0149 221e          call    byte_put
2441                    ; line_number = 230
2442                    ;  glitch := 0
2443 014a 3000          movlw   0
2444 014b 00c1          movwf   glitch
2445 014c 2950          goto    main__72
2446                    ; line_number = 231
2447                    ; case 7
2448   014d :   main__70:
2449                    ; # 1111 1111 (Glitch):
2450                    ; line_number = 233
2451                    ;  if glitch != 0xff start
2452                    ; Left minus Right
2453 014d 0a41          incf    glitch,w
2454                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2455                    ; CASE: true_code.size=0 && false_code.size=1
2456 014e 1d03          btfss   __z___byte, __z___bit
2457                    ; line_number = 234
2458                    ; glitch := glitch + 1
2459 014f 0ac1          incf    glitch,f
2460            
2461            
2462            
2463                    ; Recombine size1 = 0 || size2 = 0
2464                    ; code.delay=4294967295 back_code.delay=4294967295
2465                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2466                    ; line_number = 233
2467                    ;  if glitch != 0xff done
2468   0150 :   main__72:
2469                    ; switch end:(data:00=>0? code:XX=>XX)
2470                    ; line_number = 205
2471                    ;  switch command & 7 done
2472   0150 :   main__79:
2473                    ; switch end:(data:00=>?? code:XX=>XX)
2474                    ; line_number = 175
2475                    ;  switch (command >> 3) & 7 done
2476   0150 :   main__86:
2477                    ; switch end:(data:00=>?? code:XX=>XX)
2478                    ; line_number = 83
2479                    ;  switch command >> 6 done
2480                    ; line_number = 78
2481                    ;  loop_forever wrap-up
2482                    ; Need to adjust code banks to match front of loop
2483 0150 1283          bcf     __rp0___byte, __rp0___bit
2484 0151 1303          bcf     __rp1___byte, __rp1___bit
2485 0152 281b          goto    main__1
2486                    ; line_number = 78
2487                    ;  loop_forever done
2488                    ; delay after procedure statements=non-uniform
2489            
2490            
2491            
2492            
2493                    ; line_number = 238
2494                    ; procedure delay
2495   0153 :   delay:
2496                    ; arguments_none
2497                    ; line_number = 240
2498                    ;  returns_nothing
2499            
2500                    ; line_number = 242
2501                    ;  local chan byte
2502 00000045 = delay__chan equ globals___0+37
2503                    ; line_number = 243
2504                    ;  local changed byte
2505 00000046 = delay__changed equ globals___0+38
2506                    ; line_number = 244
2507                    ;  local current byte
2508 00000047 = delay__current equ globals___0+39
2509                    ; line_number = 245
2510                    ;  local hexify bit
2511 0000006f = delay__hexify___byte equ globals___0+79
2512 00000002 = delay__hexify___bit equ 2
2513                    ; line_number = 246
2514                    ;  local index byte
2515 00000048 = delay__index equ globals___0+40
2516                    ; line_number = 247
2517                    ;  local mask byte
2518 00000049 = delay__mask equ globals___0+41
2519                    ; line_number = 248
2520                    ;  local not_current byte
2521 0000004a = delay__not_current equ globals___0+42
2522                    ; line_number = 249
2523                    ;  local previous byte
2524 0000004b = delay__previous equ globals___0+43
2525                    ; line_number = 250
2526                    ;  local temp byte
2527 0000004c = delay__temp equ globals___0+44
2528                    ; line_number = 251
2529                    ;  local thresholds_index byte
2530 0000004d = delay__thresholds_index equ globals___0+45
2531                    ; line_number = 252
2532                    ;  local high byte
2533 0000004e = delay__high equ globals___0+46
2534                    ; line_number = 253
2535                    ;  local low byte
2536 0000004f = delay__low equ globals___0+47
2537            
2538                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2539                    ; line_number = 255
2540                    ;  watch_dog_reset done
2541 0153 0064          clrwdt  
2542            
2543                    ; # Perform A/D:
2544                    ; line_number = 258
2545                    ;  chan := chans[channel]
2546 0154 0840          movf    channel,w
2547 0155 21ff          call    chans
2548 0156 00c5          movwf   delay__chan
2549            
2550                    ; # At 8MHz, TAD = 1.6uS (ADCS<2:0>=010).  An A/D conversion takes
2551                    ; # 11*TAD = 11*1.6uS = 17.1uS 
2552            
2553                    ; # Acquiring the signal takes approximately 20uS.
2554                    ; # We'll pad that out a little to 30uS to be safe:
2555                    ; line_number = 265
2556                    ;  _adcon0 := (chan << 2) | 1
2557 00000053 = delay__1 equ globals___0+51
2558 0157 0d45          rlf     delay__chan,w
2559 0158 00d3          movwf   delay__1
2560 0159 0d53          rlf     delay__1,w
2561 015a 39fc          andlw   252
2562 015b 3801          iorlw   1
2563 015c 009f          movwf   _adcon0
2564                    ; line_number = 266
2565                    ;  delay 30 * microsecond start
2566                    ; Delay expression evaluates to 60
2567                    ; line_number = 267
2568                    ; do_nothing
2569            
2570                    ; Delay 60 cycles
2571                    ; Delay loop takes 15 * 4 = 60 cycles
2572 015d 300f          movlw   15
2573   015e :   delay__2:
2574 015e 3eff          addlw   255
2575 015f 1d03          btfss   __z___byte, __z___bit
2576 0160 295e          goto    delay__2
2577                    ; line_number = 266
2578                    ;  delay 30 * microsecond done
2579                    ; # Getting the value takes 11 & Tad, where Tad = 2uS = 22uS.
2580                    ; # We'll add 5uS for a little pad:
2581                    ; line_number = 271
2582                    ;  _go := 1
2583 0161 149f          bsf     _go___byte, _go___bit
2584                    ; line_number = 272
2585                    ;  delay 28 * microsecond start
2586                    ; Delay expression evaluates to 56
2587                    ; line_number = 273
2588                    ; do_nothing
2589            
2590                    ; Delay 56 cycles
2591                    ; Delay loop takes 14 * 4 = 56 cycles
2592 0162 300e          movlw   14
2593   0163 :   delay__3:
2594 0163 3eff          addlw   255
2595 0164 1d03          btfss   __z___byte, __z___bit
2596 0165 2963          goto    delay__3
2597                    ; line_number = 272
2598                    ;  delay 28 * microsecond done
2599                    ; # A/D result is ready:
2600                    ; line_number = 276
2601                    ;  temp := 0xff - _adresh
2602 0166 091e          comf    _adresh,w
2603 0167 00cc          movwf   delay__temp
2604            
2605                    ; # Store the result away:
2606                    ; line_number = 279
2607                    ;  analogs[channel] := temp
2608                    ; index_fsr_first
2609 0168 0840          movf    channel,w
2610 0169 3e3b          addlw   analogs
2611 016a 0084          movwf   __fsr
2612 016b 084c          movf    delay__temp,w
2613 016c 0080          movwf   __indf
2614            
2615                    ; line_number = 281
2616                    ;  mask := masks[channel]
2617 016d 0840          movf    channel,w
2618 016e 2209          call    masks
2619 016f 00c9          movwf   delay__mask
2620                    ; line_number = 282
2621                    ;  if (temp >= thresholds_high[channel]) start
2622 0170 0840          movf    channel,w
2623 0171 3e37          addlw   thresholds_high
2624 0172 0084          movwf   __fsr
2625 0173 0800          movf    __indf,w
2626 0174 024c          subwf   delay__temp,w
2627                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2628                    ; CASE: true_code_size > 1 && false_code_size > 1
2629                    ; true_code_size=2 false_code_size=12
2630 0175 1c03          btfss   __c___byte, __c___bit
2631 0176 297a          goto    delay__5
2632                    ; line_number = 283
2633                    ; raw_inputs := raw_inputs | mask
2634 0177 0849          movf    delay__mask,w
2635 0178 04ab          iorwf   raw_inputs,f
2636 0179 2986          goto    delay__6
2637   017a :   delay__5:
2638                    ; line_number = 284
2639 017a 0840          movf    channel,w
2640 017b 3e33          addlw   thresholds_low
2641 017c 0084          movwf   __fsr
2642 017d 0800          movf    __indf,w
2643 017e 024c          subwf   delay__temp,w
2644 017f 1903          btfsc   __z___byte, __z___bit
2645 0180 1003          bcf     __c___byte, __c___bit
2646                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2647                    ; CASE: true.size=0 && false.size>1
2648                    ; bit_code_emit_helper1: body_code.size=3 true_test=false body_code.delay=0 (non-uniform delay)
2649 0181 1803          btfsc   __c___byte, __c___bit
2650 0182 2986          goto    delay__4
2651                    ; line_number = 285
2652                    ; raw_inputs := raw_inputs & (0xff ^ mask)
2653 0183 30ff          movlw   255
2654 0184 0649          xorwf   delay__mask,w
2655 0185 05ab          andwf   raw_inputs,f
2656   0186 :   delay__4:
2657                    ; Recombine size1 = 0 || size2 = 0
2658                    ; code.delay=4294967295 back_code.delay=4294967295
2659                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2660   0186 :   delay__6:
2661                    ; code.delay=4294967295 back_code.delay=4294967295
2662                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2663                    ; line_number = 282
2664                    ;  if (temp >= thresholds_high[channel]) done
2665                    ; line_number = 286
2666                    ; inputs := raw_inputs ^ complement
2667 0186 082b          movf    raw_inputs,w
2668 0187 0629          xorwf   complement,w
2669 0188 00a8          movwf   inputs
2670                    ; line_number = 287
2671                    ;  led0 := inputs@0
2672 0189 1107          bcf     led0___byte, led0___bit
2673 00000028 = delay__select__7___byte equ inputs
2674 00000000 = delay__select__7___bit equ 0
2675                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2676                    ; CASE: True.size=1 False.size=0
2677 018a 1828          btfsc   delay__select__7___byte, delay__select__7___bit
2678 018b 1507          bsf     led0___byte, led0___bit
2679                    ; Recombine size1 = 0 || size2 = 0
2680                    ; code.delay=4294967295 back_code.delay=4294967295
2681                    ; <=bit_code_emit@symbol; sym=delay__select__7 (data:00=>00 code:XX=>XX)
2682                    ; line_number = 288
2683                    ;  led1 := inputs@1
2684 018c 1285          bcf     led1___byte, led1___bit
2685 00000028 = delay__select__8___byte equ inputs
2686 00000001 = delay__select__8___bit equ 1
2687                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2688                    ; CASE: True.size=1 False.size=0
2689 018d 18a8          btfsc   delay__select__8___byte, delay__select__8___bit
2690 018e 1685          bsf     led1___byte, led1___bit
2691                    ; Recombine size1 = 0 || size2 = 0
2692                    ; code.delay=4294967295 back_code.delay=4294967295
2693                    ; <=bit_code_emit@symbol; sym=delay__select__8 (data:00=>00 code:XX=>XX)
2694                    ; line_number = 289
2695                    ;  led2 := inputs@2
2696 018f 1205          bcf     led2___byte, led2___bit
2697 00000028 = delay__select__9___byte equ inputs
2698 00000002 = delay__select__9___bit equ 2
2699                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2700                    ; CASE: True.size=1 False.size=0
2701 0190 1928          btfsc   delay__select__9___byte, delay__select__9___bit
2702 0191 1605          bsf     led2___byte, led2___bit
2703                    ; Recombine size1 = 0 || size2 = 0
2704                    ; code.delay=4294967295 back_code.delay=4294967295
2705                    ; <=bit_code_emit@symbol; sym=delay__select__9 (data:00=>00 code:XX=>XX)
2706                    ; line_number = 290
2707                    ;  led3 := inputs@3
2708 0192 1187          bcf     led3___byte, led3___bit
2709 00000028 = delay__select__10___byte equ inputs
2710 00000003 = delay__select__10___bit equ 3
2711                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2712                    ; CASE: True.size=1 False.size=0
2713 0193 19a8          btfsc   delay__select__10___byte, delay__select__10___bit
2714 0194 1587          bsf     led3___byte, led3___bit
2715                    ; Recombine size1 = 0 || size2 = 0
2716                    ; code.delay=4294967295 back_code.delay=4294967295
2717                    ; <=bit_code_emit@symbol; sym=delay__select__10 (data:00=>00 code:XX=>XX)
2718            
2719                    ; line_number = 292
2720                    ;  channel := (channel + 1) & 3
2721 0195 0a40          incf    channel,w
2722 0196 3903          andlw   3
2723 0197 00c0          movwf   channel
2724            
2725            
2726                    ; delay after procedure statements=non-uniform
2727                    ; Implied return
2728 0198 3400          retlw   0
2729            
2730            
2731            
2732            
2733                    ; #    # Show our A/D result:
2734                    ; #    temp := analogs[0]
2735                    ; #    if temp@7
2736                    ; #	led0 := 1
2737                    ; #    else
2738                    ; #	led0 := 0
2739                    ; #    if temp@6
2740                    ; #	led1 := 1
2741                    ; #    else
2742                    ; #	led1 := 0
2743                    ; #    if temp@5
2744                    ; #	led2 := 1
2745                    ; #    else
2746                    ; #	led2 := 0
2747                    ; #    if temp@4
2748                    ; #	led3 := 1
2749                    ; #    else
2750                    ; #	led3 := 0
2751                    ; #
2752                    ; #
2753                    ; #
2754                    ; #	# Next time around, do case 1:
2755                    ; #	delay_counter := delay_counter + 1
2756                    ; #      case 1
2757                    ; #        #  Process A/D result
2758                    ; #	if !(channel@2)
2759                    ; #	    mask := masks[channel]
2760                    ; #	    temp := analogs[channel]
2761                    ; #	    if (temp >= thresholds_high[channel])
2762                    ; #		raw_inputs := raw_inputs | mask
2763                    ; #	    else_if (temp <= thresholds_low[channel])
2764                    ; #		raw_inputs := raw_inputs & (0xff ^ mask)
2765                    ; #
2766                    ; #	# Bump to next channel:
2767                    ; #	channel := channel + 1
2768                    ; #	if channel >= chans.size
2769                    ; #	    channel := 0
2770                    ; #
2771                    ; #	# Light up the LED's:
2772                    ; #	inputs := raw_inputs ^ complement
2773                    ; #	led0 := inputs@0
2774                    ; #	led1 := inputs@1
2775                    ; #	led2 := inputs@2
2776                    ; #	led3 := inputs@3
2777                    ; #
2778                    ; #	# Setup for interrupts:
2779                    ; #	previous := current
2780                    ; #	# Read the I/O port once:
2781                    ; #	current := inputs ^ complement
2782                    ; #	not_current := current ^ 0xf
2783                    ; #	changed := current ^ previous
2784                    ; #
2785                    ; #	# See about triggering the interrupt_pending flag:
2786                    ; #	if (low & not_current) | (high & current) |
2787                    ; #	  (changed & current & raising) |
2788                    ; #	  (changed & not_current & falling) != 0
2789                    ; #	    interrupt_pending := 1
2790                    ; #
2791                    ; #	# Send an interrupt if interrupts are enabled:
2792                    ; #	if interrupt_pending && interrupt_enable
2793                    ; #	    # Shove serial out to low:
2794                    ; #	    interrupt_enable := 0
2795                    ; #	    #serial_out := 0
2796                    ; #
2797                    ; #	# Next time around, perform case 2:
2798                    ; #	delay_counter := delay_counter + 1
2799                    ; #      case 2
2800                    ; #	# Process threshold trim pot:
2801                    ; #	thresholds_index := (thresholds_index + 1) & 3
2802                    ; #	mask := masks[thresholds_index]
2803                    ; #	if threshold_enables & mask != 0
2804                    ; #	    low := thresholds_low[thresholds_index]
2805                    ; #	    high := thresholds_high[thresholds_index]
2806                    ; #	    if threshold_trim_pot > low
2807                    ; #		low := low + 1
2808                    ; #		if high != 255
2809                    ; #		    high := high + 1
2810                    ; #	    else_if threshold_trim_pot < temp
2811                    ; #		low := low - 1
2812                    ; #		if high != 0
2813                    ; #		    high := high - 1
2814                    ; #	    thresholds_low[thresholds_index] := low
2815                    ; #	    thresholds_high[thresholds_index] := high
2816                    ; #
2817                    ; #	# Next time around, perform case 3:
2818                    ; #	delay_counter := delay_counter + 1
2819                    ; #      case 3
2820                    ; #	do_nothing
2821            
2822            
2823                    ; line_number = 385
2824                    ; procedure reset
2825   0199 :   reset:
2826                    ; arguments_none
2827                    ; line_number = 387
2828                    ;  returns_nothing
2829            
2830                    ; # This procedure will initialize all of the registers:
2831            
2832                    ; line_number = 391
2833                    ;  local index byte
2834 00000050 = reset__index equ globals___0+48
2835            
2836                    ; # Initialize the A/D module:
2837                    ; # A/D Conversion clock is Fosc/8 (Tad=2uS) and AD is on:
2838                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2839                    ; line_number = 395
2840                    ;  _adcon0 := 1
2841 0199 3001          movlw   1
2842 019a 009f          movwf   _adcon0
2843                    ; line_number = 396
2844                    ;  _adcon1 := 0x20
2845 019b 3020          movlw   32
2846 019c 1683          bsf     __rp0___byte, __rp0___bit
2847 019d 009f          movwf   _adcon1
2848                    ; line_number = 397
2849                    ;  _adcs0 := 1
2850 019e 161f          bsf     _adcs0___byte, _adcs0___bit
2851                    ; line_number = 398
2852                    ;  _adif := 0
2853 019f 1283          bcf     __rp0___byte, __rp0___bit
2854 01a0 130c          bcf     _adif___byte, _adif___bit
2855                    ; line_number = 399
2856                    ;  _adie := 0
2857 01a1 1683          bsf     __rp0___byte, __rp0___bit
2858 01a2 130c          bcf     _adie___byte, _adie___bit
2859                    ; line_number = 400
2860                    ;  _gie := 0
2861 01a3 1283          bcf     __rp0___byte, __rp0___bit
2862 01a4 138b          bcf     _gie___byte, _gie___bit
2863                    ; #_ansel := 1 | 2 | 4 | 32
2864            
2865                    ; line_number = 403
2866                    ;  channel := 0
2867 01a5 3000          movlw   0
2868 01a6 00c0          movwf   channel
2869                    ; line_number = 404
2870                    ;  complement := 0
2871 01a7 3000          movlw   0
2872 01a8 00a9          movwf   complement
2873                    ; line_number = 405
2874                    ;  command := 0
2875 01a9 3000          movlw   0
2876 01aa 00aa          movwf   command
2877                    ; line_number = 406
2878                    ;  delay_counter := 0
2879 01ab 3000          movlw   0
2880 01ac 00bf          movwf   delay_counter
2881                    ; line_number = 407
2882                    ;  falling := 0
2883 01ad 3000          movlw   0
2884 01ae 00ad          movwf   falling
2885                    ; line_number = 408
2886                    ;  glitch := 0
2887 01af 3000          movlw   0
2888 01b0 00c1          movwf   glitch
2889                    ; line_number = 409
2890                    ;  high := 0
2891 01b1 3000          movlw   0
2892 01b2 00ae          movwf   high
2893                    ; line_number = 410
2894                    ;  id_index := 0
2895 01b3 3000          movlw   0
2896 01b4 00c2          movwf   id_index
2897                    ; line_number = 411
2898                    ;  interrupt_bits := 0
2899 01b5 3000          movlw   0
2900 01b6 00ac          movwf   interrupt_bits
2901                    ; line_number = 412
2902                    ;  low := 0
2903 01b7 3000          movlw   0
2904 01b8 00af          movwf   low
2905                    ; line_number = 413
2906                    ;  raising := 0
2907 01b9 3000          movlw   0
2908 01ba 00b0          movwf   raising
2909                    ; line_number = 414
2910                    ;  raw_inputs := 0
2911 01bb 3000          movlw   0
2912 01bc 00ab          movwf   raw_inputs
2913            
2914                    ; # Initialize threshold vectors:
2915                    ; line_number = 417
2916                    ;  index := 0
2917 01bd 3000          movlw   0
2918 01be 00d0          movwf   reset__index
2919                    ; line_number = 418
2920                    ;  while index < 4 start
2921   01bf :   reset__1:
2922 01bf 3004          movlw   4
2923 01c0 0250          subwf   reset__index,w
2924                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2925                    ; CASE: true.size=0 && false.size>1
2926                    ; bit_code_emit_helper1: body_code.size=12 true_test=false body_code.delay=0 (non-uniform delay)
2927 01c1 1803          btfsc   __c___byte, __c___bit
2928 01c2 29cf          goto    reset__2
2929                    ; line_number = 419
2930                    ; thresholds_high[index] := threshold_default
2931                    ; index_fsr_first
2932 01c3 0850          movf    reset__index,w
2933 01c4 3e37          addlw   thresholds_high
2934 01c5 0084          movwf   __fsr
2935 01c6 3080          movlw   128
2936 01c7 0080          movwf   __indf
2937                    ; line_number = 420
2938                    ;  thresholds_low[index] := threshold_default
2939                    ; index_fsr_first
2940 01c8 0850          movf    reset__index,w
2941 01c9 3e33          addlw   thresholds_low
2942 01ca 0084          movwf   __fsr
2943 01cb 3080          movlw   128
2944 01cc 0080          movwf   __indf
2945                    ; line_number = 421
2946                    ;  index := index + 1
2947 01cd 0ad0          incf    reset__index,f
2948            
2949            
2950 01ce 29bf          goto    reset__1
2951   01cf :   reset__2:
2952                    ; Recombine size1 = 0 || size2 = 0
2953                    ; code.delay=4294967295 back_code.delay=4294967295
2954                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2955                    ; line_number = 418
2956                    ;  while index < 4 done
2957                    ; delay after procedure statements=non-uniform
2958                    ; Implied return
2959 01cf 3400          retlw   0
2960            
2961            
2962            
2963            
2964                    ; line_number = 424
2965                    ; constant zero8 = "\0,0,0,0,0,0,0,0\"
2966                    ; zero8 = '\0,0,0,0,0,0,0,0\'
2967                    ; line_number = 425
2968                    ; constant module_name = "\8\IREdge4D"
2969                    ; module_name = '\8\IREdge4D'
2970                    ; line_number = 426
2971                    ; constant vendor_name = "\7\Gramson"
2972                    ; vendor_name = '\7\Gramson'
2973                    ; line_number = 427
2974                    ; string id = "\1,0,25,2,0,0,0,0\" ~ zero8 ~ zero8 ~ module_name ~ vendor_name start
2975                    ; id = '\1,0,25,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8\IREdge4D\7\Gramson'
2976   01d0 :   id:
2977                    ; Temporarily save index into FSR
2978 01d0 0084          movwf   __fsr
2979                    ; Initialize PCLATH to point to this code page
2980 01d1 3001          movlw   id___base>>8
2981 01d2 008a          movwf   __pclath
2982                    ; Restore index from FSR
2983 01d3 0804          movf    __fsr,w
2984 01d4 3ed6          addlw   id___base
2985                    ; Index to the correct return value
2986 01d5 0082          movwf   __pcl
2987                    ; page_group 41
2988   01d6 :   id___base:
2989 01d6 3401          retlw   1
2990 01d7 3400          retlw   0
2991 01d8 3419          retlw   25
2992 01d9 3402          retlw   2
2993 01da 3400          retlw   0
2994 01db 3400          retlw   0
2995 01dc 3400          retlw   0
2996 01dd 3400          retlw   0
2997 01de 3400          retlw   0
2998 01df 3400          retlw   0
2999 01e0 3400          retlw   0
3000 01e1 3400          retlw   0
3001 01e2 3400          retlw   0
3002 01e3 3400          retlw   0
3003 01e4 3400          retlw   0
3004 01e5 3400          retlw   0
3005 01e6 3400          retlw   0
3006 01e7 3400          retlw   0
3007 01e8 3400          retlw   0
3008 01e9 3400          retlw   0
3009 01ea 3400          retlw   0
3010 01eb 3400          retlw   0
3011 01ec 3400          retlw   0
3012 01ed 3400          retlw   0
3013 01ee 3408          retlw   8
3014 01ef 3449          retlw   73
3015 01f0 3452          retlw   82
3016 01f1 3445          retlw   69
3017 01f2 3464          retlw   100
3018 01f3 3467          retlw   103
3019 01f4 3465          retlw   101
3020 01f5 3434          retlw   52
3021 01f6 3444          retlw   68
3022 01f7 3407          retlw   7
3023 01f8 3447          retlw   71
3024 01f9 3472          retlw   114
3025 01fa 3461          retlw   97
3026 01fb 346d          retlw   109
3027 01fc 3473          retlw   115
3028 01fd 346f          retlw   111
3029 01fe 346e          retlw   110
3030                    ; line_number = 427
3031                    ; string id = "\1,0,25,2,0,0,0,0\" ~ zero8 ~ zero8 ~ module_name ~ vendor_name start
3032            
3033                    ; line_number = 429
3034                    ; string chans = "\5,2,1,0\" start
3035                    ; chans = '\5,2,1,0\'
3036   01ff :   chans:
3037                    ; Temporarily save index into FSR
3038 01ff 0084          movwf   __fsr
3039                    ; Initialize PCLATH to point to this code page
3040 0200 3002          movlw   chans___base>>8
3041 0201 008a          movwf   __pclath
3042                    ; Restore index from FSR
3043 0202 0804          movf    __fsr,w
3044 0203 3e05          addlw   chans___base
3045                    ; Index to the correct return value
3046 0204 0082          movwf   __pcl
3047                    ; page_group 4
3048   0205 :   chans___base:
3049 0205 3405          retlw   5
3050 0206 3402          retlw   2
3051 0207 3401          retlw   1
3052 0208 3400          retlw   0
3053                    ; line_number = 429
3054                    ; string chans = "\5,2,1,0\" start
3055                    ; line_number = 430
3056                    ; string masks = "\1,2,4,8\" start
3057                    ; masks = '\1,2,4,8\'
3058   0209 :   masks:
3059                    ; Temporarily save index into FSR
3060 0209 0084          movwf   __fsr
3061                    ; Initialize PCLATH to point to this code page
3062 020a 3002          movlw   masks___base>>8
3063 020b 008a          movwf   __pclath
3064                    ; Restore index from FSR
3065 020c 0804          movf    __fsr,w
3066 020d 3e0f          addlw   masks___base
3067                    ; Index to the correct return value
3068 020e 0082          movwf   __pcl
3069                    ; page_group 4
3070   020f :   masks___base:
3071 020f 3401          retlw   1
3072 0210 3402          retlw   2
3073 0211 3404          retlw   4
3074 0212 3408          retlw   8
3075                    ; line_number = 430
3076                    ; string masks = "\1,2,4,8\" start
3077            
3078            
3079            
3080                    ; Appending 4 delayed procedures to code bank 0
3081                    ; buffer = '_robobricks_pic16f688'
3082                    ; line_number = 17
3083                    ; procedure byte_get
3084   0213 :   byte_get:
3085                    ; arguments_none
3086                    ; line_number = 19
3087                    ;  returns byte
3088            
3089                    ; # This procedure will return the next byte from the UART.
3090                    ; # It continuously calls delay() while it is waiting.
3091            
3092                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3093                    ; line_number = 24
3094                    ;  while !_rcif start
3095   0213 :   byte_get__1:
3096                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3097                    ; CASE: true.size=0 && false.size>1
3098                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
3099 0213 1a8c          btfsc   _rcif___byte, _rcif___bit
3100 0214 2a19          goto    byte_get__2
3101                    ; line_number = 25
3102                    ; in_byte_get := 1
3103 0215 14ef          bsf     in_byte_get___byte, in_byte_get___bit
3104                    ; line_number = 26
3105                    ;  call delay()
3106 0216 2153          call    delay
3107                    ; line_number = 27
3108                    ;  in_byte_get := 0
3109 0217 10ef          bcf     in_byte_get___byte, in_byte_get___bit
3110 0218 2a13          goto    byte_get__1
3111   0219 :   byte_get__2:
3112                    ; Recombine size1 = 0 || size2 = 0
3113                    ; code.delay=4294967295 back_code.delay=4294967295
3114                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
3115                    ; line_number = 24
3116                    ;  while !_rcif done
3117                    ; line_number = 28
3118                    ; command_previous := command_last
3119 0219 0824          movf    command_last,w
3120 021a 00a3          movwf   command_previous
3121                    ; line_number = 29
3122                    ;  _rcif := 0
3123 021b 128c          bcf     _rcif___byte, _rcif___bit
3124                    ; line_number = 30
3125                    ;  return _rcreg start
3126                    ; line_number = 30
3127 021c 0814          movf    _rcreg,w
3128 021d 0008          return  
3129                    ; line_number = 30
3130                    ;  return _rcreg done
3131            
3132            
3133                    ; delay after procedure statements=non-uniform
3134            
3135            
3136            
3137            
3138                    ; line_number = 33
3139                    ; procedure byte_put
3140   021e :   byte_put:
3141                    ; Last argument is sitting in W; save into argument variable
3142 021e 00a0          movwf   byte_put__value
3143                    ; delay=4294967295
3144                    ; line_number = 34
3145                    ; argument value byte
3146 00000020 = byte_put__value equ globals___0
3147                    ; line_number = 35
3148                    ;  returns_nothing
3149            
3150                    ; # This procedure will output {value} to the UART.  If the UART is
3151                    ; # already busy transmitting a character, the {delay} procedure is
3152                    ; # repeatably called until {value} can be sent.
3153            
3154                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3155                    ; line_number = 41
3156                    ;  while !_trmt start
3157   021f :   byte_put__1:
3158                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3159                    ; CASE: true.size=0 && false.size>1
3160                    ; bit_code_emit_helper1: body_code.size=2 true_test=false body_code.delay=0 (non-uniform delay)
3161 021f 1896          btfsc   _trmt___byte, _trmt___bit
3162 0220 2a23          goto    byte_put__2
3163                    ; line_number = 42
3164                    ; call delay()
3165 0221 2153          call    delay
3166 0222 2a1f          goto    byte_put__1
3167   0223 :   byte_put__2:
3168                    ; Recombine size1 = 0 || size2 = 0
3169                    ; code.delay=4294967295 back_code.delay=4294967295
3170                    ; <=bit_code_emit@symbol; sym=_trmt (data:00=>00 code:XX=>XX)
3171                    ; line_number = 41
3172                    ;  while !_trmt done
3173                    ; line_number = 43
3174                    ; debug := 0
3175 0223 1007          bcf     debug___byte, debug___bit
3176                    ; line_number = 44
3177                    ;  sent_previous := sent_last
3178 0224 0826          movf    sent_last,w
3179 0225 00a5          movwf   sent_previous
3180                    ; line_number = 45
3181                    ;  sent_last := value
3182 0226 0820          movf    byte_put__value,w
3183 0227 00a6          movwf   sent_last
3184                    ; line_number = 46
3185                    ;  _txreg := value
3186 0228 0820          movf    byte_put__value,w
3187 0229 0095          movwf   _txreg
3188            
3189            
3190                    ; delay after procedure statements=non-uniform
3191                    ; Implied return
3192 022a 3400          retlw   0
3193            
3194            
3195            
3196            
3197                    ; line_number = 49
3198                    ; procedure baud_rate_low
3199   022b :   baud_rate_low:
3200                    ; Last argument is sitting in W; save into argument variable
3201 022b 00a1          movwf   baud_rate_low__baud_rate_index
3202                    ; delay=4294967295
3203                    ; line_number = 50
3204                    ; argument baud_rate_index byte
3205 00000021 = baud_rate_low__baud_rate_index equ globals___0+1
3206                    ; line_number = 51
3207                    ;  returns byte
3208            
3209                    ; #: This procedure will return the baud rate low byte for {baud_rate_index}.
3210            
3211                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3212                    ; line_number = 55
3213                    ;  switch baud_rate_index start
3214 022c 3002          movlw   baud_rate_low__9>>8
3215 022d 008a          movwf   __pclath
3216 022e 0821          movf    baud_rate_low__baud_rate_index,w
3217 022f 3e31          addlw   baud_rate_low__9
3218 0230 0082          movwf   __pcl
3219                    ; page_group 8
3220   0231 :   baud_rate_low__9:
3221                    ; line_number = 57
3222                    ; return _eusart_2400_low start
3223                    ; line_number = 57
3224 0231 3440          retlw   64
3225                    ; line_number = 57
3226                    ; return _eusart_2400_low done
3227                    ; line_number = 59
3228                    ; return _eusart_4800_low start
3229                    ; line_number = 59
3230 0232 349f          retlw   159
3231                    ; line_number = 59
3232                    ; return _eusart_4800_low done
3233                    ; line_number = 61
3234                    ; return _eusart_9600_low start
3235                    ; line_number = 61
3236 0233 34cf          retlw   207
3237                    ; line_number = 61
3238                    ; return _eusart_9600_low done
3239                    ; line_number = 63
3240                    ; return _eusart_19200_low start
3241                    ; line_number = 63
3242 0234 3467          retlw   103
3243                    ; line_number = 63
3244                    ; return _eusart_19200_low done
3245                    ; line_number = 65
3246                    ; return _eusart_38400_low start
3247                    ; line_number = 65
3248 0235 3433          retlw   51
3249                    ; line_number = 65
3250                    ; return _eusart_38400_low done
3251                    ; line_number = 67
3252                    ; return _eusart_57600_low start
3253                    ; line_number = 67
3254 0236 3421          retlw   33
3255                    ; line_number = 67
3256                    ; return _eusart_57600_low done
3257                    ; line_number = 69
3258                    ; return _eusart_115200_low start
3259                    ; line_number = 69
3260 0237 3410          retlw   16
3261                    ; line_number = 69
3262                    ; return _eusart_115200_low done
3263                    ; line_number = 71
3264                    ; return _eusart_203400_low start
3265                    ; line_number = 71
3266 0238 3408          retlw   8
3267                    ; line_number = 71
3268                    ; return _eusart_203400_low done
3269            
3270            
3271   0239 :   baud_rate_low__10:
3272                    ; switch end:(data:00=>00 code:XX=>XX)
3273                    ; line_number = 55
3274                    ;  switch baud_rate_index done
3275                    ; delay after procedure statements=non-uniform
3276                    ; Exiting procedure with no return(s); fail with infinite loop
3277   0239 :   baud_rate_low__11:
3278 0239 2a39          goto    baud_rate_low__11
3279            
3280            
3281            
3282            
3283                    ; line_number = 74
3284                    ; procedure baud_rate_high
3285   023a :   baud_rate_high:
3286                    ; Last argument is sitting in W; save into argument variable
3287 023a 00a2          movwf   baud_rate_high__baud_rate_index
3288                    ; delay=4294967295
3289                    ; line_number = 75
3290                    ; argument baud_rate_index byte
3291 00000022 = baud_rate_high__baud_rate_index equ globals___0+2
3292                    ; line_number = 76
3293                    ;  returns byte
3294            
3295                    ; # This procedure will return the baud rate high byte for
3296                    ; # {baud_rate_index}.
3297            
3298                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3299                    ; line_number = 81
3300                    ;  switch baud_rate_index start
3301 023b 3002          movlw   baud_rate_high__9>>8
3302 023c 008a          movwf   __pclath
3303 023d 0822          movf    baud_rate_high__baud_rate_index,w
3304 023e 3e40          addlw   baud_rate_high__9
3305 023f 0082          movwf   __pcl
3306                    ; page_group 8
3307   0240 :   baud_rate_high__9:
3308                    ; line_number = 83
3309                    ; return _eusart_2400_high start
3310                    ; line_number = 83
3311 0240 3403          retlw   3
3312                    ; line_number = 83
3313                    ; return _eusart_2400_high done
3314                    ; line_number = 85
3315                    ; return _eusart_4800_high start
3316                    ; line_number = 85
3317 0241 3401          retlw   1
3318                    ; line_number = 85
3319                    ; return _eusart_4800_high done
3320                    ; line_number = 87
3321                    ; return _eusart_9600_high start
3322                    ; line_number = 87
3323 0242 3400          retlw   0
3324                    ; line_number = 87
3325                    ; return _eusart_9600_high done
3326                    ; line_number = 89
3327                    ; return _eusart_19200_high start
3328                    ; line_number = 89
3329 0243 3400          retlw   0
3330                    ; line_number = 89
3331                    ; return _eusart_19200_high done
3332                    ; line_number = 91
3333                    ; return _eusart_38400_high start
3334                    ; line_number = 91
3335 0244 3400          retlw   0
3336                    ; line_number = 91
3337                    ; return _eusart_38400_high done
3338                    ; line_number = 93
3339                    ; return _eusart_57600_high start
3340                    ; line_number = 93
3341 0245 3400          retlw   0
3342                    ; line_number = 93
3343                    ; return _eusart_57600_high done
3344                    ; line_number = 95
3345                    ; return _eusart_115200_high start
3346                    ; line_number = 95
3347 0246 3400          retlw   0
3348                    ; line_number = 95
3349                    ; return _eusart_115200_high done
3350                    ; line_number = 97
3351                    ; return _eusart_203400_high start
3352                    ; line_number = 97
3353 0247 3400          retlw   0
3354                    ; line_number = 97
3355                    ; return _eusart_203400_high done
3356            
3357   0248 :   baud_rate_high__10:
3358                    ; switch end:(data:00=>00 code:XX=>XX)
3359                    ; line_number = 81
3360                    ;  switch baud_rate_index done
3361                    ; delay after procedure statements=non-uniform
3362                    ; Exiting procedure with no return(s); fail with infinite loop
3363   0248 :   baud_rate_high__11:
3364 0248 2a48          goto    baud_rate_high__11
3365            
3366            
3367            
3368            
3369                    ; Configuration bits
3370                    ; fill = 0x3000
3371                    ; fcmen = off (0x0)
3372                    ; ieso = off (0x0)
3373                    ; boden = off (0x0)
3374                    ; cpd = off (0x80)
3375                    ; cp = off (0x40)
3376                    ; mclre = off (0x20)
3377                    ; pwrte = off (0x10)
3378                    ; wdte = off (0x0)
3379                    ; fosc = int_no_clk (0x4)
3380                    ; 12532 = 0x30f4
3381   30f4 =           __config 12532
3382                    ; Define start addresses for data regions
3383                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
3384                    ; Region="globals___0" Address=32" Size=80 Bytes=52 Bits=3 Available=27
3385                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
3386                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
3387                    ; Region="globals___3" Address=416" Size=80 Bytes=0 Bits=0 Available=80
3388                    end
