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