1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 2047
3      0000 :           org     0
4               
5               
6                       ; Define start addresses for data regions
7    00000070 = shared___globals equ 112
8    00000020 = globals___0 equ 32
9    000000a0 = globals___1 equ 160
10   00000110 = globals___2 equ 272
11   00000190 = globals___3 equ 400
12   00000000 = __indf equ 0
13   00000002 = __pcl equ 2
14   00000003 = __status equ 3
15   00000004 = __fsr equ 4
16   00000003 = __c___byte equ 3
17   00000000 = __c___bit equ 0
18   00000003 = __z___byte equ 3
19   00000002 = __z___bit equ 2
20   00000003 = __rp0___byte equ 3
21   00000005 = __rp0___bit equ 5
22   00000003 = __rp1___byte equ 3
23   00000006 = __rp1___bit equ 6
24   00000003 = __irp___byte equ 3
25   00000007 = __irp___bit equ 7
26   0000000a = __pclath equ 10
27   0000000a = __cb0___byte equ 10
28   00000003 = __cb0___bit equ 3
29   0000000a = __cb1___byte equ 10
30   00000004 = __cb1___bit equ 4
31              
32                      ; # Copyright (c) 2005-2007 by Wayne C. Gramlich
33                      ; # All rights reserved.
34              
35                      ; buffer = 'buffer'
36                      ; line_number = 6
37                      ; library _pic16f777 entered
38              
39                      ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
40                      ; # All rights reserved.
41              
42                      ; buffer = '_pic16f777'
43                      ; line_number = 6
44                      ; processor pic16f676
45                      ; line_number = 7
46                      ; configure_address 0x2007
47                      ; line_number = 8
48                      ;  configure_fill 0x0600
49                      ; line_number = 9
50                      ;  configure_option cp: off = 0x2000
51                      ; line_number = 10
52                      ;  configure_option cp: on = 0x0000
53                      ; line_number = 11
54                      ;  configure_option cpmx: rc1 = 0x1000
55                      ; line_number = 12
56                      ;  configure_option cpmx: rb3 = 0x0000
57                      ; line_number = 13
58                      ;  configure_option debug: off = 0x0800
59                      ; line_number = 14
60                      ;  configure_option debug: on = 0x0000
61                      ; line_number = 15
62                      ;  configure_option borv: borv11 = 0x0180
63                      ; line_number = 16
64                      ;  configure_option borv: borv10 = 0x0100
65                      ; line_number = 17
66                      ;  configure_option borv: borv01 = 0x0080
67                      ; line_number = 18
68                      ;  configure_option borv: borv00 = 0x0000
69                      ; line_number = 19
70                      ;  configure_option boren: on = 0x40
71                      ; line_number = 20
72                      ;  configure_option boren: off = 0x00
73                      ; line_number = 21
74                      ;  configure_option mclre: on = 0x20
75                      ; line_number = 22
76                      ;  configure_option mclre: off = 0x00
77                      ; line_number = 23
78                      ;  configure_option pwrten: off = 8
79                      ; line_number = 24
80                      ;  configure_option pwrten: on = 0
81                      ; line_number = 25
82                      ;  configure_option wdten: on = 4
83                      ; line_number = 26
84                      ;  configure_option wdten: off = 0
85                      ; line_number = 27
86                      ;  configure_option fosc: rc_clk = 0x13
87                      ; line_number = 28
88                      ;  configure_option fosc: rc_no_clk = 0x12
89                      ; line_number = 29
90                      ;  configure_option fosc: int_clk = 0x11
91                      ; line_number = 30
92                      ;  configure_option fosc: int_no_clk = 0x10
93                      ; line_number = 31
94                      ;  configure_option fosc: extclk = 3
95                      ; line_number = 32
96                      ;  configure_option fosc: hs = 2
97                      ; line_number = 33
98                      ;  configure_option fosc: xt = 1
99                      ; line_number = 34
100                     ;  configure_option fosc: lp = 0
101             
102                     ; line_number = 36
103                     ;  configure_address 0x2008
104                     ; line_number = 37
105                     ;  configure_fill 0x33bc
106                     ; line_number = 38
107                     ;  configure_option borsen: on = 0x0040
108                     ; line_number = 39
109                     ;  configure_option borsen: off = 0x0000
110                     ; line_number = 40
111                     ;  configure_option ieso: on = 0x0002
112                     ; line_number = 41
113                     ;  configure_option ieso: off = 0x0002
114                     ; line_number = 42
115                     ;  configure_option fcmen: on = 0x0001
116                     ; line_number = 43
117                     ;  configure_option fcmen: off = 0x0000
118             
119                     ; line_number = 45
120                     ;  code_bank 0x0 : 0x7ff
121                     ; line_number = 46
122                     ;  code_bank 0x800 : 0xfff
123                     ; line_number = 47
124                     ;  code_bank 0x1000 : 0x17ff
125                     ; line_number = 48
126                     ;  code_bank 0x1800 : 0x1fff
127                     ; line_number = 49
128                     ;  data_bank 0x0 : 0x7f
129                     ; line_number = 50
130                     ;  data_bank 0x80 : 0xff
131                     ; line_number = 51
132                     ;  data_bank 0x100 : 0x17f
133                     ; line_number = 52
134                     ;  data_bank 0x180 : 0x1ff
135                     ; line_number = 53
136                     ;  global_region 0x20 : 0x6f
137                     ; line_number = 54
138                     ;  global_region 0xa0 : 0xef
139                     ; line_number = 55
140                     ;  global_region 0x110 : 0x16f
141                     ; line_number = 56
142                     ;  global_region 0x190 : 0x1ff
143                     ; line_number = 57
144                     ;  shared_region 0x70 : 0x7f
145             
146                     ; line_number = 59
147                     ;  interrupts_possible
148                     ; line_number = 60
149                     ;  packages pdip = 40
150                     ; line_number = 61
151                     ;  pin re3_in, re3_out, mclr, vpp, thv, re3_unused
152                     ; line_number = 62
153                     ; pin_bindings pdip = 1
154                     ; line_number = 63
155                     ;  bind_to _porte@3
156                     ; line_number = 64
157                     ;  or_if re3_in _trise 8
158                     ; line_number = 65
159                     ;  or_if re3_in _adcon1 15
160                     ; line_number = 66
161                     ;  or_if re3_in _adcon0 0
162                     ; line_number = 67
163                     ;  or_if re3_out _trise 0
164                     ; line_number = 68
165                     ;  or_if re3_out _adcon1 15
166                     ; line_number = 69
167                     ;  or_if re3_out _adcon0 0
168                     ; line_number = 70
169                     ; pin ra0_in, ra0_out, an0, ra0_unused
170                     ; line_number = 71
171                     ; pin_bindings pdip = 2
172                     ; line_number = 72
173                     ;  bind_to _porta@0
174                     ; line_number = 73
175                     ;  or_if ra0_in _trisa 1
176                     ; line_number = 74
177                     ;  or_if ra0_in _adcon1 15
178                     ; line_number = 75
179                     ;  or_if ra0_in _adcon0 0
180                     ; line_number = 76
181                     ;  or_if ra0_out _trisa 0
182                     ; line_number = 77
183                     ;  or_if ra0_out _adcon1 15
184                     ; line_number = 78
185                     ;  or_if ra0_out _adcon0 0
186                     ; line_number = 79
187                     ; pin ra1_in, ra1_out, an1, ra1_unused
188                     ; line_number = 80
189                     ; pin_bindings pdip = 3
190                     ; line_number = 81
191                     ;  bind_to _porta@1
192                     ; line_number = 82
193                     ;  or_if ra1_in _trisa 2
194                     ; line_number = 83
195                     ;  or_if ra1_in _adcon1 15
196                     ; line_number = 84
197                     ;  or_if ra1_in _adcon0 0
198                     ; line_number = 85
199                     ;  or_if ra1_out _trisa 0
200                     ; line_number = 86
201                     ;  or_if ra1_out _adcon1 15
202                     ; line_number = 87
203                     ;  or_if ra1_out _adcon0 0
204                     ; line_number = 88
205                     ; pin ra2_in, ra2_out, an2, vref_minus, ra2_unused
206                     ; line_number = 89
207                     ; pin_bindings pdip = 4
208                     ; line_number = 90
209                     ;  bind_to _porta@2
210                     ; line_number = 91
211                     ;  or_if ra2_in _trisa 4
212                     ; line_number = 92
213                     ;  or_if ra2_in _adcon1 15
214                     ; line_number = 93
215                     ;  or_if ra2_in _adcon0 0
216                     ; line_number = 94
217                     ;  or_if ra2_out _trisa 0
218                     ; line_number = 95
219                     ;  or_if ra2_out _adcon1 15
220                     ; line_number = 96
221                     ;  or_if ra2_out _adcon0 0
222                     ; line_number = 97
223                     ; pin ra3_in, ra3_out, an3, vrev_plus, ra3_unused
224                     ; line_number = 98
225                     ; pin_bindings pdip = 5
226                     ; line_number = 99
227                     ;  bind_to _porta@3
228                     ; line_number = 100
229                     ;  or_if ra3_in _trisa 8
230                     ; line_number = 101
231                     ;  or_if ra3_in _adcon1 15
232                     ; line_number = 102
233                     ;  or_if ra3_in _adcon0 0
234                     ; line_number = 103
235                     ;  or_if ra3_out _trisa 0
236                     ; line_number = 104
237                     ;  or_if ra3_out _adcon1 15
238                     ; line_number = 105
239                     ;  or_if ra3_out _adcon0 0
240                     ; line_number = 106
241                     ; pin ra4_in, ra4_out, t0cki, ra4_unused
242                     ; line_number = 107
243                     ; pin_bindings pdip = 6
244                     ; line_number = 108
245                     ;  bind_to _porta@4
246                     ; line_number = 109
247                     ;  or_if ra4_in _trisa 16
248                     ; line_number = 110
249                     ;  or_if ra4_in _adcon1 15
250                     ; line_number = 111
251                     ;  or_if ra4_in _adcon0 0
252                     ; line_number = 112
253                     ;  or_if ra4_out _trisa 0
254                     ; line_number = 113
255                     ;  or_if ra4_out _adcon1 15
256                     ; line_number = 114
257                     ;  or_if ra4_out _adcon0 0
258                     ; line_number = 115
259                     ; pin ra5_in, ra5_out, an4, ra5_unused
260                     ; line_number = 116
261                     ; pin_bindings pdip = 7
262                     ; line_number = 117
263                     ;  bind_to _porta@5
264                     ; line_number = 118
265                     ;  or_if ra5_in _trisa 32
266                     ; line_number = 119
267                     ;  or_if ra5_in _adcon1 15
268                     ; line_number = 120
269                     ;  or_if ra5_in _adcon0 0
270                     ; line_number = 121
271                     ;  or_if ra5_out _trisa 0
272                     ; line_number = 122
273                     ;  or_if ra5_out _adcon1 15
274                     ; line_number = 123
275                     ;  or_if ra5_out _adcon0 0
276                     ; line_number = 124
277                     ; pin re0_in, re0_out, rd, an5, re0_unused
278                     ; line_number = 125
279                     ; pin_bindings pdip = 8
280                     ; line_number = 126
281                     ;  bind_to _porte@0
282                     ; line_number = 127
283                     ;  or_if re0_in _trise 1
284                     ; line_number = 128
285                     ;  or_if re0_in _adcon1 15
286                     ; line_number = 129
287                     ;  or_if re0_in _adcon0 0
288                     ; line_number = 130
289                     ;  or_if re0_out _trise 0
290                     ; line_number = 131
291                     ;  or_if re0_out _adcon1 15
292                     ; line_number = 132
293                     ;  or_if re0_out _adcon0 0
294                     ; line_number = 133
295                     ; pin re1_in, re1_out, wr, an6, re1_unused
296                     ; line_number = 134
297                     ; pin_bindings pdip = 9
298                     ; line_number = 135
299                     ;  bind_to _porte@1
300                     ; line_number = 136
301                     ;  or_if re1_in _trise 2
302                     ; line_number = 137
303                     ;  or_if re1_in _adcon1 15
304                     ; line_number = 138
305                     ;  or_if re1_in _adcon0 0
306                     ; line_number = 139
307                     ;  or_if re1_out _trise 0
308                     ; line_number = 140
309                     ;  or_if re1_out _adcon1 15
310                     ; line_number = 141
311                     ;  or_if re1_out _adcon0 0
312                     ; line_number = 142
313                     ; pin re2_in, re2_out, cs, re2_unused
314                     ; line_number = 143
315                     ; pin_bindings pdip = 10
316                     ; line_number = 144
317                     ;  bind_to _porte@2
318                     ; line_number = 145
319                     ;  or_if re2_in _trise 4
320                     ; line_number = 146
321                     ;  or_if re2_in _adcon1 15
322                     ; line_number = 147
323                     ;  or_if re2_in _adcon0 0
324                     ; line_number = 148
325                     ;  or_if re2_out _trise 0
326                     ; line_number = 149
327                     ;  or_if re2_out _adcon1 15
328                     ; line_number = 150
329                     ;  or_if re2_out _adcon0 0
330                     ; line_number = 151
331                     ; pin vdd1, power_supply
332                     ; line_number = 152
333                     ; pin_bindings pdip = 11
334                     ; line_number = 153
335                     ; pin vss1, ground
336                     ; line_number = 154
337                     ; pin_bindings pdip = 12
338                     ; line_number = 155
339                     ; pin osc1, clki, ra7_in, ra7_out, ra7_unused
340                     ; line_number = 156
341                     ; pin_bindings pdip = 13
342                     ; line_number = 157
343                     ;  bind_to _porta@6
344                     ; line_number = 158
345                     ;  or_if ra7_in _trisa 128
346                     ; line_number = 159
347                     ;  or_if ra7_in _adcon1 15
348                     ; line_number = 160
349                     ;  or_if ra7_in _adcon0 0
350                     ; line_number = 161
351                     ;  or_if ra7_out _trisa 0
352                     ; line_number = 162
353                     ;  or_if ra7_out _adcon1 15
354                     ; line_number = 163
355                     ;  or_if ra7_out _adcon0 0
356                     ; line_number = 164
357                     ; pin osc2, clko, ra6_in, ra6_out, ra6_unused
358                     ; line_number = 165
359                     ; pin_bindings pdip = 14
360                     ; line_number = 166
361                     ;  bind_to _porta@6
362                     ; line_number = 167
363                     ;  or_if ra6_in _trisa 64
364                     ; line_number = 168
365                     ;  or_if ra6_in _adcon1 15
366                     ; line_number = 169
367                     ;  or_if ra6_in _adcon0 0
368                     ; line_number = 170
369                     ;  or_if ra6_out _trisa 0
370                     ; line_number = 171
371                     ;  or_if ra6_out _adcon1 15
372                     ; line_number = 172
373                     ;  or_if ra6_out _adcon0 0
374                     ; line_number = 173
375                     ; pin rc0_in, rc0_out, t1oso, t1cki, rc0_unused
376                     ; line_number = 174
377                     ; pin_bindings pdip = 15
378                     ; line_number = 175
379                     ;  bind_to _portc@0
380                     ; line_number = 176
381                     ;  or_if rc0_in _trisc 1
382                     ; line_number = 177
383                     ;  or_if rc0_in _adcon1 15
384                     ; line_number = 178
385                     ;  or_if rc0_in _adcon0 0
386                     ; line_number = 179
387                     ;  or_if rc0_out _trisc 0
388                     ; line_number = 180
389                     ;  or_if rc0_out _adcon1 15
390                     ; line_number = 181
391                     ;  or_if rc0_out _adcon0 0
392                     ; line_number = 182
393                     ; pin rc1_in, rc1_out, t1osi, ccp2a, rc1_unused
394                     ; line_number = 183
395                     ; pin_bindings pdip = 16
396                     ; line_number = 184
397                     ;  bind_to _portc@1
398                     ; line_number = 185
399                     ;  or_if rc1_in _trisc 2
400                     ; line_number = 186
401                     ;  or_if rc1_in _adcon1 15
402                     ; line_number = 187
403                     ;  or_if rc1_in _adcon0 0
404                     ; line_number = 188
405                     ;  or_if rc1_out _trisc 0
406                     ; line_number = 189
407                     ;  or_if rc1_out _adcon1 15
408                     ; line_number = 190
409                     ;  or_if rc1_out _adcon0 0
410                     ; line_number = 191
411                     ; pin rc2_in, rc2_out, ccp1, rc2_unused
412                     ; line_number = 192
413                     ; pin_bindings pdip = 17
414                     ; line_number = 193
415                     ;  bind_to _portc@2
416                     ; line_number = 194
417                     ;  or_if rc2_in _trisc 4
418                     ; line_number = 195
419                     ;  or_if rc2_in _adcon1 15
420                     ; line_number = 196
421                     ;  or_if rc2_in _adcon0 0
422                     ; line_number = 197
423                     ;  or_if rc2_out _trisc 0
424                     ; line_number = 198
425                     ;  or_if rc2_out _adcon1 15
426                     ; line_number = 199
427                     ;  or_if rc2_out _adcon0 0
428                     ; line_number = 200
429                     ; pin rc3_in, rc3_out, sck, scl, rc3_unused
430                     ; line_number = 201
431                     ; pin_bindings pdip = 18
432                     ; line_number = 202
433                     ;  bind_to _portc@3
434                     ; line_number = 203
435                     ;  or_if rc3_in _trisc 8
436                     ; line_number = 204
437                     ;  or_if rc3_in _adcon1 15
438                     ; line_number = 205
439                     ;  or_if rc3_in _adcon0 0
440                     ; line_number = 206
441                     ;  or_if rc3_out _trisc 0
442                     ; line_number = 207
443                     ;  or_if rc3_out _adcon1 15
444                     ; line_number = 208
445                     ;  or_if rc3_out _adcon0 0
446                     ; line_number = 209
447                     ; pin rd0_in, rd0_out, psp0, rd0_unused
448                     ; line_number = 210
449                     ; pin_bindings pdip = 19
450                     ; line_number = 211
451                     ;  bind_to _portd@0
452                     ; line_number = 212
453                     ;  or_if rd0_in _trisd 1
454                     ; line_number = 213
455                     ;  or_if rd0_in _adcon1 15
456                     ; line_number = 214
457                     ;  or_if rd0_in _adcon0 0
458                     ; line_number = 215
459                     ;  or_if rd0_out _trisd 0
460                     ; line_number = 216
461                     ;  or_if rd0_out _adcon1 15
462                     ; line_number = 217
463                     ;  or_if rd0_out _adcon0 0
464                     ; line_number = 218
465                     ; pin rd1_in, rd1_out, psp1, rd1_unused
466                     ; line_number = 219
467                     ; pin_bindings pdip = 20
468                     ; line_number = 220
469                     ;  bind_to _portd@1
470                     ; line_number = 221
471                     ;  or_if rd1_in _trisd 2
472                     ; line_number = 222
473                     ;  or_if rd1_in _adcon1 15
474                     ; line_number = 223
475                     ;  or_if rd1_in _adcon0 0
476                     ; line_number = 224
477                     ;  or_if rd1_out _trisd 0
478                     ; line_number = 225
479                     ;  or_if rd1_out _adcon1 15
480                     ; line_number = 226
481                     ;  or_if rd1_out _adcon0 0
482                     ; line_number = 227
483                     ; pin rd2_in, rd2_out, psp2, rd2_unused
484                     ; line_number = 228
485                     ; pin_bindings pdip = 21
486                     ; line_number = 229
487                     ;  bind_to _portd@2
488                     ; line_number = 230
489                     ;  or_if rd2_in _trisd 4
490                     ; line_number = 231
491                     ;  or_if rd2_in _adcon1 15
492                     ; line_number = 232
493                     ;  or_if rd2_in _adcon0 0
494                     ; line_number = 233
495                     ;  or_if rd2_out _trisd 0
496                     ; line_number = 234
497                     ;  or_if rd2_out _adcon1 15
498                     ; line_number = 235
499                     ;  or_if rd2_out _adcon0 0
500                     ; line_number = 236
501                     ; pin rd3_in, rd3_out, psp3, rd3_unused
502                     ; line_number = 237
503                     ; pin_bindings pdip = 22
504                     ; line_number = 238
505                     ;  bind_to _portd@3
506                     ; line_number = 239
507                     ;  or_if rd3_in _trisd 8
508                     ; line_number = 240
509                     ;  or_if rd3_in _adcon1 15
510                     ; line_number = 241
511                     ;  or_if rd3_in _adcon0 0
512                     ; line_number = 242
513                     ;  or_if rd3_out _trisd 0
514                     ; line_number = 243
515                     ;  or_if rd3_out _adcon1 15
516                     ; line_number = 244
517                     ;  or_if rd3_out _adcon0 0
518                     ; line_number = 245
519                     ; pin rc4_in, rc4_out, sdi, sda, rc4_unused
520                     ; line_number = 246
521                     ; pin_bindings pdip = 23
522                     ; line_number = 247
523                     ;  bind_to _portc@4
524                     ; line_number = 248
525                     ;  or_if rc4_in _trisc 16
526                     ; line_number = 249
527                     ;  or_if rc4_in _adcon1 15
528                     ; line_number = 250
529                     ;  or_if rc4_in _adcon0 0
530                     ; line_number = 251
531                     ;  or_if rc4_out _trisc 0
532                     ; line_number = 252
533                     ;  or_if rc4_out _adcon1 15
534                     ; line_number = 253
535                     ;  or_if rc4_out _adcon0 0
536                     ; line_number = 254
537                     ; pin rc5_in, rc5_out, sdo, rc5_unused
538                     ; line_number = 255
539                     ; pin_bindings pdip = 24
540                     ; line_number = 256
541                     ;  bind_to _portc@5
542                     ; line_number = 257
543                     ;  or_if rc5_in _trisc 32
544                     ; line_number = 258
545                     ;  or_if rc5_in _adcon1 15
546                     ; line_number = 259
547                     ;  or_if rc5_in _adcon0 0
548                     ; line_number = 260
549                     ;  or_if rc5_out _trisc 0
550                     ; line_number = 261
551                     ;  or_if rc5_out _adcon1 15
552                     ; line_number = 262
553                     ;  or_if rc5_out _adcon0 0
554                     ; line_number = 263
555                     ; pin rc6_in, rc6_out, tx, ck, rc6_unused
556                     ; line_number = 264
557                     ; pin_bindings pdip = 25
558                     ; line_number = 265
559                     ;  bind_to _portc@6
560                     ; line_number = 266
561                     ;  or_if rc6_in _trisc 64
562                     ; line_number = 267
563                     ;  or_if rc6_in _adcon1 15
564                     ; line_number = 268
565                     ;  or_if rc6_in _adcon0 0
566                     ; line_number = 269
567                     ;  or_if rc6_out _trisc 0
568                     ; line_number = 270
569                     ;  or_if rc6_out _adcon1 15
570                     ; line_number = 271
571                     ;  or_if rc6_out _adcon0 0
572                     ; line_number = 272
573                     ;  or_if tx _trisc 0
574                     ; line_number = 273
575                     ;  or_if tx _adcon1 15
576                     ; line_number = 274
577                     ;  or_if tx _adcon0 0
578                     ; line_number = 275
579                     ; pin rc7_in, rc7_out, rx, dt, rc7_unused
580                     ; line_number = 276
581                     ; pin_bindings pdip = 26
582                     ; line_number = 277
583                     ;  bind_to _portc@7
584                     ; line_number = 278
585                     ;  or_if rc7_in _trisc 128
586                     ; line_number = 279
587                     ;  or_if rc7_in _adcon1 15
588                     ; line_number = 280
589                     ;  or_if rc7_in _adcon0 0
590                     ; line_number = 281
591                     ;  or_if rx _trisc 128
592                     ; line_number = 282
593                     ;  or_if rx _adcon1 15
594                     ; line_number = 283
595                     ;  or_if rx _adcon0 0
596                     ; line_number = 284
597                     ;  or_if rc7_out _trisc 0
598                     ; line_number = 285
599                     ;  or_if rc7_out _adcon1 15
600                     ; line_number = 286
601                     ;  or_if rc7_out _adcon0 0
602                     ; line_number = 287
603                     ; pin rd4_in, rd4_out, psp4, rd4_unused
604                     ; line_number = 288
605                     ; pin_bindings pdip = 27
606                     ; line_number = 289
607                     ;  bind_to _portd@4
608                     ; line_number = 290
609                     ;  or_if rd4_in _trisd 16
610                     ; line_number = 291
611                     ;  or_if rd4_in _adcon1 15
612                     ; line_number = 292
613                     ;  or_if rd4_in _adcon0 0
614                     ; line_number = 293
615                     ;  or_if rd4_out _trisd 0
616                     ; line_number = 294
617                     ;  or_if rd4_out _adcon1 15
618                     ; line_number = 295
619                     ;  or_if rd4_out _adcon0 0
620                     ; line_number = 296
621                     ; pin rd5_in, rd5_out, psp5, rd5_unused
622                     ; line_number = 297
623                     ; pin_bindings pdip = 28
624                     ; line_number = 298
625                     ;  bind_to _portd@5
626                     ; line_number = 299
627                     ;  or_if rd5_in _trisd 32
628                     ; line_number = 300
629                     ;  or_if rd5_in _adcon1 15
630                     ; line_number = 301
631                     ;  or_if rd5_in _adcon0 0
632                     ; line_number = 302
633                     ;  or_if rd5_out _trisd 0
634                     ; line_number = 303
635                     ;  or_if rd5_out _adcon1 15
636                     ; line_number = 304
637                     ;  or_if rd5_out _adcon0 0
638                     ; line_number = 305
639                     ; pin rd6_in, rd6_out, psp6, rd6_unused
640                     ; line_number = 306
641                     ; pin_bindings pdip = 29
642                     ; line_number = 307
643                     ;  bind_to _portd@6
644                     ; line_number = 308
645                     ;  or_if rd6_in _trisd 64
646                     ; line_number = 309
647                     ;  or_if rd6_in _adcon1 15
648                     ; line_number = 310
649                     ;  or_if rd6_in _adcon0 0
650                     ; line_number = 311
651                     ;  or_if rd6_out _trisd 0
652                     ; line_number = 312
653                     ;  or_if rd6_out _adcon1 15
654                     ; line_number = 313
655                     ;  or_if rd6_out _adcon0 0
656                     ; line_number = 314
657                     ; pin rd7_in, rd7_out, psp7, rd7_unused
658                     ; line_number = 315
659                     ; pin_bindings pdip = 30
660                     ; line_number = 316
661                     ;  bind_to _portd@7
662                     ; line_number = 317
663                     ;  or_if rd7_in _trisd 128
664                     ; line_number = 318
665                     ;  or_if rd7_in _adcon1 15
666                     ; line_number = 319
667                     ;  or_if rd7_in _adcon0 0
668                     ; line_number = 320
669                     ;  or_if rd7_out _trisd 0
670                     ; line_number = 321
671                     ;  or_if rd7_out _adcon1 15
672                     ; line_number = 322
673                     ;  or_if rd7_out _adcon0 0
674                     ; line_number = 323
675                     ; pin vss2, ground2
676                     ; line_number = 324
677                     ; pin_bindings pdip = 31
678                     ; line_number = 325
679                     ; pin vdd2, power_supply2
680                     ; line_number = 326
681                     ; pin_bindings pdip = 32
682                     ; line_number = 327
683                     ; pin rb0_in, rb0_out, int, an12, rb0_unused
684                     ; line_number = 328
685                     ; pin_bindings pdip = 33
686                     ; line_number = 329
687                     ;  bind_to _portb@0
688                     ; line_number = 330
689                     ;  or_if rb0_in _trisb 1
690                     ; line_number = 331
691                     ;  or_if rb0_in _adcon1 15
692                     ; line_number = 332
693                     ;  or_if rb0_in _adcon0 0
694                     ; line_number = 333
695                     ;  or_if rb0_out _trisb 0
696                     ; line_number = 334
697                     ;  or_if rb0_out _adcon1 15
698                     ; line_number = 335
699                     ;  or_if rb0_out _adcon0 0
700                     ; line_number = 336
701                     ; pin rb1_in, rb1_out, an10, rb1_unused
702                     ; line_number = 337
703                     ; pin_bindings pdip = 34
704                     ; line_number = 338
705                     ;  bind_to _portb@1
706                     ; line_number = 339
707                     ;  or_if rb1_in _trisb 2
708                     ; line_number = 340
709                     ;  or_if rb1_in _adcon1 15
710                     ; line_number = 341
711                     ;  or_if rb1_in _adcon0 0
712                     ; line_number = 342
713                     ;  or_if rb1_out _trisb 0
714                     ; line_number = 343
715                     ;  or_if rb1_out _adcon1 15
716                     ; line_number = 344
717                     ;  or_if rb1_out _adcon0 0
718                     ; line_number = 345
719                     ; pin rb2_in, rb2_out, an8, rb2_unused
720                     ; line_number = 346
721                     ; pin_bindings pdip = 35
722                     ; line_number = 347
723                     ;  bind_to _portb@2
724                     ; line_number = 348
725                     ;  or_if rb2_in _trisb 4
726                     ; line_number = 349
727                     ;  or_if rb2_in _adcon1 15
728                     ; line_number = 350
729                     ;  or_if rb2_in _adcon0 0
730                     ; line_number = 351
731                     ;  or_if rb2_out _trisb 0
732                     ; line_number = 352
733                     ;  or_if rb2_out _adcon1 15
734                     ; line_number = 353
735                     ;  or_if rb2_out _adcon0 0
736                     ; line_number = 354
737                     ; pin rb3_in, rb3_out, ccp2b, an9, rb3_unused
738                     ; line_number = 355
739                     ; pin_bindings pdip = 36
740                     ; line_number = 356
741                     ;  bind_to _portb@3
742                     ; line_number = 357
743                     ;  or_if rb3_in _trisb 8
744                     ; line_number = 358
745                     ;  or_if rb3_in _adcon1 15
746                     ; line_number = 359
747                     ;  or_if rb3_out _trisb 0
748                     ; line_number = 360
749                     ;  or_if rb3_out _adcon1 15
750                     ; line_number = 361
751                     ; pin rb4_in, rb4_out, an11, rb4_unused
752                     ; line_number = 362
753                     ; pin_bindings pdip = 37
754                     ; line_number = 363
755                     ;  bind_to _portb@4
756                     ; line_number = 364
757                     ;  or_if rb4_in _trisb 16
758                     ; line_number = 365
759                     ;  or_if rb4_in _adcon1 15
760                     ; line_number = 366
761                     ;  or_if rb4_in _adcon0 0
762                     ; line_number = 367
763                     ;  or_if rb4_out _trisb 0
764                     ; line_number = 368
765                     ;  or_if rb4_out _adcon1 15
766                     ; line_number = 369
767                     ;  or_if rb4_out _adcon0 0
768                     ; line_number = 370
769                     ; pin rb5_in, rb5_out, an13, ccp3, rb5_unused
770                     ; line_number = 371
771                     ; pin_bindings pdip = 38
772                     ; line_number = 372
773                     ;  bind_to _portb@5
774                     ; line_number = 373
775                     ;  or_if rb5_in _trisb 32
776                     ; line_number = 374
777                     ;  or_if rb5_in _adcon1 15
778                     ; line_number = 375
779                     ;  or_if rb5_in _adcon0 0
780                     ; line_number = 376
781                     ;  or_if rb5_out _trisb 0
782                     ; line_number = 377
783                     ;  or_if rb5_out _adcon1 15
784                     ; line_number = 378
785                     ;  or_if rb5_out _adcon0 0
786                     ; line_number = 379
787                     ; pin rb6_in, rb6_out, pgc, rb6_unused
788                     ; line_number = 380
789                     ; pin_bindings pdip = 39
790                     ; line_number = 381
791                     ;  bind_to _portb@6
792                     ; line_number = 382
793                     ;  or_if rb6_in _trisb 64
794                     ; line_number = 383
795                     ;  or_if rb6_in _adcon1 15
796                     ; line_number = 384
797                     ;  or_if rb6_in _adcon0 0
798                     ; line_number = 385
799                     ;  or_if rb6_out _trisb 0
800                     ; line_number = 386
801                     ;  or_if rb6_out _adcon1 15
802                     ; line_number = 387
803                     ;  or_if rb6_out _adcon0 0
804                     ; line_number = 388
805                     ; pin rb7_in, rb7_out, pgd, rb7_unused
806                     ; line_number = 389
807                     ; pin_bindings pdip = 40
808                     ; line_number = 390
809                     ;  bind_to _portb@7
810                     ; line_number = 391
811                     ;  or_if rb7_in _trisb 128
812                     ; line_number = 392
813                     ;  or_if rb7_in _adcon1 15
814                     ; line_number = 393
815                     ;  or_if rb7_in _adcon0 0
816                     ; line_number = 394
817                     ;  or_if rb7_out _trisb 0
818                     ; line_number = 395
819                     ;  or_if rb7_out _adcon1 15
820                     ; line_number = 396
821                     ;  or_if rb7_out _adcon0 0
822             
823                     ; line_number = 398
824                     ; library _pic16f7x7 entered
825             
826                     ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
827                     ; # All rights reserved.
828             
829                     ; buffer = '_pic16f7x7'
830                     ; line_number = 6
831                     ; library _standard entered
832             
833                     ; # Copyright (c) 2006 by Wayne C. Gramlich
834                     ; # All rights reserved.
835             
836                     ; # Standard definition for uCL:
837             
838                     ; buffer = '_standard'
839                     ; line_number = 8
840                     ; constant _true = (1 = 1)
841  00000001 = _true equ 1
842                     ; line_number = 9
843                     ; constant _false = (0 != 0)
844  00000000 = _false equ 0
845             
846             
847                     ; buffer = '_pic16f7x7'
848                     ; line_number = 6
849                     ; library _standard exited
850             
851                     ; # Common declarations for PIC16F7x7 series microcontrollers:
852             
853                     ; # Register and pin definitions:
854             
855                     ; # Bank 0:
856             
857                     ; line_number = 14
858                     ; register _indf = 
859  00000000 = _indf equ 0
860             
861                     ; line_number = 16
862                     ; register _tmr0 = 
863  00000001 = _tmr0 equ 1
864             
865                     ; line_number = 18
866                     ; register _pcl = 
867  00000002 = _pcl equ 2
868             
869                     ; line_number = 20
870                     ; register _status = 
871  00000003 = _status equ 3
872                     ; line_number = 21
873                     ; bind _irp = _status@7
874  00000003 = _irp___byte equ _status
875  00000007 = _irp___bit equ 7
876                     ; line_number = 22
877                     ; bind _rp1 = _status@6
878  00000003 = _rp1___byte equ _status
879  00000006 = _rp1___bit equ 6
880                     ; line_number = 23
881                     ; bind _rp0 = _status@5
882  00000003 = _rp0___byte equ _status
883  00000005 = _rp0___bit equ 5
884                     ; line_number = 24
885                     ; bind _to = _status@4
886  00000003 = _to___byte equ _status
887  00000004 = _to___bit equ 4
888                     ; line_number = 25
889                     ; bind _pd = _status@3
890  00000003 = _pd___byte equ _status
891  00000003 = _pd___bit equ 3
892                     ; line_number = 26
893                     ; bind _z = _status@2
894  00000003 = _z___byte equ _status
895  00000002 = _z___bit equ 2
896                     ; line_number = 27
897                     ; bind _dc = _status@1
898  00000003 = _dc___byte equ _status
899  00000001 = _dc___bit equ 1
900                     ; line_number = 28
901                     ; bind _c = _status@0
902  00000003 = _c___byte equ _status
903  00000000 = _c___bit equ 0
904             
905                     ; line_number = 30
906                     ; register _fsr = 
907  00000004 = _fsr equ 4
908             
909                     ; line_number = 32
910                     ; register _porta = 
911  00000005 = _porta equ 5
912             
913                     ; line_number = 34
914                     ; register _portb = 
915  00000006 = _portb equ 6
916             
917                     ; line_number = 36
918                     ; register _portc = 
919  00000007 = _portc equ 7
920             
921                     ; line_number = 38
922                     ; register _pclath = 
923  0000000a = _pclath equ 10
924             
925                     ; line_number = 40
926                     ; register _intcon = 
927  0000000b = _intcon equ 11
928                     ; line_number = 41
929                     ; bind _gie = _intcon@7
930  0000000b = _gie___byte equ _intcon
931  00000007 = _gie___bit equ 7
932                     ; line_number = 42
933                     ; bind _peie = _intcon@6
934  0000000b = _peie___byte equ _intcon
935  00000006 = _peie___bit equ 6
936                     ; line_number = 43
937                     ; bind _tmr0ie = _intcon@5
938  0000000b = _tmr0ie___byte equ _intcon
939  00000005 = _tmr0ie___bit equ 5
940                     ; line_number = 44
941                     ; bind _int0ie = _intcon@4
942  0000000b = _int0ie___byte equ _intcon
943  00000004 = _int0ie___bit equ 4
944                     ; line_number = 45
945                     ; bind _rbie = _intcon@3
946  0000000b = _rbie___byte equ _intcon
947  00000003 = _rbie___bit equ 3
948                     ; line_number = 46
949                     ; bind _tmr0if = _intcon@2
950  0000000b = _tmr0if___byte equ _intcon
951  00000002 = _tmr0if___bit equ 2
952                     ; line_number = 47
953                     ; bind _int0if = _intcon@1
954  0000000b = _int0if___byte equ _intcon
955  00000001 = _int0if___bit equ 1
956                     ; line_number = 48
957                     ; bind _rbif = _intcon@0
958  0000000b = _rbif___byte equ _intcon
959  00000000 = _rbif___bit equ 0
960             
961                     ; line_number = 50
962                     ; register _pir1 = 
963  0000000c = _pir1 equ 12
964                     ; line_number = 51
965                     ; bind _pspif = _pir1@7
966  0000000c = _pspif___byte equ _pir1
967  00000007 = _pspif___bit equ 7
968                     ; line_number = 52
969                     ; bind _adif = _pir1@6
970  0000000c = _adif___byte equ _pir1
971  00000006 = _adif___bit equ 6
972                     ; line_number = 53
973                     ; bind _rcif = _pir1@5
974  0000000c = _rcif___byte equ _pir1
975  00000005 = _rcif___bit equ 5
976                     ; line_number = 54
977                     ; bind _txif = _pir1@4
978  0000000c = _txif___byte equ _pir1
979  00000004 = _txif___bit equ 4
980                     ; line_number = 55
981                     ; bind _sspif = _pir1@3
982  0000000c = _sspif___byte equ _pir1
983  00000003 = _sspif___bit equ 3
984                     ; line_number = 56
985                     ; bind _ccp1if = _pir1@2
986  0000000c = _ccp1if___byte equ _pir1
987  00000002 = _ccp1if___bit equ 2
988                     ; line_number = 57
989                     ; bind _tmr2if = _pir1@1
990  0000000c = _tmr2if___byte equ _pir1
991  00000001 = _tmr2if___bit equ 1
992                     ; line_number = 58
993                     ; bind _tmr1if = _pir1@0
994  0000000c = _tmr1if___byte equ _pir1
995  00000000 = _tmr1if___bit equ 0
996             
997                     ; line_number = 60
998                     ; register _pir2 = 
999  0000000d = _pir2 equ 13
1000                    ; line_number = 61
1001                    ; bind _osif = _pir2@7
1002 0000000d = _osif___byte equ _pir2
1003 00000007 = _osif___bit equ 7
1004                    ; line_number = 62
1005                    ; bind _cmif = _pir2@6
1006 0000000d = _cmif___byte equ _pir2
1007 00000006 = _cmif___bit equ 6
1008                    ; line_number = 63
1009                    ; bind _lvif = _pir2@5
1010 0000000d = _lvif___byte equ _pir2
1011 00000005 = _lvif___bit equ 5
1012                    ; line_number = 64
1013                    ; bind _bclif = _pir2@3
1014 0000000d = _bclif___byte equ _pir2
1015 00000003 = _bclif___bit equ 3
1016                    ; line_number = 65
1017                    ; bind _ccp3if = _pir2@1
1018 0000000d = _ccp3if___byte equ _pir2
1019 00000001 = _ccp3if___bit equ 1
1020                    ; line_number = 66
1021                    ; bind _ccp2if = _pir2@0
1022 0000000d = _ccp2if___byte equ _pir2
1023 00000000 = _ccp2if___bit equ 0
1024            
1025                    ; line_number = 68
1026                    ; register _tmr1l = 
1027 0000000e = _tmr1l equ 14
1028            
1029                    ; line_number = 70
1030                    ; register _tmr1h = 
1031 0000000f = _tmr1h equ 15
1032            
1033                    ; line_number = 72
1034                    ; register _t1con = 
1035 00000010 = _t1con equ 16
1036                    ; line_number = 73
1037                    ; bind _t1run = _t1con@6
1038 00000010 = _t1run___byte equ _t1con
1039 00000006 = _t1run___bit equ 6
1040                    ; line_number = 74
1041                    ; bind _t1ckps1 = _t1con@5
1042 00000010 = _t1ckps1___byte equ _t1con
1043 00000005 = _t1ckps1___bit equ 5
1044                    ; line_number = 75
1045                    ; bind _t1ckps0 = _t1con@4
1046 00000010 = _t1ckps0___byte equ _t1con
1047 00000004 = _t1ckps0___bit equ 4
1048                    ; line_number = 76
1049                    ; bind _t1oscen = _t1con@3
1050 00000010 = _t1oscen___byte equ _t1con
1051 00000003 = _t1oscen___bit equ 3
1052                    ; line_number = 77
1053                    ; bind _t1sync = _t1con@2
1054 00000010 = _t1sync___byte equ _t1con
1055 00000002 = _t1sync___bit equ 2
1056                    ; line_number = 78
1057                    ; bind _tmr1cs = _t1con@1
1058 00000010 = _tmr1cs___byte equ _t1con
1059 00000001 = _tmr1cs___bit equ 1
1060                    ; line_number = 79
1061                    ; bind _tmr1on = _t1con@0
1062 00000010 = _tmr1on___byte equ _t1con
1063 00000000 = _tmr1on___bit equ 0
1064            
1065                    ; line_number = 81
1066                    ; register _tmr2 = 
1067 00000011 = _tmr2 equ 17
1068            
1069                    ; line_number = 83
1070                    ; register _t2con = 
1071 00000012 = _t2con equ 18
1072                    ; line_number = 84
1073                    ; bind _toutps3 = _t2con@6
1074 00000012 = _toutps3___byte equ _t2con
1075 00000006 = _toutps3___bit equ 6
1076                    ; line_number = 85
1077                    ; bind _toutps2 = _t2con@5
1078 00000012 = _toutps2___byte equ _t2con
1079 00000005 = _toutps2___bit equ 5
1080                    ; line_number = 86
1081                    ; bind _toutps1 = _t2con@4
1082 00000012 = _toutps1___byte equ _t2con
1083 00000004 = _toutps1___bit equ 4
1084                    ; line_number = 87
1085                    ; bind _toutps0 = _t2con@3
1086 00000012 = _toutps0___byte equ _t2con
1087 00000003 = _toutps0___bit equ 3
1088                    ; line_number = 88
1089                    ; bind _tmr2on = _t2con@2
1090 00000012 = _tmr2on___byte equ _t2con
1091 00000002 = _tmr2on___bit equ 2
1092                    ; line_number = 89
1093                    ; bind _t2ckps1 = _t2con@1
1094 00000012 = _t2ckps1___byte equ _t2con
1095 00000001 = _t2ckps1___bit equ 1
1096                    ; line_number = 90
1097                    ; bind _t2ckps0 = _t2con@0
1098 00000012 = _t2ckps0___byte equ _t2con
1099 00000000 = _t2ckps0___bit equ 0
1100            
1101                    ; line_number = 92
1102                    ; register _sspbuf = 
1103 00000013 = _sspbuf equ 19
1104            
1105                    ; line_number = 94
1106                    ; register _sspcon = 
1107 00000014 = _sspcon equ 20
1108                    ; line_number = 95
1109                    ; bind _wcol = _sspcon@7
1110 00000014 = _wcol___byte equ _sspcon
1111 00000007 = _wcol___bit equ 7
1112                    ; line_number = 96
1113                    ; bind _sspov = _sspcon@6
1114 00000014 = _sspov___byte equ _sspcon
1115 00000006 = _sspov___bit equ 6
1116                    ; line_number = 97
1117                    ; bind _sspen = _sspcon@5
1118 00000014 = _sspen___byte equ _sspcon
1119 00000005 = _sspen___bit equ 5
1120                    ; line_number = 98
1121                    ; bind _ckp = _sspcon@4
1122 00000014 = _ckp___byte equ _sspcon
1123 00000004 = _ckp___bit equ 4
1124                    ; line_number = 99
1125                    ; bind _sspm3 = _sspcon@3
1126 00000014 = _sspm3___byte equ _sspcon
1127 00000003 = _sspm3___bit equ 3
1128                    ; line_number = 100
1129                    ; bind _sspm2 = _sspcon@2
1130 00000014 = _sspm2___byte equ _sspcon
1131 00000002 = _sspm2___bit equ 2
1132                    ; line_number = 101
1133                    ; bind _sspm1 = _sspcon@1
1134 00000014 = _sspm1___byte equ _sspcon
1135 00000001 = _sspm1___bit equ 1
1136                    ; line_number = 102
1137                    ; bind _sspm0 = _sspcon@0
1138 00000014 = _sspm0___byte equ _sspcon
1139 00000000 = _sspm0___bit equ 0
1140            
1141                    ; line_number = 104
1142                    ; register _ccpr1l = 
1143 00000015 = _ccpr1l equ 21
1144            
1145                    ; line_number = 106
1146                    ; register _ccpr1h = 
1147 00000016 = _ccpr1h equ 22
1148            
1149                    ; line_number = 108
1150                    ; register _ccp1con = 
1151 00000017 = _ccp1con equ 23
1152                    ; line_number = 109
1153                    ; bind _ccp1x = _ccp1con@5
1154 00000017 = _ccp1x___byte equ _ccp1con
1155 00000005 = _ccp1x___bit equ 5
1156                    ; line_number = 110
1157                    ; bind _ccp1y = _ccp1con@4
1158 00000017 = _ccp1y___byte equ _ccp1con
1159 00000004 = _ccp1y___bit equ 4
1160                    ; line_number = 111
1161                    ; bind _ccp1m3 = _ccp1con@3
1162 00000017 = _ccp1m3___byte equ _ccp1con
1163 00000003 = _ccp1m3___bit equ 3
1164                    ; line_number = 112
1165                    ; bind _ccp1m2 = _ccp1con@2
1166 00000017 = _ccp1m2___byte equ _ccp1con
1167 00000002 = _ccp1m2___bit equ 2
1168                    ; line_number = 113
1169                    ; bind _ccp1m1 = _ccp1con@1
1170 00000017 = _ccp1m1___byte equ _ccp1con
1171 00000001 = _ccp1m1___bit equ 1
1172                    ; line_number = 114
1173                    ; bind _ccp1m0 = _ccp1con@0
1174 00000017 = _ccp1m0___byte equ _ccp1con
1175 00000000 = _ccp1m0___bit equ 0
1176            
1177                    ; line_number = 116
1178                    ; register _rcsta = 
1179 00000018 = _rcsta equ 24
1180                    ; line_number = 117
1181                    ; bind _spen = _rcsta@7
1182 00000018 = _spen___byte equ _rcsta
1183 00000007 = _spen___bit equ 7
1184                    ; line_number = 118
1185                    ; bind _rx9 = _rcsta@6
1186 00000018 = _rx9___byte equ _rcsta
1187 00000006 = _rx9___bit equ 6
1188                    ; line_number = 119
1189                    ; bind _sren = _rcsta@5
1190 00000018 = _sren___byte equ _rcsta
1191 00000005 = _sren___bit equ 5
1192                    ; line_number = 120
1193                    ; bind _cren = _rcsta@4
1194 00000018 = _cren___byte equ _rcsta
1195 00000004 = _cren___bit equ 4
1196                    ; line_number = 121
1197                    ; bind _adden = _rcsta@3
1198 00000018 = _adden___byte equ _rcsta
1199 00000003 = _adden___bit equ 3
1200                    ; line_number = 122
1201                    ; bind _ferr = _rcsta@2
1202 00000018 = _ferr___byte equ _rcsta
1203 00000002 = _ferr___bit equ 2
1204                    ; line_number = 123
1205                    ; bind _oerr = _rcsta@1
1206 00000018 = _oerr___byte equ _rcsta
1207 00000001 = _oerr___bit equ 1
1208                    ; line_number = 124
1209                    ; bind _rx9d = _rcsta@0
1210 00000018 = _rx9d___byte equ _rcsta
1211 00000000 = _rx9d___bit equ 0
1212            
1213                    ; line_number = 126
1214                    ; register _txreg = 
1215 00000019 = _txreg equ 25
1216            
1217                    ; line_number = 128
1218                    ; register _rcreg = 
1219 0000001a = _rcreg equ 26
1220            
1221                    ; line_number = 130
1222                    ; register _ccpr2l = 
1223 0000001b = _ccpr2l equ 27
1224            
1225                    ; line_number = 132
1226                    ; register _ccpr2h = 
1227 0000001c = _ccpr2h equ 28
1228            
1229                    ; line_number = 134
1230                    ; register _ccp2con = 
1231 0000001d = _ccp2con equ 29
1232                    ; line_number = 135
1233                    ; bind _ccp2x = _ccp2con@5
1234 0000001d = _ccp2x___byte equ _ccp2con
1235 00000005 = _ccp2x___bit equ 5
1236                    ; line_number = 136
1237                    ; bind _ccp2y = _ccp2con@4
1238 0000001d = _ccp2y___byte equ _ccp2con
1239 00000004 = _ccp2y___bit equ 4
1240                    ; line_number = 137
1241                    ; bind _ccp2m3 = _ccp2con@3
1242 0000001d = _ccp2m3___byte equ _ccp2con
1243 00000003 = _ccp2m3___bit equ 3
1244                    ; line_number = 138
1245                    ; bind _ccp2m2 = _ccp2con@2
1246 0000001d = _ccp2m2___byte equ _ccp2con
1247 00000002 = _ccp2m2___bit equ 2
1248                    ; line_number = 139
1249                    ; bind _ccp2m1 = _ccp2con@1
1250 0000001d = _ccp2m1___byte equ _ccp2con
1251 00000001 = _ccp2m1___bit equ 1
1252                    ; line_number = 140
1253                    ; bind _ccp2m0 = _ccp2con@0
1254 0000001d = _ccp2m0___byte equ _ccp2con
1255 00000000 = _ccp2m0___bit equ 0
1256            
1257                    ; line_number = 142
1258                    ; register _adresh = 
1259 0000001e = _adresh equ 30
1260            
1261                    ; line_number = 144
1262                    ; register _adcon0 = 
1263 0000001f = _adcon0 equ 31
1264                    ; line_number = 145
1265                    ; bind _adcs1 = _adcon0@7
1266 0000001f = _adcs1___byte equ _adcon0
1267 00000007 = _adcs1___bit equ 7
1268                    ; line_number = 146
1269                    ; bind _adcs0 = _adcon0@6
1270 0000001f = _adcs0___byte equ _adcon0
1271 00000006 = _adcs0___bit equ 6
1272                    ; line_number = 147
1273                    ; bind _chs2 = _adcon0@5
1274 0000001f = _chs2___byte equ _adcon0
1275 00000005 = _chs2___bit equ 5
1276                    ; line_number = 148
1277                    ; bind _chs1 = _adcon0@4
1278 0000001f = _chs1___byte equ _adcon0
1279 00000004 = _chs1___bit equ 4
1280                    ; line_number = 149
1281                    ; bind _chs0 = _adcon0@3
1282 0000001f = _chs0___byte equ _adcon0
1283 00000003 = _chs0___bit equ 3
1284                    ; line_number = 150
1285                    ; bind _go_done = _adcon0@2
1286 0000001f = _go_done___byte equ _adcon0
1287 00000002 = _go_done___bit equ 2
1288                    ; line_number = 151
1289                    ; bind _adon = _adcon0@0
1290 0000001f = _adon___byte equ _adcon0
1291 00000000 = _adon___bit equ 0
1292            
1293                    ; # Bank 1:
1294            
1295                    ; line_number = 155
1296                    ; register _option_reg = 
1297 00000081 = _option_reg equ 129
1298                    ; line_number = 156
1299                    ; bind _rbpu = _option_reg@7
1300 00000081 = _rbpu___byte equ _option_reg
1301 00000007 = _rbpu___bit equ 7
1302                    ; line_number = 157
1303                    ; bind _intedg = _option_reg@6
1304 00000081 = _intedg___byte equ _option_reg
1305 00000006 = _intedg___bit equ 6
1306                    ; line_number = 158
1307                    ; bind _t0cs = _option_reg@5
1308 00000081 = _t0cs___byte equ _option_reg
1309 00000005 = _t0cs___bit equ 5
1310                    ; line_number = 159
1311                    ; bind _t0se = _option_reg@4
1312 00000081 = _t0se___byte equ _option_reg
1313 00000004 = _t0se___bit equ 4
1314                    ; line_number = 160
1315                    ; bind _psa = _option_reg@3
1316 00000081 = _psa___byte equ _option_reg
1317 00000003 = _psa___bit equ 3
1318                    ; line_number = 161
1319                    ; bind _ps2 = _option_reg@2
1320 00000081 = _ps2___byte equ _option_reg
1321 00000002 = _ps2___bit equ 2
1322                    ; line_number = 162
1323                    ; bind _ps1 = _option_reg@1
1324 00000081 = _ps1___byte equ _option_reg
1325 00000001 = _ps1___bit equ 1
1326                    ; line_number = 163
1327                    ; bind _ps0 = _option_reg@0
1328 00000081 = _ps0___byte equ _option_reg
1329 00000000 = _ps0___bit equ 0
1330            
1331                    ; line_number = 165
1332                    ; register _trisa = 
1333 00000085 = _trisa equ 133
1334                    ; line_number = 166
1335                    ; bind _trisa7 = _trisa@7
1336 00000085 = _trisa7___byte equ _trisa
1337 00000007 = _trisa7___bit equ 7
1338                    ; line_number = 167
1339                    ; bind _trisa6 = _trisa@6
1340 00000085 = _trisa6___byte equ _trisa
1341 00000006 = _trisa6___bit equ 6
1342                    ; line_number = 168
1343                    ; bind _trisa5 = _trisa@5
1344 00000085 = _trisa5___byte equ _trisa
1345 00000005 = _trisa5___bit equ 5
1346                    ; line_number = 169
1347                    ; bind _trisa4 = _trisa@4
1348 00000085 = _trisa4___byte equ _trisa
1349 00000004 = _trisa4___bit equ 4
1350                    ; line_number = 170
1351                    ; bind _trisa3 = _trisa@3
1352 00000085 = _trisa3___byte equ _trisa
1353 00000003 = _trisa3___bit equ 3
1354                    ; line_number = 171
1355                    ; bind _trisa2 = _trisa@2
1356 00000085 = _trisa2___byte equ _trisa
1357 00000002 = _trisa2___bit equ 2
1358                    ; line_number = 172
1359                    ; bind _trisa1 = _trisa@1
1360 00000085 = _trisa1___byte equ _trisa
1361 00000001 = _trisa1___bit equ 1
1362                    ; line_number = 173
1363                    ; bind _trisa0 = _trisa@0
1364 00000085 = _trisa0___byte equ _trisa
1365 00000000 = _trisa0___bit equ 0
1366            
1367                    ; line_number = 175
1368                    ; register _trisb = 
1369 00000086 = _trisb equ 134
1370            
1371                    ; line_number = 177
1372                    ; register _trisc = 
1373 00000087 = _trisc equ 135
1374                    ; line_number = 178
1375                    ; bind _trisc7 = _trisc@7
1376 00000087 = _trisc7___byte equ _trisc
1377 00000007 = _trisc7___bit equ 7
1378                    ; line_number = 179
1379                    ; bind _trisc6 = _trisc@6
1380 00000087 = _trisc6___byte equ _trisc
1381 00000006 = _trisc6___bit equ 6
1382                    ; line_number = 180
1383                    ; bind _trisc5 = _trisc@5
1384 00000087 = _trisc5___byte equ _trisc
1385 00000005 = _trisc5___bit equ 5
1386                    ; line_number = 181
1387                    ; bind _trisc4 = _trisc@4
1388 00000087 = _trisc4___byte equ _trisc
1389 00000004 = _trisc4___bit equ 4
1390                    ; line_number = 182
1391                    ; bind _trisc3 = _trisc@3
1392 00000087 = _trisc3___byte equ _trisc
1393 00000003 = _trisc3___bit equ 3
1394                    ; line_number = 183
1395                    ; bind _trisc2 = _trisc@2
1396 00000087 = _trisc2___byte equ _trisc
1397 00000002 = _trisc2___bit equ 2
1398                    ; line_number = 184
1399                    ; bind _trisc1 = _trisc@1
1400 00000087 = _trisc1___byte equ _trisc
1401 00000001 = _trisc1___bit equ 1
1402                    ; line_number = 185
1403                    ; bind _trisc0 = _trisc@0
1404 00000087 = _trisc0___byte equ _trisc
1405 00000000 = _trisc0___bit equ 0
1406            
1407                    ; line_number = 187
1408                    ; register _pie1 = 
1409 0000008c = _pie1 equ 140
1410                    ; line_number = 188
1411                    ; bind _pspie = _pie1@7
1412 0000008c = _pspie___byte equ _pie1
1413 00000007 = _pspie___bit equ 7
1414                    ; line_number = 189
1415                    ; bind _adie = _pie1@6
1416 0000008c = _adie___byte equ _pie1
1417 00000006 = _adie___bit equ 6
1418                    ; line_number = 190
1419                    ; bind _rcie = _pie1@5
1420 0000008c = _rcie___byte equ _pie1
1421 00000005 = _rcie___bit equ 5
1422                    ; line_number = 191
1423                    ; bind _txie = _pie1@4
1424 0000008c = _txie___byte equ _pie1
1425 00000004 = _txie___bit equ 4
1426                    ; line_number = 192
1427                    ; bind _sspie = _pie1@3
1428 0000008c = _sspie___byte equ _pie1
1429 00000003 = _sspie___bit equ 3
1430                    ; line_number = 193
1431                    ; bind _ccp1ie = _pie1@2
1432 0000008c = _ccp1ie___byte equ _pie1
1433 00000002 = _ccp1ie___bit equ 2
1434                    ; line_number = 194
1435                    ; bind _tmr2ie = _pie1@1
1436 0000008c = _tmr2ie___byte equ _pie1
1437 00000001 = _tmr2ie___bit equ 1
1438                    ; line_number = 195
1439                    ; bind _tmr1ie = _pie1@0
1440 0000008c = _tmr1ie___byte equ _pie1
1441 00000000 = _tmr1ie___bit equ 0
1442            
1443                    ; line_number = 197
1444                    ; register _pie2 = 
1445 0000008d = _pie2 equ 141
1446                    ; line_number = 198
1447                    ; bind _osfie = _pie2@7
1448 0000008d = _osfie___byte equ _pie2
1449 00000007 = _osfie___bit equ 7
1450                    ; line_number = 199
1451                    ; bind _cmie = _pie2@6
1452 0000008d = _cmie___byte equ _pie2
1453 00000006 = _cmie___bit equ 6
1454                    ; line_number = 200
1455                    ; bind _lvdie = _pie2@5
1456 0000008d = _lvdie___byte equ _pie2
1457 00000005 = _lvdie___bit equ 5
1458                    ; line_number = 201
1459                    ; bind _bclie = _pie2@3
1460 0000008d = _bclie___byte equ _pie2
1461 00000003 = _bclie___bit equ 3
1462                    ; line_number = 202
1463                    ; bind _ccp3ie = _pie2@1
1464 0000008d = _ccp3ie___byte equ _pie2
1465 00000001 = _ccp3ie___bit equ 1
1466                    ; line_number = 203
1467                    ; bind _ccp2ie = _pie2@0
1468 0000008d = _ccp2ie___byte equ _pie2
1469 00000000 = _ccp2ie___bit equ 0
1470            
1471                    ; line_number = 205
1472                    ; register _pcon = 
1473 0000008e = _pcon equ 142
1474                    ; line_number = 206
1475                    ; bind _sboren = _pcon@2
1476 0000008e = _sboren___byte equ _pcon
1477 00000002 = _sboren___bit equ 2
1478                    ; line_number = 207
1479                    ; bind _por = _pcon@1
1480 0000008e = _por___byte equ _pcon
1481 00000001 = _por___bit equ 1
1482                    ; line_number = 208
1483                    ; bind _bor = _pcon@0
1484 0000008e = _bor___byte equ _pcon
1485 00000000 = _bor___bit equ 0
1486            
1487                    ; line_number = 210
1488                    ; register _osccon = 
1489 0000008f = _osccon equ 143
1490                    ; line_number = 211
1491                    ; bind _ircf2 = _osccon@6
1492 0000008f = _ircf2___byte equ _osccon
1493 00000006 = _ircf2___bit equ 6
1494                    ; line_number = 212
1495                    ; bind _ircf1 = _osccon@5
1496 0000008f = _ircf1___byte equ _osccon
1497 00000005 = _ircf1___bit equ 5
1498                    ; line_number = 213
1499                    ; bind _ircf0 = _osccon@4
1500 0000008f = _ircf0___byte equ _osccon
1501 00000004 = _ircf0___bit equ 4
1502                    ; line_number = 214
1503                    ; bind _osts = _osccon@3
1504 0000008f = _osts___byte equ _osccon
1505 00000003 = _osts___bit equ 3
1506                    ; line_number = 215
1507                    ; bind _iofs = _osccon@2
1508 0000008f = _iofs___byte equ _osccon
1509 00000002 = _iofs___bit equ 2
1510                    ; line_number = 216
1511                    ; bind _scs1 = _osccon@1
1512 0000008f = _scs1___byte equ _osccon
1513 00000001 = _scs1___bit equ 1
1514                    ; line_number = 217
1515                    ; bind _scs0 = _osccon@0
1516 0000008f = _scs0___byte equ _osccon
1517 00000000 = _scs0___bit equ 0
1518            
1519                    ; line_number = 219
1520                    ; register _osctune = 
1521 00000090 = _osctune equ 144
1522                    ; line_number = 220
1523                    ; bind _tun5 = _osctune@5
1524 00000090 = _tun5___byte equ _osctune
1525 00000005 = _tun5___bit equ 5
1526                    ; line_number = 221
1527                    ; bind _tun4 = _osctune@4
1528 00000090 = _tun4___byte equ _osctune
1529 00000004 = _tun4___bit equ 4
1530                    ; line_number = 222
1531                    ; bind _tun3 = _osctune@3
1532 00000090 = _tun3___byte equ _osctune
1533 00000003 = _tun3___bit equ 3
1534                    ; line_number = 223
1535                    ; bind _tun2 = _osctune@2
1536 00000090 = _tun2___byte equ _osctune
1537 00000002 = _tun2___bit equ 2
1538                    ; line_number = 224
1539                    ; bind _tun1 = _osctune@1
1540 00000090 = _tun1___byte equ _osctune
1541 00000001 = _tun1___bit equ 1
1542                    ; line_number = 225
1543                    ; bind _tun0 = _osctune@0
1544 00000090 = _tun0___byte equ _osctune
1545 00000000 = _tun0___bit equ 0
1546            
1547                    ; line_number = 227
1548                    ; register _sspcon2 = 
1549 00000091 = _sspcon2 equ 145
1550                    ; line_number = 228
1551                    ; bind _gcen = _sspcon2@7
1552 00000091 = _gcen___byte equ _sspcon2
1553 00000007 = _gcen___bit equ 7
1554                    ; line_number = 229
1555                    ; bind _ackstat = _sspcon2@6
1556 00000091 = _ackstat___byte equ _sspcon2
1557 00000006 = _ackstat___bit equ 6
1558                    ; line_number = 230
1559                    ; bind _ackdt = _sspcon2@5
1560 00000091 = _ackdt___byte equ _sspcon2
1561 00000005 = _ackdt___bit equ 5
1562                    ; line_number = 231
1563                    ; bind _acken = _sspcon2@4
1564 00000091 = _acken___byte equ _sspcon2
1565 00000004 = _acken___bit equ 4
1566                    ; line_number = 232
1567                    ; bind _rcen = _sspcon2@3
1568 00000091 = _rcen___byte equ _sspcon2
1569 00000003 = _rcen___bit equ 3
1570                    ; line_number = 233
1571                    ; bind _pen = _sspcon2@2
1572 00000091 = _pen___byte equ _sspcon2
1573 00000002 = _pen___bit equ 2
1574                    ; line_number = 234
1575                    ; bind _rsen = _sspcon2@1
1576 00000091 = _rsen___byte equ _sspcon2
1577 00000001 = _rsen___bit equ 1
1578                    ; line_number = 235
1579                    ; bind _sen = _sspcon2@0
1580 00000091 = _sen___byte equ _sspcon2
1581 00000000 = _sen___bit equ 0
1582            
1583                    ; line_number = 237
1584                    ; register _pr2 = 
1585 00000092 = _pr2 equ 146
1586            
1587                    ; line_number = 239
1588                    ; register _sspadd = 
1589 00000093 = _sspadd equ 147
1590            
1591                    ; line_number = 241
1592                    ; register _sspstat = 
1593 00000094 = _sspstat equ 148
1594                    ; line_number = 242
1595                    ; bind _smp = _sspstat@7
1596 00000094 = _smp___byte equ _sspstat
1597 00000007 = _smp___bit equ 7
1598                    ; line_number = 243
1599                    ; bind _cke = _sspstat@6
1600 00000094 = _cke___byte equ _sspstat
1601 00000006 = _cke___bit equ 6
1602                    ; line_number = 244
1603                    ; bind _da = _sspstat@5
1604 00000094 = _da___byte equ _sspstat
1605 00000005 = _da___bit equ 5
1606                    ; line_number = 245
1607                    ; bind _p = _sspstat@4
1608 00000094 = _p___byte equ _sspstat
1609 00000004 = _p___bit equ 4
1610                    ; line_number = 246
1611                    ; bind _s = _sspstat@3
1612 00000094 = _s___byte equ _sspstat
1613 00000003 = _s___bit equ 3
1614                    ; line_number = 247
1615                    ; bind _rw = _sspstat@2
1616 00000094 = _rw___byte equ _sspstat
1617 00000002 = _rw___bit equ 2
1618                    ; line_number = 248
1619                    ; bind _ua = _sspstat@1
1620 00000094 = _ua___byte equ _sspstat
1621 00000001 = _ua___bit equ 1
1622                    ; line_number = 249
1623                    ; bind _bf = _sspstat@0
1624 00000094 = _bf___byte equ _sspstat
1625 00000000 = _bf___bit equ 0
1626            
1627                    ; line_number = 251
1628                    ; register _ccpr3l = 
1629 00000095 = _ccpr3l equ 149
1630            
1631                    ; line_number = 253
1632                    ; register _ccpr3h = 
1633 00000096 = _ccpr3h equ 150
1634            
1635                    ; line_number = 255
1636                    ; register _ccp3con = 
1637 00000096 = _ccp3con equ 150
1638                    ; line_number = 256
1639                    ; bind _ccp3x = _ccp3con@5
1640 00000096 = _ccp3x___byte equ _ccp3con
1641 00000005 = _ccp3x___bit equ 5
1642                    ; line_number = 257
1643                    ; bind _ccp3y = _ccp3con@4
1644 00000096 = _ccp3y___byte equ _ccp3con
1645 00000004 = _ccp3y___bit equ 4
1646                    ; line_number = 258
1647                    ; bind _ccp3m3 = _ccp3con@3
1648 00000096 = _ccp3m3___byte equ _ccp3con
1649 00000003 = _ccp3m3___bit equ 3
1650                    ; line_number = 259
1651                    ; bind _ccp3m2 = _ccp3con@2
1652 00000096 = _ccp3m2___byte equ _ccp3con
1653 00000002 = _ccp3m2___bit equ 2
1654                    ; line_number = 260
1655                    ; bind _ccp3m1 = _ccp3con@1
1656 00000096 = _ccp3m1___byte equ _ccp3con
1657 00000001 = _ccp3m1___bit equ 1
1658                    ; line_number = 261
1659                    ; bind _ccp3m0 = _ccp3con@0
1660 00000096 = _ccp3m0___byte equ _ccp3con
1661 00000000 = _ccp3m0___bit equ 0
1662            
1663                    ; line_number = 263
1664                    ; register _txsta = 
1665 00000098 = _txsta equ 152
1666                    ; line_number = 264
1667                    ; bind _csrc = _txsta@7
1668 00000098 = _csrc___byte equ _txsta
1669 00000007 = _csrc___bit equ 7
1670                    ; line_number = 265
1671                    ; bind _tx9 = _txsta@6
1672 00000098 = _tx9___byte equ _txsta
1673 00000006 = _tx9___bit equ 6
1674                    ; line_number = 266
1675                    ; bind _txen = _txsta@5
1676 00000098 = _txen___byte equ _txsta
1677 00000005 = _txen___bit equ 5
1678                    ; line_number = 267
1679                    ; bind _sync = _txsta@4
1680 00000098 = _sync___byte equ _txsta
1681 00000004 = _sync___bit equ 4
1682                    ; line_number = 268
1683                    ; bind _brgh = _txsta@2
1684 00000098 = _brgh___byte equ _txsta
1685 00000002 = _brgh___bit equ 2
1686                    ; line_number = 269
1687                    ; bind _trmt = _txsta@1
1688 00000098 = _trmt___byte equ _txsta
1689 00000001 = _trmt___bit equ 1
1690                    ; line_number = 270
1691                    ; bind _tx9d = _txsta@0
1692 00000098 = _tx9d___byte equ _txsta
1693 00000000 = _tx9d___bit equ 0
1694            
1695                    ; line_number = 272
1696                    ; register _spbrg = 
1697 00000099 = _spbrg equ 153
1698            
1699                    ; line_number = 274
1700                    ; register _adcon2 = 
1701 0000009b = _adcon2 equ 155
1702                    ; line_number = 275
1703                    ; bind _acqt2 = _adcon2@5
1704 0000009b = _acqt2___byte equ _adcon2
1705 00000005 = _acqt2___bit equ 5
1706                    ; line_number = 276
1707                    ; bind _acqt1 = _adcon2@4
1708 0000009b = _acqt1___byte equ _adcon2
1709 00000004 = _acqt1___bit equ 4
1710                    ; line_number = 277
1711                    ; bind _acqt0 = _adcon2@3
1712 0000009b = _acqt0___byte equ _adcon2
1713 00000003 = _acqt0___bit equ 3
1714            
1715                    ; line_number = 279
1716                    ; register _cmcon = 
1717 0000009c = _cmcon equ 156
1718                    ; line_number = 280
1719                    ; bind _c2out = _cmcon@7
1720 0000009c = _c2out___byte equ _cmcon
1721 00000007 = _c2out___bit equ 7
1722                    ; line_number = 281
1723                    ; bind _c1out = _cmcon@6
1724 0000009c = _c1out___byte equ _cmcon
1725 00000006 = _c1out___bit equ 6
1726                    ; line_number = 282
1727                    ; bind _c2inv = _cmcon@5
1728 0000009c = _c2inv___byte equ _cmcon
1729 00000005 = _c2inv___bit equ 5
1730                    ; line_number = 283
1731                    ; bind _c1inv = _cmcon@4
1732 0000009c = _c1inv___byte equ _cmcon
1733 00000004 = _c1inv___bit equ 4
1734                    ; line_number = 284
1735                    ; bind _cis = _cmcon@3
1736 0000009c = _cis___byte equ _cmcon
1737 00000003 = _cis___bit equ 3
1738                    ; line_number = 285
1739                    ; bind _cm2 = _cmcon@2
1740 0000009c = _cm2___byte equ _cmcon
1741 00000002 = _cm2___bit equ 2
1742                    ; line_number = 286
1743                    ; bind _cm1 = _cmcon@1
1744 0000009c = _cm1___byte equ _cmcon
1745 00000001 = _cm1___bit equ 1
1746                    ; line_number = 287
1747                    ; bind _cm0 = _cmcon@0
1748 0000009c = _cm0___byte equ _cmcon
1749 00000000 = _cm0___bit equ 0
1750            
1751                    ; line_number = 289
1752                    ; register _cvrcon = 
1753 0000009d = _cvrcon equ 157
1754                    ; line_number = 290
1755                    ; bind _cvren = _cvrcon@7
1756 0000009d = _cvren___byte equ _cvrcon
1757 00000007 = _cvren___bit equ 7
1758                    ; line_number = 291
1759                    ; bind _cvroe = _cvrcon@6
1760 0000009d = _cvroe___byte equ _cvrcon
1761 00000006 = _cvroe___bit equ 6
1762                    ; line_number = 292
1763                    ; bind _cvrr = _cvrcon@5
1764 0000009d = _cvrr___byte equ _cvrcon
1765 00000005 = _cvrr___bit equ 5
1766                    ; line_number = 293
1767                    ; bind _cvr3 = _cvrcon@3
1768 0000009d = _cvr3___byte equ _cvrcon
1769 00000003 = _cvr3___bit equ 3
1770                    ; line_number = 294
1771                    ; bind _cvr2 = _cvrcon@2
1772 0000009d = _cvr2___byte equ _cvrcon
1773 00000002 = _cvr2___bit equ 2
1774                    ; line_number = 295
1775                    ; bind _cvr1 = _cvrcon@1
1776 0000009d = _cvr1___byte equ _cvrcon
1777 00000001 = _cvr1___bit equ 1
1778                    ; line_number = 296
1779                    ; bind _cvr0 = _cvrcon@0
1780 0000009d = _cvr0___byte equ _cvrcon
1781 00000000 = _cvr0___bit equ 0
1782            
1783                    ; line_number = 298
1784                    ; register _adresl = 
1785 0000009e = _adresl equ 158
1786            
1787                    ; line_number = 300
1788                    ; register _adcon1 = 
1789 0000009f = _adcon1 equ 159
1790                    ; line_number = 301
1791                    ; bind _adfm = _adcon1@7
1792 0000009f = _adfm___byte equ _adcon1
1793 00000007 = _adfm___bit equ 7
1794                    ; line_number = 302
1795                    ; bind _adcs2 = _adcon1@6
1796 0000009f = _adcs2___byte equ _adcon1
1797 00000006 = _adcs2___bit equ 6
1798                    ; line_number = 303
1799                    ; bind _vfg1 = _adcon1@5
1800 0000009f = _vfg1___byte equ _adcon1
1801 00000005 = _vfg1___bit equ 5
1802                    ; line_number = 304
1803                    ; bind _vfg0 = _adcon1@4
1804 0000009f = _vfg0___byte equ _adcon1
1805 00000004 = _vfg0___bit equ 4
1806                    ; line_number = 305
1807                    ; bind _pcfg3 = _adcon1@3
1808 0000009f = _pcfg3___byte equ _adcon1
1809 00000003 = _pcfg3___bit equ 3
1810                    ; line_number = 306
1811                    ; bind _pcfg2 = _adcon1@2
1812 0000009f = _pcfg2___byte equ _adcon1
1813 00000002 = _pcfg2___bit equ 2
1814                    ; line_number = 307
1815                    ; bind _pcfg1 = _adcon1@1
1816 0000009f = _pcfg1___byte equ _adcon1
1817 00000001 = _pcfg1___bit equ 1
1818                    ; line_number = 308
1819                    ; bind _pcfg0 = _adcon1@0
1820 0000009f = _pcfg0___byte equ _adcon1
1821 00000000 = _pcfg0___bit equ 0
1822            
1823                    ; # Bank 2:
1824            
1825                    ; line_number = 312
1826                    ; register _wdtcon = 
1827 00000105 = _wdtcon equ 261
1828                    ; line_number = 313
1829                    ; bind _wdtps3 = _wdtcon@4
1830 00000105 = _wdtps3___byte equ _wdtcon
1831 00000004 = _wdtps3___bit equ 4
1832                    ; line_number = 314
1833                    ; bind _wdtps2 = _wdtcon@3
1834 00000105 = _wdtps2___byte equ _wdtcon
1835 00000003 = _wdtps2___bit equ 3
1836                    ; line_number = 315
1837                    ; bind _wdtps1 = _wdtcon@2
1838 00000105 = _wdtps1___byte equ _wdtcon
1839 00000002 = _wdtps1___bit equ 2
1840                    ; line_number = 316
1841                    ; bind _wdtps0 = _wdtcon@1
1842 00000105 = _wdtps0___byte equ _wdtcon
1843 00000001 = _wdtps0___bit equ 1
1844                    ; line_number = 317
1845                    ; bind _swdten = _wdtcon@0
1846 00000105 = _swdten___byte equ _wdtcon
1847 00000000 = _swdten___bit equ 0
1848            
1849                    ; line_number = 319
1850                    ; register _lvdcon = 
1851 00000109 = _lvdcon equ 265
1852                    ; line_number = 320
1853                    ; bind _irvst = _lvdcon@5
1854 00000109 = _irvst___byte equ _lvdcon
1855 00000005 = _irvst___bit equ 5
1856                    ; line_number = 321
1857                    ; bind _lvden = _lvdcon@4
1858 00000109 = _lvden___byte equ _lvdcon
1859 00000004 = _lvden___bit equ 4
1860                    ; line_number = 322
1861                    ; bind _lvdl3 = _lvdcon@3
1862 00000109 = _lvdl3___byte equ _lvdcon
1863 00000003 = _lvdl3___bit equ 3
1864                    ; line_number = 323
1865                    ; bind _lvdl2 = _lvdcon@2
1866 00000109 = _lvdl2___byte equ _lvdcon
1867 00000002 = _lvdl2___bit equ 2
1868                    ; line_number = 324
1869                    ; bind _lvdl1 = _lvdcon@1
1870 00000109 = _lvdl1___byte equ _lvdcon
1871 00000001 = _lvdl1___bit equ 1
1872                    ; line_number = 325
1873                    ; bind _lvdl0 = _lvdcon@0
1874 00000109 = _lvdl0___byte equ _lvdcon
1875 00000000 = _lvdl0___bit equ 0
1876            
1877                    ; line_number = 327
1878                    ; register _pmdata = 
1879 0000010c = _pmdata equ 268
1880            
1881                    ; line_number = 329
1882                    ; register _pmadr = 
1883 0000010d = _pmadr equ 269
1884            
1885                    ; line_number = 331
1886                    ; register _pmdath = 
1887 0000010e = _pmdath equ 270
1888            
1889                    ; line_number = 333
1890                    ; register _pmadrh = 
1891 0000010f = _pmadrh equ 271
1892            
1893                    ; # Bank 3:
1894            
1895                    ; line_number = 337
1896                    ; register _pmcon1 = 
1897 0000018c = _pmcon1 equ 396
1898                    ; line_number = 338
1899                    ; bind _rd = _pmcon1@0
1900 0000018c = _rd___byte equ _pmcon1
1901 00000000 = _rd___bit equ 0
1902            
1903            
1904            
1905                    ; buffer = '_pic16f777'
1906                    ; line_number = 398
1907                    ; library _pic16f7x7 exited
1908            
1909                    ; # Additional register and pin definitions:
1910            
1911                    ; line_number = 402
1912                    ; register _portd = 
1913 00000008 = _portd equ 8
1914            
1915                    ; line_number = 404
1916                    ; register _porte = 
1917 00000009 = _porte equ 9
1918            
1919                    ; line_number = 406
1920                    ; register _trisd = 
1921 00000088 = _trisd equ 136
1922            
1923                    ; line_number = 408
1924                    ; register _trise = 
1925 00000089 = _trise equ 137
1926            
1927                    ; # Default configurations:
1928            
1929            
1930                    ; buffer = 'buffer'
1931                    ; line_number = 6
1932                    ; library _pic16f777 exited
1933                    ; line_number = 7
1934                    ; library _uart entered
1935                    ; # Copyright (c) 2004 by Wayne C. Gramlich.
1936                    ; # All rights reserved.
1937            
1938                    ; # This library contains some procedures for accessing the UART.
1939            
1940                    ; Delaying code generation for procedure  _uart_byte_safe_get
1941                    ; Delaying code generation for procedure  _uart_byte_get
1942                    ; Delaying code generation for procedure  _uart_hex_put
1943                    ; Delaying code generation for procedure  _uart_nibble_put
1944                    ; Delaying code generation for procedure  _uart_space_put
1945                    ; Delaying code generation for procedure  _uart_crlf_put
1946                    ; Delaying code generation for procedure  _uart_byte_put
1947            
1948                    ; line_number = 7
1949                    ; library _uart exited
1950                    ; line_number = 8
1951                    ; library _clock20mhz entered
1952                    ; # Copyright (c) 2004 by Wayne C. Gramlich
1953                    ; # All rights reserved.
1954            
1955                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1956                    ; # and {clocks_per_instruction}.
1957            
1958                    ; # Define processor constants:
1959                    ; buffer = '_clock20mhz'
1960                    ; line_number = 9
1961                    ; constant _clock_rate = 20000000						
1962 01312d00 = _clock_rate equ 20000000
1963                    ; line_number = 10
1964                    ; constant _clocks_per_instruction = 4
1965 00000004 = _clocks_per_instruction equ 4
1966                    ; line_number = 11
1967                    ; constant _clock_instruction_rate = _clock_rate / _clocks_per_instruction
1968 004c4b40 = _clock_instruction_rate equ 5000000
1969            
1970            
1971                    ; buffer = 'buffer'
1972                    ; line_number = 8
1973                    ; library _clock20mhz exited
1974            
1975                    ; line_number = 10
1976                    ; package pdip
1977                    ; line_number = 11
1978                    ; pin 1 = re3_unused
1979                    ; line_number = 12
1980                    ;  pin 2 = ra0_out, name = a16
1981 00000005 = a16___byte equ _porta
1982 00000000 = a16___bit equ 0
1983                    ; line_number = 13
1984                    ;  pin 3 = ra1_out, name = a17
1985 00000005 = a17___byte equ _porta
1986 00000001 = a17___bit equ 1
1987                    ; line_number = 14
1988                    ;  pin 4 = ra2_out, name = a18
1989 00000005 = a18___byte equ _porta
1990 00000002 = a18___bit equ 2
1991                    ; line_number = 15
1992                    ;  pin 5 = ra3_unused
1993                    ; line_number = 16
1994                    ;  pin 6 = ra4_unused
1995                    ; line_number = 17
1996                    ;  pin 7 = ra5_unused
1997                    ; line_number = 18
1998                    ;  pin 8 = re0_unused
1999                    ; line_number = 19
2000                    ;  pin 9 = re1_unused
2001                    ; line_number = 20
2002                    ;  pin 10 = re2_unused
2003                    ; line_number = 21
2004                    ;  pin 11 = power_supply
2005                    ; line_number = 22
2006                    ;  pin 12 = ground
2007                    ; line_number = 23
2008                    ;  pin 13 = osc1
2009                    ; line_number = 24
2010                    ;  pin 14 = osc2
2011                    ; line_number = 25
2012                    ;  pin 15 = rc0_out, name = adrl
2013 00000007 = adrl___byte equ _portc
2014 00000000 = adrl___bit equ 0
2015                    ; line_number = 26
2016                    ;  pin 16 = rc1_out, name = adrm
2017 00000007 = adrm___byte equ _portc
2018 00000001 = adrm___bit equ 1
2019                    ; line_number = 27
2020                    ;  pin 17 = rc2_unused
2021                    ; line_number = 28
2022                    ;  pin 18 = rc3_unused
2023                    ; line_number = 29
2024                    ;  pin 19 = rd0_out, name = x_dir, bit = x_dir_bit, mask = x_dir_mask
2025 00000008 = x_dir___byte equ _portd
2026 00000000 = x_dir___bit equ 0
2027 00000000 = x_dir_bit equ 0
2028 00000001 = x_dir_mask equ 1
2029                    ; line_number = 30
2030                    ;  pin 20 = rd1_out, name = x_step, bit = x_step_bit, mask = x_step_mask
2031 00000008 = x_step___byte equ _portd
2032 00000001 = x_step___bit equ 1
2033 00000001 = x_step_bit equ 1
2034 00000002 = x_step_mask equ 2
2035                    ; line_number = 31
2036                    ;  pin 21 = rd2_out, name = y_dir, bit = y_dir_bit, mask = y_dir_mask
2037 00000008 = y_dir___byte equ _portd
2038 00000002 = y_dir___bit equ 2
2039 00000002 = y_dir_bit equ 2
2040 00000004 = y_dir_mask equ 4
2041                    ; line_number = 32
2042                    ;  pin 22 = rd3_out, name = y_step, bit = y_step_bit, mask = y_step_mask
2043 00000008 = y_step___byte equ _portd
2044 00000003 = y_step___bit equ 3
2045 00000003 = y_step_bit equ 3
2046 00000008 = y_step_mask equ 8
2047                    ; line_number = 33
2048                    ;  pin 23 = rc4_out, name = oe
2049 00000007 = oe___byte equ _portc
2050 00000004 = oe___bit equ 4
2051                    ; line_number = 34
2052                    ;  pin 24 = rc5_out, name = we
2053 00000007 = we___byte equ _portc
2054 00000005 = we___bit equ 5
2055                    ; line_number = 35
2056                    ;  pin 25 = tx
2057                    ; line_number = 36
2058                    ;  pin 26 = rx
2059                    ; line_number = 37
2060                    ;  pin 27 = rd4_out, name = z_dir, bit = z_dir_bit, mask = z_dir_mask
2061 00000008 = z_dir___byte equ _portd
2062 00000004 = z_dir___bit equ 4
2063 00000004 = z_dir_bit equ 4
2064 00000010 = z_dir_mask equ 16
2065                    ; line_number = 38
2066                    ;  pin 28 = rd5_out, name = z_step, bit = z_step_bit, mask = z_step_mask
2067 00000008 = z_step___byte equ _portd
2068 00000005 = z_step___bit equ 5
2069 00000005 = z_step_bit equ 5
2070 00000020 = z_step_mask equ 32
2071                    ; line_number = 39
2072                    ;  pin 29 = rd6_out, name = a_dir, bit = a_dir_bit, mask = a_dir_mask
2073 00000008 = a_dir___byte equ _portd
2074 00000006 = a_dir___bit equ 6
2075 00000006 = a_dir_bit equ 6
2076 00000040 = a_dir_mask equ 64
2077                    ; line_number = 40
2078                    ;  pin 30 = rd7_out, name = a_step, bit = a_step_bit, mask = a_step_mask
2079 00000008 = a_step___byte equ _portd
2080 00000007 = a_step___bit equ 7
2081 00000007 = a_step_bit equ 7
2082 00000080 = a_step_mask equ 128
2083                    ; line_number = 41
2084                    ;  pin 31 = ground2
2085                    ; line_number = 42
2086                    ;  pin 32 = power_supply2
2087            
2088                    ; line_number = 44
2089                    ;  pin 33 = rb0_out, name = m0
2090 00000006 = m0___byte equ _portb
2091 00000000 = m0___bit equ 0
2092                    ; line_number = 45
2093                    ;  pin 34 = rb1_out, name = m1
2094 00000006 = m1___byte equ _portb
2095 00000001 = m1___bit equ 1
2096                    ; line_number = 46
2097                    ;  pin 35 = rb2_out, name = m2
2098 00000006 = m2___byte equ _portb
2099 00000002 = m2___bit equ 2
2100                    ; line_number = 47
2101                    ;  pin 36 = rb3_out, name = m3
2102 00000006 = m3___byte equ _portb
2103 00000003 = m3___bit equ 3
2104                    ; line_number = 48
2105                    ;  pin 37 = rb4_out, name = m4
2106 00000006 = m4___byte equ _portb
2107 00000004 = m4___bit equ 4
2108                    ; line_number = 49
2109                    ;  pin 38 = rb5_out, name = m5
2110 00000006 = m5___byte equ _portb
2111 00000005 = m5___bit equ 5
2112                    ; line_number = 50
2113                    ;  pin 39 = rb6_out, name = m6
2114 00000006 = m6___byte equ _portb
2115 00000006 = m6___bit equ 6
2116                    ; line_number = 51
2117                    ;  pin 40 = rb7_out, name = m7
2118 00000006 = m7___byte equ _portb
2119 00000007 = m7___bit equ 7
2120            
2121                    ; line_number = 53
2122                    ; constant dir_mask = x_dir_mask | y_dir_mask | z_dir_mask | a_dir_mask
2123 00000055 = dir_mask equ 85
2124                    ; line_number = 54
2125                    ; constant step_mask = x_step_mask | y_step_mask | z_step_mask | a_step_mask
2126 000000aa = step_mask equ 170
2127            
2128                    ; line_number = 56
2129                    ; constant microsecond = _clock_instruction_rate / 1000000
2130 00000005 = microsecond equ 5
2131                    ; line_number = 57
2132                    ; constant delay_amount = 20 * microsecond
2133 00000064 = delay_amount equ 100
2134                    ; line_number = 58
2135                    ; constant tmr0_prescale_power = 1
2136 00000001 = tmr0_prescale_power equ 1
2137                    ; line_number = 59
2138                    ; constant tmr0_prescale = 1 << tmr0_prescale_power
2139 00000002 = tmr0_prescale equ 2
2140                    ; line_number = 60
2141                    ; constant interrupt_cycles = 11
2142 0000000b = interrupt_cycles equ 11
2143                    ; line_number = 61
2144                    ; constant tmr0_reset = 256 - ((delay_amount - interrupt_cycles) >> tmr0_prescale_power) 
2145 000000d4 = tmr0_reset equ 212
2146            
2147                    ; # Compute the baud rate:
2148                    ; # Baud rates are computed using the following formula:
2149                    ; #
2150                    ; #   baud_rate = Fosc / (16 * (spbrg + 1))                      (1)
2151                    ; #
2152                    ; # Solving for spbrg:
2153                    ; #
2154                    ; #   spbrg = Fosc / (16 * baud_rate) - 1                        (2)
2155                    ; #
2156                    ; # In order to deal with rounding errors we need to add .5
2157                    ; # to spbrg.  This results in the following equation:
2158                    ; #
2159                    ; #   spbrg = (Fosc - 8 - baud_rate/2) / (16 * baud_rate)        (3)
2160                    ; #
2161                    ; # Lastly, the percentage of error is:
2162                    ; #
2163                    ; #   error = (generated_baud_rate - desired_baud_rate) /	       (4)
2164                    ; #           desired_baud_rate
2165                    ; #
2166                    ; # Computing as a percentage:
2167                    ; #
2168                    ; #  error = (Fosc / (16 * (spbrg + 1) - baud_rate) / baud_rate  (5)
2169            
2170                    ; # Baud rate 19200:
2171                    ; line_number = 88
2172                    ; constant spbrg_19200 = (_clock_rate - 8 * 19200/2) / (16 * 19200)
2173 00000040 = spbrg_19200 equ 64
2174                    ; line_number = 89
2175                    ; constant actual_rate_19200 = _clock_rate / (16 * (spbrg_19200 + 1))
2176 00004b1e = actual_rate_19200 equ 19230
2177                    ; line_number = 90
2178                    ; constant error_19200 = 100 * (actual_rate_19200 - 19200) / 19200
2179 00000000 = error_19200 equ 0
2180            
2181                    ; # Baud rate 57600:
2182                    ; line_number = 93
2183                    ; constant spbrg_57600 = (_clock_rate - 8 * 57600/2) / (16 * 57600)
2184 00000015 = spbrg_57600 equ 21
2185                    ; line_number = 94
2186                    ; constant actual_rate_57600 = _clock_rate / (16 * (spbrg_57600 + 1))
2187 0000ddf2 = actual_rate_57600 equ 56818
2188                    ; line_number = 95
2189                    ; constant error_57600 = 100 * (actual_rate_57600 - 57600) / 57600
2190 00012344 = error_57600 equ 74564
2191            
2192                    ; # Baud rate 115200:
2193                    ; line_number = 98
2194                    ; constant spbrg_115200 = (_clock_rate - 8 * 115200/2) / (16 * 115200)
2195 0000000a = spbrg_115200 equ 10
2196                    ; line_number = 99
2197                    ; constant actual_rate_115200 = _clock_rate / (16 * (spbrg_115200 + 1))
2198 0001bbe4 = actual_rate_115200 equ 113636
2199                    ; line_number = 100
2200                    ; constant error_115200 = 100 * (115200 - actual_rate_115200) / 115200
2201 00000001 = error_115200 equ 1
2202            
2203                    ; # The circular buffer for interrupt routine:
2204                    ; line_number = 103
2205                    ; constant buffer_power = 5
2206 00000005 = buffer_power equ 5
2207                    ; line_number = 104
2208                    ; constant buffer_size = 1 << buffer_power
2209 00000020 = buffer_size equ 32
2210                    ; line_number = 105
2211                    ; constant buffer_mask = buffer_size - 1
2212 0000001f = buffer_mask equ 31
2213                    ; line_number = 106
2214                    ; global buffer[buffer_size] array[byte]
2215 00000023 = buffer equ globals___0+3
2216                    ; line_number = 107
2217                    ; global buffer_in byte
2218 00000043 = buffer_in equ globals___0+35
2219                    ; line_number = 108
2220                    ; global buffer_out byte
2221 00000044 = buffer_out equ globals___0+36
2222                    ; line_number = 109
2223                    ; global buffer_amount byte
2224 00000045 = buffer_amount equ globals___0+37
2225                    ; line_number = 110
2226                    ; global buffer_byte byte
2227 00000046 = buffer_byte equ globals___0+38
2228                    ; line_number = 111
2229                    ; global buffer_command byte
2230 00000047 = buffer_command equ globals___0+39
2231                    ; line_number = 112
2232                    ; global buffer_command_ready bit
2233 0000006f = buffer_command_ready___byte equ globals___0+79
2234 00000000 = buffer_command_ready___bit equ 0
2235            
2236                    ; line_number = 114
2237                    ; global control byte
2238 00000048 = control equ globals___0+40
2239                    ; line_number = 115
2240                    ; global address_low byte
2241 00000049 = address_low equ globals___0+41
2242                    ; line_number = 116
2243                    ; global address_middle byte
2244 0000004a = address_middle equ globals___0+42
2245                    ; line_number = 117
2246                    ; global address_high byte
2247 0000004b = address_high equ globals___0+43
2248            
2249                    ; # Memory chip in and out addresses:
2250                    ; line_number = 120
2251                    ; global memory_in_high byte
2252 0000004c = memory_in_high equ globals___0+44
2253                    ; line_number = 121
2254                    ; global memory_in_middle byte
2255 0000004d = memory_in_middle equ globals___0+45
2256                    ; line_number = 122
2257                    ; global memory_in_low byte
2258 0000004e = memory_in_low equ globals___0+46
2259                    ; line_number = 123
2260                    ; global memory_rollback_high byte
2261 0000004f = memory_rollback_high equ globals___0+47
2262                    ; line_number = 124
2263                    ; global memory_rollback_middle byte
2264 00000050 = memory_rollback_middle equ globals___0+48
2265                    ; line_number = 125
2266                    ; global memory_rollback_low byte
2267 00000051 = memory_rollback_low equ globals___0+49
2268                    ; line_number = 126
2269                    ; global memory_out_high byte
2270 00000052 = memory_out_high equ globals___0+50
2271                    ; line_number = 127
2272                    ; global memory_out_middle byte
2273 00000053 = memory_out_middle equ globals___0+51
2274                    ; line_number = 128
2275                    ; global memory_out_low byte
2276 00000054 = memory_out_low equ globals___0+52
2277                    ; line_number = 129
2278                    ; global chunk_current byte
2279 00000055 = chunk_current equ globals___0+53
2280                    ; line_number = 130
2281                    ; global chunk_enabled byte
2282 00000056 = chunk_enabled equ globals___0+54
2283                    ; line_number = 131
2284                    ; global checksum_low byte
2285 00000057 = checksum_low equ globals___0+55
2286                    ; line_number = 132
2287                    ; global checksum_high byte
2288 00000058 = checksum_high equ globals___0+56
2289                    ; line_number = 133
2290                    ; global repeat bit
2291 0000006f = repeat___byte equ globals___0+79
2292 00000001 = repeat___bit equ 1
2293            
2294                    ; line_number = 135
2295                    ; global command byte
2296 00000059 = command equ globals___0+57
2297                    ; line_number = 136
2298                    ; global delay_a byte
2299 0000005a = delay_a equ globals___0+58
2300                    ; line_number = 137
2301                    ; global delay_b byte
2302 0000005b = delay_b equ globals___0+59
2303                    ; line_number = 138
2304                    ; global delay_c byte
2305 0000005c = delay_c equ globals___0+60
2306                    ; line_number = 139
2307                    ; global delay_high byte
2308 0000005d = delay_high equ globals___0+61
2309                    ; line_number = 140
2310                    ; global delay_low byte
2311 0000005e = delay_low equ globals___0+62
2312                    ; line_number = 141
2313                    ; global directions byte
2314 0000005f = directions equ globals___0+63
2315            
2316                    ; line_number = 143
2317                    ; global interrupts byte
2318 00000060 = interrupts equ globals___0+64
2319            
2320                    ; line_number = 145
2321                    ; bind step_dir_port = _portd
2322 00000008 = step_dir_port equ _portd
2323                    ; line_number = 146
2324                    ; bind memory_port = _portb
2325 00000006 = memory_port equ _portb
2326                    ; line_number = 147
2327                    ; bind memory_tris = _trisb
2328 00000086 = memory_tris equ _trisb
2329            
2330                    ; line_number = 149
2331                    ; global reads_low byte
2332 00000061 = reads_low equ globals___0+65
2333                    ; line_number = 150
2334                    ; global reads_high byte
2335 00000062 = reads_high equ globals___0+66
2336            
2337                    ; line_number = 152
2338                    ; share fsr_save byte
2339 00000070 = fsr_save equ shared___globals
2340            
2341                    ; line_number = 154
2342                    ; origin 0
2343   0000 :           org     0
2344            
2345                    ; line_number = 156
2346                    ;info   156, 0
2347                    ; procedure start
2348   0000 :   start:
2349                    ; arguments_none
2350                    ; line_number = 158
2351                    ;  returns_nothing
2352            
2353                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
2354                    ; line_number = 160
2355                    ;  assemble
2356                    ;info   160, 0
2357                    ; line_number = 161
2358                    ;info   161, 0
2359 0000 2823          goto    main
2360            
2361                    ; delay after procedure statements=non-uniform
2362                    ; Implied return
2363 0001 3400          retlw   0
2364            
2365            
2366            
2367            
2368                    ; line_number = 163
2369                    ; origin 4
2370   0004 :           org     4
2371            
2372                    ; line_number = 165
2373                    ;info   165, 4
2374                    ; procedure interrupt
2375   0004 :   interrupt:
2376 00000072 = interrupt___w_save equ shared___globals+2
2377 00000071 = interrupt___status_save equ shared___globals+1
2378                    ; Carefully save __w and __tatus into RAM
2379                    ; Save W first (easy)
2380 0004 00f2          movwf   interrupt___w_save
2381                    ; Save Status without smashing it (tricky)
2382                    ; Move swapped version of status into W
2383 0005 0e03          swapf   __status,w
2384                    ; Store swapped version of status into RAM
2385 0006 00f1          movwf   interrupt___status_save
2386                    ; arguments_none
2387                    ; line_number = 167
2388                    ;  returns_nothing
2389            
2390                    ; #local fsr_save byte
2391                    ; line_number = 170
2392                    ;  local offset byte
2393 00000063 = interrupt__offset equ globals___0+67
2394            
2395                    ; # We want the step lines to be cleared for at least 2uSec.
2396                    ; # We clear them first thing.  By the time we get around to
2397                    ; # assigning to portb again, at least 2uSec will have elapsed.
2398            
2399                    ; # (port B assigned at cycle 6)
2400                    ; #step_dir_port := step_dir_port & dir_mask
2401                    ; before procedure statements delay=non-uniform, bit states=(data:??=>?? code:00=>00)
2402                    ; line_number = 178
2403                    ;  _tmr0if := _false
2404                    ;info   178, 7
2405 0007 110b          bcf     _tmr0if___byte, _tmr0if___bit
2406                    ; line_number = 179
2407                    ;  _tmr0 := tmr0_reset
2408                    ;info   179, 8
2409 0008 30d4          movlw   212
2410 0009 1283          bcf     __rp0___byte, __rp0___bit
2411 000a 0081          movwf   _tmr0
2412                    ; line_number = 180
2413                    ;  interrupts := interrupts + 1
2414                    ;info   180, 11
2415 000b 1303          bcf     __rp1___byte, __rp1___bit
2416 000c 0ae0          incf    interrupts,f
2417            
2418                    ; # Evenutally, the uCL compiler will be smart enough to
2419                    ; # save FSR, but for now it is not.  Thus, we need to do it
2420                    ; # ourselves:
2421                    ; line_number = 185
2422                    ;  fsr_save := _fsr
2423                    ;info   185, 13
2424 000d 0804          movf    _fsr,w
2425 000e 00f0          movwf   fsr_save
2426            
2427                    ; line_number = 187
2428                    ;  buffer_amount := buffer_amount - 1
2429                    ;info   187, 15
2430 000f 03c5          decf    buffer_amount,f
2431                    ; line_number = 188
2432                    ;  if _z start
2433                    ;info   188, 16
2434                    ; =>bit_code_emit@symbol(): sym=_z
2435                    ; No 1TEST: true.size=1 false.size=8
2436                    ; No 2TEST: true.size=1 false.size=8
2437                    ; 2GOTO: Single test with two GOTO's
2438 0010 1d03          btfss   _z___byte, _z___bit
2439 0011 2814          goto    interrupt__1
2440                    ; line_number = 189
2441                    ; _tmr0ie := _false
2442                    ;info   189, 18
2443 0012 128b          bcf     _tmr0ie___byte, _tmr0ie___bit
2444                    ; Recombine code1_bit_states != code2_bit_states
2445 0013 281c          goto    interrupt__2
2446                    ; 2GOTO: Starting code 2
2447   0014 :   interrupt__1:
2448                    ; line_number = 191
2449                    ; step_dir_port := buffer[buffer_out & buffer_mask]
2450                    ;info   191, 20
2451 0014 301f          movlw   31
2452 0015 0544          andwf   buffer_out,w
2453 0016 3e23          addlw   buffer
2454 0017 0084          movwf   __fsr
2455 0018 1383          bcf     __irp___byte, __irp___bit
2456 0019 0800          movf    __indf,w
2457 001a 0088          movwf   step_dir_port
2458                    ; # (port B assigned at cycle 21)
2459                    ; line_number = 193
2460                    ;  buffer_out := buffer_out + 1
2461                    ;info   193, 27
2462 001b 0ac4          incf    buffer_out,f
2463            
2464   001c :   interrupt__2:
2465                    ; 2GOTO: code1 final bitstates:(data:XX=>XX code:XX=>XX)
2466                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2467                    ; 2GOTO: code final bitstates:(data:??=>00 code:00=>00)
2468                    ; <=bit_code_emit@symbol; sym=_z (data:??=>00 code:00=>00)
2469                    ; line_number = 188
2470                    ;  if _z done
2471                    ; # Restore FSR and return:
2472                    ; line_number = 196
2473                    ;  _fsr := fsr_save
2474                    ;info   196, 28
2475 001c 0870          movf    fsr_save,w
2476 001d 0084          movwf   _fsr
2477            
2478            
2479                    ; delay after procedure statements=non-uniform
2480                    ; Interrupt return
2481                    ; Carefully restore __w and __tatus from RAM
2482                    ; Restore swapped status into W
2483 001e 0e71          swapf   interrupt___status_save,w
2484                    ; W now contains (unswapped) status
2485                    ; Restore W to __status
2486 001f 0083          movwf   __status
2487                    ; From here on out, do not modify __status
2488                    ; Swap saved W register in RAM
2489 0020 0ef2          swapf   interrupt___w_save,f
2490                    ; Unswap the saved W reg and restore to W
2491 0021 0e72          swapf   interrupt___w_save,w
2492                    ; __w and __status are now restored
2493                    ; Return from interrupt
2494 0022 0009          retfie  
2495            
2496            
2497            
2498            
2499                    ; line_number = 199
2500                    ;info   199, 35
2501                    ; procedure main
2502   0023 :   main:
2503                    ; Initialize some registers
2504 0023 019f          clrf    _adcon0
2505 0024 300f          movlw   15
2506 0025 1683          bsf     __rp0___byte, __rp0___bit
2507 0026 009f          movwf   _adcon1
2508 0027 0185          clrf    _trisa
2509 0028 0186          clrf    _trisb
2510 0029 3080          movlw   128
2511 002a 0087          movwf   _trisc
2512 002b 0188          clrf    _trisd
2513                    ; arguments_none
2514                    ; line_number = 201
2515                    ;  returns_nothing
2516            
2517                    ; line_number = 203
2518                    ;  local commmand byte
2519 00000064 = main__commmand equ globals___0+68
2520            
2521                    ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:00=>00)
2522                    ; line_number = 205
2523                    ;  reads_low := 0
2524                    ;info   205, 44
2525 002c 1283          bcf     __rp0___byte, __rp0___bit
2526 002d 01e1          clrf    reads_low
2527                    ; line_number = 206
2528                    ;  reads_high := 0
2529                    ;info   206, 46
2530 002e 01e2          clrf    reads_high
2531            
2532                    ; # Initalize everything here:
2533                    ; line_number = 209
2534                    ;  call initialize(spbrg_115200)
2535                    ;info   209, 47
2536 002f 300a          movlw   10
2537 0030 20ee          call    initialize
2538            
2539                    ; line_number = 211
2540                    ;  loop_forever start
2541                    ;info   211, 49
2542   0031 :   main__1:
2543                    ; # Stripped down test code:
2544                    ; #if _rcif
2545                    ; #    # Read the UART:
2546                    ; #    command := _rcreg
2547                    ; #    reads_low := reads_low + 1
2548                    ; #    if _z
2549                    ; #	reads_high := reads_high + 1
2550                    ; #    if _oerr
2551                    ; #	# We had an overrun error, clear it:
2552                    ; #	_cren := 0
2553                    ; #	_cren := 1
2554            
2555                    ; #    if command = 0xff
2556                    ; #	call _uart_byte_put('#')
2557                    ; #	call _uart_byte_put(memory_in_high)
2558                    ; #	call _uart_byte_put(memory_in_middle)
2559                    ; #	call _uart_byte_put(memory_in_low)
2560                    ; #	call _uart_byte_put(memory_out_high)
2561                    ; #	call _uart_byte_put(memory_out_middle)
2562                    ; #	call _uart_byte_put(memory_out_low)
2563                    ; #	call _uart_byte_put(reads_high)
2564                    ; #	call _uart_byte_put(reads_low)
2565                    ; #	reads_high := 0
2566                    ; #	reads_low := 0
2567                    ; #    else_if command = 0xef
2568                    ; #	call _uart_byte_put('!')
2569            
2570                    ; line_number = 239
2571                    ;  if _rcif start
2572                    ;info   239, 49
2573                    ; =>bit_code_emit@symbol(): sym=_rcif
2574                    ; 1TEST: Single test with code in skip slot
2575 0031 1a8c          btfsc   _rcif___byte, _rcif___bit
2576                    ; line_number = 240
2577                    ; call fetch_byte()
2578                    ;info   240, 50
2579 0032 2124          call    fetch_byte
2580            
2581                    ; Recombine size1 = 0 || size2 = 0
2582                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:00=>00)
2583                    ; line_number = 239
2584                    ;  if _rcif done
2585                    ; line_number = 242
2586                    ; if chunk_current != chunk_enabled start
2587                    ;info   242, 51
2588                    ; Left minus Right
2589 0033 0856          movf    chunk_enabled,w
2590 0034 0255          subwf   chunk_current,w
2591                    ; =>bit_code_emit@symbol(): sym=__z
2592                    ; No 1TEST: true.size=0 false.size=182
2593                    ; No 2TEST: true.size=0 false.size=182
2594                    ; 1GOTO: Single test with GOTO
2595 0035 1903          btfsc   __z___byte, __z___bit
2596 0036 28ed          goto    main__56
2597                    ; # We have data in the memory chip to be processed:
2598                    ; line_number = 244
2599                    ;  if buffer_amount@buffer_power start
2600                    ;info   244, 55
2601 00000045 = main__select__53___byte equ buffer_amount
2602 00000005 = main__select__53___bit equ 5
2603                    ; =>bit_code_emit@symbol(): sym=main__select__53
2604                    ; No 1TEST: true.size=7 false.size=172
2605                    ; No 2TEST: true.size=7 false.size=172
2606                    ; 2GOTO: Single test with two GOTO's
2607 0037 1ec5          btfss   main__select__53___byte, main__select__53___bit
2608 0038 2841          goto    main__54
2609                    ; # The step buffer is full; we need to wait until there
2610                    ; # is some space in there:
2611                    ; line_number = 247
2612                    ;  if !_tmr0ie start
2613                    ;info   247, 57
2614                    ; =>bit_code_emit@symbol(): sym=_tmr0ie
2615                    ; No 1TEST: true.size=0 false.size=5
2616                    ; No 2TEST: true.size=0 false.size=5
2617                    ; 1GOTO: Single test with GOTO
2618 0039 1a8b          btfsc   _tmr0ie___byte, _tmr0ie___bit
2619 003a 2840          goto    main__52
2620                    ; # Turn on the interrupts to start flushing it out:
2621                    ; line_number = 249
2622                    ;  _tmr0 := 0xfa
2623                    ;info   249, 59
2624 003b 30fa          movlw   250
2625 003c 0081          movwf   _tmr0
2626                    ; line_number = 250
2627                    ;  _tmr0if := _false
2628                    ;info   250, 61
2629 003d 110b          bcf     _tmr0if___byte, _tmr0if___bit
2630                    ; line_number = 251
2631                    ;  _gie := _true
2632                    ;info   251, 62
2633 003e 178b          bsf     _gie___byte, _gie___bit
2634                    ; line_number = 252
2635                    ;  _tmr0ie := _true
2636                    ;info   252, 63
2637 003f 168b          bsf     _tmr0ie___byte, _tmr0ie___bit
2638   0040 :   main__52:
2639                    ; Recombine size1 = 0 || size2 = 0
2640                    ; <=bit_code_emit@symbol; sym=_tmr0ie (data:X0=>X0 code:00=>00)
2641                    ; line_number = 247
2642                    ;  if !_tmr0ie done
2643                    ; Recombine code1_bit_states != code2_bit_states
2644 0040 28ed          goto    main__55
2645                    ; 2GOTO: Starting code 2
2646   0041 :   main__54:
2647                    ; line_number = 253
2648                    ;info   253, 65
2649                    ; =>bit_code_emit@symbol(): sym=buffer_command_ready
2650                    ; No 1TEST: true.size=25 false.size=144
2651                    ; No 2TEST: true.size=25 false.size=144
2652                    ; 2GOTO: Single test with two GOTO's
2653 0041 1c6f          btfss   buffer_command_ready___byte, buffer_command_ready___bit
2654 0042 285d          goto    main__50
2655                    ; # There is some space in steps buffer and we have a
2656                    ; # a command to process:
2657                    ; line_number = 256
2658                    ;  buffer_byte := directions
2659                    ;info   256, 67
2660 0043 085f          movf    directions,w
2661 0044 00c6          movwf   buffer_byte
2662                    ; line_number = 257
2663                    ;  if delay_low = 0 start
2664                    ;info   257, 69
2665                    ; Left minus Right
2666 0045 085e          movf    delay_low,w
2667                    ; =>bit_code_emit@symbol(): sym=__z
2668                    ; No 1TEST: true.size=9 false.size=1
2669                    ; No 2TEST: true.size=9 false.size=1
2670                    ; 2GOTO: Single test with two GOTO's
2671 0046 1d03          btfss   __z___byte, __z___bit
2672 0047 2852          goto    main__48
2673                    ; line_number = 258
2674                    ; if delay_high = 0 start
2675                    ;info   258, 72
2676                    ; Left minus Right
2677 0048 085d          movf    delay_high,w
2678                    ; =>bit_code_emit@symbol(): sym=__z
2679                    ; No 1TEST: true.size=3 false.size=2
2680                    ; No 2TEST: true.size=3 false.size=2
2681                    ; 2GOTO: Single test with two GOTO's
2682 0049 1d03          btfss   __z___byte, __z___bit
2683 004a 284f          goto    main__46
2684                    ; # The delay is zero, now stuff a {buffer_byte} into
2685                    ; # the circular buffer:
2686                    ; line_number = 261
2687                    ;  buffer_byte := buffer_command
2688                    ;info   261, 75
2689 004b 0847          movf    buffer_command,w
2690 004c 00c6          movwf   buffer_byte
2691                    ; # Force the next byte in the memory chip to be
2692                    ; # processed:
2693                    ; line_number = 264
2694                    ;  buffer_command_ready := _false
2695                    ;info   264, 77
2696 004d 106f          bcf     buffer_command_ready___byte, buffer_command_ready___bit
2697 004e 2851          goto    main__47
2698                    ; 2GOTO: Starting code 2
2699   004f :   main__46:
2700                    ; line_number = 266
2701                    ; delay_high := delay_high - 1
2702                    ;info   266, 79
2703 004f 03dd          decf    delay_high,f
2704                    ; line_number = 267
2705                    ;  delay_low := delay_low - 1
2706                    ;info   267, 80
2707 0050 03de          decf    delay_low,f
2708   0051 :   main__47:
2709                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
2710                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2711                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
2712                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
2713                    ; line_number = 258
2714                    ; if delay_high = 0 done
2715                    ; Recombine code1_bit_states != code2_bit_states
2716 0051 2853          goto    main__49
2717                    ; 2GOTO: Starting code 2
2718   0052 :   main__48:
2719                    ; line_number = 269
2720                    ; delay_low := delay_low - 1
2721                    ;info   269, 82
2722 0052 03de          decf    delay_low,f
2723            
2724   0053 :   main__49:
2725                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
2726                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2727                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
2728                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
2729                    ; line_number = 257
2730                    ;  if delay_low = 0 done
2731                    ; # Put {buffer_byte} into the buffer:
2732                    ; line_number = 272
2733                    ;  buffer[buffer_in & buffer_mask] := buffer_byte
2734                    ;info   272, 83
2735                    ; index_fsr_first
2736 0053 301f          movlw   31
2737 0054 0543          andwf   buffer_in,w
2738 0055 3e23          addlw   buffer
2739 0056 0084          movwf   __fsr
2740 0057 1383          bcf     __irp___byte, __irp___bit
2741 0058 0846          movf    buffer_byte,w
2742 0059 0080          movwf   __indf
2743                    ; line_number = 273
2744                    ;  buffer_in := buffer_in + 1
2745                    ;info   273, 90
2746 005a 0ac3          incf    buffer_in,f
2747                    ; line_number = 274
2748                    ;  buffer_amount := buffer_amount + 1
2749                    ;info   274, 91
2750 005b 0ac5          incf    buffer_amount,f
2751 005c 28ed          goto    main__51
2752                    ; 2GOTO: Starting code 2
2753   005d :   main__50:
2754                    ; # There is some space in the steps buffer and we need
2755                    ; # to get a command ready for it:
2756            
2757                    ; # Read the next command from the memory chip:
2758            
2759                    ; # Set the memory address:
2760                    ; line_number = 282
2761                    ;  _porta := memory_out_high
2762                    ;info   282, 93
2763 005d 0852          movf    memory_out_high,w
2764 005e 0085          movwf   _porta
2765                    ; line_number = 283
2766                    ;  a17 := _true
2767                    ;info   283, 95
2768 005f 1485          bsf     a17___byte, a17___bit
2769                    ; line_number = 284
2770                    ;  memory_port := memory_out_middle
2771                    ;info   284, 96
2772 0060 0853          movf    memory_out_middle,w
2773 0061 0086          movwf   memory_port
2774                    ; line_number = 285
2775                    ;  adrm := _true
2776                    ;info   285, 98
2777 0062 1487          bsf     adrm___byte, adrm___bit
2778                    ; line_number = 286
2779                    ;  adrm := _false
2780                    ;info   286, 99
2781 0063 1087          bcf     adrm___byte, adrm___bit
2782                    ; line_number = 287
2783                    ;  memory_port := memory_out_low
2784                    ;info   287, 100
2785 0064 0854          movf    memory_out_low,w
2786 0065 0086          movwf   memory_port
2787                    ; line_number = 288
2788                    ;  adrl := _true
2789                    ;info   288, 102
2790 0066 1407          bsf     adrl___byte, adrl___bit
2791                    ; line_number = 289
2792                    ;  adrl := _false
2793                    ;info   289, 103
2794 0067 1007          bcf     adrl___byte, adrl___bit
2795            
2796                    ; # Read the data byte:
2797                    ; line_number = 292
2798                    ;  memory_tris := 0xff
2799                    ;info   292, 104
2800 0068 30ff          movlw   255
2801 0069 1683          bsf     __rp0___byte, __rp0___bit
2802 006a 0086          movwf   memory_tris
2803                    ; line_number = 293
2804                    ;  oe := _false
2805                    ;info   293, 107
2806 006b 1283          bcf     __rp0___byte, __rp0___bit
2807 006c 1207          bcf     oe___byte, oe___bit
2808                    ; line_number = 294
2809                    ;  command := memory_port
2810                    ;info   294, 109
2811 006d 0806          movf    memory_port,w
2812 006e 00d9          movwf   command
2813                    ; line_number = 295
2814                    ;  oe := _true
2815                    ;info   295, 111
2816 006f 1607          bsf     oe___byte, oe___bit
2817                    ; line_number = 296
2818                    ;  memory_tris := 0
2819                    ;info   296, 112
2820 0070 1683          bsf     __rp0___byte, __rp0___bit
2821 0071 0186          clrf    memory_tris
2822            
2823                    ; # Increment the memory address:
2824                    ; line_number = 299
2825                    ;  memory_out_low := memory_out_low + 1
2826                    ;info   299, 114
2827 0072 1283          bcf     __rp0___byte, __rp0___bit
2828 0073 0ad4          incf    memory_out_low,f
2829                    ; line_number = 300
2830                    ;  if _z start
2831                    ;info   300, 116
2832                    ; =>bit_code_emit@symbol(): sym=_z
2833                    ; No 1TEST: true.size=3 false.size=0
2834                    ; No 2TEST: true.size=3 false.size=0
2835                    ; 1GOTO: Single test with GOTO
2836 0074 1d03          btfss   _z___byte, _z___bit
2837 0075 2879          goto    main__2
2838                    ; line_number = 301
2839                    ; memory_out_middle := memory_out_middle + 1
2840                    ;info   301, 118
2841 0076 0ad3          incf    memory_out_middle,f
2842                    ; line_number = 302
2843                    ;  if _z start
2844                    ;info   302, 119
2845                    ; =>bit_code_emit@symbol(): sym=_z
2846                    ; 1TEST: Single test with code in skip slot
2847 0077 1903          btfsc   _z___byte, _z___bit
2848                    ; line_number = 303
2849                    ; memory_out_high := memory_out_high + 1
2850                    ;info   303, 120
2851 0078 0ad2          incf    memory_out_high,f
2852            
2853                    ; Recombine size1 = 0 || size2 = 0
2854                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:XX=>XX)
2855                    ; line_number = 302
2856                    ;  if _z done
2857                    ; Recombine size1 = 0 || size2 = 0
2858   0079 :   main__2:
2859                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:00=>00)
2860                    ; line_number = 300
2861                    ;  if _z done
2862                    ; # Decode the command:
2863                    ; line_number = 306
2864                    ;  if command@7 start
2865                    ;info   306, 121
2866 00000059 = main__select__43___byte equ command
2867 00000007 = main__select__43___bit equ 7
2868                    ; =>bit_code_emit@symbol(): sym=main__select__43
2869                    ; No 1TEST: true.size=56 false.size=57
2870                    ; No 2TEST: true.size=56 false.size=57
2871                    ; 2GOTO: Single test with two GOTO's
2872 0079 1fd9          btfss   main__select__43___byte, main__select__43___bit
2873 007a 28b4          goto    main__44
2874                    ; # 1xxx xxxx:
2875                    ; line_number = 308
2876                    ;  if command@6 start
2877                    ;info   308, 123
2878 00000059 = main__select__40___byte equ command
2879 00000006 = main__select__40___bit equ 6
2880                    ; =>bit_code_emit@symbol(): sym=main__select__40
2881                    ; No 1TEST: true.size=29 false.size=24
2882                    ; No 2TEST: true.size=29 false.size=24
2883                    ; 2GOTO: Single test with two GOTO's
2884 007b 1f59          btfss   main__select__40___byte, main__select__40___bit
2885 007c 289b          goto    main__41
2886                    ; # 11xx xxxx:
2887                    ; line_number = 310
2888                    ;  if command = 0xff || command = 0xf8 start
2889                    ;info   310, 125
2890                    ; Left minus Right
2891 007d 0a59          incf    command,w
2892                    ; =>bit_code_emit@symbol(): sym=__z
2893                    ; No 1TEST: true.size=1 false.size=26
2894                    ; No 2TEST: true.size=1 false.size=26
2895                    ; 2GOTO: Single test with two GOTO's
2896 007e 1903          btfsc   __z___byte, __z___bit
2897 007f 2884          goto    main__38
2898                    ; Recombine code1_bit_states != code2_bit_states
2899                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2900                    ; Left minus Right
2901 0080 3008          movlw   8
2902 0081 0759          addwf   command,w
2903                    ; =>bit_code_emit@symbol(): sym=__z
2904                    ; No 1TEST: true.size=22 false.size=0
2905                    ; No 2TEST: true.size=22 false.size=0
2906                    ; 1GOTO: Single test with GOTO
2907 0082 1d03          btfss   __z___byte, __z___bit
2908 0083 289a          goto    main__39
2909   0084 :   main__38:
2910                    ; # We just finished a block:
2911                    ; line_number = 312
2912                    ;  buffer_command_ready := _false
2913                    ;info   312, 132
2914 0084 106f          bcf     buffer_command_ready___byte, buffer_command_ready___bit
2915                    ; line_number = 313
2916                    ;  delay_a := 0
2917                    ;info   313, 133
2918 0085 01da          clrf    delay_a
2919                    ; line_number = 314
2920                    ;  delay_b := 0
2921                    ;info   314, 134
2922 0086 01db          clrf    delay_b
2923                    ; line_number = 315
2924                    ;  delay_c := 0
2925                    ;info   315, 135
2926 0087 01dc          clrf    delay_c
2927                    ; line_number = 316
2928                    ;  delay_high := 0
2929                    ;info   316, 136
2930 0088 01dd          clrf    delay_high
2931                    ; line_number = 317
2932                    ;  delay_low := 0
2933                    ;info   317, 137
2934 0089 01de          clrf    delay_low
2935                    ; line_number = 318
2936                    ;  reads_high := 0
2937                    ;info   318, 138
2938 008a 01e2          clrf    reads_high
2939                    ; line_number = 319
2940                    ;  reads_low := 0
2941                    ;info   319, 139
2942 008b 01e1          clrf    reads_low
2943                    ; line_number = 320
2944                    ;  if repeat start
2945                    ;info   320, 140
2946                    ; =>bit_code_emit@symbol(): sym=repeat
2947                    ; No 1TEST: true.size=8 false.size=3
2948                    ; No 2TEST: true.size=8 false.size=3
2949                    ; 2GOTO: Single test with two GOTO's
2950 008c 1cef          btfss   repeat___byte, repeat___bit
2951 008d 2897          goto    main__36
2952                    ; # Reprocess the first block:
2953                    ; line_number = 322
2954                    ;  memory_out_low := 0
2955                    ;info   322, 142
2956 008e 01d4          clrf    memory_out_low
2957                    ; line_number = 323
2958                    ;  memory_out_middle := 0
2959                    ;info   323, 143
2960 008f 01d3          clrf    memory_out_middle
2961                    ; line_number = 324
2962                    ;  memory_out_high := 0
2963                    ;info   324, 144
2964 0090 01d2          clrf    memory_out_high
2965                    ; # Force a delay before repeating:
2966                    ; line_number = 326
2967                    ;  delay_high := 0x20
2968                    ;info   326, 145
2969 0091 3020          movlw   32
2970 0092 00dd          movwf   delay_high
2971                    ; line_number = 327
2972                    ;  buffer_command := directions
2973                    ;info   327, 147
2974 0093 085f          movf    directions,w
2975 0094 00c7          movwf   buffer_command
2976                    ; line_number = 328
2977                    ;  buffer_command_ready := _true
2978                    ;info   328, 149
2979 0095 146f          bsf     buffer_command_ready___byte, buffer_command_ready___bit
2980 0096 289a          goto    main__37
2981                    ; 2GOTO: Starting code 2
2982   0097 :   main__36:
2983                    ; line_number = 330
2984                    ; chunk_current := (chunk_current + 1) & 7
2985                    ;info   330, 151
2986 0097 0a55          incf    chunk_current,w
2987 0098 3907          andlw   7
2988 0099 00d5          movwf   chunk_current
2989                    ; #call _uart_byte_put('~')
2990   009a :   main__37:
2991                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
2992                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
2993                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
2994                    ; <=bit_code_emit@symbol; sym=repeat (data:00=>00 code:00=>00)
2995                    ; line_number = 320
2996                    ;  if repeat done
2997                    ; Recombine size1 = 0 || size2 = 0
2998   009a :   main__39:
2999                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
3000                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3001                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
3002                    ; 2GOTO: No goto needed; true=main__38 false= true_size=1 false_size=26
3003                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
3004                    ; 2GOTO: code2 final bitstates:(data:XX=>XX code:00=>00)
3005                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3006                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
3007                    ; line_number = 310
3008                    ;  if command = 0xff || command = 0xf8 done
3009 009a 28b3          goto    main__42
3010                    ; 2GOTO: Starting code 2
3011   009b :   main__41:
3012                    ; # 10xx xxxx:
3013                    ; line_number = 334
3014                    ;  if command@5 start
3015                    ;info   334, 155
3016 00000059 = main__select__33___byte equ command
3017 00000005 = main__select__33___bit equ 5
3018                    ; =>bit_code_emit@symbol(): sym=main__select__33
3019                    ; No 1TEST: true.size=15 false.size=6
3020                    ; No 2TEST: true.size=15 false.size=6
3021                    ; 2GOTO: Single test with two GOTO's
3022 009b 1ed9          btfss   main__select__33___byte, main__select__33___bit
3023 009c 28ad          goto    main__34
3024                    ; # 101x xxxx:
3025                    ; line_number = 336
3026                    ;  if command@4 start
3027                    ;info   336, 157
3028 00000059 = main__select__30___byte equ command
3029 00000004 = main__select__30___bit equ 4
3030                    ; =>bit_code_emit@symbol(): sym=main__select__30
3031                    ; No 1TEST: true.size=9 false.size=3
3032                    ; No 2TEST: true.size=9 false.size=3
3033                    ; 2GOTO: Single test with two GOTO's
3034 009d 1e59          btfss   main__select__30___byte, main__select__30___bit
3035 009e 28a9          goto    main__31
3036                    ; # 1011 axyz (SetDirection) [Bx]:
3037                    ; line_number = 338
3038                    ;  directions := 0
3039                    ;info   338, 159
3040 009f 01df          clrf    directions
3041                    ; line_number = 339
3042                    ;  if command@3 start
3043                    ;info   339, 160
3044 00000059 = main__select__23___byte equ command
3045 00000003 = main__select__23___bit equ 3
3046                    ; =>bit_code_emit@symbol(): sym=main__select__23
3047                    ; 1TEST: Single test with code in skip slot
3048 00a0 19d9          btfsc   main__select__23___byte, main__select__23___bit
3049                    ; line_number = 340
3050                    ; directions@a_dir_bit := _true
3051                    ;info   340, 161
3052 0000005f = main__select__22___byte equ directions
3053 00000006 = main__select__22___bit equ 6
3054 00a1 175f          bsf     main__select__22___byte, main__select__22___bit
3055                    ; Recombine size1 = 0 || size2 = 0
3056                    ; <=bit_code_emit@symbol; sym=main__select__23 (data:00=>00 code:XX=>XX)
3057                    ; line_number = 339
3058                    ;  if command@3 done
3059                    ; line_number = 341
3060                    ; if command@2 start
3061                    ;info   341, 162
3062 00000059 = main__select__25___byte equ command
3063 00000002 = main__select__25___bit equ 2
3064                    ; =>bit_code_emit@symbol(): sym=main__select__25
3065                    ; 1TEST: Single test with code in skip slot
3066 00a2 1959          btfsc   main__select__25___byte, main__select__25___bit
3067                    ; line_number = 342
3068                    ; directions@x_dir_bit := _true
3069                    ;info   342, 163
3070 0000005f = main__select__24___byte equ directions
3071 00000000 = main__select__24___bit equ 0
3072 00a3 145f          bsf     main__select__24___byte, main__select__24___bit
3073                    ; Recombine size1 = 0 || size2 = 0
3074                    ; <=bit_code_emit@symbol; sym=main__select__25 (data:00=>00 code:XX=>XX)
3075                    ; line_number = 341
3076                    ; if command@2 done
3077                    ; line_number = 343
3078                    ; if command@1 start
3079                    ;info   343, 164
3080 00000059 = main__select__27___byte equ command
3081 00000001 = main__select__27___bit equ 1
3082                    ; =>bit_code_emit@symbol(): sym=main__select__27
3083                    ; 1TEST: Single test with code in skip slot
3084 00a4 18d9          btfsc   main__select__27___byte, main__select__27___bit
3085                    ; line_number = 344
3086                    ; directions@y_dir_bit := _true
3087                    ;info   344, 165
3088 0000005f = main__select__26___byte equ directions
3089 00000002 = main__select__26___bit equ 2
3090 00a5 155f          bsf     main__select__26___byte, main__select__26___bit
3091                    ; Recombine size1 = 0 || size2 = 0
3092                    ; <=bit_code_emit@symbol; sym=main__select__27 (data:00=>00 code:XX=>XX)
3093                    ; line_number = 343
3094                    ; if command@1 done
3095                    ; line_number = 345
3096                    ; if command@0 start
3097                    ;info   345, 166
3098 00000059 = main__select__29___byte equ command
3099 00000000 = main__select__29___bit equ 0
3100                    ; =>bit_code_emit@symbol(): sym=main__select__29
3101                    ; 1TEST: Single test with code in skip slot
3102 00a6 1859          btfsc   main__select__29___byte, main__select__29___bit
3103                    ; line_number = 346
3104                    ; directions@z_dir_bit := _true
3105                    ;info   346, 167
3106 0000005f = main__select__28___byte equ directions
3107 00000004 = main__select__28___bit equ 4
3108 00a7 165f          bsf     main__select__28___byte, main__select__28___bit
3109                    ; Recombine size1 = 0 || size2 = 0
3110                    ; <=bit_code_emit@symbol; sym=main__select__29 (data:00=>00 code:XX=>XX)
3111                    ; line_number = 345
3112                    ; if command@0 done
3113 00a8 28ac          goto    main__32
3114                    ; 2GOTO: Starting code 2
3115   00a9 :   main__31:
3116                    ; # 1010 cccc (Set C) [Ax]:
3117                    ; line_number = 349
3118                    ;  delay_c := command & 0xf
3119                    ;info   349, 169
3120 00a9 300f          movlw   15
3121 00aa 0559          andwf   command,w
3122 00ab 00dc          movwf   delay_c
3123   00ac :   main__32:
3124                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
3125                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
3126                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3127                    ; <=bit_code_emit@symbol; sym=main__select__30 (data:00=>00 code:00=>00)
3128                    ; line_number = 336
3129                    ;  if command@4 done
3130                    ; Recombine code1_bit_states != code2_bit_states
3131 00ac 28b3          goto    main__35
3132                    ; 2GOTO: Starting code 2
3133   00ad :   main__34:
3134                    ; # 100x xxxx:
3135                    ; line_number = 352
3136                    ;  if command@4 start
3137                    ;info   352, 173
3138 00000059 = main__select__21___byte equ command
3139 00000004 = main__select__21___bit equ 4
3140                    ; =>bit_code_emit@symbol(): sym=main__select__21
3141                    ; # 1001 bbbb (Set B) [9x]:
3142                    ; line_number = 354
3143                    ;  delay_b := command & 0xf
3144                    ;info   354, 173
3145 00ad 300f          movlw   15
3146 00ae 0559          andwf   command,w
3147                    ; # 1000 aaaa (Set A) [8x]:
3148                    ; line_number = 357
3149                    ;  delay_a := command & 0xf
3150                    ;info   357, 175
3151                    ; No 1TEST: true.size=1 false.size=1
3152                    ; 2TEST: two tests with code in both delay slots
3153 00af 1a59          btfsc   main__select__21___byte, main__select__21___bit
3154 00b0 00db          movwf   delay_b
3155 00b1 1e59          btfss   main__select__21___byte, main__select__21___bit
3156 00b2 00da          movwf   delay_a
3157                    ; <=bit_code_emit@symbol; sym=main__select__21 (data:00=>00 code:XX=>XX)
3158                    ; line_number = 352
3159                    ;  if command@4 done
3160   00b3 :   main__35:
3161                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
3162                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
3163                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3164                    ; <=bit_code_emit@symbol; sym=main__select__33 (data:00=>00 code:00=>00)
3165                    ; line_number = 334
3166                    ;  if command@5 done
3167   00b3 :   main__42:
3168                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
3169                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:00=>00)
3170                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3171                    ; <=bit_code_emit@symbol; sym=main__select__40 (data:00=>00 code:00=>00)
3172                    ; line_number = 308
3173                    ;  if command@6 done
3174 00b3 28ed          goto    main__45
3175                    ; 2GOTO: Starting code 2
3176   00b4 :   main__44:
3177                    ; # 0ddc axyz (Step):
3178                    ; line_number = 360
3179                    ;  if command@4 start
3180                    ;info   360, 180
3181 00000059 = main__select__5___byte equ command
3182 00000004 = main__select__5___bit equ 4
3183                    ; =>bit_code_emit@symbol(): sym=main__select__5
3184                    ; No 1TEST: true.size=6 false.size=9
3185                    ; No 2TEST: true.size=6 false.size=9
3186                    ; 2GOTO: Single test with two GOTO's
3187 00b4 1e59          btfss   main__select__5___byte, main__select__5___bit
3188 00b5 28bd          goto    main__6
3189                    ; # Clear time:
3190                    ; line_number = 362
3191                    ;  delay_low := command >> 5
3192                    ;info   362, 182
3193 00b6 0e59          swapf   command,w
3194 00b7 00de          movwf   delay_low
3195 00b8 0cde          rrf     delay_low,f
3196 00b9 3007          movlw   7
3197 00ba 05de          andwf   delay_low,f
3198                    ; line_number = 363
3199                    ;  delay_high := 0
3200                    ;info   363, 187
3201 00bb 01dd          clrf    delay_high
3202 00bc 28c6          goto    main__7
3203                    ; 2GOTO: Starting code 2
3204   00bd :   main__6:
3205                    ; # Just set the low order two bits:
3206                    ; line_number = 366
3207                    ;  delay_low := (delay_low & 0xfc) | (command >> 5)
3208                    ;info   366, 189
3209 00000067 = main__3 equ globals___0+71
3210 00bd 30fc          movlw   252
3211 00be 055e          andwf   delay_low,w
3212 00bf 00e7          movwf   main__3
3213 00000068 = main__4 equ globals___0+72
3214 00c0 0e59          swapf   command,w
3215 00c1 00e8          movwf   main__4
3216 00c2 0c68          rrf     main__4,w
3217 00c3 3907          andlw   7
3218 00c4 0467          iorwf   main__3,w
3219 00c5 00de          movwf   delay_low
3220   00c6 :   main__7:
3221                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
3222                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
3223                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3224                    ; <=bit_code_emit@symbol; sym=main__select__5 (data:00=>00 code:00=>00)
3225                    ; line_number = 360
3226                    ;  if command@4 done
3227                    ; line_number = 367
3228                    ; buffer_command := directions
3229                    ;info   367, 198
3230 00c6 085f          movf    directions,w
3231 00c7 00c7          movwf   buffer_command
3232            
3233                    ; line_number = 369
3234                    ;  delay_high := (delay_a << 2) | (delay_b >> 2)
3235                    ;info   369, 200
3236 00000067 = main__8 equ globals___0+71
3237 00c8 0d5a          rlf     delay_a,w
3238 00c9 00e7          movwf   main__8
3239 00ca 0de7          rlf     main__8,f
3240 00cb 30fc          movlw   252
3241 00cc 05e7          andwf   main__8,f
3242 00000068 = main__9 equ globals___0+72
3243 00cd 0c5b          rrf     delay_b,w
3244 00ce 00e8          movwf   main__9
3245 00cf 0c68          rrf     main__9,w
3246 00d0 393f          andlw   63
3247 00d1 0467          iorwf   main__8,w
3248 00d2 00dd          movwf   delay_high
3249                    ; line_number = 370
3250                    ;  delay_low := (delay_b << 6) | (delay_c << 2) | ((command >> 5) & 3) 
3251                    ;info   370, 211
3252 00000068 = main__10 equ globals___0+72
3253 00d3 0e5b          swapf   delay_b,w
3254 00d4 00e8          movwf   main__10
3255 00d5 0de8          rlf     main__10,f
3256 00d6 0de8          rlf     main__10,f
3257 00d7 30c0          movlw   192
3258 00d8 05e8          andwf   main__10,f
3259 00000069 = main__11 equ globals___0+73
3260 00d9 0d5c          rlf     delay_c,w
3261 00da 00e9          movwf   main__11
3262 00db 0d69          rlf     main__11,w
3263 00dc 39fc          andlw   252
3264 00dd 04e8          iorwf   main__10,f
3265 0000006a = main__12 equ globals___0+74
3266 00de 0e59          swapf   command,w
3267 00df 00ea          movwf   main__12
3268 00e0 0c6a          rrf     main__12,w
3269 00e1 3903          andlw   3
3270 00e2 0468          iorwf   main__10,w
3271 00e3 00de          movwf   delay_low
3272            
3273                    ; line_number = 373
3274                    ; if command@3 start
3275                    ;info   373, 228
3276 00000059 = main__select__14___byte equ command
3277 00000003 = main__select__14___bit equ 3
3278                    ; =>bit_code_emit@symbol(): sym=main__select__14
3279                    ; 1TEST: Single test with code in skip slot
3280 00e4 19d9          btfsc   main__select__14___byte, main__select__14___bit
3281                    ; line_number = 374
3282                    ; buffer_command@a_step_bit := _true
3283                    ;info   374, 229
3284 00000047 = main__select__13___byte equ buffer_command
3285 00000007 = main__select__13___bit equ 7
3286 00e5 17c7          bsf     main__select__13___byte, main__select__13___bit
3287                    ; Recombine size1 = 0 || size2 = 0
3288                    ; <=bit_code_emit@symbol; sym=main__select__14 (data:00=>00 code:00=>00)
3289                    ; line_number = 373
3290                    ; if command@3 done
3291                    ; line_number = 375
3292                    ; if command@2 start
3293                    ;info   375, 230
3294 00000059 = main__select__16___byte equ command
3295 00000002 = main__select__16___bit equ 2
3296                    ; =>bit_code_emit@symbol(): sym=main__select__16
3297                    ; 1TEST: Single test with code in skip slot
3298 00e6 1959          btfsc   main__select__16___byte, main__select__16___bit
3299                    ; line_number = 376
3300                    ; buffer_command@x_step_bit := _true
3301                    ;info   376, 231
3302 00000047 = main__select__15___byte equ buffer_command
3303 00000001 = main__select__15___bit equ 1
3304 00e7 14c7          bsf     main__select__15___byte, main__select__15___bit
3305                    ; Recombine size1 = 0 || size2 = 0
3306                    ; <=bit_code_emit@symbol; sym=main__select__16 (data:00=>00 code:00=>00)
3307                    ; line_number = 375
3308                    ; if command@2 done
3309                    ; line_number = 377
3310                    ; if command@1 start
3311                    ;info   377, 232
3312 00000059 = main__select__18___byte equ command
3313 00000001 = main__select__18___bit equ 1
3314                    ; =>bit_code_emit@symbol(): sym=main__select__18
3315                    ; 1TEST: Single test with code in skip slot
3316 00e8 18d9          btfsc   main__select__18___byte, main__select__18___bit
3317                    ; line_number = 378
3318                    ; buffer_command@y_step_bit := _true
3319                    ;info   378, 233
3320 00000047 = main__select__17___byte equ buffer_command
3321 00000003 = main__select__17___bit equ 3
3322 00e9 15c7          bsf     main__select__17___byte, main__select__17___bit
3323                    ; Recombine size1 = 0 || size2 = 0
3324                    ; <=bit_code_emit@symbol; sym=main__select__18 (data:00=>00 code:00=>00)
3325                    ; line_number = 377
3326                    ; if command@1 done
3327                    ; line_number = 379
3328                    ; if command@0 start
3329                    ;info   379, 234
3330 00000059 = main__select__20___byte equ command
3331 00000000 = main__select__20___bit equ 0
3332                    ; =>bit_code_emit@symbol(): sym=main__select__20
3333                    ; 1TEST: Single test with code in skip slot
3334 00ea 1859          btfsc   main__select__20___byte, main__select__20___bit
3335                    ; line_number = 380
3336                    ; buffer_command@z_step_bit := _true
3337                    ;info   380, 235
3338 00000047 = main__select__19___byte equ buffer_command
3339 00000005 = main__select__19___bit equ 5
3340 00eb 16c7          bsf     main__select__19___byte, main__select__19___bit
3341                    ; Recombine size1 = 0 || size2 = 0
3342                    ; <=bit_code_emit@symbol; sym=main__select__20 (data:00=>00 code:00=>00)
3343                    ; line_number = 379
3344                    ; if command@0 done
3345                    ; line_number = 381
3346                    ; buffer_command_ready := _true
3347                    ;info   381, 236
3348 00ec 146f          bsf     buffer_command_ready___byte, buffer_command_ready___bit
3349            
3350            
3351   00ed :   main__45:
3352                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
3353                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:00=>00)
3354                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3355                    ; <=bit_code_emit@symbol; sym=main__select__43 (data:00=>00 code:00=>00)
3356                    ; line_number = 306
3357                    ;  if command@7 done
3358   00ed :   main__51:
3359                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
3360                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:00=>00)
3361                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3362                    ; <=bit_code_emit@symbol; sym=buffer_command_ready (data:00=>00 code:00=>00)
3363   00ed :   main__55:
3364                    ; 2GOTO: code1 final bitstates:(data:X0=>X0 code:00=>00)
3365                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:00=>00)
3366                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
3367                    ; <=bit_code_emit@symbol; sym=main__select__53 (data:00=>00 code:00=>00)
3368                    ; line_number = 244
3369                    ;  if buffer_amount@buffer_power done
3370   00ed :   main__56:
3371                    ; Recombine size1 = 0 || size2 = 0
3372                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
3373                    ; line_number = 242
3374                    ; if chunk_current != chunk_enabled done
3375                    ; line_number = 211
3376                    ;  loop_forever wrap-up
3377 00ed 2831          goto    main__1
3378                    ; line_number = 211
3379                    ;  loop_forever done
3380                    ; delay after procedure statements=non-uniform
3381            
3382            
3383            
3384            
3385                    ; line_number = 384
3386                    ;info   384, 238
3387                    ; procedure initialize
3388   00ee :   initialize:
3389                    ; Last argument is sitting in W; save into argument variable
3390 00ee 00e5          movwf   initialize__spbrg
3391                    ; delay=4294967295
3392                    ; line_number = 385
3393                    ; argument spbrg byte
3394 00000065 = initialize__spbrg equ globals___0+69
3395                    ; line_number = 386
3396                    ;  returns_nothing
3397            
3398                    ; # Turn off general interrupts:
3399                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
3400                    ; line_number = 389
3401                    ;  _gie := _false
3402                    ;info   389, 239
3403 00ef 138b          bcf     _gie___byte, _gie___bit
3404                    ; line_number = 390
3405                    ;  _tmr0ie := _false
3406                    ;info   390, 240
3407 00f0 128b          bcf     _tmr0ie___byte, _tmr0ie___bit
3408            
3409                    ; # Initialize the I/O ports:
3410                    ; line_number = 393
3411                    ;  _porta := 0
3412                    ;info   393, 241
3413 00f1 0185          clrf    _porta
3414                    ; line_number = 394
3415                    ;  step_dir_port := 0
3416                    ;info   394, 242
3417 00f2 0188          clrf    step_dir_port
3418                    ; line_number = 395
3419                    ;  we := _true
3420                    ;info   395, 243
3421 00f3 1687          bsf     we___byte, we___bit
3422                    ; line_number = 396
3423                    ;  oe := _true
3424                    ;info   396, 244
3425 00f4 1607          bsf     oe___byte, oe___bit
3426                    ; line_number = 397
3427                    ;  adrm := _false
3428                    ;info   397, 245
3429 00f5 1087          bcf     adrm___byte, adrm___bit
3430                    ; line_number = 398
3431                    ;  adrl := _false
3432                    ;info   398, 246
3433 00f6 1007          bcf     adrl___byte, adrl___bit
3434                    ; line_number = 399
3435                    ;  memory_tris := 0
3436                    ;info   399, 247
3437 00f7 1683          bsf     __rp0___byte, __rp0___bit
3438 00f8 0186          clrf    memory_tris
3439                    ; line_number = 400
3440                    ;  a17 := _true
3441                    ;info   400, 249
3442 00f9 1283          bcf     __rp0___byte, __rp0___bit
3443 00fa 1485          bsf     a17___byte, a17___bit
3444            
3445                    ; # Initilize serial port:
3446            
3447                    ; # Do Baud Rate selection and asynch. serial port enable:
3448                    ; # Prescaler = high:
3449                    ; line_number = 406
3450                    ;  _brgh := _true
3451                    ;info   406, 251
3452 00fb 1683          bsf     __rp0___byte, __rp0___bit
3453 00fc 1518          bsf     _brgh___byte, _brgh___bit
3454                    ; # Baud rate = 19200 Baud:
3455                    ; line_number = 408
3456                    ;  _spbrg := spbrg
3457                    ;info   408, 253
3458 00fd 1283          bcf     __rp0___byte, __rp0___bit
3459 00fe 0865          movf    initialize__spbrg,w
3460 00ff 1683          bsf     __rp0___byte, __rp0___bit
3461 0100 0099          movwf   _spbrg
3462                    ; # Asynchronous mode:
3463                    ; line_number = 410
3464                    ;  _sync := _false
3465                    ;info   410, 257
3466 0101 1218          bcf     _sync___byte, _sync___bit
3467                    ; # Serial port enable:
3468                    ; line_number = 412
3469                    ;  _spen := _true
3470                    ;info   412, 258
3471 0102 1283          bcf     __rp0___byte, __rp0___bit
3472 0103 1798          bsf     _spen___byte, _spen___bit
3473                    ; line_number = 413
3474                    ;  _rcie := _false
3475                    ;info   413, 260
3476 0104 1683          bsf     __rp0___byte, __rp0___bit
3477 0105 128c          bcf     _rcie___byte, _rcie___bit
3478            
3479                    ; # Enable the transmitter:
3480                    ; # 8-bit mode:
3481                    ; line_number = 417
3482                    ;  _tx9 := _false
3483                    ;info   417, 262
3484 0106 1318          bcf     _tx9___byte, _tx9___bit
3485                    ; # Enable transmitter:
3486                    ; line_number = 419
3487                    ;  _txen := _true
3488                    ;info   419, 263
3489 0107 1698          bsf     _txen___byte, _txen___bit
3490            
3491                    ; # Enable the receiver:
3492                    ; # 8-bit mode:
3493                    ; line_number = 423
3494                    ;  _rx9 := _false
3495                    ;info   423, 264
3496 0108 1283          bcf     __rp0___byte, __rp0___bit
3497 0109 1318          bcf     _rx9___byte, _rx9___bit
3498                    ; # Disable address:
3499                    ; line_number = 425
3500                    ;  _adden := _false
3501                    ;info   425, 266
3502 010a 1198          bcf     _adden___byte, _adden___bit
3503                    ; # Continuous receive enable:
3504                    ; line_number = 427
3505                    ;  _cren := _true
3506                    ;info   427, 267
3507 010b 1618          bsf     _cren___byte, _cren___bit
3508                    ; # Serial receive enable:
3509                    ; line_number = 429
3510                    ;  _sren := _true
3511                    ;info   429, 268
3512 010c 1698          bsf     _sren___byte, _sren___bit
3513            
3514                    ; # Set up the TRM0 module (RBPU=disabled, T0CS=CLKO, PSA=TMR0, PS=000):
3515                    ; line_number = 432
3516                    ;  _option_reg := 0x80
3517                    ;info   432, 269
3518 010d 3080          movlw   128
3519 010e 1683          bsf     __rp0___byte, __rp0___bit
3520 010f 0081          movwf   _option_reg
3521            
3522                    ; # Initialize the memory chip addresses:
3523                    ; line_number = 435
3524                    ;  memory_in_high := 0
3525                    ;info   435, 272
3526 0110 1283          bcf     __rp0___byte, __rp0___bit
3527 0111 01cc          clrf    memory_in_high
3528                    ; line_number = 436
3529                    ;  memory_in_middle := 0
3530                    ;info   436, 274
3531 0112 01cd          clrf    memory_in_middle
3532                    ; line_number = 437
3533                    ;  memory_in_low := 0
3534                    ;info   437, 275
3535 0113 01ce          clrf    memory_in_low
3536                    ; line_number = 438
3537                    ;  memory_rollback_high := 0
3538                    ;info   438, 276
3539 0114 01cf          clrf    memory_rollback_high
3540                    ; line_number = 439
3541                    ;  memory_rollback_middle := 0
3542                    ;info   439, 277
3543 0115 01d0          clrf    memory_rollback_middle
3544                    ; line_number = 440
3545                    ;  memory_rollback_low := 0
3546                    ;info   440, 278
3547 0116 01d1          clrf    memory_rollback_low
3548                    ; line_number = 441
3549                    ;  memory_out_high := 0
3550                    ;info   441, 279
3551 0117 01d2          clrf    memory_out_high
3552                    ; line_number = 442
3553                    ;  memory_out_middle := 0
3554                    ;info   442, 280
3555 0118 01d3          clrf    memory_out_middle
3556                    ; line_number = 443
3557                    ;  memory_out_low := 0
3558                    ;info   443, 281
3559 0119 01d4          clrf    memory_out_low
3560            
3561                    ; line_number = 445
3562                    ;  checksum_low := 0
3563                    ;info   445, 282
3564 011a 01d7          clrf    checksum_low
3565                    ; line_number = 446
3566                    ;  checksum_high := 0
3567                    ;info   446, 283
3568 011b 01d8          clrf    checksum_high
3569                    ; line_number = 447
3570                    ;  chunk_current := 0
3571                    ;info   447, 284
3572 011c 01d5          clrf    chunk_current
3573                    ; line_number = 448
3574                    ;  chunk_enabled := 0
3575                    ;info   448, 285
3576 011d 01d6          clrf    chunk_enabled
3577            
3578                    ; # Initialize the circular buffer:
3579                    ; line_number = 451
3580                    ;  buffer_in := 0
3581                    ;info   451, 286
3582 011e 01c3          clrf    buffer_in
3583                    ; line_number = 452
3584                    ;  buffer_out := 0
3585                    ;info   452, 287
3586 011f 01c4          clrf    buffer_out
3587                    ; line_number = 453
3588                    ;  buffer_amount := 0
3589                    ;info   453, 288
3590 0120 01c5          clrf    buffer_amount
3591            
3592                    ; line_number = 455
3593                    ;  interrupts := 0
3594                    ;info   455, 289
3595 0121 01e0          clrf    interrupts
3596                    ; line_number = 456
3597                    ;  repeat := _false
3598                    ;info   456, 290
3599 0122 10ef          bcf     repeat___byte, repeat___bit
3600            
3601            
3602                    ; delay after procedure statements=non-uniform
3603                    ; Implied return
3604 0123 3400          retlw   0
3605            
3606            
3607            
3608            
3609                    ; line_number = 459
3610                    ;info   459, 292
3611                    ; procedure fetch_byte
3612   0124 :   fetch_byte:
3613                    ; arguments_none
3614                    ; line_number = 461
3615                    ;  returns_nothing
3616            
3617                    ; # This procedure will fetch a byte from the UART and stuff it
3618                    ; # into the memory chip.  This procedure assumes that _RCIF is 1
3619                    ; # when called.
3620            
3621                    ; line_number = 467
3622                    ;  local insert bit
3623 0000006f = fetch_byte__insert___byte equ globals___0+79
3624 00000002 = fetch_byte__insert___bit equ 2
3625                    ; line_number = 468
3626                    ;  local respond bit
3627 0000006f = fetch_byte__respond___byte equ globals___0+79
3628 00000003 = fetch_byte__respond___bit equ 3
3629                    ; line_number = 469
3630                    ;  local result byte
3631 00000066 = fetch_byte__result equ globals___0+70
3632            
3633                    ; # Read the UART:
3634                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
3635                    ; line_number = 472
3636                    ;  command := _rcreg
3637                    ;info   472, 292
3638 0124 081a          movf    _rcreg,w
3639 0125 00d9          movwf   command
3640                    ; line_number = 473
3641                    ;  reads_low := reads_low + 1
3642                    ;info   473, 294
3643 0126 0ae1          incf    reads_low,f
3644                    ; line_number = 474
3645                    ;  if _z start
3646                    ;info   474, 295
3647                    ; =>bit_code_emit@symbol(): sym=_z
3648                    ; 1TEST: Single test with code in skip slot
3649 0127 1903          btfsc   _z___byte, _z___bit
3650                    ; line_number = 475
3651                    ; reads_high := reads_high + 1
3652                    ;info   475, 296
3653 0128 0ae2          incf    reads_high,f
3654                    ; Recombine size1 = 0 || size2 = 0
3655                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:00=>00)
3656                    ; line_number = 474
3657                    ;  if _z done
3658                    ; line_number = 476
3659                    ; if _oerr start
3660                    ;info   476, 297
3661                    ; =>bit_code_emit@symbol(): sym=_oerr
3662                    ; No 1TEST: true.size=2 false.size=0
3663                    ; No 2TEST: true.size=2 false.size=0
3664                    ; 1GOTO: Single test with GOTO
3665 0129 1c98          btfss   _oerr___byte, _oerr___bit
3666 012a 292d          goto    fetch_byte__1
3667                    ; # We had an overrun error, clear it:
3668                    ; line_number = 478
3669                    ;  _cren := _false
3670                    ;info   478, 299
3671 012b 1218          bcf     _cren___byte, _cren___bit
3672                    ; line_number = 479
3673                    ;  _cren := _true
3674                    ;info   479, 300
3675 012c 1618          bsf     _cren___byte, _cren___bit
3676            
3677                    ; Recombine size1 = 0 || size2 = 0
3678   012d :   fetch_byte__1:
3679                    ; <=bit_code_emit@symbol; sym=_oerr (data:00=>00 code:00=>00)
3680                    ; line_number = 476
3681                    ; if _oerr done
3682                    ; line_number = 481
3683                    ; respond := _false
3684                    ;info   481, 301
3685 012d 11ef          bcf     fetch_byte__respond___byte, fetch_byte__respond___bit
3686                    ; line_number = 482
3687                    ;  insert := _true
3688                    ;info   482, 302
3689 012e 156f          bsf     fetch_byte__insert___byte, fetch_byte__insert___bit
3690                    ; line_number = 483
3691                    ;  switch command >> 4 start
3692                    ;info   483, 303
3693 012f 3001          movlw   fetch_byte__36>>8
3694 0130 008a          movwf   __pclath
3695 0000006b = fetch_byte__37 equ globals___0+75
3696 0131 0e59          swapf   command,w
3697 0132 390f          andlw   15
3698 0133 3e35          addlw   fetch_byte__36
3699 0134 0082          movwf   __pcl
3700                    ; page_group 16
3701   0135 :   fetch_byte__36:
3702 0135 29fc          goto    fetch_byte__38
3703 0136 29fc          goto    fetch_byte__38
3704 0137 29fc          goto    fetch_byte__38
3705 0138 29fc          goto    fetch_byte__38
3706 0139 29fc          goto    fetch_byte__38
3707 013a 29fc          goto    fetch_byte__38
3708 013b 29fc          goto    fetch_byte__38
3709 013c 29fc          goto    fetch_byte__38
3710 013d 29fc          goto    fetch_byte__38
3711 013e 29fc          goto    fetch_byte__38
3712 013f 29fc          goto    fetch_byte__38
3713 0140 29fc          goto    fetch_byte__38
3714 0141 2945          goto    fetch_byte__32
3715 0142 294c          goto    fetch_byte__33
3716 0143 2953          goto    fetch_byte__34
3717 0144 29b4          goto    fetch_byte__35
3718                    ; line_number = 484
3719                    ; case 12
3720   0145 :   fetch_byte__32:
3721                    ; # 1100 xxxx (Control Low Set):
3722                    ; line_number = 486
3723                    ;  insert := _false
3724                    ;info   486, 325
3725 0145 116f          bcf     fetch_byte__insert___byte, fetch_byte__insert___bit
3726                    ; line_number = 487
3727                    ;  control := control & 0xf0
3728                    ;info   487, 326
3729 0146 30f0          movlw   240
3730 0147 05c8          andwf   control,f
3731                    ; line_number = 488
3732                    ;  control := control | (command & 0xf)
3733                    ;info   488, 328
3734 0148 300f          movlw   15
3735 0149 0559          andwf   command,w
3736 014a 04c8          iorwf   control,f
3737 014b 29fc          goto    fetch_byte__38
3738                    ; line_number = 489
3739                    ; case 13
3740   014c :   fetch_byte__33:
3741                    ; # 1101 xxxx (Control High Set):
3742                    ; line_number = 491
3743                    ;  insert := _false
3744                    ;info   491, 332
3745 014c 116f          bcf     fetch_byte__insert___byte, fetch_byte__insert___bit
3746                    ; line_number = 492
3747                    ;  control := control & 0xf
3748                    ;info   492, 333
3749 014d 300f          movlw   15
3750 014e 05c8          andwf   control,f
3751                    ; line_number = 493
3752                    ;  control := control | (command << 4)
3753                    ;info   493, 335
3754 0000006b = fetch_byte__2 equ globals___0+75
3755 014f 0e59          swapf   command,w
3756 0150 39f0          andlw   240
3757 0151 04c8          iorwf   control,f
3758 0152 29fc          goto    fetch_byte__38
3759                    ; line_number = 494
3760                    ; case 14
3761   0153 :   fetch_byte__34:
3762                    ; # Immediate commands:
3763                    ; line_number = 496
3764                    ;  insert := _false
3765                    ;info   496, 339
3766 0153 116f          bcf     fetch_byte__insert___byte, fetch_byte__insert___bit
3767                    ; line_number = 497
3768                    ;  respond := _true
3769                    ;info   497, 340
3770 0154 15ef          bsf     fetch_byte__respond___byte, fetch_byte__respond___bit
3771                    ; line_number = 498
3772                    ;  switch command & 0xf start
3773                    ;info   498, 341
3774 0155 3001          movlw   fetch_byte__19>>8
3775 0156 008a          movwf   __pclath
3776 0157 300f          movlw   15
3777 0158 0559          andwf   command,w
3778 0159 3e5b          addlw   fetch_byte__19
3779 015a 0082          movwf   __pcl
3780                    ; page_group 16
3781   015b :   fetch_byte__19:
3782 015b 296b          goto    fetch_byte__3
3783 015c 2970          goto    fetch_byte__4
3784 015d 2975          goto    fetch_byte__5
3785 015e 297a          goto    fetch_byte__6
3786 015f 2990          goto    fetch_byte__7
3787 0160 2993          goto    fetch_byte__8
3788 0161 2996          goto    fetch_byte__9
3789 0162 2999          goto    fetch_byte__10
3790 0163 299c          goto    fetch_byte__11
3791 0164 299f          goto    fetch_byte__12
3792 0165 29a2          goto    fetch_byte__13
3793 0166 29a5          goto    fetch_byte__14
3794 0167 29a8          goto    fetch_byte__15
3795 0168 29ab          goto    fetch_byte__16
3796 0169 29ae          goto    fetch_byte__17
3797 016a 29b1          goto    fetch_byte__18
3798                    ; line_number = 499
3799                    ; case 0
3800   016b :   fetch_byte__3:
3801                    ; #: 1110 0000 (Address Low Set):
3802                    ; line_number = 501
3803                    ;  address_low := control
3804                    ;info   501, 363
3805 016b 0848          movf    control,w
3806 016c 00c9          movwf   address_low
3807                    ; line_number = 502
3808                    ;  result := control
3809                    ;info   502, 365
3810 016d 0848          movf    control,w
3811 016e 00e6          movwf   fetch_byte__result
3812 016f 29b3          goto    fetch_byte__20
3813                    ; line_number = 503
3814                    ; case 1
3815   0170 :   fetch_byte__4:
3816                    ; #: 1110 0001 (Address Middle Set):
3817                    ; line_number = 505
3818                    ;  address_middle := control
3819                    ;info   505, 368
3820 0170 0848          movf    control,w
3821 0171 00ca          movwf   address_middle
3822                    ; line_number = 506
3823                    ;  result := control
3824                    ;info   506, 370
3825 0172 0848          movf    control,w
3826 0173 00e6          movwf   fetch_byte__result
3827 0174 29b3          goto    fetch_byte__20
3828                    ; line_number = 507
3829                    ; case 2
3830   0175 :   fetch_byte__5:
3831                    ; #: 1110 0010 (Address High Set):
3832                    ; line_number = 509
3833                    ;  address_high := control
3834                    ;info   509, 373
3835 0175 0848          movf    control,w
3836 0176 00cb          movwf   address_high
3837                    ; line_number = 510
3838                    ;  result := control
3839                    ;info   510, 375
3840 0177 0848          movf    control,w
3841 0178 00e6          movwf   fetch_byte__result
3842 0179 29b3          goto    fetch_byte__20
3843                    ; line_number = 511
3844                    ; case 3
3845   017a :   fetch_byte__6:
3846                    ; #: 1110 0011 (Memory Get):
3847                    ; # Set the memory address:
3848                    ; line_number = 514
3849                    ;  _porta := address_high
3850                    ;info   514, 378
3851 017a 084b          movf    address_high,w
3852 017b 0085          movwf   _porta
3853                    ; line_number = 515
3854                    ;  a17 := _true
3855                    ;info   515, 380
3856 017c 1485          bsf     a17___byte, a17___bit
3857                    ; line_number = 516
3858                    ;  memory_port := address_middle
3859                    ;info   516, 381
3860 017d 084a          movf    address_middle,w
3861 017e 0086          movwf   memory_port
3862                    ; line_number = 517
3863                    ;  adrm := _true
3864                    ;info   517, 383
3865 017f 1487          bsf     adrm___byte, adrm___bit
3866                    ; line_number = 518
3867                    ;  adrm := _false
3868                    ;info   518, 384
3869 0180 1087          bcf     adrm___byte, adrm___bit
3870                    ; line_number = 519
3871                    ;  memory_port := address_low
3872                    ;info   519, 385
3873 0181 0849          movf    address_low,w
3874 0182 0086          movwf   memory_port
3875                    ; line_number = 520
3876                    ;  adrl := _true
3877                    ;info   520, 387
3878 0183 1407          bsf     adrl___byte, adrl___bit
3879                    ; line_number = 521
3880                    ;  adrl := _false
3881                    ;info   521, 388
3882 0184 1007          bcf     adrl___byte, adrl___bit
3883            
3884                    ; # Read the data byte:
3885                    ; line_number = 524
3886                    ;  memory_tris := 0xff
3887                    ;info   524, 389
3888 0185 30ff          movlw   255
3889 0186 1683          bsf     __rp0___byte, __rp0___bit
3890 0187 0086          movwf   memory_tris
3891                    ; line_number = 525
3892                    ;  oe := _false
3893                    ;info   525, 392
3894 0188 1283          bcf     __rp0___byte, __rp0___bit
3895 0189 1207          bcf     oe___byte, oe___bit
3896                    ; line_number = 526
3897                    ;  result := memory_port
3898                    ;info   526, 394
3899 018a 0806          movf    memory_port,w
3900 018b 00e6          movwf   fetch_byte__result
3901                    ; line_number = 527
3902                    ;  oe := _true
3903                    ;info   527, 396
3904 018c 1607          bsf     oe___byte, oe___bit
3905                    ; line_number = 528
3906                    ;  memory_tris := 0
3907                    ;info   528, 397
3908 018d 1683          bsf     __rp0___byte, __rp0___bit
3909 018e 0186          clrf    memory_tris
3910 018f 29b3          goto    fetch_byte__20
3911                    ; line_number = 529
3912                    ; case 4
3913   0190 :   fetch_byte__7:
3914                    ; #: 1110 0100 (RAM Get):
3915                    ; line_number = 531
3916                    ;  result := 0
3917                    ;info   531, 400
3918 0190 01e6          clrf    fetch_byte__result
3919                    ; line_number = 532
3920                    ;  respond := _false
3921                    ;info   532, 401
3922 0191 11ef          bcf     fetch_byte__respond___byte, fetch_byte__respond___bit
3923 0192 29b3          goto    fetch_byte__20
3924                    ; line_number = 533
3925                    ; case 5
3926   0193 :   fetch_byte__8:
3927                    ; #: 1110 0101 (Memory In Low Get):
3928                    ; line_number = 535
3929                    ;  result := memory_in_low
3930                    ;info   535, 403
3931 0193 084e          movf    memory_in_low,w
3932 0194 00e6          movwf   fetch_byte__result
3933 0195 29b3          goto    fetch_byte__20
3934                    ; line_number = 536
3935                    ; case 6
3936   0196 :   fetch_byte__9:
3937                    ; #: 1110 0110 (Memory In Middle Get):
3938                    ; line_number = 538
3939                    ;  result := memory_in_middle
3940                    ;info   538, 406
3941 0196 084d          movf    memory_in_middle,w
3942 0197 00e6          movwf   fetch_byte__result
3943 0198 29b3          goto    fetch_byte__20
3944                    ; line_number = 539
3945                    ; case 7
3946   0199 :   fetch_byte__10:
3947                    ; #: 1110 0111 (Memory In High Get):
3948                    ; line_number = 541
3949                    ;  result := memory_in_high
3950                    ;info   541, 409
3951 0199 084c          movf    memory_in_high,w
3952 019a 00e6          movwf   fetch_byte__result
3953 019b 29b3          goto    fetch_byte__20
3954                    ; line_number = 542
3955                    ; case 8
3956   019c :   fetch_byte__11:
3957                    ; #: 1110 1000 (Memory Out Low Get):
3958                    ; line_number = 544
3959                    ;  result := memory_out_low
3960                    ;info   544, 412
3961 019c 0854          movf    memory_out_low,w
3962 019d 00e6          movwf   fetch_byte__result
3963 019e 29b3          goto    fetch_byte__20
3964                    ; line_number = 545
3965                    ; case 9
3966   019f :   fetch_byte__12:
3967                    ; #: 1110 1001 (Memory Out Middle Get):
3968                    ; line_number = 547
3969                    ;  result := memory_out_middle
3970                    ;info   547, 415
3971 019f 0853          movf    memory_out_middle,w
3972 01a0 00e6          movwf   fetch_byte__result
3973 01a1 29b3          goto    fetch_byte__20
3974                    ; line_number = 548
3975                    ; case 10
3976   01a2 :   fetch_byte__13:
3977                    ; #: 1110 1010 (Memory Out High Get):
3978                    ; line_number = 550
3979                    ;  result := memory_out_high
3980                    ;info   550, 418
3981 01a2 0852          movf    memory_out_high,w
3982 01a3 00e6          movwf   fetch_byte__result
3983 01a4 29b3          goto    fetch_byte__20
3984                    ; line_number = 551
3985                    ; case 11
3986   01a5 :   fetch_byte__14:
3987                    ; #: 1110 1011 (Checksum Low Get):
3988                    ; line_number = 553
3989                    ;  result := checksum_low
3990                    ;info   553, 421
3991 01a5 0857          movf    checksum_low,w
3992 01a6 00e6          movwf   fetch_byte__result
3993 01a7 29b3          goto    fetch_byte__20
3994                    ; line_number = 554
3995                    ; case 12
3996   01a8 :   fetch_byte__15:
3997                    ; #: 1110 1100 (Checksum High Get):
3998                    ; line_number = 556
3999                    ;  result := checksum_high
4000                    ;info   556, 424
4001 01a8 0858          movf    checksum_high,w
4002 01a9 00e6          movwf   fetch_byte__result
4003 01aa 29b3          goto    fetch_byte__20
4004                    ; line_number = 557
4005                    ; case 13
4006   01ab :   fetch_byte__16:
4007                    ; #: 1110 1101 (Chunk Current Get):
4008                    ; line_number = 559
4009                    ;  result := chunk_current
4010                    ;info   559, 427
4011 01ab 0855          movf    chunk_current,w
4012 01ac 00e6          movwf   fetch_byte__result
4013 01ad 29b3          goto    fetch_byte__20
4014                    ; line_number = 560
4015                    ; case 14
4016   01ae :   fetch_byte__17:
4017                    ; #: 1110 1110 (Chunk Enabled Get):
4018                    ; line_number = 562
4019                    ;  result := chunk_enabled
4020                    ;info   562, 430
4021 01ae 0856          movf    chunk_enabled,w
4022 01af 00e6          movwf   fetch_byte__result
4023 01b0 29b3          goto    fetch_byte__20
4024                    ; line_number = 563
4025                    ; case 15
4026   01b1 :   fetch_byte__18:
4027                    ; #: 1110 1111 (Sync):
4028                    ; line_number = 565
4029                    ;  result := 0xa5
4030                    ;info   565, 433
4031 01b1 30a5          movlw   165
4032 01b2 00e6          movwf   fetch_byte__result
4033   01b3 :   fetch_byte__20:
4034                    ; line_number = 498
4035                    ;  switch command & 0xf done
4036 01b3 29fc          goto    fetch_byte__38
4037                    ; line_number = 566
4038                    ; case 15
4039   01b4 :   fetch_byte__35:
4040                    ; # Immediate commands:
4041                    ; line_number = 568
4042                    ;  insert := _false
4043                    ;info   568, 436
4044 01b4 116f          bcf     fetch_byte__insert___byte, fetch_byte__insert___bit
4045                    ; line_number = 569
4046                    ;  respond := _true
4047                    ;info   569, 437
4048 01b5 15ef          bsf     fetch_byte__respond___byte, fetch_byte__respond___bit
4049                    ; line_number = 570
4050                    ;  switch command & 0xf start
4051                    ;info   570, 438
4052 01b6 3001          movlw   fetch_byte__30>>8
4053 01b7 008a          movwf   __pclath
4054 01b8 300f          movlw   15
4055 01b9 0559          andwf   command,w
4056 01ba 3ebc          addlw   fetch_byte__30
4057 01bb 0082          movwf   __pcl
4058                    ; page_group 16
4059   01bc :   fetch_byte__30:
4060 01bc 29cc          goto    fetch_byte__25
4061 01bd 29cc          goto    fetch_byte__25
4062 01be 29cc          goto    fetch_byte__25
4063 01bf 29cc          goto    fetch_byte__25
4064 01c0 29cc          goto    fetch_byte__25
4065 01c1 29cc          goto    fetch_byte__25
4066 01c2 29cc          goto    fetch_byte__25
4067 01c3 29cc          goto    fetch_byte__25
4068 01c4 29fa          goto    fetch_byte__29
4069 01c5 29fc          goto    fetch_byte__31
4070 01c6 29fc          goto    fetch_byte__31
4071 01c7 29fc          goto    fetch_byte__31
4072 01c8 29dc          goto    fetch_byte__26
4073 01c9 29e7          goto    fetch_byte__27
4074 01ca 29f2          goto    fetch_byte__28
4075 01cb 29fa          goto    fetch_byte__29
4076                    ; line_number = 571
4077                    ; case 0, 1, 2, 3, 4, 5, 6, 7
4078   01cc :   fetch_byte__25:
4079                    ; # 1111 0ccc (Increment chunk enabled counter):
4080                    ; line_number = 573
4081                    ;  if (chunk_enabled & 7) = (command & 7) start
4082                    ;info   573, 460
4083                    ; Left minus Right
4084 0000006b = fetch_byte__21 equ globals___0+75
4085 01cc 3007          movlw   7
4086 01cd 0556          andwf   chunk_enabled,w
4087 01ce 00eb          movwf   fetch_byte__21
4088 01cf 3007          movlw   7
4089 01d0 0559          andwf   command,w
4090 01d1 026b          subwf   fetch_byte__21,w
4091                    ; =>bit_code_emit@symbol(): sym=__z
4092                    ; No 1TEST: true.size=4 false.size=1
4093                    ; No 2TEST: true.size=4 false.size=1
4094                    ; 2GOTO: Single test with two GOTO's
4095 01d2 1d03          btfss   __z___byte, __z___bit
4096 01d3 29d9          goto    fetch_byte__22
4097                    ; line_number = 574
4098                    ; chunk_enabled := (chunk_enabled + 1) & 7
4099                    ;info   574, 468
4100 01d4 0a56          incf    chunk_enabled,w
4101 01d5 3907          andlw   7
4102 01d6 00d6          movwf   chunk_enabled
4103                    ; line_number = 575
4104                    ;  result := 0x81
4105                    ;info   575, 471
4106 01d7 3081          movlw   129
4107 01d8 29da          goto    fetch_byte__23
4108                    ; 2GOTO: Starting code 2
4109   01d9 :   fetch_byte__22:
4110                    ; line_number = 577
4111                    ; result := 0x80
4112                    ;info   577, 473
4113 01d9 3080          movlw   128
4114   01da :   fetch_byte__23:
4115                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
4116                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
4117                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
4118 01da 00e6          movwf   fetch_byte__result
4119                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
4120                    ; line_number = 573
4121                    ;  if (chunk_enabled & 7) = (command & 7) done
4122 01db 29fc          goto    fetch_byte__31
4123                    ; line_number = 578
4124                    ; case 12
4125   01dc :   fetch_byte__26:
4126                    ; # 1111 1100 (Commit Data Block):
4127                    ; line_number = 580
4128                    ;  memory_rollback_high := memory_in_high
4129                    ;info   580, 476
4130 01dc 084c          movf    memory_in_high,w
4131 01dd 00cf          movwf   memory_rollback_high
4132                    ; line_number = 581
4133                    ;  memory_rollback_middle := memory_in_middle
4134                    ;info   581, 478
4135 01de 084d          movf    memory_in_middle,w
4136 01df 00d0          movwf   memory_rollback_middle
4137                    ; line_number = 582
4138                    ;  memory_rollback_low := memory_in_low
4139                    ;info   582, 480
4140 01e0 084e          movf    memory_in_low,w
4141 01e1 00d1          movwf   memory_rollback_low
4142                    ; line_number = 583
4143                    ;  checksum_high := 0
4144                    ;info   583, 482
4145 01e2 01d8          clrf    checksum_high
4146                    ; line_number = 584
4147                    ;  checksum_low := 0
4148                    ;info   584, 483
4149 01e3 01d7          clrf    checksum_low
4150                    ; line_number = 585
4151                    ;  result := 0xa5
4152                    ;info   585, 484
4153 01e4 30a5          movlw   165
4154 01e5 00e6          movwf   fetch_byte__result
4155 01e6 29fc          goto    fetch_byte__31
4156                    ; line_number = 586
4157                    ; case 13
4158   01e7 :   fetch_byte__27:
4159                    ; # 1111 1101 (Rollback Data Block):
4160                    ; line_number = 588
4161                    ;  memory_in_high := memory_rollback_high
4162                    ;info   588, 487
4163 01e7 084f          movf    memory_rollback_high,w
4164 01e8 00cc          movwf   memory_in_high
4165                    ; line_number = 589
4166                    ;  memory_in_middle := memory_rollback_middle
4167                    ;info   589, 489
4168 01e9 0850          movf    memory_rollback_middle,w
4169 01ea 00cd          movwf   memory_in_middle
4170                    ; line_number = 590
4171                    ;  memory_in_low := memory_rollback_low
4172                    ;info   590, 491
4173 01eb 0851          movf    memory_rollback_low,w
4174 01ec 00ce          movwf   memory_in_low
4175                    ; line_number = 591
4176                    ;  checksum_high := 0
4177                    ;info   591, 493
4178 01ed 01d8          clrf    checksum_high
4179                    ; line_number = 592
4180                    ;  checksum_low := 0
4181                    ;info   592, 494
4182 01ee 01d7          clrf    checksum_low
4183                    ; line_number = 593
4184                    ;  result := 0xaa
4185                    ;info   593, 495
4186 01ef 30aa          movlw   170
4187 01f0 00e6          movwf   fetch_byte__result
4188 01f1 29fc          goto    fetch_byte__31
4189                    ; line_number = 594
4190                    ; case 14
4191   01f2 :   fetch_byte__28:
4192                    ; # 1111 1110 (Read Chunk Counters):
4193                    ; line_number = 596
4194                    ;  result := chunk_current << 3 | chunk_enabled
4195                    ;info   596, 498
4196 0000006b = fetch_byte__24 equ globals___0+75
4197 01f2 0d55          rlf     chunk_current,w
4198 01f3 00eb          movwf   fetch_byte__24
4199 01f4 0deb          rlf     fetch_byte__24,f
4200 01f5 0d6b          rlf     fetch_byte__24,w
4201 01f6 39f8          andlw   248
4202 01f7 0456          iorwf   chunk_enabled,w
4203 01f8 00e6          movwf   fetch_byte__result
4204 01f9 29fc          goto    fetch_byte__31
4205                    ; line_number = 597
4206                    ; case 8, 15
4207   01fa :   fetch_byte__29:
4208                    ; # 1111 1111 (End of Chunk):
4209                    ; line_number = 599
4210                    ;  insert := _true
4211                    ;info   599, 506
4212 01fa 156f          bsf     fetch_byte__insert___byte, fetch_byte__insert___bit
4213                    ; line_number = 600
4214                    ;  respond := _false
4215                    ;info   600, 507
4216 01fb 11ef          bcf     fetch_byte__respond___byte, fetch_byte__respond___bit
4217            
4218   01fc :   fetch_byte__31:
4219                    ; line_number = 570
4220                    ;  switch command & 0xf done
4221   01fc :   fetch_byte__38:
4222                    ; line_number = 483
4223                    ;  switch command >> 4 done
4224                    ; line_number = 602
4225                    ; if insert start
4226                    ;info   602, 508
4227                    ; =>bit_code_emit@symbol(): sym=fetch_byte__insert
4228                    ; No 1TEST: true.size=25 false.size=0
4229                    ; No 2TEST: true.size=25 false.size=0
4230                    ; 1GOTO: Single test with GOTO
4231 01fc 1283          bcf     __rp0___byte, __rp0___bit
4232 01fd 1d6f          btfss   fetch_byte__insert___byte, fetch_byte__insert___bit
4233 01fe 2a18          goto    fetch_byte__40
4234                    ; # Set the address first:
4235                    ; line_number = 604
4236                    ;  _porta := memory_in_high
4237                    ;info   604, 511
4238 01ff 084c          movf    memory_in_high,w
4239 0200 0085          movwf   _porta
4240                    ; line_number = 605
4241                    ;  a17 := _true
4242                    ;info   605, 513
4243 0201 1485          bsf     a17___byte, a17___bit
4244                    ; line_number = 606
4245                    ;  memory_port := memory_in_middle
4246                    ;info   606, 514
4247 0202 084d          movf    memory_in_middle,w
4248 0203 0086          movwf   memory_port
4249                    ; line_number = 607
4250                    ;  adrm := _true
4251                    ;info   607, 516
4252 0204 1487          bsf     adrm___byte, adrm___bit
4253                    ; line_number = 608
4254                    ;  adrm := _false
4255                    ;info   608, 517
4256 0205 1087          bcf     adrm___byte, adrm___bit
4257                    ; line_number = 609
4258                    ;  memory_port := memory_in_low
4259                    ;info   609, 518
4260 0206 084e          movf    memory_in_low,w
4261 0207 0086          movwf   memory_port
4262                    ; line_number = 610
4263                    ;  adrl := _true
4264                    ;info   610, 520
4265 0208 1407          bsf     adrl___byte, adrl___bit
4266                    ; line_number = 611
4267                    ;  adrl := _false
4268                    ;info   611, 521
4269 0209 1007          bcf     adrl___byte, adrl___bit
4270            
4271                    ; # Transfer the byte from the UART to the memory chip:
4272                    ; line_number = 614
4273                    ;  memory_port := command
4274                    ;info   614, 522
4275 020a 0859          movf    command,w
4276 020b 0086          movwf   memory_port
4277                    ; line_number = 615
4278                    ;  we := _false
4279                    ;info   615, 524
4280 020c 1287          bcf     we___byte, we___bit
4281                    ; line_number = 616
4282                    ;  we := _true
4283                    ;info   616, 525
4284 020d 1687          bsf     we___byte, we___bit
4285            
4286                    ; # Increment the memory address:
4287                    ; line_number = 619
4288                    ;  memory_in_low := memory_in_low + 1
4289                    ;info   619, 526
4290 020e 0ace          incf    memory_in_low,f
4291                    ; line_number = 620
4292                    ;  if _z start
4293                    ;info   620, 527
4294                    ; =>bit_code_emit@symbol(): sym=_z
4295                    ; No 1TEST: true.size=3 false.size=0
4296                    ; No 2TEST: true.size=3 false.size=0
4297                    ; 1GOTO: Single test with GOTO
4298 020f 1d03          btfss   _z___byte, _z___bit
4299 0210 2a14          goto    fetch_byte__39
4300                    ; line_number = 621
4301                    ; memory_in_middle := memory_in_middle + 1
4302                    ;info   621, 529
4303 0211 0acd          incf    memory_in_middle,f
4304                    ; line_number = 622
4305                    ;  if _z start
4306                    ;info   622, 530
4307                    ; =>bit_code_emit@symbol(): sym=_z
4308                    ; 1TEST: Single test with code in skip slot
4309 0212 1903          btfsc   _z___byte, _z___bit
4310                    ; line_number = 623
4311                    ; memory_in_high := memory_in_high + 1
4312                    ;info   623, 531
4313 0213 0acc          incf    memory_in_high,f
4314            
4315                    ; Recombine size1 = 0 || size2 = 0
4316                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:XX=>XX)
4317                    ; line_number = 622
4318                    ;  if _z done
4319                    ; Recombine size1 = 0 || size2 = 0
4320   0214 :   fetch_byte__39:
4321                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:00=>00)
4322                    ; line_number = 620
4323                    ;  if _z done
4324                    ; # Increment the chucksum:
4325                    ; line_number = 626
4326                    ;  checksum_low := checksum_low + command
4327                    ;info   626, 532
4328 0214 0859          movf    command,w
4329 0215 07d7          addwf   checksum_low,f
4330                    ; line_number = 627
4331                    ;  if _c start
4332                    ;info   627, 534
4333                    ; =>bit_code_emit@symbol(): sym=_c
4334                    ; 1TEST: Single test with code in skip slot
4335 0216 1803          btfsc   _c___byte, _c___bit
4336                    ; line_number = 628
4337                    ; checksum_high := checksum_high + 1
4338                    ;info   628, 535
4339 0217 0ad8          incf    checksum_high,f
4340            
4341                    ; Recombine size1 = 0 || size2 = 0
4342                    ; <=bit_code_emit@symbol; sym=_c (data:00=>00 code:00=>00)
4343                    ; line_number = 627
4344                    ;  if _c done
4345                    ; Recombine size1 = 0 || size2 = 0
4346   0218 :   fetch_byte__40:
4347                    ; <=bit_code_emit@symbol; sym=fetch_byte__insert (data:00=>00 code:00=>00)
4348                    ; line_number = 602
4349                    ; if insert done
4350                    ; line_number = 630
4351                    ; if respond	   start
4352                    ;info   630, 536
4353                    ; =>bit_code_emit@symbol(): sym=fetch_byte__respond
4354                    ; No 1TEST: true.size=2 false.size=0
4355                    ; No 2TEST: true.size=2 false.size=0
4356                    ; 1GOTO: Single test with GOTO
4357 0218 1def          btfss   fetch_byte__respond___byte, fetch_byte__respond___bit
4358 0219 2a1c          goto    fetch_byte__41
4359                    ; line_number = 631
4360                    ; call _uart_byte_put(result)
4361                    ;info   631, 538
4362 021a 0866          movf    fetch_byte__result,w
4363 021b 2249          call    _uart_byte_put
4364            
4365            
4366                    ; Recombine size1 = 0 || size2 = 0
4367   021c :   fetch_byte__41:
4368                    ; <=bit_code_emit@symbol; sym=fetch_byte__respond (data:00=>00 code:00=>00)
4369                    ; line_number = 630
4370                    ; if respond	   done
4371                    ; delay after procedure statements=non-uniform
4372                    ; Implied return
4373 021c 3400          retlw   0
4374            
4375            
4376            
4377            
4378                    ; #procedure xmain
4379                    ; #    arguments_none
4380                    ; #    returns_nothing
4381                    ; #
4382                    ; #    local index byte
4383                    ; #    local size byte
4384                    ; #
4385                    ; #    call initialize(spbrg_19200)
4386                    ; #
4387                    ; #    call _uart_crlf_put()
4388                    ; #    call _uart_byte_put('D')
4389                    ; #    call _uart_byte_put('e')
4390                    ; #    call _uart_byte_put('b')
4391                    ; #    call _uart_byte_put('u')
4392                    ; #    call _uart_byte_put('g')
4393                    ; #    call _uart_crlf_put()
4394                    ; #
4395                    ; #    # Initialize step and direction:
4396                    ; #    a_step := 0
4397                    ; #    a_dir := 0
4398                    ; #    x_step := 0
4399                    ; #    x_dir := 0
4400                    ; #    y_step := 0
4401                    ; #    y_dir := 0
4402                    ; #    z_step := 0
4403                    ; #    z_dir := 0
4404                    ; #
4405                    ; #    # Command loop:
4406                    ; #    index := 0
4407                    ; #    loop_forever
4408                    ; #	command := _uart_byte_get()
4409                    ; #	if command = '\cr\'
4410                    ; #	    # End of line:
4411                    ; #	    call _uart_crlf_put()
4412                    ; #	    size := index
4413                    ; #	    index := 0
4414                    ; #	    if size != 0
4415                    ; #		loop_exactly size
4416                    ; #		    # Set high address byte:
4417                    ; #		    _porta := 0
4418                    ; #		    a17 := 1
4419                    ; #
4420                    ; #		    # Set middle address byte:
4421                    ; #		    memory_port := 0
4422                    ; #		    adrm := 1
4423                    ; #		    adrm := 0
4424                    ; #
4425                    ; #		    # Set low address byte:
4426                    ; #		    memory_port := index
4427                    ; #		    adrl := 1
4428                    ; #		    adrl := 0
4429                    ; #
4430                    ; #		    # Read the data byte:
4431                    ; #		    memory_tris := 0xff
4432                    ; #		    oe := 0
4433                    ; #		    command := memory_port
4434                    ; #		    oe := 1
4435                    ; #		    memory_tris := 0
4436                    ; #
4437                    ; #		    call _uart_byte_put(command)
4438                    ; #		    index := index + 1
4439                    ; #	    call _uart_crlf_put()
4440                    ; #	    index := 0
4441                    ; #	else
4442                    ; #	    # Enter character into buffer:
4443                    ; #	    call _uart_byte_put(command)
4444                    ; #
4445                    ; #	    # Set high address byte:
4446                    ; #	    _porta := 0
4447                    ; #	    a17 := 1
4448                    ; #
4449                    ; #	    # Set middle address byte:
4450                    ; #	    memory_port := 0
4451                    ; #	    adrm := 1
4452                    ; #	    adrm := 0
4453                    ; #
4454                    ; #	    # Set low address byte:
4455                    ; #	    memory_port := index
4456                    ; #	    adrl := 1
4457                    ; #	    adrl := 0
4458                    ; #
4459                    ; #	    # Write data:
4460                    ; #	    memory_port := command
4461                    ; #	    we := 0
4462                    ; #	    we := 1
4463                    ; #
4464                    ; #	    index := index + 1
4465            
4466            
4467                    ; Appending 7 delayed procedures to code bank 0
4468                    ; buffer = '_uart'
4469                    ; line_number = 7
4470                    ;info   7, 541
4471                    ; procedure _uart_byte_safe_get
4472   021d :   _uart_byte_safe_get:
4473                    ; arguments_none
4474                    ; line_number = 9
4475                    ;  returns byte
4476            
4477                    ; # This procedure will the next byte from UART.  If no byte
4478                    ; # received in a reasonable time, 0xfc is returned.
4479            
4480                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4481                    ; line_number = 14
4482                    ;  loop_exactly 255 start
4483                    ;info   14, 541
4484 0000006c = _uart_byte_safe_get__1 equ globals___0+76
4485 021d 30ff          movlw   255
4486 021e 00ec          movwf   _uart_byte_safe_get__1
4487   021f :   _uart_byte_safe_get__2:
4488                    ; line_number = 15
4489                    ; loop_exactly 255 start
4490                    ;info   15, 543
4491 0000006d = _uart_byte_safe_get__3 equ globals___0+77
4492 021f 30ff          movlw   255
4493 0220 00ed          movwf   _uart_byte_safe_get__3
4494   0221 :   _uart_byte_safe_get__4:
4495                    ; line_number = 16
4496                    ; if _rcif start
4497                    ;info   16, 545
4498                    ; =>bit_code_emit@symbol(): sym=_rcif
4499                    ; No 1TEST: true.size=2 false.size=0
4500                    ; No 2TEST: true.size=2 false.size=0
4501                    ; 1GOTO: Single test with GOTO
4502 0221 1e8c          btfss   _rcif___byte, _rcif___bit
4503 0222 2a25          goto    _uart_byte_safe_get__5
4504                    ; line_number = 17
4505                    ; return _rcreg start
4506                    ; line_number = 17
4507                    ;info   17, 547
4508 0223 081a          movf    _rcreg,w
4509 0224 0008          return  
4510                    ; line_number = 17
4511                    ; return _rcreg done
4512                    ; Recombine size1 = 0 || size2 = 0
4513   0225 :   _uart_byte_safe_get__5:
4514                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:00=>00)
4515                    ; line_number = 16
4516                    ; if _rcif done
4517                    ; line_number = 15
4518                    ; loop_exactly 255 wrap-up
4519 0225 0bed          decfsz  _uart_byte_safe_get__3,f
4520 0226 2a21          goto    _uart_byte_safe_get__4
4521                    ; line_number = 15
4522                    ; loop_exactly 255 done
4523                    ; line_number = 14
4524                    ;  loop_exactly 255 wrap-up
4525 0227 0bec          decfsz  _uart_byte_safe_get__1,f
4526 0228 2a1f          goto    _uart_byte_safe_get__2
4527                    ; line_number = 14
4528                    ;  loop_exactly 255 done
4529                    ; line_number = 18
4530                    ; return 0xfc start
4531                    ; line_number = 18
4532                    ;info   18, 553
4533 0229 34fc          retlw   252
4534                    ; line_number = 18
4535                    ; return 0xfc done
4536            
4537            
4538                    ; delay after procedure statements=non-uniform
4539            
4540            
4541            
4542            
4543                    ; line_number = 21
4544                    ;info   21, 554
4545                    ; procedure _uart_byte_get
4546   022a :   _uart_byte_get:
4547                    ; arguments_none
4548                    ; line_number = 23
4549                    ;  returns byte
4550            
4551                    ; # This procedure will return the next byte from the UART.
4552            
4553                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4554                    ; line_number = 27
4555                    ;  while !_rcif start
4556   022a :   _uart_byte_get__1:
4557                    ;info   27, 554
4558                    ; =>bit_code_emit@symbol(): sym=_rcif
4559                    ; 1TEST: Single test with code in skip slot
4560 022a 1e8c          btfss   _rcif___byte, _rcif___bit
4561                    ; line_number = 28
4562                    ; do_nothing
4563                    ;info   28, 555
4564 022b 2a2a          goto    _uart_byte_get__1
4565                    ; Recombine size1 = 0 || size2 = 0
4566                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:00=>00)
4567                    ; line_number = 27
4568                    ;  while !_rcif done
4569                    ; line_number = 29
4570                    ; return _rcreg start
4571                    ; line_number = 29
4572                    ;info   29, 556
4573 022c 081a          movf    _rcreg,w
4574 022d 0008          return  
4575                    ; line_number = 29
4576                    ; return _rcreg done
4577            
4578            
4579                    ; delay after procedure statements=non-uniform
4580            
4581            
4582            
4583            
4584                    ; line_number = 32
4585                    ;info   32, 558
4586                    ; procedure _uart_hex_put
4587   022e :   _uart_hex_put:
4588                    ; Last argument is sitting in W; save into argument variable
4589 022e 00a0          movwf   _uart_hex_put__value
4590                    ; delay=4294967295
4591                    ; line_number = 33
4592                    ; argument value byte
4593 00000020 = _uart_hex_put__value equ globals___0
4594                    ; line_number = 34
4595                    ;  returns_nothing
4596            
4597                    ; # This procedure will output {value} to the UART as a 2-digit
4598                    ; # hexadecimal number.
4599            
4600                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4601                    ; line_number = 39
4602                    ;  call _uart_nibble_put(value >> 4)
4603                    ;info   39, 559
4604 0000006e = _uart_hex_put__1 equ globals___0+78
4605 022f 0e20          swapf   _uart_hex_put__value,w
4606 0230 390f          andlw   15
4607 0231 2236          call    _uart_nibble_put
4608                    ; line_number = 40
4609                    ;  call _uart_nibble_put(value & 0xf)
4610                    ;info   40, 562
4611 0232 300f          movlw   15
4612 0233 0520          andwf   _uart_hex_put__value,w
4613 0234 2236          call    _uart_nibble_put
4614            
4615            
4616                    ; delay after procedure statements=non-uniform
4617                    ; Implied return
4618 0235 3400          retlw   0
4619            
4620            
4621            
4622            
4623                    ; line_number = 43
4624                    ;info   43, 566
4625                    ; procedure _uart_nibble_put
4626   0236 :   _uart_nibble_put:
4627                    ; Last argument is sitting in W; save into argument variable
4628 0236 00a1          movwf   _uart_nibble_put__nibble
4629                    ; delay=4294967295
4630                    ; line_number = 44
4631                    ; argument nibble byte
4632 00000021 = _uart_nibble_put__nibble equ globals___0+1
4633                    ; line_number = 45
4634                    ;  returns_nothing
4635            
4636                    ; # This procedure will output {value} to UART as a 1 digit
4637                    ; # hexadecimal number.
4638            
4639                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4640                    ; line_number = 50
4641                    ;  if nibble < 10 start
4642                    ;info   50, 567
4643 0237 300a          movlw   10
4644 0238 0221          subwf   _uart_nibble_put__nibble,w
4645                    ; =>bit_code_emit@symbol(): sym=__c
4646                    ; No 1TEST: true.size=1 false.size=1
4647                    ; 2TEST: two tests with code in both delay slots
4648 0239 1803          btfsc   __c___byte, __c___bit
4649                    ; line_number = 53
4650                    ; nibble := nibble - 10 + 'A'
4651                    ;info   53, 570
4652 023a 3037          movlw   55
4653 023b 1c03          btfss   __c___byte, __c___bit
4654                    ; line_number = 51
4655                    ; nibble := nibble + '0'
4656                    ;info   51, 572
4657 023c 3030          movlw   48
4658 023d 07a1          addwf   _uart_nibble_put__nibble,f
4659                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:00=>00)
4660                    ; line_number = 50
4661                    ;  if nibble < 10 done
4662                    ; line_number = 54
4663                    ; call _uart_byte_put(nibble)
4664                    ;info   54, 574
4665 023e 0821          movf    _uart_nibble_put__nibble,w
4666 023f 2249          call    _uart_byte_put
4667            
4668            
4669                    ; delay after procedure statements=non-uniform
4670                    ; Implied return
4671 0240 3400          retlw   0
4672            
4673            
4674            
4675            
4676                    ; line_number = 57
4677                    ;info   57, 577
4678                    ; procedure _uart_space_put
4679   0241 :   _uart_space_put:
4680                    ; arguments_none
4681                    ; line_number = 59
4682                    ;  returns_nothing
4683            
4684                    ; # This procedure will output a space to the UART.
4685            
4686                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4687                    ; line_number = 63
4688                    ;  call _uart_byte_put(' ')
4689                    ;info   63, 577
4690 0241 3020          movlw   32
4691 0242 2249          call    _uart_byte_put
4692            
4693            
4694                    ; delay after procedure statements=non-uniform
4695                    ; Implied return
4696 0243 3400          retlw   0
4697            
4698            
4699            
4700            
4701                    ; line_number = 66
4702                    ;info   66, 580
4703                    ; procedure _uart_crlf_put
4704   0244 :   _uart_crlf_put:
4705                    ; arguments_none
4706                    ; line_number = 68
4707                    ;  returns_nothing
4708            
4709                    ; # This procedure will output a carriage return line feed sequecne to
4710                    ; # the UART.
4711            
4712                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4713                    ; line_number = 73
4714                    ;  call _uart_byte_put('\cr\')
4715                    ;info   73, 580
4716 0244 300d          movlw   13
4717 0245 2249          call    _uart_byte_put
4718                    ; line_number = 74
4719                    ;  call _uart_byte_put('\lf\')
4720                    ;info   74, 582
4721 0246 300a          movlw   10
4722 0247 2249          call    _uart_byte_put
4723            
4724            
4725                    ; delay after procedure statements=non-uniform
4726                    ; Implied return
4727 0248 3400          retlw   0
4728            
4729            
4730            
4731            
4732                    ; line_number = 77
4733                    ;info   77, 585
4734                    ; procedure _uart_byte_put
4735   0249 :   _uart_byte_put:
4736                    ; Last argument is sitting in W; save into argument variable
4737 0249 00a2          movwf   _uart_byte_put__byte
4738                    ; delay=4294967295
4739                    ; line_number = 78
4740                    ; argument byte byte
4741 00000022 = _uart_byte_put__byte equ globals___0+2
4742                    ; line_number = 79
4743                    ;  returns_nothing
4744            
4745                    ; # This procedure will send {byte} out using to the UART.
4746            
4747                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4748                    ; line_number = 83
4749                    ;  while !_txif start
4750   024a :   _uart_byte_put__1:
4751                    ;info   83, 586
4752                    ; =>bit_code_emit@symbol(): sym=_txif
4753                    ; 1TEST: Single test with code in skip slot
4754 024a 1e0c          btfss   _txif___byte, _txif___bit
4755                    ; line_number = 84
4756                    ; do_nothing
4757                    ;info   84, 587
4758 024b 2a4a          goto    _uart_byte_put__1
4759                    ; Recombine size1 = 0 || size2 = 0
4760                    ; <=bit_code_emit@symbol; sym=_txif (data:00=>00 code:00=>00)
4761                    ; line_number = 83
4762                    ;  while !_txif done
4763                    ; line_number = 85
4764                    ; _txreg := byte
4765                    ;info   85, 588
4766 024c 0822          movf    _uart_byte_put__byte,w
4767 024d 0099          movwf   _txreg
4768            
4769            
4770                    ; delay after procedure statements=non-uniform
4771                    ; Implied return
4772 024e 3400          retlw   0
4773            
4774            
4775            
4776            
4777                    ; Code bank 1; Start address: 2048; End address: 4095
4778   0800 :           org     2048
4779                    ; Code bank 2; Start address: 4096; End address: 6143
4780   1000 :           org     4096
4781                    ; Code bank 3; Start address: 6144; End address: 8191
4782   1800 :           org     6144
4783                    ; Configuration bits
4784                    ; address = 0x2007, fill = 0x600
4785                    ; cp = off (0x2000)
4786                    ; cpmx = rc1 (0x1000)
4787                    ; debug = off (0x800)
4788                    ; borv = borv00 (0x0)
4789                    ; boren = off (0x0)
4790                    ; mclre = off (0x0)
4791                    ; pwrten = off (0x8)
4792                    ; wdten = off (0x0)
4793                    ; fosc = hs (0x2)
4794                    ; 15882 = 0x3e0a
4795                    ; 8199 = 0x2007
4796   3e0a =           __config 8199, 15882
4797                    ; Configuration bits
4798                    ; address = 0x2008, fill = 0x33bc
4799                    ; borsen = off (0x0)
4800                    ; ieso = off (0x2)
4801                    ; fcmen = off (0x0)
4802                    ; 13246 = 0x33be
4803                    ; 8200 = 0x2008
4804   33be =           __config 8200, 13246
4805                    ; Define start addresses for data regions
4806                    ; Region="shared___globals" Address=112" Size=16 Bytes=3 Bits=0 Available=13
4807                    ; Region="globals___0" Address=32" Size=80 Bytes=79 Bits=4 Available=0
4808                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
4809                    ; Region="globals___2" Address=272" Size=96 Bytes=0 Bits=0 Available=96
4810                    ; Region="globals___3" Address=400" Size=112 Bytes=0 Bits=0 Available=112
4811                    end
