1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 2047
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    00000110 = globals___2 equ 272
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                      ; # This is a boot loader that resides in high memory for
35                      ; # loading programs into low memory.
36              
37                      ; buffer = 'picbrain11'
38                      ; line_number = 9
39                      ; library _pic16f876 entered
40              
41                      ; # Copyright (c) 2004 by Wayne C. Gramlich
42                      ; # All rights reserved.
43              
44                      ; buffer = '_pic16f876'
45                      ; line_number = 6
46                      ; processor pic16f876
47                      ; line_number = 7
48                      ; configure_address 0x2007
49                      ; line_number = 8
50                      ;  configure_fill 0x0400
51                      ; line_number = 9
52                      ;  configure_option cp: off = 0x3030
53                      ; line_number = 10
54                      ;  configure_option cp: quarter = 0x2020
55                      ; line_number = 11
56                      ;  configure_option cp: half = 0x1010
57                      ; line_number = 12
58                      ;  configure_option cp: on = 0x0000
59                      ; line_number = 13
60                      ;  configure_option debug: on = 0x000
61                      ; line_number = 14
62                      ;  configure_option debug: off = 0x800
63                      ; line_number = 15
64                      ;  configure_option wrt: on = 0x200
65                      ; line_number = 16
66                      ;  configure_option wrt: off = 0x000
67                      ; line_number = 17
68                      ;  configure_option cpd: on = 0x000
69                      ; line_number = 18
70                      ;  configure_option cpd: off = 0x100
71                      ; line_number = 19
72                      ;  configure_option lvp: on = 0x80
73                      ; line_number = 20
74                      ;  configure_option lvp: off = 0x00
75                      ; line_number = 21
76                      ;  configure_option boden: on = 0x40
77                      ; line_number = 22
78                      ;  configure_option boden: off = 0x00
79                      ; line_number = 23
80                      ;  configure_option pwrte: on = 0
81                      ; line_number = 24
82                      ;  configure_option pwrte: off = 8
83                      ; line_number = 25
84                      ;  configure_option wdte: on = 4
85                      ; line_number = 26
86                      ;  configure_option wdte: off = 0
87                      ; line_number = 27
88                      ;  configure_option fosc: rc = 3
89                      ; line_number = 28
90                      ;  configure_option fosc: hs = 2
91                      ; line_number = 29
92                      ;  configure_option fosc: xt = 1
93                      ; line_number = 30
94                      ;  configure_option fosc: lp = 0
95                      ; line_number = 31
96                      ;  code_bank 0x0 : 0x7ff
97                      ; line_number = 32
98                      ;  code_bank 0x800 : 0xfff
99                      ; line_number = 33
100                     ;  code_bank 0x1000 : 0x17ff
101                     ; line_number = 34
102                     ;  code_bank 0x1800 : 0x1fff
103                     ; line_number = 35
104                     ;  data_bank 0x0 : 0x7f
105                     ; line_number = 36
106                     ;  data_bank 0x80 : 0xff
107                     ; line_number = 37
108                     ;  data_bank 0x100 : 0x17f
109                     ; line_number = 38
110                     ;  data_bank 0x180 : 0x1ff
111                     ; line_number = 39
112                     ;  global_region 0x20 : 0x6f
113                     ; line_number = 40
114                     ;  global_region 0xa0 : 0xef
115                     ; line_number = 41
116                     ;  global_region 0x110 : 0x16f
117                     ; line_number = 42
118                     ;  global_region 0x1a0 : 0x1ff
119                     ; line_number = 43
120                     ;  shared_region 0x70 : 0x7f
121                     ; line_number = 44
122                     ;  interrupts_possible
123                     ; line_number = 45
124                     ;  packages pdip = 28
125                     ; line_number = 46
126                     ;  pin mclr, vpp, thv, mclr_unused
127                     ; line_number = 47
128                     ; pin_bindings pdip = 1
129                     ; line_number = 48
130                     ; pin ra0_in, ra0_out, an0, ra0_unused
131                     ; line_number = 49
132                     ; pin_bindings pdip = 2
133                     ; line_number = 50
134                     ;  bind_to _porta@0
135                     ; line_number = 51
136                     ;  or_if ra0_in _trisa 1
137                     ; line_number = 52
138                     ;  or_if ra0_in _adcon1 7
139                     ; line_number = 53
140                     ;  or_if ra0_in _adcon0 0
141                     ; line_number = 54
142                     ;  or_if ra0_out _trisa 0
143                     ; line_number = 55
144                     ;  or_if ra0_out _adcon1 7
145                     ; line_number = 56
146                     ;  or_if ra0_out _adcon0 0
147                     ; line_number = 57
148                     ; pin ra1_in, ra1_out, an1, ra1_unused
149                     ; line_number = 58
150                     ; pin_bindings pdip = 3
151                     ; line_number = 59
152                     ;  bind_to _porta@1
153                     ; line_number = 60
154                     ;  or_if ra1_in _trisa 2
155                     ; line_number = 61
156                     ;  or_if ra1_in _adcon1 7
157                     ; line_number = 62
158                     ;  or_if ra1_in _adcon0 0
159                     ; line_number = 63
160                     ;  or_if ra1_out _trisa 0
161                     ; line_number = 64
162                     ;  or_if ra1_out _adcon1 7
163                     ; line_number = 65
164                     ;  or_if ra1_out _adcon0 0
165                     ; line_number = 66
166                     ; pin ra2_in, ra2_out, an2, vref_minus, ra2_unused
167                     ; line_number = 67
168                     ; pin_bindings pdip = 4
169                     ; line_number = 68
170                     ;  bind_to _porta@2
171                     ; line_number = 69
172                     ;  or_if ra2_in _trisa 4
173                     ; line_number = 70
174                     ;  or_if ra2_in _adcon1 7
175                     ; line_number = 71
176                     ;  or_if ra2_in _adcon0 0
177                     ; line_number = 72
178                     ;  or_if ra2_out _trisa 0
179                     ; line_number = 73
180                     ;  or_if ra2_out _adcon1 7
181                     ; line_number = 74
182                     ;  or_if ra2_out _adcon0 0
183                     ; line_number = 75
184                     ; pin ra3_in, ra3_out, an3, vrev_plus, ra3_unused
185                     ; line_number = 76
186                     ; pin_bindings pdip = 5
187                     ; line_number = 77
188                     ;  bind_to _porta@3
189                     ; line_number = 78
190                     ;  or_if ra3_in _trisa 8
191                     ; line_number = 79
192                     ;  or_if ra3_in _adcon1 7
193                     ; line_number = 80
194                     ;  or_if ra3_in _adcon0 0
195                     ; line_number = 81
196                     ;  or_if ra3_out _trisa 0
197                     ; line_number = 82
198                     ;  or_if ra3_out _adcon1 7
199                     ; line_number = 83
200                     ;  or_if ra3_out _adcon0 0
201                     ; line_number = 84
202                     ; pin ra4_in, ra4_out, t0cki, ra4_unused
203                     ; line_number = 85
204                     ; pin_bindings pdip = 6
205                     ; line_number = 86
206                     ;  bind_to _porta@4
207                     ; line_number = 87
208                     ;  or_if ra4_in _trisa 16
209                     ; line_number = 88
210                     ;  or_if ra4_in _adcon1 7
211                     ; line_number = 89
212                     ;  or_if ra4_in _adcon0 0
213                     ; line_number = 90
214                     ;  or_if ra4_out _trisa 0
215                     ; line_number = 91
216                     ;  or_if ra4_out _adcon1 7
217                     ; line_number = 92
218                     ;  or_if ra4_out _adcon0 0
219                     ; line_number = 93
220                     ; pin ra5_in, ra5_out, an4, ra5_unused
221                     ; line_number = 94
222                     ; pin_bindings pdip = 7
223                     ; line_number = 95
224                     ;  bind_to _porta@5
225                     ; line_number = 96
226                     ;  or_if ra5_in _trisa 32
227                     ; line_number = 97
228                     ;  or_if ra5_in _adcon1 7
229                     ; line_number = 98
230                     ;  or_if ra5_in _adcon1 0
231                     ; line_number = 99
232                     ;  or_if ra5_out _trisa 0
233                     ; line_number = 100
234                     ;  or_if ra5_out _adcon1 7
235                     ; line_number = 101
236                     ;  or_if ra5_out _adcon0 0
237                     ; line_number = 102
238                     ; pin vss, ground
239                     ; line_number = 103
240                     ; pin_bindings pdip = 8
241                     ; line_number = 104
242                     ; pin osc1, clkin
243                     ; line_number = 105
244                     ; pin_bindings pdip = 9
245                     ; line_number = 106
246                     ; pin osc2, clkout
247                     ; line_number = 107
248                     ; pin_bindings pdip = 10
249                     ; line_number = 108
250                     ; pin rc0_in, rc0_out, t1oso, t1cki, rc0_unused
251                     ; line_number = 109
252                     ; pin_bindings pdip = 11
253                     ; line_number = 110
254                     ;  bind_to _portc@0
255                     ; line_number = 111
256                     ;  or_if rc0_in _trisc 1
257                     ; line_number = 112
258                     ;  or_if rc0_in _adcon1 7
259                     ; line_number = 113
260                     ;  or_if rc0_in _adcon0 0
261                     ; line_number = 114
262                     ;  or_if rc0_out _trisc 0
263                     ; line_number = 115
264                     ;  or_if rc0_out _adcon1 7
265                     ; line_number = 116
266                     ;  or_if rc0_out _adcon0 0
267                     ; line_number = 117
268                     ; pin rc1_in, rc1_out, t1osi, ccp2, rc1_unused
269                     ; line_number = 118
270                     ; pin_bindings pdip = 12
271                     ; line_number = 119
272                     ;  bind_to _portc@1
273                     ; line_number = 120
274                     ;  or_if rc1_in _trisc 2
275                     ; line_number = 121
276                     ;  or_if rc1_in _adcon1 7
277                     ; line_number = 122
278                     ;  or_if rc1_in _adcon0 0
279                     ; line_number = 123
280                     ;  or_if rc1_out _trisc 0
281                     ; line_number = 124
282                     ;  or_if rc1_out _adcon1 7
283                     ; line_number = 125
284                     ;  or_if rc1_out _adcon0 0
285                     ; line_number = 126
286                     ; pin rc2_in, rc2_out, ccp1, rc2_unused
287                     ; line_number = 127
288                     ; pin_bindings pdip = 13
289                     ; line_number = 128
290                     ;  bind_to _portc@2
291                     ; line_number = 129
292                     ;  or_if rc2_in _trisc 4
293                     ; line_number = 130
294                     ;  or_if rc2_in _adcon1 7
295                     ; line_number = 131
296                     ;  or_if rc2_in _adcon0 0
297                     ; line_number = 132
298                     ;  or_if rc2_out _trisc 0
299                     ; line_number = 133
300                     ;  or_if rc2_out _adcon1 7
301                     ; line_number = 134
302                     ;  or_if rc2_out _adcon0 0
303                     ; line_number = 135
304                     ; pin rc3_in, rc3_out, sck, scl, rc3_unused
305                     ; line_number = 136
306                     ; pin_bindings pdip = 14
307                     ; line_number = 137
308                     ;  bind_to _portc@3
309                     ; line_number = 138
310                     ;  or_if rc3_in _trisc 8
311                     ; line_number = 139
312                     ;  or_if rc3_in _adcon1 7
313                     ; line_number = 140
314                     ;  or_if rc3_in _adcon0 0
315                     ; line_number = 141
316                     ;  or_if rc3_out _trisc 0
317                     ; line_number = 142
318                     ;  or_if rc3_out _adcon1 7
319                     ; line_number = 143
320                     ;  or_if rc3_out _adcon0 0
321                     ; line_number = 144
322                     ; pin rc4_in, rc4_out, sdi, sda, rc4_unused
323                     ; line_number = 145
324                     ; pin_bindings pdip = 15
325                     ; line_number = 146
326                     ;  bind_to _portc@4
327                     ; line_number = 147
328                     ;  or_if rc4_in _trisc 16
329                     ; line_number = 148
330                     ;  or_if rc4_in _adcon1 7
331                     ; line_number = 149
332                     ;  or_if rc4_in _adcon0 0
333                     ; line_number = 150
334                     ;  or_if rc4_out _trisc 0
335                     ; line_number = 151
336                     ;  or_if rc4_out _adcon1 7
337                     ; line_number = 152
338                     ;  or_if rc4_out _adcon0 0
339                     ; line_number = 153
340                     ; pin rc5_in, rc5_out, sdo, rc5_unused
341                     ; line_number = 154
342                     ; pin_bindings pdip = 16
343                     ; line_number = 155
344                     ;  bind_to _portc@5
345                     ; line_number = 156
346                     ;  or_if rc5_in _trisc 32
347                     ; line_number = 157
348                     ;  or_if rc5_in _adcon1 7
349                     ; line_number = 158
350                     ;  or_if rc5_in _adcon0 0
351                     ; line_number = 159
352                     ;  or_if rc5_out _trisc 0
353                     ; line_number = 160
354                     ;  or_if rc5_out _adcon1 7
355                     ; line_number = 161
356                     ;  or_if rc5_out _adcon0 0
357                     ; line_number = 162
358                     ; pin rc6_in, rc6_out, tx, ck, rc6_unused
359                     ; line_number = 163
360                     ; pin_bindings pdip = 17
361                     ; line_number = 164
362                     ;  bind_to _portc@6
363                     ; line_number = 165
364                     ;  or_if rc6_in _trisc 64
365                     ; line_number = 166
366                     ;  or_if rc6_in _adcon1 7
367                     ; line_number = 167
368                     ;  or_if rc6_in _adcon0 0
369                     ; line_number = 168
370                     ;  or_if rc6_out _trisc 0
371                     ; line_number = 169
372                     ;  or_if rc6_out _adcon1 7
373                     ; line_number = 170
374                     ;  or_if rc6_out _adcon0 0
375                     ; line_number = 171
376                     ;  or_if tx _trisc 0
377                     ; line_number = 172
378                     ;  or_if tx _adcon1 7
379                     ; line_number = 173
380                     ;  or_if tx _adcon0 0
381                     ; line_number = 174
382                     ; pin rc7_in, rc7_out, rx, dt, rc7_unused
383                     ; line_number = 175
384                     ; pin_bindings pdip = 18
385                     ; line_number = 176
386                     ;  bind_to _portc@7
387                     ; line_number = 177
388                     ;  or_if rc7_in _trisc 128
389                     ; line_number = 178
390                     ;  or_if rc7_in _adcon1 7
391                     ; line_number = 179
392                     ;  or_if rc7_in _adcon0 0
393                     ; line_number = 180
394                     ;  or_if rx _trisc 128
395                     ; line_number = 181
396                     ;  or_if rx _adcon1 7
397                     ; line_number = 182
398                     ;  or_if rx _adcon0 0
399                     ; line_number = 183
400                     ;  or_if rc7_out _trisc 0
401                     ; line_number = 184
402                     ;  or_if rc7_out _adcon1 7
403                     ; line_number = 185
404                     ;  or_if rc7_out _adcon0 0
405                     ; line_number = 186
406                     ; pin vss2, ground2
407                     ; line_number = 187
408                     ; pin_bindings pdip = 19
409                     ; line_number = 188
410                     ; pin vdd, power_supply
411                     ; line_number = 189
412                     ; pin_bindings pdip = 20
413                     ; line_number = 190
414                     ; pin rb0_in, rb0_out, int, rb0_unused
415                     ; line_number = 191
416                     ; pin_bindings pdip = 21
417                     ; line_number = 192
418                     ;  bind_to _portb@0
419                     ; line_number = 193
420                     ;  or_if rb0_in _trisb 1
421                     ; line_number = 194
422                     ;  or_if rb0_in _adcon1 7
423                     ; line_number = 195
424                     ;  or_if rb0_in _adcon0 0
425                     ; line_number = 196
426                     ;  or_if rb0_out _trisb 0
427                     ; line_number = 197
428                     ;  or_if rb0_out _adcon1 7
429                     ; line_number = 198
430                     ;  or_if rb0_out _adcon0 0
431                     ; line_number = 199
432                     ; pin rb1_in, rb1_out, rb1_unused
433                     ; line_number = 200
434                     ; pin_bindings pdip = 22
435                     ; line_number = 201
436                     ;  bind_to _portb@1
437                     ; line_number = 202
438                     ;  or_if rb1_in _trisb 2
439                     ; line_number = 203
440                     ;  or_if rb1_in _adcon1 7
441                     ; line_number = 204
442                     ;  or_if rb1_in _adcon0 0
443                     ; line_number = 205
444                     ;  or_if rb1_out _trisb 0
445                     ; line_number = 206
446                     ;  or_if rb1_out _adcon1 7
447                     ; line_number = 207
448                     ;  or_if rb1_out _adcon0 0
449                     ; line_number = 208
450                     ; pin rb2_in, rb2_out, rb2_unused
451                     ; line_number = 209
452                     ; pin_bindings pdip = 23
453                     ; line_number = 210
454                     ;  bind_to _portb@2
455                     ; line_number = 211
456                     ;  or_if rb2_in _trisb 4
457                     ; line_number = 212
458                     ;  or_if rb2_in _adcon1 7
459                     ; line_number = 213
460                     ;  or_if rb2_in _adcon0 0
461                     ; line_number = 214
462                     ;  or_if rb2_out _trisb 0
463                     ; line_number = 215
464                     ;  or_if rb2_out _adcon1 7
465                     ; line_number = 216
466                     ;  or_if rb2_out _adcon0 0
467                     ; line_number = 217
468                     ; pin rb3_in, rb3_out, pgm, rb3_unused
469                     ; line_number = 218
470                     ; pin_bindings pdip = 24
471                     ; line_number = 219
472                     ;  bind_to _portb@3
473                     ; line_number = 220
474                     ;  or_if rb3_in _trisb 8
475                     ; line_number = 221
476                     ;  or_if rb3_in _adcon1 7
477                     ; line_number = 222
478                     ;  or_if rb3_out _trisb 0
479                     ; line_number = 223
480                     ;  or_if rb3_out _adcon1 7
481                     ; line_number = 224
482                     ; pin rb4_in, rb4_out, rb4_unused
483                     ; line_number = 225
484                     ; pin_bindings pdip = 25
485                     ; line_number = 226
486                     ;  bind_to _portb@4
487                     ; line_number = 227
488                     ;  or_if rb4_in _trisb 16
489                     ; line_number = 228
490                     ;  or_if rb4_in _adcon1 7
491                     ; line_number = 229
492                     ;  or_if rb4_in _adcon0 0
493                     ; line_number = 230
494                     ;  or_if rb4_out _trisb 0
495                     ; line_number = 231
496                     ;  or_if rb4_out _adcon1 7
497                     ; line_number = 232
498                     ;  or_if rb4_out _adcon0 0
499                     ; line_number = 233
500                     ; pin rb5_in, rb5_out, rb5_unused
501                     ; line_number = 234
502                     ; pin_bindings pdip = 26
503                     ; line_number = 235
504                     ;  bind_to _portb@5
505                     ; line_number = 236
506                     ;  or_if rb5_in _trisb 32
507                     ; line_number = 237
508                     ;  or_if rb5_in _adcon1 7
509                     ; line_number = 238
510                     ;  or_if rb5_in _adcon0 0
511                     ; line_number = 239
512                     ;  or_if rb5_out _trisb 0
513                     ; line_number = 240
514                     ;  or_if rb5_out _adcon1 7
515                     ; line_number = 241
516                     ;  or_if rb5_out _adcon0 0
517                     ; line_number = 242
518                     ; pin rb6_in, rb6_out, pgc, rb6_unused
519                     ; line_number = 243
520                     ; pin_bindings pdip = 27
521                     ; line_number = 244
522                     ;  bind_to _portb@6
523                     ; line_number = 245
524                     ;  or_if rb6_in _trisb 64
525                     ; line_number = 246
526                     ;  or_if rb6_in _adcon1 7
527                     ; line_number = 247
528                     ;  or_if rb6_in _adcon0 0
529                     ; line_number = 248
530                     ;  or_if rb6_out _trisb 0
531                     ; line_number = 249
532                     ;  or_if rb6_out _adcon1 7
533                     ; line_number = 250
534                     ;  or_if rb6_out _adcon0 0
535                     ; line_number = 251
536                     ; pin rb7_in, rb7_out, pgd, rb7_unused
537                     ; line_number = 252
538                     ; pin_bindings pdip = 28
539                     ; line_number = 253
540                     ;  bind_to _portb@7
541                     ; line_number = 254
542                     ;  or_if rb7_in _trisb 128
543                     ; line_number = 255
544                     ;  or_if rb7_in _adcon1 7
545                     ; line_number = 256
546                     ;  or_if rb7_in _adcon0 0
547                     ; line_number = 257
548                     ;  or_if rb7_out _trisb 0
549                     ; line_number = 258
550                     ;  or_if rb7_out _adcon1 7
551                     ; line_number = 259
552                     ;  or_if rb7_out _adcon0 0
553             
554             
555                     ; # Register and pin definitions:
556             
557                     ; line_number = 266
558                     ; library _pic16f87x entered
559             
560                     ; # Copyright (c) 2004 by Wayne C. Gramlich
561                     ; # All rights reserved.
562             
563                     ; # Common declarations for PIC16F87x series microcontrollers:
564             
565                     ; # Register and pin definitions:
566             
567                     ; # Bank 0:
568             
569                     ; buffer = '_pic16f87x'
570                     ; line_number = 12
571                     ; register _indf = 
572  00000000 = _indf equ 0
573             
574                     ; line_number = 14
575                     ; register _tmr0 = 
576  00000001 = _tmr0 equ 1
577             
578                     ; line_number = 16
579                     ; register _pcl = 
580  00000002 = _pcl equ 2
581             
582                     ; line_number = 18
583                     ; register _status = 
584  00000003 = _status equ 3
585                     ; line_number = 19
586                     ; bind _irp = _status@7
587  00000003 = _irp___byte equ _status
588  00000007 = _irp___bit equ 7
589                     ; line_number = 20
590                     ; bind _rp1 = _status@6
591  00000003 = _rp1___byte equ _status
592  00000006 = _rp1___bit equ 6
593                     ; line_number = 21
594                     ; bind _rp0 = _status@5
595  00000003 = _rp0___byte equ _status
596  00000005 = _rp0___bit equ 5
597                     ; line_number = 22
598                     ; bind _to = _status@4
599  00000003 = _to___byte equ _status
600  00000004 = _to___bit equ 4
601                     ; line_number = 23
602                     ; bind _pd = _status@3
603  00000003 = _pd___byte equ _status
604  00000003 = _pd___bit equ 3
605                     ; line_number = 24
606                     ; bind _z = _status@2
607  00000003 = _z___byte equ _status
608  00000002 = _z___bit equ 2
609                     ; line_number = 25
610                     ; bind _dc = _status@1
611  00000003 = _dc___byte equ _status
612  00000001 = _dc___bit equ 1
613             
614                     ; line_number = 27
615                     ; register _fsr = 
616  00000004 = _fsr equ 4
617             
618                     ; line_number = 29
619                     ; register _porta = 
620  00000005 = _porta equ 5
621             
622                     ; line_number = 31
623                     ; register _portb = 
624  00000006 = _portb equ 6
625             
626                     ; line_number = 33
627                     ; register _portc = 
628  00000007 = _portc equ 7
629             
630                     ; line_number = 35
631                     ; register _pclath = 
632  0000000a = _pclath equ 10
633             
634                     ; line_number = 37
635                     ; register _intcon = 
636  0000000b = _intcon equ 11
637                     ; line_number = 38
638                     ; bind _gie = _intcon@7
639  0000000b = _gie___byte equ _intcon
640  00000007 = _gie___bit equ 7
641                     ; line_number = 39
642                     ; bind _peie = _intcon@6
643  0000000b = _peie___byte equ _intcon
644  00000006 = _peie___bit equ 6
645                     ; line_number = 40
646                     ; bind _t0ie = _intcon@5
647  0000000b = _t0ie___byte equ _intcon
648  00000005 = _t0ie___bit equ 5
649                     ; line_number = 41
650                     ; bind _inte = _intcon@4
651  0000000b = _inte___byte equ _intcon
652  00000004 = _inte___bit equ 4
653                     ; line_number = 42
654                     ; bind _rbie = _intcon@3
655  0000000b = _rbie___byte equ _intcon
656  00000003 = _rbie___bit equ 3
657                     ; line_number = 43
658                     ; bind _t0if = _intcon@2
659  0000000b = _t0if___byte equ _intcon
660  00000002 = _t0if___bit equ 2
661                     ; line_number = 44
662                     ; bind _intf = _intcon@1
663  0000000b = _intf___byte equ _intcon
664  00000001 = _intf___bit equ 1
665                     ; line_number = 45
666                     ; bind _rbf = _intcon@0
667  0000000b = _rbf___byte equ _intcon
668  00000000 = _rbf___bit equ 0
669             
670                     ; line_number = 47
671                     ; register _pir1 = 
672  0000000c = _pir1 equ 12
673                     ; line_number = 48
674                     ; bind _pspif = _pir1@7
675  0000000c = _pspif___byte equ _pir1
676  00000007 = _pspif___bit equ 7
677                     ; line_number = 49
678                     ; bind _adif = _pir1@6
679  0000000c = _adif___byte equ _pir1
680  00000006 = _adif___bit equ 6
681                     ; line_number = 50
682                     ; bind _rcif = _pir1@5
683  0000000c = _rcif___byte equ _pir1
684  00000005 = _rcif___bit equ 5
685                     ; line_number = 51
686                     ; bind _txif = _pir1@4
687  0000000c = _txif___byte equ _pir1
688  00000004 = _txif___bit equ 4
689                     ; line_number = 52
690                     ; bind _sspif = _pir1@3
691  0000000c = _sspif___byte equ _pir1
692  00000003 = _sspif___bit equ 3
693                     ; line_number = 53
694                     ; bind _ccpif = _pir1@2
695  0000000c = _ccpif___byte equ _pir1
696  00000002 = _ccpif___bit equ 2
697                     ; line_number = 54
698                     ; bind _tmr2if = _pir1@1
699  0000000c = _tmr2if___byte equ _pir1
700  00000001 = _tmr2if___bit equ 1
701                     ; line_number = 55
702                     ; bind _tmr1if = _pir1@0
703  0000000c = _tmr1if___byte equ _pir1
704  00000000 = _tmr1if___bit equ 0
705             
706                     ; line_number = 57
707                     ; register _pir2 = 
708  0000000d = _pir2 equ 13
709                     ; line_number = 58
710                     ; bind _eeif = _pir2@4
711  0000000d = _eeif___byte equ _pir2
712  00000004 = _eeif___bit equ 4
713                     ; line_number = 59
714                     ; bind _bclif = _pir2@3
715  0000000d = _bclif___byte equ _pir2
716  00000003 = _bclif___bit equ 3
717                     ; line_number = 60
718                     ; bind _ccp2if = _pir2@0
719  0000000d = _ccp2if___byte equ _pir2
720  00000000 = _ccp2if___bit equ 0
721             
722                     ; line_number = 62
723                     ; register _tmr1l = 
724  0000000e = _tmr1l equ 14
725             
726                     ; line_number = 64
727                     ; register _tmr1h = 
728  0000000f = _tmr1h equ 15
729             
730                     ; line_number = 66
731                     ; register _t1con = 
732  00000010 = _t1con equ 16
733                     ; line_number = 67
734                     ; bind _t1ckps1 = _t1con@5
735  00000010 = _t1ckps1___byte equ _t1con
736  00000005 = _t1ckps1___bit equ 5
737                     ; line_number = 68
738                     ; bind _t1ckps0 = _t1con@4
739  00000010 = _t1ckps0___byte equ _t1con
740  00000004 = _t1ckps0___bit equ 4
741                     ; line_number = 69
742                     ; bind _t1oscen = _t1con@3
743  00000010 = _t1oscen___byte equ _t1con
744  00000003 = _t1oscen___bit equ 3
745                     ; line_number = 70
746                     ; bind _t1sync = _t1con@2
747  00000010 = _t1sync___byte equ _t1con
748  00000002 = _t1sync___bit equ 2
749                     ; line_number = 71
750                     ; bind _tmr1cs = _t1con@1
751  00000010 = _tmr1cs___byte equ _t1con
752  00000001 = _tmr1cs___bit equ 1
753                     ; line_number = 72
754                     ; bind _tmr1on = _t1con@0
755  00000010 = _tmr1on___byte equ _t1con
756  00000000 = _tmr1on___bit equ 0
757             
758                     ; line_number = 74
759                     ; register _tmr2 = 
760  00000011 = _tmr2 equ 17
761             
762                     ; line_number = 76
763                     ; register _t2con = 
764  00000012 = _t2con equ 18
765                     ; line_number = 77
766                     ; bind _toutps3 = _t2con@6
767  00000012 = _toutps3___byte equ _t2con
768  00000006 = _toutps3___bit equ 6
769                     ; line_number = 78
770                     ; bind _toutps2 = _t2con@5
771  00000012 = _toutps2___byte equ _t2con
772  00000005 = _toutps2___bit equ 5
773                     ; line_number = 79
774                     ; bind _toutps1 = _t2con@4
775  00000012 = _toutps1___byte equ _t2con
776  00000004 = _toutps1___bit equ 4
777                     ; line_number = 80
778                     ; bind _toutps0 = _t2con@3
779  00000012 = _toutps0___byte equ _t2con
780  00000003 = _toutps0___bit equ 3
781                     ; line_number = 81
782                     ; bind _tmr2on = _t2con@2
783  00000012 = _tmr2on___byte equ _t2con
784  00000002 = _tmr2on___bit equ 2
785                     ; line_number = 82
786                     ; bind _t2ckps1 = _t2con@1
787  00000012 = _t2ckps1___byte equ _t2con
788  00000001 = _t2ckps1___bit equ 1
789                     ; line_number = 83
790                     ; bind _t2ckps0 = _t2con@0
791  00000012 = _t2ckps0___byte equ _t2con
792  00000000 = _t2ckps0___bit equ 0
793             
794                     ; line_number = 85
795                     ; register _sspbuf = 
796  00000013 = _sspbuf equ 19
797             
798                     ; line_number = 87
799                     ; register _sspcon = 
800  00000014 = _sspcon equ 20
801                     ; line_number = 88
802                     ; bind _wcol = _sspcon@7
803  00000014 = _wcol___byte equ _sspcon
804  00000007 = _wcol___bit equ 7
805                     ; line_number = 89
806                     ; bind _sspov = _sspcon@6
807  00000014 = _sspov___byte equ _sspcon
808  00000006 = _sspov___bit equ 6
809                     ; line_number = 90
810                     ; bind _sspen = _sspcon@5
811  00000014 = _sspen___byte equ _sspcon
812  00000005 = _sspen___bit equ 5
813                     ; line_number = 91
814                     ; bind _ckp = _sspcon@4
815  00000014 = _ckp___byte equ _sspcon
816  00000004 = _ckp___bit equ 4
817                     ; line_number = 92
818                     ; bind _sspm3 = _sspcon@3
819  00000014 = _sspm3___byte equ _sspcon
820  00000003 = _sspm3___bit equ 3
821                     ; line_number = 93
822                     ; bind _sspm2 = _sspcon@2
823  00000014 = _sspm2___byte equ _sspcon
824  00000002 = _sspm2___bit equ 2
825                     ; line_number = 94
826                     ; bind _sspm1 = _sspcon@1
827  00000014 = _sspm1___byte equ _sspcon
828  00000001 = _sspm1___bit equ 1
829                     ; line_number = 95
830                     ; bind _sspm0 = _sspcon@0
831  00000014 = _sspm0___byte equ _sspcon
832  00000000 = _sspm0___bit equ 0
833             
834                     ; line_number = 97
835                     ; register _ccpr1l = 
836  00000015 = _ccpr1l equ 21
837             
838                     ; line_number = 99
839                     ; register _ccpr1h = 
840  00000016 = _ccpr1h equ 22
841             
842                     ; line_number = 101
843                     ; register _ccp1con = 
844  00000017 = _ccp1con equ 23
845                     ; line_number = 102
846                     ; bind _ccp1x = _ccp1con@5
847  00000017 = _ccp1x___byte equ _ccp1con
848  00000005 = _ccp1x___bit equ 5
849                     ; line_number = 103
850                     ; bind _ccp1y = _ccp1con@4
851  00000017 = _ccp1y___byte equ _ccp1con
852  00000004 = _ccp1y___bit equ 4
853                     ; line_number = 104
854                     ; bind _ccp1m3 = _ccp1con@3
855  00000017 = _ccp1m3___byte equ _ccp1con
856  00000003 = _ccp1m3___bit equ 3
857                     ; line_number = 105
858                     ; bind _ccp1m2 = _ccp1con@2
859  00000017 = _ccp1m2___byte equ _ccp1con
860  00000002 = _ccp1m2___bit equ 2
861                     ; line_number = 106
862                     ; bind _ccp1m1 = _ccp1con@1
863  00000017 = _ccp1m1___byte equ _ccp1con
864  00000001 = _ccp1m1___bit equ 1
865                     ; line_number = 107
866                     ; bind _ccp1m0 = _ccp1con@0
867  00000017 = _ccp1m0___byte equ _ccp1con
868  00000000 = _ccp1m0___bit equ 0
869             
870                     ; line_number = 109
871                     ; register _rcsta = 
872  00000018 = _rcsta equ 24
873                     ; line_number = 110
874                     ; bind _spen = _rcsta@7
875  00000018 = _spen___byte equ _rcsta
876  00000007 = _spen___bit equ 7
877                     ; line_number = 111
878                     ; bind _rx9 = _rcsta@6
879  00000018 = _rx9___byte equ _rcsta
880  00000006 = _rx9___bit equ 6
881                     ; line_number = 112
882                     ; bind _sren = _rcsta@5
883  00000018 = _sren___byte equ _rcsta
884  00000005 = _sren___bit equ 5
885                     ; line_number = 113
886                     ; bind _cren = _rcsta@4
887  00000018 = _cren___byte equ _rcsta
888  00000004 = _cren___bit equ 4
889                     ; line_number = 114
890                     ; bind _adden = _rcsta@3
891  00000018 = _adden___byte equ _rcsta
892  00000003 = _adden___bit equ 3
893                     ; line_number = 115
894                     ; bind _ferr = _rcsta@2
895  00000018 = _ferr___byte equ _rcsta
896  00000002 = _ferr___bit equ 2
897                     ; line_number = 116
898                     ; bind _oerr = _rcsta@1
899  00000018 = _oerr___byte equ _rcsta
900  00000001 = _oerr___bit equ 1
901                     ; line_number = 117
902                     ; bind _rx9d = _rcsta@0
903  00000018 = _rx9d___byte equ _rcsta
904  00000000 = _rx9d___bit equ 0
905             
906                     ; line_number = 119
907                     ; register _txreg = 
908  00000019 = _txreg equ 25
909             
910                     ; line_number = 121
911                     ; register _rcreg = 
912  0000001a = _rcreg equ 26
913             
914                     ; line_number = 123
915                     ; register _ccpr2l = 
916  0000001b = _ccpr2l equ 27
917             
918                     ; line_number = 125
919                     ; register _ccpr2h = 
920  0000001c = _ccpr2h equ 28
921             
922                     ; line_number = 127
923                     ; register _ccp2con = 
924  0000001d = _ccp2con equ 29
925                     ; line_number = 128
926                     ; bind _ccp2x = _ccp2con@5
927  0000001d = _ccp2x___byte equ _ccp2con
928  00000005 = _ccp2x___bit equ 5
929                     ; line_number = 129
930                     ; bind _ccp2y = _ccp2con@4
931  0000001d = _ccp2y___byte equ _ccp2con
932  00000004 = _ccp2y___bit equ 4
933                     ; line_number = 130
934                     ; bind _ccp2m3 = _ccp2con@3
935  0000001d = _ccp2m3___byte equ _ccp2con
936  00000003 = _ccp2m3___bit equ 3
937                     ; line_number = 131
938                     ; bind _ccp2m2 = _ccp2con@2
939  0000001d = _ccp2m2___byte equ _ccp2con
940  00000002 = _ccp2m2___bit equ 2
941                     ; line_number = 132
942                     ; bind _ccp2m1 = _ccp2con@1
943  0000001d = _ccp2m1___byte equ _ccp2con
944  00000001 = _ccp2m1___bit equ 1
945                     ; line_number = 133
946                     ; bind _ccp2m0 = _ccp2con@0
947  0000001d = _ccp2m0___byte equ _ccp2con
948  00000000 = _ccp2m0___bit equ 0
949             
950                     ; line_number = 135
951                     ; register _adresh = 
952  0000001e = _adresh equ 30
953             
954                     ; line_number = 137
955                     ; register _adcon0 = 
956  0000001f = _adcon0 equ 31
957                     ; line_number = 138
958                     ; bind _adcs1 = _adcon0@7
959  0000001f = _adcs1___byte equ _adcon0
960  00000007 = _adcs1___bit equ 7
961                     ; line_number = 139
962                     ; bind _adcs0 = _adcon0@6
963  0000001f = _adcs0___byte equ _adcon0
964  00000006 = _adcs0___bit equ 6
965                     ; line_number = 140
966                     ; bind _chs2 = _adcon0@5
967  0000001f = _chs2___byte equ _adcon0
968  00000005 = _chs2___bit equ 5
969                     ; line_number = 141
970                     ; bind _chs1 = _adcon0@4
971  0000001f = _chs1___byte equ _adcon0
972  00000004 = _chs1___bit equ 4
973                     ; line_number = 142
974                     ; bind _chs0 = _adcon0@3
975  0000001f = _chs0___byte equ _adcon0
976  00000003 = _chs0___bit equ 3
977                     ; line_number = 143
978                     ; bind _go_done = _adcon0@2
979  0000001f = _go_done___byte equ _adcon0
980  00000002 = _go_done___bit equ 2
981                     ; line_number = 144
982                     ; bind _adon = _adcon0@0
983  0000001f = _adon___byte equ _adcon0
984  00000000 = _adon___bit equ 0
985             
986                     ; # Bank 1:
987             
988                     ; line_number = 148
989                     ; register _option_reg = 
990  00000081 = _option_reg equ 129
991                     ; line_number = 149
992                     ; bind _rbpu = _option_reg@7
993  00000081 = _rbpu___byte equ _option_reg
994  00000007 = _rbpu___bit equ 7
995                     ; line_number = 150
996                     ; bind _intedg = _option_reg@6
997  00000081 = _intedg___byte equ _option_reg
998  00000006 = _intedg___bit equ 6
999                     ; line_number = 151
1000                    ; bind _t0cs = _option_reg@5
1001 00000081 = _t0cs___byte equ _option_reg
1002 00000005 = _t0cs___bit equ 5
1003                    ; line_number = 152
1004                    ; bind _t0se = _option_reg@4
1005 00000081 = _t0se___byte equ _option_reg
1006 00000004 = _t0se___bit equ 4
1007                    ; line_number = 153
1008                    ; bind _psa = _option_reg@3
1009 00000081 = _psa___byte equ _option_reg
1010 00000003 = _psa___bit equ 3
1011                    ; line_number = 154
1012                    ; bind _ps2 = _option_reg@2
1013 00000081 = _ps2___byte equ _option_reg
1014 00000002 = _ps2___bit equ 2
1015                    ; line_number = 155
1016                    ; bind _ps1 = _option_reg@1
1017 00000081 = _ps1___byte equ _option_reg
1018 00000001 = _ps1___bit equ 1
1019                    ; line_number = 156
1020                    ; bind _ps0 = _option_reg@0
1021 00000081 = _ps0___byte equ _option_reg
1022 00000000 = _ps0___bit equ 0
1023            
1024                    ; line_number = 158
1025                    ; register _trisa = 
1026 00000085 = _trisa equ 133
1027            
1028                    ; line_number = 160
1029                    ; register _trisb = 
1030 00000086 = _trisb equ 134
1031            
1032                    ; line_number = 162
1033                    ; register _trisc = 
1034 00000087 = _trisc equ 135
1035            
1036                    ; line_number = 164
1037                    ; register _pie1 = 
1038 0000008c = _pie1 equ 140
1039                    ; line_number = 165
1040                    ; bind _pspie = _pie1@7
1041 0000008c = _pspie___byte equ _pie1
1042 00000007 = _pspie___bit equ 7
1043                    ; line_number = 166
1044                    ; bind _adie = _pie1@6
1045 0000008c = _adie___byte equ _pie1
1046 00000006 = _adie___bit equ 6
1047                    ; line_number = 167
1048                    ; bind _rcie = _pie1@5
1049 0000008c = _rcie___byte equ _pie1
1050 00000005 = _rcie___bit equ 5
1051                    ; line_number = 168
1052                    ; bind _txie = _pie1@4
1053 0000008c = _txie___byte equ _pie1
1054 00000004 = _txie___bit equ 4
1055                    ; line_number = 169
1056                    ; bind _sspie = _pie1@3
1057 0000008c = _sspie___byte equ _pie1
1058 00000003 = _sspie___bit equ 3
1059                    ; line_number = 170
1060                    ; bind _ccp1ie = _pie1@2
1061 0000008c = _ccp1ie___byte equ _pie1
1062 00000002 = _ccp1ie___bit equ 2
1063                    ; line_number = 171
1064                    ; bind _tmr2ie = _pie1@1
1065 0000008c = _tmr2ie___byte equ _pie1
1066 00000001 = _tmr2ie___bit equ 1
1067                    ; line_number = 172
1068                    ; bind _tmr1ie = _pie1@0
1069 0000008c = _tmr1ie___byte equ _pie1
1070 00000000 = _tmr1ie___bit equ 0
1071            
1072                    ; line_number = 174
1073                    ; register _pie2 = 
1074 0000008d = _pie2 equ 141
1075                    ; line_number = 175
1076                    ; bind _eeie = _pie2@4
1077 0000008d = _eeie___byte equ _pie2
1078 00000004 = _eeie___bit equ 4
1079                    ; line_number = 176
1080                    ; bind _bcie = _pie2@3
1081 0000008d = _bcie___byte equ _pie2
1082 00000003 = _bcie___bit equ 3
1083                    ; line_number = 177
1084                    ; bind _ccp2ie = _pie2@0
1085 0000008d = _ccp2ie___byte equ _pie2
1086 00000000 = _ccp2ie___bit equ 0
1087            
1088                    ; line_number = 179
1089                    ; register _pcon = 
1090 0000008e = _pcon equ 142
1091                    ; line_number = 180
1092                    ; bind _por = _pcon@1
1093 0000008e = _por___byte equ _pcon
1094 00000001 = _por___bit equ 1
1095                    ; line_number = 181
1096                    ; bind _bor = _pcon@0
1097 0000008e = _bor___byte equ _pcon
1098 00000000 = _bor___bit equ 0
1099            
1100                    ; line_number = 183
1101                    ; register _sspcon2 = 
1102 00000091 = _sspcon2 equ 145
1103                    ; line_number = 184
1104                    ; bind _gcen = _sspcon2@7
1105 00000091 = _gcen___byte equ _sspcon2
1106 00000007 = _gcen___bit equ 7
1107                    ; line_number = 185
1108                    ; bind _ackstat = _sspcon2@6
1109 00000091 = _ackstat___byte equ _sspcon2
1110 00000006 = _ackstat___bit equ 6
1111                    ; line_number = 186
1112                    ; bind _ackdt = _sspcon2@5
1113 00000091 = _ackdt___byte equ _sspcon2
1114 00000005 = _ackdt___bit equ 5
1115                    ; line_number = 187
1116                    ; bind _acken = _sspcon2@4
1117 00000091 = _acken___byte equ _sspcon2
1118 00000004 = _acken___bit equ 4
1119                    ; line_number = 188
1120                    ; bind _rcen = _sspcon2@3
1121 00000091 = _rcen___byte equ _sspcon2
1122 00000003 = _rcen___bit equ 3
1123                    ; line_number = 189
1124                    ; bind _pen = _sspcon2@2
1125 00000091 = _pen___byte equ _sspcon2
1126 00000002 = _pen___bit equ 2
1127                    ; line_number = 190
1128                    ; bind _rsen = _sspcon2@1
1129 00000091 = _rsen___byte equ _sspcon2
1130 00000001 = _rsen___bit equ 1
1131                    ; line_number = 191
1132                    ; bind _sen = _sspcon2@0
1133 00000091 = _sen___byte equ _sspcon2
1134 00000000 = _sen___bit equ 0
1135            
1136                    ; line_number = 193
1137                    ; register _pr2 = 
1138 00000092 = _pr2 equ 146
1139            
1140                    ; line_number = 195
1141                    ; register _sspadd = 
1142 00000093 = _sspadd equ 147
1143            
1144                    ; line_number = 197
1145                    ; register _sspstat = 
1146 00000094 = _sspstat equ 148
1147                    ; line_number = 198
1148                    ; bind _smp = _sspstat@7
1149 00000094 = _smp___byte equ _sspstat
1150 00000007 = _smp___bit equ 7
1151                    ; line_number = 199
1152                    ; bind _cke = _sspstat@6
1153 00000094 = _cke___byte equ _sspstat
1154 00000006 = _cke___bit equ 6
1155                    ; line_number = 200
1156                    ; bind _da = _sspstat@5
1157 00000094 = _da___byte equ _sspstat
1158 00000005 = _da___bit equ 5
1159                    ; line_number = 201
1160                    ; bind _p = _sspstat@4
1161 00000094 = _p___byte equ _sspstat
1162 00000004 = _p___bit equ 4
1163                    ; line_number = 202
1164                    ; bind _s = _sspstat@3
1165 00000094 = _s___byte equ _sspstat
1166 00000003 = _s___bit equ 3
1167                    ; line_number = 203
1168                    ; bind _rw = _sspstat@2
1169 00000094 = _rw___byte equ _sspstat
1170 00000002 = _rw___bit equ 2
1171                    ; line_number = 204
1172                    ; bind _ua = _sspstat@1
1173 00000094 = _ua___byte equ _sspstat
1174 00000001 = _ua___bit equ 1
1175                    ; line_number = 205
1176                    ; bind _bf = _sspstat@0
1177 00000094 = _bf___byte equ _sspstat
1178 00000000 = _bf___bit equ 0
1179            
1180                    ; line_number = 207
1181                    ; register _txsta = 
1182 00000098 = _txsta equ 152
1183                    ; line_number = 208
1184                    ; bind _csrc = _txsta@7
1185 00000098 = _csrc___byte equ _txsta
1186 00000007 = _csrc___bit equ 7
1187                    ; line_number = 209
1188                    ; bind _tx9 = _txsta@6
1189 00000098 = _tx9___byte equ _txsta
1190 00000006 = _tx9___bit equ 6
1191                    ; line_number = 210
1192                    ; bind _txen = _txsta@5
1193 00000098 = _txen___byte equ _txsta
1194 00000005 = _txen___bit equ 5
1195                    ; line_number = 211
1196                    ; bind _sync = _txsta@4
1197 00000098 = _sync___byte equ _txsta
1198 00000004 = _sync___bit equ 4
1199                    ; line_number = 212
1200                    ; bind _brgh = _txsta@2
1201 00000098 = _brgh___byte equ _txsta
1202 00000002 = _brgh___bit equ 2
1203                    ; line_number = 213
1204                    ; bind _trmt = _txsta@1
1205 00000098 = _trmt___byte equ _txsta
1206 00000001 = _trmt___bit equ 1
1207                    ; line_number = 214
1208                    ; bind _tx9d = _txsta@0
1209 00000098 = _tx9d___byte equ _txsta
1210 00000000 = _tx9d___bit equ 0
1211            
1212                    ; line_number = 216
1213                    ; register _spbrg = 
1214 00000099 = _spbrg equ 153
1215            
1216                    ; line_number = 218
1217                    ; register _adresl = 
1218 0000009e = _adresl equ 158
1219            
1220                    ; line_number = 220
1221                    ; register _adcon1 = 
1222 0000009f = _adcon1 equ 159
1223                    ; line_number = 221
1224                    ; bind _adfm = _adcon1@7
1225 0000009f = _adfm___byte equ _adcon1
1226 00000007 = _adfm___bit equ 7
1227                    ; line_number = 222
1228                    ; bind _pcfg3 = _adcon1@3
1229 0000009f = _pcfg3___byte equ _adcon1
1230 00000003 = _pcfg3___bit equ 3
1231                    ; line_number = 223
1232                    ; bind _pcfg2 = _adcon1@2
1233 0000009f = _pcfg2___byte equ _adcon1
1234 00000002 = _pcfg2___bit equ 2
1235                    ; line_number = 224
1236                    ; bind _pcfg1 = _adcon1@1
1237 0000009f = _pcfg1___byte equ _adcon1
1238 00000001 = _pcfg1___bit equ 1
1239                    ; line_number = 225
1240                    ; bind _pcfg0 = _adcon1@0
1241 0000009f = _pcfg0___byte equ _adcon1
1242 00000000 = _pcfg0___bit equ 0
1243            
1244                    ; # Bank 2:
1245            
1246                    ; line_number = 229
1247                    ; register _eedata = 
1248 0000010c = _eedata equ 268
1249            
1250                    ; line_number = 231
1251                    ; register _eeadr = 
1252 0000010d = _eeadr equ 269
1253            
1254                    ; line_number = 233
1255                    ; register _eedath = 
1256 0000010e = _eedath equ 270
1257            
1258                    ; line_number = 235
1259                    ; register _eeadrh = 
1260 0000010f = _eeadrh equ 271
1261            
1262                    ; # Bank 3:
1263            
1264                    ; line_number = 239
1265                    ; register _eecon1 = 
1266 0000018c = _eecon1 equ 396
1267                    ; line_number = 240
1268                    ; bind _eepgd = _eecon1@7
1269 0000018c = _eepgd___byte equ _eecon1
1270 00000007 = _eepgd___bit equ 7
1271                    ; line_number = 241
1272                    ; bind _wrerr = _eecon1@3
1273 0000018c = _wrerr___byte equ _eecon1
1274 00000003 = _wrerr___bit equ 3
1275                    ; line_number = 242
1276                    ; bind _wren = _eecon1@2
1277 0000018c = _wren___byte equ _eecon1
1278 00000002 = _wren___bit equ 2
1279                    ; line_number = 243
1280                    ; bind _wr = _eecon1@1
1281 0000018c = _wr___byte equ _eecon1
1282 00000001 = _wr___bit equ 1
1283                    ; line_number = 244
1284                    ; bind _rd = _eecon1@0
1285 0000018c = _rd___byte equ _eecon1
1286 00000000 = _rd___bit equ 0
1287            
1288                    ; line_number = 246
1289                    ; register _eecon2 = 
1290 0000018d = _eecon2 equ 397
1291            
1292            
1293                    ; buffer = '_pic16f876'
1294                    ; line_number = 266
1295                    ; library _pic16f87x exited
1296            
1297            
1298                    ; buffer = 'picbrain11'
1299                    ; line_number = 9
1300                    ; library _pic16f876 exited
1301                    ; line_number = 10
1302                    ; library clock20mhz entered
1303                    ; # Copyright (c) 2004 by Wayne C. Gramlich
1304                    ; # All rights reserved.
1305            
1306                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1307                    ; # and {clocks_per_instruction}.
1308            
1309                    ; # Define processor constants:
1310                    ; buffer = 'clock20mhz'
1311                    ; line_number = 9
1312                    ; constant clock_rate = 20000000
1313 01312d00 = clock_rate equ 20000000
1314                    ; line_number = 10
1315                    ; constant clocks_per_instruction = 4
1316 00000004 = clocks_per_instruction equ 4
1317                    ; line_number = 11
1318                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1319 004c4b40 = instruction_rate equ 5000000
1320            
1321            
1322                    ; buffer = 'picbrain11'
1323                    ; line_number = 10
1324                    ; library clock20mhz exited
1325            
1326            
1327                    ; # Port and pin definitions:
1328            
1329                    ; line_number = 16
1330                    ; constant a_reg = 0
1331 00000000 = a_reg equ 0
1332                    ; line_number = 17
1333                    ; constant b_reg = 1
1334 00000001 = b_reg equ 1
1335                    ; line_number = 18
1336                    ; constant c_reg = 2
1337 00000002 = c_reg equ 2
1338            
1339                    ; line_number = 20
1340                    ; constant n1 = 0
1341 00000000 = n1 equ 0
1342                    ; line_number = 21
1343                    ; constant n1_reg = b_reg
1344 00000001 = n1_reg equ 1
1345            
1346                    ; line_number = 23
1347                    ; constant n2 = 1
1348 00000001 = n2 equ 1
1349                    ; line_number = 24
1350                    ; constant n2_reg = a_reg
1351 00000000 = n2_reg equ 0
1352            
1353                    ; line_number = 26
1354                    ; constant n3 = 2
1355 00000002 = n3 equ 2
1356                    ; line_number = 27
1357                    ; constant n3_reg = b_reg
1358 00000001 = n3_reg equ 1
1359            
1360                    ; line_number = 29
1361                    ; constant n4 = 3
1362 00000003 = n4 equ 3
1363                    ; line_number = 30
1364                    ; constant n4_reg = a_reg
1365 00000000 = n4_reg equ 0
1366            
1367                    ; line_number = 32
1368                    ; constant n5 = 4
1369 00000004 = n5 equ 4
1370                    ; line_number = 33
1371                    ; constant n5_reg = b_reg
1372 00000001 = n5_reg equ 1
1373            
1374                    ; line_number = 35
1375                    ; constant n6 = 5
1376 00000005 = n6 equ 5
1377                    ; line_number = 36
1378                    ; constant n6_reg = a_reg
1379 00000000 = n6_reg equ 0
1380            
1381                    ; line_number = 38
1382                    ; constant n7 = 6
1383 00000006 = n7 equ 6
1384                    ; line_number = 39
1385                    ; constant n7_reg = b_reg
1386 00000001 = n7_reg equ 1
1387            
1388                    ; line_number = 41
1389                    ; constant n8 = 7
1390 00000007 = n8 equ 7
1391                    ; line_number = 42
1392                    ; constant n8_reg = c_reg
1393 00000002 = n8_reg equ 2
1394            
1395                    ; line_number = 44
1396                    ; constant n9 = 8
1397 00000008 = n9 equ 8
1398                    ; line_number = 45
1399                    ; constant n9_reg = c_reg
1400 00000002 = n9_reg equ 2
1401            
1402                    ; line_number = 47
1403                    ; constant n10 = 9
1404 00000009 = n10 equ 9
1405                    ; line_number = 48
1406                    ; constant n10_reg = c_reg
1407 00000002 = n10_reg equ 2
1408            
1409                    ; line_number = 50
1410                    ; constant n11 = 10
1411 0000000a = n11 equ 10
1412                    ; line_number = 51
1413                    ; constant n11_reg = c_reg
1414 00000002 = n11_reg equ 2
1415            
1416                    ; line_number = 53
1417                    ; constant n_none = 11
1418 0000000b = n_none equ 11
1419            
1420                    ; # Port definitions:
1421            
1422                    ; line_number = 57
1423                    ; package pdip
1424                    ; line_number = 58
1425                    ; pin 1 = mclr
1426                    ; line_number = 59
1427                    ;  pin 2 = ra0_in, name = n2in, bit = n2in_bit, mask = n2in_mask
1428 00000005 = n2in___byte equ _porta
1429 00000000 = n2in___bit equ 0
1430 00000000 = n2in_bit equ 0
1431 00000001 = n2in_mask equ 1
1432                    ; line_number = 60
1433                    ;  pin 3 = ra1_out, name = n2out, bit = n2out_bit, mask = n2out_mask
1434 00000005 = n2out___byte equ _porta
1435 00000001 = n2out___bit equ 1
1436 00000001 = n2out_bit equ 1
1437 00000002 = n2out_mask equ 2
1438                    ; line_number = 61
1439                    ;  pin 4 = ra2_in, name = n4in, bit = n4in_bit, mask = n4in_mask
1440 00000005 = n4in___byte equ _porta
1441 00000002 = n4in___bit equ 2
1442 00000002 = n4in_bit equ 2
1443 00000004 = n4in_mask equ 4
1444                    ; line_number = 62
1445                    ;  pin 5 = ra3_out, name = n4out, bit = n4out_bit, mask = n4out_mask
1446 00000005 = n4out___byte equ _porta
1447 00000003 = n4out___bit equ 3
1448 00000003 = n4out_bit equ 3
1449 00000008 = n4out_mask equ 8
1450                    ; line_number = 63
1451                    ;  pin 6 = ra4_in, name = n6in, bit = n6in_bit, mask = n6in_mask
1452 00000005 = n6in___byte equ _porta
1453 00000004 = n6in___bit equ 4
1454 00000004 = n6in_bit equ 4
1455 00000010 = n6in_mask equ 16
1456                    ; line_number = 64
1457                    ;  pin 7 = ra5_out, name = n6out, bit = n6_out_bit, mask = n6out_mask
1458 00000005 = n6out___byte equ _porta
1459 00000005 = n6out___bit equ 5
1460 00000005 = n6_out_bit equ 5
1461 00000020 = n6out_mask equ 32
1462                    ; line_number = 65
1463                    ;  pin 8 = ground
1464                    ; line_number = 66
1465                    ;  pin 9 = osc1
1466                    ; line_number = 67
1467                    ;  pin 10 = osc2
1468                    ; line_number = 68
1469                    ;  pin 11 = rc0_in, name = n9in, bit = n9in_bit, mask = n9in_mask
1470 00000007 = n9in___byte equ _portc
1471 00000000 = n9in___bit equ 0
1472 00000000 = n9in_bit equ 0
1473 00000001 = n9in_mask equ 1
1474                    ; line_number = 69
1475                    ;  pin 12 = rc1_out, name = n9out, bit = n9out_bit, mask = n9out_mask
1476 00000007 = n9out___byte equ _portc
1477 00000001 = n9out___bit equ 1
1478 00000001 = n9out_bit equ 1
1479 00000002 = n9out_mask equ 2
1480                    ; line_number = 70
1481                    ;  pin 13 = rc2_in, name = n8in, bit = n8in_bit, mask = n8in_mask
1482 00000007 = n8in___byte equ _portc
1483 00000002 = n8in___bit equ 2
1484 00000002 = n8in_bit equ 2
1485 00000004 = n8in_mask equ 4
1486                    ; line_number = 71
1487                    ;  pin 14 = rc3_in, name = n10in, bit = n10in_bit, mask = n10in_mask
1488 00000007 = n10in___byte equ _portc
1489 00000003 = n10in___bit equ 3
1490 00000003 = n10in_bit equ 3
1491 00000008 = n10in_mask equ 8
1492                    ; line_number = 72
1493                    ;  pin 15 = rc4_out, name = n10out, bit = n10out_bit, mask = n10out_mask
1494 00000007 = n10out___byte equ _portc
1495 00000004 = n10out___bit equ 4
1496 00000004 = n10out_bit equ 4
1497 00000010 = n10out_mask equ 16
1498                    ; line_number = 73
1499                    ;  pin 16 = rc5_out, name = n8out, bit = n8out_bit, mask = n8out_mask
1500 00000007 = n8out___byte equ _portc
1501 00000005 = n8out___bit equ 5
1502 00000005 = n8out_bit equ 5
1503 00000020 = n8out_mask equ 32
1504                    ; line_number = 74
1505                    ;  pin 17 = rc6_out, name = n11out, bit = n11out_bit, mask = n11out_mask
1506 00000007 = n11out___byte equ _portc
1507 00000006 = n11out___bit equ 6
1508 00000006 = n11out_bit equ 6
1509 00000040 = n11out_mask equ 64
1510                    ; line_number = 75
1511                    ;  pin 18 = rc7_in, name = n11in, bit = n11in_bit, mask = n11in_mask
1512 00000007 = n11in___byte equ _portc
1513 00000007 = n11in___bit equ 7
1514 00000007 = n11in_bit equ 7
1515 00000080 = n11in_mask equ 128
1516                    ; line_number = 76
1517                    ;  pin 19 = ground2
1518                    ; line_number = 77
1519                    ;  pin 20 = power_supply
1520                    ; line_number = 78
1521                    ;  pin 21 = rb0_in, name = n7in, bit = n7in_bit, mask = n7in_mask
1522 00000006 = n7in___byte equ _portb
1523 00000000 = n7in___bit equ 0
1524 00000000 = n7in_bit equ 0
1525 00000001 = n7in_mask equ 1
1526                    ; line_number = 79
1527                    ;  pin 22 = rb1_out, name = n7out, bit = n7_out_bit, mask = n7out_mask
1528 00000006 = n7out___byte equ _portb
1529 00000001 = n7out___bit equ 1
1530 00000001 = n7_out_bit equ 1
1531 00000002 = n7out_mask equ 2
1532                    ; line_number = 80
1533                    ;  pin 23 = rb2_in, name = n5in, bit = n5in_bit, mask = n5in_mask
1534 00000006 = n5in___byte equ _portb
1535 00000002 = n5in___bit equ 2
1536 00000002 = n5in_bit equ 2
1537 00000004 = n5in_mask equ 4
1538                    ; line_number = 81
1539                    ;  pin 24 = rb3_out, name = n5out, bit = n5out_bit, mask = n5out_mask
1540 00000006 = n5out___byte equ _portb
1541 00000003 = n5out___bit equ 3
1542 00000003 = n5out_bit equ 3
1543 00000008 = n5out_mask equ 8
1544                    ; line_number = 82
1545                    ;  pin 25 = rb4_in, name = n3in, bit = n3in_bit, mask = n3in_mask
1546 00000006 = n3in___byte equ _portb
1547 00000004 = n3in___bit equ 4
1548 00000004 = n3in_bit equ 4
1549 00000010 = n3in_mask equ 16
1550                    ; line_number = 83
1551                    ;  pin 26 = rb5_out, name = n3out, bit = n3out_bit, mask = n3out_mask
1552 00000006 = n3out___byte equ _portb
1553 00000005 = n3out___bit equ 5
1554 00000005 = n3out_bit equ 5
1555 00000020 = n3out_mask equ 32
1556                    ; line_number = 84
1557                    ;  pin 27 = rb6_in, name = n1in, bit = n1in_bit, mask = n1in_mask
1558 00000006 = n1in___byte equ _portb
1559 00000006 = n1in___bit equ 6
1560 00000006 = n1in_bit equ 6
1561 00000040 = n1in_mask equ 64
1562                    ; line_number = 85
1563                    ;  pin 28 = rb7_out, name = n1out, bit = n1out_bit, mask = n1out_mask
1564 00000006 = n1out___byte equ _portb
1565 00000007 = n1out___bit equ 7
1566 00000007 = n1out_bit equ 7
1567 00000080 = n1out_mask equ 128
1568            
1569                    ; # The tether is expected on connector N1:
1570                    ; #constant tether_socket = n1
1571                    ; line_number = 89
1572                    ; constant tether_socket = n1
1573 00000000 = tether_socket equ 0
1574            
1575                    ; # Some general constants:
1576                    ; line_number = 92
1577                    ; constant ascii_mask = 0x7f
1578 0000007f = ascii_mask equ 127
1579                    ; line_number = 93
1580                    ; constant tab = 8
1581 00000008 = tab equ 8
1582                    ; line_number = 94
1583                    ; constant line_feed = 10
1584 0000000a = line_feed equ 10
1585                    ; line_number = 95
1586                    ; constant carriage_return = 13
1587 0000000d = carriage_return equ 13
1588                    ; line_number = 96
1589                    ; constant space = 32
1590 00000020 = space equ 32
1591                    ; line_number = 97
1592                    ; constant register_mask = 0x7f
1593 0000007f = register_mask equ 127
1594            
1595                    ; # Stome timing constants:
1596                    ; line_number = 100
1597                    ; constant baud_rate = 2400
1598 00000960 = baud_rate equ 2400
1599                    ; line_number = 101
1600                    ; constant instructions_per_bit = instruction_rate / baud_rate
1601 00000823 = instructions_per_bit equ 2083
1602                    ; line_number = 102
1603                    ; constant delays_per_bit = 3
1604 00000003 = delays_per_bit equ 3
1605                    ; line_number = 103
1606                    ; constant instructions_per_delay = instructions_per_bit / delays_per_bit
1607 000002b6 = instructions_per_delay equ 694
1608                    ; line_number = 104
1609                    ; constant extra_delay_instructions = 8
1610 00000008 = extra_delay_instructions equ 8
1611                    ; line_number = 105
1612                    ; constant extra_bit_instructions = extra_delay_instructions * delays_per_bit
1613 00000018 = extra_bit_instructions equ 24
1614                    ; line_number = 106
1615                    ; constant delay_instructions = instructions_per_delay - extra_delay_instructions
1616 000002ae = delay_instructions equ 686
1617            
1618                    ; # The null pulse that comes back from a clock pulse command is supposed to be
1619                    ; # exactly 9 bits long.  9 bits at 2400 baud is 9/2400 = 3.75mS.  The number
1620                    ; # iterations through the loop is 3.75mS / (number of instructions per iteration.)
1621                    ; line_number = 111
1622                    ; constant nine_bits_instructions = (clock_rate * 9) / (4 * baud_rate)
1623 0000493e = nine_bits_instructions equ 18750
1624                    ; line_number = 112
1625                    ; constant instructions_per_iteration = 13
1626 0000000d = instructions_per_iteration equ 13
1627                    ; line_number = 113
1628                    ; constant iterations_for_nine_bits = nine_bits_instructions / instructions_per_iteration
1629 000005a2 = iterations_for_nine_bits equ 1442
1630                    ; line_number = 114
1631                    ; constant iterations_high = iterations_for_nine_bits / 256
1632 00000005 = iterations_high equ 5
1633                    ; line_number = 115
1634                    ; constant iterations_low = iterations_for_nine_bits - (iterations_high * 256)
1635 000000a2 = iterations_low equ 162
1636            
1637                    ; line_number = 117
1638                    ; origin 0
1639   0000 :           org     0
1640            
1641                    ; line_number = 119
1642                    ; procedure start
1643   0000 :   start:
1644                    ; arguments_none
1645                    ; line_number = 121
1646                    ;  returns_nothing
1647            
1648                    ; # This procedure will transfer control to the boot loader {main}.
1649            
1650                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
1651                    ; line_number = 125
1652                    ;  call main()
1653 0000 158a          bsf     __cb0___byte, __cb0___bit
1654 0001 160a          bsf     __cb1___byte, __cb1___bit
1655 0002 2000          call    main
1656            
1657            
1658                    ; delay after procedure statements=non-uniform
1659                    ; Implied return
1660 0003 118a          bcf     __cb0___byte, __cb0___bit
1661 0004 120a          bcf     __cb1___byte, __cb1___bit
1662 0005 3400          retlw   0
1663            
1664            
1665            
1666            
1667                    ; line_number = 128
1668                    ; constant program_origin = 8
1669 00000008 = program_origin equ 8
1670                    ; line_number = 129
1671                    ; origin program_origin
1672   0008 :           org     8
1673            
1674                    ; line_number = 131
1675                    ; procedure program
1676   0008 :   program:
1677                    ; arguments_none
1678                    ; line_number = 133
1679                    ;  returns_nothing
1680            
1681                    ; # Dummy program that does nothing:
1682            
1683                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
1684                    ; delay after procedure statements=non-uniform
1685                    ; Implied return
1686 0008 3400          retlw   0
1687            
1688            
1689            
1690            
1691                    ; line_number = 138
1692                    ; constant buffer_size = 8
1693 00000008 = buffer_size equ 8
1694                    ; line_number = 139
1695                    ; constant block_size = 4
1696 00000004 = block_size equ 4
1697                    ; line_number = 140
1698                    ; global block_highs[buffer_size] array[byte]
1699 00000110 = block_highs equ globals___2
1700                    ; line_number = 141
1701                    ; global block_lows[buffer_size] array[byte]
1702 00000118 = block_lows equ globals___2+8
1703                    ; line_number = 142
1704                    ; global buffer_highs[buffer_size] array[byte]
1705 00000120 = buffer_highs equ globals___2+16
1706                    ; line_number = 143
1707                    ; global buffer_lows[buffer_size] array[byte]
1708 00000128 = buffer_lows equ globals___2+24
1709            
1710                    ; line_number = 145
1711                    ; constant boot_loader_origin = 0x1800
1712 00001800 = boot_loader_origin equ 6144
1713                    ; line_number = 146
1714                    ; origin boot_loader_origin
1715                    ; Code bank 1; Start address: 2048; End address: 4095
1716   0800 :           org     2048
1717                    ; Code bank 2; Start address: 4096; End address: 6143
1718   1000 :           org     4096
1719                    ; Code bank 3; Start address: 6144; End address: 8191
1720   1800 :           org     6144
1721   1800 :           org     6144
1722            
1723                    ; line_number = 149
1724                    ; register_array bank01[256] = 0
1725 00000000 = bank01 equ 0
1726                    ; line_number = 150
1727                    ; register_array bank23[256] = 0x100
1728 00000100 = bank23 equ 256
1729                    ; line_number = 151
1730                    ; register_array ports[3] = 5
1731 00000005 = ports equ 5
1732            
1733                    ; line_number = 153
1734                    ; constant id_reset = 0xfd
1735 000000fd = id_reset equ 253
1736                    ; line_number = 154
1737                    ; constant id_next = 0xfc
1738 000000fc = id_next equ 252
1739            
1740                    ; # Global variables:
1741            
1742                    ; # In general, I don't like gobal error registers, but for this
1743                    ; # application, I think a global one works best:
1744                    ; line_number = 160
1745                    ; global ok bit
1746 0000006f = ok___byte equ globals___0+79
1747 00000000 = ok___bit equ 0
1748                    ; line_number = 161
1749                    ; global have_carriage_return bit
1750 0000006f = have_carriage_return___byte equ globals___0+79
1751 00000001 = have_carriage_return___bit equ 1
1752            
1753                    ; # I/O registers:
1754                    ; line_number = 164
1755                    ; global in_mask byte
1756 00000020 = in_mask equ globals___0
1757                    ; line_number = 165
1758                    ; global in_out_register byte
1759 00000021 = in_out_register equ globals___0+1
1760                    ; line_number = 166
1761                    ; global out_mask byte
1762 00000022 = out_mask equ globals___0+2
1763                    ; line_number = 167
1764                    ; global receiving bit
1765 0000006f = receiving___byte equ globals___0+79
1766 00000002 = receiving___bit equ 2
1767            
1768                    ; line_number = 169
1769                    ; global sleep_count byte
1770 00000023 = sleep_count equ globals___0+3
1771            
1772                    ; line_number = 171
1773                    ; procedure main
1774   1800 :   main:
1775                    ; Initialize some registers
1776 1800 019f          clrf    _adcon0
1777 1801 3007          movlw   7
1778 1802 1683          bsf     __rp0___byte, __rp0___bit
1779 1803 009f          movwf   _adcon1
1780 1804 3015          movlw   21
1781 1805 0085          movwf   _trisa
1782 1806 3055          movlw   85
1783 1807 0086          movwf   _trisb
1784 1808 308d          movlw   141
1785 1809 0087          movwf   _trisc
1786                    ; arguments_none
1787                    ; line_number = 173
1788                    ;  returns_nothing
1789            
1790                    ; line_number = 175
1791                    ;  local address_high byte
1792 00000024 = main__address_high equ globals___0+4
1793                    ; line_number = 176
1794                    ;  local address_low byte
1795 00000025 = main__address_low equ globals___0+5
1796                    ; line_number = 177
1797                    ;  local block_index byte
1798 00000026 = main__block_index equ globals___0+6
1799                    ; line_number = 178
1800                    ;  local buffer_index byte
1801 00000027 = main__buffer_index equ globals___0+7
1802                    ; line_number = 179
1803                    ;  local buffer_size byte
1804 00000028 = main__buffer_size equ globals___0+8
1805                    ; line_number = 180
1806                    ;  local byte byte
1807 00000029 = main__byte equ globals___0+9
1808                    ; line_number = 181
1809                    ;  local check_sum byte
1810 0000002a = main__check_sum equ globals___0+10
1811                    ; line_number = 182
1812                    ;  local chr byte
1813 0000002b = main__chr equ globals___0+11
1814                    ; line_number = 183
1815                    ;  local command byte
1816 0000002c = main__command equ globals___0+12
1817                    ; line_number = 184
1818                    ;  local count byte
1819 0000002d = main__count equ globals___0+13
1820                    ; line_number = 185
1821                    ;  local errors byte
1822 0000002e = main__errors equ globals___0+14
1823                    ; line_number = 186
1824                    ;  local error_high byte
1825 0000002f = main__error_high equ globals___0+15
1826                    ; line_number = 187
1827                    ;  local error_low byte
1828 00000030 = main__error_low equ globals___0+16
1829                    ; line_number = 188
1830                    ;  local index byte
1831 00000031 = main__index equ globals___0+17
1832                    ; line_number = 189
1833                    ;  local length byte
1834 00000032 = main__length equ globals___0+18
1835                    ; line_number = 190
1836                    ;  local more bit
1837 0000006f = main__more___byte equ globals___0+79
1838 00000003 = main__more___bit equ 3
1839                    ; line_number = 191
1840                    ;  local return1 byte
1841 00000033 = main__return1 equ globals___0+19
1842                    ; line_number = 192
1843                    ;  local return2 byte
1844 00000034 = main__return2 equ globals___0+20
1845                    ; line_number = 193
1846                    ;  local socket byte
1847 00000035 = main__socket equ globals___0+21
1848                    ; line_number = 194
1849                    ;  local type byte
1850 00000036 = main__type equ globals___0+22
1851            
1852                    ; # Turn of general interrupts:
1853                    ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:11=>11)
1854                    ; line_number = 197
1855                    ;  _gie := 0
1856 180a 138b          bcf     _gie___byte, _gie___bit
1857            
1858                    ; # Initilize serial port:
1859            
1860                    ; # Do Baud Rate selection and asynch. serial port enable:
1861                    ; # Prescaler = low:
1862                    ; line_number = 203
1863                    ;  _brgh := 1
1864 180b 1518          bsf     _brgh___byte, _brgh___bit
1865                    ; # Baud rate = 19200 Baud:
1866                    ; line_number = 205
1867                    ;  _spbrg := 64
1868 180c 3040          movlw   64
1869 180d 0099          movwf   _spbrg
1870                    ; # Asynchronous mode:
1871                    ; line_number = 207
1872                    ;  _sync := 0
1873 180e 1218          bcf     _sync___byte, _sync___bit
1874                    ; # Serial port enable:
1875                    ; line_number = 209
1876                    ;  _spen := 1
1877 180f 1283          bcf     __rp0___byte, __rp0___bit
1878 1810 1798          bsf     _spen___byte, _spen___bit
1879                    ; line_number = 210
1880                    ;  _txif := 0
1881 1811 120c          bcf     _txif___byte, _txif___bit
1882            
1883                    ; # Enable the transmitter:
1884                    ; # 8-bit mode:
1885                    ; line_number = 214
1886                    ;  _tx9 := 0
1887 1812 1683          bsf     __rp0___byte, __rp0___bit
1888 1813 1318          bcf     _tx9___byte, _tx9___bit
1889                    ; # Enable transmitter:
1890                    ; line_number = 216
1891                    ;  _txen := 1
1892 1814 1698          bsf     _txen___byte, _txen___bit
1893            
1894                    ; # Enable the receiver:
1895                    ; # 8-bit mode:
1896                    ; line_number = 220
1897                    ;  _rx9 := 0
1898 1815 1283          bcf     __rp0___byte, __rp0___bit
1899 1816 1318          bcf     _rx9___byte, _rx9___bit
1900                    ; # Disable address:
1901                    ; line_number = 222
1902                    ;  _adden := 0
1903 1817 1198          bcf     _adden___byte, _adden___bit
1904                    ; # Continuous receive enable:
1905                    ; line_number = 224
1906                    ;  _cren := 1
1907 1818 1618          bsf     _cren___byte, _cren___bit
1908                    ; # Serial receive enable:
1909                    ; line_number = 226
1910                    ;  _sren := 1
1911 1819 1698          bsf     _sren___byte, _sren___bit
1912            
1913                    ; # Initialize all of the serial outs:
1914                    ; line_number = 229
1915                    ;  n1out := 1
1916 181a 1786          bsf     n1out___byte, n1out___bit
1917                    ; line_number = 230
1918                    ;  n2out := 1
1919 181b 1485          bsf     n2out___byte, n2out___bit
1920                    ; line_number = 231
1921                    ;  n3out := 1
1922 181c 1686          bsf     n3out___byte, n3out___bit
1923                    ; line_number = 232
1924                    ;  n4out := 1
1925 181d 1585          bsf     n4out___byte, n4out___bit
1926                    ; line_number = 233
1927                    ;  n5out := 1
1928 181e 1586          bsf     n5out___byte, n5out___bit
1929                    ; line_number = 234
1930                    ;  n6out := 1
1931 181f 1685          bsf     n6out___byte, n6out___bit
1932                    ; line_number = 235
1933                    ;  n7out := 1
1934 1820 1486          bsf     n7out___byte, n7out___bit
1935                    ; line_number = 236
1936                    ;  n8out := 1
1937 1821 1687          bsf     n8out___byte, n8out___bit
1938                    ; line_number = 237
1939                    ;  n9out := 1
1940 1822 1487          bsf     n9out___byte, n9out___bit
1941                    ; line_number = 238
1942                    ;  n10out := 1
1943 1823 1607          bsf     n10out___byte, n10out___bit
1944            
1945                    ; #call put_character('H')
1946                    ; #call put_character('i')
1947                    ; #call put_character('!')
1948                    ; #call put_character('\r\')
1949                    ; #call put_character('\n\')
1950            
1951                    ; # Print out a hello message:
1952                    ; line_number = 247
1953                    ;  index := 0
1954 1824 3000          movlw   0
1955 1825 00b1          movwf   main__index
1956                    ; line_number = 248
1957                    ;  while index < hello.size start
1958   1826 :   main__1:
1959 1826 300d          movlw   13
1960 1827 0231          subwf   main__index,w
1961                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1962                    ; CASE: true.size=0 && false.size>1
1963                    ; bit_code_emit_helper1: body_code.size=5 true_test=false body_code.delay=0 (non-uniform delay)
1964 1828 1803          btfsc   __c___byte, __c___bit
1965 1829 282f          goto    main__2
1966                    ; line_number = 249
1967                    ; call put_character(hello[index])
1968 182a 0831          movf    main__index,w
1969 182b 24b0          call    hello
1970 182c 244f          call    put_character
1971                    ; line_number = 250
1972                    ;  index := index + 1
1973 182d 0ab1          incf    main__index,f
1974            
1975 182e 2826          goto    main__1
1976   182f :   main__2:
1977                    ; Recombine size1 = 0 || size2 = 0
1978                    ; code.delay=4294967295 back_code.delay=4294967295
1979                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
1980                    ; line_number = 248
1981                    ;  while index < hello.size done
1982                    ; #if seconds_sleep(4)
1983                    ; #	call put_crlf()
1984                    ; #
1985                    ; #	call execute()
1986            
1987                    ; #call put_byte(0x11, n10)
1988                    ; #call put_byte(0xa0, n10)
1989            
1990                    ; line_number = 260
1991                    ;  socket := n1
1992 182f 01b5          clrf    main__socket
1993            
1994                    ; # Command loop:
1995                    ; #call put_crlf()
1996                    ; line_number = 264
1997                    ;  loop_forever start
1998   1830 :   main__3:
1999                    ; # Output a prompt:
2000                    ; line_number = 266
2001                    ;  call put_character('>')
2002 1830 303e          movlw   62
2003 1831 244f          call    put_character
2004            
2005                    ; # Go fetch a command character:
2006                    ; line_number = 269
2007                    ;  have_carriage_return := 0
2008 1832 10ef          bcf     have_carriage_return___byte, have_carriage_return___bit
2009                    ; line_number = 270
2010                    ;  ok := 1
2011 1833 146f          bsf     ok___byte, ok___bit
2012                    ; line_number = 271
2013                    ;  command := get_character()
2014 1834 23a7          call    get_character
2015 1835 00ac          movwf   main__command
2016            
2017                    ; # Dispatch on command character:
2018                    ; line_number = 274
2019                    ;  if command = 'C' start
2020                    ; Left minus Right
2021 1836 30bd          movlw   189
2022 1837 072c          addwf   main__command,w
2023                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2024                    ; CASE: true_code_size > 1 && false_code_size > 1
2025                    ; true_code_size=9 false_code_size=584
2026 1838 1d03          btfss   __z___byte, __z___bit
2027 1839 2844          goto    main__79
2028                    ; line_number = 275
2029                    ; byte := get_hex_byte()
2030 183a 23cd          call    get_hex_byte
2031 183b 00a9          movwf   main__byte
2032                    ; line_number = 276
2033                    ;  if get_carriage_return() start
2034 183c 2397          call    get_carriage_return
2035                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2036                    ; CASE: true_code.size = 0 && false_code.size > 1
2037                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
2038 183d 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2039 183e 2843          goto    main__78
2040                    ; line_number = 277
2041                    ; call clock_adjust(byte, socket)
2042 183f 0829          movf    main__byte,w
2043 1840 00c0          movwf   clock_adjust__adjust
2044 1841 0835          movf    main__socket,w
2045 1842 228f          call    clock_adjust
2046                    ; Recombine size1 = 0 || size2 = 0
2047   1843 :   main__78:
2048                    ; code.delay=4294967295 back_code.delay=4294967295
2049                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2050                    ; line_number = 276
2051                    ;  if get_carriage_return() done
2052 1843 2a8e          goto    main__80
2053   1844 :   main__79:
2054                    ; line_number = 278
2055                    ; Left minus Right
2056 1844 30bb          movlw   187
2057 1845 072c          addwf   main__command,w
2058                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2059                    ; CASE: true_code_size > 1 && false_code_size > 1
2060                    ; true_code_size=34 false_code_size=545
2061 1846 1d03          btfss   __z___byte, __z___bit
2062 1847 286d          goto    main__76
2063                    ; # Examine data memory command:
2064                    ; line_number = 280
2065                    ;  address_high := get_hex_byte()
2066 1848 23cd          call    get_hex_byte
2067 1849 00a4          movwf   main__address_high
2068                    ; line_number = 281
2069                    ;  address_low := get_hex_byte()
2070 184a 23cd          call    get_hex_byte
2071 184b 00a5          movwf   main__address_low
2072                    ; line_number = 282
2073                    ;  count := get_hex_byte()
2074 184c 23cd          call    get_hex_byte
2075 184d 00ad          movwf   main__count
2076                    ; line_number = 283
2077                    ;  if get_carriage_return() start
2078 184e 2397          call    get_carriage_return
2079                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2080                    ; CASE: true_code.size = 0 && false_code.size > 1
2081                    ; bit_code_emit_helper1: body_code.size=25 true_test=true body_code.delay=0 (non-uniform delay)
2082 184f 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2083 1850 286c          goto    main__75
2084                    ; line_number = 284
2085                    ; loop_exactly count start
2086 00000065 = main__71 equ globals___0+69
2087 1851 082d          movf    main__count,w
2088 1852 00e5          movwf   main__71
2089   1853 :   main__72:
2090                    ; line_number = 285
2091                    ; if address_high = 0 start
2092                    ; Left minus Right
2093 1853 0824          movf    main__address_high,w
2094                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2095                    ; CASE: true_code_size > 1 && false_code_size > 1
2096                    ; true_code_size=6 false_code_size=6
2097 1854 1d03          btfss   __z___byte, __z___bit
2098 1855 285d          goto    main__73
2099                    ; line_number = 286
2100                    ; byte := bank01[address_low]
2101 1856 0825          movf    main__address_low,w
2102 1857 3e00          addlw   bank01
2103 1858 0084          movwf   __fsr
2104 1859 1383          bcf     __irp___byte, __irp___bit
2105 185a 0800          movf    __indf,w
2106 185b 00a9          movwf   main__byte
2107 185c 2863          goto    main__74
2108   185d :   main__73:
2109                    ; line_number = 288
2110                    ; byte := bank23[address_low]
2111 185d 0825          movf    main__address_low,w
2112 185e 3e00          addlw   bank23
2113 185f 0084          movwf   __fsr
2114 1860 1783          bsf     __irp___byte, __irp___bit
2115 1861 0800          movf    __indf,w
2116 1862 00a9          movwf   main__byte
2117   1863 :   main__74:
2118                    ; code.delay=4294967295 back_code.delay=4294967295
2119                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
2120                    ; line_number = 285
2121                    ; if address_high = 0 done
2122                    ; line_number = 289
2123                    ; call put_hex_byte(byte)
2124 1863 0829          movf    main__byte,w
2125 1864 245e          call    put_hex_byte
2126                    ; line_number = 290
2127                    ;  call put_space()
2128 1865 2471          call    put_space
2129                    ; line_number = 291
2130                    ;  address_low := address_low + 1
2131 1866 0aa5          incf    main__address_low,f
2132                    ; line_number = 292
2133                    ;  if _z start
2134                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2135                    ; CASE: True.size=1 False.size=0
2136 1867 1903          btfsc   _z___byte, _z___bit
2137                    ; line_number = 293
2138                    ; address_high := address_high + 1
2139 1868 0aa4          incf    main__address_high,f
2140                    ; Recombine size1 = 0 || size2 = 0
2141                    ; code.delay=4294967295 back_code.delay=4294967295
2142                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
2143                    ; line_number = 292
2144                    ;  if _z done
2145                    ; line_number = 284
2146                    ; loop_exactly count wrap-up
2147 1869 0be5          decfsz  main__71,f
2148 186a 2853          goto    main__72
2149                    ; line_number = 284
2150                    ; loop_exactly count done
2151                    ; line_number = 294
2152                    ; call put_crlf()
2153 186b 2459          call    put_crlf
2154                    ; Recombine size1 = 0 || size2 = 0
2155   186c :   main__75:
2156                    ; code.delay=4294967295 back_code.delay=4294967295
2157                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2158                    ; line_number = 283
2159                    ;  if get_carriage_return() done
2160 186c 2a8e          goto    main__77
2161   186d :   main__76:
2162                    ; line_number = 295
2163                    ; Left minus Right
2164 186d 30b9          movlw   185
2165 186e 072c          addwf   main__command,w
2166                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2167                    ; CASE: true.size=1 false.size>1; no GOTO
2168 186f 1d03          btfss   __z___byte, __z___bit
2169 1870 2873          goto    main__69
2170                    ; # Goto command:
2171                    ; line_number = 297
2172                    ;  call goto_command()
2173 1871 2332          call    goto_command
2174 1872 2a8e          goto    main__70
2175   1873 :   main__69:
2176                    ; line_number = 298
2177                    ; Left minus Right
2178 1873 30b7          movlw   183
2179 1874 072c          addwf   main__command,w
2180                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2181                    ; CASE: true_code_size > 1 && false_code_size > 1
2182                    ; true_code_size=17 false_code_size=517
2183 1875 1d03          btfss   __z___byte, __z___bit
2184 1876 2889          goto    main__67
2185                    ; line_number = 299
2186                    ; if get_carriage_return() start
2187 1877 2397          call    get_carriage_return
2188                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2189                    ; CASE: true_code.size = 0 && false_code.size > 1
2190                    ; bit_code_emit_helper1: body_code.size=14 true_test=true body_code.delay=0 (non-uniform delay)
2191 1878 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2192 1879 2888          goto    main__66
2193                    ; line_number = 300
2194                    ; call put_byte(id_reset, socket)
2195 187a 30fd          movlw   253
2196 187b 00d8          movwf   put_byte__character
2197 187c 0835          movf    main__socket,w
2198 187d 23fc          call    put_byte
2199                    ; line_number = 301
2200                    ;  call id8(socket)
2201 187e 0835          movf    main__socket,w
2202 187f 233e          call    id8
2203                    ; line_number = 302
2204                    ;  call id8(socket)
2205 1880 0835          movf    main__socket,w
2206 1881 233e          call    id8
2207                    ; line_number = 303
2208                    ;  call id8(socket)
2209 1882 0835          movf    main__socket,w
2210 1883 233e          call    id8
2211                    ; line_number = 304
2212                    ;  call id_string(socket)
2213 1884 0835          movf    main__socket,w
2214 1885 234b          call    id_string
2215                    ; line_number = 305
2216                    ;  call id_string(socket)
2217 1886 0835          movf    main__socket,w
2218 1887 234b          call    id_string
2219                    ; Recombine size1 = 0 || size2 = 0
2220   1888 :   main__66:
2221                    ; code.delay=4294967295 back_code.delay=4294967295
2222                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2223                    ; line_number = 299
2224                    ; if get_carriage_return() done
2225 1888 2a8e          goto    main__68
2226   1889 :   main__67:
2227                    ; line_number = 306
2228                    ; Left minus Right
2229 1889 30b5          movlw   181
2230 188a 072c          addwf   main__command,w
2231                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2232                    ; CASE: true_code_size > 1 && false_code_size > 1
2233                    ; true_code_size=16 false_code_size=496
2234 188b 1d03          btfss   __z___byte, __z___bit
2235 188c 289e          goto    main__64
2236                    ; line_number = 307
2237                    ; byte := get_hex_nibble()
2238 188d 23d5          call    get_hex_nibble
2239 188e 00a9          movwf   main__byte
2240                    ; line_number = 308
2241                    ;  if byte = 0 || byte > 10 start
2242                    ; Left minus Right
2243 188f 0829          movf    main__byte,w
2244                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2245                    ; CASE: true.size=1 false.size>1; true=GOTO
2246 1890 1903          btfsc   __z___byte, __z___bit
2247 1891 2897          goto    main__62
2248                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2249 1892 300a          movlw   10
2250 1893 0229          subwf   main__byte,w
2251 1894 1903          btfsc   __z___byte, __z___bit
2252 1895 1003          bcf     __c___byte, __c___bit
2253                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2254                    ; CASE: True.size=1 False.size=0
2255 1896 1803          btfsc   __c___byte, __c___bit
2256   1897 :   main__62:
2257                    ; line_number = 309
2258                    ; ok := 0
2259 1897 106f          bcf     ok___byte, ok___bit
2260                    ; Recombine size1 = 0 || size2 = 0
2261                    ; code.delay=4294967295 back_code.delay=4294967295
2262                    ; <=bit_code_emit@symbol; sym=__c (data:XX=>XX code:11=>11)
2263                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2264                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
2265                    ; code.delay=4294967295 back_code.delay=4294967295
2266                    ; <=bit_code_emit@symbol; sym=__z (data:XX=>XX code:11=>11)
2267                    ; line_number = 308
2268                    ;  if byte = 0 || byte > 10 done
2269                    ; line_number = 310
2270                    ; if get_carriage_return() start
2271 1898 2397          call    get_carriage_return
2272                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2273                    ; CASE: true_code.size = 0 && false_code.size > 1
2274                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
2275 1899 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2276 189a 289d          goto    main__63
2277                    ; line_number = 311
2278                    ; socket := byte - 1
2279 189b 0329          decf    main__byte,w
2280 189c 00b5          movwf   main__socket
2281                    ; Recombine size1 = 0 || size2 = 0
2282   189d :   main__63:
2283                    ; code.delay=4294967295 back_code.delay=4294967295
2284                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2285                    ; line_number = 310
2286                    ; if get_carriage_return() done
2287 189d 2a8e          goto    main__65
2288   189e :   main__64:
2289                    ; line_number = 312
2290                    ; Left minus Right
2291 189e 30b0          movlw   176
2292 189f 072c          addwf   main__command,w
2293                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2294                    ; CASE: true_code_size > 1 && false_code_size > 1
2295                    ; true_code_size=51 false_code_size=440
2296 18a0 1d03          btfss   __z___byte, __z___bit
2297 18a1 28d6          goto    main__60
2298                    ; # Print a page of memory:
2299                    ; line_number = 314
2300                    ;  _eeadrh := get_hex_byte()
2301 18a2 23cd          call    get_hex_byte
2302 18a3 1703          bsf     __rp1___byte, __rp1___bit
2303 18a4 008f          movwf   _eeadrh
2304                    ; line_number = 315
2305                    ;  if get_carriage_return() start
2306 18a5 1303          bcf     __rp1___byte, __rp1___bit
2307 18a6 2397          call    get_carriage_return
2308                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2309                    ; CASE: true_code.size = 0 && false_code.size > 1
2310                    ; bit_code_emit_helper1: body_code.size=44 true_test=true body_code.delay=0 (non-uniform delay)
2311 18a7 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2312 18a8 28d5          goto    main__59
2313                    ; line_number = 316
2314                    ; index := 0
2315 18a9 3000          movlw   0
2316 18aa 00b1          movwf   main__index
2317                    ; line_number = 317
2318                    ;  more := 1
2319 18ab 15ef          bsf     main__more___byte, main__more___bit
2320                    ; line_number = 318
2321                    ;  while more start
2322   18ac :   main__56:
2323                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2324                    ; CASE: true_code.size = 0 && false_code.size > 1
2325                    ; bit_code_emit_helper1: body_code.size=39 true_test=true body_code.delay=0 (non-uniform delay)
2326 18ac 1def          btfss   main__more___byte, main__more___bit
2327 18ad 28d5          goto    main__58
2328                    ; line_number = 319
2329                    ; if index & 7 = 0 start
2330                    ; Left minus Right
2331 18ae 3007          movlw   7
2332 18af 0531          andwf   main__index,w
2333                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2334                    ; CASE: true_code.size = 0 && false_code.size > 1
2335                    ; bit_code_emit_helper1: body_code.size=7 true_test=true body_code.delay=0 (non-uniform delay)
2336 18b0 1d03          btfss   __z___byte, __z___bit
2337 18b1 28ba          goto    main__57
2338 18b2 1703          bsf     __rp1___byte, __rp1___bit
2339                    ; # Display the address:
2340                    ; line_number = 321
2341                    ;  call put_hex_byte(_eeadrh)
2342 18b3 080f          movf    _eeadrh,w
2343 18b4 1303          bcf     __rp1___byte, __rp1___bit
2344 18b5 245e          call    put_hex_byte
2345                    ; line_number = 322
2346                    ;  call put_hex_byte(index)
2347 18b6 0831          movf    main__index,w
2348 18b7 245e          call    put_hex_byte
2349                    ; line_number = 323
2350                    ;  call put_character(':')
2351 18b8 303a          movlw   58
2352 18b9 244f          call    put_character
2353            
2354                    ; Recombine size1 = 0 || size2 = 0
2355   18ba :   main__57:
2356                    ; code.delay=4294967295 back_code.delay=4294967295
2357                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
2358                    ; line_number = 319
2359                    ; if index & 7 = 0 done
2360                    ; # Read the word:
2361                    ; line_number = 326
2362                    ;  _eeadr := index
2363 18ba 0831          movf    main__index,w
2364 18bb 1703          bsf     __rp1___byte, __rp1___bit
2365 18bc 008d          movwf   _eeadr
2366                    ; line_number = 327
2367                    ;  _eepgd := 1
2368 18bd 1683          bsf     __rp0___byte, __rp0___bit
2369 18be 178c          bsf     _eepgd___byte, _eepgd___bit
2370                    ; line_number = 328
2371                    ;  _rd := 1
2372 18bf 140c          bsf     _rd___byte, _rd___bit
2373                    ; # The next two instructions are *ignored*:
2374                    ; line_number = 330
2375                    ;  assemble
2376                    ; line_number = 331
2377 18c0 0000          nop     
2378                    ; line_number = 332
2379 18c1 0000          nop     
2380            
2381                    ; # Display the word:
2382                    ; line_number = 335
2383                    ;  call put_space()
2384 18c2 1283          bcf     __rp0___byte, __rp0___bit
2385 18c3 1303          bcf     __rp1___byte, __rp1___bit
2386 18c4 2471          call    put_space
2387                    ; line_number = 336
2388                    ;  call put_hex_byte(_eedath)
2389 18c5 1703          bsf     __rp1___byte, __rp1___bit
2390 18c6 080e          movf    _eedath,w
2391 18c7 1303          bcf     __rp1___byte, __rp1___bit
2392 18c8 245e          call    put_hex_byte
2393                    ; line_number = 337
2394                    ;  call put_hex_byte(_eedata)
2395 18c9 1703          bsf     __rp1___byte, __rp1___bit
2396 18ca 080c          movf    _eedata,w
2397 18cb 1303          bcf     __rp1___byte, __rp1___bit
2398 18cc 245e          call    put_hex_byte
2399            
2400                    ; # Bump to next address in page:
2401                    ; line_number = 340
2402                    ;  index := index + 1
2403 18cd 0ab1          incf    main__index,f
2404                    ; line_number = 341
2405                    ;  if _z start
2406                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2407                    ; CASE: True.size=1 False.size=0
2408 18ce 1903          btfsc   _z___byte, _z___bit
2409                    ; line_number = 342
2410                    ; more := 0
2411 18cf 11ef          bcf     main__more___byte, main__more___bit
2412                    ; Recombine size1 = 0 || size2 = 0
2413                    ; code.delay=4294967295 back_code.delay=4294967295
2414                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
2415                    ; line_number = 341
2416                    ;  if _z done
2417                    ; line_number = 343
2418                    ; if index & 7 = 0 start
2419                    ; Left minus Right
2420 18d0 3007          movlw   7
2421 18d1 0531          andwf   main__index,w
2422                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2423                    ; CASE: True.size=1 False.size=0
2424 18d2 1903          btfsc   __z___byte, __z___bit
2425                    ; line_number = 344
2426                    ; call put_crlf()
2427 18d3 2459          call    put_crlf
2428                    ; Recombine size1 = 0 || size2 = 0
2429                    ; code.delay=4294967295 back_code.delay=4294967295
2430                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
2431                    ; line_number = 343
2432                    ; if index & 7 = 0 done
2433 18d4 28ac          goto    main__56
2434                    ; Recombine size1 = 0 || size2 = 0
2435   18d5 :   main__58:
2436                    ; code.delay=4294967295 back_code.delay=4294967295
2437                    ; <=bit_code_emit@symbol; sym=main__more (data:00=>00 code:11=>11)
2438                    ; line_number = 318
2439                    ;  while more done
2440                    ; Recombine size1 = 0 || size2 = 0
2441   18d5 :   main__59:
2442                    ; code.delay=4294967295 back_code.delay=4294967295
2443                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2444                    ; line_number = 315
2445                    ;  if get_carriage_return() done
2446 18d5 2a8e          goto    main__61
2447   18d6 :   main__60:
2448                    ; line_number = 345
2449                    ; Left minus Right
2450 18d6 30ae          movlw   174
2451 18d7 072c          addwf   main__command,w
2452                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2453                    ; CASE: true_code_size > 1 && false_code_size > 1
2454                    ; true_code_size=21 false_code_size=414
2455 18d8 1d03          btfss   __z___byte, __z___bit
2456 18d9 28f0          goto    main__54
2457                    ; # Send a command to a RoboBrick:
2458                    ; line_number = 347
2459                    ;  byte := get_hex_byte()
2460 18da 23cd          call    get_hex_byte
2461 18db 00a9          movwf   main__byte
2462                    ; line_number = 348
2463                    ;  if get_carriage_return() start
2464 18dc 2397          call    get_carriage_return
2465                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2466                    ; CASE: true_code.size = 0 && false_code.size > 1
2467                    ; bit_code_emit_helper1: body_code.size=16 true_test=true body_code.delay=0 (non-uniform delay)
2468 18dd 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2469 18de 28ef          goto    main__53
2470                    ; line_number = 349
2471                    ; call put_byte(byte, socket)
2472 18df 0829          movf    main__byte,w
2473 18e0 00d8          movwf   put_byte__character
2474 18e1 0835          movf    main__socket,w
2475 18e2 23fc          call    put_byte
2476                    ; line_number = 350
2477                    ;  return1 := get_byte(socket)
2478 18e3 0835          movf    main__socket,w
2479 18e4 235d          call    get_byte
2480 18e5 00b3          movwf   main__return1
2481                    ; line_number = 351
2482                    ;  return2 := get_byte(socket)
2483 18e6 0835          movf    main__socket,w
2484 18e7 235d          call    get_byte
2485 18e8 00b4          movwf   main__return2
2486                    ; line_number = 352
2487                    ;  call put_hex_byte(return1)
2488 18e9 0833          movf    main__return1,w
2489 18ea 245e          call    put_hex_byte
2490                    ; line_number = 353
2491                    ;  call put_space()
2492 18eb 2471          call    put_space
2493                    ; line_number = 354
2494                    ;  call put_hex_byte(return2)
2495 18ec 0834          movf    main__return2,w
2496 18ed 245e          call    put_hex_byte
2497                    ; line_number = 355
2498                    ;  call put_crlf()
2499 18ee 2459          call    put_crlf
2500                    ; Recombine size1 = 0 || size2 = 0
2501   18ef :   main__53:
2502                    ; code.delay=4294967295 back_code.delay=4294967295
2503                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2504                    ; line_number = 348
2505                    ;  if get_carriage_return() done
2506 18ef 2a8e          goto    main__55
2507   18f0 :   main__54:
2508                    ; line_number = 356
2509                    ; Left minus Right
2510 18f0 30ad          movlw   173
2511 18f1 072c          addwf   main__command,w
2512                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2513                    ; CASE: true_code_size > 1 && false_code_size > 1
2514                    ; true_code_size=25 false_code_size=384
2515 18f2 1d03          btfss   __z___byte, __z___bit
2516 18f3 290e          goto    main__51
2517                    ; # Store data memory command:
2518                    ; line_number = 358
2519                    ;  address_high := get_hex_byte()
2520 18f4 23cd          call    get_hex_byte
2521 18f5 00a4          movwf   main__address_high
2522                    ; line_number = 359
2523                    ;  address_low := get_hex_byte()
2524 18f6 23cd          call    get_hex_byte
2525 18f7 00a5          movwf   main__address_low
2526                    ; line_number = 360
2527                    ;  byte := get_hex_byte()
2528 18f8 23cd          call    get_hex_byte
2529 18f9 00a9          movwf   main__byte
2530                    ; line_number = 361
2531                    ;  if get_carriage_return() start
2532 18fa 2397          call    get_carriage_return
2533                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2534                    ; CASE: true_code.size = 0 && false_code.size > 1
2535                    ; bit_code_emit_helper1: body_code.size=16 true_test=true body_code.delay=0 (non-uniform delay)
2536 18fb 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2537 18fc 290d          goto    main__50
2538                    ; line_number = 362
2539                    ; if (address_high = 0) start
2540                    ; Left minus Right
2541 18fd 0824          movf    main__address_high,w
2542                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2543                    ; CASE: true_code_size > 1 && false_code_size > 1
2544                    ; true_code_size=6 false_code_size=6
2545 18fe 1d03          btfss   __z___byte, __z___bit
2546 18ff 2907          goto    main__48
2547                    ; line_number = 363
2548                    ; bank01[address_low] := byte
2549                    ; index_fsr_first
2550 1900 0825          movf    main__address_low,w
2551 1901 3e00          addlw   bank01
2552 1902 0084          movwf   __fsr
2553 1903 1383          bcf     __irp___byte, __irp___bit
2554 1904 0829          movf    main__byte,w
2555 1905 0080          movwf   __indf
2556 1906 290d          goto    main__49
2557   1907 :   main__48:
2558                    ; line_number = 365
2559                    ; bank23[address_low] := byte
2560                    ; index_fsr_first
2561 1907 0825          movf    main__address_low,w
2562 1908 3e00          addlw   bank23
2563 1909 0084          movwf   __fsr
2564 190a 1783          bsf     __irp___byte, __irp___bit
2565 190b 0829          movf    main__byte,w
2566 190c 0080          movwf   __indf
2567   190d :   main__49:
2568                    ; code.delay=4294967295 back_code.delay=4294967295
2569                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
2570                    ; line_number = 362
2571                    ; if (address_high = 0) done
2572                    ; Recombine size1 = 0 || size2 = 0
2573   190d :   main__50:
2574                    ; code.delay=4294967295 back_code.delay=4294967295
2575                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2576                    ; line_number = 361
2577                    ;  if get_carriage_return() done
2578 190d 2a8e          goto    main__52
2579   190e :   main__51:
2580                    ; line_number = 366
2581                    ; Left minus Right
2582 190e 30ac          movlw   172
2583 190f 072c          addwf   main__command,w
2584                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2585                    ; CASE: true_code_size > 1 && false_code_size > 1
2586                    ; true_code_size=5 false_code_size=374
2587 1910 1d03          btfss   __z___byte, __z___bit
2588 1911 2918          goto    main__46
2589                    ; line_number = 367
2590                    ; loop_forever start
2591   1912 :   main__45:
2592                    ; line_number = 368
2593                    ; call put_byte('U', n2)
2594 1912 3055          movlw   85
2595 1913 00d8          movwf   put_byte__character
2596 1914 3001          movlw   1
2597 1915 23fc          call    put_byte
2598                    ; line_number = 367
2599                    ; loop_forever wrap-up
2600 1916 2912          goto    main__45
2601                    ; line_number = 367
2602                    ; loop_forever done
2603 1917 2a8e          goto    main__47
2604   1918 :   main__46:
2605                    ; line_number = 369
2606                    ; Left minus Right
2607 1918 30aa          movlw   170
2608 1919 072c          addwf   main__command,w
2609                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2610                    ; CASE: true_code_size > 1 && false_code_size > 1
2611                    ; true_code_size=10 false_code_size=359
2612 191a 1d03          btfss   __z___byte, __z___bit
2613 191b 2927          goto    main__43
2614                    ; line_number = 370
2615                    ; if get_carriage_return() start
2616 191c 2397          call    get_carriage_return
2617                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2618                    ; CASE: true_code.size = 0 && false_code.size > 1
2619                    ; bit_code_emit_helper1: body_code.size=7 true_test=true body_code.delay=0 (non-uniform delay)
2620 191d 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2621 191e 2926          goto    main__42
2622                    ; line_number = 371
2623                    ; call put_character('1')
2624 191f 3031          movlw   49
2625 1920 244f          call    put_character
2626                    ; line_number = 372
2627                    ;  call put_character('.')
2628 1921 302e          movlw   46
2629 1922 244f          call    put_character
2630                    ; line_number = 373
2631                    ;  call put_character('0')
2632 1923 3030          movlw   48
2633 1924 244f          call    put_character
2634                    ; line_number = 374
2635                    ;  call put_crlf()
2636 1925 2459          call    put_crlf
2637                    ; Recombine size1 = 0 || size2 = 0
2638   1926 :   main__42:
2639                    ; code.delay=4294967295 back_code.delay=4294967295
2640                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2641                    ; line_number = 370
2642                    ; if get_carriage_return() done
2643 1926 2a8e          goto    main__44
2644   1927 :   main__43:
2645                    ; line_number = 375
2646                    ; Left minus Right
2647 1927 30a8          movlw   168
2648 1928 072c          addwf   main__command,w
2649                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2650                    ; CASE: true_code_size > 1 && false_code_size > 1
2651                    ; true_code_size=3 false_code_size=351
2652 1929 1d03          btfss   __z___byte, __z___bit
2653 192a 292f          goto    main__40
2654                    ; line_number = 376
2655                    ; if get_carriage_return() start
2656 192b 2397          call    get_carriage_return
2657                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2658                    ; CASE: True.size=1 False.size=0
2659 192c 1a6f          btfsc   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2660                    ; line_number = 377
2661                    ; call execute()
2662 192d 232d          call    execute
2663                    ; Recombine size1 = 0 || size2 = 0
2664                    ; code.delay=4294967295 back_code.delay=4294967295
2665                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
2666                    ; line_number = 376
2667                    ; if get_carriage_return() done
2668 192e 2a8e          goto    main__41
2669   192f :   main__40:
2670                    ; line_number = 378
2671                    ; Left minus Right
2672 192f 30c6          movlw   198
2673 1930 072c          addwf   main__command,w
2674                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2675                    ; CASE: true_code_size > 1 && false_code_size > 1
2676                    ; true_code_size=338 false_code_size=8
2677 1931 1d03          btfss   __z___byte, __z___bit
2678 1932 2a86          goto    main__38
2679                    ; # Hex command:
2680                    ; line_number = 380
2681                    ;  check_sum := 0
2682 1933 3000          movlw   0
2683 1934 00aa          movwf   main__check_sum
2684                    ; line_number = 381
2685                    ;  length := get_hex_byte()
2686 1935 23cd          call    get_hex_byte
2687 1936 00b2          movwf   main__length
2688                    ; line_number = 382
2689                    ;  check_sum := check_sum + length
2690 1937 0832          movf    main__length,w
2691 1938 07aa          addwf   main__check_sum,f
2692                    ; line_number = 383
2693                    ;  address_high := get_hex_byte()
2694 1939 23cd          call    get_hex_byte
2695 193a 00a4          movwf   main__address_high
2696                    ; line_number = 384
2697                    ;  check_sum := check_sum + address_high
2698 193b 0824          movf    main__address_high,w
2699 193c 07aa          addwf   main__check_sum,f
2700                    ; line_number = 385
2701                    ;  address_low := get_hex_byte()
2702 193d 23cd          call    get_hex_byte
2703 193e 00a5          movwf   main__address_low
2704                    ; line_number = 386
2705                    ;  check_sum := check_sum + address_low
2706 193f 0825          movf    main__address_low,w
2707 1940 07aa          addwf   main__check_sum,f
2708                    ; line_number = 387
2709                    ;  type := get_hex_byte()
2710 1941 23cd          call    get_hex_byte
2711 1942 00b6          movwf   main__type
2712                    ; line_number = 388
2713                    ;  check_sum := check_sum + type
2714 1943 0836          movf    main__type,w
2715 1944 07aa          addwf   main__check_sum,f
2716                    ; line_number = 389
2717                    ;  index := 0
2718 1945 3000          movlw   0
2719 1946 00b1          movwf   main__index
2720                    ; line_number = 390
2721                    ;  buffer_size := length >> 1
2722 1947 0c32          rrf     main__length,w
2723 1948 00a8          movwf   main__buffer_size
2724 1949 13a8          bcf     main__buffer_size, 7
2725                    ; line_number = 391
2726                    ;  while index < buffer_size start
2727   194a :   main__5:
2728 194a 0828          movf    main__buffer_size,w
2729 194b 0231          subwf   main__index,w
2730                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2731                    ; CASE: true.size=0 && false.size>1
2732                    ; bit_code_emit_helper1: body_code.size=22 true_test=false body_code.delay=0 (non-uniform delay)
2733 194c 1803          btfsc   __c___byte, __c___bit
2734 194d 2964          goto    main__6
2735                    ; line_number = 392
2736                    ; byte := get_hex_byte()
2737 194e 23cd          call    get_hex_byte
2738 194f 00a9          movwf   main__byte
2739                    ; line_number = 393
2740                    ;  check_sum := check_sum + byte
2741 1950 0829          movf    main__byte,w
2742 1951 07aa          addwf   main__check_sum,f
2743                    ; line_number = 394
2744                    ;  buffer_lows[index] := byte
2745                    ; index_fsr_first
2746 1952 0831          movf    main__index,w
2747 1953 3e28          addlw   buffer_lows
2748 1954 0084          movwf   __fsr
2749 1955 1783          bsf     __irp___byte, __irp___bit
2750 1956 0829          movf    main__byte,w
2751 1957 0080          movwf   __indf
2752                    ; line_number = 395
2753                    ;  byte := get_hex_byte()
2754 1958 23cd          call    get_hex_byte
2755 1959 00a9          movwf   main__byte
2756                    ; line_number = 396
2757                    ;  check_sum := check_sum + byte
2758 195a 0829          movf    main__byte,w
2759 195b 07aa          addwf   main__check_sum,f
2760                    ; line_number = 397
2761                    ;  buffer_highs[index] := byte
2762                    ; index_fsr_first
2763 195c 0831          movf    main__index,w
2764 195d 3e20          addlw   buffer_highs
2765 195e 0084          movwf   __fsr
2766 195f 1783          bsf     __irp___byte, __irp___bit
2767 1960 0829          movf    main__byte,w
2768 1961 0080          movwf   __indf
2769                    ; line_number = 398
2770                    ;  index := index + 1
2771 1962 0ab1          incf    main__index,f
2772 1963 294a          goto    main__5
2773   1964 :   main__6:
2774                    ; Recombine size1 = 0 || size2 = 0
2775                    ; code.delay=4294967295 back_code.delay=4294967295
2776                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
2777                    ; line_number = 391
2778                    ;  while index < buffer_size done
2779                    ; line_number = 399
2780                    ; check_sum := check_sum + get_hex_byte()
2781 00000065 = main__7 equ globals___0+69
2782 1964 082a          movf    main__check_sum,w
2783 1965 00e5          movwf   main__7
2784 1966 23cd          call    get_hex_byte
2785 1967 0765          addwf   main__7,w
2786 1968 00aa          movwf   main__check_sum
2787                    ; line_number = 400
2788                    ;  if get_carriage_return() start
2789 1969 2397          call    get_carriage_return
2790                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2791                    ; CASE: true_code.size = 0 && false_code.size > 1
2792                    ; bit_code_emit_helper1: body_code.size=281 true_test=true body_code.delay=0 (non-uniform delay)
2793 196a 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
2794 196b 2a85          goto    main__37
2795                    ; # Command completed without error:
2796            
2797                    ; # For debugging only:
2798                    ; #call put_character('L')
2799                    ; #call put_hex_byte(length)
2800                    ; #call put_space()
2801            
2802                    ; #call put_character('A')
2803                    ; #call put_hex_byte(address_high)
2804                    ; #call put_hex_byte(address_low)
2805                    ; #call put_space()
2806            
2807                    ; #call put_character('T')
2808                    ; #call put_hex_byte(type)
2809                    ; #call put_space()
2810            
2811                    ; #index := 0
2812                    ; #buffer_size := length >> 1
2813                    ; #while index < buffer_size
2814                    ; #    call put_character('[')
2815                    ; #    call put_hex_nibble(index)
2816                    ; #    call put_character(']')
2817                    ; #    call put_hex_byte(buffer_highs[index])
2818                    ; #    call put_hex_byte(buffer_lows[index])
2819                    ; #    call put_space()
2820                    ; #    index := index + 1		
2821            
2822                    ; #call put_character('C')
2823                    ; #call put_hex_byte(check_sum)
2824                    ; #call put_crlf()
2825            
2826                    ; line_number = 432
2827                    ;  if check_sum = 0 start
2828                    ; Left minus Right
2829 196c 082a          movf    main__check_sum,w
2830                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2831                    ; CASE: true_code_size > 1 && false_code_size > 1
2832                    ; true_code_size=267 false_code_size=10
2833 196d 1d03          btfss   __z___byte, __z___bit
2834 196e 2a7b          goto    main__35
2835                    ; # Check sum is cool:
2836                    ; # Address is off by a factor of 2:
2837                    ; line_number = 435
2838                    ;  address_low := address_low >> 1
2839                    ; Assignment of variable to self (no code needed)
2840 196f 0ca5          rrf     main__address_low,f
2841 1970 13a5          bcf     main__address_low, 7
2842                    ; line_number = 436
2843                    ;  if address_high@0 start
2844 00000024 = main__select__9___byte equ main__address_high
2845 00000000 = main__select__9___bit equ 0
2846                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2847                    ; CASE: True.size=1 False.size=0
2848 1971 1824          btfsc   main__select__9___byte, main__select__9___bit
2849                    ; line_number = 437
2850                    ; address_low@7 := 1
2851 00000025 = main__select__8___byte equ main__address_low
2852 00000007 = main__select__8___bit equ 7
2853 1972 17a5          bsf     main__select__8___byte, main__select__8___bit
2854                    ; Recombine size1 = 0 || size2 = 0
2855                    ; code.delay=4294967295 back_code.delay=4294967295
2856                    ; <=bit_code_emit@symbol; sym=main__select__9 (data:00=>00 code:11=>11)
2857                    ; line_number = 436
2858                    ;  if address_high@0 done
2859                    ; line_number = 438
2860                    ; address_high := address_high >> 1
2861                    ; Assignment of variable to self (no code needed)
2862 1973 0ca4          rrf     main__address_high,f
2863 1974 13a4          bcf     main__address_high, 7
2864            
2865                    ; # Only write data into "safe" pages:
2866                    ; line_number = 441
2867                    ;  if type = 1 start
2868                    ; Left minus Right
2869 1975 0336          decf    main__type,w
2870                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2871                    ; CASE: true_code_size > 1 && false_code_size > 1
2872                    ; true_code_size=20 false_code_size=237
2873 1976 1d03          btfss   __z___byte, __z___bit
2874 1977 298d          goto    main__33
2875                    ; line_number = 442
2876                    ; call put_character('E')
2877 1978 3045          movlw   69
2878 1979 244f          call    put_character
2879                    ; line_number = 443
2880                    ;  call put_character('r')
2881 197a 3072          movlw   114
2882 197b 244f          call    put_character
2883                    ; line_number = 444
2884                    ;  call put_character('r')
2885 197c 3072          movlw   114
2886 197d 244f          call    put_character
2887                    ; line_number = 445
2888                    ;  call put_character('=')
2889 197e 303d          movlw   61
2890 197f 244f          call    put_character
2891                    ; line_number = 446
2892                    ;  call put_hex_byte(errors)
2893 1980 082e          movf    main__errors,w
2894 1981 245e          call    put_hex_byte
2895                    ; line_number = 447
2896                    ;  if errors != 0 start
2897                    ; Left minus Right
2898 1982 082e          movf    main__errors,w
2899                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2900                    ; CASE: true.size=0 && false.size>1
2901                    ; bit_code_emit_helper1: body_code.size=6 true_test=false body_code.delay=0 (non-uniform delay)
2902 1983 1903          btfsc   __z___byte, __z___bit
2903 1984 298b          goto    main__32
2904                    ; line_number = 448
2905                    ; call put_character('@')
2906 1985 3040          movlw   64
2907 1986 244f          call    put_character
2908                    ; line_number = 449
2909                    ;  call put_hex_byte(error_high)
2910 1987 082f          movf    main__error_high,w
2911 1988 245e          call    put_hex_byte
2912                    ; line_number = 450
2913                    ;  call put_hex_byte(error_low)
2914 1989 0830          movf    main__error_low,w
2915 198a 245e          call    put_hex_byte
2916   198b :   main__32:
2917                    ; Recombine size1 = 0 || size2 = 0
2918                    ; code.delay=4294967295 back_code.delay=4294967295
2919                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
2920                    ; line_number = 447
2921                    ;  if errors != 0 done
2922                    ; line_number = 451
2923                    ; call put_crlf()
2924 198b 2459          call    put_crlf
2925                    ; Recombine code1_bit_states != code2_bit_states
2926 198c 2a7a          goto    main__34
2927   198d :   main__33:
2928                    ; line_number = 452
2929                    ; Left minus Right
2930 198d 0836          movf    main__type,w
2931                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2932                    ; CASE: true.size>1 false.size=1; false=GOTO
2933 198e 1d03          btfss   __z___byte, __z___bit
2934 198f 2a7a          goto    main__29
2935                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2936 00000065 = main__30 equ globals___0+69
2937 1990 3900          andlw   0
2938 1991 0224          subwf   main__address_high,w
2939                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2940                    ; CASE: true.size=0 && false.size>1
2941                    ; bit_code_emit_helper1: body_code.size=230 true_test=false body_code.delay=0 (non-uniform delay)
2942 1992 1803          btfsc   __c___byte, __c___bit
2943 1993 2a7a          goto    main__31
2944                    ; # Write data until the buffer is empty:
2945                    ; line_number = 455
2946                    ;  ok := 1
2947 1994 146f          bsf     ok___byte, ok___bit
2948                    ; line_number = 456
2949                    ;  if address_high = 0 && address_low & 0xfc = 0 start
2950                    ; Left minus Right
2951 1995 0824          movf    main__address_high,w
2952                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2953                    ; CASE: true.size>1 false.size=1; false=GOTO
2954 1996 1d03          btfss   __z___byte, __z___bit
2955 1997 299c          goto    main__10
2956                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2957                    ; Left minus Right
2958 1998 30fc          movlw   252
2959 1999 0525          andwf   main__address_low,w
2960                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2961                    ; CASE: True.size=1 False.size=0
2962 199a 1903          btfsc   __z___byte, __z___bit
2963                    ; # Trying to modify first 4 words of flash;
2964                    ; # This is not allowed:
2965                    ; line_number = 459
2966                    ;  ok := 0
2967 199b 106f          bcf     ok___byte, ok___bit
2968                    ; Recombine code1_bit_states != code2_bit_states
2969   199c :   main__10:
2970                    ; code.delay=4294967295 back_code.delay=4294967295
2971                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
2972                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2973                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
2974                    ; Recombine code1_bit_states != code2_bit_states
2975                    ; code.delay=4294967295 back_code.delay=4294967295
2976                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
2977                    ; line_number = 456
2978                    ;  if address_high = 0 && address_low & 0xfc = 0 done
2979                    ; line_number = 460
2980                    ; index := 0
2981 199c 3000          movlw   0
2982 199d 00b1          movwf   main__index
2983                    ; line_number = 461
2984                    ;  while index < buffer_size start
2985   199e :   main__11:
2986 199e 0828          movf    main__buffer_size,w
2987 199f 0231          subwf   main__index,w
2988                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2989                    ; CASE: true.size=0 && false.size>1
2990                    ; bit_code_emit_helper1: body_code.size=216 true_test=false body_code.delay=0 (non-uniform delay)
2991 19a0 1803          btfsc   __c___byte, __c___bit
2992 19a1 2a7a          goto    main__28
2993                    ; # Read 4 word block from memory:
2994                    ; line_number = 463
2995                    ;  block_index := 0
2996 19a2 3000          movlw   0
2997 19a3 00a6          movwf   main__block_index
2998                    ; line_number = 464
2999                    ;  _eeadrh := address_high
3000 19a4 0824          movf    main__address_high,w
3001 19a5 1703          bsf     __rp1___byte, __rp1___bit
3002 19a6 008f          movwf   _eeadrh
3003                    ; line_number = 465
3004                    ;  _eeadr := address_low & 0xfc
3005 19a7 30fc          movlw   252
3006 19a8 1303          bcf     __rp1___byte, __rp1___bit
3007 19a9 0525          andwf   main__address_low,w
3008 19aa 1703          bsf     __rp1___byte, __rp1___bit
3009 19ab 008d          movwf   _eeadr
3010                    ; line_number = 466
3011                    ;  while block_index < block_size start
3012   19ac :   main__12:
3013 19ac 3004          movlw   4
3014 19ad 1303          bcf     __rp1___byte, __rp1___bit
3015 19ae 0226          subwf   main__block_index,w
3016                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3017                    ; CASE: true.size=0 && false.size>1
3018                    ; bit_code_emit_helper1: body_code.size=26 true_test=false body_code.delay=0 (non-uniform delay)
3019 19af 1803          btfsc   __c___byte, __c___bit
3020 19b0 29cb          goto    main__13
3021                    ; line_number = 467
3022                    ; _eepgd := 1
3023 19b1 178c          bsf     _eepgd___byte, _eepgd___bit
3024                    ; line_number = 468
3025                    ;  _rd := 1
3026 19b2 140c          bsf     _rd___byte, _rd___bit
3027                    ; # The next two instructions are not executed:
3028                    ; line_number = 470
3029                    ;  assemble
3030                    ; line_number = 471
3031 19b3 0000          nop     
3032                    ; line_number = 472
3033 19b4 0000          nop     
3034                    ; line_number = 473
3035                    ; block_lows[block_index] := _eedata
3036                    ; index_fsr_first
3037 19b5 1283          bcf     __rp0___byte, __rp0___bit
3038 19b6 1303          bcf     __rp1___byte, __rp1___bit
3039 19b7 0826          movf    main__block_index,w
3040 19b8 3e18          addlw   block_lows
3041 19b9 0084          movwf   __fsr
3042 19ba 1783          bsf     __irp___byte, __irp___bit
3043 19bb 1703          bsf     __rp1___byte, __rp1___bit
3044 19bc 080c          movf    _eedata,w
3045 19bd 0080          movwf   __indf
3046                    ; line_number = 474
3047                    ;  block_highs[block_index] := _eedath
3048                    ; index_fsr_first
3049 19be 1303          bcf     __rp1___byte, __rp1___bit
3050 19bf 0826          movf    main__block_index,w
3051 19c0 3e10          addlw   block_highs
3052 19c1 0084          movwf   __fsr
3053 19c2 1783          bsf     __irp___byte, __irp___bit
3054 19c3 1703          bsf     __rp1___byte, __rp1___bit
3055 19c4 080e          movf    _eedath,w
3056 19c5 0080          movwf   __indf
3057                    ; line_number = 475
3058                    ;  block_index := block_index + 1
3059 19c6 1303          bcf     __rp1___byte, __rp1___bit
3060 19c7 0aa6          incf    main__block_index,f
3061                    ; line_number = 476
3062                    ;  _eeadr := _eeadr + 1
3063 19c8 1703          bsf     __rp1___byte, __rp1___bit
3064 19c9 0a8d          incf    _eeadr,f
3065            
3066 19ca 29ac          goto    main__12
3067   19cb :   main__13:
3068                    ; Recombine size1 = 0 || size2 = 0
3069                    ; code.delay=4294967295 back_code.delay=4294967295
3070                    ; <=bit_code_emit@symbol; sym=__c (data:00=>10 code:11=>11)
3071                    ; line_number = 466
3072                    ;  while block_index < block_size done
3073                    ; # Now transfer the data from buffer to block:
3074                    ; line_number = 479
3075                    ;  block_index := address_low & 3
3076 19cb 3003          movlw   3
3077 19cc 1303          bcf     __rp1___byte, __rp1___bit
3078 19cd 0525          andwf   main__address_low,w
3079 19ce 00a6          movwf   main__block_index
3080                    ; line_number = 480
3081                    ;  buffer_index := index
3082 19cf 0831          movf    main__index,w
3083 19d0 00a7          movwf   main__buffer_index
3084                    ; line_number = 481
3085                    ;  count := 0
3086 19d1 3000          movlw   0
3087 19d2 00ad          movwf   main__count
3088                    ; line_number = 482
3089                    ;  while (block_index < block_size && buffer_index < buffer_size) start
3090   19d3 :   main__14:
3091 19d3 3004          movlw   4
3092 19d4 0226          subwf   main__block_index,w
3093                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3094                    ; CASE: true.size=1 false.size>1; true=GOTO
3095 19d5 1803          btfsc   __c___byte, __c___bit
3096 19d6 29f9          goto    main__18
3097                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3098 19d7 0828          movf    main__buffer_size,w
3099 19d8 0227          subwf   main__buffer_index,w
3100                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3101                    ; CASE: true.size=0 && false.size>1
3102                    ; bit_code_emit_helper1: body_code.size=30 true_test=false body_code.delay=0 (non-uniform delay)
3103 19d9 1803          btfsc   __c___byte, __c___bit
3104 19da 29f9          goto    main__19
3105                    ; line_number = 484
3106                    ; if ok start
3107                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3108                    ; CASE: true_code.size = 0 && false_code.size > 1
3109                    ; bit_code_emit_helper1: body_code.size=24 true_test=true body_code.delay=0 (non-uniform delay)
3110 19db 1c6f          btfss   ok___byte, ok___bit
3111 19dc 29f5          goto    main__17
3112                    ; line_number = 485
3113                    ; block_highs[block_index] := buffer_highs[buffer_index]
3114                    ; right_temporary_first
3115 00000065 = main__15 equ globals___0+69
3116 19dd 0827          movf    main__buffer_index,w
3117 19de 3e20          addlw   buffer_highs
3118 19df 0084          movwf   __fsr
3119 19e0 1783          bsf     __irp___byte, __irp___bit
3120 19e1 0800          movf    __indf,w
3121 19e2 00e5          movwf   main__15
3122 19e3 0826          movf    main__block_index,w
3123 19e4 3e10          addlw   block_highs
3124 19e5 0084          movwf   __fsr
3125 19e6 0865          movf    main__15,w
3126 19e7 1783          bsf     __irp___byte, __irp___bit
3127 19e8 0080          movwf   __indf
3128            
3129                    ; line_number = 487
3130                    ; block_lows[block_index] := buffer_lows[buffer_index]
3131                    ; right_temporary_first
3132 00000065 = main__16 equ globals___0+69
3133 19e9 0827          movf    main__buffer_index,w
3134 19ea 3e28          addlw   buffer_lows
3135 19eb 0084          movwf   __fsr
3136 19ec 1783          bsf     __irp___byte, __irp___bit
3137 19ed 0800          movf    __indf,w
3138 19ee 00e5          movwf   main__16
3139 19ef 0826          movf    main__block_index,w
3140 19f0 3e18          addlw   block_lows
3141 19f1 0084          movwf   __fsr
3142 19f2 0865          movf    main__16,w
3143 19f3 1783          bsf     __irp___byte, __irp___bit
3144 19f4 0080          movwf   __indf
3145            
3146                    ; Recombine size1 = 0 || size2 = 0
3147   19f5 :   main__17:
3148                    ; code.delay=4294967295 back_code.delay=4294967295
3149                    ; <=bit_code_emit@symbol; sym=ok (data:00=>00 code:11=>11)
3150                    ; line_number = 484
3151                    ; if ok done
3152                    ; line_number = 489
3153                    ; block_index := block_index + 1
3154 19f5 0aa6          incf    main__block_index,f
3155                    ; line_number = 490
3156                    ;  buffer_index := buffer_index + 1
3157 19f6 0aa7          incf    main__buffer_index,f
3158                    ; line_number = 491
3159                    ;  count := count + 1
3160 19f7 0aad          incf    main__count,f
3161            
3162 19f8 29d3          goto    main__14
3163   19f9 :   main__19:
3164   19f9 :   main__18:
3165                    ; Recombine code1_bit_states != code2_bit_states
3166                    ; code.delay=4294967295 back_code.delay=4294967295
3167                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
3168                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3169                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
3170                    ; code.delay=4294967295 back_code.delay=4294967295
3171                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
3172                    ; line_number = 482
3173                    ;  while (block_index < block_size && buffer_index < buffer_size) done
3174            
3175                    ; # Now write the 4 word block into memory:
3176                    ; line_number = 494
3177                    ;  _eeadrh := address_high
3178 19f9 0824          movf    main__address_high,w
3179 19fa 1703          bsf     __rp1___byte, __rp1___bit
3180 19fb 008f          movwf   _eeadrh
3181                    ; line_number = 495
3182                    ;  _eeadr := address_low & 0xfc
3183 19fc 30fc          movlw   252
3184 19fd 1303          bcf     __rp1___byte, __rp1___bit
3185 19fe 0525          andwf   main__address_low,w
3186 19ff 1703          bsf     __rp1___byte, __rp1___bit
3187 1a00 008d          movwf   _eeadr
3188                    ; line_number = 496
3189                    ;  block_index := 0
3190 1a01 3000          movlw   0
3191 1a02 1303          bcf     __rp1___byte, __rp1___bit
3192 1a03 00a6          movwf   main__block_index
3193                    ; line_number = 497
3194                    ;  if ok start
3195                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3196                    ; CASE: true_code.size = 0 && false_code.size > 1
3197                    ; bit_code_emit_helper1: body_code.size=38 true_test=true body_code.delay=0 (non-uniform delay)
3198 1a04 1c6f          btfss   ok___byte, ok___bit
3199 1a05 2a2c          goto    main__23
3200                    ; line_number = 498
3201                    ; while ok && block_index < block_size start
3202   1a06 :   main__20:
3203                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3204                    ; CASE: true.size>1 false.size=1; false=GOTO
3205 1a06 1c6f          btfss   ok___byte, ok___bit
3206 1a07 2a2c          goto    main__21
3207                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3208 1a08 3004          movlw   4
3209 1a09 0226          subwf   main__block_index,w
3210                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3211                    ; CASE: true.size=0 && false.size>1
3212                    ; bit_code_emit_helper1: body_code.size=32 true_test=false body_code.delay=0 (non-uniform delay)
3213 1a0a 1803          btfsc   __c___byte, __c___bit
3214 1a0b 2a2c          goto    main__22
3215                    ; line_number = 499
3216                    ; _eedath := block_highs[block_index]
3217 1a0c 0826          movf    main__block_index,w
3218 1a0d 3e10          addlw   block_highs
3219 1a0e 0084          movwf   __fsr
3220 1a0f 1783          bsf     __irp___byte, __irp___bit
3221 1a10 0800          movf    __indf,w
3222 1a11 1703          bsf     __rp1___byte, __rp1___bit
3223 1a12 008e          movwf   _eedath
3224                    ; line_number = 500
3225                    ;  _eedata := block_lows[block_index]
3226 1a13 1303          bcf     __rp1___byte, __rp1___bit
3227 1a14 0826          movf    main__block_index,w
3228 1a15 3e18          addlw   block_lows
3229 1a16 0084          movwf   __fsr
3230 1a17 1783          bsf     __irp___byte, __irp___bit
3231 1a18 0800          movf    __indf,w
3232 1a19 1703          bsf     __rp1___byte, __rp1___bit
3233 1a1a 008c          movwf   _eedata
3234                    ; line_number = 501
3235                    ;  _eepgd := 1
3236 1a1b 1683          bsf     __rp0___byte, __rp0___bit
3237 1a1c 178c          bsf     _eepgd___byte, _eepgd___bit
3238                    ; line_number = 502
3239                    ;  _wren := 1
3240 1a1d 150c          bsf     _wren___byte, _wren___bit
3241                    ; line_number = 503
3242                    ;  _eecon2 := 0x55
3243 1a1e 3055          movlw   85
3244 1a1f 008d          movwf   _eecon2
3245                    ; line_number = 504
3246                    ;  _eecon2 := 0xaa
3247 1a20 30aa          movlw   170
3248 1a21 008d          movwf   _eecon2
3249                    ; line_number = 505
3250                    ;  _wr := 1
3251 1a22 148c          bsf     _wr___byte, _wr___bit
3252                    ; # The next two instructions must be nop's:
3253                    ; line_number = 507
3254                    ;  assemble
3255                    ; line_number = 508
3256 1a23 0000          nop     
3257                    ; line_number = 509
3258 1a24 0000          nop     
3259                    ; line_number = 510
3260                    ; _wren := 0
3261 1a25 110c          bcf     _wren___byte, _wren___bit
3262                    ; line_number = 511
3263                    ;  block_index := block_index + 1
3264 1a26 1283          bcf     __rp0___byte, __rp0___bit
3265 1a27 1303          bcf     __rp1___byte, __rp1___bit
3266 1a28 0aa6          incf    main__block_index,f
3267                    ; line_number = 512
3268                    ;  _eeadr := _eeadr + 1
3269 1a29 1703          bsf     __rp1___byte, __rp1___bit
3270 1a2a 0a8d          incf    _eeadr,f
3271            
3272 1a2b 2a06          goto    main__20
3273   1a2c :   main__22:
3274   1a2c :   main__21:
3275                    ; Recombine code1_bit_states != code2_bit_states
3276                    ; code.delay=4294967295 back_code.delay=4294967295
3277                    ; <=bit_code_emit@symbol; sym=__c (data:00=>10 code:11=>11)
3278                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3279                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
3280                    ; Recombine code1_bit_states != code2_bit_states
3281                    ; code.delay=4294967295 back_code.delay=4294967295
3282                    ; <=bit_code_emit@symbol; sym=ok (data:00=>10 code:11=>11)
3283                    ; line_number = 498
3284                    ; while ok && block_index < block_size done
3285                    ; Recombine size1 = 0 || size2 = 0
3286   1a2c :   main__23:
3287                    ; code.delay=4294967295 back_code.delay=4294967295
3288                    ; <=bit_code_emit@symbol; sym=ok (data:00=>10 code:11=>11)
3289                    ; line_number = 497
3290                    ;  if ok done
3291                    ; # Now verify that the write worked:
3292                    ; line_number = 515
3293                    ;  _eeadrh := address_high
3294 1a2c 1303          bcf     __rp1___byte, __rp1___bit
3295 1a2d 0824          movf    main__address_high,w
3296 1a2e 1703          bsf     __rp1___byte, __rp1___bit
3297 1a2f 008f          movwf   _eeadrh
3298                    ; line_number = 516
3299                    ;  _eeadr := address_low & 0xfc
3300 1a30 30fc          movlw   252
3301 1a31 1303          bcf     __rp1___byte, __rp1___bit
3302 1a32 0525          andwf   main__address_low,w
3303 1a33 1703          bsf     __rp1___byte, __rp1___bit
3304 1a34 008d          movwf   _eeadr
3305                    ; line_number = 517
3306                    ;  block_index := 0
3307 1a35 3000          movlw   0
3308 1a36 1303          bcf     __rp1___byte, __rp1___bit
3309 1a37 00a6          movwf   main__block_index
3310                    ; line_number = 518
3311                    ;  while block_index < block_size start
3312   1a38 :   main__24:
3313 1a38 3004          movlw   4
3314 1a39 0226          subwf   main__block_index,w
3315                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3316                    ; CASE: true.size=0 && false.size>1
3317                    ; bit_code_emit_helper1: body_code.size=54 true_test=false body_code.delay=0 (non-uniform delay)
3318 1a3a 1803          btfsc   __c___byte, __c___bit
3319 1a3b 2a72          goto    main__27
3320                    ; line_number = 519
3321                    ; _eepgd := 1
3322 1a3c 178c          bsf     _eepgd___byte, _eepgd___bit
3323                    ; line_number = 520
3324                    ;  _rd := 1
3325 1a3d 140c          bsf     _rd___byte, _rd___bit
3326                    ; # The next two instructions must be nop's:
3327                    ; line_number = 522
3328                    ;  assemble
3329                    ; line_number = 523
3330 1a3e 0000          nop     
3331                    ; line_number = 524
3332 1a3f 0000          nop     
3333                    ; line_number = 525
3334                    ; if block_highs[block_index] != _eedath start
3335                    ; Right minus Left
3336 1a40 1283          bcf     __rp0___byte, __rp0___bit
3337 1a41 1303          bcf     __rp1___byte, __rp1___bit
3338 1a42 0826          movf    main__block_index,w
3339 1a43 3e10          addlw   block_highs
3340 1a44 0084          movwf   __fsr
3341 1a45 1783          bsf     __irp___byte, __irp___bit
3342 1a46 0800          movf    __indf,w
3343 1a47 1703          bsf     __rp1___byte, __rp1___bit
3344 1a48 020e          subwf   _eedath,w
3345                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3346                    ; CASE: true.size=0 && false.size>1
3347                    ; bit_code_emit_helper1: body_code.size=10 true_test=false body_code.delay=0 (non-uniform delay)
3348 1a49 1303          bcf     __rp1___byte, __rp1___bit
3349 1a4a 1903          btfsc   __z___byte, __z___bit
3350 1a4b 2a57          goto    main__25
3351 1a4c 1703          bsf     __rp1___byte, __rp1___bit
3352                    ; line_number = 526
3353                    ; error_high := _eeadrh
3354 1a4d 080f          movf    _eeadrh,w
3355 1a4e 1303          bcf     __rp1___byte, __rp1___bit
3356 1a4f 00af          movwf   main__error_high
3357                    ; line_number = 527
3358                    ;  error_low := _eeadr | block_index & 3
3359 1a50 3003          movlw   3
3360 1a51 0526          andwf   main__block_index,w
3361 1a52 1703          bsf     __rp1___byte, __rp1___bit
3362 1a53 040d          iorwf   _eeadr,w
3363 1a54 1303          bcf     __rp1___byte, __rp1___bit
3364 1a55 00b0          movwf   main__error_low
3365                    ; line_number = 528
3366                    ;  errors := errors + 1
3367 1a56 0aae          incf    main__errors,f
3368   1a57 :   main__25:
3369                    ; Recombine size1 = 0 || size2 = 0
3370                    ; code.delay=4294967295 back_code.delay=4294967295
3371                    ; <=bit_code_emit@symbol; sym=__z (data:XX=>00 code:11=>11)
3372                    ; line_number = 525
3373                    ; if block_highs[block_index] != _eedath done
3374                    ; line_number = 529
3375                    ; if block_lows[block_index] != _eedata start
3376                    ; Right minus Left
3377 1a57 0826          movf    main__block_index,w
3378 1a58 3e18          addlw   block_lows
3379 1a59 0084          movwf   __fsr
3380 1a5a 1783          bsf     __irp___byte, __irp___bit
3381 1a5b 0800          movf    __indf,w
3382 1a5c 1703          bsf     __rp1___byte, __rp1___bit
3383 1a5d 020c          subwf   _eedata,w
3384                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3385                    ; CASE: true.size=0 && false.size>1
3386                    ; bit_code_emit_helper1: body_code.size=10 true_test=false body_code.delay=0 (non-uniform delay)
3387 1a5e 1303          bcf     __rp1___byte, __rp1___bit
3388 1a5f 1903          btfsc   __z___byte, __z___bit
3389 1a60 2a6c          goto    main__26
3390 1a61 1703          bsf     __rp1___byte, __rp1___bit
3391                    ; line_number = 530
3392                    ; error_high := _eeadrh
3393 1a62 080f          movf    _eeadrh,w
3394 1a63 1303          bcf     __rp1___byte, __rp1___bit
3395 1a64 00af          movwf   main__error_high
3396                    ; line_number = 531
3397                    ;  error_low := _eeadr | block_index & 3
3398 1a65 3003          movlw   3
3399 1a66 0526          andwf   main__block_index,w
3400 1a67 1703          bsf     __rp1___byte, __rp1___bit
3401 1a68 040d          iorwf   _eeadr,w
3402 1a69 1303          bcf     __rp1___byte, __rp1___bit
3403 1a6a 00b0          movwf   main__error_low
3404                    ; line_number = 532
3405                    ;  errors := errors + 1
3406 1a6b 0aae          incf    main__errors,f
3407   1a6c :   main__26:
3408                    ; Recombine size1 = 0 || size2 = 0
3409                    ; code.delay=4294967295 back_code.delay=4294967295
3410                    ; <=bit_code_emit@symbol; sym=__z (data:XX=>00 code:11=>11)
3411                    ; line_number = 529
3412                    ; if block_lows[block_index] != _eedata done
3413                    ; line_number = 533
3414                    ; call put_character(chr)
3415 1a6c 082b          movf    main__chr,w
3416 1a6d 244f          call    put_character
3417                    ; line_number = 534
3418                    ;  block_index := block_index + 1
3419 1a6e 0aa6          incf    main__block_index,f
3420                    ; line_number = 535
3421                    ;  _eeadr := _eeadr + 1
3422 1a6f 1703          bsf     __rp1___byte, __rp1___bit
3423 1a70 0a8d          incf    _eeadr,f
3424            
3425 1a71 2a38          goto    main__24
3426   1a72 :   main__27:
3427                    ; Recombine size1 = 0 || size2 = 0
3428                    ; code.delay=4294967295 back_code.delay=4294967295
3429                    ; <=bit_code_emit@symbol; sym=__c (data:00=>10 code:11=>11)
3430                    ; line_number = 518
3431                    ;  while block_index < block_size done
3432                    ; # Now mark the words in buffer as processed:
3433                    ; line_number = 538
3434                    ;  address_low := address_low + count
3435 1a72 1303          bcf     __rp1___byte, __rp1___bit
3436 1a73 082d          movf    main__count,w
3437 1a74 07a5          addwf   main__address_low,f
3438                    ; line_number = 539
3439                    ;  if _z start
3440                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3441                    ; CASE: True.size=1 False.size=0
3442 1a75 1903          btfsc   _z___byte, _z___bit
3443                    ; line_number = 540
3444                    ; address_high := address_high + 1
3445 1a76 0aa4          incf    main__address_high,f
3446                    ; Recombine size1 = 0 || size2 = 0
3447                    ; code.delay=4294967295 back_code.delay=4294967295
3448                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
3449                    ; line_number = 539
3450                    ;  if _z done
3451                    ; line_number = 541
3452                    ; index := index + count
3453 1a77 082d          movf    main__count,w
3454 1a78 07b1          addwf   main__index,f
3455 1a79 299e          goto    main__11
3456   1a7a :   main__28:
3457                    ; Recombine size1 = 0 || size2 = 0
3458                    ; code.delay=4294967295 back_code.delay=4294967295
3459                    ; <=bit_code_emit@symbol; sym=__c (data:XX=>00 code:XX=>11)
3460                    ; line_number = 461
3461                    ;  while index < buffer_size done
3462   1a7a :   main__31:
3463   1a7a :   main__29:
3464                    ; Recombine code1_bit_states != code2_bit_states
3465                    ; code.delay=4294967295 back_code.delay=4294967295
3466                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
3467                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3468                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
3469                    ; Recombine code1_bit_states != code2_bit_states
3470                    ; code.delay=4294967295 back_code.delay=4294967295
3471                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3472   1a7a :   main__34:
3473                    ; code.delay=4294967295 back_code.delay=4294967295
3474                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3475                    ; line_number = 441
3476                    ;  if type = 1 done
3477            
3478 1a7a 2a85          goto    main__36
3479   1a7b :   main__35:
3480                    ; line_number = 543
3481                    ; errors := errors + 1
3482 1a7b 0aae          incf    main__errors,f
3483                    ; line_number = 544
3484                    ;  call put_character('c')
3485 1a7c 3063          movlw   99
3486 1a7d 244f          call    put_character
3487                    ; line_number = 545
3488                    ;  call put_character('s')
3489 1a7e 3073          movlw   115
3490 1a7f 244f          call    put_character
3491                    ; line_number = 546
3492                    ;  call put_character('=')
3493 1a80 303d          movlw   61
3494 1a81 244f          call    put_character
3495                    ; line_number = 547
3496                    ;  call put_hex_byte(check_sum)
3497 1a82 082a          movf    main__check_sum,w
3498 1a83 245e          call    put_hex_byte
3499                    ; line_number = 548
3500                    ;  call put_crlf()
3501 1a84 2459          call    put_crlf
3502   1a85 :   main__36:
3503                    ; code.delay=4294967295 back_code.delay=4294967295
3504                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3505                    ; line_number = 432
3506                    ;  if check_sum = 0 done
3507                    ; Recombine size1 = 0 || size2 = 0
3508   1a85 :   main__37:
3509                    ; code.delay=4294967295 back_code.delay=4294967295
3510                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
3511                    ; line_number = 400
3512                    ;  if get_carriage_return() done
3513 1a85 2a8e          goto    main__39
3514   1a86 :   main__38:
3515                    ; line_number = 549
3516                    ; Left minus Right
3517 1a86 30f3          movlw   243
3518 1a87 072c          addwf   main__command,w
3519                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3520                    ; CASE: true.size=0 && false.size>1
3521                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
3522 1a88 1903          btfsc   __z___byte, __z___bit
3523 1a89 2a8e          goto    main__4
3524                    ; # Unrecognized command:
3525                    ; line_number = 554
3526                    ;  call get_carriage_return()
3527 1a8a 2397          call    get_carriage_return
3528                    ; line_number = 555
3529                    ;  call put_character('?')
3530 1a8b 303f          movlw   63
3531 1a8c 244f          call    put_character
3532                    ; line_number = 556
3533                    ;  call put_crlf()
3534 1a8d 2459          call    put_crlf
3535            
3536            
3537   1a8e :   main__4:
3538                    ; # Empty command:
3539                    ; line_number = 551
3540                    ;  do_nothing
3541                    ; Recombine code1_bit_states != code2_bit_states
3542                    ; code.delay=4294967295 back_code.delay=4294967295
3543                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3544   1a8e :   main__39:
3545                    ; code.delay=4294967295 back_code.delay=4294967295
3546                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3547   1a8e :   main__41:
3548                    ; code.delay=4294967295 back_code.delay=4294967295
3549                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3550   1a8e :   main__44:
3551                    ; code.delay=4294967295 back_code.delay=4294967295
3552                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3553   1a8e :   main__47:
3554                    ; code.delay=4294967295 back_code.delay=4294967295
3555                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3556   1a8e :   main__52:
3557                    ; code.delay=4294967295 back_code.delay=4294967295
3558                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3559   1a8e :   main__55:
3560                    ; code.delay=4294967295 back_code.delay=4294967295
3561                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3562   1a8e :   main__61:
3563                    ; code.delay=4294967295 back_code.delay=4294967295
3564                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3565   1a8e :   main__65:
3566                    ; code.delay=4294967295 back_code.delay=4294967295
3567                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3568   1a8e :   main__68:
3569                    ; code.delay=4294967295 back_code.delay=4294967295
3570                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3571   1a8e :   main__70:
3572                    ; code.delay=4294967295 back_code.delay=4294967295
3573                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3574   1a8e :   main__77:
3575                    ; code.delay=4294967295 back_code.delay=4294967295
3576                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3577   1a8e :   main__80:
3578                    ; code.delay=4294967295 back_code.delay=4294967295
3579                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3580                    ; line_number = 274
3581                    ;  if command = 'C' done
3582                    ; line_number = 264
3583                    ;  loop_forever wrap-up
3584 1a8e 2830          goto    main__3
3585                    ; line_number = 264
3586                    ;  loop_forever done
3587                    ; delay after procedure statements=non-uniform
3588            
3589            
3590            
3591            
3592                    ; line_number = 559
3593                    ; procedure clock_adjust
3594   1a8f :   clock_adjust:
3595                    ; Last argument is sitting in W; save into argument variable
3596 1a8f 00c1          movwf   clock_adjust__socket
3597                    ; delay=4294967295
3598                    ; line_number = 560
3599                    ; argument adjust byte
3600 00000040 = clock_adjust__adjust equ globals___0+32
3601                    ; line_number = 561
3602                    ; argument socket byte
3603 00000041 = clock_adjust__socket equ globals___0+33
3604                    ; line_number = 562
3605                    ;  returns_nothing
3606            
3607                    ; # This procedure will adjust the clock to the slave.
3608            
3609                    ; line_number = 566
3610                    ;  local command byte
3611 00000037 = clock_adjust__command equ globals___0+23
3612                    ; line_number = 567
3613                    ;  local count byte
3614 00000038 = clock_adjust__count equ globals___0+24
3615                    ; line_number = 568
3616                    ;  local error byte
3617 00000039 = clock_adjust__error equ globals___0+25
3618                    ; line_number = 569
3619                    ;  local error_minimum byte
3620 0000003a = clock_adjust__error_minimum equ globals___0+26
3621                    ; line_number = 570
3622                    ;  local high byte
3623 0000003b = clock_adjust__high equ globals___0+27
3624                    ; line_number = 571
3625                    ;  local in_mask byte
3626 0000003c = clock_adjust__in_mask equ globals___0+28
3627                    ; line_number = 572
3628                    ;  local in_out_register byte
3629 0000003d = clock_adjust__in_out_register equ globals___0+29
3630                    ; line_number = 573
3631                    ;  local low byte
3632 0000003e = clock_adjust__low equ globals___0+30
3633                    ; line_number = 574
3634                    ;  local target byte
3635 0000003f = clock_adjust__target equ globals___0+31
3636            
3637                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
3638                    ; line_number = 576
3639                    ;  target := iterations_low - adjust
3640 1a90 0940          comf    clock_adjust__adjust,w
3641 1a91 3ea3          addlw   163
3642 1a92 00bf          movwf   clock_adjust__target
3643                    ; line_number = 577
3644                    ;  count := 2
3645 1a93 3002          movlw   2
3646 1a94 00b8          movwf   clock_adjust__count
3647                    ; line_number = 578
3648                    ;  error := 0xff
3649 1a95 30ff          movlw   255
3650 1a96 00b9          movwf   clock_adjust__error
3651                    ; line_number = 579
3652                    ;  error_minimum := 0xf0
3653 1a97 30f0          movlw   240
3654 1a98 00ba          movwf   clock_adjust__error_minimum
3655            
3656                    ; # Print out the target:
3657                    ; line_number = 582
3658                    ;  call put_character('T')
3659 1a99 3054          movlw   84
3660 1a9a 244f          call    put_character
3661                    ; line_number = 583
3662                    ;  call put_hex_byte(iterations_high)
3663 1a9b 3005          movlw   5
3664 1a9c 245e          call    put_hex_byte
3665                    ; line_number = 584
3666                    ;  call put_hex_byte(target)
3667 1a9d 083f          movf    clock_adjust__target,w
3668 1a9e 245e          call    put_hex_byte
3669                    ; line_number = 585
3670                    ;  call put_crlf()
3671 1a9f 2459          call    put_crlf
3672            
3673                    ; line_number = 587
3674                    ;  loop_forever start
3675   1aa0 :   clock_adjust__1:
3676                    ; # Print out the clock value:
3677                    ; line_number = 589
3678                    ;  call put_character('C')
3679 1aa0 3043          movlw   67
3680 1aa1 244f          call    put_character
3681                    ; line_number = 590
3682                    ;  call put_byte(0xfa, socket)
3683 1aa2 30fa          movlw   250
3684 1aa3 00d8          movwf   put_byte__character
3685 1aa4 0841          movf    clock_adjust__socket,w
3686 1aa5 23fc          call    put_byte
3687                    ; line_number = 591
3688                    ;  call put_hex_byte(get_byte(socket))
3689 1aa6 0841          movf    clock_adjust__socket,w
3690 1aa7 235d          call    get_byte
3691 1aa8 245e          call    put_hex_byte
3692                    ; line_number = 592
3693                    ;  call put_space()
3694 1aa9 2471          call    put_space
3695            
3696                    ; line_number = 594
3697                    ;  in_mask := in_masks(socket)
3698 1aaa 0841          movf    clock_adjust__socket,w
3699 1aab 24d5          call    in_masks
3700 1aac 00bc          movwf   clock_adjust__in_mask
3701                    ; line_number = 595
3702                    ;  in_out_register := in_out_registers(socket)
3703 1aad 0841          movf    clock_adjust__socket,w
3704 1aae 24c3          call    in_out_registers
3705 1aaf 00bd          movwf   clock_adjust__in_out_register
3706            
3707                    ; # Ask for a timing byte:
3708                    ; line_number = 598
3709                    ;  call put_byte(0xfb, socket)
3710 1ab0 30fb          movlw   251
3711 1ab1 00d8          movwf   put_byte__character
3712 1ab2 0841          movf    clock_adjust__socket,w
3713 1ab3 23fc          call    put_byte
3714            
3715                    ; # Nasty:
3716                    ; line_number = 601
3717                    ;  low := 0
3718 1ab4 3000          movlw   0
3719 1ab5 00be          movwf   clock_adjust__low
3720                    ; line_number = 602
3721                    ;  high := 0
3722 1ab6 3000          movlw   0
3723 1ab7 00bb          movwf   clock_adjust__high
3724                    ; line_number = 603
3725                    ;  while ports[in_out_register] & in_mask != 0 start
3726   1ab8 :   clock_adjust__2:
3727                    ; Left minus Right
3728 1ab8 083d          movf    clock_adjust__in_out_register,w
3729 1ab9 3e05          addlw   ports
3730 1aba 0084          movwf   __fsr
3731 1abb 1383          bcf     __irp___byte, __irp___bit
3732 1abc 0800          movf    __indf,w
3733 1abd 053c          andwf   clock_adjust__in_mask,w
3734                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3735                    ; CASE: true_code.size=0 && false_code.size=1
3736 1abe 1d03          btfss   __z___byte, __z___bit
3737                    ; true.size=0 false_size=1 false=GOTO
3738 1abf 2ab8          goto    clock_adjust__2
3739                    ; Recombine size1 = 0 || size2 = 0
3740                    ; code.delay=4294967295 back_code.delay=4294967295
3741                    ; <=bit_code_emit@symbol; sym=__z (data:XX=>XX code:11=>11)
3742                    ; line_number = 603
3743                    ;  while ports[in_out_register] & in_mask != 0 done
3744                    ; line_number = 605
3745                    ; while ports[in_out_register] & in_mask = 0 start
3746   1ac0 :   clock_adjust__3:
3747                    ; Left minus Right
3748 1ac0 083d          movf    clock_adjust__in_out_register,w
3749 1ac1 3e05          addlw   ports
3750 1ac2 0084          movwf   __fsr
3751 1ac3 1383          bcf     __irp___byte, __irp___bit
3752 1ac4 0800          movf    __indf,w
3753 1ac5 053c          andwf   clock_adjust__in_mask,w
3754                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3755                    ; CASE: true_code.size = 0 && false_code.size > 1
3756                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
3757 1ac6 1d03          btfss   __z___byte, __z___bit
3758 1ac7 2acc          goto    clock_adjust__4
3759                    ; line_number = 606
3760                    ; low := low + 1
3761 1ac8 0abe          incf    clock_adjust__low,f
3762                    ; line_number = 607
3763                    ;  if _z start
3764                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3765                    ; CASE: True.size=1 False.size=0
3766 1ac9 1903          btfsc   _z___byte, _z___bit
3767                    ; line_number = 608
3768                    ; high := high + 1
3769 1aca 0abb          incf    clock_adjust__high,f
3770            
3771                    ; Recombine size1 = 0 || size2 = 0
3772                    ; code.delay=4294967295 back_code.delay=4294967295
3773                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
3774                    ; line_number = 607
3775                    ;  if _z done
3776 1acb 2ac0          goto    clock_adjust__3
3777                    ; Recombine size1 = 0 || size2 = 0
3778   1acc :   clock_adjust__4:
3779                    ; code.delay=4294967295 back_code.delay=4294967295
3780                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
3781                    ; line_number = 605
3782                    ; while ports[in_out_register] & in_mask = 0 done
3783                    ; # Print out high and low:
3784                    ; line_number = 611
3785                    ;  call put_character('H')
3786 1acc 3048          movlw   72
3787 1acd 244f          call    put_character
3788                    ; line_number = 612
3789                    ;  call put_hex_byte(high)
3790 1ace 083b          movf    clock_adjust__high,w
3791 1acf 245e          call    put_hex_byte
3792                    ; line_number = 613
3793                    ;  call put_space()
3794 1ad0 2471          call    put_space
3795                    ; line_number = 614
3796                    ;  call put_character('L')
3797 1ad1 304c          movlw   76
3798 1ad2 244f          call    put_character
3799                    ; line_number = 615
3800                    ;  call put_hex_byte(low)
3801 1ad3 083e          movf    clock_adjust__low,w
3802 1ad4 245e          call    put_hex_byte
3803                    ; line_number = 616
3804                    ;  call put_space()
3805 1ad5 2471          call    put_space
3806            
3807                    ; # Now think about adjusting clock.
3808                    ; line_number = 619
3809                    ;  if high > iterations_high start
3810 1ad6 3005          movlw   5
3811 1ad7 023b          subwf   clock_adjust__high,w
3812 1ad8 1903          btfsc   __z___byte, __z___bit
3813 1ad9 1003          bcf     __c___byte, __c___bit
3814                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3815                    ; CASE: true_code_size > 1 && false_code_size > 1
3816                    ; true_code_size=5 false_code_size=38
3817 1ada 1c03          btfss   __c___byte, __c___bit
3818 1adb 2ae2          goto    clock_adjust__11
3819                    ; # Clock pulse is too long; slave clock is too slow:
3820                    ; line_number = 621
3821                    ;  command := 0xf9
3822 1adc 30f9          movlw   249
3823 1add 00b7          movwf   clock_adjust__command
3824                    ; line_number = 622
3825                    ;  error := high - target
3826 1ade 083f          movf    clock_adjust__target,w
3827 1adf 023b          subwf   clock_adjust__high,w
3828 1ae0 00b9          movwf   clock_adjust__error
3829                    ; Recombine code1_bit_states != code2_bit_states
3830 1ae1 2b08          goto    clock_adjust__12
3831   1ae2 :   clock_adjust__11:
3832                    ; line_number = 623
3833 1ae2 3005          movlw   5
3834 1ae3 023b          subwf   clock_adjust__high,w
3835                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3836                    ; CASE: true_code_size > 1 && false_code_size > 1
3837                    ; true_code_size=28 false_code_size=5
3838 1ae4 1c03          btfss   __c___byte, __c___bit
3839 1ae5 2b03          goto    clock_adjust__9
3840                    ; # The high 8-bits are equal:
3841                    ; line_number = 629
3842                    ;  if low > target start
3843 1ae6 083f          movf    clock_adjust__target,w
3844 1ae7 023e          subwf   clock_adjust__low,w
3845 1ae8 1903          btfsc   __z___byte, __z___bit
3846 1ae9 1003          bcf     __c___byte, __c___bit
3847                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3848                    ; CASE: true_code_size > 1 && false_code_size > 1
3849                    ; true_code_size=5 false_code_size=16
3850 1aea 1c03          btfss   __c___byte, __c___bit
3851 1aeb 2af2          goto    clock_adjust__7
3852                    ; # Clock pulse is too long; slave clock is too slow:
3853                    ; line_number = 631
3854                    ;  command := 0xf9
3855 1aec 30f9          movlw   249
3856 1aed 00b7          movwf   clock_adjust__command
3857                    ; line_number = 632
3858                    ;  error := low - target
3859 1aee 083f          movf    clock_adjust__target,w
3860 1aef 023e          subwf   clock_adjust__low,w
3861 1af0 00b9          movwf   clock_adjust__error
3862                    ; Recombine code1_bit_states != code2_bit_states
3863 1af1 2b02          goto    clock_adjust__8
3864   1af2 :   clock_adjust__7:
3865                    ; line_number = 633
3866 1af2 083f          movf    clock_adjust__target,w
3867 1af3 023e          subwf   clock_adjust__low,w
3868                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3869                    ; CASE: true_code_size > 1 && false_code_size > 1
3870                    ; true_code_size=6 false_code_size=5
3871 1af4 1c03          btfss   __c___byte, __c___bit
3872 1af5 2afd          goto    clock_adjust__5
3873                    ; # Exact match; we are done:
3874                    ; line_number = 639
3875                    ;  command := 0
3876 1af6 3000          movlw   0
3877 1af7 00b7          movwf   clock_adjust__command
3878                    ; line_number = 640
3879                    ;  error := 0
3880 1af8 3000          movlw   0
3881 1af9 00b9          movwf   clock_adjust__error
3882                    ; line_number = 641
3883                    ;  error_minimum := 0
3884 1afa 3000          movlw   0
3885 1afb 00ba          movwf   clock_adjust__error_minimum
3886            
3887            
3888 1afc 2b02          goto    clock_adjust__6
3889   1afd :   clock_adjust__5:
3890                    ; # Clock pulse is too short; slave clock is too fast:
3891                    ; line_number = 635
3892                    ;  command := 0xf8
3893 1afd 30f8          movlw   248
3894 1afe 00b7          movwf   clock_adjust__command
3895                    ; line_number = 636
3896                    ;  error := target - low
3897 1aff 083e          movf    clock_adjust__low,w
3898 1b00 023f          subwf   clock_adjust__target,w
3899 1b01 00b9          movwf   clock_adjust__error
3900   1b02 :   clock_adjust__6:
3901                    ; code.delay=4294967295 back_code.delay=4294967295
3902                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
3903   1b02 :   clock_adjust__8:
3904                    ; code.delay=4294967295 back_code.delay=4294967295
3905                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
3906                    ; line_number = 629
3907                    ;  if low > target done
3908                    ; Recombine code1_bit_states != code2_bit_states
3909 1b02 2b08          goto    clock_adjust__10
3910   1b03 :   clock_adjust__9:
3911                    ; # Clock pulse is too short; slave clock is too fast:
3912                    ; line_number = 625
3913                    ;  command := 0xf8
3914 1b03 30f8          movlw   248
3915 1b04 00b7          movwf   clock_adjust__command
3916                    ; line_number = 626
3917                    ;  error := target - high
3918 1b05 083b          movf    clock_adjust__high,w
3919 1b06 023f          subwf   clock_adjust__target,w
3920 1b07 00b9          movwf   clock_adjust__error
3921   1b08 :   clock_adjust__10:
3922                    ; code.delay=4294967295 back_code.delay=4294967295
3923                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
3924   1b08 :   clock_adjust__12:
3925                    ; code.delay=4294967295 back_code.delay=4294967295
3926                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
3927                    ; line_number = 619
3928                    ;  if high > iterations_high done
3929                    ; # Print out the error and error minimum:
3930                    ; line_number = 645
3931                    ;  call put_character('E')
3932 1b08 3045          movlw   69
3933 1b09 244f          call    put_character
3934                    ; line_number = 646
3935                    ;  call put_hex_byte(error)
3936 1b0a 0839          movf    clock_adjust__error,w
3937 1b0b 245e          call    put_hex_byte
3938                    ; line_number = 647
3939                    ;  call put_space()
3940 1b0c 2471          call    put_space
3941                    ; line_number = 648
3942                    ;  call put_character('M')
3943 1b0d 304d          movlw   77
3944 1b0e 244f          call    put_character
3945                    ; line_number = 649
3946                    ;  call put_hex_byte(error_minimum)
3947 1b0f 083a          movf    clock_adjust__error_minimum,w
3948 1b10 245e          call    put_hex_byte
3949                    ; line_number = 650
3950                    ;  call put_space()
3951 1b11 2471          call    put_space
3952            
3953                    ; line_number = 652
3954                    ;  if error = error_minimum start
3955                    ; Left minus Right
3956 1b12 083a          movf    clock_adjust__error_minimum,w
3957 1b13 0239          subwf   clock_adjust__error,w
3958                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3959                    ; CASE: true_code_size > 1 && false_code_size > 1
3960                    ; true_code_size=2 false_code_size=14
3961 1b14 1d03          btfss   __z___byte, __z___bit
3962 1b15 2b19          goto    clock_adjust__16
3963                    ; line_number = 653
3964                    ; call put_crlf()
3965 1b16 2459          call    put_crlf
3966                    ; line_number = 654
3967                    ;  return start
3968                    ; line_number = 654
3969 1b17 3400          retlw   0
3970                    ; line_number = 654
3971                    ;  return done
3972 1b18 2b27          goto    clock_adjust__17
3973   1b19 :   clock_adjust__16:
3974                    ; line_number = 655
3975 1b19 083a          movf    clock_adjust__error_minimum,w
3976 1b1a 0239          subwf   clock_adjust__error,w
3977                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3978                    ; CASE: true_code_size > 1 && false_code_size > 1
3979                    ; true_code_size=6 false_code_size=3
3980 1b1b 1c03          btfss   __c___byte, __c___bit
3981 1b1c 2b24          goto    clock_adjust__14
3982                    ; line_number = 659
3983                    ; count := count - 1
3984 1b1d 03b8          decf    clock_adjust__count,f
3985                    ; line_number = 660
3986                    ;  if _z start
3987                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3988                    ; CASE: true_code.size = 0 && false_code.size > 1
3989                    ; bit_code_emit_helper1: body_code.size=3 true_test=true body_code.delay=0 (non-uniform delay)
3990 1b1e 1d03          btfss   _z___byte, _z___bit
3991 1b1f 2b23          goto    clock_adjust__13
3992                    ; line_number = 661
3993                    ; error_minimum := error_minimum + 1
3994 1b20 0aba          incf    clock_adjust__error_minimum,f
3995                    ; line_number = 662
3996                    ;  count := 2
3997 1b21 3002          movlw   2
3998 1b22 00b8          movwf   clock_adjust__count
3999            
4000                    ; Recombine size1 = 0 || size2 = 0
4001   1b23 :   clock_adjust__13:
4002                    ; code.delay=4294967295 back_code.delay=4294967295
4003                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
4004                    ; line_number = 660
4005                    ;  if _z done
4006                    ; Recombine code1_bit_states != code2_bit_states
4007 1b23 2b27          goto    clock_adjust__15
4008   1b24 :   clock_adjust__14:
4009                    ; line_number = 656
4010                    ; error_minimum := error
4011 1b24 0839          movf    clock_adjust__error,w
4012 1b25 00ba          movwf   clock_adjust__error_minimum
4013                    ; line_number = 657
4014                    ;  error := error + 1
4015 1b26 0ab9          incf    clock_adjust__error,f
4016   1b27 :   clock_adjust__15:
4017                    ; code.delay=4294967295 back_code.delay=4294967295
4018                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
4019   1b27 :   clock_adjust__17:
4020                    ; code.delay=4294967295 back_code.delay=4294967295
4021                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
4022                    ; line_number = 652
4023                    ;  if error = error_minimum done
4024                    ; # Now adjust the clock:
4025                    ; line_number = 665
4026                    ;  call put_byte(command, socket)
4027 1b27 0837          movf    clock_adjust__command,w
4028 1b28 00d8          movwf   put_byte__character
4029 1b29 0841          movf    clock_adjust__socket,w
4030 1b2a 23fc          call    put_byte
4031            
4032                    ; line_number = 667
4033                    ;  call put_crlf()
4034 1b2b 2459          call    put_crlf
4035            
4036            
4037                    ; line_number = 587
4038                    ;  loop_forever wrap-up
4039 1b2c 2aa0          goto    clock_adjust__1
4040                    ; line_number = 587
4041                    ;  loop_forever done
4042                    ; delay after procedure statements=non-uniform
4043            
4044            
4045            
4046            
4047                    ; line_number = 670
4048                    ; procedure execute
4049   1b2d :   execute:
4050                    ; arguments_none
4051                    ; line_number = 672
4052                    ;  returns_nothing
4053            
4054                    ; # This procedure will transfer control to location program_origin.
4055            
4056                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4057                    ; line_number = 676
4058                    ;  _pclath := 0
4059 1b2d 3000          movlw   0
4060 1b2e 008a          movwf   _pclath
4061                    ; line_number = 677
4062                    ;  _pcl := program_origin
4063 1b2f 3008          movlw   8
4064 1b30 0082          movwf   _pcl
4065            
4066            
4067                    ; delay after procedure statements=non-uniform
4068                    ; Implied return
4069 1b31 3400          retlw   0
4070            
4071            
4072            
4073            
4074                    ; line_number = 680
4075                    ; procedure goto_command
4076   1b32 :   goto_command:
4077                    ; arguments_none
4078                    ; line_number = 682
4079                    ;  returns_nothing
4080            
4081                    ; line_number = 684
4082                    ;  local address_low byte
4083 00000042 = goto_command__address_low equ globals___0+34
4084                    ; line_number = 685
4085                    ;  local address_high byte
4086 00000043 = goto_command__address_high equ globals___0+35
4087            
4088                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4089                    ; line_number = 687
4090                    ;  address_high := get_hex_byte()
4091 1b32 23cd          call    get_hex_byte
4092 1b33 00c3          movwf   goto_command__address_high
4093                    ; line_number = 688
4094                    ;  address_low := get_hex_byte()
4095 1b34 23cd          call    get_hex_byte
4096 1b35 00c2          movwf   goto_command__address_low
4097                    ; line_number = 689
4098                    ;  if get_carriage_return() start
4099 1b36 2397          call    get_carriage_return
4100                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4101                    ; CASE: true_code.size = 0 && false_code.size > 1
4102                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
4103 1b37 1e6f          btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
4104 1b38 2b3d          goto    goto_command__1
4105                    ; line_number = 690
4106                    ; _pclath := address_high
4107 1b39 0843          movf    goto_command__address_high,w
4108 1b3a 008a          movwf   _pclath
4109                    ; line_number = 691
4110                    ;  _pcl := address_low
4111 1b3b 0842          movf    goto_command__address_low,w
4112 1b3c 0082          movwf   _pcl
4113            
4114            
4115                    ; Recombine size1 = 0 || size2 = 0
4116   1b3d :   goto_command__1:
4117                    ; code.delay=4294967295 back_code.delay=4294967295
4118                    ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
4119                    ; line_number = 689
4120                    ;  if get_carriage_return() done
4121                    ; delay after procedure statements=non-uniform
4122                    ; Implied return
4123 1b3d 3400          retlw   0
4124            
4125            
4126            
4127            
4128                    ; # The `id' procedures are below:
4129            
4130                    ; line_number = 696
4131                    ; procedure id8
4132   1b3e :   id8:
4133                    ; Last argument is sitting in W; save into argument variable
4134 1b3e 00c5          movwf   id8__socket
4135                    ; delay=4294967295
4136                    ; line_number = 697
4137                    ; argument socket byte
4138 00000045 = id8__socket equ globals___0+37
4139                    ; line_number = 698
4140                    ;  returns_nothing
4141            
4142                    ; # This procedure will print out 8 bytes of id:
4143            
4144                    ; line_number = 702
4145                    ;  local count byte
4146 00000044 = id8__count equ globals___0+36
4147            
4148                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4149                    ; line_number = 704
4150                    ;  loop_exactly 8 start
4151 00000066 = id8__1 equ globals___0+70
4152 1b3f 3008          movlw   8
4153 1b40 00e6          movwf   id8__1
4154   1b41 :   id8__2:
4155                    ; line_number = 705
4156                    ; call put_hex_byte(put_get_byte(id_next, socket))
4157 1b41 30fc          movlw   252
4158 1b42 00d0          movwf   put_get_byte__command
4159 1b43 0845          movf    id8__socket,w
4160 1b44 23f4          call    put_get_byte
4161 1b45 245e          call    put_hex_byte
4162                    ; line_number = 706
4163                    ;  call put_space()
4164 1b46 2471          call    put_space
4165                    ; line_number = 704
4166                    ;  loop_exactly 8 wrap-up
4167 1b47 0be6          decfsz  id8__1,f
4168 1b48 2b41          goto    id8__2
4169                    ; line_number = 704
4170                    ;  loop_exactly 8 done
4171                    ; line_number = 707
4172                    ; call put_crlf()
4173 1b49 2459          call    put_crlf
4174            
4175            
4176                    ; delay after procedure statements=non-uniform
4177                    ; Implied return
4178 1b4a 3400          retlw   0
4179            
4180            
4181            
4182            
4183                    ; line_number = 710
4184                    ; procedure id_string
4185   1b4b :   id_string:
4186                    ; Last argument is sitting in W; save into argument variable
4187 1b4b 00c7          movwf   id_string__socket
4188                    ; delay=4294967295
4189                    ; line_number = 711
4190                    ; argument socket byte
4191 00000047 = id_string__socket equ globals___0+39
4192                    ; line_number = 712
4193                    ;  returns_nothing
4194            
4195                    ; # This procedure will print out a string from the id:
4196            
4197                    ; line_number = 716
4198                    ;  local size byte
4199 00000046 = id_string__size equ globals___0+38
4200            
4201                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4202                    ; line_number = 718
4203                    ;  size := put_get_byte(id_next, socket)
4204 1b4c 30fc          movlw   252
4205 1b4d 00d0          movwf   put_get_byte__command
4206 1b4e 0847          movf    id_string__socket,w
4207 1b4f 23f4          call    put_get_byte
4208 1b50 00c6          movwf   id_string__size
4209                    ; line_number = 719
4210                    ;  while size != 0 start
4211   1b51 :   id_string__1:
4212                    ; Left minus Right
4213 1b51 0846          movf    id_string__size,w
4214                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4215                    ; CASE: true.size=0 && false.size>1
4216                    ; bit_code_emit_helper1: body_code.size=7 true_test=false body_code.delay=0 (non-uniform delay)
4217 1b52 1903          btfsc   __z___byte, __z___bit
4218 1b53 2b5b          goto    id_string__2
4219                    ; line_number = 720
4220                    ; call put_character(put_get_byte(id_next, socket))
4221 1b54 30fc          movlw   252
4222 1b55 00d0          movwf   put_get_byte__command
4223 1b56 0847          movf    id_string__socket,w
4224 1b57 23f4          call    put_get_byte
4225 1b58 244f          call    put_character
4226                    ; line_number = 721
4227                    ;  size := size - 1
4228 1b59 03c6          decf    id_string__size,f
4229 1b5a 2b51          goto    id_string__1
4230   1b5b :   id_string__2:
4231                    ; Recombine size1 = 0 || size2 = 0
4232                    ; code.delay=4294967295 back_code.delay=4294967295
4233                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
4234                    ; line_number = 719
4235                    ;  while size != 0 done
4236                    ; line_number = 722
4237                    ; call put_crlf()
4238 1b5b 2459          call    put_crlf
4239            
4240            
4241                    ; delay after procedure statements=non-uniform
4242                    ; Implied return
4243 1b5c 3400          retlw   0
4244            
4245            
4246            
4247            
4248                    ; # The `get' procedures are below:
4249            
4250                    ; line_number = 727
4251                    ; procedure get_byte
4252   1b5d :   get_byte:
4253                    ; Last argument is sitting in W; save into argument variable
4254 1b5d 00cc          movwf   get_byte__socket
4255                    ; delay=4294967295
4256                    ; line_number = 728
4257                    ; argument socket byte
4258 0000004c = get_byte__socket equ globals___0+44
4259                    ; line_number = 729
4260                    ;  returns byte
4261            
4262                    ; # This procedure will get a byte from the currently selected
4263                    ; # input.  If no byte is received in a reasonable amount of
4264                    ; # time, 0xfc is returned.
4265            
4266                    ; line_number = 735
4267                    ;  local counter byte
4268 00000048 = get_byte__counter equ globals___0+40
4269                    ; line_number = 736
4270                    ;  local character byte
4271 00000049 = get_byte__character equ globals___0+41
4272                    ; line_number = 737
4273                    ;  local in_mask byte
4274 0000004a = get_byte__in_mask equ globals___0+42
4275                    ; line_number = 738
4276                    ;  local in_out_register byte
4277 0000004b = get_byte__in_out_register equ globals___0+43
4278            
4279                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4280                    ; line_number = 740
4281                    ;  in_out_register := in_out_registers(socket)
4282 1b5e 084c          movf    get_byte__socket,w
4283 1b5f 24c3          call    in_out_registers
4284 1b60 00cb          movwf   get_byte__in_out_register
4285                    ; line_number = 741
4286                    ;  in_mask := in_masks(socket)
4287 1b61 084c          movf    get_byte__socket,w
4288 1b62 24d5          call    in_masks
4289 1b63 00ca          movwf   get_byte__in_mask
4290            
4291                    ; line_number = 743
4292                    ;  receiving := 1
4293 1b64 156f          bsf     receiving___byte, receiving___bit
4294                    ; line_number = 744
4295                    ;  loop_exactly 255 start
4296 00000067 = get_byte__1 equ globals___0+71
4297 1b65 30ff          movlw   255
4298 1b66 00e7          movwf   get_byte__1
4299   1b67 :   get_byte__2:
4300                    ; line_number = 745
4301                    ; if ports[in_out_register] & in_mask = 0 start
4302                    ; Left minus Right
4303 1b67 084b          movf    get_byte__in_out_register,w
4304 1b68 3e05          addlw   ports
4305 1b69 0084          movwf   __fsr
4306 1b6a 1383          bcf     __irp___byte, __irp___bit
4307 1b6b 0800          movf    __indf,w
4308 1b6c 054a          andwf   get_byte__in_mask,w
4309                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4310                    ; CASE: true_code.size = 0 && false_code.size > 1
4311                    ; bit_code_emit_helper1: body_code.size=34 true_test=true body_code.delay=0 (non-uniform delay)
4312 1b6d 1d03          btfss   __z___byte, __z___bit
4313 1b6e 2b93          goto    get_byte__9
4314                    ; # We got a start bit:
4315                    ; line_number = 747
4316                    ;  call delay()
4317 1b6f 24a8          call    delay
4318                    ; line_number = 748
4319                    ;  call delay()
4320 1b70 24a8          call    delay
4321                    ; line_number = 749
4322                    ;  call delay()
4323 1b71 24a8          call    delay
4324            
4325                    ; # 2 Instructions for loop_exactly initialization:
4326                    ; line_number = 752
4327                    ;  delay extra_bit_instructions - 2 start
4328                    ; Delay expression evaluates to 22
4329                    ; # Sample 1/3 of bit into each character:
4330                    ; line_number = 754
4331                    ;  character := 0
4332                    ; Delay at assignment is 0
4333 1b72 3000          movlw   0
4334 1b73 00c9          movwf   get_byte__character
4335            
4336                    ; Delay 20 cycles
4337                    ; Delay loop takes 5 * 4 = 20 cycles
4338 1b74 3005          movlw   5
4339   1b75 :   get_byte__3:
4340 1b75 3eff          addlw   255
4341 1b76 1d03          btfss   __z___byte, __z___bit
4342 1b77 2b75          goto    get_byte__3
4343                    ; line_number = 752
4344                    ;  delay extra_bit_instructions - 2 done
4345                    ; line_number = 756
4346                    ; loop_exactly 8 start
4347 00000068 = get_byte__4 equ globals___0+72
4348 1b78 3008          movlw   8
4349 1b79 00e8          movwf   get_byte__4
4350   1b7a :   get_byte__5:
4351                    ; line_number = 757
4352                    ; call delay()
4353 1b7a 24a8          call    delay
4354                    ; # 3 Instructions for loop overhead:
4355                    ; line_number = 759
4356                    ;  delay extra_bit_instructions - 3 start
4357                    ; Delay expression evaluates to 21
4358                    ; line_number = 760
4359                    ; character := character >> 1
4360                    ; Delay at assignment is 0
4361                    ; Assignment of variable to self (no code needed)
4362 1b7b 0cc9          rrf     get_byte__character,f
4363 1b7c 13c9          bcf     get_byte__character, 7
4364                    ; line_number = 761
4365                    ;  if ports[in_out_register] & in_mask != 0 start
4366                    ; Delay at if is 2
4367                    ; Left minus Right
4368 1b7d 084b          movf    get_byte__in_out_register,w
4369 1b7e 3e05          addlw   ports
4370 1b7f 0084          movwf   __fsr
4371 1b80 1383          bcf     __irp___byte, __irp___bit
4372 1b81 0800          movf    __indf,w
4373 1b82 054a          andwf   get_byte__in_mask,w
4374                    ; (after recombine) true_delay=0, false_delay=1 uniform_delay=true
4375                    ; CASE: true_code.size=0 && false_code.size=1
4376 1b83 1d03          btfss   __z___byte, __z___bit
4377                    ; line_number = 762
4378                    ; character@7 := 1
4379                    ; Delay at assignment is 0
4380 00000049 = get_byte__select__6___byte equ get_byte__character
4381 00000007 = get_byte__select__6___bit equ 7
4382 1b84 17c9          bsf     get_byte__select__6___byte, get_byte__select__6___bit
4383                    ; code.delay=10 back_code.delay=0
4384                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
4385                    ; Uniform delay broke in relation_code_emit
4386                    ; if final true delay=1 false delay=0 code delay=10
4387                    ; line_number = 761
4388                    ;  if ports[in_out_register] & in_mask != 0 done
4389                    ; Delay 11 cycles
4390                    ; Delay loop takes 2 * 4 = 8 cycles
4391 1b85 3002          movlw   2
4392   1b86 :   get_byte__7:
4393 1b86 3eff          addlw   255
4394 1b87 1d03          btfss   __z___byte, __z___bit
4395 1b88 2b86          goto    get_byte__7
4396 1b89 2b8a          goto    get_byte__8
4397   1b8a :   get_byte__8:
4398 1b8a 0000          nop     
4399                    ; line_number = 759
4400                    ;  delay extra_bit_instructions - 3 done
4401                    ; line_number = 763
4402                    ; call delay()
4403 1b8b 24a8          call    delay
4404                    ; line_number = 764
4405                    ;  call delay()
4406 1b8c 24a8          call    delay
4407            
4408                    ; line_number = 756
4409                    ; loop_exactly 8 wrap-up
4410 1b8d 0be8          decfsz  get_byte__4,f
4411 1b8e 2b7a          goto    get_byte__5
4412                    ; line_number = 756
4413                    ; loop_exactly 8 done
4414                    ; # Now sleep through 2/3's of the stop bit:
4415                    ; line_number = 767
4416                    ;  call delay()
4417 1b8f 24a8          call    delay
4418                    ; line_number = 768
4419                    ;  call delay()
4420 1b90 24a8          call    delay
4421                    ; line_number = 769
4422                    ;  return character start
4423                    ; line_number = 769
4424 1b91 0849          movf    get_byte__character,w
4425 1b92 0008          return  
4426                    ; line_number = 769
4427                    ;  return character done
4428                    ; Recombine size1 = 0 || size2 = 0
4429   1b93 :   get_byte__9:
4430                    ; code.delay=4294967295 back_code.delay=4294967295
4431                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
4432                    ; line_number = 745
4433                    ; if ports[in_out_register] & in_mask = 0 done
4434                    ; line_number = 770
4435                    ; call delay()
4436 1b93 24a8          call    delay
4437                    ; line_number = 744
4438                    ;  loop_exactly 255 wrap-up
4439 1b94 0be7          decfsz  get_byte__1,f
4440 1b95 2b67          goto    get_byte__2
4441                    ; line_number = 744
4442                    ;  loop_exactly 255 done
4443                    ; line_number = 771
4444                    ; return 0xfc start
4445                    ; line_number = 771
4446 1b96 34fc          retlw   252
4447                    ; line_number = 771
4448                    ; return 0xfc done
4449            
4450            
4451                    ; delay after procedure statements=non-uniform
4452            
4453            
4454            
4455            
4456 0000006f = get_carriage_return__0return___byte equ globals___0+79
4457 00000004 = get_carriage_return__0return___bit equ 4
4458                    ; line_number = 774
4459                    ; procedure get_carriage_return
4460   1b97 :   get_carriage_return:
4461                    ; arguments_none
4462                    ; line_number = 776
4463                    ;  returns bit
4464            
4465                    ; # This procedure will verify that the next character is
4466                    ; # a carriage return.  If the next character is a carriage
4467                    ; # return a 1 is returned.  Otherwise, characters are read
4468                    ; # until a carriage return is encountered and 0 is returned.
4469                    ; # If any errors occurred (i.e. ok = 0), a "?" followed by
4470                    ; # carriage-return line-feed is returned.
4471            
4472                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4473                    ; line_number = 785
4474                    ;  while get_character() != carriage_return start
4475   1b97 :   get_carriage_return__1:
4476                    ; Left minus Right
4477 1b97 23a7          call    get_character
4478 1b98 3ef3          addlw   243
4479                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4480                    ; CASE: true.size=0 && false.size>1
4481                    ; bit_code_emit_helper1: body_code.size=2 true_test=false body_code.delay=0 (non-uniform delay)
4482 1b99 1903          btfsc   __z___byte, __z___bit
4483 1b9a 2b9d          goto    get_carriage_return__2
4484                    ; line_number = 786
4485                    ; ok := 0
4486 1b9b 106f          bcf     ok___byte, ok___bit
4487 1b9c 2b97          goto    get_carriage_return__1
4488   1b9d :   get_carriage_return__2:
4489                    ; Recombine size1 = 0 || size2 = 0
4490                    ; code.delay=4294967295 back_code.delay=4294967295
4491                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
4492                    ; line_number = 785
4493                    ;  while get_character() != carriage_return done
4494                    ; line_number = 787
4495                    ; have_carriage_return := 0
4496 1b9d 10ef          bcf     have_carriage_return___byte, have_carriage_return___bit
4497                    ; line_number = 788
4498                    ;  if ok start
4499                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4500                    ; CASE: true_code.size = 0 && false_code.size > 1
4501                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
4502 1b9e 1c6f          btfss   ok___byte, ok___bit
4503 1b9f 2ba2          goto    get_carriage_return__3
4504                    ; line_number = 789
4505                    ; return 1 start
4506                    ; line_number = 789
4507 1ba0 166f          bsf     get_carriage_return__0return___byte, get_carriage_return__0return___bit
4508 1ba1 0008          return  
4509                    ; line_number = 789
4510                    ; return 1 done
4511                    ; Recombine size1 = 0 || size2 = 0
4512   1ba2 :   get_carriage_return__3:
4513                    ; code.delay=4294967295 back_code.delay=4294967295
4514                    ; <=bit_code_emit@symbol; sym=ok (data:00=>00 code:11=>11)
4515                    ; line_number = 788
4516                    ;  if ok done
4517                    ; line_number = 790
4518                    ; call put_character('?')
4519 1ba2 303f          movlw   63
4520 1ba3 244f          call    put_character
4521                    ; line_number = 791
4522                    ;  call put_crlf()
4523 1ba4 2459          call    put_crlf
4524                    ; line_number = 792
4525                    ;  return 0 start
4526                    ; line_number = 792
4527 1ba5 126f          bcf     get_carriage_return__0return___byte, get_carriage_return__0return___bit
4528 1ba6 0008          return  
4529                    ; line_number = 792
4530                    ;  return 0 done
4531            
4532            
4533                    ; delay after procedure statements=non-uniform
4534            
4535            
4536            
4537            
4538                    ; line_number = 795
4539                    ; procedure get_character
4540   1ba7 :   get_character:
4541                    ; arguments_none
4542                    ; line_number = 797
4543                    ;  returns byte
4544            
4545                    ; # This procedure will get the next character from the UART.
4546            
4547                    ; line_number = 801
4548                    ;  local character byte
4549 0000004d = get_character__character equ globals___0+45
4550                    ; line_number = 802
4551                    ;  local pir1_copy byte
4552 0000004e = get_character__pir1_copy equ globals___0+46
4553            
4554                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4555                    ; line_number = 804
4556                    ;  if have_carriage_return start
4557                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4558                    ; CASE: True.size=1 False.size=0
4559 1ba7 18ef          btfsc   have_carriage_return___byte, have_carriage_return___bit
4560                    ; line_number = 805
4561                    ; return carriage_return start
4562                    ; line_number = 805
4563 1ba8 340d          retlw   13
4564                    ; line_number = 805
4565                    ; return carriage_return done
4566            
4567                    ; Recombine size1 = 0 || size2 = 0
4568                    ; code.delay=4294967295 back_code.delay=4294967295
4569                    ; <=bit_code_emit@symbol; sym=have_carriage_return (data:XX=>XX code:11=>11)
4570                    ; line_number = 804
4571                    ;  if have_carriage_return done
4572                    ; # FIXME:  Compiler can't bit test outside of the current data bank!!!
4573                    ; # So read the entire register into a temporary and test second.
4574            
4575                    ; # Read characters until something other than a space is typed in:
4576                    ; line_number = 811
4577                    ;  character := space
4578 1ba9 3020          movlw   32
4579 1baa 00cd          movwf   get_character__character
4580                    ; line_number = 812
4581                    ;  while character = space start
4582   1bab :   get_character__1:
4583                    ; Left minus Right
4584 1bab 30e0          movlw   224
4585 1bac 074d          addwf   get_character__character,w
4586                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4587                    ; CASE: true_code.size = 0 && false_code.size > 1
4588                    ; bit_code_emit_helper1: body_code.size=9 true_test=true body_code.delay=0 (non-uniform delay)
4589 1bad 1d03          btfss   __z___byte, __z___bit
4590 1bae 2bb8          goto    get_character__6
4591                    ; line_number = 813
4592                    ; pir1_copy@5 := 0
4593 0000004e = get_character__select__2___byte equ get_character__pir1_copy
4594 00000005 = get_character__select__2___bit equ 5
4595 1baf 12ce          bcf     get_character__select__2___byte, get_character__select__2___bit
4596                    ; line_number = 814
4597                    ;  while !(pir1_copy@5) start
4598   1bb0 :   get_character__3:
4599 0000004e = get_character__select__4___byte equ get_character__pir1_copy
4600 00000005 = get_character__select__4___bit equ 5
4601                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4602                    ; CASE: true.size=0 && false.size>1
4603                    ; bit_code_emit_helper1: body_code.size=3 true_test=false body_code.delay=0 (non-uniform delay)
4604 1bb0 1ace          btfsc   get_character__select__4___byte, get_character__select__4___bit
4605 1bb1 2bb5          goto    get_character__5
4606                    ; # Wait for character:
4607                    ; line_number = 816
4608                    ;  pir1_copy := _pir1
4609 1bb2 080c          movf    _pir1,w
4610 1bb3 00ce          movwf   get_character__pir1_copy
4611 1bb4 2bb0          goto    get_character__3
4612   1bb5 :   get_character__5:
4613                    ; Recombine size1 = 0 || size2 = 0
4614                    ; code.delay=4294967295 back_code.delay=4294967295
4615                    ; <=bit_code_emit@symbol; sym=get_character__select__4 (data:XX=>00 code:11=>11)
4616                    ; line_number = 814
4617                    ;  while !(pir1_copy@5) done
4618                    ; line_number = 817
4619                    ; character := _rcreg
4620 1bb5 081a          movf    _rcreg,w
4621 1bb6 00cd          movwf   get_character__character
4622            
4623 1bb7 2bab          goto    get_character__1
4624                    ; Recombine size1 = 0 || size2 = 0
4625   1bb8 :   get_character__6:
4626                    ; code.delay=4294967295 back_code.delay=4294967295
4627                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
4628                    ; line_number = 812
4629                    ;  while character = space done
4630                    ; # Convert to upper case:
4631                    ; line_number = 820
4632                    ;  if 'a' <= character && character <= 'z' start
4633 1bb8 3061          movlw   97
4634 1bb9 024d          subwf   get_character__character,w
4635                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4636                    ; CASE: true.size>1 false.size=1; false=GOTO
4637 1bba 1c03          btfss   __c___byte, __c___bit
4638 1bbb 2bc4          goto    get_character__7
4639                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4640 1bbc 307a          movlw   122
4641 1bbd 024d          subwf   get_character__character,w
4642 1bbe 1903          btfsc   __z___byte, __z___bit
4643 1bbf 1003          bcf     __c___byte, __c___bit
4644                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4645                    ; CASE: true.size=0 && false.size>1
4646                    ; bit_code_emit_helper1: body_code.size=2 true_test=false body_code.delay=0 (non-uniform delay)
4647 1bc0 1803          btfsc   __c___byte, __c___bit
4648 1bc1 2bc4          goto    get_character__8
4649                    ; line_number = 821
4650                    ; character := character - 'a' + 'A'
4651 1bc2 30e0          movlw   224
4652 1bc3 07cd          addwf   get_character__character,f
4653            
4654   1bc4 :   get_character__8:
4655   1bc4 :   get_character__7:
4656                    ; Recombine code1_bit_states != code2_bit_states
4657                    ; code.delay=4294967295 back_code.delay=4294967295
4658                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
4659                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4660                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4661                    ; Recombine code1_bit_states != code2_bit_states
4662                    ; code.delay=4294967295 back_code.delay=4294967295
4663                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
4664                    ; line_number = 820
4665                    ;  if 'a' <= character && character <= 'z' done
4666                    ; # Carriage returns "stick" until get_carriage_return() is called:
4667                    ; line_number = 824
4668                    ;  if character = carriage_return start
4669                    ; Left minus Right
4670 1bc4 30f3          movlw   243
4671 1bc5 074d          addwf   get_character__character,w
4672                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4673                    ; CASE: true_code.size = 0 && false_code.size > 1
4674                    ; bit_code_emit_helper1: body_code.size=3 true_test=true body_code.delay=0 (non-uniform delay)
4675 1bc6 1d03          btfss   __z___byte, __z___bit
4676 1bc7 2bcb          goto    get_character__9
4677                    ; line_number = 825
4678                    ; call put_character(line_feed)
4679 1bc8 300a          movlw   10
4680 1bc9 244f          call    put_character
4681                    ; line_number = 826
4682                    ;  have_carriage_return := 1
4683 1bca 14ef          bsf     have_carriage_return___byte, have_carriage_return___bit
4684                    ; Recombine size1 = 0 || size2 = 0
4685   1bcb :   get_character__9:
4686                    ; code.delay=4294967295 back_code.delay=4294967295
4687                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
4688                    ; line_number = 824
4689                    ;  if character = carriage_return done
4690                    ; line_number = 827
4691                    ; return character start
4692                    ; line_number = 827
4693 1bcb 084d          movf    get_character__character,w
4694 1bcc 0008          return  
4695                    ; line_number = 827
4696                    ; return character done
4697            
4698            
4699                    ; delay after procedure statements=non-uniform
4700            
4701            
4702            
4703            
4704                    ; line_number = 830
4705                    ; procedure get_hex_byte
4706   1bcd :   get_hex_byte:
4707                    ; arguments_none
4708                    ; line_number = 832
4709                    ;  returns byte
4710            
4711                    ; # This procedure will read one hexadecimal byte:
4712            
4713                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4714                    ; line_number = 836
4715                    ;  return (get_hex_nibble() << 4) | get_hex_nibble() start
4716                    ; line_number = 836
4717 00000069 = get_hex_byte__1 equ globals___0+73
4718 1bcd 23d5          call    get_hex_nibble
4719 1bce 00e9          movwf   get_hex_byte__1
4720 1bcf 0ee9          swapf   get_hex_byte__1,f
4721 1bd0 30f0          movlw   240
4722 1bd1 05e9          andwf   get_hex_byte__1,f
4723 1bd2 23d5          call    get_hex_nibble
4724 1bd3 0469          iorwf   get_hex_byte__1,w
4725 1bd4 0008          return  
4726                    ; line_number = 836
4727                    ;  return (get_hex_nibble() << 4) | get_hex_nibble() done
4728            
4729            
4730                    ; delay after procedure statements=non-uniform
4731            
4732            
4733            
4734            
4735                    ; line_number = 839
4736                    ; procedure get_hex_nibble
4737   1bd5 :   get_hex_nibble:
4738                    ; arguments_none
4739                    ; line_number = 841
4740                    ;  returns byte
4741            
4742                    ; # This procedure will get and return one hexadecimal digit worth
4743                    ; # of number.
4744            
4745                    ; line_number = 846
4746                    ;  local character byte
4747 0000004f = get_hex_nibble__character equ globals___0+47
4748            
4749                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4750                    ; line_number = 848
4751                    ;  character := get_character()
4752 1bd5 23a7          call    get_character
4753 1bd6 00cf          movwf   get_hex_nibble__character
4754                    ; line_number = 849
4755                    ;  if '0' <= character && character <= '9' start
4756 1bd7 3030          movlw   48
4757 1bd8 024f          subwf   get_hex_nibble__character,w
4758                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4759                    ; CASE: true.size>1 false.size=1; false=GOTO
4760 1bd9 1c03          btfss   __c___byte, __c___bit
4761 1bda 2be1          goto    get_hex_nibble__3
4762                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4763 1bdb 3039          movlw   57
4764 1bdc 024f          subwf   get_hex_nibble__character,w
4765 1bdd 1903          btfsc   __z___byte, __z___bit
4766 1bde 1003          bcf     __c___byte, __c___bit
4767                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4768                    ; CASE: true_code_size > 1 && false_code_size > 1
4769                    ; true_code_size=13 false_code_size=3
4770 1bdf 1c03          btfss   __c___byte, __c___bit
4771 1be0 2bef          goto    get_hex_nibble__4
4772   1be1 :   get_hex_nibble__3:
4773                    ; line_number = 851
4774 1be1 3041          movlw   65
4775 1be2 024f          subwf   get_hex_nibble__character,w
4776                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4777                    ; CASE: true.size>1 false.size=1; false=GOTO
4778 1be3 1c03          btfss   __c___byte, __c___bit
4779 1be4 2bee          goto    get_hex_nibble__1
4780                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4781 1be5 3046          movlw   70
4782 1be6 024f          subwf   get_hex_nibble__character,w
4783 1be7 1903          btfsc   __z___byte, __z___bit
4784 1be8 1003          bcf     __c___byte, __c___bit
4785                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4786                    ; CASE: true.size=0 && false.size>1
4787                    ; bit_code_emit_helper1: body_code.size=3 true_test=false body_code.delay=0 (non-uniform delay)
4788 1be9 1803          btfsc   __c___byte, __c___bit
4789 1bea 2bee          goto    get_hex_nibble__2
4790                    ; line_number = 852
4791                    ; return character - 'A' + 10 start
4792                    ; line_number = 852
4793 1beb 30c9          movlw   201
4794 1bec 074f          addwf   get_hex_nibble__character,w
4795 1bed 0008          return  
4796                    ; line_number = 852
4797                    ; return character - 'A' + 10 done
4798   1bee :   get_hex_nibble__2:
4799   1bee :   get_hex_nibble__1:
4800                    ; Recombine code1_bit_states != code2_bit_states
4801                    ; code.delay=4294967295 back_code.delay=4294967295
4802                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
4803                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4804                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4805                    ; Recombine code1_bit_states != code2_bit_states
4806                    ; code.delay=4294967295 back_code.delay=4294967295
4807                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
4808                    ; Recombine code1_bit_states != code2_bit_states
4809 1bee 2bf2          goto    get_hex_nibble__5
4810   1bef :   get_hex_nibble__4:
4811                    ; line_number = 850
4812                    ; return character - '0' start
4813                    ; line_number = 850
4814 1bef 30d0          movlw   208
4815 1bf0 074f          addwf   get_hex_nibble__character,w
4816 1bf1 0008          return  
4817                    ; line_number = 850
4818                    ; return character - '0' done
4819   1bf2 :   get_hex_nibble__5:
4820                    ; code.delay=4294967295 back_code.delay=4294967295
4821                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
4822                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4823                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4824                    ; Recombine code1_bit_states != code2_bit_states
4825                    ; code.delay=4294967295 back_code.delay=4294967295
4826                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
4827                    ; line_number = 849
4828                    ;  if '0' <= character && character <= '9' done
4829                    ; line_number = 853
4830                    ; ok := 0
4831 1bf2 106f          bcf     ok___byte, ok___bit
4832                    ; line_number = 854
4833                    ;  return 0 start
4834                    ; line_number = 854
4835 1bf3 3400          retlw   0
4836                    ; line_number = 854
4837                    ;  return 0 done
4838            
4839            
4840                    ; delay after procedure statements=non-uniform
4841            
4842            
4843            
4844            
4845                    ; # The `put' procedures:
4846            
4847                    ; line_number = 859
4848                    ; procedure put_get_byte
4849   1bf4 :   put_get_byte:
4850                    ; Last argument is sitting in W; save into argument variable
4851 1bf4 00d1          movwf   put_get_byte__socket
4852                    ; delay=4294967295
4853                    ; line_number = 860
4854                    ; argument command byte
4855 00000050 = put_get_byte__command equ globals___0+48
4856                    ; line_number = 861
4857                    ; argument socket byte
4858 00000051 = put_get_byte__socket equ globals___0+49
4859                    ; line_number = 862
4860                    ;  returns byte
4861            
4862                    ; # This procedure will output {command} to {socket} and wait
4863                    ; # for a response which is subseuently returned.
4864            
4865                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4866                    ; line_number = 867
4867                    ;  call put_byte(command, socket)
4868 1bf5 0850          movf    put_get_byte__command,w
4869 1bf6 00d8          movwf   put_byte__character
4870 1bf7 0851          movf    put_get_byte__socket,w
4871 1bf8 23fc          call    put_byte
4872                    ; line_number = 868
4873                    ;  return get_byte(socket) start
4874                    ; line_number = 868
4875 1bf9 0851          movf    put_get_byte__socket,w
4876 1bfa 235d          call    get_byte
4877 1bfb 0008          return  
4878                    ; line_number = 868
4879                    ;  return get_byte(socket) done
4880            
4881            
4882                    ; delay after procedure statements=non-uniform
4883            
4884            
4885            
4886            
4887                    ; line_number = 871
4888                    ; procedure put_byte
4889   1bfc :   put_byte:
4890                    ; Last argument is sitting in W; save into argument variable
4891 1bfc 00d9          movwf   put_byte__socket
4892                    ; delay=4294967295
4893                    ; line_number = 872
4894                    ; argument character byte
4895 00000058 = put_byte__character equ globals___0+56
4896                    ; line_number = 873
4897                    ; argument socket byte
4898 00000059 = put_byte__socket equ globals___0+57
4899                    ; line_number = 874
4900                    ;  returns_nothing
4901            
4902                    ; # This procedure will send {character} out to {socket}.
4903            
4904                    ; line_number = 878
4905                    ;  local counter byte
4906 00000052 = put_byte__counter equ globals___0+50
4907                    ; line_number = 879
4908                    ;  local one byte
4909 00000053 = put_byte__one equ globals___0+51
4910                    ; line_number = 880
4911                    ;  local port byte
4912 00000054 = put_byte__port equ globals___0+52
4913                    ; line_number = 881
4914                    ;  local zero byte
4915 00000055 = put_byte__zero equ globals___0+53
4916            
4917                    ; line_number = 883
4918                    ;  local in_out_register byte
4919 00000056 = put_byte__in_out_register equ globals___0+54
4920                    ; line_number = 884
4921                    ;  local out_mask byte
4922 00000057 = put_byte__out_mask equ globals___0+55
4923            
4924                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
4925                    ; line_number = 886
4926                    ;  in_out_register := in_out_registers(socket)
4927 1bfd 0859          movf    put_byte__socket,w
4928 1bfe 24c3          call    in_out_registers
4929 1bff 00d6          movwf   put_byte__in_out_register
4930                    ; line_number = 887
4931                    ;  out_mask := out_masks(socket)
4932 1c00 0859          movf    put_byte__socket,w
4933 1c01 24e7          call    out_masks
4934 1c02 00d7          movwf   put_byte__out_mask
4935                    ; line_number = 888
4936                    ;  port := ports[in_out_register]
4937 1c03 0856          movf    put_byte__in_out_register,w
4938 1c04 3e05          addlw   ports
4939 1c05 0084          movwf   __fsr
4940 1c06 1383          bcf     __irp___byte, __irp___bit
4941 1c07 0800          movf    __indf,w
4942 1c08 00d4          movwf   put_byte__port
4943                    ; line_number = 889
4944                    ;  one := port | out_mask
4945 1c09 0854          movf    put_byte__port,w
4946 1c0a 0457          iorwf   put_byte__out_mask,w
4947 1c0b 00d3          movwf   put_byte__one
4948                    ; line_number = 890
4949                    ;  zero := port & (out_mask ^ 0xff)
4950 1c0c 30ff          movlw   255
4951 1c0d 0657          xorwf   put_byte__out_mask,w
4952 1c0e 0554          andwf   put_byte__port,w
4953 1c0f 00d5          movwf   put_byte__zero
4954            
4955                    ; # If we were last receiving some characters, let's delay by 2/3 bit
4956                    ; # to make sure there is adequate turn-around:
4957                    ; line_number = 894
4958                    ;  if receiving start
4959                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4960                    ; CASE: true_code.size = 0 && false_code.size > 1
4961                    ; bit_code_emit_helper1: body_code.size=3 true_test=true body_code.delay=0 (non-uniform delay)
4962 1c10 1d6f          btfss   receiving___byte, receiving___bit
4963 1c11 2c15          goto    put_byte__1
4964                    ; line_number = 895
4965                    ; receiving := 0
4966 1c12 116f          bcf     receiving___byte, receiving___bit
4967                    ; line_number = 896
4968                    ;  call delay()
4969 1c13 24a8          call    delay
4970                    ; line_number = 897
4971                    ;  call delay()
4972 1c14 24a8          call    delay
4973            
4974                    ; Recombine size1 = 0 || size2 = 0
4975   1c15 :   put_byte__1:
4976                    ; code.delay=4294967295 back_code.delay=4294967295
4977                    ; <=bit_code_emit@symbol; sym=receiving (data:00=>00 code:11=>11)
4978                    ; line_number = 894
4979                    ;  if receiving done
4980                    ; # Do start bit:
4981                    ; line_number = 900
4982                    ;  delay extra_bit_instructions - 2 start
4983                    ; Delay expression evaluates to 22
4984                    ; line_number = 901
4985                    ; ports[in_out_register] := zero
4986                    ; Delay at assignment is 0
4987                    ; index_fsr_first
4988 1c15 0856          movf    put_byte__in_out_register,w
4989 1c16 3e05          addlw   ports
4990 1c17 0084          movwf   __fsr
4991 1c18 1383          bcf     __irp___byte, __irp___bit
4992 1c19 0855          movf    put_byte__zero,w
4993 1c1a 0080          movwf   __indf
4994                    ; Delay 16 cycles
4995                    ; Delay loop takes 4 * 4 = 16 cycles
4996 1c1b 3004          movlw   4
4997   1c1c :   put_byte__2:
4998 1c1c 3eff          addlw   255
4999 1c1d 1d03          btfss   __z___byte, __z___bit
5000 1c1e 2c1c          goto    put_byte__2
5001                    ; line_number = 900
5002                    ;  delay extra_bit_instructions - 2 done
5003                    ; line_number = 902
5004                    ; call delay()
5005 1c1f 24a8          call    delay
5006                    ; line_number = 903
5007                    ;  call delay()
5008 1c20 24a8          call    delay
5009                    ; line_number = 904
5010                    ;  call delay()
5011 1c21 24a8          call    delay
5012                    ; # "- 2" is for two bytes of loop set up:
5013            
5014                    ; # Do next 8 bits:
5015                    ; line_number = 908
5016                    ;  loop_exactly 8 start
5017 0000006a = put_byte__3 equ globals___0+74
5018 1c22 3008          movlw   8
5019 1c23 00ea          movwf   put_byte__3
5020   1c24 :   put_byte__4:
5021                    ; # 3 cycles for goto at end of loop
5022                    ; line_number = 910
5023                    ;  delay extra_bit_instructions - 3 start
5024                    ; Delay expression evaluates to 21
5025                    ; line_number = 911
5026                    ; port := ports[in_out_register]
5027                    ; Delay at assignment is 0
5028 1c24 0856          movf    put_byte__in_out_register,w
5029 1c25 3e05          addlw   ports
5030 1c26 0084          movwf   __fsr
5031 1c27 1383          bcf     __irp___byte, __irp___bit
5032 1c28 0800          movf    __indf,w
5033 1c29 00d4          movwf   put_byte__port
5034                    ; line_number = 912
5035                    ;  if character@0 start
5036                    ; Delay at if is 6
5037 00000058 = put_byte__select__5___byte equ put_byte__character
5038 00000000 = put_byte__select__5___bit equ 0
5039                    ; (after recombine) true_delay=2, false_delay=2 uniform_delay=true
5040                    ; CASE: true_code_size > 1 && false_code_size > 1
5041                    ; true_code_size=2 false_code_size=2
5042 1c2a 1c58          btfss   put_byte__select__5___byte, put_byte__select__5___bit
5043 1c2b 2c2f          goto    put_byte__6
5044                    ; # Send a mark (1):
5045                    ; line_number = 914
5046                    ;  port := one
5047                    ; Delay at assignment is 0
5048 1c2c 0853          movf    put_byte__one,w
5049 1c2d 00d4          movwf   put_byte__port
5050 1c2e 2c32          goto    put_byte__7
5051   1c2f :   put_byte__6:
5052                    ; # Send a space (0):
5053                    ; line_number = 917
5054                    ;  port := zero
5055                    ; Delay at assignment is 0
5056 1c2f 0855          movf    put_byte__zero,w
5057 1c30 00d4          movwf   put_byte__port
5058 1c31 0000          nop     
5059   1c32 :   put_byte__7:
5060                    ; code.delay=12 back_code.delay=0
5061                    ; <=bit_code_emit@symbol; sym=put_byte__select__5 (data:00=>00 code:11=>11)
5062                    ; if final true delay=2 false delay=2 code delay=12
5063                    ; line_number = 912
5064                    ;  if character@0 done
5065                    ; line_number = 918
5066                    ; ports[in_out_register] := port
5067                    ; Delay at assignment is 12
5068                    ; index_fsr_first
5069 1c32 0856          movf    put_byte__in_out_register,w
5070 1c33 3e05          addlw   ports
5071 1c34 0084          movwf   __fsr
5072 1c35 1383          bcf     __irp___byte, __irp___bit
5073 1c36 0854          movf    put_byte__port,w
5074 1c37 0080          movwf   __indf
5075                    ; line_number = 919
5076                    ;  character := character >> 1
5077                    ; Delay at assignment is 18
5078                    ; Assignment of variable to self (no code needed)
5079 1c38 0cd8          rrf     put_byte__character,f
5080 1c39 13d8          bcf     put_byte__character, 7
5081                    ; Delay 1 cycles
5082 1c3a 0000          nop     
5083                    ; line_number = 910
5084                    ;  delay extra_bit_instructions - 3 done
5085                    ; line_number = 920
5086                    ; call delay()
5087 1c3b 24a8          call    delay
5088                    ; line_number = 921
5089                    ;  call delay()
5090 1c3c 24a8          call    delay
5091                    ; line_number = 922
5092                    ;  call delay()
5093 1c3d 24a8          call    delay
5094            
5095                    ; line_number = 908
5096                    ;  loop_exactly 8 wrap-up
5097 1c3e 0bea          decfsz  put_byte__3,f
5098 1c3f 2c24          goto    put_byte__4
5099                    ; line_number = 908
5100                    ;  loop_exactly 8 done
5101                    ; # Now do stop bit:
5102                    ; line_number = 925
5103                    ;  delay extra_bit_instructions start
5104                    ; Delay expression evaluates to 24
5105                    ; line_number = 926
5106                    ; ports[in_out_register] := one
5107                    ; Delay at assignment is 0
5108                    ; index_fsr_first
5109 1c40 0856          movf    put_byte__in_out_register,w
5110 1c41 3e05          addlw   ports
5111 1c42 0084          movwf   __fsr
5112 1c43 1383          bcf     __irp___byte, __irp___bit
5113 1c44 0853          movf    put_byte__one,w
5114 1c45 0080          movwf   __indf
5115                    ; Delay 18 cycles
5116                    ; Delay loop takes 4 * 4 = 16 cycles
5117 1c46 3004          movlw   4
5118   1c47 :   put_byte__8:
5119 1c47 3eff          addlw   255
5120 1c48 1d03          btfss   __z___byte, __z___bit
5121 1c49 2c47          goto    put_byte__8
5122 1c4a 2c4b          goto    put_byte__9
5123   1c4b :   put_byte__9:
5124                    ; line_number = 925
5125                    ;  delay extra_bit_instructions done
5126                    ; line_number = 927
5127                    ; call delay()
5128 1c4b 24a8          call    delay
5129                    ; line_number = 928
5130                    ;  call delay()
5131 1c4c 24a8          call    delay
5132                    ; line_number = 929
5133                    ;  call delay()
5134 1c4d 24a8          call    delay
5135            
5136            
5137                    ; delay after procedure statements=non-uniform
5138                    ; Implied return
5139 1c4e 3400          retlw   0
5140            
5141            
5142            
5143            
5144                    ; line_number = 932
5145                    ; procedure put_character
5146   1c4f :   put_character:
5147                    ; Last argument is sitting in W; save into argument variable
5148 1c4f 00db          movwf   put_character__character
5149                    ; delay=4294967295
5150                    ; line_number = 933
5151                    ; argument character byte
5152 0000005b = put_character__character equ globals___0+59
5153                    ; line_number = 934
5154                    ;  returns_nothing
5155            
5156                    ; # This procedure will send {character} out to TX-pin of port C.
5157            
5158                    ; line_number = 938
5159                    ;  local pir1_copy byte
5160 0000005a = put_character__pir1_copy equ globals___0+58
5161            
5162                    ; #FIXME: The compiler chokes on a bit test in another page!!!
5163                    ; # For now may a local copy and test locally:
5164                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5165                    ; line_number = 942
5166                    ;  pir1_copy@4 := 0
5167 0000005a = put_character__select__1___byte equ put_character__pir1_copy
5168 00000004 = put_character__select__1___bit equ 4
5169 1c50 125a          bcf     put_character__select__1___byte, put_character__select__1___bit
5170                    ; line_number = 943
5171                    ;  while !(pir1_copy@4) start
5172   1c51 :   put_character__2:
5173 0000005a = put_character__select__3___byte equ put_character__pir1_copy
5174 00000004 = put_character__select__3___bit equ 4
5175                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
5176                    ; CASE: true.size=0 && false.size>1
5177                    ; bit_code_emit_helper1: body_code.size=3 true_test=false body_code.delay=0 (non-uniform delay)
5178 1c51 1a5a          btfsc   put_character__select__3___byte, put_character__select__3___bit
5179 1c52 2c56          goto    put_character__4
5180                    ; # Wait for transmit buffer to empty.
5181                    ; line_number = 945
5182                    ;  pir1_copy := _pir1
5183 1c53 080c          movf    _pir1,w
5184 1c54 00da          movwf   put_character__pir1_copy
5185            
5186 1c55 2c51          goto    put_character__2
5187   1c56 :   put_character__4:
5188                    ; Recombine size1 = 0 || size2 = 0
5189                    ; code.delay=4294967295 back_code.delay=4294967295
5190                    ; <=bit_code_emit@symbol; sym=put_character__select__3 (data:00=>00 code:11=>11)
5191                    ; line_number = 943
5192                    ;  while !(pir1_copy@4) done
5193                    ; # Send the character:
5194                    ; line_number = 948
5195                    ;  _txreg := character
5196 1c56 085b          movf    put_character__character,w
5197 1c57 0099          movwf   _txreg
5198            
5199            
5200                    ; delay after procedure statements=non-uniform
5201                    ; Implied return
5202 1c58 3400          retlw   0
5203            
5204            
5205            
5206            
5207                    ; line_number = 951
5208                    ; procedure put_crlf
5209   1c59 :   put_crlf:
5210                    ; arguments_none
5211                    ; line_number = 953
5212                    ;  returns_nothing
5213            
5214                    ; # This procedure will output a carriage-return line-feed.
5215            
5216                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5217                    ; line_number = 957
5218                    ;  call put_character(carriage_return)
5219 1c59 300d          movlw   13
5220 1c5a 244f          call    put_character
5221                    ; line_number = 958
5222                    ;  call put_character(line_feed)
5223 1c5b 300a          movlw   10
5224 1c5c 244f          call    put_character
5225            
5226            
5227                    ; delay after procedure statements=non-uniform
5228                    ; Implied return
5229 1c5d 3400          retlw   0
5230            
5231            
5232            
5233            
5234                    ; line_number = 961
5235                    ; procedure put_hex_byte
5236   1c5e :   put_hex_byte:
5237                    ; Last argument is sitting in W; save into argument variable
5238 1c5e 00dc          movwf   put_hex_byte__byte
5239                    ; delay=4294967295
5240                    ; line_number = 962
5241                    ; argument byte byte
5242 0000005c = put_hex_byte__byte equ globals___0+60
5243                    ; line_number = 963
5244                    ;  returns_nothing
5245            
5246                    ; # This procedure will output {byte} as two hexadecimal digits.
5247            
5248                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5249                    ; line_number = 967
5250                    ;  call put_hex_nibble(byte >> 4)
5251 0000006b = put_hex_byte__1 equ globals___0+75
5252 1c5f 0e5c          swapf   put_hex_byte__byte,w
5253 1c60 390f          andlw   15
5254 1c61 2466          call    put_hex_nibble
5255                    ; line_number = 968
5256                    ;  call put_hex_nibble(byte & 15)
5257 1c62 300f          movlw   15
5258 1c63 055c          andwf   put_hex_byte__byte,w
5259 1c64 2466          call    put_hex_nibble
5260            
5261            
5262                    ; delay after procedure statements=non-uniform
5263                    ; Implied return
5264 1c65 3400          retlw   0
5265            
5266            
5267            
5268            
5269                    ; line_number = 971
5270                    ; procedure put_hex_nibble
5271   1c66 :   put_hex_nibble:
5272                    ; Last argument is sitting in W; save into argument variable
5273 1c66 00dd          movwf   put_hex_nibble__nibble
5274                    ; delay=4294967295
5275                    ; line_number = 972
5276                    ; argument nibble byte
5277 0000005d = put_hex_nibble__nibble equ globals___0+61
5278                    ; line_number = 973
5279                    ;  returns_nothing
5280            
5281                    ; # This procedure will output {nibble} as a hexadecimal digit.
5282            
5283                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5284                    ; line_number = 977
5285                    ;  if nibble < 10 start
5286 1c67 300a          movlw   10
5287 1c68 025d          subwf   put_hex_nibble__nibble,w
5288                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
5289                    ; CASE: true_size=1 && false_size=1
5290                    ; SUBCASE: Double test; true, then false
5291 1c69 1803          btfsc   __c___byte, __c___bit
5292                    ; line_number = 980
5293                    ; nibble := nibble + 'A' - 10
5294 1c6a 3037          movlw   55
5295 1c6b 1c03          btfss   __c___byte, __c___bit
5296                    ; line_number = 978
5297                    ; nibble := nibble + '0'
5298 1c6c 3030          movlw   48
5299                    ; code.delay=4294967295 back_code.delay=4294967295
5300 1c6d 07dd          addwf   put_hex_nibble__nibble,f
5301                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
5302                    ; line_number = 977
5303                    ;  if nibble < 10 done
5304                    ; line_number = 981
5305                    ; call put_character(nibble)
5306 1c6e 085d          movf    put_hex_nibble__nibble,w
5307 1c6f 244f          call    put_character
5308            
5309            
5310                    ; delay after procedure statements=non-uniform
5311                    ; Implied return
5312 1c70 3400          retlw   0
5313            
5314            
5315            
5316            
5317                    ; line_number = 984
5318                    ; procedure put_space
5319   1c71 :   put_space:
5320                    ; arguments_none
5321                    ; line_number = 986
5322                    ;  returns_nothing
5323            
5324                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5325                    ; line_number = 988
5326                    ;  call put_character(space)
5327 1c71 3020          movlw   32
5328 1c72 244f          call    put_character
5329            
5330            
5331                    ; delay after procedure statements=non-uniform
5332                    ; Implied return
5333 1c73 3400          retlw   0
5334            
5335            
5336            
5337            
5338                    ; # Sleep routines:
5339            
5340 0000006f = seconds_sleep__0return___byte equ globals___0+79
5341 00000005 = seconds_sleep__0return___bit equ 5
5342                    ; line_number = 993
5343                    ; procedure seconds_sleep
5344   1c74 :   seconds_sleep:
5345                    ; Last argument is sitting in W; save into argument variable
5346 1c74 00df          movwf   seconds_sleep__seconds
5347                    ; delay=4294967295
5348                    ; line_number = 994
5349                    ; argument seconds byte
5350 0000005f = seconds_sleep__seconds equ globals___0+63
5351                    ; line_number = 995
5352                    ;  returns bit
5353            
5354                    ; # This procedure will sleep for the specified number of seconds.
5355            
5356                    ; line_number = 999
5357                    ;  local count byte
5358 0000005e = seconds_sleep__count equ globals___0+62
5359            
5360                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5361                    ; line_number = 1001
5362                    ;  sleep_count := 0
5363 1c75 3000          movlw   0
5364 1c76 00a3          movwf   sleep_count
5365                    ; line_number = 1002
5366                    ;  loop_exactly seconds start
5367 0000006c = seconds_sleep__1 equ globals___0+76
5368 1c77 085f          movf    seconds_sleep__seconds,w
5369 1c78 00ec          movwf   seconds_sleep__1
5370   1c79 :   seconds_sleep__2:
5371                    ; line_number = 1003
5372                    ; call put_character(count + '0')
5373 1c79 3030          movlw   48
5374 1c7a 075e          addwf   seconds_sleep__count,w
5375 1c7b 244f          call    put_character
5376                    ; line_number = 1004
5377                    ;  call put_space()
5378 1c7c 2471          call    put_space
5379                    ; line_number = 1005
5380                    ;  if second_sleep() start
5381 1c7d 248c          call    second_sleep
5382                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
5383                    ; CASE: true_code.size = 0 && false_code.size > 1
5384                    ; bit_code_emit_helper1: body_code.size=8 true_test=true body_code.delay=0 (non-uniform delay)
5385 1c7e 1f6f          btfss   second_sleep__0return___byte, second_sleep__0return___bit
5386 1c7f 2c88          goto    seconds_sleep__4
5387                    ; line_number = 1006
5388                    ; if sleep_count < 10 start
5389 1c80 300a          movlw   10
5390 1c81 0223          subwf   sleep_count,w
5391                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
5392                    ; CASE: true.size=0 && false.size>1
5393                    ; bit_code_emit_helper1: body_code.size=2 true_test=false body_code.delay=0 (non-uniform delay)
5394 1c82 1803          btfsc   __c___byte, __c___bit
5395 1c83 2c86          goto    seconds_sleep__3
5396                    ; line_number = 1007
5397                    ; return 1 start
5398                    ; line_number = 1007
5399 1c84 16ef          bsf     seconds_sleep__0return___byte, seconds_sleep__0return___bit
5400 1c85 0008          return  
5401                    ; line_number = 1007
5402                    ; return 1 done
5403   1c86 :   seconds_sleep__3:
5404                    ; Recombine size1 = 0 || size2 = 0
5405                    ; code.delay=4294967295 back_code.delay=4294967295
5406                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
5407                    ; line_number = 1006
5408                    ; if sleep_count < 10 done
5409                    ; line_number = 1008
5410                    ; return 0 start
5411                    ; line_number = 1008
5412 1c86 12ef          bcf     seconds_sleep__0return___byte, seconds_sleep__0return___bit
5413 1c87 0008          return  
5414                    ; line_number = 1008
5415                    ; return 0 done
5416                    ; Recombine size1 = 0 || size2 = 0
5417   1c88 :   seconds_sleep__4:
5418                    ; code.delay=4294967295 back_code.delay=4294967295
5419                    ; <=bit_code_emit@symbol; sym=second_sleep__0return (data:00=>00 code:11=>11)
5420                    ; line_number = 1005
5421                    ;  if second_sleep() done
5422                    ; line_number = 1002
5423                    ;  loop_exactly seconds wrap-up
5424 1c88 0bec          decfsz  seconds_sleep__1,f
5425 1c89 2c79          goto    seconds_sleep__2
5426                    ; line_number = 1002
5427                    ;  loop_exactly seconds done
5428                    ; line_number = 1009
5429                    ; return 1 start
5430                    ; line_number = 1009
5431 1c8a 16ef          bsf     seconds_sleep__0return___byte, seconds_sleep__0return___bit
5432 1c8b 0008          return  
5433                    ; line_number = 1009
5434                    ; return 1 done
5435            
5436            
5437                    ; delay after procedure statements=non-uniform
5438            
5439            
5440            
5441            
5442 0000006f = second_sleep__0return___byte equ globals___0+79
5443 00000006 = second_sleep__0return___bit equ 6
5444                    ; line_number = 1012
5445                    ; procedure second_sleep
5446   1c8c :   second_sleep:
5447                    ; arguments_none
5448                    ; line_number = 1014
5449                    ;  returns bit
5450            
5451                    ; # This procedure will sleep for one second.
5452            
5453                    ; line_number = 1018
5454                    ;  local count1 byte
5455 00000060 = second_sleep__count1 equ globals___0+64
5456                    ; line_number = 1019
5457                    ;  local count2 byte
5458 00000061 = second_sleep__count2 equ globals___0+65
5459            
5460                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5461                    ; line_number = 1021
5462                    ;  _rcif := 0
5463 1c8c 128c          bcf     _rcif___byte, _rcif___bit
5464                    ; line_number = 1022
5465                    ;  _rcreg := 0
5466 1c8d 3000          movlw   0
5467 1c8e 009a          movwf   _rcreg
5468                    ; line_number = 1023
5469                    ;  loop_exactly 100 start
5470 0000006d = second_sleep__1 equ globals___0+77
5471 1c8f 3064          movlw   100
5472 1c90 00ed          movwf   second_sleep__1
5473   1c91 :   second_sleep__2:
5474                    ; line_number = 1024
5475                    ; loop_exactly 100 start
5476 0000006e = second_sleep__3 equ globals___0+78
5477 1c91 3064          movlw   100
5478 1c92 00ee          movwf   second_sleep__3
5479   1c93 :   second_sleep__4:
5480                    ; line_number = 1025
5481                    ; delay 500 start
5482                    ; Delay expression evaluates to 500
5483                    ; line_number = 1026
5484                    ; if _rcif start
5485                    ; Delay at if is 0
5486                    ; (after recombine) true_delay=3, false_delay=0 uniform_delay=true
5487                    ; CASE: true_code.size = 0 && false_code.size > 1
5488                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=3 (uniform delay)
5489 1c93 1a8c          btfsc   _rcif___byte, _rcif___bit
5490 1c94 2c97          goto    second_sleep__5
5491                    ; Delay 2 cycles
5492 1c95 2c96          goto    second_sleep__7
5493   1c96 :   second_sleep__7:
5494 1c96 2c99          goto    second_sleep__6
5495   1c97 :   second_sleep__5:
5496                    ; line_number = 1027
5497                    ; return 1 start
5498                    ; line_number = 1027
5499                    ; Delay at expression return is 0
5500 1c97 176f          bsf     second_sleep__0return___byte, second_sleep__0return___bit
5501 1c98 0008          return  
5502                    ; line_number = 1027
5503                    ; return 1 done
5504   1c99 :   second_sleep__6:
5505                    ; code.delay=6 back_code.delay=0
5506                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:11=>11)
5507                    ; if final true delay=3 false delay=0 code delay=6
5508                    ; line_number = 1026
5509                    ; if _rcif done
5510                    ; line_number = 1028
5511                    ; if sleep_count != 255 start
5512                    ; Delay at if is 6
5513                    ; Left minus Right
5514 1c99 0a23          incf    sleep_count,w
5515                    ; (after recombine) true_delay=0, false_delay=1 uniform_delay=true
5516                    ; CASE: true_code.size=0 && false_code.size=1
5517 1c9a 1d03          btfss   __z___byte, __z___bit
5518                    ; line_number = 1029
5519                    ; sleep_count := sleep_count + 1
5520                    ; Delay at assignment is 0
5521 1c9b 0aa3          incf    sleep_count,f
5522                    ; code.delay=9 back_code.delay=0
5523                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
5524                    ; Uniform delay broke in relation_code_emit
5525                    ; if final true delay=1 false delay=0 code delay=9
5526                    ; line_number = 1028
5527                    ; if sleep_count != 255 done
5528                    ; Delay 491 cycles
5529                    ; Delay loop takes 122 * 4 = 488 cycles
5530 1c9c 307a          movlw   122
5531   1c9d :   second_sleep__8:
5532 1c9d 3eff          addlw   255
5533 1c9e 1d03          btfss   __z___byte, __z___bit
5534 1c9f 2c9d          goto    second_sleep__8
5535 1ca0 2ca1          goto    second_sleep__9
5536   1ca1 :   second_sleep__9:
5537 1ca1 0000          nop     
5538                    ; line_number = 1025
5539                    ; delay 500 done
5540                    ; line_number = 1024
5541                    ; loop_exactly 100 wrap-up
5542 1ca2 0bee          decfsz  second_sleep__3,f
5543 1ca3 2c93          goto    second_sleep__4
5544                    ; line_number = 1024
5545                    ; loop_exactly 100 done
5546                    ; line_number = 1023
5547                    ;  loop_exactly 100 wrap-up
5548 1ca4 0bed          decfsz  second_sleep__1,f
5549 1ca5 2c91          goto    second_sleep__2
5550                    ; line_number = 1023
5551                    ;  loop_exactly 100 done
5552                    ; line_number = 1030
5553                    ; return 0 start
5554                    ; line_number = 1030
5555 1ca6 136f          bcf     second_sleep__0return___byte, second_sleep__0return___bit
5556 1ca7 0008          return  
5557                    ; line_number = 1030
5558                    ; return 0 done
5559            
5560            
5561                    ; delay after procedure statements=non-uniform
5562            
5563            
5564            
5565            
5566                    ; line_number = 1033
5567                    ; procedure delay
5568   1ca8 :   delay:
5569                    ; arguments_none
5570                    ; line_number = 1035
5571                    ;  returns_nothing
5572                    ; line_number = 1036
5573                    ;  exact_delay delay_instructions
5574            
5575                    ; # Delay 1/3 of a bit:
5576            
5577                    ; # Kick the dog:
5578                    ; before procedure statements delay=0, bit states=(data:00=>00 code:11=>11)
5579                    ; line_number = 1041
5580                    ;  watch_dog_reset done
5581                    ; Delay at watch_dog_reset is 0
5582 1ca8 0064          clrwdt  
5583            
5584            
5585                    ; delay after procedure statements=1
5586                    ; Delay 683 cycles
5587                    ; Delay loop takes 170 * 4 = 680 cycles
5588 1ca9 30aa          movlw   170
5589   1caa :   delay__1:
5590 1caa 3eff          addlw   255
5591 1cab 1d03          btfss   __z___byte, __z___bit
5592 1cac 2caa          goto    delay__1
5593 1cad 2cae          goto    delay__2
5594   1cae :   delay__2:
5595 1cae 0000          nop     
5596                    ; Implied return
5597 1caf 3400          retlw   0
5598                    ; Final delay = 686
5599            
5600            
5601            
5602            
5603                    ; line_number = 1044
5604                    ; string hello = "PICBrain11C\cr,lf\" start
5605                    ; hello = 'PICBrain11C\13,10\'
5606   1cb0 :   hello:
5607                    ; Temporarily save index into FSR
5608 1cb0 0084          movwf   __fsr
5609                    ; Initialize PCLATH to point to this code page
5610 1cb1 301c          movlw   hello___base>>8
5611 1cb2 008a          movwf   __pclath
5612                    ; Restore index from FSR
5613 1cb3 0804          movf    __fsr,w
5614 1cb4 3eb6          addlw   hello___base
5615                    ; Index to the correct return value
5616 1cb5 0082          movwf   __pcl
5617                    ; page_group 13
5618   1cb6 :   hello___base:
5619 1cb6 3450          retlw   80
5620 1cb7 3449          retlw   73
5621 1cb8 3443          retlw   67
5622 1cb9 3442          retlw   66
5623 1cba 3472          retlw   114
5624 1cbb 3461          retlw   97
5625 1cbc 3469          retlw   105
5626 1cbd 346e          retlw   110
5627 1cbe 3431          retlw   49
5628 1cbf 3431          retlw   49
5629 1cc0 3443          retlw   67
5630 1cc1 340d          retlw   13
5631 1cc2 340a          retlw   10
5632                    ; line_number = 1044
5633                    ; string hello = "PICBrain11C\cr,lf\" start
5634            
5635                    ; line_number = 1046
5636                    ; procedure in_out_registers
5637   1cc3 :   in_out_registers:
5638                    ; Last argument is sitting in W; save into argument variable
5639 1cc3 00e2          movwf   in_out_registers__socket
5640                    ; delay=4294967295
5641                    ; line_number = 1047
5642                    ; argument socket byte
5643 00000062 = in_out_registers__socket equ globals___0+66
5644                    ; line_number = 1048
5645                    ;  returns byte
5646            
5647                    ; # This procedure will return the register number to access for {socket}.
5648            
5649                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5650                    ; line_number = 1052
5651                    ;  switch socket start
5652 1cc4 301c          movlw   in_out_registers__12>>8
5653 1cc5 008a          movwf   __pclath
5654 1cc6 0862          movf    in_out_registers__socket,w
5655 1cc7 3ec9          addlw   in_out_registers__12
5656 1cc8 0082          movwf   __pcl
5657                    ; page_group 11
5658   1cc9 :   in_out_registers__12:
5659                    ; line_number = 1054
5660                    ; return n1_reg start
5661                    ; line_number = 1054
5662 1cc9 3401          retlw   1
5663                    ; line_number = 1054
5664                    ; return n1_reg done
5665                    ; line_number = 1056
5666                    ; return n2_reg start
5667                    ; line_number = 1056
5668 1cca 3400          retlw   0
5669                    ; line_number = 1056
5670                    ; return n2_reg done
5671                    ; line_number = 1058
5672                    ; return n3_reg start
5673                    ; line_number = 1058
5674 1ccb 3401          retlw   1
5675                    ; line_number = 1058
5676                    ; return n3_reg done
5677                    ; line_number = 1060
5678                    ; return n4_reg start
5679                    ; line_number = 1060
5680 1ccc 3400          retlw   0
5681                    ; line_number = 1060
5682                    ; return n4_reg done
5683                    ; line_number = 1062
5684                    ; return n5_reg start
5685                    ; line_number = 1062
5686 1ccd 3401          retlw   1
5687                    ; line_number = 1062
5688                    ; return n5_reg done
5689                    ; line_number = 1064
5690                    ; return n6_reg start
5691                    ; line_number = 1064
5692 1cce 3400          retlw   0
5693                    ; line_number = 1064
5694                    ; return n6_reg done
5695                    ; line_number = 1066
5696                    ; return n7_reg start
5697                    ; line_number = 1066
5698 1ccf 3401          retlw   1
5699                    ; line_number = 1066
5700                    ; return n7_reg done
5701                    ; line_number = 1068
5702                    ; return n8_reg start
5703                    ; line_number = 1068
5704 1cd0 3402          retlw   2
5705                    ; line_number = 1068
5706                    ; return n8_reg done
5707                    ; line_number = 1070
5708                    ; return n9_reg start
5709                    ; line_number = 1070
5710 1cd1 3402          retlw   2
5711                    ; line_number = 1070
5712                    ; return n9_reg done
5713                    ; line_number = 1072
5714                    ; return n10_reg start
5715                    ; line_number = 1072
5716 1cd2 3402          retlw   2
5717                    ; line_number = 1072
5718                    ; return n10_reg done
5719                    ; line_number = 1074
5720                    ; return n11_reg start
5721                    ; line_number = 1074
5722 1cd3 3402          retlw   2
5723                    ; line_number = 1074
5724                    ; return n11_reg done
5725   1cd4 :   in_out_registers__13:
5726                    ; switch end:(data:00=>00 code:11=>11)
5727                    ; line_number = 1052
5728                    ;  switch socket done
5729                    ; line_number = 1075
5730                    ; return n_none start
5731                    ; line_number = 1075
5732 1cd4 340b          retlw   11
5733                    ; line_number = 1075
5734                    ; return n_none done
5735            
5736            
5737                    ; delay after procedure statements=non-uniform
5738            
5739            
5740            
5741            
5742                    ; line_number = 1078
5743                    ; procedure in_masks
5744   1cd5 :   in_masks:
5745                    ; Last argument is sitting in W; save into argument variable
5746 1cd5 00e3          movwf   in_masks__socket
5747                    ; delay=4294967295
5748                    ; line_number = 1079
5749                    ; argument socket byte
5750 00000063 = in_masks__socket equ globals___0+67
5751                    ; line_number = 1080
5752                    ;  returns byte
5753            
5754                    ; # This procedure will return the input mask for {socket}.
5755            
5756                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5757                    ; line_number = 1084
5758                    ;  switch socket start
5759 1cd6 301c          movlw   in_masks__12>>8
5760 1cd7 008a          movwf   __pclath
5761 1cd8 0863          movf    in_masks__socket,w
5762 1cd9 3edb          addlw   in_masks__12
5763 1cda 0082          movwf   __pcl
5764                    ; page_group 11
5765   1cdb :   in_masks__12:
5766                    ; line_number = 1086
5767                    ; return n1in_mask start
5768                    ; line_number = 1086
5769 1cdb 3440          retlw   64
5770                    ; line_number = 1086
5771                    ; return n1in_mask done
5772                    ; line_number = 1088
5773                    ; return n2in_mask start
5774                    ; line_number = 1088
5775 1cdc 3401          retlw   1
5776                    ; line_number = 1088
5777                    ; return n2in_mask done
5778                    ; line_number = 1090
5779                    ; return n3in_mask start
5780                    ; line_number = 1090
5781 1cdd 3410          retlw   16
5782                    ; line_number = 1090
5783                    ; return n3in_mask done
5784                    ; line_number = 1092
5785                    ; return n4in_mask start
5786                    ; line_number = 1092
5787 1cde 3404          retlw   4
5788                    ; line_number = 1092
5789                    ; return n4in_mask done
5790                    ; line_number = 1094
5791                    ; return n5in_mask start
5792                    ; line_number = 1094
5793 1cdf 3404          retlw   4
5794                    ; line_number = 1094
5795                    ; return n5in_mask done
5796                    ; line_number = 1096
5797                    ; return n6in_mask start
5798                    ; line_number = 1096
5799 1ce0 3410          retlw   16
5800                    ; line_number = 1096
5801                    ; return n6in_mask done
5802                    ; line_number = 1098
5803                    ; return n7in_mask start
5804                    ; line_number = 1098
5805 1ce1 3401          retlw   1
5806                    ; line_number = 1098
5807                    ; return n7in_mask done
5808                    ; line_number = 1100
5809                    ; return n8in_mask start
5810                    ; line_number = 1100
5811 1ce2 3404          retlw   4
5812                    ; line_number = 1100
5813                    ; return n8in_mask done
5814                    ; line_number = 1102
5815                    ; return n9in_mask start
5816                    ; line_number = 1102
5817 1ce3 3401          retlw   1
5818                    ; line_number = 1102
5819                    ; return n9in_mask done
5820                    ; line_number = 1104
5821                    ; return n10in_mask start
5822                    ; line_number = 1104
5823 1ce4 3408          retlw   8
5824                    ; line_number = 1104
5825                    ; return n10in_mask done
5826                    ; line_number = 1106
5827                    ; return n11in_mask start
5828                    ; line_number = 1106
5829 1ce5 3480          retlw   128
5830                    ; line_number = 1106
5831                    ; return n11in_mask done
5832   1ce6 :   in_masks__13:
5833                    ; switch end:(data:00=>00 code:11=>11)
5834                    ; line_number = 1084
5835                    ;  switch socket done
5836                    ; line_number = 1107
5837                    ; return 0 start
5838                    ; line_number = 1107
5839 1ce6 3400          retlw   0
5840                    ; line_number = 1107
5841                    ; return 0 done
5842            
5843            
5844                    ; delay after procedure statements=non-uniform
5845            
5846            
5847            
5848            
5849                    ; line_number = 1110
5850                    ; procedure out_masks
5851   1ce7 :   out_masks:
5852                    ; Last argument is sitting in W; save into argument variable
5853 1ce7 00e4          movwf   out_masks__socket
5854                    ; delay=4294967295
5855                    ; line_number = 1111
5856                    ; argument socket byte
5857 00000064 = out_masks__socket equ globals___0+68
5858                    ; line_number = 1112
5859                    ;  returns byte
5860            
5861                    ; # This procedure will return the output mask for {socket}.
5862            
5863                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
5864                    ; line_number = 1116
5865                    ;  switch socket start
5866 1ce8 301c          movlw   out_masks__12>>8
5867 1ce9 008a          movwf   __pclath
5868 1cea 0864          movf    out_masks__socket,w
5869 1ceb 3eed          addlw   out_masks__12
5870 1cec 0082          movwf   __pcl
5871                    ; page_group 11
5872   1ced :   out_masks__12:
5873                    ; line_number = 1118
5874                    ; return n1out_mask start
5875                    ; line_number = 1118
5876 1ced 3480          retlw   128
5877                    ; line_number = 1118
5878                    ; return n1out_mask done
5879                    ; line_number = 1120
5880                    ; return n2out_mask start
5881                    ; line_number = 1120
5882 1cee 3402          retlw   2
5883                    ; line_number = 1120
5884                    ; return n2out_mask done
5885                    ; line_number = 1122
5886                    ; return n3out_mask start
5887                    ; line_number = 1122
5888 1cef 3420          retlw   32
5889                    ; line_number = 1122
5890                    ; return n3out_mask done
5891                    ; line_number = 1124
5892                    ; return n4out_mask start
5893                    ; line_number = 1124
5894 1cf0 3408          retlw   8
5895                    ; line_number = 1124
5896                    ; return n4out_mask done
5897                    ; line_number = 1126
5898                    ; return n5out_mask start
5899                    ; line_number = 1126
5900 1cf1 3408          retlw   8
5901                    ; line_number = 1126
5902                    ; return n5out_mask done
5903                    ; line_number = 1128
5904                    ; return n6out_mask start
5905                    ; line_number = 1128
5906 1cf2 3420          retlw   32
5907                    ; line_number = 1128
5908                    ; return n6out_mask done
5909                    ; line_number = 1130
5910                    ; return n7out_mask start
5911                    ; line_number = 1130
5912 1cf3 3402          retlw   2
5913                    ; line_number = 1130
5914                    ; return n7out_mask done
5915                    ; line_number = 1132
5916                    ; return n8out_mask start
5917                    ; line_number = 1132
5918 1cf4 3420          retlw   32
5919                    ; line_number = 1132
5920                    ; return n8out_mask done
5921                    ; line_number = 1134
5922                    ; return n9out_mask start
5923                    ; line_number = 1134
5924 1cf5 3402          retlw   2
5925                    ; line_number = 1134
5926                    ; return n9out_mask done
5927                    ; line_number = 1136
5928                    ; return n10out_mask start
5929                    ; line_number = 1136
5930 1cf6 3410          retlw   16
5931                    ; line_number = 1136
5932                    ; return n10out_mask done
5933                    ; line_number = 1138
5934                    ; return n11out_mask start
5935                    ; line_number = 1138
5936 1cf7 3440          retlw   64
5937                    ; line_number = 1138
5938                    ; return n11out_mask done
5939   1cf8 :   out_masks__13:
5940                    ; switch end:(data:00=>00 code:11=>11)
5941                    ; line_number = 1116
5942                    ;  switch socket done
5943                    ; line_number = 1139
5944                    ; return 0 start
5945                    ; line_number = 1139
5946 1cf8 3400          retlw   0
5947                    ; line_number = 1139
5948                    ; return 0 done
5949            
5950            
5951                    ; delay after procedure statements=non-uniform
5952            
5953            
5954            
5955            
5956            
5957                    ; Configuration bits
5958                    ; fill = 0x400
5959                    ; cp = off (0x3030)
5960                    ; debug = off (0x800)
5961                    ; wrt = on (0x200)
5962                    ; cpd = off (0x100)
5963                    ; lvp = off (0x0)
5964                    ; boden = off (0x0)
5965                    ; pwrte = off (0x8)
5966                    ; wdte = off (0x0)
5967                    ; fosc = hs (0x2)
5968                    ; 16186 = 0x3f3a
5969   3f3a =           __config 16186
5970                    ; Define start addresses for data regions
5971                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
5972                    ; Region="globals___0" Address=32" Size=80 Bytes=79 Bits=7 Available=0
5973                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
5974                    ; Region="globals___2" Address=272" Size=96 Bytes=32 Bits=0 Available=64
5975                    ; Region="globals___3" Address=416" Size=96 Bytes=0 Bits=0 Available=96
5976                    end
