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