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 = 'bus'
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 = 'bus'
1371                    ; line_number = 6
1372                    ; library _pic16f688 exited
1373                    ; line_number = 7
1374                    ; library clock16mhz entered
1375                    ; # Copyright (c) 2006 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 = 'clock16mhz'
1383                    ; line_number = 9
1384                    ; constant clock_rate = 16000000
1385 00f42400 = clock_rate equ 16000000
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 003d0900 = instruction_rate equ 4000000
1392            
1393            
1394                    ; buffer = 'bus'
1395                    ; line_number = 7
1396                    ; library clock16mhz 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 00f42400 = _eusart_clock equ 16000000
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 bits/sec:
1443                    ; buffer = '_eusart'
1444                    ; line_number = 23
1445                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1446 00000681 = _eusart_2400 equ 1665
1447                    ; line_number = 24
1448                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1449 00000081 = _eusart_2400_low equ 129
1450                    ; line_number = 25
1451                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1452 00000006 = _eusart_2400_high equ 6
1453                    ; line_number = 26
1454                    ; constant _eusart_2400_index = 0
1455 00000000 = _eusart_2400_index equ 0
1456                    ; # 4800 bits/sec:
1457                    ; line_number = 28
1458                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1459 00000340 = _eusart_4800 equ 832
1460                    ; line_number = 29
1461                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1462 00000040 = _eusart_4800_low equ 64
1463                    ; line_number = 30
1464                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1465 00000003 = _eusart_4800_high equ 3
1466                    ; line_number = 31
1467                    ; constant _eusart_4800_index = 1
1468 00000001 = _eusart_4800_index equ 1
1469                    ; # 9600 bits/sec:
1470                    ; line_number = 33
1471                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1472 0000019f = _eusart_9600 equ 415
1473                    ; line_number = 34
1474                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1475 0000009f = _eusart_9600_low equ 159
1476                    ; line_number = 35
1477                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1478 00000001 = _eusart_9600_high equ 1
1479                    ; line_number = 36
1480                    ; constant _eusart_9600_index = 2
1481 00000002 = _eusart_9600_index equ 2
1482                    ; # 19200 bits/sec:
1483                    ; line_number = 38
1484                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1485 000000cf = _eusart_19200 equ 207
1486                    ; line_number = 39
1487                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1488 000000cf = _eusart_19200_low equ 207
1489                    ; line_number = 40
1490                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1491 00000000 = _eusart_19200_high equ 0
1492                    ; line_number = 41
1493                    ; constant _eusart_19200_index = 3
1494 00000003 = _eusart_19200_index equ 3
1495                    ; # 38400 bits/sec:
1496                    ; line_number = 43
1497                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1498 00000067 = _eusart_38400 equ 103
1499                    ; line_number = 44
1500                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1501 00000067 = _eusart_38400_low equ 103
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 bits/sec:
1509                    ; line_number = 48
1510                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1511 00000044 = _eusart_57600 equ 68
1512                    ; line_number = 49
1513                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1514 00000044 = _eusart_57600_low equ 68
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 bits/sec:
1522                    ; line_number = 53
1523                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1524 00000021 = _eusart_115200 equ 33
1525                    ; line_number = 54
1526                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1527 00000021 = _eusart_115200_low equ 33
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 bits/sec:
1535                    ; line_number = 58
1536                    ; constant _eusart_230400 = (_eusart_clock / (230400 * _eusart_factor)) - 1
1537 00000010 = _eusart_230400 equ 16
1538                    ; line_number = 59
1539                    ; constant _eusart_230400_low = _eusart_230400 & 0xff
1540 00000010 = _eusart_230400_low equ 16
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 bits/sec:
1548                    ; line_number = 63
1549                    ; constant _eusart_460800 = (_eusart_clock / (460800 * _eusart_factor)) - 1
1550 00000007 = _eusart_460800 equ 7
1551                    ; line_number = 64
1552                    ; constant _eusart_460800_low = _eusart_460800 & 0xff
1553 00000007 = _eusart_460800_low equ 7
1554                    ; line_number = 65
1555                    ; constant _eusart_460800_high = _eusart_460800 >> 8
1556 00000000 = _eusart_460800_high equ 0
1557                    ; line_number = 66
1558                    ; constant _eusart_460800_index = 8
1559 00000008 = _eusart_460800_index equ 8
1560                    ; # 500000 bits/sec:
1561                    ; line_number = 68
1562                    ; constant _eusart_500000 = (_eusart_clock / (500000 * _eusart_factor)) - 1
1563 00000007 = _eusart_500000 equ 7
1564                    ; line_number = 69
1565                    ; constant _eusart_500000_low = _eusart_500000 & 0xff
1566 00000007 = _eusart_500000_low equ 7
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 = 9
1572 00000009 = _eusart_500000_index equ 9
1573                    ; # 576000 bits/sec (1MHz):
1574                    ; line_number = 73
1575                    ; constant _eusart_576000 = (_eusart_clock / (576000 * _eusart_factor)) - 1
1576 00000005 = _eusart_576000 equ 5
1577                    ; line_number = 74
1578                    ; constant _eusart_576000_low = _eusart_576000 & 0xff
1579 00000005 = _eusart_576000_low equ 5
1580                    ; line_number = 75
1581                    ; constant _eusart_576000_high = _eusart_576000 >> 8
1582 00000000 = _eusart_576000_high equ 0
1583                    ; line_number = 76
1584                    ; constant _eusart_576000_index = 10
1585 0000000a = _eusart_576000_index equ 10
1586                    ; # 625000 bits/sec:
1587                    ; line_number = 78
1588                    ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
1589 00000005 = _eusart_625000 equ 5
1590                    ; line_number = 79
1591                    ; constant _eusart_625000_low = _eusart_625000 & 0xff
1592 00000005 = _eusart_625000_low equ 5
1593                    ; line_number = 80
1594                    ; constant _eusart_625000_high = _eusart_625000 >> 8
1595 00000000 = _eusart_625000_high equ 0
1596                    ; line_number = 81
1597                    ; constant _eusart_625000_index = 11
1598 0000000b = _eusart_625000_index equ 11
1599                    ; # 833333 bits/sec:
1600                    ; line_number = 83
1601                    ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
1602 00000003 = _eusart_833333 equ 3
1603                    ; line_number = 84
1604                    ; constant _eusart_833333_low = _eusart_833333 & 0xff
1605 00000003 = _eusart_833333_low equ 3
1606                    ; line_number = 85
1607                    ; constant _eusart_833333_high = _eusart_833333 >> 8
1608 00000000 = _eusart_833333_high equ 0
1609                    ; line_number = 86
1610                    ; constant _eusart_833333_index = 12
1611 0000000c = _eusart_833333_index equ 12
1612                    ; # 921600 bits/sec:
1613                    ; line_number = 88
1614                    ; constant _eusart_921600 = (_eusart_clock / (921600 * _eusart_factor)) - 1
1615 00000003 = _eusart_921600 equ 3
1616                    ; line_number = 89
1617                    ; constant _eusart_921600_low = _eusart_921600 & 0xff
1618 00000003 = _eusart_921600_low equ 3
1619                    ; line_number = 90
1620                    ; constant _eusart_921600_high = _eusart_921600 >> 8
1621 00000000 = _eusart_921600_high equ 0
1622                    ; line_number = 91
1623                    ; constant _eusart_921600_index = 13
1624 0000000d = _eusart_921600_index equ 13
1625                    ; # 1000000 bits/sec (1MHz):
1626                    ; line_number = 93
1627                    ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
1628 00000003 = _eusart_1000000 equ 3
1629                    ; line_number = 94
1630                    ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
1631 00000003 = _eusart_1000000_low equ 3
1632                    ; line_number = 95
1633                    ; constant _eusart_1000000_high = _eusart_1000000 >> 8
1634 00000000 = _eusart_1000000_high equ 0
1635                    ; line_number = 96
1636                    ; constant _eusart_1000000_index = 14
1637 0000000e = _eusart_1000000_index equ 14
1638            
1639                    ; buffer = 'bus'
1640                    ; line_number = 11
1641                    ; library _eusart exited
1642            
1643            
1644                    ; line_number = 15
1645                    ; package pdip
1646                    ; line_number = 16
1647                    ; pin 1 = power_supply
1648                    ; line_number = 17
1649                    ;  pin 2 = osc1
1650                    ; line_number = 18
1651                    ;  pin 3 = osc2
1652                    ; line_number = 19
1653                    ;  pin 4 = ra3_in, name=p6
1654 00000005 = p6___byte equ _porta
1655 00000003 = p6___bit equ 3
1656                    ; line_number = 20
1657                    ;  pin 5 = rx, name=rx
1658 00000007 = rx___byte equ _portc
1659 00000005 = rx___bit equ 5
1660                    ; line_number = 21
1661                    ;  pin 6 = tx, name=tx
1662 00000007 = tx___byte equ _portc
1663 00000004 = tx___bit equ 4
1664                    ; line_number = 22
1665                    ;  pin 7 = rc3_in, name=p3
1666 00000007 = p3___byte equ _portc
1667 00000003 = p3___bit equ 3
1668                    ; line_number = 23
1669                    ;  pin 8 = rc2_in, name=p2
1670 00000007 = p2___byte equ _portc
1671 00000002 = p2___bit equ 2
1672                    ; line_number = 24
1673                    ;  pin 9 = rc1_out, name=p1
1674 00000007 = p1___byte equ _portc
1675 00000001 = p1___bit equ 1
1676                    ; line_number = 25
1677                    ;  pin 10 = rc0_out, name=p0
1678 00000007 = p0___byte equ _portc
1679 00000000 = p0___bit equ 0
1680                    ; line_number = 26
1681                    ;  pin 11 = ra2_out, name=reset
1682 00000005 = reset___byte equ _porta
1683 00000002 = reset___bit equ 2
1684                    ; line_number = 27
1685                    ;  pin 12 = ra1_out, name=p5
1686 00000005 = p5___byte equ _porta
1687 00000001 = p5___bit equ 1
1688                    ; line_number = 28
1689                    ;  pin 13 = ra0_in, name=p4
1690 00000005 = p4___byte equ _porta
1691 00000000 = p4___bit equ 0
1692                    ; line_number = 29
1693                    ;  pin 14 = ground
1694            
1695                    ; line_number = 31
1696                    ; origin 0
1697   0000 :           org     0
1698            
1699                    ; line_number = 33
1700                    ; constant microsecond = clocks_per_instruction / 1000000
1701 00000000 = microsecond equ 0
1702            
1703                    ; line_number = 35
1704                    ; constant buffer_power = 5
1705 00000005 = buffer_power equ 5
1706                    ; line_number = 36
1707                    ; constant buffer_size = 1 << buffer_power
1708 00000020 = buffer_size equ 32
1709                    ; line_number = 37
1710                    ; constant buffer_mask = buffer_size - 1
1711 0000001f = buffer_mask equ 31
1712            
1713                    ; line_number = 39
1714                    ; global lows[buffer_size] array[byte]
1715 00000023 = lows equ globals___0+3
1716                    ; line_number = 40
1717                    ; global highs[buffer_size] array[byte]
1718 00000043 = highs equ globals___0+35
1719                    ; line_number = 41
1720                    ; global buffer_in byte
1721 00000063 = buffer_in equ globals___0+67
1722                    ; line_number = 42
1723                    ; global buffer_out byte
1724 00000064 = buffer_out equ globals___0+68
1725                    ; line_number = 43
1726                    ; global buffer_amount byte
1727 00000065 = buffer_amount equ globals___0+69
1728            
1729                    ; line_number = 45
1730                    ; global command byte
1731 00000066 = command equ globals___0+70
1732                    ; line_number = 46
1733                    ; global response byte
1734 00000067 = response equ globals___0+71
1735            
1736                    ; line_number = 48
1737                    ;info   48, 0
1738                    ; procedure main
1739   0000 :   main:
1740                    ; Initialize some registers
1741 0000 019f          clrf    _adcon0
1742 0001 1683          bsf     __rp0___byte, __rp0___bit
1743 0002 0191          clrf    _ansel
1744 0003 3007          movlw   7
1745 0004 1283          bcf     __rp0___byte, __rp0___bit
1746 0005 0099          movwf   _cmcon0
1747 0006 3039          movlw   57
1748 0007 1683          bsf     __rp0___byte, __rp0___bit
1749 0008 0085          movwf   _trisa
1750 0009 303c          movlw   60
1751 000a 0087          movwf   _trisc
1752                    ; arguments_none
1753                    ; line_number = 50
1754                    ;  returns_nothing
1755            
1756                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:XX=cc=>XX)
1757                    ; line_number = 52
1758                    ;  p0 := _false
1759                    ;info   52, 11
1760 000b 1283          bcf     __rp0___byte, __rp0___bit
1761 000c 1007          bcf     p0___byte, p0___bit
1762                    ; line_number = 53
1763                    ;  p1 := _false
1764                    ;info   53, 13
1765 000d 1087          bcf     p1___byte, p1___bit
1766                    ; line_number = 54
1767                    ;  p5 := _false
1768                    ;info   54, 14
1769 000e 1085          bcf     p5___byte, p5___bit
1770                    ; line_number = 55
1771                    ;  command := 0
1772                    ;info   55, 15
1773 000f 01e6          clrf    command
1774                    ; line_number = 56
1775                    ;  response := 0
1776                    ;info   56, 16
1777 0010 01e7          clrf    response
1778            
1779                    ; line_number = 58
1780                    ;  buffer_in := 0
1781                    ;info   58, 17
1782 0011 01e3          clrf    buffer_in
1783                    ; line_number = 59
1784                    ;  buffer_out := 0
1785                    ;info   59, 18
1786 0012 01e4          clrf    buffer_out
1787                    ; line_number = 60
1788                    ;  buffer_amount := 0
1789                    ;info   60, 19
1790 0013 01e5          clrf    buffer_amount
1791            
1792                    ; # Warm up the UART:
1793                    ; line_number = 63
1794                    ;  _trisc@5 := _true
1795                    ;info   63, 20
1796 00000087 = main__select__1___byte equ _trisc
1797 00000005 = main__select__1___bit equ 5
1798 0014 1683          bsf     __rp0___byte, __rp0___bit
1799 0015 1687          bsf     main__select__1___byte, main__select__1___bit
1800                    ; line_number = 64
1801                    ;  _trisc@4 := _true
1802                    ;info   64, 22
1803 00000087 = main__select__2___byte equ _trisc
1804 00000004 = main__select__2___bit equ 4
1805 0016 1607          bsf     main__select__2___byte, main__select__2___bit
1806            
1807                    ; line_number = 66
1808                    ;  _txsta := 0
1809                    ;info   66, 23
1810 0017 1283          bcf     __rp0___byte, __rp0___bit
1811 0018 0196          clrf    _txsta
1812                    ; line_number = 67
1813                    ;  _tx9 := _true
1814                    ;info   67, 25
1815 0019 1716          bsf     _tx9___byte, _tx9___bit
1816                    ; #_tx9 := _false
1817                    ; line_number = 69
1818                    ;  _txen := _true
1819                    ;info   69, 26
1820 001a 1696          bsf     _txen___byte, _txen___bit
1821                    ; line_number = 70
1822                    ;  _brgh := _true
1823                    ;info   70, 27
1824 001b 1516          bsf     _brgh___byte, _brgh___bit
1825            
1826                    ; line_number = 72
1827                    ;  _rcsta := 0
1828                    ;info   72, 28
1829 001c 0197          clrf    _rcsta
1830                    ; line_number = 73
1831                    ;  _spen := _true
1832                    ;info   73, 29
1833 001d 1797          bsf     _spen___byte, _spen___bit
1834                    ; line_number = 74
1835                    ;  _rx9 := _true
1836                    ;info   74, 30
1837 001e 1717          bsf     _rx9___byte, _rx9___bit
1838                    ; #_rx9 := _false
1839                    ; line_number = 76
1840                    ;  _cren := _true
1841                    ;info   76, 31
1842 001f 1617          bsf     _cren___byte, _cren___bit
1843                    ; #_adden := _true
1844                    ; line_number = 78
1845                    ;  _adden := _false
1846                    ;info   78, 32
1847 0020 1197          bcf     _adden___byte, _adden___bit
1848            
1849                    ; line_number = 80
1850                    ;  _baudctl := 0
1851                    ;info   80, 33
1852 0021 0191          clrf    _baudctl
1853                    ; line_number = 81
1854                    ;  _brg16 := _true
1855                    ;info   81, 34
1856 0022 1591          bsf     _brg16___byte, _brg16___bit
1857            
1858                    ; #_spbrg := _eusart_19200_low
1859                    ; #_spbrgh := _eusart_19200_high
1860                    ; #_spbrg := _eusart_115200_low
1861                    ; #_spbrgh := _eusart_115200_high
1862                    ; #_spbrg := _eusart_230400_low
1863                    ; #_spbrgh := _eusart_230400_high
1864                    ; #_spbrg := _eusart_406800_low
1865                    ; #_spbrgh := _eusart_406800_high
1866                    ; line_number = 91
1867                    ;  _spbrg := _eusart_500000_low
1868                    ;info   91, 35
1869 0023 3007          movlw   7
1870 0024 0093          movwf   _spbrg
1871                    ; line_number = 92
1872                    ;  _spbrgh := _eusart_500000_high
1873                    ;info   92, 37
1874 0025 0192          clrf    _spbrgh
1875                    ; #_spbrg := _eusart_500000_low
1876                    ; #_spbrgh := _eusart_625000_high
1877                    ; #_spbrg := _eusart_833333_low
1878                    ; #_spbrgh := _eusart_833333_high
1879                    ; #_spbrg := _eusart_1000000_low
1880                    ; #_spbrgh := _eusart_1000000_high
1881            
1882                    ; # For debugging only -- Just output pulses on {reset}:
1883                    ; #loop_forever
1884                    ; #	reset := _false
1885                    ; #	reset := _true
1886            
1887                    ; # For debugging only -- Just output pulses on {reset}:
1888                    ; #loop_forever
1889                    ; #	p5 := _false
1890                    ; #	p5 := _true
1891            
1892                    ; #loop_forever
1893                    ; #	if p6
1894                    ; #	    p5 := _true
1895                    ; #	    reset := _true
1896                    ; #	else
1897                    ; #	    p5 := _false
1898                    ; #	    reset := _false
1899            
1900                    ; line_number = 118
1901                    ;  loop_forever start
1902   0026 :   main__3:
1903                    ; line_number = 119
1904                    ; if p6 start
1905                    ;info   119, 38
1906                    ; =>bit_code_emit@symbol(): sym=p6
1907                    ; No 1TEST: true.size=7 false.size=7
1908                    ; No 2TEST: true.size=7 false.size=7
1909                    ; 2GOTO: Single test with two GOTO's
1910 0026 1d85          btfss   p6___byte, p6___bit
1911 0027 2830          goto    main__8
1912                    ; # P6=1; wait for it to go low:
1913                    ; line_number = 121
1914                    ;  while p6 start
1915   0028 :   main__6:
1916                    ;info   121, 40
1917                    ; =>bit_code_emit@symbol(): sym=p6
1918                    ; No 1TEST: true.size=3 false.size=0
1919                    ; No 2TEST: true.size=3 false.size=0
1920                    ; 1GOTO: Single test with GOTO
1921 0028 1d85          btfss   p6___byte, p6___bit
1922 0029 282d          goto    main__7
1923                    ; line_number = 122
1924                    ; if _rcif start
1925                    ;info   122, 42
1926                    ; =>bit_code_emit@symbol(): sym=_rcif
1927                    ; 1TEST: Single test with code in skip slot
1928 002a 1a8c          btfsc   _rcif___byte, _rcif___bit
1929                    ; line_number = 123
1930                    ; call byte_receive()
1931                    ;info   123, 43
1932 002b 2077          call    byte_receive
1933                    ; Recombine size1 = 0 || size2 = 0
1934                    ; line_number = 122
1935                    ; if _rcif done
1936 002c 2828          goto    main__6
1937                    ; Recombine size1 = 0 || size2 = 0
1938   002d :   main__7:
1939                    ; line_number = 121
1940                    ;  while p6 done
1941                    ; line_number = 124
1942                    ; call process()
1943                    ;info   124, 45
1944 002d 2039          call    process
1945                    ; line_number = 125
1946                    ;  p5 := _false
1947                    ;info   125, 46
1948 002e 1085          bcf     p5___byte, p5___bit
1949 002f 2838          goto    main__9
1950                    ; 2GOTO: Starting code 2
1951   0030 :   main__8:
1952 0030 1303          bcf     __rp1___byte, __rp1___bit
1953                    ; # P6=0; wait for it to go high:
1954                    ; line_number = 128
1955                    ;  while !p6 start
1956   0031 :   main__4:
1957                    ;info   128, 49
1958                    ; =>bit_code_emit@symbol(): sym=p6
1959                    ; No 1TEST: true.size=0 false.size=3
1960                    ; No 2TEST: true.size=0 false.size=3
1961                    ; 1GOTO: Single test with GOTO
1962 0031 1985          btfsc   p6___byte, p6___bit
1963 0032 2836          goto    main__5
1964                    ; line_number = 129
1965                    ; if _rcif start
1966                    ;info   129, 51
1967                    ; =>bit_code_emit@symbol(): sym=_rcif
1968                    ; 1TEST: Single test with code in skip slot
1969 0033 1a8c          btfsc   _rcif___byte, _rcif___bit
1970                    ; line_number = 130
1971                    ; call byte_receive()
1972                    ;info   130, 52
1973 0034 2077          call    byte_receive
1974                    ; Recombine size1 = 0 || size2 = 0
1975                    ; line_number = 129
1976                    ; if _rcif done
1977 0035 2831          goto    main__4
1978   0036 :   main__5:
1979                    ; Recombine size1 = 0 || size2 = 0
1980                    ; line_number = 128
1981                    ;  while !p6 done
1982                    ; line_number = 131
1983                    ; call process()
1984                    ;info   131, 54
1985 0036 2039          call    process
1986                    ; line_number = 132
1987                    ;  p5 := _true
1988                    ;info   132, 55
1989 0037 1485          bsf     p5___byte, p5___bit
1990            
1991   0038 :   main__9:
1992                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
1993                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
1994                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
1995                    ; line_number = 119
1996                    ; if p6 done
1997                    ; line_number = 118
1998                    ;  loop_forever wrap-up
1999 0038 2826          goto    main__3
2000                    ; line_number = 118
2001                    ;  loop_forever done
2002                    ; delay after procedure statements=non-uniform
2003            
2004            
2005            
2006            
2007                    ; #    # Process commands:
2008                    ; #    loop_forever
2009                    ; #	# Wait for some data from the host:
2010                    ; #	while !p6
2011                    ; #	    if _rcif
2012                    ; #		call byte_receive()
2013                    ; #	call process()
2014                    ; #
2015                    ; #	# Wait for some data from the host:
2016                    ; #	while p6
2017                    ; #	    if _rcif
2018                    ; #		call byte_receive()
2019                    ; #	call process()
2020            
2021            
2022                    ; line_number = 149
2023                    ;info   149, 57
2024                    ; procedure process
2025   0039 :   process:
2026                    ; arguments_none
2027                    ; line_number = 151
2028                    ;  returns_nothing
2029            
2030                    ; # This procedure will process the bits coming in on P4:2 and
2031                    ; # respond with two bits on P1:0.
2032            
2033                    ; line_number = 156
2034                    ;  local low byte
2035 00000068 = process__low equ globals___0+72
2036                    ; line_number = 157
2037                    ;  local high byte
2038 00000069 = process__high equ globals___0+73
2039            
2040                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2041                    ; line_number = 159
2042                    ;  p1 := _false
2043                    ;info   159, 57
2044 0039 1087          bcf     p1___byte, p1___bit
2045                    ; line_number = 160
2046                    ;  p0 := _false
2047                    ;info   160, 58
2048 003a 1007          bcf     p0___byte, p0___bit
2049            
2050                    ; line_number = 162
2051                    ;  if p4 start
2052                    ;info   162, 59
2053                    ; =>bit_code_emit@symbol(): sym=p4
2054                    ; No 1TEST: true.size=40 false.size=16
2055                    ; No 2TEST: true.size=40 false.size=16
2056                    ; 2GOTO: Single test with two GOTO's
2057 003b 1c05          btfss   p4___byte, p4___bit
2058 003c 2866          goto    process__13
2059                    ; # We have a command to process:
2060                    ; line_number = 164
2061                    ;  if p3 start
2062                    ;info   164, 61
2063                    ; =>bit_code_emit@symbol(): sym=p3
2064                    ; No 1TEST: true.size=26 false.size=10
2065                    ; No 2TEST: true.size=26 false.size=10
2066                    ; 2GOTO: Single test with two GOTO's
2067 003d 1d87          btfss   p3___byte, p3___bit
2068 003e 285a          goto    process__11
2069                    ; # Command 1x:
2070                    ; line_number = 166
2071                    ;  if p2 start
2072                    ;info   166, 63
2073                    ; =>bit_code_emit@symbol(): sym=p2
2074                    ; No 1TEST: true.size=2 false.size=21
2075                    ; No 2TEST: true.size=2 false.size=21
2076                    ; 2GOTO: Single test with two GOTO's
2077 003f 1d07          btfss   p2___byte, p2___bit
2078 0040 2844          goto    process__9
2079                    ; # Command 11 (Reset):
2080                    ; line_number = 168
2081                    ;  reset := _false
2082                    ;info   168, 65
2083 0041 1105          bcf     reset___byte, reset___bit
2084                    ; line_number = 169
2085                    ;  delay 10 * microsecond start
2086                    ;info   169, 66
2087                    ; Delay expression evaluates to 0
2088                    ; line_number = 170
2089                    ; do_nothing
2090                    ;info   170, 66
2091                    ; line_number = 169
2092                    ;  delay 10 * microsecond done
2093                    ; line_number = 171
2094                    ; reset := _true
2095                    ;info   171, 66
2096 0042 1505          bsf     reset___byte, reset___bit
2097                    ; Recombine code1_bit_states != code2_bit_states
2098 0043 2859          goto    process__10
2099                    ; 2GOTO: Starting code 2
2100   0044 :   process__9:
2101                    ; # Command 10 (Receive Byte):
2102                    ; line_number = 174
2103                    ;  if buffer_amount = 0 start
2104                    ;info   174, 68
2105                    ; Left minus Right
2106 0044 0865          movf    buffer_amount,w
2107                    ; =>bit_code_emit@symbol(): sym=__z
2108                    ; No 1TEST: true.size=1 false.size=16
2109                    ; No 2TEST: true.size=1 false.size=16
2110                    ; 2GOTO: Single test with two GOTO's
2111 0045 1d03          btfss   __z___byte, __z___bit
2112 0046 2849          goto    process__7
2113                    ; # Empty buffer:
2114                    ; line_number = 176
2115                    ;  p1 := _true
2116                    ;info   176, 71
2117 0047 1487          bsf     p1___byte, p1___bit
2118                    ; Recombine code1_bit_states != code2_bit_states
2119 0048 2859          goto    process__8
2120                    ; 2GOTO: Starting code 2
2121   0049 :   process__7:
2122                    ; # We've got one:
2123                    ; line_number = 179
2124                    ;  high := highs[buffer_out & buffer_mask]
2125                    ;info   179, 73
2126 0049 301f          movlw   31
2127 004a 0564          andwf   buffer_out,w
2128 004b 3e43          addlw   highs
2129 004c 0084          movwf   __fsr
2130 004d 0800          movf    __indf,w
2131 004e 00e9          movwf   process__high
2132                    ; line_number = 180
2133                    ;  if high@0 start
2134                    ;info   180, 79
2135 00000069 = process__select__6___byte equ process__high
2136 00000000 = process__select__6___bit equ 0
2137                    ; =>bit_code_emit@symbol(): sym=process__select__6
2138                    ; 1TEST: Single test with code in skip slot
2139 004f 1869          btfsc   process__select__6___byte, process__select__6___bit
2140                    ; line_number = 181
2141                    ; p0 := _true
2142                    ;info   181, 80
2143 0050 1407          bsf     p0___byte, p0___bit
2144                    ; Recombine size1 = 0 || size2 = 0
2145                    ; line_number = 180
2146                    ;  if high@0 done
2147                    ; line_number = 182
2148                    ; response := lows[buffer_out & buffer_mask]
2149                    ;info   182, 81
2150 0051 301f          movlw   31
2151 0052 0564          andwf   buffer_out,w
2152 0053 3e23          addlw   lows
2153 0054 0084          movwf   __fsr
2154 0055 0800          movf    __indf,w
2155 0056 00e7          movwf   response
2156                    ; line_number = 183
2157                    ;  buffer_out := buffer_out + 1
2158                    ;info   183, 87
2159 0057 0ae4          incf    buffer_out,f
2160                    ; line_number = 184
2161                    ;  buffer_amount := buffer_amount - 1
2162                    ;info   184, 88
2163 0058 03e5          decf    buffer_amount,f
2164   0059 :   process__8:
2165                    ; 2GOTO: code1 final bitstates:(data:X0=cu=>X0 code:XX=cc=>XX)
2166                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2167                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2168                    ; line_number = 174
2169                    ;  if buffer_amount = 0 done
2170   0059 :   process__10:
2171                    ; 2GOTO: code1 final bitstates:(data:X0=cu=>X0 code:XX=cc=>XX)
2172                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2173                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2174                    ; line_number = 166
2175                    ;  if p2 done
2176 0059 2865          goto    process__12
2177                    ; 2GOTO: Starting code 2
2178   005a :   process__11:
2179 005a 1303          bcf     __rp1___byte, __rp1___bit
2180                    ; # Command 0x (Send a byte):
2181                    ; line_number = 187
2182                    ;  _tx9d := _false
2183                    ;info   187, 91
2184 005b 1016          bcf     _tx9d___byte, _tx9d___bit
2185                    ; line_number = 188
2186                    ;  if p2 start
2187                    ;info   188, 92
2188                    ; =>bit_code_emit@symbol(): sym=p2
2189                    ; 1TEST: Single test with code in skip slot
2190 005c 1907          btfsc   p2___byte, p2___bit
2191                    ; line_number = 189
2192                    ; _tx9d := _true
2193                    ;info   189, 93
2194 005d 1416          bsf     _tx9d___byte, _tx9d___bit
2195                    ; Recombine size1 = 0 || size2 = 0
2196                    ; line_number = 188
2197                    ;  if p2 done
2198                    ; line_number = 190
2199                    ; _txreg := command
2200                    ;info   190, 94
2201 005e 0866          movf    command,w
2202 005f 0095          movwf   _txreg
2203            
2204                    ; # Eat the echo:
2205                    ; line_number = 193
2206                    ;  while !_rcif start
2207   0060 :   process__5:
2208                    ;info   193, 96
2209                    ; =>bit_code_emit@symbol(): sym=_rcif
2210                    ; 1TEST: Single test with code in skip slot
2211 0060 1e8c          btfss   _rcif___byte, _rcif___bit
2212                    ; line_number = 194
2213                    ; do_nothing
2214                    ;info   194, 97
2215 0061 2860          goto    process__5
2216                    ; Recombine size1 = 0 || size2 = 0
2217                    ; line_number = 193
2218                    ;  while !_rcif done
2219                    ; line_number = 195
2220                    ; command := _rcreg
2221                    ;info   195, 98
2222 0062 0814          movf    _rcreg,w
2223 0063 00e6          movwf   command
2224                    ; line_number = 196
2225                    ;  p1 := _true
2226                    ;info   196, 100
2227 0064 1487          bsf     p1___byte, p1___bit
2228   0065 :   process__12:
2229                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2230                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2231                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2232                    ; line_number = 164
2233                    ;  if p3 done
2234 0065 2876          goto    process__14
2235                    ; 2GOTO: Starting code 2
2236   0066 :   process__13:
2237                    ; # We just need to shift command data in and the response data out:
2238                    ; line_number = 199
2239                    ;  command := command >> 2
2240                    ;info   199, 102
2241                    ; Assignment of variable to self (no code needed)
2242 0066 0ce6          rrf     command,f
2243 0067 0ce6          rrf     command,f
2244 0068 303f          movlw   63
2245 0069 05e6          andwf   command,f
2246                    ; line_number = 200
2247                    ;  if p3 start
2248                    ;info   200, 106
2249                    ; =>bit_code_emit@symbol(): sym=p3
2250                    ; 1TEST: Single test with code in skip slot
2251 006a 1987          btfsc   p3___byte, p3___bit
2252                    ; line_number = 201
2253                    ; command@7 := _true
2254                    ;info   201, 107
2255 00000066 = process__select__1___byte equ command
2256 00000007 = process__select__1___bit equ 7
2257 006b 17e6          bsf     process__select__1___byte, process__select__1___bit
2258                    ; Recombine size1 = 0 || size2 = 0
2259                    ; line_number = 200
2260                    ;  if p3 done
2261                    ; line_number = 202
2262                    ; if p2 start
2263                    ;info   202, 108
2264                    ; =>bit_code_emit@symbol(): sym=p2
2265                    ; 1TEST: Single test with code in skip slot
2266 006c 1907          btfsc   p2___byte, p2___bit
2267                    ; line_number = 203
2268                    ; command@6 := _true
2269                    ;info   203, 109
2270 00000066 = process__select__2___byte equ command
2271 00000006 = process__select__2___bit equ 6
2272 006d 1766          bsf     process__select__2___byte, process__select__2___bit
2273            
2274                    ; Recombine size1 = 0 || size2 = 0
2275                    ; line_number = 202
2276                    ; if p2 done
2277                    ; line_number = 205
2278                    ; if response@7 start
2279                    ;info   205, 110
2280 00000067 = process__select__3___byte equ response
2281 00000007 = process__select__3___bit equ 7
2282                    ; =>bit_code_emit@symbol(): sym=process__select__3
2283                    ; 1TEST: Single test with code in skip slot
2284 006e 1be7          btfsc   process__select__3___byte, process__select__3___bit
2285                    ; line_number = 206
2286                    ; p1 := _true
2287                    ;info   206, 111
2288 006f 1487          bsf     p1___byte, p1___bit
2289                    ; Recombine size1 = 0 || size2 = 0
2290                    ; line_number = 205
2291                    ; if response@7 done
2292                    ; line_number = 207
2293                    ; if response@6 start
2294                    ;info   207, 112
2295 00000067 = process__select__4___byte equ response
2296 00000006 = process__select__4___bit equ 6
2297                    ; =>bit_code_emit@symbol(): sym=process__select__4
2298                    ; 1TEST: Single test with code in skip slot
2299 0070 1b67          btfsc   process__select__4___byte, process__select__4___bit
2300                    ; line_number = 208
2301                    ; p0 := _true
2302                    ;info   208, 113
2303 0071 1407          bsf     p0___byte, p0___bit
2304                    ; Recombine size1 = 0 || size2 = 0
2305                    ; line_number = 207
2306                    ; if response@6 done
2307                    ; line_number = 209
2308                    ; response := response << 2
2309                    ;info   209, 114
2310                    ; Assignment of variable to self (no code needed)
2311 0072 0de7          rlf     response,f
2312 0073 0de7          rlf     response,f
2313 0074 30fc          movlw   252
2314 0075 05e7          andwf   response,f
2315            
2316            
2317   0076 :   process__14:
2318                    ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2319                    ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2320                    ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
2321                    ; line_number = 162
2322                    ;  if p4 done
2323                    ; delay after procedure statements=non-uniform
2324                    ; Implied return
2325 0076 3400          retlw   0
2326            
2327            
2328            
2329            
2330                    ; line_number = 212
2331                    ;info   212, 119
2332                    ; procedure byte_receive
2333   0077 :   byte_receive:
2334                    ; arguments_none
2335                    ; line_number = 214
2336                    ;  returns_nothing
2337            
2338                    ; # This procedure will receive a 9-bit "byte" from the UART
2339                    ; # and store the result into the {highs} and {lows} buffers.
2340            
2341                    ; line_number = 219
2342                    ;  local high byte
2343 0000006a = byte_receive__high equ globals___0+74
2344                    ; line_number = 220
2345                    ;  local low byte
2346 0000006b = byte_receive__low equ globals___0+75
2347            
2348                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2349                    ; line_number = 222
2350                    ;  high := 0
2351                    ;info   222, 119
2352 0077 01ea          clrf    byte_receive__high
2353                    ; line_number = 223
2354                    ;  if _rx9d start
2355                    ;info   223, 120
2356                    ; =>bit_code_emit@symbol(): sym=_rx9d
2357                    ; 1TEST: Single test with code in skip slot
2358 0078 1817          btfsc   _rx9d___byte, _rx9d___bit
2359                    ; line_number = 224
2360                    ; high@0 := _true
2361                    ;info   224, 121
2362 0000006a = byte_receive__select__1___byte equ byte_receive__high
2363 00000000 = byte_receive__select__1___bit equ 0
2364 0079 146a          bsf     byte_receive__select__1___byte, byte_receive__select__1___bit
2365                    ; Recombine size1 = 0 || size2 = 0
2366                    ; line_number = 223
2367                    ;  if _rx9d done
2368                    ; line_number = 225
2369                    ; highs[buffer_in & buffer_mask] := high
2370                    ;info   225, 122
2371                    ; index_fsr_first
2372 007a 301f          movlw   31
2373 007b 0563          andwf   buffer_in,w
2374 007c 3e43          addlw   highs
2375 007d 0084          movwf   __fsr
2376 007e 086a          movf    byte_receive__high,w
2377 007f 0080          movwf   __indf
2378                    ; line_number = 226
2379                    ;  lows[buffer_in & buffer_mask] := _rcreg
2380                    ;info   226, 128
2381                    ; index_fsr_first
2382 0080 301f          movlw   31
2383 0081 0563          andwf   buffer_in,w
2384 0082 3e23          addlw   lows
2385 0083 0084          movwf   __fsr
2386 0084 0814          movf    _rcreg,w
2387 0085 0080          movwf   __indf
2388                    ; line_number = 227
2389                    ;  buffer_in := buffer_in + 1
2390                    ;info   227, 134
2391 0086 0ae3          incf    buffer_in,f
2392                    ; line_number = 228
2393                    ;  buffer_amount := buffer_amount + 1
2394                    ;info   228, 135
2395 0087 0ae5          incf    buffer_amount,f
2396            
2397            
2398            
2399            
2400            
2401                    ; delay after procedure statements=non-uniform
2402                    ; Implied return
2403 0088 3400          retlw   0
2404            
2405            
2406            
2407            
2408            
2409                    ; Appending 7 delayed procedures to code bank 0
2410                    ; buffer = '_uart'
2411                    ; line_number = 7
2412                    ;info   7, 137
2413                    ; procedure _uart_byte_safe_get
2414   0089 :   _uart_byte_safe_get:
2415                    ; arguments_none
2416                    ; line_number = 9
2417                    ;  returns byte
2418            
2419                    ; # This procedure will the next byte from UART.  If no byte
2420                    ; # received in a reasonable time, 0xfc is returned.
2421            
2422                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2423                    ; line_number = 14
2424                    ;  loop_exactly 255 start
2425                    ;info   14, 137
2426 0000006c = _uart_byte_safe_get__1 equ globals___0+76
2427 0089 30ff          movlw   255
2428 008a 00ec          movwf   _uart_byte_safe_get__1
2429   008b :   _uart_byte_safe_get__2:
2430                    ; line_number = 15
2431                    ; loop_exactly 255 start
2432                    ;info   15, 139
2433 0000006d = _uart_byte_safe_get__3 equ globals___0+77
2434 008b 30ff          movlw   255
2435 008c 00ed          movwf   _uart_byte_safe_get__3
2436   008d :   _uart_byte_safe_get__4:
2437                    ; line_number = 16
2438                    ; if _rcif start
2439                    ;info   16, 141
2440                    ; =>bit_code_emit@symbol(): sym=_rcif
2441                    ; No 1TEST: true.size=2 false.size=0
2442                    ; No 2TEST: true.size=2 false.size=0
2443                    ; 1GOTO: Single test with GOTO
2444 008d 1e8c          btfss   _rcif___byte, _rcif___bit
2445 008e 2891          goto    _uart_byte_safe_get__5
2446                    ; line_number = 17
2447                    ; return _rcreg start
2448                    ; line_number = 17
2449                    ;info   17, 143
2450 008f 0814          movf    _rcreg,w
2451 0090 0008          return  
2452                    ; line_number = 17
2453                    ; return _rcreg done
2454                    ; Recombine size1 = 0 || size2 = 0
2455   0091 :   _uart_byte_safe_get__5:
2456                    ; line_number = 16
2457                    ; if _rcif done
2458                    ; line_number = 15
2459                    ; loop_exactly 255 wrap-up
2460 0091 0bed          decfsz  _uart_byte_safe_get__3,f
2461 0092 288d          goto    _uart_byte_safe_get__4
2462                    ; line_number = 15
2463                    ; loop_exactly 255 done
2464                    ; line_number = 14
2465                    ;  loop_exactly 255 wrap-up
2466 0093 0bec          decfsz  _uart_byte_safe_get__1,f
2467 0094 288b          goto    _uart_byte_safe_get__2
2468                    ; line_number = 14
2469                    ;  loop_exactly 255 done
2470                    ; line_number = 18
2471                    ; return 0xfc start
2472                    ; line_number = 18
2473                    ;info   18, 149
2474 0095 34fc          retlw   252
2475                    ; line_number = 18
2476                    ; return 0xfc done
2477            
2478            
2479                    ; delay after procedure statements=non-uniform
2480            
2481            
2482            
2483            
2484                    ; line_number = 21
2485                    ;info   21, 150
2486                    ; procedure _uart_byte_get
2487   0096 :   _uart_byte_get:
2488                    ; arguments_none
2489                    ; line_number = 23
2490                    ;  returns byte
2491            
2492                    ; # This procedure will return the next byte from the UART.
2493            
2494                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2495                    ; line_number = 27
2496                    ;  while !_rcif start
2497   0096 :   _uart_byte_get__1:
2498                    ;info   27, 150
2499                    ; =>bit_code_emit@symbol(): sym=_rcif
2500                    ; 1TEST: Single test with code in skip slot
2501 0096 1e8c          btfss   _rcif___byte, _rcif___bit
2502                    ; line_number = 28
2503                    ; do_nothing
2504                    ;info   28, 151
2505 0097 2896          goto    _uart_byte_get__1
2506                    ; Recombine size1 = 0 || size2 = 0
2507                    ; line_number = 27
2508                    ;  while !_rcif done
2509                    ; line_number = 29
2510                    ; return _rcreg start
2511                    ; line_number = 29
2512                    ;info   29, 152
2513 0098 0814          movf    _rcreg,w
2514 0099 0008          return  
2515                    ; line_number = 29
2516                    ; return _rcreg done
2517            
2518            
2519                    ; delay after procedure statements=non-uniform
2520            
2521            
2522            
2523            
2524                    ; line_number = 32
2525                    ;info   32, 154
2526                    ; procedure _uart_hex_put
2527   009a :   _uart_hex_put:
2528                    ; Last argument is sitting in W; save into argument variable
2529 009a 00a0          movwf   _uart_hex_put__value
2530                    ; delay=4294967295
2531                    ; line_number = 33
2532                    ; argument value byte
2533 00000020 = _uart_hex_put__value equ globals___0
2534                    ; line_number = 34
2535                    ;  returns_nothing
2536            
2537                    ; # This procedure will output {value} to the UART as a 2-digit
2538                    ; # hexadecimal number.
2539            
2540                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2541                    ; line_number = 39
2542                    ;  call _uart_nibble_put(value >> 4)
2543                    ;info   39, 155
2544 0000006e = _uart_hex_put__1 equ globals___0+78
2545 009b 0e20          swapf   _uart_hex_put__value,w
2546 009c 390f          andlw   15
2547 009d 20a2          call    _uart_nibble_put
2548                    ; line_number = 40
2549                    ;  call _uart_nibble_put(value & 0xf)
2550                    ;info   40, 158
2551 009e 300f          movlw   15
2552 009f 0520          andwf   _uart_hex_put__value,w
2553 00a0 20a2          call    _uart_nibble_put
2554            
2555            
2556                    ; delay after procedure statements=non-uniform
2557                    ; Implied return
2558 00a1 3400          retlw   0
2559            
2560            
2561            
2562            
2563                    ; line_number = 43
2564                    ;info   43, 162
2565                    ; procedure _uart_nibble_put
2566   00a2 :   _uart_nibble_put:
2567                    ; Last argument is sitting in W; save into argument variable
2568 00a2 00a1          movwf   _uart_nibble_put__nibble
2569                    ; delay=4294967295
2570                    ; line_number = 44
2571                    ; argument nibble byte
2572 00000021 = _uart_nibble_put__nibble equ globals___0+1
2573                    ; line_number = 45
2574                    ;  returns_nothing
2575            
2576                    ; # This procedure will output {value} to UART as a 1 digit
2577                    ; # hexadecimal number.
2578            
2579                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2580                    ; line_number = 50
2581                    ;  if nibble < 10 start
2582                    ;info   50, 163
2583 00a3 300a          movlw   10
2584 00a4 0221          subwf   _uart_nibble_put__nibble,w
2585                    ; =>bit_code_emit@symbol(): sym=__c
2586                    ; No 1TEST: true.size=1 false.size=1
2587                    ; 2TEST: two tests with code in both delay slots
2588 00a5 1803          btfsc   __c___byte, __c___bit
2589                    ; line_number = 53
2590                    ; nibble := nibble - 10 + 'A'
2591                    ;info   53, 166
2592 00a6 3037          movlw   55
2593 00a7 1c03          btfss   __c___byte, __c___bit
2594                    ; line_number = 51
2595                    ; nibble := nibble + '0'
2596                    ;info   51, 168
2597 00a8 3030          movlw   48
2598 00a9 07a1          addwf   _uart_nibble_put__nibble,f
2599                    ; line_number = 50
2600                    ;  if nibble < 10 done
2601                    ; line_number = 54
2602                    ; call _uart_byte_put(nibble)
2603                    ;info   54, 170
2604 00aa 0821          movf    _uart_nibble_put__nibble,w
2605 00ab 20b5          call    _uart_byte_put
2606            
2607            
2608                    ; delay after procedure statements=non-uniform
2609                    ; Implied return
2610 00ac 3400          retlw   0
2611            
2612            
2613            
2614            
2615                    ; line_number = 57
2616                    ;info   57, 173
2617                    ; procedure _uart_space_put
2618   00ad :   _uart_space_put:
2619                    ; arguments_none
2620                    ; line_number = 59
2621                    ;  returns_nothing
2622            
2623                    ; # This procedure will output a space to the UART.
2624            
2625                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2626                    ; line_number = 63
2627                    ;  call _uart_byte_put(' ')
2628                    ;info   63, 173
2629 00ad 3020          movlw   32
2630 00ae 20b5          call    _uart_byte_put
2631            
2632            
2633                    ; delay after procedure statements=non-uniform
2634                    ; Implied return
2635 00af 3400          retlw   0
2636            
2637            
2638            
2639            
2640                    ; line_number = 66
2641                    ;info   66, 176
2642                    ; procedure _uart_crlf_put
2643   00b0 :   _uart_crlf_put:
2644                    ; arguments_none
2645                    ; line_number = 68
2646                    ;  returns_nothing
2647            
2648                    ; # This procedure will output a carriage return line feed sequecne to
2649                    ; # the UART.
2650            
2651                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2652                    ; line_number = 73
2653                    ;  call _uart_byte_put('\cr\')
2654                    ;info   73, 176
2655 00b0 300d          movlw   13
2656 00b1 20b5          call    _uart_byte_put
2657                    ; line_number = 74
2658                    ;  call _uart_byte_put('\lf\')
2659                    ;info   74, 178
2660 00b2 300a          movlw   10
2661 00b3 20b5          call    _uart_byte_put
2662            
2663            
2664                    ; delay after procedure statements=non-uniform
2665                    ; Implied return
2666 00b4 3400          retlw   0
2667            
2668            
2669            
2670            
2671                    ; line_number = 77
2672                    ;info   77, 181
2673                    ; procedure _uart_byte_put
2674   00b5 :   _uart_byte_put:
2675                    ; Last argument is sitting in W; save into argument variable
2676 00b5 00a2          movwf   _uart_byte_put__byte
2677                    ; delay=4294967295
2678                    ; line_number = 78
2679                    ; argument byte byte
2680 00000022 = _uart_byte_put__byte equ globals___0+2
2681                    ; line_number = 79
2682                    ;  returns_nothing
2683            
2684                    ; # This procedure will send {byte} out using to the UART.
2685            
2686                    ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
2687                    ; line_number = 83
2688                    ;  while !_txif start
2689   00b6 :   _uart_byte_put__1:
2690                    ;info   83, 182
2691                    ; =>bit_code_emit@symbol(): sym=_txif
2692                    ; 1TEST: Single test with code in skip slot
2693 00b6 1c8c          btfss   _txif___byte, _txif___bit
2694                    ; line_number = 84
2695                    ; do_nothing
2696                    ;info   84, 183
2697 00b7 28b6          goto    _uart_byte_put__1
2698                    ; Recombine size1 = 0 || size2 = 0
2699                    ; line_number = 83
2700                    ;  while !_txif done
2701                    ; line_number = 85
2702                    ; _txreg := byte
2703                    ;info   85, 184
2704 00b8 0822          movf    _uart_byte_put__byte,w
2705 00b9 0095          movwf   _txreg
2706            
2707            
2708                    ; delay after procedure statements=non-uniform
2709                    ; Implied return
2710 00ba 3400          retlw   0
2711            
2712            
2713            
2714            
2715                    ; Configuration bits
2716                    ; address = 0x2007, fill = 0x3000
2717                    ; fcmen = off (0x0)
2718                    ; ieso = off (0x0)
2719                    ; boden = off (0x0)
2720                    ; cpd = off (0x80)
2721                    ; cp = off (0x40)
2722                    ; mclre = off (0x0)
2723                    ; pwrte = off (0x10)
2724                    ; wdte = off (0x0)
2725                    ; fosc = hs (0x2)
2726                    ; 12498 = 0x30d2
2727   30d2 =           __config 12498
2728                    ; Define start addresses for data regions
2729                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
2730                    ; Region="globals___0" Address=32" Size=80 Bytes=79 Bits=0 Available=1
2731                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
2732                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
2733                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
2734                    end
