1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 2047
3      0000 :           org     0
4               
5                       ; Define start addresses for data regions
6    00000070 = shared___globals equ 112
7    00000020 = globals___0 equ 32
8    000000a0 = globals___1 equ 160
9    00000120 = globals___2 equ 288
10   00000000 = __indf equ 0
11   00000002 = __pcl equ 2
12   00000003 = __status equ 3
13   00000004 = __fsr equ 4
14   00000003 = __c___byte equ 3
15   00000000 = __c___bit equ 0
16   00000003 = __z___byte equ 3
17   00000002 = __z___bit equ 2
18   00000003 = __rp0___byte equ 3
19   00000005 = __rp0___bit equ 5
20   00000003 = __rp1___byte equ 3
21   00000006 = __rp1___bit equ 6
22   00000003 = __irp___byte equ 3
23   00000007 = __irp___bit equ 7
24   0000000a = __pclath equ 10
25   0000000a = __cb0___byte equ 10
26   00000003 = __cb0___bit equ 3
27   0000000a = __cb1___byte equ 10
28   00000004 = __cb1___bit equ 4
29              
30                      ; # Copyright (c) 2005-2006 by Wayne C. Gramlich
31                      ; # All rights reserved.
32              
33                      ; buffer = 'host'
34                      ; line_number = 6
35                      ; library _pic16f688 entered
36              
37                      ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
38                      ; # All rights reserved.
39              
40                      ; buffer = '_pic16f688'
41                      ; line_number = 6
42                      ; processor pic16f688
43                      ; line_number = 7
44                      ; configure_address 0x2007
45                      ; line_number = 8
46                      ;  configure_fill 0x3000
47                      ; line_number = 9
48                      ;  configure_option fcmen: on = 0x800
49                      ; line_number = 10
50                      ;  configure_option fcmen: off = 0x000
51                      ; line_number = 11
52                      ;  configure_option ieso: on = 0x400
53                      ; line_number = 12
54                      ;  configure_option ieso: off = 0x000
55                      ; line_number = 13
56                      ;  configure_option boden: on = 0x300
57                      ; line_number = 14
58                      ;  configure_option boden: partial = 0x200
59                      ; line_number = 15
60                      ;  configure_option boden: sboden = 0x100
61                      ; line_number = 16
62                      ;  configure_option boden: off = 0x000
63                      ; line_number = 17
64                      ;  configure_option cpd: on = 0x00
65                      ; line_number = 18
66                      ;  configure_option cpd: off = 0x80
67                      ; line_number = 19
68                      ;  configure_option cp: on = 0x00
69                      ; line_number = 20
70                      ;  configure_option cp: off = 0x40
71                      ; line_number = 21
72                      ;  configure_option mclre: on = 0x20
73                      ; line_number = 22
74                      ;  configure_option mclre: off = 0x00
75                      ; line_number = 23
76                      ;  configure_option pwrte: on = 0x00
77                      ; line_number = 24
78                      ;  configure_option pwrte: off = 0x10
79                      ; line_number = 25
80                      ;  configure_option wdte: on = 8
81                      ; line_number = 26
82                      ;  configure_option wdte: off = 0
83                      ; line_number = 27
84                      ;  configure_option fosc: rc_clk = 7
85                      ; line_number = 28
86                      ;  configure_option fosc: rc_no_clk = 6
87                      ; line_number = 29
88                      ;  configure_option fosc: int_clk = 5
89                      ; line_number = 30
90                      ;  configure_option fosc: int_no_clk = 4
91                      ; line_number = 31
92                      ;  configure_option fosc: ec = 3
93                      ; line_number = 32
94                      ;  configure_option fosc: hs = 2
95                      ; line_number = 33
96                      ;  configure_option fosc: xt = 1
97                      ; line_number = 34
98                      ;  configure_option fosc: lp = 0
99              
100                     ; line_number = 36
101                     ;  code_bank 0x0 : 0x7ff
102                     ; line_number = 37
103                     ;  code_bank 0x800 : 0xfff
104                     ; line_number = 38
105                     ;  data_bank 0x0 : 0x7f
106                     ; line_number = 39
107                     ;  data_bank 0x80 : 0xff
108                     ; line_number = 40
109                     ;  data_bank 0x100 : 0x17f
110                     ; line_number = 41
111                     ;  data_bank 0x180 : 0x1ff
112             
113                     ; line_number = 43
114                     ;  global_region 0x20 : 0x6f
115                     ; line_number = 44
116                     ;  icd2_global_region 0x20 : 0x6f
117             
118                     ; line_number = 46
119                     ;  global_region 0xa0 : 0xef
120                     ; line_number = 47
121                     ;  icd2_global_region 0xa0 : 0xef
122             
123                     ; line_number = 49
124                     ;  global_region 0x120 : 0x16f
125                     ; line_number = 50
126                     ;  icd2_global_region 0x120 : 0x164
127             
128                     ; line_number = 52
129                     ;  shared_region 0x70 : 0x7f
130                     ; line_number = 53
131                     ;  icd2_shared_region 0x71 : 0x7f
132             
133                     ; line_number = 55
134                     ;  interrupts_possible
135                     ; line_number = 56
136                     ;  packages pdip=14, soic=14, tssop=14
137                     ; line_number = 57
138                     ;  pin vdd, power_supply
139                     ; line_number = 58
140                     ; pin_bindings pdip=1, soic=1, tssop=1
141                     ; line_number = 59
142                     ; pin ra5_in, ra5_nc, ra5_out, t1cki, osc1, clkin
143                     ; line_number = 60
144                     ; pin_bindings pdip=2, soic=2, tssop=2
145                     ; line_number = 61
146                     ;  bind_to _porta@5
147                     ; line_number = 62
148                     ;  or_if ra5_in _trisa 32
149                     ; line_number = 63
150                     ;  or_if ra5_nc _trisa 32
151                     ; line_number = 64
152                     ;  or_if ra5_out _trisa 0
153                     ; line_number = 65
154                     ;  or_if osc1 _trisa 32
155                     ; line_number = 66
156                     ; pin ra4_in, ra4_nc, ra4_out, t1g, osc2, an3, clkout
157                     ; line_number = 67
158                     ; pin_bindings pdip=3, soic=3, tssop=3
159                     ; line_number = 68
160                     ;  bind_to _porta@4
161                     ; line_number = 69
162                     ;  or_if ra4_in _trisa 16
163                     ; line_number = 70
164                     ;  or_if ra4_nc _trisa 16
165                     ; line_number = 71
166                     ;  or_if ra4_out _trisa 0
167                     ; line_number = 72
168                     ;  or_if an3 _trisa 16
169                     ; line_number = 73
170                     ;  or_if osc2 _trisa 16
171                     ; line_number = 74
172                     ;  or_if ra4_in _ansel 0
173                     ; line_number = 75
174                     ;  or_if ra4_out _ansel 0
175                     ; line_number = 76
176                     ;  or_if an3 _ansel 8
177                     ; line_number = 77
178                     ;  or_if ra4_in _adcon0 0
179                     ; line_number = 78
180                     ;  or_if ra4_out _adcon0 0
181                     ; line_number = 79
182                     ;  or_if an3 _adcon0 1
183                     ; line_number = 80
184                     ; pin ra3_in, ra3_nc, mclr, vpp
185                     ; line_number = 81
186                     ; pin_bindings pdip=4, soic=4, tssop=4
187                     ; line_number = 82
188                     ;  bind_to _porta@3
189                     ; line_number = 83
190                     ;  or_if ra3_in _trisa 8
191                     ; line_number = 84
192                     ;  or_if ra3_nc _trisa 8
193                     ; line_number = 85
194                     ; pin rc5_in, rc5_nc, rc5_out, rx, dt
195                     ; line_number = 86
196                     ; pin_bindings pdip=5, soic=5, tssop=5
197                     ; line_number = 87
198                     ;  bind_to _portc@5
199                     ; line_number = 88
200                     ;  or_if rc5_in _trisc 32
201                     ; line_number = 89
202                     ;  or_if rc5_nc _trisc 32
203                     ; line_number = 90
204                     ;  or_if rc5_out _trisc 0
205                     ; line_number = 91
206                     ;  or_if rx _trisc 32
207                     ; line_number = 92
208                     ; pin rc4_in, rc4_nc, rc4_out, c2out, tx, ck
209                     ; line_number = 93
210                     ; pin_bindings pdip=6, soic=6, tssop=6
211                     ; line_number = 94
212                     ;  bind_to _portc@4
213                     ; line_number = 95
214                     ;  or_if rc4_in _trisc 16
215                     ; line_number = 96
216                     ;  or_if rc4_nc _trisc 16
217                     ; line_number = 97
218                     ;  or_if rc4_out _trisc 0
219                     ; # The UART documentation says TX must be marked as in input:
220                     ; line_number = 99
221                     ;  or_if tx _trisc 16
222                     ; line_number = 100
223                     ; pin rc3_in, rc3_nc, rc3_out, an7
224                     ; line_number = 101
225                     ; pin_bindings pdip=7, soic=7, tssop=7
226                     ; line_number = 102
227                     ;  bind_to _portc@3
228                     ; line_number = 103
229                     ;  or_if rc3_in _trisc 8
230                     ; line_number = 104
231                     ;  or_if rc3_nc _trisc 8
232                     ; line_number = 105
233                     ;  or_if rc3_out _trisc 0
234                     ; line_number = 106
235                     ;  or_if an7 _trisc 8
236                     ; line_number = 107
237                     ;  or_if rc3_in _ansel 0
238                     ; line_number = 108
239                     ;  or_if rc3_out _ansel 0
240                     ; line_number = 109
241                     ;  or_if an7 _ansel 128
242                     ; line_number = 110
243                     ;  or_if rc3_in _adcon0 0
244                     ; line_number = 111
245                     ;  or_if rc3_out _adcon0 0
246                     ; line_number = 112
247                     ;  or_if an7 _adcon0 1
248                     ; line_number = 113
249                     ; pin rc2_in, rc2_nc, rc2_out, an6
250                     ; line_number = 114
251                     ; pin_bindings pdip=8, soic=8, tssop=8
252                     ; line_number = 115
253                     ;  bind_to _portc@2
254                     ; line_number = 116
255                     ;  or_if rc2_in _trisc 4
256                     ; line_number = 117
257                     ;  or_if rc2_nc _trisc 4
258                     ; line_number = 118
259                     ;  or_if rc2_out _trisc 0
260                     ; line_number = 119
261                     ;  or_if an6 _trisc 4
262                     ; line_number = 120
263                     ;  or_if rc2_in _ansel 0
264                     ; line_number = 121
265                     ;  or_if rc2_out _ansel 0
266                     ; line_number = 122
267                     ;  or_if an6 _ansel 64
268                     ; line_number = 123
269                     ;  or_if rc2_in _adcon0 0
270                     ; line_number = 124
271                     ;  or_if rc2_out _adcon0 0
272                     ; line_number = 125
273                     ;  or_if an6 _adcon0 1
274                     ; line_number = 126
275                     ; pin rc1_in, rc1_nc, rc1_out, an5, c2in_minus
276                     ; line_number = 127
277                     ; pin_bindings pdip=9, soic=9, tssop=9
278                     ; line_number = 128
279                     ;  bind_to _portc@1
280                     ; line_number = 129
281                     ;  or_if rc1_in _trisc 2
282                     ; line_number = 130
283                     ;  or_if rc1_nc _trisc 2
284                     ; line_number = 131
285                     ;  or_if rc1_out _trisc 0
286                     ; line_number = 132
287                     ;  or_if rc1_in _cmcon0 7
288                     ; line_number = 133
289                     ;  or_if rc1_out _cmcon0 7
290                     ; line_number = 134
291                     ;  or_if an5 _trisc 2
292                     ; line_number = 135
293                     ;  or_if rc1_in _ansel 0
294                     ; line_number = 136
295                     ;  or_if rc1_out _ansel 0
296                     ; line_number = 137
297                     ;  or_if an5 _ansel 32
298                     ; line_number = 138
299                     ;  or_if rc1_in _adcon0 0
300                     ; line_number = 139
301                     ;  or_if rc1_out _adcon0 0
302                     ; line_number = 140
303                     ;  or_if an5 _adcon0 1
304                     ; line_number = 141
305                     ; pin rc0_in, rc0_nc, rc0_out, an4, c2in_plus
306                     ; line_number = 142
307                     ; pin_bindings pdip=10, soic=10, tssop=10
308                     ; line_number = 143
309                     ;  bind_to _portc@0
310                     ; line_number = 144
311                     ;  or_if rc0_in _trisc 1
312                     ; line_number = 145
313                     ;  or_if rc0_nc _trisc 1
314                     ; line_number = 146
315                     ;  or_if rc0_out _trisc 0
316                     ; line_number = 147
317                     ;  or_if rc0_in _cmcon0 7
318                     ; line_number = 148
319                     ;  or_if rc0_out _cmcon0 7
320                     ; line_number = 149
321                     ;  or_if an4 _trisc 1
322                     ; line_number = 150
323                     ;  or_if rc0_in _ansel 0
324                     ; line_number = 151
325                     ;  or_if rc0_out _ansel 0
326                     ; line_number = 152
327                     ;  or_if an4 _ansel 16
328                     ; line_number = 153
329                     ;  or_if rc0_in _adcon0 0
330                     ; line_number = 154
331                     ;  or_if rc0_out _adcon0 0
332                     ; line_number = 155
333                     ;  or_if an4 _adcon0 1
334                     ; line_number = 156
335                     ; pin ra2_in, ra2_nc, ra2_out, an2, c1out, t0cki, int
336                     ; line_number = 157
337                     ; pin_bindings pdip=11, soic=11, tssop=11
338                     ; line_number = 158
339                     ;  bind_to _porta@2
340                     ; line_number = 159
341                     ;  or_if ra2_in _trisa 4
342                     ; line_number = 160
343                     ;  or_if ra2_nc _trisa 4
344                     ; line_number = 161
345                     ;  or_if ra2_out _trisa 0
346                     ; line_number = 162
347                     ;  or_if an2 _trisa 4
348                     ; line_number = 163
349                     ;  or_if ra2_in _ansel 0
350                     ; line_number = 164
351                     ;  or_if ra2_out _ansel 0
352                     ; line_number = 165
353                     ;  or_if an2 _ansel 4
354                     ; line_number = 166
355                     ;  or_if ra2_in _adcon0 0
356                     ; line_number = 167
357                     ;  or_if ra2_out _adcon0 0
358                     ; line_number = 168
359                     ;  or_if an2 _adcon0 1
360                     ; line_number = 169
361                     ; pin ra1_in, ra1_nc, ra1_out, an1, c1in_minus, vref, icspclk
362                     ; line_number = 170
363                     ; pin_bindings pdip=12, soic=12, tssop=12
364                     ; line_number = 171
365                     ;  bind_to _porta@1
366                     ; line_number = 172
367                     ;  or_if ra1_in _trisa 2
368                     ; line_number = 173
369                     ;  or_if ra1_nc _trisa 2
370                     ; line_number = 174
371                     ;  or_if ra1_out _trisa 0
372                     ; line_number = 175
373                     ;  or_if ra1_in _cmcon0 7
374                     ; line_number = 176
375                     ;  or_if ra1_out _cmcon0 7
376                     ; line_number = 177
377                     ;  or_if an1 _trisa 2
378                     ; line_number = 178
379                     ;  or_if vref _trisa 2
380                     ; line_number = 179
381                     ;  or_if ra1_in _ansel 0
382                     ; line_number = 180
383                     ;  or_if ra1_out _ansel 0
384                     ; line_number = 181
385                     ;  or_if an1 _ansel 2
386                     ; line_number = 182
387                     ;  or_if vref _ansel 2
388                     ; line_number = 183
389                     ;  or_if ra1_in _adcon0 0
390                     ; line_number = 184
391                     ;  or_if ra1_out _adcon0 0
392                     ; line_number = 185
393                     ;  or_if an1 _adcon0 1		# Turn on _addon
394                     ; line_number = 186
395                     ;  or_if vref _adcon0 1		# Turn on _addon
396                     ; line_number = 187
397                     ;  or_if vref _adcon0 64		# Turn of _vcfg
398                     ; line_number = 188
399                     ; pin ra0_in, ra0_nc, ra0_out, an0, c1in_plus, icspdat, ulpwu
400                     ; line_number = 189
401                     ; pin_bindings pdip=13, soic=13, tssop=13
402                     ; line_number = 190
403                     ;  bind_to _porta@0
404                     ; line_number = 191
405                     ;  or_if ra0_in _trisa 1
406                     ; line_number = 192
407                     ;  or_if ra0_nc _trisa 1
408                     ; line_number = 193
409                     ;  or_if ra0_out _trisa 0
410                     ; line_number = 194
411                     ;  or_if ra0_in _cmcon0 7
412                     ; line_number = 195
413                     ;  or_if ra0_out _cmcon0 7
414                     ; line_number = 196
415                     ;  or_if an0 _trisa 1
416                     ; line_number = 197
417                     ;  or_if ra0_in _ansel 0
418                     ; line_number = 198
419                     ;  or_if ra0_out _ansel 0
420                     ; line_number = 199
421                     ;  or_if an0 _ansel 1
422                     ; line_number = 200
423                     ;  or_if ra0_in _adcon0 0
424                     ; line_number = 201
425                     ;  or_if ra0_out _adcon0 0
426                     ; line_number = 202
427                     ;  or_if an0 _adcon0 1
428                     ; line_number = 203
429                     ; pin vss, ground
430                     ; line_number = 204
431                     ; pin_bindings pdip=14, soic=14, tssop=14
432             
433                     ; line_number = 206
434                     ; library _standard entered
435             
436                     ; # Copyright (c) 2006 by Wayne C. Gramlich
437                     ; # All rights reserved.
438             
439                     ; # Standard definition for uCL:
440             
441                     ; buffer = '_standard'
442                     ; line_number = 8
443                     ; constant _true = (1 = 1)
444  00000001 = _true equ 1
445                     ; line_number = 9
446                     ; constant _false = (0 != 0)
447  00000000 = _false equ 0
448             
449             
450                     ; buffer = '_pic16f688'
451                     ; line_number = 206
452                     ; library _standard exited
453             
454             
455                     ; # Register/bit bindings:
456             
457                     ; # Databank 0 (0x0 - 0x7f):
458             
459                     ; line_number = 217
460                     ; register _indf = 
461  00000000 = _indf equ 0
462             
463                     ; line_number = 219
464                     ; register _tmr0 = 
465  00000001 = _tmr0 equ 1
466             
467                     ; line_number = 221
468                     ; register _pcl = 
469  00000002 = _pcl equ 2
470             
471                     ; line_number = 223
472                     ; register _status = 
473  00000003 = _status equ 3
474                     ; line_number = 224
475                     ; bind _irp = _status@7
476  00000003 = _irp___byte equ _status
477  00000007 = _irp___bit equ 7
478                     ; line_number = 225
479                     ; bind _rp1 = _status@5
480  00000003 = _rp1___byte equ _status
481  00000005 = _rp1___bit equ 5
482                     ; line_number = 226
483                     ; bind _rp0 = _status@5
484  00000003 = _rp0___byte equ _status
485  00000005 = _rp0___bit equ 5
486                     ; line_number = 227
487                     ; bind _to = _status@4
488  00000003 = _to___byte equ _status
489  00000004 = _to___bit equ 4
490                     ; line_number = 228
491                     ; bind _pd = _status@3
492  00000003 = _pd___byte equ _status
493  00000003 = _pd___bit equ 3
494                     ; line_number = 229
495                     ; bind _z = _status@2
496  00000003 = _z___byte equ _status
497  00000002 = _z___bit equ 2
498                     ; line_number = 230
499                     ; bind _dc = _status@1
500  00000003 = _dc___byte equ _status
501  00000001 = _dc___bit equ 1
502                     ; line_number = 231
503                     ; bind _c = _status@0
504  00000003 = _c___byte equ _status
505  00000000 = _c___bit equ 0
506             
507                     ; line_number = 233
508                     ; register _fsr = 
509  00000004 = _fsr equ 4
510             
511                     ; line_number = 235
512                     ; register _porta = 
513  00000005 = _porta equ 5
514                     ; line_number = 236
515                     ; register _ra = 
516  00000005 = _ra equ 5
517                     ; line_number = 237
518                     ; bind _ra5 = _porta@5
519  00000005 = _ra5___byte equ _porta
520  00000005 = _ra5___bit equ 5
521                     ; line_number = 238
522                     ; bind _ra4 = _porta@4
523  00000005 = _ra4___byte equ _porta
524  00000004 = _ra4___bit equ 4
525                     ; line_number = 239
526                     ; bind _ra3 = _porta@3
527  00000005 = _ra3___byte equ _porta
528  00000003 = _ra3___bit equ 3
529                     ; line_number = 240
530                     ; bind _ra2 = _porta@2
531  00000005 = _ra2___byte equ _porta
532  00000002 = _ra2___bit equ 2
533                     ; line_number = 241
534                     ; bind _ra1 = _porta@1
535  00000005 = _ra1___byte equ _porta
536  00000001 = _ra1___bit equ 1
537                     ; line_number = 242
538                     ; bind _ra0 = _porta@0
539  00000005 = _ra0___byte equ _porta
540  00000000 = _ra0___bit equ 0
541             
542                     ; line_number = 244
543                     ; register _portc = 
544  00000007 = _portc equ 7
545                     ; line_number = 245
546                     ; register _rc = 
547  00000007 = _rc equ 7
548                     ; line_number = 246
549                     ; bind _rc5 = _portc@5
550  00000007 = _rc5___byte equ _portc
551  00000005 = _rc5___bit equ 5
552                     ; line_number = 247
553                     ; bind _rc4 = _portc@4
554  00000007 = _rc4___byte equ _portc
555  00000004 = _rc4___bit equ 4
556                     ; line_number = 248
557                     ; bind _rc3 = _portc@3
558  00000007 = _rc3___byte equ _portc
559  00000003 = _rc3___bit equ 3
560                     ; line_number = 249
561                     ; bind _rc2 = _portc@2
562  00000007 = _rc2___byte equ _portc
563  00000002 = _rc2___bit equ 2
564                     ; line_number = 250
565                     ; bind _rc1 = _portc@1
566  00000007 = _rc1___byte equ _portc
567  00000001 = _rc1___bit equ 1
568                     ; line_number = 251
569                     ; bind _rc0 = _portc@0
570  00000007 = _rc0___byte equ _portc
571  00000000 = _rc0___bit equ 0
572             
573                     ; line_number = 253
574                     ; register _pclath = 
575  0000000a = _pclath equ 10
576             
577                     ; line_number = 255
578                     ; register _intcon = 
579  0000000b = _intcon equ 11
580                     ; line_number = 256
581                     ; bind _gie = _intcon@7
582  0000000b = _gie___byte equ _intcon
583  00000007 = _gie___bit equ 7
584                     ; line_number = 257
585                     ; bind _peie = _intcon@6
586  0000000b = _peie___byte equ _intcon
587  00000006 = _peie___bit equ 6
588                     ; line_number = 258
589                     ; bind _t0ie = _intcon@5
590  0000000b = _t0ie___byte equ _intcon
591  00000005 = _t0ie___bit equ 5
592                     ; line_number = 259
593                     ; bind _inte = _intcon@4
594  0000000b = _inte___byte equ _intcon
595  00000004 = _inte___bit equ 4
596                     ; line_number = 260
597                     ; bind _raie = _intcon@3
598  0000000b = _raie___byte equ _intcon
599  00000003 = _raie___bit equ 3
600                     ; line_number = 261
601                     ; bind _t0if = _intcon@2
602  0000000b = _t0if___byte equ _intcon
603  00000002 = _t0if___bit equ 2
604                     ; line_number = 262
605                     ; bind _intf = _intcon@1
606  0000000b = _intf___byte equ _intcon
607  00000001 = _intf___bit equ 1
608                     ; line_number = 263
609                     ; bind _raif = _intcon@0
610  0000000b = _raif___byte equ _intcon
611  00000000 = _raif___bit equ 0
612             
613                     ; line_number = 265
614                     ; register _pir1 = 
615  0000000c = _pir1 equ 12
616                     ; line_number = 266
617                     ; bind _eeif = _pir1@7
618  0000000c = _eeif___byte equ _pir1
619  00000007 = _eeif___bit equ 7
620                     ; line_number = 267
621                     ; bind _adif = _pir1@6
622  0000000c = _adif___byte equ _pir1
623  00000006 = _adif___bit equ 6
624                     ; line_number = 268
625                     ; bind _rcif = _pir1@5
626  0000000c = _rcif___byte equ _pir1
627  00000005 = _rcif___bit equ 5
628                     ; line_number = 269
629                     ; bind _c2if = _pir1@4
630  0000000c = _c2if___byte equ _pir1
631  00000004 = _c2if___bit equ 4
632                     ; line_number = 270
633                     ; bind _c1if = _pir1@3
634  0000000c = _c1if___byte equ _pir1
635  00000003 = _c1if___bit equ 3
636                     ; line_number = 271
637                     ; bind _osfif = _pir1@2
638  0000000c = _osfif___byte equ _pir1
639  00000002 = _osfif___bit equ 2
640                     ; line_number = 272
641                     ; bind _txif = _pir1@1
642  0000000c = _txif___byte equ _pir1
643  00000001 = _txif___bit equ 1
644                     ; line_number = 273
645                     ; bind _tmr1if = _pir1@0
646  0000000c = _tmr1if___byte equ _pir1
647  00000000 = _tmr1if___bit equ 0
648             
649                     ; line_number = 275
650                     ; register _tmr1l = 
651  0000000e = _tmr1l equ 14
652             
653                     ; line_number = 277
654                     ; register _tmr1h = 
655  0000000f = _tmr1h equ 15
656             
657                     ; line_number = 279
658                     ; register _t1con = 
659  00000010 = _t1con equ 16
660                     ; line_number = 280
661                     ; bind t1ginv = _t1con@7
662  00000010 = t1ginv___byte equ _t1con
663  00000007 = t1ginv___bit equ 7
664                     ; line_number = 281
665                     ; bind _tmr1ge = _t1con@6
666  00000010 = _tmr1ge___byte equ _t1con
667  00000006 = _tmr1ge___bit equ 6
668                     ; line_number = 282
669                     ; bind _t1ckps1 = _t1con@5
670  00000010 = _t1ckps1___byte equ _t1con
671  00000005 = _t1ckps1___bit equ 5
672                     ; line_number = 283
673                     ; bind _t1ckps0 = _t1con@4
674  00000010 = _t1ckps0___byte equ _t1con
675  00000004 = _t1ckps0___bit equ 4
676                     ; line_number = 284
677                     ; bind _t1oscen = _t1con@3
678  00000010 = _t1oscen___byte equ _t1con
679  00000003 = _t1oscen___bit equ 3
680                     ; line_number = 285
681                     ; bind _t1sync = _t1con@2
682  00000010 = _t1sync___byte equ _t1con
683  00000002 = _t1sync___bit equ 2
684                     ; line_number = 286
685                     ; bind _tmr1cs = _t1con@1
686  00000010 = _tmr1cs___byte equ _t1con
687  00000001 = _tmr1cs___bit equ 1
688                     ; line_number = 287
689                     ; bind _tmr1on = _t1con@0
690  00000010 = _tmr1on___byte equ _t1con
691  00000000 = _tmr1on___bit equ 0
692             
693                     ; line_number = 289
694                     ; register _baudctl = 
695  00000011 = _baudctl equ 17
696                     ; line_number = 290
697                     ; bind _abdovf = _baudctl@7
698  00000011 = _abdovf___byte equ _baudctl
699  00000007 = _abdovf___bit equ 7
700                     ; line_number = 291
701                     ; bind _rcidl = _baudctl@6
702  00000011 = _rcidl___byte equ _baudctl
703  00000006 = _rcidl___bit equ 6
704                     ; line_number = 292
705                     ; bind _sckp = _baudctl@4
706  00000011 = _sckp___byte equ _baudctl
707  00000004 = _sckp___bit equ 4
708                     ; line_number = 293
709                     ; bind _brg16 = _baudctl@3
710  00000011 = _brg16___byte equ _baudctl
711  00000003 = _brg16___bit equ 3
712                     ; line_number = 294
713                     ; bind _wue = _baudctl@1
714  00000011 = _wue___byte equ _baudctl
715  00000001 = _wue___bit equ 1
716                     ; line_number = 295
717                     ; bind _abden = _baudctl@0
718  00000011 = _abden___byte equ _baudctl
719  00000000 = _abden___bit equ 0
720             
721                     ; line_number = 297
722                     ; register _spbrgh = 
723  00000012 = _spbrgh equ 18
724             
725                     ; line_number = 299
726                     ; register _spbrg = 
727  00000013 = _spbrg equ 19
728             
729                     ; line_number = 301
730                     ; register _rcreg = 
731  00000014 = _rcreg equ 20
732             
733                     ; line_number = 303
734                     ; register _txreg = 
735  00000015 = _txreg equ 21
736             
737                     ; line_number = 305
738                     ; register _txsta = 
739  00000016 = _txsta equ 22
740                     ; line_number = 306
741                     ; bind _csrc = _txsta@7
742  00000016 = _csrc___byte equ _txsta
743  00000007 = _csrc___bit equ 7
744                     ; line_number = 307
745                     ; bind _tx9 = _txsta@6
746  00000016 = _tx9___byte equ _txsta
747  00000006 = _tx9___bit equ 6
748                     ; line_number = 308
749                     ; bind _txen = _txsta@5
750  00000016 = _txen___byte equ _txsta
751  00000005 = _txen___bit equ 5
752                     ; line_number = 309
753                     ; bind _sync = _txsta@4
754  00000016 = _sync___byte equ _txsta
755  00000004 = _sync___bit equ 4
756                     ; line_number = 310
757                     ; bind _sendb = _txsta@3
758  00000016 = _sendb___byte equ _txsta
759  00000003 = _sendb___bit equ 3
760                     ; line_number = 311
761                     ; bind _brgh = _txsta@2
762  00000016 = _brgh___byte equ _txsta
763  00000002 = _brgh___bit equ 2
764                     ; line_number = 312
765                     ; bind _trmt = _txsta@1
766  00000016 = _trmt___byte equ _txsta
767  00000001 = _trmt___bit equ 1
768                     ; line_number = 313
769                     ; bind _tx9d = _txsta@0
770  00000016 = _tx9d___byte equ _txsta
771  00000000 = _tx9d___bit equ 0
772             
773                     ; line_number = 315
774                     ; register _rcsta = 
775  00000017 = _rcsta equ 23
776                     ; line_number = 316
777                     ; bind _spen = _rcsta@7
778  00000017 = _spen___byte equ _rcsta
779  00000007 = _spen___bit equ 7
780                     ; line_number = 317
781                     ; bind _rx9 = _rcsta@6
782  00000017 = _rx9___byte equ _rcsta
783  00000006 = _rx9___bit equ 6
784                     ; line_number = 318
785                     ; bind _sren = _rcsta@5
786  00000017 = _sren___byte equ _rcsta
787  00000005 = _sren___bit equ 5
788                     ; line_number = 319
789                     ; bind _cren = _rcsta@4
790  00000017 = _cren___byte equ _rcsta
791  00000004 = _cren___bit equ 4
792                     ; line_number = 320
793                     ; bind _adden = _rcsta@3
794  00000017 = _adden___byte equ _rcsta
795  00000003 = _adden___bit equ 3
796                     ; line_number = 321
797                     ; bind _ferr = _rcsta@2
798  00000017 = _ferr___byte equ _rcsta
799  00000002 = _ferr___bit equ 2
800                     ; line_number = 322
801                     ; bind _oerr = _rcsta@1
802  00000017 = _oerr___byte equ _rcsta
803  00000001 = _oerr___bit equ 1
804                     ; line_number = 323
805                     ; bind _rx9d = _rcsta@0
806  00000017 = _rx9d___byte equ _rcsta
807  00000000 = _rx9d___bit equ 0
808             
809                     ; line_number = 325
810                     ; register _wdtcon = 
811  00000018 = _wdtcon equ 24
812                     ; line_number = 326
813                     ; bind _wdtps3 = _wdtcon@4
814  00000018 = _wdtps3___byte equ _wdtcon
815  00000004 = _wdtps3___bit equ 4
816                     ; line_number = 327
817                     ; bind _wdtps2 = _wdtcon@3
818  00000018 = _wdtps2___byte equ _wdtcon
819  00000003 = _wdtps2___bit equ 3
820                     ; line_number = 328
821                     ; bind _wdtps1 = _wdtcon@2
822  00000018 = _wdtps1___byte equ _wdtcon
823  00000002 = _wdtps1___bit equ 2
824                     ; line_number = 329
825                     ; bind _wdtps0 = _wdtcon@1
826  00000018 = _wdtps0___byte equ _wdtcon
827  00000001 = _wdtps0___bit equ 1
828                     ; line_number = 330
829                     ; bind _swdten = _wdtcon@0
830  00000018 = _swdten___byte equ _wdtcon
831  00000000 = _swdten___bit equ 0
832             
833                     ; line_number = 332
834                     ; register _cmcon0 = 
835  00000019 = _cmcon0 equ 25
836                     ; line_number = 333
837                     ; bind _c1out = _cmcon0@7
838  00000019 = _c1out___byte equ _cmcon0
839  00000007 = _c1out___bit equ 7
840                     ; line_number = 334
841                     ; bind _c2out = _cmcon0@6
842  00000019 = _c2out___byte equ _cmcon0
843  00000006 = _c2out___bit equ 6
844                     ; line_number = 335
845                     ; bind _c1inv = _cmcon0@5
846  00000019 = _c1inv___byte equ _cmcon0
847  00000005 = _c1inv___bit equ 5
848                     ; line_number = 336
849                     ; bind _c2inv = _cmcon0@4
850  00000019 = _c2inv___byte equ _cmcon0
851  00000004 = _c2inv___bit equ 4
852                     ; line_number = 337
853                     ; bind _cis = _cmcon0@3
854  00000019 = _cis___byte equ _cmcon0
855  00000003 = _cis___bit equ 3
856                     ; line_number = 338
857                     ; bind _cm2 = _cmcon0@2
858  00000019 = _cm2___byte equ _cmcon0
859  00000002 = _cm2___bit equ 2
860                     ; line_number = 339
861                     ; bind _cm1 = _cmcon0@1
862  00000019 = _cm1___byte equ _cmcon0
863  00000001 = _cm1___bit equ 1
864                     ; line_number = 340
865                     ; bind _cm0 = _cmcon0@0
866  00000019 = _cm0___byte equ _cmcon0
867  00000000 = _cm0___bit equ 0
868             
869                     ; line_number = 342
870                     ; register _cmcon1 = 
871  0000001a = _cmcon1 equ 26
872                     ; line_number = 343
873                     ; bind _t1gss = _cmcon1@0
874  0000001a = _t1gss___byte equ _cmcon1
875  00000000 = _t1gss___bit equ 0
876                     ; line_number = 344
877                     ; bind _c2sync = _cmcon1@1
878  0000001a = _c2sync___byte equ _cmcon1
879  00000001 = _c2sync___bit equ 1
880             
881                     ; line_number = 346
882                     ; register _adresh = 
883  0000001e = _adresh equ 30
884             
885                     ; line_number = 348
886                     ; register _adcon0 = 
887  0000001f = _adcon0 equ 31
888                     ; line_number = 349
889                     ; bind _adfm = _adcon0@7
890  0000001f = _adfm___byte equ _adcon0
891  00000007 = _adfm___bit equ 7
892                     ; line_number = 350
893                     ; bind _vcfg = _adcon0@6
894  0000001f = _vcfg___byte equ _adcon0
895  00000006 = _vcfg___bit equ 6
896                     ; line_number = 351
897                     ; bind _chs2 = _adcon0@4
898  0000001f = _chs2___byte equ _adcon0
899  00000004 = _chs2___bit equ 4
900                     ; line_number = 352
901                     ; bind _chs1 = _adcon0@3
902  0000001f = _chs1___byte equ _adcon0
903  00000003 = _chs1___bit equ 3
904                     ; line_number = 353
905                     ; bind _chs0 = _adcon0@2
906  0000001f = _chs0___byte equ _adcon0
907  00000002 = _chs0___bit equ 2
908                     ; line_number = 354
909                     ; bind _go = _adcon0@1
910  0000001f = _go___byte equ _adcon0
911  00000001 = _go___bit equ 1
912                     ; line_number = 355
913                     ; bind _adon = _adcon0@0
914  0000001f = _adon___byte equ _adcon0
915  00000000 = _adon___bit equ 0
916             
917                     ; # Data bank 1 (0x80-0xff):
918             
919                     ; line_number = 359
920                     ; register _option_reg = 
921  00000081 = _option_reg equ 129
922                     ; line_number = 360
923                     ; bind _rapu = _option_reg@7
924  00000081 = _rapu___byte equ _option_reg
925  00000007 = _rapu___bit equ 7
926                     ; line_number = 361
927                     ; bind _intedg = _option_reg@6
928  00000081 = _intedg___byte equ _option_reg
929  00000006 = _intedg___bit equ 6
930                     ; line_number = 362
931                     ; bind _t0cs = _option_reg@5
932  00000081 = _t0cs___byte equ _option_reg
933  00000005 = _t0cs___bit equ 5
934                     ; line_number = 363
935                     ; bind _t0se = _option_reg@4
936  00000081 = _t0se___byte equ _option_reg
937  00000004 = _t0se___bit equ 4
938                     ; line_number = 364
939                     ; bind _psa = _option_reg@3
940  00000081 = _psa___byte equ _option_reg
941  00000003 = _psa___bit equ 3
942                     ; line_number = 365
943                     ; bind _ps2 = _option_reg@2
944  00000081 = _ps2___byte equ _option_reg
945  00000002 = _ps2___bit equ 2
946                     ; line_number = 366
947                     ; bind _ps1 = _option_reg@1
948  00000081 = _ps1___byte equ _option_reg
949  00000001 = _ps1___bit equ 1
950                     ; line_number = 367
951                     ; bind _ps0 = _option_reg@0
952  00000081 = _ps0___byte equ _option_reg
953  00000000 = _ps0___bit equ 0
954             
955                     ; line_number = 369
956                     ; register _trisa = 
957  00000085 = _trisa equ 133
958                     ; line_number = 370
959                     ; bind _trisa5 = _trisa@5
960  00000085 = _trisa5___byte equ _trisa
961  00000005 = _trisa5___bit equ 5
962                     ; line_number = 371
963                     ; bind _trisa4 = _trisa@4
964  00000085 = _trisa4___byte equ _trisa
965  00000004 = _trisa4___bit equ 4
966                     ; line_number = 372
967                     ; bind _trisa3 = _trisa@3
968  00000085 = _trisa3___byte equ _trisa
969  00000003 = _trisa3___bit equ 3
970                     ; line_number = 373
971                     ; bind _trisa2 = _trisa@2
972  00000085 = _trisa2___byte equ _trisa
973  00000002 = _trisa2___bit equ 2
974                     ; line_number = 374
975                     ; bind _trisa1 = _trisa@1
976  00000085 = _trisa1___byte equ _trisa
977  00000001 = _trisa1___bit equ 1
978                     ; line_number = 375
979                     ; bind _trisa0 = _trisa@0
980  00000085 = _trisa0___byte equ _trisa
981  00000000 = _trisa0___bit equ 0
982             
983                     ; line_number = 377
984                     ; register _trisc = 
985  00000087 = _trisc equ 135
986                     ; line_number = 378
987                     ; bind _trisc5 = _trisc@5
988  00000087 = _trisc5___byte equ _trisc
989  00000005 = _trisc5___bit equ 5
990                     ; line_number = 379
991                     ; bind _trisc4 = _trisc@4
992  00000087 = _trisc4___byte equ _trisc
993  00000004 = _trisc4___bit equ 4
994                     ; line_number = 380
995                     ; bind _trisc3 = _trisc@3
996  00000087 = _trisc3___byte equ _trisc
997  00000003 = _trisc3___bit equ 3
998                     ; line_number = 381
999                     ; bind _trisc2 = _trisc@2
1000 00000087 = _trisc2___byte equ _trisc
1001 00000002 = _trisc2___bit equ 2
1002                    ; line_number = 382
1003                    ; bind _trisc1 = _trisc@1
1004 00000087 = _trisc1___byte equ _trisc
1005 00000001 = _trisc1___bit equ 1
1006                    ; line_number = 383
1007                    ; bind _trisc0 = _trisc@0
1008 00000087 = _trisc0___byte equ _trisc
1009 00000000 = _trisc0___bit equ 0
1010            
1011                    ; line_number = 385
1012                    ; register _pie1 = 
1013 0000008c = _pie1 equ 140
1014                    ; line_number = 386
1015                    ; bind _eeie = _pie1@7
1016 0000008c = _eeie___byte equ _pie1
1017 00000007 = _eeie___bit equ 7
1018                    ; line_number = 387
1019                    ; bind _adie = _pie1@6
1020 0000008c = _adie___byte equ _pie1
1021 00000006 = _adie___bit equ 6
1022                    ; line_number = 388
1023                    ; bind _rcie = _pie1@5
1024 0000008c = _rcie___byte equ _pie1
1025 00000005 = _rcie___bit equ 5
1026                    ; line_number = 389
1027                    ; bind _c2ie = _pie1@4
1028 0000008c = _c2ie___byte equ _pie1
1029 00000004 = _c2ie___bit equ 4
1030                    ; line_number = 390
1031                    ; bind _c1ie = _pie1@3
1032 0000008c = _c1ie___byte equ _pie1
1033 00000003 = _c1ie___bit equ 3
1034                    ; line_number = 391
1035                    ; bind _osfie = _pie1@2
1036 0000008c = _osfie___byte equ _pie1
1037 00000002 = _osfie___bit equ 2
1038                    ; line_number = 392
1039                    ; bind _txie = _pie1@1
1040 0000008c = _txie___byte equ _pie1
1041 00000001 = _txie___bit equ 1
1042                    ; line_number = 393
1043                    ; bind _tmr1ie = _pie1@0
1044 0000008c = _tmr1ie___byte equ _pie1
1045 00000000 = _tmr1ie___bit equ 0
1046            
1047                    ; line_number = 395
1048                    ; register _pcon = 
1049 0000008e = _pcon equ 142
1050                    ; line_number = 396
1051                    ; bind _ulpwue = _pcon@5
1052 0000008e = _ulpwue___byte equ _pcon
1053 00000005 = _ulpwue___bit equ 5
1054                    ; line_number = 397
1055                    ; bind _sboden = _pcon@4
1056 0000008e = _sboden___byte equ _pcon
1057 00000004 = _sboden___bit equ 4
1058                    ; line_number = 398
1059                    ; bind _por = _pcon@1
1060 0000008e = _por___byte equ _pcon
1061 00000001 = _por___bit equ 1
1062                    ; line_number = 399
1063                    ; bind _bod = _pcon@0
1064 0000008e = _bod___byte equ _pcon
1065 00000000 = _bod___bit equ 0
1066            
1067                    ; line_number = 401
1068                    ; register _osccon = 
1069 0000008f = _osccon equ 143
1070                    ; line_number = 402
1071                    ; bind _ircf2 = _osccon@6
1072 0000008f = _ircf2___byte equ _osccon
1073 00000006 = _ircf2___bit equ 6
1074                    ; line_number = 403
1075                    ; bind _ircf1 = _osccon@5
1076 0000008f = _ircf1___byte equ _osccon
1077 00000005 = _ircf1___bit equ 5
1078                    ; line_number = 404
1079                    ; bind _ircf0 = _osccon@4
1080 0000008f = _ircf0___byte equ _osccon
1081 00000004 = _ircf0___bit equ 4
1082                    ; line_number = 405
1083                    ; bind _osts = _osccon@3
1084 0000008f = _osts___byte equ _osccon
1085 00000003 = _osts___bit equ 3
1086                    ; line_number = 406
1087                    ; bind _hts = _osccon@2
1088 0000008f = _hts___byte equ _osccon
1089 00000002 = _hts___bit equ 2
1090                    ; line_number = 407
1091                    ; bind _lts = _osccon@3
1092 0000008f = _lts___byte equ _osccon
1093 00000003 = _lts___bit equ 3
1094                    ; line_number = 408
1095                    ; bind _scs = _osccon@2
1096 0000008f = _scs___byte equ _osccon
1097 00000002 = _scs___bit equ 2
1098            
1099                    ; line_number = 410
1100                    ; register _osctune = 
1101 00000090 = _osctune equ 144
1102                    ; line_number = 411
1103                    ; bind _tun4 = _osctune@4
1104 00000090 = _tun4___byte equ _osctune
1105 00000004 = _tun4___bit equ 4
1106                    ; line_number = 412
1107                    ; bind _tun3 = _osctune@3
1108 00000090 = _tun3___byte equ _osctune
1109 00000003 = _tun3___bit equ 3
1110                    ; line_number = 413
1111                    ; bind _tun2 = _osctune@2
1112 00000090 = _tun2___byte equ _osctune
1113 00000002 = _tun2___bit equ 2
1114                    ; line_number = 414
1115                    ; bind _tun1 = _osctune@1
1116 00000090 = _tun1___byte equ _osctune
1117 00000001 = _tun1___bit equ 1
1118                    ; line_number = 415
1119                    ; bind _tun0 = _osctune@0
1120 00000090 = _tun0___byte equ _osctune
1121 00000000 = _tun0___bit equ 0
1122                    ; line_number = 416
1123                    ; constant _osccal_lsb = 1
1124 00000001 = _osccal_lsb equ 1
1125            
1126                    ; line_number = 418
1127                    ; register _ansel = 
1128 00000091 = _ansel equ 145
1129                    ; line_number = 419
1130                    ; bind _ans7 = _ansel@7
1131 00000091 = _ans7___byte equ _ansel
1132 00000007 = _ans7___bit equ 7
1133                    ; line_number = 420
1134                    ; bind _ans6 = _ansel@6
1135 00000091 = _ans6___byte equ _ansel
1136 00000006 = _ans6___bit equ 6
1137                    ; line_number = 421
1138                    ; bind _ans5 = _ansel@5
1139 00000091 = _ans5___byte equ _ansel
1140 00000005 = _ans5___bit equ 5
1141                    ; line_number = 422
1142                    ; bind _ans4 = _ansel@4
1143 00000091 = _ans4___byte equ _ansel
1144 00000004 = _ans4___bit equ 4
1145                    ; line_number = 423
1146                    ; bind _ans3 = _ansel@3
1147 00000091 = _ans3___byte equ _ansel
1148 00000003 = _ans3___bit equ 3
1149                    ; line_number = 424
1150                    ; bind _ans2 = _ansel@2
1151 00000091 = _ans2___byte equ _ansel
1152 00000002 = _ans2___bit equ 2
1153                    ; line_number = 425
1154                    ; bind _ans1 = _ansel@1
1155 00000091 = _ans1___byte equ _ansel
1156 00000001 = _ans1___bit equ 1
1157                    ; line_number = 426
1158                    ; bind _ans0 = _ansel@0
1159 00000091 = _ans0___byte equ _ansel
1160 00000000 = _ans0___bit equ 0
1161            
1162                    ; line_number = 428
1163                    ; register _wpua = 
1164 00000095 = _wpua equ 149
1165                    ; line_number = 429
1166                    ; bind _wpua5 = _wpua@5
1167 00000095 = _wpua5___byte equ _wpua
1168 00000005 = _wpua5___bit equ 5
1169                    ; line_number = 430
1170                    ; bind _wpua4 = _wpua@4
1171 00000095 = _wpua4___byte equ _wpua
1172 00000004 = _wpua4___bit equ 4
1173                    ; line_number = 431
1174                    ; bind _wpua2 = _wpua@2
1175 00000095 = _wpua2___byte equ _wpua
1176 00000002 = _wpua2___bit equ 2
1177                    ; line_number = 432
1178                    ; bind _wpua1 = _wpua@1
1179 00000095 = _wpua1___byte equ _wpua
1180 00000001 = _wpua1___bit equ 1
1181                    ; line_number = 433
1182                    ; bind _wpua0 = _wpua@0
1183 00000095 = _wpua0___byte equ _wpua
1184 00000000 = _wpua0___bit equ 0
1185            
1186                    ; line_number = 435
1187                    ; register _ioca = 
1188 00000096 = _ioca equ 150
1189                    ; line_number = 436
1190                    ; bind _ioca5 = _ioca@5
1191 00000096 = _ioca5___byte equ _ioca
1192 00000005 = _ioca5___bit equ 5
1193                    ; line_number = 437
1194                    ; bind _ioca4 = _ioca@4
1195 00000096 = _ioca4___byte equ _ioca
1196 00000004 = _ioca4___bit equ 4
1197                    ; line_number = 438
1198                    ; bind _ioca3 = _ioca@3
1199 00000096 = _ioca3___byte equ _ioca
1200 00000003 = _ioca3___bit equ 3
1201                    ; line_number = 439
1202                    ; bind _ioca2 = _ioca@2
1203 00000096 = _ioca2___byte equ _ioca
1204 00000002 = _ioca2___bit equ 2
1205                    ; line_number = 440
1206                    ; bind _ioca1 = _ioca@1
1207 00000096 = _ioca1___byte equ _ioca
1208 00000001 = _ioca1___bit equ 1
1209                    ; line_number = 441
1210                    ; bind _ioca0 = _ioca@0
1211 00000096 = _ioca0___byte equ _ioca
1212 00000000 = _ioca0___bit equ 0
1213            
1214                    ; line_number = 443
1215                    ; register _eedath = 
1216 00000097 = _eedath equ 151
1217            
1218                    ; line_number = 445
1219                    ; register _eeadrh = 
1220 00000098 = _eeadrh equ 152
1221            
1222                    ; line_number = 447
1223                    ; register _vrcon = 
1224 00000099 = _vrcon equ 153
1225                    ; line_number = 448
1226                    ; bind _vren = _vrcon@7
1227 00000099 = _vren___byte equ _vrcon
1228 00000007 = _vren___bit equ 7
1229                    ; line_number = 449
1230                    ; bind _vrr = _vrcon@5
1231 00000099 = _vrr___byte equ _vrcon
1232 00000005 = _vrr___bit equ 5
1233                    ; line_number = 450
1234                    ; bind _vr3 = _vrcon@3
1235 00000099 = _vr3___byte equ _vrcon
1236 00000003 = _vr3___bit equ 3
1237                    ; line_number = 451
1238                    ; bind _vr2 = _vrcon@2
1239 00000099 = _vr2___byte equ _vrcon
1240 00000002 = _vr2___bit equ 2
1241                    ; line_number = 452
1242                    ; bind _vr1 = _vrcon@1
1243 00000099 = _vr1___byte equ _vrcon
1244 00000001 = _vr1___bit equ 1
1245                    ; line_number = 453
1246                    ; bind _vr0 = _vrcon@0
1247 00000099 = _vr0___byte equ _vrcon
1248 00000000 = _vr0___bit equ 0
1249            
1250                    ; line_number = 455
1251                    ; register _eedat = 
1252 0000009a = _eedat equ 154
1253                    ; line_number = 456
1254                    ; bind _eedat7 = _eedat@7
1255 0000009a = _eedat7___byte equ _eedat
1256 00000007 = _eedat7___bit equ 7
1257                    ; line_number = 457
1258                    ; bind _eedat6 = _eedat@6
1259 0000009a = _eedat6___byte equ _eedat
1260 00000006 = _eedat6___bit equ 6
1261                    ; line_number = 458
1262                    ; bind _eedat5 = _eedat@5
1263 0000009a = _eedat5___byte equ _eedat
1264 00000005 = _eedat5___bit equ 5
1265                    ; line_number = 459
1266                    ; bind _eedat4 = _eedat@4
1267 0000009a = _eedat4___byte equ _eedat
1268 00000004 = _eedat4___bit equ 4
1269                    ; line_number = 460
1270                    ; bind _eedat3 = _eedat@3
1271 0000009a = _eedat3___byte equ _eedat
1272 00000003 = _eedat3___bit equ 3
1273                    ; line_number = 461
1274                    ; bind _eedat2 = _eedat@2
1275 0000009a = _eedat2___byte equ _eedat
1276 00000002 = _eedat2___bit equ 2
1277                    ; line_number = 462
1278                    ; bind _eedat1 = _eedat@1
1279 0000009a = _eedat1___byte equ _eedat
1280 00000001 = _eedat1___bit equ 1
1281                    ; line_number = 463
1282                    ; bind _eedat0 = _eedat@0
1283 0000009a = _eedat0___byte equ _eedat
1284 00000000 = _eedat0___bit equ 0
1285            
1286                    ; line_number = 465
1287                    ; register _eeadr = 
1288 0000009b = _eeadr equ 155
1289                    ; line_number = 466
1290                    ; bind _eeadr7 = _eeadr@7
1291 0000009b = _eeadr7___byte equ _eeadr
1292 00000007 = _eeadr7___bit equ 7
1293                    ; line_number = 467
1294                    ; bind _eeadr6 = _eeadr@6
1295 0000009b = _eeadr6___byte equ _eeadr
1296 00000006 = _eeadr6___bit equ 6
1297                    ; line_number = 468
1298                    ; bind _eeadr5 = _eeadr@5
1299 0000009b = _eeadr5___byte equ _eeadr
1300 00000005 = _eeadr5___bit equ 5
1301                    ; line_number = 469
1302                    ; bind _eeadr4 = _eeadr@4
1303 0000009b = _eeadr4___byte equ _eeadr
1304 00000004 = _eeadr4___bit equ 4
1305                    ; line_number = 470
1306                    ; bind _eeadr3 = _eeadr@3
1307 0000009b = _eeadr3___byte equ _eeadr
1308 00000003 = _eeadr3___bit equ 3
1309                    ; line_number = 471
1310                    ; bind _eeadr2 = _eeadr@2
1311 0000009b = _eeadr2___byte equ _eeadr
1312 00000002 = _eeadr2___bit equ 2
1313                    ; line_number = 472
1314                    ; bind _eeadr1 = _eeadr@1
1315 0000009b = _eeadr1___byte equ _eeadr
1316 00000001 = _eeadr1___bit equ 1
1317                    ; line_number = 473
1318                    ; bind _eeadr0 = _eeadr@0
1319 0000009b = _eeadr0___byte equ _eeadr
1320 00000000 = _eeadr0___bit equ 0
1321            
1322                    ; line_number = 475
1323                    ; register _eecon1 = 
1324 0000009c = _eecon1 equ 156
1325                    ; line_number = 476
1326                    ; bind _eepgd = _eecon1@7
1327 0000009c = _eepgd___byte equ _eecon1
1328 00000007 = _eepgd___bit equ 7
1329                    ; line_number = 477
1330                    ; bind _wrerr = _eecon1@3
1331 0000009c = _wrerr___byte equ _eecon1
1332 00000003 = _wrerr___bit equ 3
1333                    ; line_number = 478
1334                    ; bind _wren = _eecon1@2
1335 0000009c = _wren___byte equ _eecon1
1336 00000002 = _wren___bit equ 2
1337                    ; line_number = 479
1338                    ; bind _wr = _eecon1@1
1339 0000009c = _wr___byte equ _eecon1
1340 00000001 = _wr___bit equ 1
1341                    ; line_number = 480
1342                    ; bind _rd = _eecon1@0
1343 0000009c = _rd___byte equ _eecon1
1344 00000000 = _rd___bit equ 0
1345            
1346                    ; line_number = 482
1347                    ; register _eecon2 = 
1348 0000009d = _eecon2 equ 157
1349            
1350                    ; line_number = 484
1351                    ; register _adresl = 
1352 0000009e = _adresl equ 158
1353            
1354                    ; line_number = 486
1355                    ; register _adcon1 = 
1356 0000009f = _adcon1 equ 159
1357                    ; line_number = 487
1358                    ; bind _adcs2 = _adcon1@6
1359 0000009f = _adcs2___byte equ _adcon1
1360 00000006 = _adcs2___bit equ 6
1361                    ; line_number = 488
1362                    ; bind _adcs1 = _adcon1@5
1363 0000009f = _adcs1___byte equ _adcon1
1364 00000005 = _adcs1___bit equ 5
1365                    ; line_number = 489
1366                    ; bind _adcs0 = _adcon1@4
1367 0000009f = _adcs0___byte equ _adcon1
1368 00000004 = _adcs0___bit equ 4
1369            
1370                    ; # Data Bank 2 (0x100 - 0x17f):
1371            
1372                    ; buffer = 'host'
1373                    ; line_number = 6
1374                    ; library _pic16f688 exited
1375                    ; #library clock16mhz
1376                    ; line_number = 8
1377                    ; library clock20mhz entered
1378                    ; # Copyright (c) 2004 by Wayne C. Gramlich
1379                    ; # All rights reserved.
1380            
1381                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1382                    ; # and {clocks_per_instruction}.
1383            
1384                    ; # Define processor constants:
1385                    ; buffer = 'clock20mhz'
1386                    ; line_number = 9
1387                    ; constant clock_rate = 20000000
1388 01312d00 = clock_rate equ 20000000
1389                    ; line_number = 10
1390                    ; constant clocks_per_instruction = 4
1391 00000004 = clocks_per_instruction equ 4
1392                    ; line_number = 11
1393                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1394 004c4b40 = instruction_rate equ 5000000
1395            
1396            
1397                    ; buffer = 'host'
1398                    ; line_number = 8
1399                    ; library clock20mhz exited
1400                    ; line_number = 9
1401                    ; library _uart entered
1402                    ; # Copyright (c) 2004 by Wayne C. Gramlich.
1403                    ; # All rights reserved.
1404            
1405                    ; # This library contains some procedures for accessing the UART.
1406            
1407                    ; Delaying code generation for procedure  _uart_byte_safe_get
1408                    ; Delaying code generation for procedure  _uart_byte_get
1409                    ; Delaying code generation for procedure  _uart_hex_put
1410                    ; Delaying code generation for procedure  _uart_nibble_put
1411                    ; Delaying code generation for procedure  _uart_space_put
1412                    ; Delaying code generation for procedure  _uart_crlf_put
1413                    ; Delaying code generation for procedure  _uart_byte_put
1414            
1415                    ; line_number = 9
1416                    ; library _uart exited
1417                    ; line_number = 10
1418                    ; constant _eusart_clock = clock_rate
1419 01312d00 = _eusart_clock equ 20000000
1420                    ; line_number = 11
1421                    ; constant _eusart_factor = 4
1422 00000004 = _eusart_factor equ 4
1423                    ; line_number = 12
1424                    ; library _eusart entered
1425            
1426                    ; # Copyright (c) 2005 by Wayne C. Gramlich
1427                    ; # All rights reserved.
1428            
1429                    ; # This library contains a bunch of definitions for the Enhanced Universal
1430                    ; # Asynchronous Serial Receiver/Transmitter (EUSART) that is available
1431                    ; # on many of the PIC microcontrollers.
1432            
1433                    ; # In order to use this module you have to get two constants defined
1434                    ; # BEFORE including this library -- {_eusart_factor} and {_eusart_clock}.
1435                    ; # {_eusart_clock} should be set to the frequency oscillator for the chip.
1436                    ; # {_eusart_factor} should be set to 4, 16, or 64 depending upon whether
1437                    ; # the {_brg16} and {_brgh} bits are set.  Use the table below to select:
1438                    ; #
1439                    ; #        _{brg16}	{_brgh}		_{eusart_factor}
1440                    ; #	    0		   0		      64
1441                    ; #	    0		   1		      16
1442                    ; #	    1		   0		      16
1443                    ; #	    1		   1		       4
1444            
1445                    ; # 2400 bits/sec:
1446                    ; buffer = '_eusart'
1447                    ; line_number = 23
1448                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1449 00000822 = _eusart_2400 equ 2082
1450                    ; line_number = 24
1451                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1452 00000022 = _eusart_2400_low equ 34
1453                    ; line_number = 25
1454                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1455 00000008 = _eusart_2400_high equ 8
1456                    ; line_number = 26
1457                    ; constant _eusart_2400_index = 0
1458 00000000 = _eusart_2400_index equ 0
1459                    ; # 4800 bits/sec:
1460                    ; line_number = 28
1461                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1462 00000410 = _eusart_4800 equ 1040
1463                    ; line_number = 29
1464                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1465 00000010 = _eusart_4800_low equ 16
1466                    ; line_number = 30
1467                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1468 00000004 = _eusart_4800_high equ 4
1469                    ; line_number = 31
1470                    ; constant _eusart_4800_index = 1
1471 00000001 = _eusart_4800_index equ 1
1472                    ; # 9600 bits/sec:
1473                    ; line_number = 33
1474                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1475 00000207 = _eusart_9600 equ 519
1476                    ; line_number = 34
1477                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1478 00000007 = _eusart_9600_low equ 7
1479                    ; line_number = 35
1480                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1481 00000002 = _eusart_9600_high equ 2
1482                    ; line_number = 36
1483                    ; constant _eusart_9600_index = 2
1484 00000002 = _eusart_9600_index equ 2
1485                    ; # 19200 bits/sec:
1486                    ; line_number = 38
1487                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1488 00000103 = _eusart_19200 equ 259
1489                    ; line_number = 39
1490                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1491 00000003 = _eusart_19200_low equ 3
1492                    ; line_number = 40
1493                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1494 00000001 = _eusart_19200_high equ 1
1495                    ; line_number = 41
1496                    ; constant _eusart_19200_index = 3
1497 00000003 = _eusart_19200_index equ 3
1498                    ; # 38400 bits/sec:
1499                    ; line_number = 43
1500                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1501 00000081 = _eusart_38400 equ 129
1502                    ; line_number = 44
1503                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1504 00000081 = _eusart_38400_low equ 129
1505                    ; line_number = 45
1506                    ; constant _eusart_38400_high = _eusart_38400 >> 8
1507 00000000 = _eusart_38400_high equ 0
1508                    ; line_number = 46
1509                    ; constant _eusart_38400_index = 4
1510 00000004 = _eusart_38400_index equ 4
1511                    ; # 57600 bits/sec:
1512                    ; line_number = 48
1513                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1514 00000055 = _eusart_57600 equ 85
1515                    ; line_number = 49
1516                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1517 00000055 = _eusart_57600_low equ 85
1518                    ; line_number = 50
1519                    ; constant _eusart_57600_high = _eusart_57600 >> 8
1520 00000000 = _eusart_57600_high equ 0
1521                    ; line_number = 51
1522                    ; constant _eusart_57600_index = 5
1523 00000005 = _eusart_57600_index equ 5
1524                    ; # 115200 bits/sec:
1525                    ; line_number = 53
1526                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1527 0000002a = _eusart_115200 equ 42
1528                    ; line_number = 54
1529                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1530 0000002a = _eusart_115200_low equ 42
1531                    ; line_number = 55
1532                    ; constant _eusart_115200_high = _eusart_115200 >> 8
1533 00000000 = _eusart_115200_high equ 0
1534                    ; line_number = 56
1535                    ; constant _eusart_115200_index = 6
1536 00000006 = _eusart_115200_index equ 6
1537                    ; # 203400 bits/sec:
1538                    ; line_number = 58
1539                    ; constant _eusart_230400 = (_eusart_clock / (230400 * _eusart_factor)) - 1
1540 00000014 = _eusart_230400 equ 20
1541                    ; line_number = 59
1542                    ; constant _eusart_230400_low = _eusart_230400 & 0xff
1543 00000014 = _eusart_230400_low equ 20
1544                    ; line_number = 60
1545                    ; constant _eusart_230400_high = _eusart_230400 >> 8
1546 00000000 = _eusart_230400_high equ 0
1547                    ; line_number = 61
1548                    ; constant _eusart_230400_index = 7
1549 00000007 = _eusart_230400_index equ 7
1550                    ; # 406800 bits/sec:
1551                    ; line_number = 63
1552                    ; constant _eusart_460800 = (_eusart_clock / (460800 * _eusart_factor)) - 1
1553 00000009 = _eusart_460800 equ 9
1554                    ; line_number = 64
1555                    ; constant _eusart_460800_low = _eusart_460800 & 0xff
1556 00000009 = _eusart_460800_low equ 9
1557                    ; line_number = 65
1558                    ; constant _eusart_460800_high = _eusart_460800 >> 8
1559 00000000 = _eusart_460800_high equ 0
1560                    ; line_number = 66
1561                    ; constant _eusart_460800_index = 8
1562 00000008 = _eusart_460800_index equ 8
1563                    ; # 500000 bits/sec:
1564                    ; line_number = 68
1565                    ; constant _eusart_500000 = (_eusart_clock / (500000 * _eusart_factor)) - 1
1566 00000009 = _eusart_500000 equ 9
1567                    ; line_number = 69
1568                    ; constant _eusart_500000_low = _eusart_500000 & 0xff
1569 00000009 = _eusart_500000_low equ 9
1570                    ; line_number = 70
1571                    ; constant _eusart_500000_high = _eusart_500000 >> 8
1572 00000000 = _eusart_500000_high equ 0
1573                    ; line_number = 71
1574                    ; constant _eusart_500000_index = 9
1575 00000009 = _eusart_500000_index equ 9
1576                    ; # 576000 bits/sec (1MHz):
1577                    ; line_number = 73
1578                    ; constant _eusart_576000 = (_eusart_clock / (576000 * _eusart_factor)) - 1
1579 00000007 = _eusart_576000 equ 7
1580                    ; line_number = 74
1581                    ; constant _eusart_576000_low = _eusart_576000 & 0xff
1582 00000007 = _eusart_576000_low equ 7
1583                    ; line_number = 75
1584                    ; constant _eusart_576000_high = _eusart_576000 >> 8
1585 00000000 = _eusart_576000_high equ 0
1586                    ; line_number = 76
1587                    ; constant _eusart_576000_index = 10
1588 0000000a = _eusart_576000_index equ 10
1589                    ; # 625000 bits/sec:
1590                    ; line_number = 78
1591                    ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
1592 00000007 = _eusart_625000 equ 7
1593                    ; line_number = 79
1594                    ; constant _eusart_625000_low = _eusart_625000 & 0xff
1595 00000007 = _eusart_625000_low equ 7
1596                    ; line_number = 80
1597                    ; constant _eusart_625000_high = _eusart_625000 >> 8
1598 00000000 = _eusart_625000_high equ 0
1599                    ; line_number = 81
1600                    ; constant _eusart_625000_index = 11
1601 0000000b = _eusart_625000_index equ 11
1602                    ; # 833333 bits/sec:
1603                    ; line_number = 83
1604                    ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
1605 00000005 = _eusart_833333 equ 5
1606                    ; line_number = 84
1607                    ; constant _eusart_833333_low = _eusart_833333 & 0xff
1608 00000005 = _eusart_833333_low equ 5
1609                    ; line_number = 85
1610                    ; constant _eusart_833333_high = _eusart_833333 >> 8
1611 00000000 = _eusart_833333_high equ 0
1612                    ; line_number = 86
1613                    ; constant _eusart_833333_index = 12
1614 0000000c = _eusart_833333_index equ 12
1615                    ; # 921600 bits/sec:
1616                    ; line_number = 88
1617                    ; constant _eusart_921600 = (_eusart_clock / (921600 * _eusart_factor)) - 1
1618 00000004 = _eusart_921600 equ 4
1619                    ; line_number = 89
1620                    ; constant _eusart_921600_low = _eusart_921600 & 0xff
1621 00000004 = _eusart_921600_low equ 4
1622                    ; line_number = 90
1623                    ; constant _eusart_921600_high = _eusart_921600 >> 8
1624 00000000 = _eusart_921600_high equ 0
1625                    ; line_number = 91
1626                    ; constant _eusart_921600_index = 13
1627 0000000d = _eusart_921600_index equ 13
1628                    ; # 1000000 bits/sec (1MHz):
1629                    ; line_number = 93
1630                    ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
1631 00000004 = _eusart_1000000 equ 4
1632                    ; line_number = 94
1633                    ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
1634 00000004 = _eusart_1000000_low equ 4
1635                    ; line_number = 95
1636                    ; constant _eusart_1000000_high = _eusart_1000000 >> 8
1637 00000000 = _eusart_1000000_high equ 0
1638                    ; line_number = 96
1639                    ; constant _eusart_1000000_index = 14
1640 0000000e = _eusart_1000000_index equ 14
1641            
1642                    ; buffer = 'host'
1643                    ; line_number = 12
1644                    ; library _eusart exited
1645            
1646            
1647                    ; #constant _true = 1
1648                    ; #constant _false = 0
1649            
1650                    ; line_number = 19
1651                    ; package pdip
1652                    ; line_number = 20
1653                    ; pin 1 = power_supply
1654                    ; line_number = 21
1655                    ;  pin 2 = osc1
1656                    ; line_number = 22
1657                    ;  pin 3 = osc2
1658                    ; line_number = 23
1659                    ;  pin 4 = ra3_in, name=dtr
1660 00000005 = dtr___byte equ _porta
1661 00000003 = dtr___bit equ 3
1662                    ; line_number = 24
1663                    ;  pin 5 = rx, name=rx
1664 00000007 = rx___byte equ _portc
1665 00000005 = rx___bit equ 5
1666                    ; line_number = 25
1667                    ;  pin 6 = tx, name=tx
1668 00000007 = tx___byte equ _portc
1669 00000004 = tx___bit equ 4
1670                    ; line_number = 26
1671                    ;  pin 7 = rc3_out, name=p3
1672 00000007 = p3___byte equ _portc
1673 00000003 = p3___bit equ 3
1674                    ; line_number = 27
1675                    ;  pin 8 = rc2_out, name=p2
1676 00000007 = p2___byte equ _portc
1677 00000002 = p2___bit equ 2
1678                    ; line_number = 28
1679                    ;  pin 9 = rc1_in, name=p1
1680 00000007 = p1___byte equ _portc
1681 00000001 = p1___bit equ 1
1682                    ; line_number = 29
1683                    ;  pin 10 = rc0_in, name=p0
1684 00000007 = p0___byte equ _portc
1685 00000000 = p0___bit equ 0
1686                    ; line_number = 30
1687                    ;  pin 11 = ra2_out, name=p6
1688 00000005 = p6___byte equ _porta
1689 00000002 = p6___bit equ 2
1690                    ; line_number = 31
1691                    ;  pin 12 = ra1_in, name=p5
1692 00000005 = p5___byte equ _porta
1693 00000001 = p5___bit equ 1
1694                    ; line_number = 32
1695                    ;  pin 13 = ra0_out, name=p4
1696 00000005 = p4___byte equ _porta
1697 00000000 = p4___bit equ 0
1698                    ; line_number = 33
1699                    ;  pin 14 = ground
1700            
1701            
1702                    ; # The host buffer lives over in data bank 1:
1703            
1704                    ; line_number = 39
1705                    ; constant host_buffer_power = 6
1706 00000006 = host_buffer_power equ 6
1707                    ; line_number = 40
1708                    ; constant host_buffer_size = 1 << host_buffer_power
1709 00000040 = host_buffer_size equ 64
1710                    ; line_number = 41
1711                    ; constant host_buffer_mask = host_buffer_size - 1
1712 0000003f = host_buffer_mask equ 63
1713            
1714                    ; line_number = 43
1715                    ; global host_buffer[host_buffer_size] array[byte]
1716 000000a0 = host_buffer equ globals___1
1717            
1718            
1719                    ; line_number = 47
1720                    ; global host_index_in byte	# Index to insert bytes into {host_buffer}
1721 00000023 = host_index_in equ globals___0+3
1722                    ; line_number = 48
1723                    ; global host_index_out byte	# Index to remove bytes from {host_buffer}
1724 00000024 = host_index_out equ globals___0+4
1725                    ; line_number = 49
1726                    ; global host_count byte		# Number of bytes in host {host_buffer}:
1727 00000025 = host_count equ globals___0+5
1728            
1729                    ; line_number = 51
1730                    ; global error bit
1731 0000006f = error___byte equ globals___0+79
1732 00000000 = error___bit equ 0
1733                    ; line_number = 52
1734                    ; global end_of_line bit
1735 0000006f = end_of_line___byte equ globals___0+79
1736 00000001 = end_of_line___bit equ 1
1737                    ; line_number = 53
1738                    ; global hex_high byte
1739 00000026 = hex_high equ globals___0+6
1740                    ; line_number = 54
1741                    ; global hex_low byte
1742 00000027 = hex_low equ globals___0+7
1743                    ; line_number = 55
1744                    ; global bus_shift byte
1745 00000028 = bus_shift equ globals___0+8
1746                    ; line_number = 56
1747                    ; global time_out bit
1748 0000006f = time_out___byte equ globals___0+79
1749 00000002 = time_out___bit equ 2
1750                    ; line_number = 57
1751                    ; global bus_msb bit
1752 0000006f = bus_msb___byte equ globals___0+79
1753 00000003 = bus_msb___bit equ 3
1754                    ; line_number = 58
1755                    ; global bus_buffer[5] array[byte]
1756 00000029 = bus_buffer equ globals___0+9
1757            
1758                    ; line_number = 60
1759                    ; origin 0
1760   0000 :           org     0
1761            
1762                    ; line_number = 62
1763                    ;info   62, 0
1764                    ; procedure start
1765   0000 :   start:
1766                    ; arguments_none
1767                    ; line_number = 64
1768                    ;  returns_nothing
1769                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
1770                    ; line_number = 65
1771                    ;  assemble
1772                    ;info   65, 0
1773                    ; line_number = 66
1774                    ;info   66, 0
1775 0000 2837          goto    main
1776            
1777                    ; delay after procedure statements=non-uniform
1778                    ; Implied return
1779 0001 3400          retlw   0
1780            
1781            
1782            
1783            
1784                    ; line_number = 68
1785                    ; origin 4
1786   0004 :           org     4
1787            
1788                    ; line_number = 70
1789                    ; share fsr_save byte		# Place to stuff {_fsr}
1790 00000070 = fsr_save equ shared___globals
1791                    ; line_number = 71
1792                    ; share pclath_save byte		# Place to stuff {_pclath}
1793 00000071 = pclath_save equ shared___globals+1
1794            
1795                    ; line_number = 73
1796                    ;info   73, 4
1797                    ; procedure interrupt
1798   0004 :   interrupt:
1799 00000073 = interrupt___w_save equ shared___globals+3
1800 00000072 = interrupt___status_save equ shared___globals+2
1801                    ; Carefully save __w and __tatus into RAM
1802                    ; Save W first (easy)
1803 0004 00f3          movwf   interrupt___w_save
1804                    ; Save Status without smashing it (tricky)
1805                    ; Move swapped version of status into W
1806 0005 0e03          swapf   __status,w
1807                    ; Store swapped version of status into RAM
1808 0006 00f2          movwf   interrupt___status_save
1809                    ; arguments_none
1810                    ; line_number = 75
1811                    ;  returns_nothing
1812            
1813                    ; # This routine will handle a UART receive buffer interrupt.
1814            
1815                    ; # Save {_fsr} and {_pclath}:
1816                    ; before procedure statements delay=non-uniform, bit states=(data:??=uu=>?? code:X0=cu=>X0)
1817                    ; line_number = 80
1818                    ;  fsr_save := _fsr
1819                    ;info   80, 7
1820 0007 0804          movf    _fsr,w
1821 0008 00f0          movwf   fsr_save
1822                    ; line_number = 81
1823                    ;  pclath_save := _pclath
1824                    ;info   81, 9
1825 0009 080a          movf    _pclath,w
1826 000a 00f1          movwf   pclath_save
1827            
1828                    ; line_number = 83
1829                    ;  if _rcif start
1830                    ;info   83, 11
1831                    ; =>bit_code_emit@symbol(): sym=_rcif
1832                    ; No 1TEST: true.size=15 false.size=0
1833                    ; No 2TEST: true.size=15 false.size=0
1834                    ; 1GOTO: Single test with GOTO
1835 000b 1283          bcf     __rp0___byte, __rp0___bit
1836 000c 1303          bcf     __rp1___byte, __rp1___bit
1837 000d 1e8c          btfss   _rcif___byte, _rcif___bit
1838 000e 281e          goto    interrupt__1
1839                    ; # Clear the interrupt flag until the next byte arrives:
1840                    ; line_number = 85
1841                    ;  _rcif := _false
1842                    ;info   85, 15
1843 000f 128c          bcf     _rcif___byte, _rcif___bit
1844            
1845                    ; # Deal with UART errors:
1846                    ; line_number = 88
1847                    ;  if _oerr start
1848                    ;info   88, 16
1849                    ; =>bit_code_emit@symbol(): sym=_oerr
1850                    ; 1TEST: Single test with code in skip slot
1851 0010 1897          btfsc   _oerr___byte, _oerr___bit
1852                    ; line_number = 89
1853                    ; _cren := _false
1854                    ;info   89, 17
1855 0011 1217          bcf     _cren___byte, _cren___bit
1856                    ; Recombine size1 = 0 || size2 = 0
1857                    ; line_number = 88
1858                    ;  if _oerr done
1859                    ; line_number = 90
1860                    ; if _ferr start
1861                    ;info   90, 18
1862                    ; =>bit_code_emit@symbol(): sym=_ferr
1863                    ; 1TEST: Single test with code in skip slot
1864 0012 1917          btfsc   _ferr___byte, _ferr___bit
1865                    ; line_number = 91
1866                    ; _cren := _false
1867                    ;info   91, 19
1868 0013 1217          bcf     _cren___byte, _cren___bit
1869                    ; Recombine size1 = 0 || size2 = 0
1870                    ; line_number = 90
1871                    ; if _ferr done
1872                    ; line_number = 92
1873                    ; _cren := _true
1874                    ;info   92, 20
1875 0014 1617          bsf     _cren___byte, _cren___bit
1876            
1877                    ; # Now read the byte and stuff it into {host_buffer}:
1878                    ; line_number = 95
1879                    ;  host_buffer[host_index_in & host_buffer_mask] := _rcreg
1880                    ;info   95, 21
1881                    ; index_fsr_first
1882 0015 303f          movlw   63
1883 0016 0523          andwf   host_index_in,w
1884 0017 3ea0          addlw   host_buffer
1885 0018 0084          movwf   __fsr
1886 0019 1383          bcf     __irp___byte, __irp___bit
1887 001a 0814          movf    _rcreg,w
1888 001b 0080          movwf   __indf
1889                    ; line_number = 96
1890                    ;  host_index_in := host_index_in + 1
1891                    ;info   96, 28
1892 001c 0aa3          incf    host_index_in,f
1893                    ; line_number = 97
1894                    ;  host_count := host_count + 1
1895                    ;info   97, 29
1896 001d 0aa5          incf    host_count,f
1897            
1898                    ; Recombine size1 = 0 || size2 = 0
1899   001e :   interrupt__1:
1900                    ; line_number = 83
1901                    ;  if _rcif done
1902                    ; # Restore {_pclath} and {_fsr}:
1903                    ; line_number = 100
1904                    ;  _pclath := pclath_save
1905                    ;info   100, 30
1906 001e 0871          movf    pclath_save,w
1907 001f 008a          movwf   _pclath
1908                    ; line_number = 101
1909                    ;  _fsr := fsr_save
1910                    ;info   101, 32
1911 0020 0870          movf    fsr_save,w
1912 0021 0084          movwf   _fsr
1913            
1914            
1915                    ; delay after procedure statements=non-uniform
1916                    ; Interrupt return
1917                    ; Carefully restore __w and __tatus from RAM
1918                    ; Restore swapped status into W
1919 0022 0e72          swapf   interrupt___status_save,w
1920                    ; W now contains (unswapped) status
1921                    ; Restore W to __status
1922 0023 0083          movwf   __status
1923                    ; From here on out, do not modify __status
1924                    ; Swap saved W register in RAM
1925 0024 0ef3          swapf   interrupt___w_save,f
1926                    ; Unswap the saved W reg and restore to W
1927 0025 0e73          swapf   interrupt___w_save,w
1928                    ; __w and __status are now restored
1929                    ; Return from interrupt
1930 0026 0009          retfie  
1931            
1932            
1933            
1934            
1935                    ; line_number = 104
1936                    ;info   104, 39
1937                    ; procedure host_byte_get
1938   0027 :   host_byte_get:
1939                    ; arguments_none
1940                    ; line_number = 106
1941                    ;  returns byte
1942            
1943                    ; # This routine will wait until {host_buffer} is non-empty and then
1944                    ; # return the next byte from {host_buffer}.
1945            
1946                    ; line_number = 111
1947                    ;  local result byte
1948 0000002e = host_byte_get__result equ globals___0+14
1949            
1950                    ; # Wait until {host_buffer} has something:
1951                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
1952                    ; line_number = 114
1953                    ;  while host_count = 0 start
1954   0027 :   host_byte_get__1:
1955                    ;info   114, 39
1956                    ; Left minus Right
1957 0027 0825          movf    host_count,w
1958                    ; =>bit_code_emit@symbol(): sym=__z
1959                    ; 1TEST: Single test with code in skip slot
1960 0028 1903          btfsc   __z___byte, __z___bit
1961                    ; line_number = 115
1962                    ; do_nothing
1963                    ;info   115, 41
1964            
1965 0029 2827          goto    host_byte_get__1
1966                    ; Recombine size1 = 0 || size2 = 0
1967                    ; line_number = 114
1968                    ;  while host_count = 0 done
1969                    ; # Remove the contents with interrupts turned off:
1970                    ; line_number = 118
1971                    ;  _rcif := _false
1972                    ;info   118, 42
1973 002a 128c          bcf     _rcif___byte, _rcif___bit
1974                    ; line_number = 119
1975                    ;  result := host_buffer[host_index_out & host_buffer_mask]
1976                    ;info   119, 43
1977 002b 303f          movlw   63
1978 002c 0524          andwf   host_index_out,w
1979 002d 3ea0          addlw   host_buffer
1980 002e 0084          movwf   __fsr
1981 002f 1383          bcf     __irp___byte, __irp___bit
1982 0030 0800          movf    __indf,w
1983 0031 00ae          movwf   host_byte_get__result
1984                    ; line_number = 120
1985                    ;  host_index_out := host_index_out + 1
1986                    ;info   120, 50
1987 0032 0aa4          incf    host_index_out,f
1988                    ; line_number = 121
1989                    ;  host_count := host_count - 1
1990                    ;info   121, 51
1991 0033 03a5          decf    host_count,f
1992                    ; line_number = 122
1993                    ;  _rcif := _true
1994                    ;info   122, 52
1995 0034 168c          bsf     _rcif___byte, _rcif___bit
1996            
1997                    ; line_number = 124
1998                    ;  return result start
1999                    ; line_number = 124
2000                    ;info   124, 53
2001 0035 082e          movf    host_byte_get__result,w
2002 0036 0008          return  
2003                    ; line_number = 124
2004                    ;  return result done
2005            
2006            
2007                    ; delay after procedure statements=non-uniform
2008            
2009            
2010            
2011            
2012                    ; line_number = 127
2013                    ;info   127, 55
2014                    ; procedure main
2015   0037 :   main:
2016                    ; Initialize some registers
2017 0037 019f          clrf    _adcon0
2018 0038 1683          bsf     __rp0___byte, __rp0___bit
2019 0039 0191          clrf    _ansel
2020 003a 3007          movlw   7
2021 003b 1283          bcf     __rp0___byte, __rp0___bit
2022 003c 0099          movwf   _cmcon0
2023 003d 303a          movlw   58
2024 003e 1683          bsf     __rp0___byte, __rp0___bit
2025 003f 0085          movwf   _trisa
2026 0040 3033          movlw   51
2027 0041 0087          movwf   _trisc
2028                    ; arguments_none
2029                    ; line_number = 129
2030                    ;  returns_nothing
2031            
2032                    ; # This is the main procdure that initializes the the microcontroller
2033                    ; # and waits for commands from the host.
2034            
2035                    ; line_number = 134
2036                    ;  local bit9 bit
2037 0000006f = main__bit9___byte equ globals___0+79
2038 00000004 = main__bit9___bit equ 4
2039                    ; line_number = 135
2040                    ;  local command byte
2041 0000002f = main__command equ globals___0+15
2042                    ; line_number = 136
2043                    ;  local id byte
2044 00000030 = main__id equ globals___0+16
2045                    ; line_number = 137
2046                    ;  local low byte
2047 00000031 = main__low equ globals___0+17
2048                    ; line_number = 138
2049                    ;  local node byte
2050 00000032 = main__node equ globals___0+18
2051                    ; line_number = 139
2052                    ;  local page byte
2053 00000033 = main__page equ globals___0+19
2054                    ; line_number = 140
2055                    ;  local receive byte
2056 00000034 = main__receive equ globals___0+20
2057                    ; line_number = 141
2058                    ;  local row byte
2059 00000035 = main__row equ globals___0+21
2060                    ; line_number = 142
2061                    ;  local send byte
2062 00000036 = main__send equ globals___0+22
2063                    ; line_number = 143
2064                    ;  local value byte
2065 00000037 = main__value equ globals___0+23
2066            
2067                    ; line_number = 145
2068                    ;  local index byte
2069 00000038 = main__index equ globals___0+24
2070                    ; line_number = 146
2071                    ;  local count byte
2072 00000039 = main__count equ globals___0+25
2073                    ; line_number = 147
2074                    ;  local mask byte
2075 0000003a = main__mask equ globals___0+26
2076                    ; line_number = 148
2077                    ;  local ninth bit
2078 0000006f = main__ninth___byte equ globals___0+79
2079 00000005 = main__ninth___bit equ 5
2080                    ; line_number = 149
2081                    ;  local high4 byte
2082 0000003b = main__high4 equ globals___0+27
2083            
2084                    ; # For debugging only -- just wiggle the p2 pin:
2085                    ; #loop_forever
2086                    ; #	p2 := _true
2087                    ; #	p2 := _false
2088            
2089                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:X0=cu=>X0)
2090                    ; line_number = 156
2091                    ;  host_index_in := 0
2092                    ;info   156, 66
2093 0042 1283          bcf     __rp0___byte, __rp0___bit
2094 0043 01a3          clrf    host_index_in
2095                    ; line_number = 157
2096                    ;  host_index_out := 0
2097                    ;info   157, 68
2098 0044 01a4          clrf    host_index_out
2099                    ; line_number = 158
2100                    ;  host_count := 0
2101                    ;info   158, 69
2102 0045 01a5          clrf    host_count
2103            
2104                    ; # Warm up the EUSART:
2105                    ; line_number = 161
2106                    ;  _trisc@5 := _true
2107                    ;info   161, 70
2108 00000087 = main__select__1___byte equ _trisc
2109 00000005 = main__select__1___bit equ 5
2110 0046 1683          bsf     __rp0___byte, __rp0___bit
2111 0047 1687          bsf     main__select__1___byte, main__select__1___bit
2112                    ; line_number = 162
2113                    ;  _trisc@4 := _true
2114                    ;info   162, 72
2115 00000087 = main__select__2___byte equ _trisc
2116 00000004 = main__select__2___bit equ 4
2117 0048 1607          bsf     main__select__2___byte, main__select__2___bit
2118            
2119                    ; line_number = 164
2120                    ;  _txsta := 0
2121                    ;info   164, 73
2122 0049 1283          bcf     __rp0___byte, __rp0___bit
2123 004a 0196          clrf    _txsta
2124                    ; line_number = 165
2125                    ;  _tx9 := _false
2126                    ;info   165, 75
2127 004b 1316          bcf     _tx9___byte, _tx9___bit
2128                    ; line_number = 166
2129                    ;  _txen := _true
2130                    ;info   166, 76
2131 004c 1696          bsf     _txen___byte, _txen___bit
2132                    ; line_number = 167
2133                    ;  _brgh := _true
2134                    ;info   167, 77
2135 004d 1516          bsf     _brgh___byte, _brgh___bit
2136            
2137                    ; line_number = 169
2138                    ;  _rcsta := 0
2139                    ;info   169, 78
2140 004e 0197          clrf    _rcsta
2141                    ; line_number = 170
2142                    ;  _spen := _true
2143                    ;info   170, 79
2144 004f 1797          bsf     _spen___byte, _spen___bit
2145                    ; line_number = 171
2146                    ;  _rx9 := _false
2147                    ;info   171, 80
2148 0050 1317          bcf     _rx9___byte, _rx9___bit
2149                    ; line_number = 172
2150                    ;  _cren := _true
2151                    ;info   172, 81
2152 0051 1617          bsf     _cren___byte, _cren___bit
2153                    ; line_number = 173
2154                    ;  _adden := _true
2155                    ;info   173, 82
2156 0052 1597          bsf     _adden___byte, _adden___bit
2157            
2158                    ; line_number = 175
2159                    ;  _baudctl := 0
2160                    ;info   175, 83
2161 0053 0191          clrf    _baudctl
2162                    ; line_number = 176
2163                    ;  _brg16 := _true
2164                    ;info   176, 84
2165 0054 1591          bsf     _brg16___byte, _brg16___bit
2166            
2167                    ; #_spbrg := _eusart_19200_low
2168                    ; #_spbrgh := _eusart_19200_highb
2169                    ; line_number = 180
2170                    ;  _spbrg := _eusart_115200_low
2171                    ;info   180, 85
2172 0055 302a          movlw   42
2173 0056 0093          movwf   _spbrg
2174                    ; line_number = 181
2175                    ;  _spbrgh := _eusart_115200_high
2176                    ;info   181, 87
2177 0057 0192          clrf    _spbrgh
2178                    ; #_spbrg := _eusart_230400_low
2179                    ; #_spbrgh := _eusart_230400_high
2180                    ; #_spbrg := _eusart_460800_low
2181                    ; #_spbrgh := _eusart_460800_high
2182                    ; #_spbrg := _eusart_500000_low
2183                    ; #_spbrgh := _eusart_500000_high
2184            
2185                    ; # Enable interrupts:
2186                    ; line_number = 190
2187                    ;  _rcif := _false
2188                    ;info   190, 88
2189 0058 128c          bcf     _rcif___byte, _rcif___bit
2190                    ; line_number = 191
2191                    ;  _rcie := _true
2192                    ;info   191, 89
2193 0059 1683          bsf     __rp0___byte, __rp0___bit
2194 005a 168c          bsf     _rcie___byte, _rcie___bit
2195                    ; line_number = 192
2196                    ;  _peie := _true
2197                    ;info   192, 91
2198 005b 170b          bsf     _peie___byte, _peie___bit
2199                    ; line_number = 193
2200                    ;  _gie := _true
2201                    ;info   193, 92
2202 005c 178b          bsf     _gie___byte, _gie___bit
2203            
2204                    ; # For debugging only -- just output a stream of 'U':
2205                    ; #loop_forever
2206                    ; #	loop_exactly 255
2207                    ; #	    delay 600
2208                    ; #		do_nothing
2209                    ; #	call _uart_byte_put('U')
2210            
2211                    ; # For debugging only -- Double echo:
2212                    ; #loop_forever
2213                    ; #	# Wait for command:
2214                    ; #	command := _uart_byte_get()
2215                    ; #	#call _uart_hex_put(command)
2216                    ; #  	call _uart_byte_put(command)
2217                    ; #  	call _uart_byte_put(command)
2218            
2219                    ; # Process commands:
2220                    ; #call _uart_byte_put('>')
2221                    ; line_number = 212
2222                    ;  loop_forever start
2223   005d :   main__3:
2224 005d 1283          bcf     __rp0___byte, __rp0___bit
2225                    ; # Wait for command:
2226                    ; line_number = 214
2227                    ;  error := _false
2228                    ;info   214, 94
2229 005e 106f          bcf     error___byte, error___bit
2230                    ; line_number = 215
2231                    ;  end_of_line := _false
2232                    ;info   215, 95
2233 005f 10ef          bcf     end_of_line___byte, end_of_line___bit
2234            
2235                    ; # Fetch a command letter from the user:
2236                    ; line_number = 218
2237                    ;  command := host_byte_get()
2238                    ;info   218, 96
2239 0060 2027          call    host_byte_get
2240 0061 00af          movwf   main__command
2241                    ; line_number = 219
2242                    ;  if command@7 start
2243                    ;info   219, 98
2244 0000002f = main__select__102___byte equ main__command
2245 00000007 = main__select__102___bit equ 7
2246                    ; =>bit_code_emit@symbol(): sym=main__select__102
2247                    ; No 1TEST: true.size=80 false.size=391
2248                    ; No 2TEST: true.size=80 false.size=391
2249                    ; 2GOTO: Single test with two GOTO's
2250 0062 1faf          btfss   main__select__102___byte, main__select__102___bit
2251 0063 28bb          goto    main__103
2252                    ; # Binary mode command:
2253                    ; line_number = 221
2254                    ;  switch (command >> 4) & 7 start
2255                    ;info   221, 100
2256                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2257                    ; line_number = 222
2258                    ; case_maximum 7
2259 0064 3000          movlw   main__99>>8
2260 0065 008a          movwf   __pclath
2261 00000046 = main__100 equ globals___0+38
2262 0066 0e2f          swapf   main__command,w
2263 0067 3907          andlw   7
2264                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2265 0068 3e6a          addlw   main__99
2266 0069 0082          movwf   __pcl
2267                    ; page_group 8
2268   006a :   main__99:
2269 006a 2872          goto    main__96
2270 006b 2872          goto    main__96
2271 006c 287a          goto    main__97
2272 006d 2884          goto    main__98
2273 006e 28ba          goto    main__101
2274 006f 28ba          goto    main__101
2275 0070 28ba          goto    main__101
2276 0071 28ba          goto    main__101
2277                    ; line_number = 223
2278                    ; case 0, 1
2279   0072 :   main__96:
2280                    ; # 100h hhhh (High5 Set):
2281                    ; line_number = 225
2282                    ;  ninth := command@4
2283                    ;info   225, 114
2284 0072 12ef          bcf     main__ninth___byte, main__ninth___bit
2285 0000002f = main__select__83___byte equ main__command
2286 00000004 = main__select__83___bit equ 4
2287                    ; =>bit_code_emit@symbol(): sym=main__select__83
2288                    ; 1TEST: Single test with code in skip slot
2289 0073 1a2f          btfsc   main__select__83___byte, main__select__83___bit
2290 0074 16ef          bsf     main__ninth___byte, main__ninth___bit
2291                    ; Recombine size1 = 0 || size2 = 0
2292                    ; line_number = 226
2293                    ;  high4 := command << 4
2294                    ;info   226, 117
2295 0075 0e2f          swapf   main__command,w
2296 0076 00bb          movwf   main__high4
2297 0077 30f0          movlw   240
2298 0078 05bb          andwf   main__high4,f
2299 0079 28ba          goto    main__101
2300                    ; line_number = 227
2301                    ; case 2
2302   007a :   main__97:
2303                    ; # 1010 llll (Low4 Send):
2304                    ; line_number = 229
2305                    ;  send := high4 | command & 0xf
2306                    ;info   229, 122
2307 007a 300f          movlw   15
2308 007b 052f          andwf   main__command,w
2309 007c 043b          iorwf   main__high4,w
2310 007d 00b6          movwf   main__send
2311                    ; line_number = 230
2312                    ;  if ninth start
2313                    ;info   230, 126
2314                    ; =>bit_code_emit@symbol(): sym=main__ninth
2315                    ; line_number = 231
2316                    ; call bus_select_send(send)
2317                    ;info   231, 126
2318 007e 0836          movf    main__send,w
2319                    ; line_number = 233
2320                    ; call bus_byte_send(send)
2321                    ;info   233, 127
2322                    ; No 1TEST: true.size=1 false.size=1
2323                    ; 2TEST: two tests with code in both delay slots
2324 007f 1aef          btfsc   main__ninth___byte, main__ninth___bit
2325 0080 22a1          call    bus_select_send
2326 0081 1eef          btfss   main__ninth___byte, main__ninth___bit
2327 0082 2292          call    bus_byte_send
2328                    ; line_number = 230
2329                    ;  if ninth done
2330 0083 28ba          goto    main__101
2331                    ; line_number = 234
2332                    ; case 3
2333   0084 :   main__98:
2334                    ; # 1011 xxxx:
2335                    ; line_number = 236
2336                    ;  if command & 0xf = 0 start
2337                    ;info   236, 132
2338                    ; Left minus Right
2339 0084 300f          movlw   15
2340 0085 052f          andwf   main__command,w
2341                    ; =>bit_code_emit@symbol(): sym=__z
2342                    ; No 1TEST: true.size=44 false.size=0
2343                    ; No 2TEST: true.size=44 false.size=0
2344                    ; 1GOTO: Single test with GOTO
2345 0086 1d03          btfss   __z___byte, __z___bit
2346 0087 28ba          goto    main__95
2347                    ; # 1011 0000 (Receive5):
2348                    ; line_number = 238
2349                    ;  mask := 0x80
2350                    ;info   238, 136
2351 0088 3080          movlw   128
2352 0089 00ba          movwf   main__mask
2353                    ; line_number = 239
2354                    ;  count := 0
2355                    ;info   239, 138
2356 008a 01b9          clrf    main__count
2357                    ; line_number = 240
2358                    ;  send := 0
2359                    ;info   240, 139
2360 008b 01b6          clrf    main__send
2361            
2362                    ; # Check {bus_buffer} exactly 5 times:
2363                    ; line_number = 243
2364                    ;  loop_exactly 5 start
2365                    ;info   243, 140
2366 00000046 = main__84 equ globals___0+38
2367 008c 3005          movlw   5
2368 008d 00c6          movwf   main__84
2369   008e :   main__85:
2370                    ; # Check to see if anything is in the {bus_buffer}:
2371                    ; line_number = 245
2372                    ;  call shift2(6)
2373                    ;info   245, 142
2374 008e 3006          movlw   6
2375 008f 22ca          call    shift2
2376                    ; line_number = 246
2377                    ;  if !(bus_shift@1) start
2378                    ;info   246, 144
2379 00000028 = main__select__90___byte equ bus_shift
2380 00000001 = main__select__90___bit equ 1
2381                    ; =>bit_code_emit@symbol(): sym=main__select__90
2382                    ; No 1TEST: true.size=0 false.size=17
2383                    ; No 2TEST: true.size=0 false.size=17
2384                    ; 1GOTO: Single test with GOTO
2385 0090 18a8          btfsc   main__select__90___byte, main__select__90___bit
2386 0091 28a5          goto    main__91
2387                    ; # There is a byte over there:
2388            
2389                    ; # Stuff the 9th bit into {mask}:
2390                    ; line_number = 250
2391                    ;  if bus_shift@0 start
2392                    ;info   250, 146
2393 00000028 = main__select__86___byte equ bus_shift
2394 00000000 = main__select__86___bit equ 0
2395                    ; =>bit_code_emit@symbol(): sym=main__select__86
2396                    ; No 1TEST: true.size=2 false.size=0
2397                    ; No 2TEST: true.size=2 false.size=0
2398                    ; 1GOTO: Single test with GOTO
2399 0092 1c28          btfss   main__select__86___byte, main__select__86___bit
2400 0093 2896          goto    main__87
2401                    ; line_number = 251
2402                    ; send := send | mask
2403                    ;info   251, 148
2404 0094 083a          movf    main__mask,w
2405 0095 04b6          iorwf   main__send,f
2406                    ; Recombine size1 = 0 || size2 = 0
2407   0096 :   main__87:
2408                    ; line_number = 250
2409                    ;  if bus_shift@0 done
2410                    ; line_number = 252
2411                    ; mask := mask >> 1
2412                    ;info   252, 150
2413                    ; Assignment of variable to self (no code needed)
2414 0096 0cba          rrf     main__mask,f
2415 0097 13ba          bcf     main__mask, 7
2416            
2417                    ; # Grab the rest of the byte:
2418                    ; line_number = 255
2419                    ;  loop_exactly 4 start
2420                    ;info   255, 152
2421 00000047 = main__88 equ globals___0+39
2422 0098 3004          movlw   4
2423 0099 00c7          movwf   main__88
2424   009a :   main__89:
2425                    ; line_number = 256
2426                    ; call shift2(0)
2427                    ;info   256, 154
2428 009a 3000          movlw   0
2429 009b 22ca          call    shift2
2430                    ; line_number = 255
2431                    ;  loop_exactly 4 wrap-up
2432 009c 0bc7          decfsz  main__88,f
2433 009d 289a          goto    main__89
2434                    ; line_number = 255
2435                    ;  loop_exactly 4 done
2436                    ; line_number = 257
2437                    ; bus_buffer[count] := bus_shift
2438                    ;info   257, 158
2439                    ; index_fsr_first
2440 009e 0839          movf    main__count,w
2441 009f 3e29          addlw   bus_buffer
2442 00a0 0084          movwf   __fsr
2443 00a1 1383          bcf     __irp___byte, __irp___bit
2444 00a2 0828          movf    bus_shift,w
2445 00a3 0080          movwf   __indf
2446                    ; line_number = 258
2447                    ;  count := count + 1
2448                    ;info   258, 164
2449 00a4 0ab9          incf    main__count,f
2450   00a5 :   main__91:
2451                    ; Recombine size1 = 0 || size2 = 0
2452                    ; line_number = 246
2453                    ;  if !(bus_shift@1) done
2454                    ; line_number = 243
2455                    ;  loop_exactly 5 wrap-up
2456 00a5 0bc6          decfsz  main__84,f
2457 00a6 288e          goto    main__85
2458                    ; line_number = 243
2459                    ;  loop_exactly 5 done
2460                    ; line_number = 259
2461                    ; send := send | count
2462                    ;info   259, 167
2463 00a7 0839          movf    main__count,w
2464 00a8 04b6          iorwf   main__send,f
2465            
2466                    ; # Send the results back to the host:
2467                    ; line_number = 262
2468                    ;  call _uart_byte_put(send)
2469                    ;info   262, 169
2470 00a9 0836          movf    main__send,w
2471 00aa 2395          call    _uart_byte_put
2472                    ; line_number = 263
2473                    ;  if count != 0 start
2474                    ;info   263, 171
2475                    ; Left minus Right
2476 00ab 0839          movf    main__count,w
2477                    ; =>bit_code_emit@symbol(): sym=__z
2478                    ; No 1TEST: true.size=0 false.size=10
2479                    ; No 2TEST: true.size=0 false.size=10
2480                    ; 1GOTO: Single test with GOTO
2481 00ac 1903          btfsc   __z___byte, __z___bit
2482 00ad 28ba          goto    main__94
2483                    ; line_number = 264
2484                    ; index := 0
2485                    ;info   264, 174
2486 00ae 01b8          clrf    main__index
2487                    ; line_number = 265
2488                    ;  loop_exactly count start
2489                    ;info   265, 175
2490 00000047 = main__92 equ globals___0+39
2491 00af 0839          movf    main__count,w
2492 00b0 00c7          movwf   main__92
2493   00b1 :   main__93:
2494                    ; line_number = 266
2495                    ; call _uart_byte_put(bus_buffer[index])
2496                    ;info   266, 177
2497 00b1 0838          movf    main__index,w
2498 00b2 3e29          addlw   bus_buffer
2499 00b3 0084          movwf   __fsr
2500 00b4 1383          bcf     __irp___byte, __irp___bit
2501 00b5 0800          movf    __indf,w
2502 00b6 2395          call    _uart_byte_put
2503                    ; line_number = 267
2504                    ;  index := index + 1
2505                    ;info   267, 183
2506 00b7 0ab8          incf    main__index,f
2507                    ; line_number = 265
2508                    ;  loop_exactly count wrap-up
2509 00b8 0bc7          decfsz  main__92,f
2510 00b9 28b1          goto    main__93
2511                    ; line_number = 265
2512                    ;  loop_exactly count done
2513   00ba :   main__94:
2514                    ; Recombine size1 = 0 || size2 = 0
2515                    ; line_number = 263
2516                    ;  if count != 0 done
2517                    ; Recombine size1 = 0 || size2 = 0
2518   00ba :   main__95:
2519                    ; line_number = 236
2520                    ;  if command & 0xf = 0 done
2521   00ba :   main__101:
2522                    ; line_number = 221
2523                    ;  switch (command >> 4) & 7 done
2524 00ba 2a60          goto    main__104
2525                    ; 2GOTO: Starting code 2
2526   00bb :   main__103:
2527                    ; # ASCII mode command:
2528            
2529                    ; # Echo the character:
2530                    ; line_number = 272
2531                    ;  call _uart_byte_put(command)
2532                    ;info   272, 187
2533 00bb 082f          movf    main__command,w
2534 00bc 2395          call    _uart_byte_put
2535            
2536                    ; # Convert it to upper case:
2537                    ; line_number = 275
2538                    ;  if 'a' <= command && command <= 'z' start
2539                    ;info   275, 189
2540 00bd 3061          movlw   97
2541 00be 022f          subwf   main__command,w
2542                    ; =>bit_code_emit@symbol(): sym=__c
2543                    ; No 1TEST: true.size=8 false.size=1
2544                    ; No 2TEST: true.size=8 false.size=1
2545                    ; 2GOTO: Single test with two GOTO's
2546 00bf 1c03          btfss   __c___byte, __c___bit
2547 00c0 28c9          goto    main__4
2548                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2549 00c1 307a          movlw   122
2550 00c2 022f          subwf   main__command,w
2551 00c3 1903          btfsc   __z___byte, __z___bit
2552 00c4 1003          bcf     __c___byte, __c___bit
2553                    ; =>bit_code_emit@symbol(): sym=__c
2554                    ; No 1TEST: true.size=0 false.size=2
2555                    ; No 2TEST: true.size=0 false.size=2
2556                    ; 1GOTO: Single test with GOTO
2557 00c5 1803          btfsc   __c___byte, __c___bit
2558 00c6 28c9          goto    main__5
2559                    ; line_number = 276
2560                    ; command := command + ('A' - 'a')
2561                    ;info   276, 199
2562 00c7 30e0          movlw   224
2563 00c8 07af          addwf   main__command,f
2564   00c9 :   main__5:
2565   00c9 :   main__4:
2566                    ; Recombine code1_bit_states != code2_bit_states
2567                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2568                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
2569                    ; Recombine code1_bit_states != code2_bit_states
2570                    ; 2GOTO: No goto needed; true= false=main__4 true_size=8 false_size=1
2571                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2572                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
2573                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2574                    ; line_number = 275
2575                    ;  if 'a' <= command && command <= 'z' done
2576                    ; line_number = 277
2577                    ; if 'A' <= command && command <= 'Z' start
2578                    ;info   277, 201
2579 00c9 3041          movlw   65
2580 00ca 022f          subwf   main__command,w
2581                    ; =>bit_code_emit@symbol(): sym=__c
2582                    ; No 1TEST: true.size=371 false.size=1
2583                    ; No 2TEST: true.size=371 false.size=1
2584                    ; 2GOTO: Single test with two GOTO's
2585 00cb 1c03          btfss   __c___byte, __c___bit
2586 00cc 28d3          goto    main__80
2587                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
2588 00cd 305a          movlw   90
2589 00ce 022f          subwf   main__command,w
2590 00cf 1903          btfsc   __z___byte, __z___bit
2591 00d0 1003          bcf     __c___byte, __c___bit
2592                    ; =>bit_code_emit@symbol(): sym=__c
2593                    ; No 1TEST: true.size=14 false.size=350
2594                    ; No 2TEST: true.size=14 false.size=350
2595                    ; 2GOTO: Single test with two GOTO's
2596 00d1 1c03          btfss   __c___byte, __c___bit
2597 00d2 28e2          goto    main__81
2598   00d3 :   main__80:
2599                    ; line_number = 496
2600                    ;info   496, 211
2601                    ; Left minus Right
2602 00d3 30c6          movlw   198
2603 00d4 072f          addwf   main__command,w
2604                    ; =>bit_code_emit@symbol(): sym=__z
2605                    ; No 1TEST: true.size=2 false.size=6
2606                    ; No 2TEST: true.size=2 false.size=6
2607                    ; 2GOTO: Single test with two GOTO's
2608 00d5 1d03          btfss   __z___byte, __z___bit
2609 00d6 28da          goto    main__7
2610                    ; # Hex:
2611                    ; line_number = 498
2612                    ;  if end_of_line_get() start
2613                    ;info   498, 215
2614 00d7 22f3          call    end_of_line_get
2615                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
2616                    ; 1TEST: Single test with code in skip slot
2617 00d8 1b6f          btfsc   end_of_line_get__0return___byte, end_of_line_get__0return___bit
2618                    ; line_number = 499
2619                    ; call _uart_crlf_put()
2620                    ;info   499, 217
2621 00d9 28e0          goto    main__8
2622                    ; 2GOTO: Starting code 2
2623   00da :   main__7:
2624                    ; line_number = 500
2625                    ;info   500, 218
2626                    ; Left minus Right
2627 00da 30f3          movlw   243
2628 00db 072f          addwf   main__command,w
2629                    ; =>bit_code_emit@symbol(): sym=__z
2630                    ; No 1TEST: true.size=0 false.size=2
2631                    ; No 2TEST: true.size=0 false.size=2
2632                    ; 1GOTO: Single test with GOTO
2633 00dc 1903          btfsc   __z___byte, __z___bit
2634 00dd 28e0          goto    main__6
2635                    ; # Illegal command:
2636                    ; line_number = 505
2637                    ;  call _uart_byte_put('?')
2638                    ;info   505, 222
2639 00de 303f          movlw   63
2640 00df 2395          call    _uart_byte_put
2641                    ; line_number = 506
2642                    ;  call _uart_crlf_put()
2643                    ;info   506, 224
2644   00e0 :   main__6:
2645                    ; # Blank line:
2646                    ; line_number = 502
2647                    ;  call _uart_crlf_put()
2648                    ;info   502, 224
2649   00e0 :   main__8:
2650                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2651                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2652                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2653 00e0 2390          call    _uart_crlf_put
2654                    ; Recombine size1 = 0 || size2 = 0
2655                    ; line_number = 498
2656                    ;  if end_of_line_get() done
2657            
2658 00e1 2a5e          goto    main__82
2659                    ; 2GOTO: Starting code 2
2660   00e2 :   main__81:
2661                    ; # We have a command letter:
2662                    ; line_number = 279
2663                    ;  switch command - 'A' start
2664                    ;info   279, 226
2665                    ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
2666 00e2 3001          movlw   main__78>>8
2667 00e3 008a          movwf   __pclath
2668 00e4 30bf          movlw   191
2669 00e5 072f          addwf   main__command,w
2670                    ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
2671 00e6 3e00          addlw   main__78
2672 00e7 0082          movwf   __pcl
2673                    ; page_group 26
2674                    ; Add 24 NOP's until start of new page 
2675 00e8 0000          nop     
2676 00e9 0000          nop     
2677 00ea 0000          nop     
2678 00eb 0000          nop     
2679 00ec 0000          nop     
2680 00ed 0000          nop     
2681 00ee 0000          nop     
2682 00ef 0000          nop     
2683 00f0 0000          nop     
2684 00f1 0000          nop     
2685 00f2 0000          nop     
2686 00f3 0000          nop     
2687 00f4 0000          nop     
2688 00f5 0000          nop     
2689 00f6 0000          nop     
2690 00f7 0000          nop     
2691 00f8 0000          nop     
2692 00f9 0000          nop     
2693 00fa 0000          nop     
2694 00fb 0000          nop     
2695 00fc 0000          nop     
2696 00fd 0000          nop     
2697 00fe 0000          nop     
2698 00ff 0000          nop     
2699   0100 :   main__78:
2700 0100 291a          goto    main__63
2701 0101 2928          goto    main__64
2702 0102 2931          goto    main__65
2703 0103 2935          goto    main__66
2704 0104 2a5b          goto    main__77
2705 0105 294a          goto    main__67
2706 0106 2a5b          goto    main__77
2707 0107 2a5b          goto    main__77
2708 0108 295d          goto    main__68
2709 0109 2961          goto    main__69
2710 010a 2a5b          goto    main__77
2711 010b 2a5b          goto    main__77
2712 010c 2a5b          goto    main__77
2713 010d 2a5b          goto    main__77
2714 010e 2a5b          goto    main__77
2715 010f 296b          goto    main__70
2716 0110 2a5b          goto    main__77
2717 0111 29aa          goto    main__71
2718 0112 29b4          goto    main__72
2719 0113 29e9          goto    main__73
2720 0114 2a5b          goto    main__77
2721 0115 2a5b          goto    main__77
2722 0116 2a03          goto    main__74
2723 0117 2a11          goto    main__75
2724 0118 2a5b          goto    main__77
2725 0119 2a45          goto    main__76
2726                    ; line_number = 280
2727                    ; case 0
2728   011a :   main__63:
2729                    ; # Set address:
2730                    ; line_number = 282
2731                    ;  id := hex_byte_get()
2732                    ;info   282, 282
2733 011a 2310          call    hex_byte_get
2734 011b 00b0          movwf   main__id
2735                    ; line_number = 283
2736                    ;  node := hex_byte_get()
2737                    ;info   283, 284
2738 011c 2310          call    hex_byte_get
2739 011d 00b2          movwf   main__node
2740                    ; line_number = 284
2741                    ;  if end_of_line_get() start
2742                    ;info   284, 286
2743 011e 22f3          call    end_of_line_get
2744                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
2745                    ; No 1TEST: true.size=6 false.size=0
2746                    ; No 2TEST: true.size=6 false.size=0
2747                    ; 1GOTO: Single test with GOTO
2748 011f 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
2749 0120 2927          goto    main__9
2750                    ; line_number = 285
2751                    ; call _uart_hex_put(id)
2752                    ;info   285, 289
2753 0121 0830          movf    main__id,w
2754 0122 237a          call    _uart_hex_put
2755                    ; line_number = 286
2756                    ;  call _uart_space_put()
2757                    ;info   286, 291
2758 0123 238d          call    _uart_space_put
2759                    ; line_number = 287
2760                    ;  call _uart_hex_put(node)
2761                    ;info   287, 292
2762 0124 0832          movf    main__node,w
2763 0125 237a          call    _uart_hex_put
2764                    ; line_number = 288
2765                    ;  call _uart_crlf_put()
2766                    ;info   288, 294
2767 0126 2390          call    _uart_crlf_put
2768                    ; Recombine size1 = 0 || size2 = 0
2769   0127 :   main__9:
2770                    ; line_number = 284
2771                    ;  if end_of_line_get() done
2772 0127 2a5e          goto    main__79
2773                    ; line_number = 289
2774                    ; case 1
2775   0128 :   main__64:
2776                    ; line_number = 290
2777                    ; value := hex_byte_get()
2778                    ;info   290, 296
2779 0128 2310          call    hex_byte_get
2780 0129 00b7          movwf   main__value
2781                    ; line_number = 291
2782                    ;  if end_of_line_get() start
2783                    ;info   291, 298
2784 012a 22f3          call    end_of_line_get
2785                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
2786                    ; No 1TEST: true.size=3 false.size=0
2787                    ; No 2TEST: true.size=3 false.size=0
2788                    ; 1GOTO: Single test with GOTO
2789 012b 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
2790 012c 2930          goto    main__10
2791                    ; line_number = 292
2792                    ; call _uart_hex_put(value)
2793                    ;info   292, 301
2794 012d 0837          movf    main__value,w
2795 012e 237a          call    _uart_hex_put
2796                    ; line_number = 293
2797                    ;  call _uart_crlf_put()
2798                    ;info   293, 303
2799 012f 2390          call    _uart_crlf_put
2800                    ; Recombine size1 = 0 || size2 = 0
2801   0130 :   main__10:
2802                    ; line_number = 291
2803                    ;  if end_of_line_get() done
2804 0130 2a5e          goto    main__79
2805                    ; line_number = 294
2806                    ; case 2
2807   0131 :   main__65:
2808                    ; # Clear bus:
2809                    ; line_number = 296
2810                    ;  if end_of_line_get() start
2811                    ;info   296, 305
2812 0131 22f3          call    end_of_line_get
2813                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
2814                    ; 1TEST: Single test with code in skip slot
2815 0132 1b6f          btfsc   end_of_line_get__0return___byte, end_of_line_get__0return___bit
2816                    ; line_number = 297
2817                    ; call _uart_crlf_put()
2818                    ;info   297, 307
2819 0133 2390          call    _uart_crlf_put
2820                    ; Recombine size1 = 0 || size2 = 0
2821                    ; line_number = 296
2822                    ;  if end_of_line_get() done
2823 0134 2a5e          goto    main__79
2824                    ; line_number = 298
2825                    ; case 3
2826   0135 :   main__66:
2827                    ; # Deselect:
2828                    ; line_number = 300
2829                    ;  if end_of_line_get() start
2830                    ;info   300, 309
2831 0135 22f3          call    end_of_line_get
2832                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
2833                    ; No 1TEST: true.size=17 false.size=0
2834                    ; No 2TEST: true.size=17 false.size=0
2835                    ; 1GOTO: Single test with GOTO
2836 0136 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
2837 0137 2949          goto    main__14
2838                    ; line_number = 301
2839                    ; call _uart_crlf_put()
2840                    ;info   301, 312
2841 0138 2390          call    _uart_crlf_put
2842                    ; line_number = 302
2843                    ;  call bus_byte_send(0xff)
2844                    ;info   302, 313
2845 0139 30ff          movlw   255
2846 013a 2292          call    bus_byte_send
2847                    ; line_number = 303
2848                    ;  value := bus_byte_receive()
2849                    ;info   303, 315
2850 013b 22b0          call    bus_byte_receive
2851 013c 00b7          movwf   main__value
2852                    ; line_number = 304
2853                    ;  if time_out start
2854                    ;info   304, 317
2855                    ; =>bit_code_emit@symbol(): sym=time_out
2856                    ; No 1TEST: true.size=2 false.size=6
2857                    ; No 2TEST: true.size=2 false.size=6
2858                    ; 2GOTO: Single test with two GOTO's
2859 013d 1d6f          btfss   time_out___byte, time_out___bit
2860 013e 2942          goto    main__12
2861                    ; line_number = 305
2862                    ; call _uart_byte_put('@')
2863                    ;info   305, 319
2864 013f 3040          movlw   64
2865 0140 2395          call    _uart_byte_put
2866 0141 2948          goto    main__13
2867                    ; 2GOTO: Starting code 2
2868   0142 :   main__12:
2869                    ; line_number = 307
2870                    ; if bus_msb start
2871                    ;info   307, 322
2872                    ; =>bit_code_emit@symbol(): sym=bus_msb
2873                    ; No 1TEST: true.size=2 false.size=0
2874                    ; No 2TEST: true.size=2 false.size=0
2875                    ; 1GOTO: Single test with GOTO
2876 0142 1def          btfss   bus_msb___byte, bus_msb___bit
2877 0143 2946          goto    main__11
2878                    ; line_number = 308
2879                    ; call _uart_byte_put('1')
2880                    ;info   308, 324
2881 0144 3031          movlw   49
2882 0145 2395          call    _uart_byte_put
2883                    ; Recombine size1 = 0 || size2 = 0
2884   0146 :   main__11:
2885                    ; line_number = 307
2886                    ; if bus_msb done
2887                    ; line_number = 309
2888                    ; call _uart_hex_put(value)
2889                    ;info   309, 326
2890 0146 0837          movf    main__value,w
2891 0147 237a          call    _uart_hex_put
2892   0148 :   main__13:
2893                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2894                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2895                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2896                    ; line_number = 304
2897                    ;  if time_out done
2898                    ; line_number = 310
2899                    ; call _uart_crlf_put()
2900                    ;info   310, 328
2901 0148 2390          call    _uart_crlf_put
2902                    ; Recombine size1 = 0 || size2 = 0
2903   0149 :   main__14:
2904                    ; line_number = 300
2905                    ;  if end_of_line_get() done
2906 0149 2a5e          goto    main__79
2907                    ; line_number = 311
2908                    ; case 5
2909   014a :   main__67:
2910                    ; # Flush {bus_buffer}:
2911                    ; line_number = 313
2912                    ;  if end_of_line_get() start
2913                    ;info   313, 330
2914 014a 22f3          call    end_of_line_get
2915                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
2916                    ; No 1TEST: true.size=15 false.size=0
2917                    ; No 2TEST: true.size=15 false.size=0
2918                    ; 1GOTO: Single test with GOTO
2919 014b 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
2920 014c 295c          goto    main__19
2921                    ; line_number = 314
2922                    ; time_out := _false
2923                    ;info   314, 333
2924 014d 116f          bcf     time_out___byte, time_out___bit
2925                    ; line_number = 315
2926                    ;  while !time_out start
2927   014e :   main__15:
2928                    ;info   315, 334
2929                    ; =>bit_code_emit@symbol(): sym=time_out
2930                    ; No 1TEST: true.size=0 false.size=11
2931                    ; No 2TEST: true.size=0 false.size=11
2932                    ; 1GOTO: Single test with GOTO
2933 014e 196f          btfsc   time_out___byte, time_out___bit
2934 014f 295b          goto    main__18
2935                    ; line_number = 316
2936                    ; value := bus_byte_receive()
2937                    ;info   316, 336
2938 0150 22b0          call    bus_byte_receive
2939 0151 00b7          movwf   main__value
2940                    ; line_number = 317
2941                    ;  call _uart_space_put()
2942                    ;info   317, 338
2943 0152 238d          call    _uart_space_put
2944                    ; line_number = 318
2945                    ;  if time_out start
2946                    ;info   318, 339
2947                    ; =>bit_code_emit@symbol(): sym=time_out
2948                    ; No 1TEST: true.size=2 false.size=2
2949                    ; No 2TEST: true.size=2 false.size=2
2950                    ; 2GOTO: Single test with two GOTO's
2951 0153 1d6f          btfss   time_out___byte, time_out___bit
2952 0154 2958          goto    main__16
2953                    ; line_number = 319
2954                    ; call _uart_byte_put('@')
2955                    ;info   319, 341
2956 0155 3040          movlw   64
2957 0156 2395          call    _uart_byte_put
2958 0157 295a          goto    main__17
2959                    ; 2GOTO: Starting code 2
2960   0158 :   main__16:
2961                    ; line_number = 321
2962                    ; call _uart_hex_put(value)
2963                    ;info   321, 344
2964 0158 0837          movf    main__value,w
2965 0159 237a          call    _uart_hex_put
2966   015a :   main__17:
2967                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2968                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2969                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
2970                    ; line_number = 318
2971                    ;  if time_out done
2972 015a 294e          goto    main__15
2973   015b :   main__18:
2974                    ; Recombine size1 = 0 || size2 = 0
2975                    ; line_number = 315
2976                    ;  while !time_out done
2977                    ; line_number = 322
2978                    ; call _uart_crlf_put()
2979                    ;info   322, 347
2980 015b 2390          call    _uart_crlf_put
2981                    ; Recombine size1 = 0 || size2 = 0
2982   015c :   main__19:
2983                    ; line_number = 313
2984                    ;  if end_of_line_get() done
2985 015c 2a5e          goto    main__79
2986                    ; line_number = 323
2987                    ; case 8
2988   015d :   main__68:
2989                    ; # Identify:
2990                    ; line_number = 325
2991                    ;  if end_of_line_get() start
2992                    ;info   325, 349
2993 015d 22f3          call    end_of_line_get
2994                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
2995                    ; 1TEST: Single test with code in skip slot
2996 015e 1b6f          btfsc   end_of_line_get__0return___byte, end_of_line_get__0return___bit
2997                    ; line_number = 326
2998                    ; call id_dump()
2999                    ;info   326, 351
3000 015f 2261          call    id_dump
3001                    ; Recombine size1 = 0 || size2 = 0
3002                    ; line_number = 325
3003                    ;  if end_of_line_get() done
3004 0160 2a5e          goto    main__79
3005                    ; line_number = 327
3006                    ; case 9
3007   0161 :   main__69:
3008                    ; # Jump:
3009                    ; line_number = 329
3010                    ;  call hex_word_get()
3011                    ;info   329, 353
3012 0161 2313          call    hex_word_get
3013                    ; line_number = 330
3014                    ;  if end_of_line_get() start
3015                    ;info   330, 354
3016 0162 22f3          call    end_of_line_get
3017                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
3018                    ; No 1TEST: true.size=5 false.size=0
3019                    ; No 2TEST: true.size=5 false.size=0
3020                    ; 1GOTO: Single test with GOTO
3021 0163 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
3022 0164 296a          goto    main__20
3023                    ; line_number = 331
3024                    ; call _uart_hex_put(hex_high)
3025                    ;info   331, 357
3026 0165 0826          movf    hex_high,w
3027 0166 237a          call    _uart_hex_put
3028                    ; line_number = 332
3029                    ;  call _uart_hex_put(hex_low)
3030                    ;info   332, 359
3031 0167 0827          movf    hex_low,w
3032 0168 237a          call    _uart_hex_put
3033                    ; line_number = 333
3034                    ;  call _uart_crlf_put()
3035                    ;info   333, 361
3036 0169 2390          call    _uart_crlf_put
3037                    ; Recombine size1 = 0 || size2 = 0
3038   016a :   main__20:
3039                    ; line_number = 330
3040                    ;  if end_of_line_get() done
3041 016a 2a5e          goto    main__79
3042                    ; line_number = 334
3043                    ; case 15
3044   016b :   main__70:
3045                    ; # Print a page of program memory:
3046                    ; line_number = 336
3047                    ;  page := hex_byte_get()
3048                    ;info   336, 363
3049 016b 2310          call    hex_byte_get
3050 016c 00b3          movwf   main__page
3051                    ; line_number = 337
3052                    ;  if end_of_line_get() start
3053                    ;info   337, 365
3054 016d 22f3          call    end_of_line_get
3055                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
3056                    ; No 1TEST: true.size=55 false.size=0
3057                    ; No 2TEST: true.size=55 false.size=0
3058                    ; 1GOTO: Single test with GOTO
3059 016e 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
3060 016f 29a9          goto    main__29
3061                    ; line_number = 338
3062                    ; row := 0
3063                    ;info   338, 368
3064 0170 01b5          clrf    main__row
3065                    ; line_number = 339
3066                    ;  low := 0
3067                    ;info   339, 369
3068 0171 01b1          clrf    main__low
3069                    ; line_number = 340
3070                    ;  while row < 32 start
3071   0172 :   main__21:
3072                    ;info   340, 370
3073 0172 3020          movlw   32
3074 0173 0235          subwf   main__row,w
3075                    ; =>bit_code_emit@symbol(): sym=__c
3076                    ; No 1TEST: true.size=0 false.size=49
3077                    ; No 2TEST: true.size=0 false.size=49
3078                    ; 1GOTO: Single test with GOTO
3079 0174 1803          btfsc   __c___byte, __c___bit
3080 0175 29a9          goto    main__28
3081                    ; line_number = 341
3082                    ; call _uart_hex_put(page)
3083                    ;info   341, 374
3084 0176 0833          movf    main__page,w
3085 0177 237a          call    _uart_hex_put
3086                    ; line_number = 342
3087                    ;  call _uart_hex_put(low)
3088                    ;info   342, 376
3089 0178 0831          movf    main__low,w
3090 0179 237a          call    _uart_hex_put
3091                    ; line_number = 343
3092                    ;  call _uart_byte_put(':')
3093                    ;info   343, 378
3094 017a 303a          movlw   58
3095 017b 2395          call    _uart_byte_put
3096            
3097                    ; # Set address:
3098                    ; line_number = 346
3099                    ;  call bus_byte_send(0)
3100                    ;info   346, 380
3101 017c 3000          movlw   0
3102 017d 2292          call    bus_byte_send
3103                    ; line_number = 347
3104                    ;  call bus_byte_receive()
3105                    ;info   347, 382
3106 017e 22b0          call    bus_byte_receive
3107            
3108                    ; line_number = 349
3109                    ;  call bus_byte_send(page)
3110                    ;info   349, 383
3111 017f 0833          movf    main__page,w
3112 0180 2292          call    bus_byte_send
3113                    ; line_number = 350
3114                    ;  call bus_byte_receive()
3115                    ;info   350, 385
3116 0181 22b0          call    bus_byte_receive
3117            
3118                    ; line_number = 352
3119                    ;  call bus_byte_send(low)
3120                    ;info   352, 386
3121 0182 0831          movf    main__low,w
3122 0183 2292          call    bus_byte_send
3123                    ; line_number = 353
3124                    ;  call bus_byte_receive()
3125                    ;info   353, 388
3126 0184 22b0          call    bus_byte_receive
3127            
3128                    ; # Read the ack byte:
3129                    ; line_number = 356
3130                    ;  call bus_byte_receive()
3131                    ;info   356, 389
3132 0185 22b0          call    bus_byte_receive
3133            
3134                    ; # Read out 8 words:
3135                    ; line_number = 359
3136                    ;  call bus_byte_send(1)
3137                    ;info   359, 390
3138 0186 3001          movlw   1
3139 0187 2292          call    bus_byte_send
3140                    ; line_number = 360
3141                    ;  call bus_byte_receive()
3142                    ;info   360, 392
3143 0188 22b0          call    bus_byte_receive
3144            
3145                    ; line_number = 362
3146                    ;  call bus_byte_send(8)
3147                    ;info   362, 393
3148 0189 3008          movlw   8
3149 018a 2292          call    bus_byte_send
3150                    ; line_number = 363
3151                    ;  call bus_byte_receive()
3152                    ;info   363, 395
3153 018b 22b0          call    bus_byte_receive
3154                    ; line_number = 364
3155                    ;  loop_exactly 8 start
3156                    ;info   364, 396
3157 00000046 = main__22 equ globals___0+38
3158 018c 3008          movlw   8
3159 018d 00c6          movwf   main__22
3160   018e :   main__23:
3161                    ; line_number = 365
3162                    ; value := bus_byte_receive()
3163                    ;info   365, 398
3164 018e 22b0          call    bus_byte_receive
3165 018f 00b7          movwf   main__value
3166                    ; line_number = 366
3167                    ;  call _uart_space_put()
3168                    ;info   366, 400
3169 0190 238d          call    _uart_space_put
3170                    ; line_number = 367
3171                    ;  if time_out start
3172                    ;info   367, 401
3173                    ; =>bit_code_emit@symbol(): sym=time_out
3174                    ; No 1TEST: true.size=2 false.size=2
3175                    ; No 2TEST: true.size=2 false.size=2
3176                    ; 2GOTO: Single test with two GOTO's
3177 0191 1d6f          btfss   time_out___byte, time_out___bit
3178 0192 2996          goto    main__24
3179                    ; line_number = 368
3180                    ; call _uart_byte_put('@')
3181                    ;info   368, 403
3182 0193 3040          movlw   64
3183 0194 2395          call    _uart_byte_put
3184 0195 2998          goto    main__25
3185                    ; 2GOTO: Starting code 2
3186   0196 :   main__24:
3187                    ; line_number = 370
3188                    ; call _uart_hex_put(value)
3189                    ;info   370, 406
3190 0196 0837          movf    main__value,w
3191 0197 237a          call    _uart_hex_put
3192   0198 :   main__25:
3193                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3194                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3195                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3196                    ; line_number = 367
3197                    ;  if time_out done
3198                    ; line_number = 371
3199                    ; value := bus_byte_receive()
3200                    ;info   371, 408
3201 0198 22b0          call    bus_byte_receive
3202 0199 00b7          movwf   main__value
3203                    ; line_number = 372
3204                    ;  if time_out start
3205                    ;info   372, 410
3206                    ; =>bit_code_emit@symbol(): sym=time_out
3207                    ; No 1TEST: true.size=2 false.size=2
3208                    ; No 2TEST: true.size=2 false.size=2
3209                    ; 2GOTO: Single test with two GOTO's
3210 019a 1d6f          btfss   time_out___byte, time_out___bit
3211 019b 299f          goto    main__26
3212                    ; line_number = 373
3213                    ; call _uart_byte_put('@')
3214                    ;info   373, 412
3215 019c 3040          movlw   64
3216 019d 2395          call    _uart_byte_put
3217 019e 29a1          goto    main__27
3218                    ; 2GOTO: Starting code 2
3219   019f :   main__26:
3220                    ; line_number = 375
3221                    ; call _uart_hex_put(value)
3222                    ;info   375, 415
3223 019f 0837          movf    main__value,w
3224 01a0 237a          call    _uart_hex_put
3225            
3226   01a1 :   main__27:
3227                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3228                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3229                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3230                    ; line_number = 372
3231                    ;  if time_out done
3232                    ; line_number = 364
3233                    ;  loop_exactly 8 wrap-up
3234 01a1 0bc6          decfsz  main__22,f
3235 01a2 298e          goto    main__23
3236                    ; line_number = 364
3237                    ;  loop_exactly 8 done
3238                    ; # Read the ack byte:
3239                    ; line_number = 378
3240                    ;  call bus_byte_receive()
3241                    ;info   378, 419
3242 01a3 22b0          call    bus_byte_receive
3243            
3244                    ; line_number = 380
3245                    ;  call _uart_crlf_put()
3246                    ;info   380, 420
3247 01a4 2390          call    _uart_crlf_put
3248                    ; line_number = 381
3249                    ;  row := row + 1
3250                    ;info   381, 421
3251 01a5 0ab5          incf    main__row,f
3252                    ; line_number = 382
3253                    ;  low := low + 8
3254                    ;info   382, 422
3255 01a6 3008          movlw   8
3256 01a7 07b1          addwf   main__low,f
3257 01a8 2972          goto    main__21
3258   01a9 :   main__28:
3259                    ; Recombine size1 = 0 || size2 = 0
3260                    ; line_number = 340
3261                    ;  while row < 32 done
3262                    ; Recombine size1 = 0 || size2 = 0
3263   01a9 :   main__29:
3264                    ; line_number = 337
3265                    ;  if end_of_line_get() done
3266 01a9 2a5e          goto    main__79
3267                    ; line_number = 383
3268                    ; case 17
3269   01aa :   main__71:
3270                    ; # Read:
3271                    ; line_number = 385
3272                    ;  call hex_word_get()
3273                    ;info   385, 426
3274 01aa 2313          call    hex_word_get
3275                    ; line_number = 386
3276                    ;  if end_of_line_get() start
3277                    ;info   386, 427
3278 01ab 22f3          call    end_of_line_get
3279                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
3280                    ; No 1TEST: true.size=5 false.size=0
3281                    ; No 2TEST: true.size=5 false.size=0
3282                    ; 1GOTO: Single test with GOTO
3283 01ac 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
3284 01ad 29b3          goto    main__30
3285                    ; line_number = 387
3286                    ; call _uart_hex_put(hex_high)
3287                    ;info   387, 430
3288 01ae 0826          movf    hex_high,w
3289 01af 237a          call    _uart_hex_put
3290                    ; line_number = 388
3291                    ;  call _uart_hex_put(hex_low)
3292                    ;info   388, 432
3293 01b0 0827          movf    hex_low,w
3294 01b1 237a          call    _uart_hex_put
3295                    ; line_number = 389
3296                    ;  call _uart_crlf_put()
3297                    ;info   389, 434
3298 01b2 2390          call    _uart_crlf_put
3299                    ; Recombine size1 = 0 || size2 = 0
3300   01b3 :   main__30:
3301                    ; line_number = 386
3302                    ;  if end_of_line_get() done
3303 01b3 2a5e          goto    main__79
3304                    ; line_number = 390
3305                    ; case 18
3306   01b4 :   main__72:
3307                    ; # Select:
3308                    ; line_number = 392
3309                    ;  node := hex_byte_get()
3310                    ;info   392, 436
3311 01b4 2310          call    hex_byte_get
3312 01b5 00b2          movwf   main__node
3313                    ; line_number = 393
3314                    ;  if end_of_line_get() start
3315                    ;info   393, 438
3316 01b6 22f3          call    end_of_line_get
3317                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
3318                    ; No 1TEST: true.size=47 false.size=0
3319                    ; No 2TEST: true.size=47 false.size=0
3320                    ; 1GOTO: Single test with GOTO
3321 01b7 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
3322 01b8 29e8          goto    main__40
3323                    ; line_number = 394
3324                    ; call _uart_crlf_put()
3325                    ;info   394, 441
3326 01b9 2390          call    _uart_crlf_put
3327                    ; line_number = 395
3328                    ;  call bus_select_send(node)
3329                    ;info   395, 442
3330 01ba 0832          movf    main__node,w
3331 01bb 22a1          call    bus_select_send
3332                    ; line_number = 396
3333                    ;  value := bus_byte_receive()
3334                    ;info   396, 444
3335 01bc 22b0          call    bus_byte_receive
3336 01bd 00b7          movwf   main__value
3337                    ; line_number = 397
3338                    ;  if time_out start
3339                    ;info   397, 446
3340                    ; =>bit_code_emit@symbol(): sym=time_out
3341                    ; No 1TEST: true.size=2 false.size=6
3342                    ; No 2TEST: true.size=2 false.size=6
3343                    ; 2GOTO: Single test with two GOTO's
3344 01be 1d6f          btfss   time_out___byte, time_out___bit
3345 01bf 29c3          goto    main__32
3346                    ; line_number = 398
3347                    ; call _uart_byte_put('@')
3348                    ;info   398, 448
3349 01c0 3040          movlw   64
3350 01c1 2395          call    _uart_byte_put
3351 01c2 29c9          goto    main__33
3352                    ; 2GOTO: Starting code 2
3353   01c3 :   main__32:
3354                    ; line_number = 400
3355                    ; if bus_msb start
3356                    ;info   400, 451
3357                    ; =>bit_code_emit@symbol(): sym=bus_msb
3358                    ; No 1TEST: true.size=2 false.size=0
3359                    ; No 2TEST: true.size=2 false.size=0
3360                    ; 1GOTO: Single test with GOTO
3361 01c3 1def          btfss   bus_msb___byte, bus_msb___bit
3362 01c4 29c7          goto    main__31
3363                    ; line_number = 401
3364                    ; call _uart_byte_put('1')
3365                    ;info   401, 453
3366 01c5 3031          movlw   49
3367 01c6 2395          call    _uart_byte_put
3368                    ; Recombine size1 = 0 || size2 = 0
3369   01c7 :   main__31:
3370                    ; line_number = 400
3371                    ; if bus_msb done
3372                    ; line_number = 402
3373                    ; call _uart_hex_put(value)
3374                    ;info   402, 455
3375 01c7 0837          movf    main__value,w
3376 01c8 237a          call    _uart_hex_put
3377   01c9 :   main__33:
3378                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3379                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3380                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3381                    ; line_number = 397
3382                    ;  if time_out done
3383                    ; line_number = 403
3384                    ; call _uart_byte_put(' ')
3385                    ;info   403, 457
3386 01c9 3020          movlw   32
3387 01ca 2395          call    _uart_byte_put
3388            
3389                    ; line_number = 405
3390                    ;  value := bus_byte_receive()
3391                    ;info   405, 459
3392 01cb 22b0          call    bus_byte_receive
3393 01cc 00b7          movwf   main__value
3394                    ; line_number = 406
3395                    ;  if time_out start
3396                    ;info   406, 461
3397                    ; =>bit_code_emit@symbol(): sym=time_out
3398                    ; No 1TEST: true.size=2 false.size=6
3399                    ; No 2TEST: true.size=2 false.size=6
3400                    ; 2GOTO: Single test with two GOTO's
3401 01cd 1d6f          btfss   time_out___byte, time_out___bit
3402 01ce 29d2          goto    main__35
3403                    ; line_number = 407
3404                    ; call _uart_byte_put('@')
3405                    ;info   407, 463
3406 01cf 3040          movlw   64
3407 01d0 2395          call    _uart_byte_put
3408 01d1 29d8          goto    main__36
3409                    ; 2GOTO: Starting code 2
3410   01d2 :   main__35:
3411                    ; line_number = 409
3412                    ; if bus_msb start
3413                    ;info   409, 466
3414                    ; =>bit_code_emit@symbol(): sym=bus_msb
3415                    ; No 1TEST: true.size=2 false.size=0
3416                    ; No 2TEST: true.size=2 false.size=0
3417                    ; 1GOTO: Single test with GOTO
3418 01d2 1def          btfss   bus_msb___byte, bus_msb___bit
3419 01d3 29d6          goto    main__34
3420                    ; line_number = 410
3421                    ; call _uart_byte_put('1')
3422                    ;info   410, 468
3423 01d4 3031          movlw   49
3424 01d5 2395          call    _uart_byte_put
3425                    ; Recombine size1 = 0 || size2 = 0
3426   01d6 :   main__34:
3427                    ; line_number = 409
3428                    ; if bus_msb done
3429                    ; line_number = 411
3430                    ; call _uart_hex_put(value)
3431                    ;info   411, 470
3432 01d6 0837          movf    main__value,w
3433 01d7 237a          call    _uart_hex_put
3434   01d8 :   main__36:
3435                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3436                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3437                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3438                    ; line_number = 406
3439                    ;  if time_out done
3440                    ; line_number = 412
3441                    ; call _uart_byte_put(' ')
3442                    ;info   412, 472
3443 01d8 3020          movlw   32
3444 01d9 2395          call    _uart_byte_put
3445                    ; line_number = 413
3446                    ;  value := bus_byte_receive()
3447                    ;info   413, 474
3448 01da 22b0          call    bus_byte_receive
3449 01db 00b7          movwf   main__value
3450            
3451                    ; line_number = 415
3452                    ;  if time_out start
3453                    ;info   415, 476
3454                    ; =>bit_code_emit@symbol(): sym=time_out
3455                    ; No 1TEST: true.size=2 false.size=6
3456                    ; No 2TEST: true.size=2 false.size=6
3457                    ; 2GOTO: Single test with two GOTO's
3458 01dc 1d6f          btfss   time_out___byte, time_out___bit
3459 01dd 29e1          goto    main__38
3460                    ; line_number = 416
3461                    ; call _uart_byte_put('@')
3462                    ;info   416, 478
3463 01de 3040          movlw   64
3464 01df 2395          call    _uart_byte_put
3465 01e0 29e7          goto    main__39
3466                    ; 2GOTO: Starting code 2
3467   01e1 :   main__38:
3468                    ; line_number = 418
3469                    ; if bus_msb start
3470                    ;info   418, 481
3471                    ; =>bit_code_emit@symbol(): sym=bus_msb
3472                    ; No 1TEST: true.size=2 false.size=0
3473                    ; No 2TEST: true.size=2 false.size=0
3474                    ; 1GOTO: Single test with GOTO
3475 01e1 1def          btfss   bus_msb___byte, bus_msb___bit
3476 01e2 29e5          goto    main__37
3477                    ; line_number = 419
3478                    ; call _uart_byte_put('1')
3479                    ;info   419, 483
3480 01e3 3031          movlw   49
3481 01e4 2395          call    _uart_byte_put
3482                    ; Recombine size1 = 0 || size2 = 0
3483   01e5 :   main__37:
3484                    ; line_number = 418
3485                    ; if bus_msb done
3486                    ; line_number = 420
3487                    ; call _uart_hex_put(value)
3488                    ;info   420, 485
3489 01e5 0837          movf    main__value,w
3490 01e6 237a          call    _uart_hex_put
3491   01e7 :   main__39:
3492                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3493                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3494                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3495                    ; line_number = 415
3496                    ;  if time_out done
3497                    ; line_number = 421
3498                    ; call _uart_crlf_put()
3499                    ;info   421, 487
3500 01e7 2390          call    _uart_crlf_put
3501                    ; Recombine size1 = 0 || size2 = 0
3502   01e8 :   main__40:
3503                    ; line_number = 393
3504                    ;  if end_of_line_get() done
3505 01e8 2a5e          goto    main__79
3506                    ; line_number = 422
3507                    ; case 19
3508   01e9 :   main__73:
3509                    ; # Test mode:
3510                    ; line_number = 424
3511                    ;  loop_forever start
3512   01e9 :   main__41:
3513                    ; line_number = 425
3514                    ; call bus_select_send(8)
3515                    ;info   425, 489
3516 01e9 3008          movlw   8
3517 01ea 22a1          call    bus_select_send
3518                    ; line_number = 426
3519                    ;  loop_exactly 255 start
3520                    ;info   426, 491
3521 00000046 = main__42 equ globals___0+38
3522 01eb 30ff          movlw   255
3523 01ec 00c6          movwf   main__42
3524   01ed :   main__43:
3525                    ; line_number = 427
3526                    ; delay 600 start
3527                    ;info   427, 493
3528                    ; Delay expression evaluates to 600
3529                    ; line_number = 428
3530                    ; do_nothing
3531                    ;info   428, 493
3532            
3533                    ; Delay 600 cycles
3534                    ; Delay loop takes 150 * 4 = 600 cycles
3535 01ed 3096          movlw   150
3536   01ee :   main__44:
3537 01ee 3eff          addlw   255
3538 01ef 1d03          btfss   __z___byte, __z___bit
3539 01f0 29ee          goto    main__44
3540                    ; line_number = 427
3541                    ; delay 600 done
3542                    ; line_number = 426
3543                    ;  loop_exactly 255 wrap-up
3544 01f1 0bc6          decfsz  main__42,f
3545 01f2 29ed          goto    main__43
3546                    ; line_number = 426
3547                    ;  loop_exactly 255 done
3548                    ; line_number = 430
3549                    ; call bus_byte_send(command & 0xf)
3550                    ;info   430, 499
3551 01f3 300f          movlw   15
3552 01f4 052f          andwf   main__command,w
3553 01f5 2292          call    bus_byte_send
3554                    ; line_number = 431
3555                    ;  command := command + 1
3556                    ;info   431, 502
3557 01f6 0aaf          incf    main__command,f
3558                    ; line_number = 432
3559                    ;  loop_exactly 255 start
3560                    ;info   432, 503
3561 00000046 = main__45 equ globals___0+38
3562 01f7 30ff          movlw   255
3563 01f8 00c6          movwf   main__45
3564   01f9 :   main__46:
3565                    ; line_number = 433
3566                    ; delay 600 start
3567                    ;info   433, 505
3568                    ; Delay expression evaluates to 600
3569                    ; line_number = 434
3570                    ; do_nothing
3571                    ;info   434, 505
3572                    ; Delay 600 cycles
3573                    ; Delay loop takes 150 * 4 = 600 cycles
3574 01f9 3096          movlw   150
3575   01fa :   main__47:
3576 01fa 3eff          addlw   255
3577 01fb 1d03          btfss   __z___byte, __z___bit
3578 01fc 29fa          goto    main__47
3579                    ; line_number = 433
3580                    ; delay 600 done
3581                    ; line_number = 432
3582                    ;  loop_exactly 255 wrap-up
3583 01fd 0bc6          decfsz  main__45,f
3584 01fe 29f9          goto    main__46
3585                    ; line_number = 432
3586                    ;  loop_exactly 255 done
3587                    ; line_number = 435
3588                    ; call _uart_byte_put('.')
3589                    ;info   435, 511
3590 01ff 302e          movlw   46
3591 0200 2395          call    _uart_byte_put
3592            
3593                    ; line_number = 424
3594                    ;  loop_forever wrap-up
3595 0201 29e9          goto    main__41
3596                    ; line_number = 424
3597                    ;  loop_forever done
3598 0202 2a5e          goto    main__79
3599                    ; line_number = 437
3600                    ; case 22
3601   0203 :   main__74:
3602                    ; # Write:
3603                    ; line_number = 439
3604                    ;  call hex_word_get()
3605                    ;info   439, 515
3606 0203 2313          call    hex_word_get
3607                    ; line_number = 440
3608                    ;  value := hex_byte_get()
3609                    ;info   440, 516
3610 0204 2310          call    hex_byte_get
3611 0205 00b7          movwf   main__value
3612                    ; line_number = 441
3613                    ;  if end_of_line_get() start
3614                    ;info   441, 518
3615 0206 22f3          call    end_of_line_get
3616                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
3617                    ; No 1TEST: true.size=7 false.size=0
3618                    ; No 2TEST: true.size=7 false.size=0
3619                    ; 1GOTO: Single test with GOTO
3620 0207 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
3621 0208 2a10          goto    main__48
3622                    ; line_number = 442
3623                    ; call _uart_hex_put(hex_high)
3624                    ;info   442, 521
3625 0209 0826          movf    hex_high,w
3626 020a 237a          call    _uart_hex_put
3627                    ; line_number = 443
3628                    ;  call _uart_hex_put(hex_low)
3629                    ;info   443, 523
3630 020b 0827          movf    hex_low,w
3631 020c 237a          call    _uart_hex_put
3632                    ; line_number = 444
3633                    ;  call _uart_hex_put(value)
3634                    ;info   444, 525
3635 020d 0837          movf    main__value,w
3636 020e 237a          call    _uart_hex_put
3637                    ; line_number = 445
3638                    ;  call _uart_crlf_put()
3639                    ;info   445, 527
3640 020f 2390          call    _uart_crlf_put
3641                    ; Recombine size1 = 0 || size2 = 0
3642   0210 :   main__48:
3643                    ; line_number = 441
3644                    ;  if end_of_line_get() done
3645 0210 2a5e          goto    main__79
3646                    ; line_number = 446
3647                    ; case 23
3648   0211 :   main__75:
3649                    ; # Transmit:
3650                    ; line_number = 448
3651                    ;  value := hex_byte_get()
3652                    ;info   448, 529
3653 0211 2310          call    hex_byte_get
3654 0212 00b7          movwf   main__value
3655                    ; line_number = 449
3656                    ;  if end_of_line_get() start
3657                    ;info   449, 531
3658 0213 22f3          call    end_of_line_get
3659                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
3660                    ; No 1TEST: true.size=46 false.size=0
3661                    ; No 2TEST: true.size=46 false.size=0
3662                    ; 1GOTO: Single test with GOTO
3663 0214 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
3664 0215 2a44          goto    main__58
3665                    ; #call _uart_hex_put(value)
3666                    ; #call _uart_crlf_put()
3667                    ; line_number = 452
3668                    ;  call bus_byte_send(value)
3669                    ;info   452, 534
3670 0216 0837          movf    main__value,w
3671 0217 2292          call    bus_byte_send
3672            
3673                    ; line_number = 454
3674                    ;  value := bus_byte_receive()
3675                    ;info   454, 536
3676 0218 22b0          call    bus_byte_receive
3677 0219 00b7          movwf   main__value
3678                    ; line_number = 455
3679                    ;  if time_out start
3680                    ;info   455, 538
3681                    ; =>bit_code_emit@symbol(): sym=time_out
3682                    ; No 1TEST: true.size=2 false.size=6
3683                    ; No 2TEST: true.size=2 false.size=6
3684                    ; 2GOTO: Single test with two GOTO's
3685 021a 1d6f          btfss   time_out___byte, time_out___bit
3686 021b 2a1f          goto    main__50
3687                    ; line_number = 456
3688                    ; call _uart_byte_put('@')
3689                    ;info   456, 540
3690 021c 3040          movlw   64
3691 021d 2395          call    _uart_byte_put
3692 021e 2a25          goto    main__51
3693                    ; 2GOTO: Starting code 2
3694   021f :   main__50:
3695                    ; line_number = 458
3696                    ; if bus_msb start
3697                    ;info   458, 543
3698                    ; =>bit_code_emit@symbol(): sym=bus_msb
3699                    ; No 1TEST: true.size=2 false.size=0
3700                    ; No 2TEST: true.size=2 false.size=0
3701                    ; 1GOTO: Single test with GOTO
3702 021f 1def          btfss   bus_msb___byte, bus_msb___bit
3703 0220 2a23          goto    main__49
3704                    ; line_number = 459
3705                    ; call _uart_byte_put('1')
3706                    ;info   459, 545
3707 0221 3031          movlw   49
3708 0222 2395          call    _uart_byte_put
3709                    ; Recombine size1 = 0 || size2 = 0
3710   0223 :   main__49:
3711                    ; line_number = 458
3712                    ; if bus_msb done
3713                    ; line_number = 460
3714                    ; call _uart_hex_put(value)
3715                    ;info   460, 547
3716 0223 0837          movf    main__value,w
3717 0224 237a          call    _uart_hex_put
3718   0225 :   main__51:
3719                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3720                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3721                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3722                    ; line_number = 455
3723                    ;  if time_out done
3724                    ; line_number = 461
3725                    ; call _uart_byte_put(' ')
3726                    ;info   461, 549
3727 0225 3020          movlw   32
3728 0226 2395          call    _uart_byte_put
3729            
3730                    ; line_number = 463
3731                    ;  value := bus_byte_receive()
3732                    ;info   463, 551
3733 0227 22b0          call    bus_byte_receive
3734 0228 00b7          movwf   main__value
3735                    ; line_number = 464
3736                    ;  if time_out start
3737                    ;info   464, 553
3738                    ; =>bit_code_emit@symbol(): sym=time_out
3739                    ; No 1TEST: true.size=2 false.size=6
3740                    ; No 2TEST: true.size=2 false.size=6
3741                    ; 2GOTO: Single test with two GOTO's
3742 0229 1d6f          btfss   time_out___byte, time_out___bit
3743 022a 2a2e          goto    main__53
3744                    ; line_number = 465
3745                    ; call _uart_byte_put('@')
3746                    ;info   465, 555
3747 022b 3040          movlw   64
3748 022c 2395          call    _uart_byte_put
3749 022d 2a34          goto    main__54
3750                    ; 2GOTO: Starting code 2
3751   022e :   main__53:
3752                    ; line_number = 467
3753                    ; if bus_msb start
3754                    ;info   467, 558
3755                    ; =>bit_code_emit@symbol(): sym=bus_msb
3756                    ; No 1TEST: true.size=2 false.size=0
3757                    ; No 2TEST: true.size=2 false.size=0
3758                    ; 1GOTO: Single test with GOTO
3759 022e 1def          btfss   bus_msb___byte, bus_msb___bit
3760 022f 2a32          goto    main__52
3761                    ; line_number = 468
3762                    ; call _uart_byte_put('1')
3763                    ;info   468, 560
3764 0230 3031          movlw   49
3765 0231 2395          call    _uart_byte_put
3766                    ; Recombine size1 = 0 || size2 = 0
3767   0232 :   main__52:
3768                    ; line_number = 467
3769                    ; if bus_msb done
3770                    ; line_number = 469
3771                    ; call _uart_hex_put(value)
3772                    ;info   469, 562
3773 0232 0837          movf    main__value,w
3774 0233 237a          call    _uart_hex_put
3775   0234 :   main__54:
3776                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3777                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3778                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3779                    ; line_number = 464
3780                    ;  if time_out done
3781                    ; line_number = 470
3782                    ; call _uart_byte_put(' ')
3783                    ;info   470, 564
3784 0234 3020          movlw   32
3785 0235 2395          call    _uart_byte_put
3786            
3787                    ; line_number = 472
3788                    ;  value := bus_byte_receive()
3789                    ;info   472, 566
3790 0236 22b0          call    bus_byte_receive
3791 0237 00b7          movwf   main__value
3792                    ; line_number = 473
3793                    ;  if time_out start
3794                    ;info   473, 568
3795                    ; =>bit_code_emit@symbol(): sym=time_out
3796                    ; No 1TEST: true.size=2 false.size=6
3797                    ; No 2TEST: true.size=2 false.size=6
3798                    ; 2GOTO: Single test with two GOTO's
3799 0238 1d6f          btfss   time_out___byte, time_out___bit
3800 0239 2a3d          goto    main__56
3801                    ; line_number = 474
3802                    ; call _uart_byte_put('@')
3803                    ;info   474, 570
3804 023a 3040          movlw   64
3805 023b 2395          call    _uart_byte_put
3806 023c 2a43          goto    main__57
3807                    ; 2GOTO: Starting code 2
3808   023d :   main__56:
3809                    ; line_number = 476
3810                    ; if bus_msb start
3811                    ;info   476, 573
3812                    ; =>bit_code_emit@symbol(): sym=bus_msb
3813                    ; No 1TEST: true.size=2 false.size=0
3814                    ; No 2TEST: true.size=2 false.size=0
3815                    ; 1GOTO: Single test with GOTO
3816 023d 1def          btfss   bus_msb___byte, bus_msb___bit
3817 023e 2a41          goto    main__55
3818                    ; line_number = 477
3819                    ; call _uart_byte_put('1')
3820                    ;info   477, 575
3821 023f 3031          movlw   49
3822 0240 2395          call    _uart_byte_put
3823                    ; Recombine size1 = 0 || size2 = 0
3824   0241 :   main__55:
3825                    ; line_number = 476
3826                    ; if bus_msb done
3827                    ; line_number = 478
3828                    ; call _uart_hex_put(value)
3829                    ;info   478, 577
3830 0241 0837          movf    main__value,w
3831 0242 237a          call    _uart_hex_put
3832            
3833   0243 :   main__57:
3834                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3835                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3836                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3837                    ; line_number = 473
3838                    ;  if time_out done
3839                    ; line_number = 480
3840                    ; call _uart_crlf_put()
3841                    ;info   480, 579
3842 0243 2390          call    _uart_crlf_put
3843                    ; Recombine size1 = 0 || size2 = 0
3844   0244 :   main__58:
3845                    ; line_number = 449
3846                    ;  if end_of_line_get() done
3847 0244 2a5e          goto    main__79
3848                    ; line_number = 481
3849                    ; case 25
3850   0245 :   main__76:
3851                    ; # Sweep bus looking for modules:
3852                    ; line_number = 483
3853                    ;  if end_of_line_get() start
3854                    ;info   483, 581
3855 0245 22f3          call    end_of_line_get
3856                    ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
3857                    ; No 1TEST: true.size=18 false.size=0
3858                    ; No 2TEST: true.size=18 false.size=0
3859                    ; 1GOTO: Single test with GOTO
3860 0246 1f6f          btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
3861 0247 2a5a          goto    main__62
3862                    ; line_number = 484
3863                    ; node := 1
3864                    ;info   484, 584
3865 0248 3001          movlw   1
3866 0249 00b2          movwf   main__node
3867                    ; line_number = 485
3868                    ;  while node != 0 start
3869   024a :   main__59:
3870                    ;info   485, 586
3871                    ; Left minus Right
3872 024a 0832          movf    main__node,w
3873                    ; =>bit_code_emit@symbol(): sym=__z
3874                    ; No 1TEST: true.size=0 false.size=13
3875                    ; No 2TEST: true.size=0 false.size=13
3876                    ; 1GOTO: Single test with GOTO
3877 024b 1903          btfsc   __z___byte, __z___bit
3878 024c 2a5a          goto    main__61
3879                    ; line_number = 486
3880                    ; call bus_select_send(node)
3881                    ;info   486, 589
3882 024d 0832          movf    main__node,w
3883 024e 22a1          call    bus_select_send
3884                    ; line_number = 487
3885                    ;  if bus_byte_receive() = 0xa5 start
3886                    ;info   487, 591
3887                    ; Left minus Right
3888 024f 22b0          call    bus_byte_receive
3889 0250 3e5b          addlw   91
3890                    ; =>bit_code_emit@symbol(): sym=__z
3891                    ; No 1TEST: true.size=5 false.size=0
3892                    ; No 2TEST: true.size=5 false.size=0
3893                    ; 1GOTO: Single test with GOTO
3894 0251 1d03          btfss   __z___byte, __z___bit
3895 0252 2a58          goto    main__60
3896                    ; line_number = 488
3897                    ; call _uart_hex_put(node)
3898                    ;info   488, 595
3899 0253 0832          movf    main__node,w
3900 0254 237a          call    _uart_hex_put
3901                    ; line_number = 489
3902                    ;  call _uart_byte_put(':')
3903                    ;info   489, 597
3904 0255 303a          movlw   58
3905 0256 2395          call    _uart_byte_put
3906                    ; line_number = 490
3907                    ;  call id_dump()
3908                    ;info   490, 599
3909 0257 2261          call    id_dump
3910                    ; Recombine size1 = 0 || size2 = 0
3911   0258 :   main__60:
3912                    ; line_number = 487
3913                    ;  if bus_byte_receive() = 0xa5 done
3914                    ; line_number = 491
3915                    ; node := node + 1
3916                    ;info   491, 600
3917 0258 0ab2          incf    main__node,f
3918 0259 2a4a          goto    main__59
3919   025a :   main__61:
3920                    ; Recombine size1 = 0 || size2 = 0
3921                    ; line_number = 485
3922                    ;  while node != 0 done
3923                    ; Recombine size1 = 0 || size2 = 0
3924   025a :   main__62:
3925                    ; line_number = 483
3926                    ;  if end_of_line_get() done
3927 025a 2a5e          goto    main__79
3928                    ; line_number = 492
3929                    ; default
3930   025b :   main__77:
3931                    ; # Command not implemented:
3932                    ; line_number = 494
3933                    ;  call _uart_byte_put('?')
3934                    ;info   494, 603
3935 025b 303f          movlw   63
3936 025c 2395          call    _uart_byte_put
3937                    ; line_number = 495
3938                    ;  call _uart_crlf_put()
3939                    ;info   495, 605
3940 025d 2390          call    _uart_crlf_put
3941   025e :   main__79:
3942                    ; line_number = 279
3943                    ;  switch command - 'A' done
3944   025e :   main__82:
3945                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3946                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3947                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3948                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
3949                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
3950                    ; Recombine code1_bit_states != code2_bit_states
3951                    ; 2GOTO: No goto needed; true= false=main__80 true_size=371 false_size=1
3952                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3953                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
3954                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3955                    ; line_number = 277
3956                    ; if 'A' <= command && command <= 'Z' done
3957                    ; # Provide a prompt:
3958                    ; line_number = 509
3959                    ;  call _uart_byte_put('>')
3960                    ;info   509, 606
3961 025e 303e          movlw   62
3962 025f 2395          call    _uart_byte_put
3963            
3964            
3965   0260 :   main__104:
3966                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3967                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3968                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
3969                    ; line_number = 219
3970                    ;  if command@7 done
3971                    ; line_number = 212
3972                    ;  loop_forever wrap-up
3973 0260 285d          goto    main__3
3974                    ; line_number = 212
3975                    ;  loop_forever done
3976                    ; delay after procedure statements=non-uniform
3977            
3978            
3979            
3980            
3981                    ; line_number = 512
3982                    ;info   512, 609
3983                    ; procedure id_dump
3984   0261 :   id_dump:
3985                    ; arguments_none
3986                    ; line_number = 514
3987                    ;  returns_nothing
3988            
3989                    ; # This procedure will print out the id information for the
3990                    ; # currently selected module.
3991            
3992                    ; line_number = 519
3993                    ;  local value byte
3994 0000003c = id_dump__value equ globals___0+28
3995            
3996                    ; # Reset the id index:
3997                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
3998                    ; line_number = 522
3999                    ;  call bus_byte_send(0xfe)
4000                    ;info   522, 609
4001 0261 30fe          movlw   254
4002 0262 2292          call    bus_byte_send
4003            
4004                    ; # Very few modules return the total length right now (just Shaft2);
4005                    ; # Eventually they all will.  This routine will time-out if nothing
4006                    ; # is forthcoming.
4007                    ; line_number = 527
4008                    ;  value := bus_byte_receive()
4009                    ;info   527, 611
4010 0263 22b0          call    bus_byte_receive
4011 0264 00bc          movwf   id_dump__value
4012            
4013                    ; # Read the fixed part:
4014                    ; line_number = 530
4015                    ;  loop_exactly 5 start
4016                    ;info   530, 613
4017 00000048 = id_dump__1 equ globals___0+40
4018 0265 3005          movlw   5
4019 0266 00c8          movwf   id_dump__1
4020   0267 :   id_dump__2:
4021                    ; line_number = 531
4022                    ; value := bus_byte_send_receive(0xfd)
4023                    ;info   531, 615
4024 0267 30fd          movlw   253
4025 0268 228d          call    bus_byte_send_receive
4026 0269 00bc          movwf   id_dump__value
4027                    ; line_number = 532
4028                    ;  call _uart_hex_put(value)
4029                    ;info   532, 618
4030 026a 083c          movf    id_dump__value,w
4031 026b 237a          call    _uart_hex_put
4032                    ; line_number = 533
4033                    ;  call _uart_space_put()
4034                    ;info   533, 620
4035 026c 238d          call    _uart_space_put
4036            
4037            
4038                    ; line_number = 530
4039                    ;  loop_exactly 5 wrap-up
4040 026d 0bc8          decfsz  id_dump__1,f
4041 026e 2a67          goto    id_dump__2
4042                    ; line_number = 530
4043                    ;  loop_exactly 5 done
4044                    ; # Dump the name string:
4045                    ; line_number = 537
4046                    ;  if value & 2 != 0 start
4047                    ;info   537, 623
4048                    ; Left minus Right
4049 026f 3002          movlw   2
4050 0270 053c          andwf   id_dump__value,w
4051                    ; =>bit_code_emit@symbol(): sym=__z
4052                    ; 1TEST: Single test with code in skip slot
4053 0271 1d03          btfss   __z___byte, __z___bit
4054                    ; line_number = 538
4055                    ; call string_dump()
4056                    ;info   538, 626
4057 0272 2279          call    string_dump
4058            
4059                    ; Recombine size1 = 0 || size2 = 0
4060                    ; line_number = 537
4061                    ;  if value & 2 != 0 done
4062                    ; # Dump the vendor string:
4063                    ; line_number = 541
4064                    ;  if value & 1 != 0 start
4065                    ;info   541, 627
4066                    ; Left minus Right
4067 0273 3001          movlw   1
4068 0274 053c          andwf   id_dump__value,w
4069                    ; =>bit_code_emit@symbol(): sym=__z
4070                    ; 1TEST: Single test with code in skip slot
4071 0275 1d03          btfss   __z___byte, __z___bit
4072                    ; line_number = 542
4073                    ; call string_dump()
4074                    ;info   542, 630
4075 0276 2279          call    string_dump
4076            
4077                    ; Recombine size1 = 0 || size2 = 0
4078                    ; line_number = 541
4079                    ;  if value & 1 != 0 done
4080                    ; line_number = 544
4081                    ; call _uart_crlf_put()
4082                    ;info   544, 631
4083 0277 2390          call    _uart_crlf_put
4084            
4085            
4086                    ; delay after procedure statements=non-uniform
4087                    ; Implied return
4088 0278 3400          retlw   0
4089            
4090            
4091            
4092            
4093                    ; line_number = 547
4094                    ;info   547, 633
4095                    ; procedure string_dump
4096   0279 :   string_dump:
4097                    ; arguments_none
4098                    ; line_number = 549
4099                    ;  returns_nothing
4100            
4101                    ; # This procedure will dump a string from the id information.
4102            
4103                    ; line_number = 553
4104                    ;  local length byte
4105 0000003d = string_dump__length equ globals___0+29
4106            
4107                    ; # We have a vendor string; now read the length:
4108                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4109                    ; line_number = 556
4110                    ;  call _uart_space_put()
4111                    ;info   556, 633
4112 0279 238d          call    _uart_space_put
4113                    ; line_number = 557
4114                    ;  length := bus_byte_send_receive(0xfd)
4115                    ;info   557, 634
4116 027a 30fd          movlw   253
4117 027b 228d          call    bus_byte_send_receive
4118 027c 00bd          movwf   string_dump__length
4119                    ; line_number = 558
4120                    ;  call _uart_hex_put(length)
4121                    ;info   558, 637
4122 027d 083d          movf    string_dump__length,w
4123 027e 237a          call    _uart_hex_put
4124                    ; line_number = 559
4125                    ;  call _uart_byte_put(':')
4126                    ;info   559, 639
4127 027f 303a          movlw   58
4128 0280 2395          call    _uart_byte_put
4129            
4130                    ; # Print out the vendor string:
4131                    ; line_number = 562
4132                    ;  call _uart_byte_put('"')
4133                    ;info   562, 641
4134 0281 3022          movlw   34
4135 0282 2395          call    _uart_byte_put
4136                    ; line_number = 563
4137                    ;  loop_exactly length start
4138                    ;info   563, 643
4139 00000049 = string_dump__1 equ globals___0+41
4140 0283 083d          movf    string_dump__length,w
4141 0284 00c9          movwf   string_dump__1
4142   0285 :   string_dump__2:
4143                    ; line_number = 564
4144                    ; call _uart_byte_put(bus_byte_send_receive(0xfd))
4145                    ;info   564, 645
4146 0285 30fd          movlw   253
4147 0286 228d          call    bus_byte_send_receive
4148 0287 2395          call    _uart_byte_put
4149                    ; line_number = 563
4150                    ;  loop_exactly length wrap-up
4151 0288 0bc9          decfsz  string_dump__1,f
4152 0289 2a85          goto    string_dump__2
4153                    ; line_number = 563
4154                    ;  loop_exactly length done
4155                    ; line_number = 565
4156                    ; call _uart_byte_put('"')
4157                    ;info   565, 650
4158 028a 3022          movlw   34
4159 028b 2395          call    _uart_byte_put
4160            
4161            
4162                    ; delay after procedure statements=non-uniform
4163                    ; Implied return
4164 028c 3400          retlw   0
4165            
4166            
4167            
4168            
4169                    ; line_number = 568
4170                    ;info   568, 653
4171                    ; procedure bus_byte_send_receive
4172   028d :   bus_byte_send_receive:
4173                    ; Last argument is sitting in W; save into argument variable
4174 028d 00be          movwf   bus_byte_send_receive__value
4175                    ; delay=4294967295
4176                    ; line_number = 569
4177                    ; argument value byte
4178 0000003e = bus_byte_send_receive__value equ globals___0+30
4179                    ; line_number = 570
4180                    ;  returns byte
4181            
4182                    ; # This procedure will send {value} to the currently selected module
4183                    ; # and return the response.
4184            
4185                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4186                    ; line_number = 575
4187                    ;  call bus_byte_send(value)
4188                    ;info   575, 654
4189 028e 083e          movf    bus_byte_send_receive__value,w
4190 028f 2292          call    bus_byte_send
4191                    ; #call bus_byte_receive()
4192                    ; line_number = 577
4193                    ;  return bus_byte_receive() start
4194                    ; line_number = 577
4195                    ;info   577, 656
4196 0290 22b0          call    bus_byte_receive
4197 0291 0008          return  
4198                    ; line_number = 577
4199                    ;  return bus_byte_receive() done
4200            
4201            
4202                    ; delay after procedure statements=non-uniform
4203            
4204            
4205            
4206            
4207                    ; line_number = 580
4208                    ;info   580, 658
4209                    ; procedure bus_byte_send
4210   0292 :   bus_byte_send:
4211                    ; Last argument is sitting in W; save into argument variable
4212 0292 00bf          movwf   bus_byte_send__value
4213                    ; delay=4294967295
4214                    ; line_number = 581
4215                    ; argument value byte
4216 0000003f = bus_byte_send__value equ globals___0+31
4217                    ; line_number = 582
4218                    ;  returns_nothing
4219            
4220                    ; # This procedure will cause a {value} byte to be sent to the bus.
4221            
4222                    ; #call _uart_byte_put('{')
4223                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4224                    ; line_number = 587
4225                    ;  loop_exactly 4 start
4226                    ;info   587, 659
4227 0000004a = bus_byte_send__1 equ globals___0+42
4228 0293 3004          movlw   4
4229 0294 00ca          movwf   bus_byte_send__1
4230   0295 :   bus_byte_send__2:
4231                    ; line_number = 588
4232                    ; call shift2(value & 3)
4233                    ;info   588, 661
4234 0295 3003          movlw   3
4235 0296 053f          andwf   bus_byte_send__value,w
4236 0297 22ca          call    shift2
4237                    ; line_number = 589
4238                    ;  value := value >> 2
4239                    ;info   589, 664
4240                    ; Assignment of variable to self (no code needed)
4241 0298 0cbf          rrf     bus_byte_send__value,f
4242 0299 0cbf          rrf     bus_byte_send__value,f
4243 029a 303f          movlw   63
4244 029b 05bf          andwf   bus_byte_send__value,f
4245                    ; line_number = 587
4246                    ;  loop_exactly 4 wrap-up
4247 029c 0bca          decfsz  bus_byte_send__1,f
4248 029d 2a95          goto    bus_byte_send__2
4249                    ; line_number = 587
4250                    ;  loop_exactly 4 done
4251                    ; line_number = 590
4252                    ; call shift2(4)
4253                    ;info   590, 670
4254 029e 3004          movlw   4
4255 029f 22ca          call    shift2
4256                    ; #call _uart_byte_put('}')
4257            
4258            
4259                    ; delay after procedure statements=non-uniform
4260                    ; Implied return
4261 02a0 3400          retlw   0
4262            
4263            
4264            
4265            
4266                    ; line_number = 594
4267                    ;info   594, 673
4268                    ; procedure bus_select_send
4269   02a1 :   bus_select_send:
4270                    ; Last argument is sitting in W; save into argument variable
4271 02a1 00c0          movwf   bus_select_send__node
4272                    ; delay=4294967295
4273                    ; line_number = 595
4274                    ; argument node byte
4275 00000040 = bus_select_send__node equ globals___0+32
4276                    ; line_number = 596
4277                    ;  returns_nothing
4278            
4279                    ; # This procedure will cause a {node} select byte to be sent.
4280            
4281                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4282                    ; line_number = 600
4283                    ;  loop_exactly 4 start
4284                    ;info   600, 674
4285 0000004b = bus_select_send__1 equ globals___0+43
4286 02a2 3004          movlw   4
4287 02a3 00cb          movwf   bus_select_send__1
4288   02a4 :   bus_select_send__2:
4289                    ; line_number = 601
4290                    ; call shift2(node & 3)
4291                    ;info   601, 676
4292 02a4 3003          movlw   3
4293 02a5 0540          andwf   bus_select_send__node,w
4294 02a6 22ca          call    shift2
4295                    ; line_number = 602
4296                    ;  node := node >> 2
4297                    ;info   602, 679
4298                    ; Assignment of variable to self (no code needed)
4299 02a7 0cc0          rrf     bus_select_send__node,f
4300 02a8 0cc0          rrf     bus_select_send__node,f
4301 02a9 303f          movlw   63
4302 02aa 05c0          andwf   bus_select_send__node,f
4303                    ; line_number = 600
4304                    ;  loop_exactly 4 wrap-up
4305 02ab 0bcb          decfsz  bus_select_send__1,f
4306 02ac 2aa4          goto    bus_select_send__2
4307                    ; line_number = 600
4308                    ;  loop_exactly 4 done
4309                    ; line_number = 603
4310                    ; call shift2(5)
4311                    ;info   603, 685
4312 02ad 3005          movlw   5
4313 02ae 22ca          call    shift2
4314            
4315            
4316                    ; delay after procedure statements=non-uniform
4317                    ; Implied return
4318 02af 3400          retlw   0
4319            
4320            
4321            
4322            
4323                    ; line_number = 606
4324                    ;info   606, 688
4325                    ; procedure bus_byte_receive
4326   02b0 :   bus_byte_receive:
4327                    ; arguments_none
4328                    ; line_number = 608
4329                    ;  returns byte
4330            
4331                    ; # This procedure receive a byte from the bus processor.
4332                    ; # {time_out} is set if no byte is received in a reasonable
4333                    ; # amount of time.
4334            
4335                    ; #call _uart_byte_put('[')
4336                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4337                    ; line_number = 615
4338                    ;  time_out := _false
4339                    ;info   615, 688
4340 02b0 116f          bcf     time_out___byte, time_out___bit
4341                    ; # Where does 15*20 come from?  This seems to be the minimum
4342                    ; # timeout that works with programming a PIC16F876.
4343                    ; line_number = 618
4344                    ;  loop_exactly 15 start
4345                    ;info   618, 689
4346 0000004c = bus_byte_receive__1 equ globals___0+44
4347 02b1 300f          movlw   15
4348 02b2 00cc          movwf   bus_byte_receive__1
4349   02b3 :   bus_byte_receive__2:
4350                    ; line_number = 619
4351                    ; loop_exactly 20 start
4352                    ;info   619, 691
4353 0000004d = bus_byte_receive__3 equ globals___0+45
4354 02b3 3014          movlw   20
4355 02b4 00cd          movwf   bus_byte_receive__3
4356   02b5 :   bus_byte_receive__4:
4357                    ; line_number = 620
4358                    ; call shift2(6)
4359                    ;info   620, 693
4360 02b5 3006          movlw   6
4361 02b6 22ca          call    shift2
4362                    ; line_number = 621
4363                    ;  if !(bus_shift@1) start
4364                    ;info   621, 695
4365 00000028 = bus_byte_receive__select__8___byte equ bus_shift
4366 00000001 = bus_byte_receive__select__8___bit equ 1
4367                    ; =>bit_code_emit@symbol(): sym=bus_byte_receive__select__8
4368                    ; No 1TEST: true.size=0 false.size=9
4369                    ; No 2TEST: true.size=0 false.size=9
4370                    ; 1GOTO: Single test with GOTO
4371 02b7 18a8          btfsc   bus_byte_receive__select__8___byte, bus_byte_receive__select__8___bit
4372 02b8 2ac4          goto    bus_byte_receive__9
4373                    ; # We got one:
4374                    ; line_number = 623
4375                    ;  bus_msb := _false
4376                    ;info   623, 697
4377 02b9 11ef          bcf     bus_msb___byte, bus_msb___bit
4378                    ; line_number = 624
4379                    ;  if bus_shift@0 start
4380                    ;info   624, 698
4381 00000028 = bus_byte_receive__select__5___byte equ bus_shift
4382 00000000 = bus_byte_receive__select__5___bit equ 0
4383                    ; =>bit_code_emit@symbol(): sym=bus_byte_receive__select__5
4384                    ; 1TEST: Single test with code in skip slot
4385 02ba 1828          btfsc   bus_byte_receive__select__5___byte, bus_byte_receive__select__5___bit
4386                    ; line_number = 625
4387                    ; bus_msb := _true
4388                    ;info   625, 699
4389 02bb 15ef          bsf     bus_msb___byte, bus_msb___bit
4390                    ; Recombine size1 = 0 || size2 = 0
4391                    ; line_number = 624
4392                    ;  if bus_shift@0 done
4393                    ; line_number = 626
4394                    ; loop_exactly 4 start
4395                    ;info   626, 700
4396 0000004e = bus_byte_receive__6 equ globals___0+46
4397 02bc 3004          movlw   4
4398 02bd 00ce          movwf   bus_byte_receive__6
4399   02be :   bus_byte_receive__7:
4400                    ; line_number = 627
4401                    ; call shift2(0)
4402                    ;info   627, 702
4403 02be 3000          movlw   0
4404 02bf 22ca          call    shift2
4405                    ; line_number = 626
4406                    ; loop_exactly 4 wrap-up
4407 02c0 0bce          decfsz  bus_byte_receive__6,f
4408 02c1 2abe          goto    bus_byte_receive__7
4409                    ; line_number = 626
4410                    ; loop_exactly 4 done
4411                    ; #call _uart_byte_put(']')
4412                    ; line_number = 629
4413                    ;  return bus_shift start
4414                    ; line_number = 629
4415                    ;info   629, 706
4416 02c2 0828          movf    bus_shift,w
4417 02c3 0008          return  
4418                    ; line_number = 629
4419                    ;  return bus_shift done
4420   02c4 :   bus_byte_receive__9:
4421                    ; Recombine size1 = 0 || size2 = 0
4422                    ; line_number = 621
4423                    ;  if !(bus_shift@1) done
4424                    ; line_number = 619
4425                    ; loop_exactly 20 wrap-up
4426 02c4 0bcd          decfsz  bus_byte_receive__3,f
4427 02c5 2ab5          goto    bus_byte_receive__4
4428                    ; line_number = 619
4429                    ; loop_exactly 20 done
4430                    ; line_number = 618
4431                    ;  loop_exactly 15 wrap-up
4432 02c6 0bcc          decfsz  bus_byte_receive__1,f
4433 02c7 2ab3          goto    bus_byte_receive__2
4434                    ; line_number = 618
4435                    ;  loop_exactly 15 done
4436                    ; line_number = 630
4437                    ; time_out := _true
4438                    ;info   630, 712
4439 02c8 156f          bsf     time_out___byte, time_out___bit
4440                    ; #call _uart_byte_put(']')
4441                    ; line_number = 632
4442                    ;  return 0 start
4443                    ; line_number = 632
4444                    ;info   632, 713
4445 02c9 3400          retlw   0
4446                    ; line_number = 632
4447                    ;  return 0 done
4448            
4449            
4450                    ; delay after procedure statements=non-uniform
4451            
4452            
4453            
4454            
4455                    ; line_number = 635
4456                    ;info   635, 714
4457                    ; procedure shift2
4458   02ca :   shift2:
4459                    ; Last argument is sitting in W; save into argument variable
4460 02ca 00c1          movwf   shift2__value
4461                    ; delay=4294967295
4462                    ; line_number = 636
4463                    ; argument value byte
4464 00000041 = shift2__value equ globals___0+33
4465                    ; line_number = 637
4466                    ;  returns_nothing
4467            
4468                    ; # This procedure will cause 3 bits to be sent to the bus processor
4469                    ; # and 2 bits returned from the bus processor into {bus_shift}.
4470            
4471                    ; #call _uart_byte_put('<')
4472            
4473                    ; # Set the 3 bits to send up.  The two lower bits are data and
4474                    ; # the 3rd bit is STROBE.
4475                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4476                    ; line_number = 646
4477                    ;  p4 := _false
4478                    ;info   646, 715
4479 02cb 1005          bcf     p4___byte, p4___bit
4480                    ; line_number = 647
4481                    ;  p3 := _false
4482                    ;info   647, 716
4483 02cc 1187          bcf     p3___byte, p3___bit
4484                    ; line_number = 648
4485                    ;  p2 := _false
4486                    ;info   648, 717
4487 02cd 1107          bcf     p2___byte, p2___bit
4488            
4489                    ; line_number = 650
4490                    ;  if value@2 start
4491                    ;info   650, 718
4492 00000041 = shift2__select__1___byte equ shift2__value
4493 00000002 = shift2__select__1___bit equ 2
4494                    ; =>bit_code_emit@symbol(): sym=shift2__select__1
4495                    ; 1TEST: Single test with code in skip slot
4496 02ce 1941          btfsc   shift2__select__1___byte, shift2__select__1___bit
4497                    ; line_number = 651
4498                    ; p4 := _true
4499                    ;info   651, 719
4500 02cf 1405          bsf     p4___byte, p4___bit
4501                    ; Recombine size1 = 0 || size2 = 0
4502                    ; line_number = 650
4503                    ;  if value@2 done
4504                    ; #	call _uart_byte_put('1')
4505                    ; #else
4506                    ; #	call _uart_byte_put('0')
4507                    ; line_number = 655
4508                    ;  if value@1 start
4509                    ;info   655, 720
4510 00000041 = shift2__select__2___byte equ shift2__value
4511 00000001 = shift2__select__2___bit equ 1
4512                    ; =>bit_code_emit@symbol(): sym=shift2__select__2
4513                    ; 1TEST: Single test with code in skip slot
4514 02d0 18c1          btfsc   shift2__select__2___byte, shift2__select__2___bit
4515                    ; line_number = 656
4516                    ; p3 := _true
4517                    ;info   656, 721
4518 02d1 1587          bsf     p3___byte, p3___bit
4519                    ; Recombine size1 = 0 || size2 = 0
4520                    ; line_number = 655
4521                    ;  if value@1 done
4522                    ; #	call _uart_byte_put('1')
4523                    ; #else
4524                    ; #	call _uart_byte_put('0')
4525                    ; line_number = 660
4526                    ;  if value@0 start
4527                    ;info   660, 722
4528 00000041 = shift2__select__3___byte equ shift2__value
4529 00000000 = shift2__select__3___bit equ 0
4530                    ; =>bit_code_emit@symbol(): sym=shift2__select__3
4531                    ; 1TEST: Single test with code in skip slot
4532 02d2 1841          btfsc   shift2__select__3___byte, shift2__select__3___bit
4533                    ; line_number = 661
4534                    ; p2 := _true
4535                    ;info   661, 723
4536 02d3 1507          bsf     p2___byte, p2___bit
4537                    ; Recombine size1 = 0 || size2 = 0
4538                    ; line_number = 660
4539                    ;  if value@0 done
4540                    ; #	call _uart_byte_put('1')
4541                    ; #else
4542                    ; #	call _uart_byte_put('0')
4543            
4544                    ; # Let the bus processor know that we have some data:
4545                    ; line_number = 667
4546                    ;  if p6 start
4547                    ;info   667, 724
4548                    ; =>bit_code_emit@symbol(): sym=p6
4549                    ; No 1TEST: true.size=3 false.size=3
4550                    ; No 2TEST: true.size=3 false.size=3
4551                    ; 2GOTO: Single test with two GOTO's
4552 02d4 1d05          btfss   p6___byte, p6___bit
4553 02d5 2ada          goto    shift2__6
4554                    ; #call _uart_byte_put('L')
4555                    ; line_number = 669
4556                    ;  p6 := _false
4557                    ;info   669, 726
4558 02d6 1105          bcf     p6___byte, p6___bit
4559                    ; # Wait until the bus processor has a response.
4560                    ; line_number = 671
4561                    ;  while p5 start
4562   02d7 :   shift2__5:
4563                    ;info   671, 727
4564                    ; =>bit_code_emit@symbol(): sym=p5
4565                    ; 1TEST: Single test with code in skip slot
4566 02d7 1885          btfsc   p5___byte, p5___bit
4567                    ; line_number = 672
4568                    ; do_nothing
4569                    ;info   672, 728
4570 02d8 2ad7          goto    shift2__5
4571                    ; Recombine size1 = 0 || size2 = 0
4572                    ; line_number = 671
4573                    ;  while p5 done
4574 02d9 2add          goto    shift2__7
4575                    ; 2GOTO: Starting code 2
4576   02da :   shift2__6:
4577                    ; #call _uart_byte_put('H')
4578                    ; line_number = 675
4579                    ;  p6 := _true
4580                    ;info   675, 730
4581 02da 1505          bsf     p6___byte, p6___bit
4582                    ; # Wait until the bus processor has a response.
4583                    ; line_number = 677
4584                    ;  while !p5 start
4585   02db :   shift2__4:
4586                    ;info   677, 731
4587                    ; =>bit_code_emit@symbol(): sym=p5
4588                    ; 1TEST: Single test with code in skip slot
4589 02db 1c85          btfss   p5___byte, p5___bit
4590                    ; line_number = 678
4591                    ; do_nothing
4592                    ;info   678, 732
4593            
4594 02dc 2adb          goto    shift2__4
4595                    ; Recombine size1 = 0 || size2 = 0
4596                    ; line_number = 677
4597                    ;  while !p5 done
4598   02dd :   shift2__7:
4599                    ; 2GOTO: code1 final bitstates:(data:X0=cu=>X0 code:X0=cu=>X0)
4600                    ; 2GOTO: code2 final bitstates:(data:X0=cu=>X0 code:X0=cu=>X0)
4601                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4602                    ; line_number = 667
4603                    ;  if p6 done
4604                    ; # The bus processor has a response.  Now grab the data.
4605                    ; line_number = 681
4606                    ;  bus_shift := bus_shift << 2
4607                    ;info   681, 733
4608                    ; Assignment of variable to self (no code needed)
4609 02dd 0da8          rlf     bus_shift,f
4610 02de 0da8          rlf     bus_shift,f
4611 02df 30fc          movlw   252
4612 02e0 05a8          andwf   bus_shift,f
4613                    ; line_number = 682
4614                    ;  if p1 start
4615                    ;info   682, 737
4616                    ; =>bit_code_emit@symbol(): sym=p1
4617                    ; 1TEST: Single test with code in skip slot
4618 02e1 1887          btfsc   p1___byte, p1___bit
4619                    ; line_number = 683
4620                    ; bus_shift@1 := _true
4621                    ;info   683, 738
4622 00000028 = shift2__select__8___byte equ bus_shift
4623 00000001 = shift2__select__8___bit equ 1
4624 02e2 14a8          bsf     shift2__select__8___byte, shift2__select__8___bit
4625                    ; Recombine size1 = 0 || size2 = 0
4626                    ; line_number = 682
4627                    ;  if p1 done
4628                    ; #	call _uart_byte_put('1')
4629                    ; #else
4630                    ; #	call _uart_byte_put('0')
4631                    ; line_number = 687
4632                    ;  if p0 start
4633                    ;info   687, 739
4634                    ; =>bit_code_emit@symbol(): sym=p0
4635                    ; 1TEST: Single test with code in skip slot
4636 02e3 1807          btfsc   p0___byte, p0___bit
4637                    ; line_number = 688
4638                    ; bus_shift@0 := _true
4639                    ;info   688, 740
4640 00000028 = shift2__select__9___byte equ bus_shift
4641 00000000 = shift2__select__9___bit equ 0
4642 02e4 1428          bsf     shift2__select__9___byte, shift2__select__9___bit
4643                    ; Recombine size1 = 0 || size2 = 0
4644                    ; line_number = 687
4645                    ;  if p0 done
4646                    ; #	call _uart_byte_put('1')
4647                    ; #else
4648                    ; #	call _uart_byte_put('0')
4649            
4650                    ; #call _uart_byte_put('>')
4651            
4652            
4653                    ; delay after procedure statements=non-uniform
4654                    ; Implied return
4655 02e5 3400          retlw   0
4656            
4657            
4658            
4659            
4660                    ; line_number = 696
4661                    ;info   696, 742
4662                    ; procedure character_get
4663   02e6 :   character_get:
4664                    ; arguments_none
4665                    ; line_number = 698
4666                    ;  returns byte
4667            
4668                    ; # This procedure will get a character from the user and echo it.
4669                    ; # If the user types '\r\', an extra line feed is output and
4670                    ; # the global {end_of_line} bit is set.
4671            
4672                    ; line_number = 704
4673                    ;  local character byte
4674 00000042 = character_get__character equ globals___0+34
4675            
4676                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4677                    ; line_number = 706
4678                    ;  character := host_byte_get()
4679                    ;info   706, 742
4680 02e6 2027          call    host_byte_get
4681 02e7 00c2          movwf   character_get__character
4682                    ; #character := _uart_byte_get()
4683                    ; line_number = 708
4684                    ;  call _uart_byte_put(character)
4685                    ;info   708, 744
4686 02e8 0842          movf    character_get__character,w
4687 02e9 2395          call    _uart_byte_put
4688                    ; line_number = 709
4689                    ;  if character = '\r\' start
4690                    ;info   709, 746
4691                    ; Left minus Right
4692 02ea 30f3          movlw   243
4693 02eb 0742          addwf   character_get__character,w
4694                    ; =>bit_code_emit@symbol(): sym=__z
4695                    ; No 1TEST: true.size=3 false.size=0
4696                    ; No 2TEST: true.size=3 false.size=0
4697                    ; 1GOTO: Single test with GOTO
4698 02ec 1d03          btfss   __z___byte, __z___bit
4699 02ed 2af1          goto    character_get__1
4700                    ; line_number = 710
4701                    ; end_of_line := _true
4702                    ;info   710, 750
4703 02ee 14ef          bsf     end_of_line___byte, end_of_line___bit
4704                    ; line_number = 711
4705                    ;  call _uart_byte_put('\n\')
4706                    ;info   711, 751
4707 02ef 300a          movlw   10
4708 02f0 2395          call    _uart_byte_put
4709                    ; Recombine size1 = 0 || size2 = 0
4710   02f1 :   character_get__1:
4711                    ; line_number = 709
4712                    ;  if character = '\r\' done
4713                    ; line_number = 712
4714                    ; return character start
4715                    ; line_number = 712
4716                    ;info   712, 753
4717 02f1 0842          movf    character_get__character,w
4718 02f2 0008          return  
4719                    ; line_number = 712
4720                    ; return character done
4721            
4722            
4723                    ; delay after procedure statements=non-uniform
4724            
4725            
4726            
4727            
4728 0000006f = end_of_line_get__0return___byte equ globals___0+79
4729 00000006 = end_of_line_get__0return___bit equ 6
4730                    ; line_number = 715
4731                    ;info   715, 755
4732                    ; procedure end_of_line_get
4733   02f3 :   end_of_line_get:
4734                    ; arguments_none
4735                    ; line_number = 717
4736                    ;  returns bit
4737            
4738                    ; # This procedure will return 1 if end of line has been reached
4739                    ; # without error; otherwise 0 is returned and an error exclamation
4740                    ; # point ('!') is output.
4741            
4742                    ; line_number = 723
4743                    ;  local character byte
4744 00000043 = end_of_line_get__character equ globals___0+35
4745            
4746                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4747                    ; line_number = 725
4748                    ;  if error start
4749                    ;info   725, 755
4750                    ; =>bit_code_emit@symbol(): sym=error
4751                    ; No 1TEST: true.size=2 false.size=0
4752                    ; No 2TEST: true.size=2 false.size=0
4753                    ; 1GOTO: Single test with GOTO
4754 02f3 1c6f          btfss   error___byte, error___bit
4755 02f4 2af7          goto    end_of_line_get__1
4756                    ; line_number = 726
4757                    ; return 0 start
4758                    ; line_number = 726
4759                    ;info   726, 757
4760 02f5 136f          bcf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
4761 02f6 0008          return  
4762                    ; line_number = 726
4763                    ; return 0 done
4764                    ; Recombine size1 = 0 || size2 = 0
4765   02f7 :   end_of_line_get__1:
4766                    ; line_number = 725
4767                    ;  if error done
4768                    ; line_number = 727
4769                    ; while !end_of_line start
4770   02f7 :   end_of_line_get__2:
4771                    ;info   727, 759
4772                    ; =>bit_code_emit@symbol(): sym=end_of_line
4773                    ; No 1TEST: true.size=0 false.size=21
4774                    ; No 2TEST: true.size=0 false.size=21
4775                    ; 1GOTO: Single test with GOTO
4776 02f7 18ef          btfsc   end_of_line___byte, end_of_line___bit
4777 02f8 2b0e          goto    end_of_line_get__5
4778                    ; line_number = 728
4779                    ; character := character_get()
4780                    ;info   728, 761
4781 02f9 22e6          call    character_get
4782 02fa 00c3          movwf   end_of_line_get__character
4783                    ; line_number = 729
4784                    ;  if character != '\r\' && character != '\t\' && character != ' ' start
4785                    ;info   729, 763
4786                    ; Left minus Right
4787 02fb 30f3          movlw   243
4788 02fc 0743          addwf   end_of_line_get__character,w
4789                    ; =>bit_code_emit@symbol(): sym=__z
4790                    ; No 1TEST: true.size=1 false.size=14
4791                    ; No 2TEST: true.size=1 false.size=14
4792                    ; 2GOTO: Single test with two GOTO's
4793 02fd 1903          btfsc   __z___byte, __z___bit
4794 02fe 2b0d          goto    end_of_line_get__3
4795                    ; Recombine code1_bit_states != code2_bit_states
4796                    ; Recombine code1_bit_states != code2_bit_states
4797                    ; Left minus Right
4798 02ff 30f7          movlw   247
4799 0300 0743          addwf   end_of_line_get__character,w
4800                    ; =>bit_code_emit@symbol(): sym=__z
4801                    ; No 1TEST: true.size=1 false.size=10
4802                    ; No 2TEST: true.size=1 false.size=10
4803                    ; 2GOTO: Single test with two GOTO's
4804 0301 1903          btfsc   __z___byte, __z___bit
4805 0302 2b0d          goto    end_of_line_get__3
4806                    ; Recombine code1_bit_states != code2_bit_states
4807                    ; &&||: index=2 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4808                    ; Left minus Right
4809 0303 30e0          movlw   224
4810 0304 0743          addwf   end_of_line_get__character,w
4811                    ; =>bit_code_emit@symbol(): sym=__z
4812                    ; No 1TEST: true.size=0 false.size=6
4813                    ; No 2TEST: true.size=0 false.size=6
4814                    ; 1GOTO: Single test with GOTO
4815 0305 1903          btfsc   __z___byte, __z___bit
4816 0306 2b0d          goto    end_of_line_get__4
4817                    ; line_number = 730
4818                    ; error := _true
4819                    ;info   730, 775
4820 0307 146f          bsf     error___byte, error___bit
4821                    ; line_number = 731
4822                    ;  call _uart_byte_put('!')
4823                    ;info   731, 776
4824 0308 3021          movlw   33
4825 0309 2395          call    _uart_byte_put
4826                    ; line_number = 732
4827                    ;  call _uart_crlf_put()
4828                    ;info   732, 778
4829 030a 2390          call    _uart_crlf_put
4830                    ; line_number = 733
4831                    ;  return 0 start
4832                    ; line_number = 733
4833                    ;info   733, 779
4834 030b 136f          bcf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
4835 030c 0008          return  
4836                    ; line_number = 733
4837                    ;  return 0 done
4838   030d :   end_of_line_get__4:
4839   030d :   end_of_line_get__3:
4840                    ; Recombine code1_bit_states != code2_bit_states
4841                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4842                    ; &&||:: index=1 new_delay=4294967295 goto_delay=4294967295
4843                    ; 2GOTO: No goto needed; true=end_of_line_get__3 false= true_size=1 false_size=10
4844                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4845                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
4846                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4847                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4848                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4849                    ; 2GOTO: No goto needed; true=end_of_line_get__3 false= true_size=1 false_size=14
4850                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4851                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
4852                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4853                    ; line_number = 729
4854                    ;  if character != '\r\' && character != '\t\' && character != ' ' done
4855 030d 2af7          goto    end_of_line_get__2
4856   030e :   end_of_line_get__5:
4857                    ; Recombine size1 = 0 || size2 = 0
4858                    ; line_number = 727
4859                    ; while !end_of_line done
4860                    ; line_number = 734
4861                    ; return 1 start
4862                    ; line_number = 734
4863                    ;info   734, 782
4864 030e 176f          bsf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
4865 030f 0008          return  
4866                    ; line_number = 734
4867                    ; return 1 done
4868            
4869            
4870                    ; delay after procedure statements=non-uniform
4871            
4872            
4873            
4874            
4875                    ; line_number = 737
4876                    ;info   737, 784
4877                    ; procedure hex_byte_get
4878   0310 :   hex_byte_get:
4879                    ; arguments_none
4880                    ; line_number = 739
4881                    ;  returns byte
4882            
4883                    ; # This procedure will get a hex byte from the user.  Zero, one or
4884                    ; # more spaces and tabs may preceed the hex byte.
4885            
4886                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4887                    ; line_number = 744
4888                    ;  call hex_word_get()
4889                    ;info   744, 784
4890 0310 2313          call    hex_word_get
4891                    ; line_number = 745
4892                    ;  return hex_low start
4893                    ; line_number = 745
4894                    ;info   745, 785
4895 0311 0827          movf    hex_low,w
4896 0312 0008          return  
4897                    ; line_number = 745
4898                    ;  return hex_low done
4899            
4900            
4901                    ; delay after procedure statements=non-uniform
4902            
4903            
4904            
4905            
4906                    ; line_number = 748
4907                    ;info   748, 787
4908                    ; procedure hex_word_get
4909   0313 :   hex_word_get:
4910                    ; arguments_none
4911                    ; line_number = 750
4912                    ;  returns_nothing
4913            
4914                    ; # This procedure will get a 16-bit hexadecimal value and return
4915                    ; # the result in {hex_high} and {hex_low}.
4916            
4917                    ; line_number = 755
4918                    ;  local character byte
4919 00000044 = hex_word_get__character equ globals___0+36
4920                    ; line_number = 756
4921                    ;  local digit byte
4922 00000045 = hex_word_get__digit equ globals___0+37
4923            
4924                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
4925                    ; line_number = 758
4926                    ;  hex_high := 0
4927                    ;info   758, 787
4928 0313 01a6          clrf    hex_high
4929                    ; line_number = 759
4930                    ;  hex_low := 0
4931                    ;info   759, 788
4932 0314 01a7          clrf    hex_low
4933                    ; line_number = 760
4934                    ;  character := ' '
4935                    ;info   760, 789
4936 0315 3020          movlw   32
4937 0316 00c4          movwf   hex_word_get__character
4938                    ; line_number = 761
4939                    ;  if !end_of_line start
4940                    ;info   761, 791
4941                    ; =>bit_code_emit@symbol(): sym=end_of_line
4942                    ; No 1TEST: true.size=0 false.size=79
4943                    ; No 2TEST: true.size=0 false.size=79
4944                    ; 1GOTO: Single test with GOTO
4945 0317 18ef          btfsc   end_of_line___byte, end_of_line___bit
4946 0318 2b68          goto    hex_word_get__18
4947                    ; line_number = 762
4948                    ; while character = ' ' || character = '\t\' start
4949   0319 :   hex_word_get__1:
4950                    ;info   762, 793
4951                    ; Left minus Right
4952 0319 30e0          movlw   224
4953 031a 0744          addwf   hex_word_get__character,w
4954                    ; =>bit_code_emit@symbol(): sym=__z
4955                    ; No 1TEST: true.size=1 false.size=7
4956                    ; No 2TEST: true.size=1 false.size=7
4957                    ; 2GOTO: Single test with two GOTO's
4958 031b 1903          btfsc   __z___byte, __z___bit
4959 031c 2b21          goto    hex_word_get__2
4960                    ; Recombine code1_bit_states != code2_bit_states
4961                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4962                    ; Left minus Right
4963 031d 30f7          movlw   247
4964 031e 0744          addwf   hex_word_get__character,w
4965                    ; =>bit_code_emit@symbol(): sym=__z
4966                    ; No 1TEST: true.size=3 false.size=0
4967                    ; No 2TEST: true.size=3 false.size=0
4968                    ; 1GOTO: Single test with GOTO
4969 031f 1d03          btfss   __z___byte, __z___bit
4970 0320 2b24          goto    hex_word_get__3
4971   0321 :   hex_word_get__2:
4972                    ; line_number = 763
4973                    ; character := character_get()
4974                    ;info   763, 801
4975 0321 22e6          call    character_get
4976 0322 00c4          movwf   hex_word_get__character
4977            
4978 0323 2b19          goto    hex_word_get__1
4979                    ; Recombine size1 = 0 || size2 = 0
4980   0324 :   hex_word_get__3:
4981                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
4982                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
4983                    ; 2GOTO: No goto needed; true=hex_word_get__2 false= true_size=1 false_size=7
4984                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4985                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
4986                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
4987                    ; line_number = 762
4988                    ; while character = ' ' || character = '\t\' done
4989                    ; line_number = 765
4990                    ; loop_forever start
4991   0324 :   hex_word_get__4:
4992                    ; line_number = 766
4993                    ; if '0' <= character && character <= '9' start
4994                    ;info   766, 804
4995 0324 3030          movlw   48
4996 0325 0244          subwf   hex_word_get__character,w
4997                    ; =>bit_code_emit@symbol(): sym=__c
4998                    ; No 1TEST: true.size=49 false.size=1
4999                    ; No 2TEST: true.size=49 false.size=1
5000                    ; 2GOTO: Single test with two GOTO's
5001 0326 1c03          btfss   __c___byte, __c___bit
5002 0327 2b2e          goto    hex_word_get__12
5003                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5004 0328 3039          movlw   57
5005 0329 0244          subwf   hex_word_get__character,w
5006 032a 1903          btfsc   __z___byte, __z___bit
5007 032b 1003          bcf     __c___byte, __c___bit
5008                    ; =>bit_code_emit@symbol(): sym=__c
5009                    ; No 1TEST: true.size=39 false.size=3
5010                    ; No 2TEST: true.size=39 false.size=3
5011                    ; 2GOTO: Single test with two GOTO's
5012 032c 1c03          btfss   __c___byte, __c___bit
5013 032d 2b56          goto    hex_word_get__13
5014   032e :   hex_word_get__12:
5015                    ; line_number = 768
5016                    ;info   768, 814
5017 032e 3041          movlw   65
5018 032f 0244          subwf   hex_word_get__character,w
5019                    ; =>bit_code_emit@symbol(): sym=__c
5020                    ; No 1TEST: true.size=35 false.size=1
5021                    ; No 2TEST: true.size=35 false.size=1
5022                    ; 2GOTO: Single test with two GOTO's
5023 0330 1c03          btfss   __c___byte, __c___bit
5024 0331 2b38          goto    hex_word_get__9
5025                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5026 0332 3046          movlw   70
5027 0333 0244          subwf   hex_word_get__character,w
5028 0334 1903          btfsc   __z___byte, __z___bit
5029 0335 1003          bcf     __c___byte, __c___bit
5030                    ; =>bit_code_emit@symbol(): sym=__c
5031                    ; No 1TEST: true.size=25 false.size=3
5032                    ; No 2TEST: true.size=25 false.size=3
5033                    ; 2GOTO: Single test with two GOTO's
5034 0336 1c03          btfss   __c___byte, __c___bit
5035 0337 2b52          goto    hex_word_get__10
5036   0338 :   hex_word_get__9:
5037                    ; line_number = 770
5038                    ;info   770, 824
5039 0338 3061          movlw   97
5040 0339 0244          subwf   hex_word_get__character,w
5041                    ; =>bit_code_emit@symbol(): sym=__c
5042                    ; No 1TEST: true.size=21 false.size=1
5043                    ; No 2TEST: true.size=21 false.size=1
5044                    ; 2GOTO: Single test with two GOTO's
5045 033a 1c03          btfss   __c___byte, __c___bit
5046 033b 2b42          goto    hex_word_get__6
5047                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5048 033c 3066          movlw   102
5049 033d 0244          subwf   hex_word_get__character,w
5050 033e 1903          btfsc   __z___byte, __z___bit
5051 033f 1003          bcf     __c___byte, __c___bit
5052                    ; =>bit_code_emit@symbol(): sym=__c
5053                    ; No 1TEST: true.size=11 false.size=3
5054                    ; No 2TEST: true.size=11 false.size=3
5055                    ; 2GOTO: Single test with two GOTO's
5056 0340 1c03          btfss   __c___byte, __c___bit
5057 0341 2b4e          goto    hex_word_get__7
5058   0342 :   hex_word_get__6:
5059                    ; line_number = 772
5060                    ;info   772, 834
5061                    ; Left minus Right
5062 0342 30e0          movlw   224
5063 0343 0744          addwf   hex_word_get__character,w
5064                    ; =>bit_code_emit@symbol(): sym=__z
5065                    ; No 1TEST: true.size=1 false.size=7
5066                    ; No 2TEST: true.size=1 false.size=7
5067                    ; 2GOTO: Single test with two GOTO's
5068 0344 1903          btfsc   __z___byte, __z___bit
5069 0345 2b4c          goto    hex_word_get__5
5070                    ; Recombine code1_bit_states != code2_bit_states
5071                    ; Recombine code1_bit_states != code2_bit_states
5072                    ; Left minus Right
5073 0346 30f7          movlw   247
5074 0347 0744          addwf   hex_word_get__character,w
5075                    ; =>bit_code_emit@symbol(): sym=__z
5076                    ; No 1TEST: true.size=1 false.size=3
5077                    ; No 2TEST: true.size=1 false.size=3
5078                    ; 2GOTO: Single test with two GOTO's
5079 0348 1903          btfsc   __z___byte, __z___bit
5080 0349 2b4c          goto    hex_word_get__5
5081                    ; Recombine code1_bit_states != code2_bit_states
5082                    ; &&||: index=2 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5083                    ; =>bit_code_emit@symbol(): sym=end_of_line
5084                    ; 1TEST: Single test with code in skip slot
5085 034a 1cef          btfss   end_of_line___byte, end_of_line___bit
5086                    ; line_number = 775
5087                    ; error := _true
5088                    ;info   775, 843
5089 034b 146f          bsf     error___byte, error___bit
5090                    ; line_number = 776
5091                    ;  return start
5092                    ; line_number = 776
5093                    ;info   776, 844
5094   034c :   hex_word_get__5:
5095                    ; line_number = 773
5096                    ; return start
5097                    ; line_number = 773
5098                    ;info   773, 844
5099 034c 3400          retlw   0
5100                    ; line_number = 773
5101                    ; return done
5102                    ; line_number = 776
5103                    ;  return done
5104                    ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5105                    ; &&||:: index=1 new_delay=4294967295 goto_delay=4294967295
5106                    ; 2GOTO: No goto needed; true=hex_word_get__5 false= true_size=1 false_size=3
5107                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5108                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
5109                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5110                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5111                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
5112                    ; 2GOTO: No goto needed; true=hex_word_get__5 false= true_size=1 false_size=7
5113                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5114                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
5115                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5116                    ; Recombine code1_bit_states != code2_bit_states
5117 034d 2b51          goto    hex_word_get__8
5118                    ; 2GOTO: Starting code 2
5119   034e :   hex_word_get__7:
5120                    ; line_number = 771
5121                    ; digit := character + (10 - 'a')
5122                    ;info   771, 846
5123 034e 30a9          movlw   169
5124 034f 0744          addwf   hex_word_get__character,w
5125 0350 00c5          movwf   hex_word_get__digit
5126   0351 :   hex_word_get__8:
5127                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5128                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
5129                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5130                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5131                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
5132                    ; Recombine code1_bit_states != code2_bit_states
5133                    ; 2GOTO: No goto needed; true= false=hex_word_get__6 true_size=21 false_size=1
5134                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5135                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
5136                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5137                    ; Recombine code1_bit_states != code2_bit_states
5138 0351 2b55          goto    hex_word_get__11
5139                    ; 2GOTO: Starting code 2
5140   0352 :   hex_word_get__10:
5141                    ; line_number = 769
5142                    ; digit := character + (10 - 'A')
5143                    ;info   769, 850
5144 0352 30c9          movlw   201
5145 0353 0744          addwf   hex_word_get__character,w
5146 0354 00c5          movwf   hex_word_get__digit
5147   0355 :   hex_word_get__11:
5148                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5149                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
5150                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5151                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5152                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
5153                    ; Recombine code1_bit_states != code2_bit_states
5154                    ; 2GOTO: No goto needed; true= false=hex_word_get__9 true_size=35 false_size=1
5155                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5156                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
5157                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5158                    ; Recombine code1_bit_states != code2_bit_states
5159 0355 2b59          goto    hex_word_get__14
5160                    ; 2GOTO: Starting code 2
5161   0356 :   hex_word_get__13:
5162                    ; line_number = 767
5163                    ; digit := character - '0'
5164                    ;info   767, 854
5165 0356 30d0          movlw   208
5166 0357 0744          addwf   hex_word_get__character,w
5167 0358 00c5          movwf   hex_word_get__digit
5168   0359 :   hex_word_get__14:
5169                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5170                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
5171                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5172                    ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
5173                    ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
5174                    ; Recombine code1_bit_states != code2_bit_states
5175                    ; 2GOTO: No goto needed; true= false=hex_word_get__12 true_size=49 false_size=1
5176                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5177                    ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
5178                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
5179                    ; line_number = 766
5180                    ; if '0' <= character && character <= '9' done
5181                    ; line_number = 777
5182                    ; hex_high := (hex_high << 4) | (hex_low >> 4)
5183                    ;info   777, 857
5184 0000004f = hex_word_get__15 equ globals___0+47
5185 0359 0e26          swapf   hex_high,w
5186 035a 00cf          movwf   hex_word_get__15
5187 035b 30f0          movlw   240
5188 035c 05cf          andwf   hex_word_get__15,f
5189 00000050 = hex_word_get__16 equ globals___0+48
5190 035d 0e27          swapf   hex_low,w
5191 035e 390f          andlw   15
5192 035f 044f          iorwf   hex_word_get__15,w
5193 0360 00a6          movwf   hex_high
5194                    ; line_number = 778
5195                    ;  hex_low := (hex_low << 4) | digit
5196                    ;info   778, 865
5197 00000050 = hex_word_get__17 equ globals___0+48
5198 0361 0e27          swapf   hex_low,w
5199 0362 39f0          andlw   240
5200 0363 0445          iorwf   hex_word_get__digit,w
5201 0364 00a7          movwf   hex_low
5202                    ; line_number = 779
5203                    ;  character := character_get()
5204                    ;info   779, 869
5205 0365 22e6          call    character_get
5206 0366 00c4          movwf   hex_word_get__character
5207            
5208                    ; line_number = 765
5209                    ; loop_forever wrap-up
5210 0367 2b24          goto    hex_word_get__4
5211                    ; line_number = 765
5212                    ; loop_forever done
5213   0368 :   hex_word_get__18:
5214                    ; Recombine size1 = 0 || size2 = 0
5215                    ; line_number = 761
5216                    ;  if !end_of_line done
5217                    ; delay after procedure statements=non-uniform
5218                    ; Implied return
5219 0368 3400          retlw   0
5220            
5221            
5222            
5223            
5224            
5225                    ; Appending 7 delayed procedures to code bank 0
5226                    ; buffer = '_uart'
5227                    ; line_number = 7
5228                    ;info   7, 873
5229                    ; procedure _uart_byte_safe_get
5230   0369 :   _uart_byte_safe_get:
5231                    ; arguments_none
5232                    ; line_number = 9
5233                    ;  returns byte
5234            
5235                    ; # This procedure will the next byte from UART.  If no byte
5236                    ; # received in a reasonable time, 0xfc is returned.
5237            
5238                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5239                    ; line_number = 14
5240                    ;  loop_exactly 255 start
5241                    ;info   14, 873
5242 00000051 = _uart_byte_safe_get__1 equ globals___0+49
5243 0369 30ff          movlw   255
5244 036a 00d1          movwf   _uart_byte_safe_get__1
5245   036b :   _uart_byte_safe_get__2:
5246                    ; line_number = 15
5247                    ; loop_exactly 255 start
5248                    ;info   15, 875
5249 00000052 = _uart_byte_safe_get__3 equ globals___0+50
5250 036b 30ff          movlw   255
5251 036c 00d2          movwf   _uart_byte_safe_get__3
5252   036d :   _uart_byte_safe_get__4:
5253                    ; line_number = 16
5254                    ; if _rcif start
5255                    ;info   16, 877
5256                    ; =>bit_code_emit@symbol(): sym=_rcif
5257                    ; No 1TEST: true.size=2 false.size=0
5258                    ; No 2TEST: true.size=2 false.size=0
5259                    ; 1GOTO: Single test with GOTO
5260 036d 1e8c          btfss   _rcif___byte, _rcif___bit
5261 036e 2b71          goto    _uart_byte_safe_get__5
5262                    ; line_number = 17
5263                    ; return _rcreg start
5264                    ; line_number = 17
5265                    ;info   17, 879
5266 036f 0814          movf    _rcreg,w
5267 0370 0008          return  
5268                    ; line_number = 17
5269                    ; return _rcreg done
5270                    ; Recombine size1 = 0 || size2 = 0
5271   0371 :   _uart_byte_safe_get__5:
5272                    ; line_number = 16
5273                    ; if _rcif done
5274                    ; line_number = 15
5275                    ; loop_exactly 255 wrap-up
5276 0371 0bd2          decfsz  _uart_byte_safe_get__3,f
5277 0372 2b6d          goto    _uart_byte_safe_get__4
5278                    ; line_number = 15
5279                    ; loop_exactly 255 done
5280                    ; line_number = 14
5281                    ;  loop_exactly 255 wrap-up
5282 0373 0bd1          decfsz  _uart_byte_safe_get__1,f
5283 0374 2b6b          goto    _uart_byte_safe_get__2
5284                    ; line_number = 14
5285                    ;  loop_exactly 255 done
5286                    ; line_number = 18
5287                    ; return 0xfc start
5288                    ; line_number = 18
5289                    ;info   18, 885
5290 0375 34fc          retlw   252
5291                    ; line_number = 18
5292                    ; return 0xfc done
5293            
5294            
5295                    ; delay after procedure statements=non-uniform
5296            
5297            
5298            
5299            
5300                    ; line_number = 21
5301                    ;info   21, 886
5302                    ; procedure _uart_byte_get
5303   0376 :   _uart_byte_get:
5304                    ; arguments_none
5305                    ; line_number = 23
5306                    ;  returns byte
5307            
5308                    ; # This procedure will return the next byte from the UART.
5309            
5310                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5311                    ; line_number = 27
5312                    ;  while !_rcif start
5313   0376 :   _uart_byte_get__1:
5314                    ;info   27, 886
5315                    ; =>bit_code_emit@symbol(): sym=_rcif
5316                    ; 1TEST: Single test with code in skip slot
5317 0376 1e8c          btfss   _rcif___byte, _rcif___bit
5318                    ; line_number = 28
5319                    ; do_nothing
5320                    ;info   28, 887
5321 0377 2b76          goto    _uart_byte_get__1
5322                    ; Recombine size1 = 0 || size2 = 0
5323                    ; line_number = 27
5324                    ;  while !_rcif done
5325                    ; line_number = 29
5326                    ; return _rcreg start
5327                    ; line_number = 29
5328                    ;info   29, 888
5329 0378 0814          movf    _rcreg,w
5330 0379 0008          return  
5331                    ; line_number = 29
5332                    ; return _rcreg done
5333            
5334            
5335                    ; delay after procedure statements=non-uniform
5336            
5337            
5338            
5339            
5340                    ; line_number = 32
5341                    ;info   32, 890
5342                    ; procedure _uart_hex_put
5343   037a :   _uart_hex_put:
5344                    ; Last argument is sitting in W; save into argument variable
5345 037a 00a0          movwf   _uart_hex_put__value
5346                    ; delay=4294967295
5347                    ; line_number = 33
5348                    ; argument value byte
5349 00000020 = _uart_hex_put__value equ globals___0
5350                    ; line_number = 34
5351                    ;  returns_nothing
5352            
5353                    ; # This procedure will output {value} to the UART as a 2-digit
5354                    ; # hexadecimal number.
5355            
5356                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5357                    ; line_number = 39
5358                    ;  call _uart_nibble_put(value >> 4)
5359                    ;info   39, 891
5360 00000053 = _uart_hex_put__1 equ globals___0+51
5361 037b 0e20          swapf   _uart_hex_put__value,w
5362 037c 390f          andlw   15
5363 037d 2382          call    _uart_nibble_put
5364                    ; line_number = 40
5365                    ;  call _uart_nibble_put(value & 0xf)
5366                    ;info   40, 894
5367 037e 300f          movlw   15
5368 037f 0520          andwf   _uart_hex_put__value,w
5369 0380 2382          call    _uart_nibble_put
5370            
5371            
5372                    ; delay after procedure statements=non-uniform
5373                    ; Implied return
5374 0381 3400          retlw   0
5375            
5376            
5377            
5378            
5379                    ; line_number = 43
5380                    ;info   43, 898
5381                    ; procedure _uart_nibble_put
5382   0382 :   _uart_nibble_put:
5383                    ; Last argument is sitting in W; save into argument variable
5384 0382 00a1          movwf   _uart_nibble_put__nibble
5385                    ; delay=4294967295
5386                    ; line_number = 44
5387                    ; argument nibble byte
5388 00000021 = _uart_nibble_put__nibble equ globals___0+1
5389                    ; line_number = 45
5390                    ;  returns_nothing
5391            
5392                    ; # This procedure will output {value} to UART as a 1 digit
5393                    ; # hexadecimal number.
5394            
5395                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5396                    ; line_number = 50
5397                    ;  if nibble < 10 start
5398                    ;info   50, 899
5399 0383 300a          movlw   10
5400 0384 0221          subwf   _uart_nibble_put__nibble,w
5401                    ; =>bit_code_emit@symbol(): sym=__c
5402                    ; No 1TEST: true.size=1 false.size=1
5403                    ; 2TEST: two tests with code in both delay slots
5404 0385 1803          btfsc   __c___byte, __c___bit
5405                    ; line_number = 53
5406                    ; nibble := nibble - 10 + 'A'
5407                    ;info   53, 902
5408 0386 3037          movlw   55
5409 0387 1c03          btfss   __c___byte, __c___bit
5410                    ; line_number = 51
5411                    ; nibble := nibble + '0'
5412                    ;info   51, 904
5413 0388 3030          movlw   48
5414 0389 07a1          addwf   _uart_nibble_put__nibble,f
5415                    ; line_number = 50
5416                    ;  if nibble < 10 done
5417                    ; line_number = 54
5418                    ; call _uart_byte_put(nibble)
5419                    ;info   54, 906
5420 038a 0821          movf    _uart_nibble_put__nibble,w
5421 038b 2395          call    _uart_byte_put
5422            
5423            
5424                    ; delay after procedure statements=non-uniform
5425                    ; Implied return
5426 038c 3400          retlw   0
5427            
5428            
5429            
5430            
5431                    ; line_number = 57
5432                    ;info   57, 909
5433                    ; procedure _uart_space_put
5434   038d :   _uart_space_put:
5435                    ; arguments_none
5436                    ; line_number = 59
5437                    ;  returns_nothing
5438            
5439                    ; # This procedure will output a space to the UART.
5440            
5441                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5442                    ; line_number = 63
5443                    ;  call _uart_byte_put(' ')
5444                    ;info   63, 909
5445 038d 3020          movlw   32
5446 038e 2395          call    _uart_byte_put
5447            
5448            
5449                    ; delay after procedure statements=non-uniform
5450                    ; Implied return
5451 038f 3400          retlw   0
5452            
5453            
5454            
5455            
5456                    ; line_number = 66
5457                    ;info   66, 912
5458                    ; procedure _uart_crlf_put
5459   0390 :   _uart_crlf_put:
5460                    ; arguments_none
5461                    ; line_number = 68
5462                    ;  returns_nothing
5463            
5464                    ; # This procedure will output a carriage return line feed sequecne to
5465                    ; # the UART.
5466            
5467                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5468                    ; line_number = 73
5469                    ;  call _uart_byte_put('\cr\')
5470                    ;info   73, 912
5471 0390 300d          movlw   13
5472 0391 2395          call    _uart_byte_put
5473                    ; line_number = 74
5474                    ;  call _uart_byte_put('\lf\')
5475                    ;info   74, 914
5476 0392 300a          movlw   10
5477 0393 2395          call    _uart_byte_put
5478            
5479            
5480                    ; delay after procedure statements=non-uniform
5481                    ; Implied return
5482 0394 3400          retlw   0
5483            
5484            
5485            
5486            
5487                    ; line_number = 77
5488                    ;info   77, 917
5489                    ; procedure _uart_byte_put
5490   0395 :   _uart_byte_put:
5491                    ; Last argument is sitting in W; save into argument variable
5492 0395 00a2          movwf   _uart_byte_put__byte
5493                    ; delay=4294967295
5494                    ; line_number = 78
5495                    ; argument byte byte
5496 00000022 = _uart_byte_put__byte equ globals___0+2
5497                    ; line_number = 79
5498                    ;  returns_nothing
5499            
5500                    ; # This procedure will send {byte} out using to the UART.
5501            
5502                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
5503                    ; line_number = 83
5504                    ;  while !_txif start
5505   0396 :   _uart_byte_put__1:
5506                    ;info   83, 918
5507                    ; =>bit_code_emit@symbol(): sym=_txif
5508                    ; 1TEST: Single test with code in skip slot
5509 0396 1c8c          btfss   _txif___byte, _txif___bit
5510                    ; line_number = 84
5511                    ; do_nothing
5512                    ;info   84, 919
5513 0397 2b96          goto    _uart_byte_put__1
5514                    ; Recombine size1 = 0 || size2 = 0
5515                    ; line_number = 83
5516                    ;  while !_txif done
5517                    ; line_number = 85
5518                    ; _txreg := byte
5519                    ;info   85, 920
5520 0398 0822          movf    _uart_byte_put__byte,w
5521 0399 0095          movwf   _txreg
5522            
5523            
5524                    ; delay after procedure statements=non-uniform
5525                    ; Implied return
5526 039a 3400          retlw   0
5527            
5528            
5529            
5530            
5531                    ; Code bank 1; Start address: 2048; End address: 4095
5532   0800 :           org     2048
5533                    ; Configuration bits
5534                    ; address = 0x2007, fill = 0x3000
5535                    ; fcmen = off (0x0)
5536                    ; ieso = off (0x0)
5537                    ; boden = off (0x0)
5538                    ; cpd = off (0x80)
5539                    ; cp = off (0x40)
5540                    ; mclre = off (0x0)
5541                    ; pwrte = off (0x10)
5542                    ; wdte = off (0x0)
5543                    ; fosc = hs (0x2)
5544                    ; 12498 = 0x30d2
5545   30d2 =           __config 12498
5546                    ; Define start addresses for data regions
5547                    ; Region="shared___globals" Address=112" Size=16 Bytes=4 Bits=0 Available=12
5548                    ; Region="globals___0" Address=32" Size=80 Bytes=52 Bits=7 Available=27
5549                    ; Region="globals___1" Address=160" Size=80 Bytes=64 Bits=0 Available=16
5550                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
5551                    ; Region="shared___globals" Address=112" Size=16 Bytes=4 Bits=0 Available=12
5552                    end
