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