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