1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 4095
3      0000 :           org     0
4               
5                       ; Define start addresses for data regions
6    00000070 = shared___globals equ 112
7    00000020 = globals___0 equ 32
8    000000a0 = globals___1 equ 160
9    00000120 = globals___2 equ 288
10   000001a0 = globals___3 equ 416
11   00000000 = __indf equ 0
12   00000002 = __pcl equ 2
13   00000003 = __status equ 3
14   00000004 = __fsr equ 4
15   00000003 = __c___byte equ 3
16   00000000 = __c___bit equ 0
17   00000003 = __z___byte equ 3
18   00000002 = __z___bit equ 2
19   00000003 = __rp0___byte equ 3
20   00000005 = __rp0___bit equ 5
21   00000003 = __rp1___byte equ 3
22   00000006 = __rp1___bit equ 6
23   00000003 = __irp___byte equ 3
24   00000007 = __irp___bit equ 7
25   0000000a = __pclath equ 10
26   0000000a = __cb0___byte equ 10
27   00000003 = __cb0___bit equ 3
28   0000000a = __cb1___byte equ 10
29   00000004 = __cb1___bit equ 4
30              
31                      ; # Copyright (c) 2000-2004 by Wayne C. Gramlich & William T. Benson.
32                      ; # All rights reserved.
33              
34                      ; buffer = 'dualmotor1amp'
35                      ; line_number = 6
36                      ; library _robobricks_pic16f688 entered
37              
38                      ; # Copyright (c) 2000-2005 by Wayne C. Gramlich and Bill Benson
39                      ; # All rights reserved.
40              
41                      ; buffer = '_robobricks_pic16f688'
42                      ; line_number = 6
43                      ; library _pic16f688 entered
44                      ; # Copyright (c) 2004 by Wayne C. Gramlich
45                      ; # All rights reserved.
46              
47                      ; buffer = '_pic16f688'
48                      ; line_number = 5
49                      ; processor pic16f688
50                      ; line_number = 6
51                      ; configure_address 0x2007
52                      ; line_number = 7
53                      ;  configure_fill 0x3000
54                      ; line_number = 8
55                      ;  configure_option fcmen: on = 0x800
56                      ; line_number = 9
57                      ;  configure_option fcmen: off = 0x000
58                      ; line_number = 10
59                      ;  configure_option ieso: on = 0x400
60                      ; line_number = 11
61                      ;  configure_option ieso: off = 0x000
62                      ; line_number = 12
63                      ;  configure_option boden: on = 0x300
64                      ; line_number = 13
65                      ;  configure_option boden: partial = 0x200
66                      ; line_number = 14
67                      ;  configure_option boden: sboden = 0x100
68                      ; line_number = 15
69                      ;  configure_option boden: off = 0x000
70                      ; line_number = 16
71                      ;  configure_option cpd: on = 0x00
72                      ; line_number = 17
73                      ;  configure_option cpd: off = 0x80
74                      ; line_number = 18
75                      ;  configure_option cp: on = 0x00
76                      ; line_number = 19
77                      ;  configure_option cp: off = 0x40
78                      ; line_number = 20
79                      ;  configure_option mclre: on = 0x20
80                      ; line_number = 21
81                      ;  configure_option mclre: off = 0x20
82                      ; line_number = 22
83                      ;  configure_option pwrte: on = 0x00
84                      ; line_number = 23
85                      ;  configure_option pwrte: off = 0x10
86                      ; line_number = 24
87                      ;  configure_option wdte: on = 8
88                      ; line_number = 25
89                      ;  configure_option wdte: off = 0
90                      ; line_number = 26
91                      ;  configure_option fosc: rc_clk = 7
92                      ; line_number = 27
93                      ;  configure_option fosc: rc_no_clk = 6
94                      ; line_number = 28
95                      ;  configure_option fosc: int_clk = 5
96                      ; line_number = 29
97                      ;  configure_option fosc: int_no_clk = 4
98                      ; line_number = 30
99                      ;  configure_option fosc: ec = 3
100                     ; line_number = 31
101                     ;  configure_option fosc: hs = 2
102                     ; line_number = 32
103                     ;  configure_option fosc: xt = 1
104                     ; line_number = 33
105                     ;  configure_option fosc: lp = 0
106             
107                     ; line_number = 35
108                     ;  code_bank 0x0 : 0xfff
109                     ; line_number = 36
110                     ;  data_bank 0x0 : 0x7f
111                     ; line_number = 37
112                     ;  data_bank 0x80 : 0xff
113                     ; line_number = 38
114                     ;  data_bank 0x100 : 0x17f
115                     ; line_number = 39
116                     ;  data_bank 0x180 : 0x1ff
117                     ; line_number = 40
118                     ;  global_region 0x20 : 0x6f
119                     ; line_number = 41
120                     ;  global_region 0xa0 : 0xef
121                     ; line_number = 42
122                     ;  global_region 0x120 : 0x16f
123                     ; line_number = 43
124                     ;  global_region 0x1a0 : 0x1ef
125                     ; line_number = 44
126                     ;  shared_region 0x70 : 0x7f
127                     ; line_number = 45
128                     ;  interrupts_possible
129                     ; line_number = 46
130                     ;  packages pdip=14, soic=14, tssop=14
131                     ; line_number = 47
132                     ;  pin vdd, power_supply
133                     ; line_number = 48
134                     ; pin_bindings pdip=1, soic=1, tssop=1
135                     ; line_number = 49
136                     ; pin ra5_in, ra5_nc, ra5_out, t1cki, osc1, clkin
137                     ; line_number = 50
138                     ; pin_bindings pdip=2, soic=2, tssop=2
139                     ; line_number = 51
140                     ;  bind_to _porta@5
141                     ; line_number = 52
142                     ;  or_if ra5_in _trisa 32
143                     ; line_number = 53
144                     ;  or_if ra5_nc _trisa 32
145                     ; line_number = 54
146                     ;  or_if ra5_out _trisa 0
147                     ; line_number = 55
148                     ; pin ra4_in, ra4_nc, ra4_out, t1g, osc2, an3, clkout
149                     ; line_number = 56
150                     ; pin_bindings pdip=3, soic=3, tssop=3
151                     ; line_number = 57
152                     ;  bind_to _porta@4
153                     ; line_number = 58
154                     ;  or_if ra4_in _trisa 16
155                     ; line_number = 59
156                     ;  or_if ra4_nc _trisa 16
157                     ; line_number = 60
158                     ;  or_if ra4_out _trisa 0
159                     ; line_number = 61
160                     ;  or_if an3 _trisa 8
161                     ; line_number = 62
162                     ;  or_if ra4_in _ansel 0
163                     ; line_number = 63
164                     ;  or_if ra4_out _ansel 0
165                     ; line_number = 64
166                     ;  or_if an3 _ansel 8
167                     ; line_number = 65
168                     ;  or_if ra4_in _adcon0 0
169                     ; line_number = 66
170                     ;  or_if ra4_out _adcon0 0
171                     ; line_number = 67
172                     ;  or_if an3 _adcon0 1
173                     ; line_number = 68
174                     ; pin ra3_in, ra3_nc, mclr, vpp
175                     ; line_number = 69
176                     ; pin_bindings pdip=4, soic=4, tssop=4
177                     ; line_number = 70
178                     ;  bind_to _porta@4
179                     ; line_number = 71
180                     ;  or_if ra3_in _trisa 8
181                     ; line_number = 72
182                     ;  or_if ra3_nc _trisa 8
183                     ; line_number = 73
184                     ; pin rc5_in, rc5_nc, rc5_out, rx, dt
185                     ; line_number = 74
186                     ; pin_bindings pdip=5, soic=5, tssop=5
187                     ; line_number = 75
188                     ;  bind_to _portc@5
189                     ; line_number = 76
190                     ;  or_if rc5_in _trisc 32
191                     ; line_number = 77
192                     ;  or_if rc5_nc _trisc 32
193                     ; line_number = 78
194                     ;  or_if rc5_out _trisc 0
195                     ; line_number = 79
196                     ;  or_if rx _trisc 32
197                     ; line_number = 80
198                     ; pin rc4_in, rc4_nc, rc4_out, c2out, tx, ck
199                     ; line_number = 81
200                     ; pin_bindings pdip=6, soic=6, tssop=6
201                     ; line_number = 82
202                     ;  bind_to _portc@4
203                     ; line_number = 83
204                     ;  or_if rc4_in _trisc 16
205                     ; line_number = 84
206                     ;  or_if rc4_nc _trisc 16
207                     ; line_number = 85
208                     ;  or_if rc4_out _trisc 0
209                     ; # The UART documentation says TX must be marked as in input:
210                     ; line_number = 87
211                     ;  or_if tx _trisc 16
212                     ; line_number = 88
213                     ; pin rc3_in, rc3_nc, rc3_out, an7
214                     ; line_number = 89
215                     ; pin_bindings pdip=7, soic=7, tssop=7
216                     ; line_number = 90
217                     ;  bind_to _portc@3
218                     ; line_number = 91
219                     ;  or_if rc3_in _trisc 8
220                     ; line_number = 92
221                     ;  or_if rc3_nc _trisc 8
222                     ; line_number = 93
223                     ;  or_if rc3_out _trisc 0
224                     ; line_number = 94
225                     ;  or_if an7 _trisc 8
226                     ; line_number = 95
227                     ;  or_if rc3_in _ansel 0
228                     ; line_number = 96
229                     ;  or_if rc3_out _ansel 0
230                     ; line_number = 97
231                     ;  or_if an7 _ansel 128
232                     ; line_number = 98
233                     ;  or_if rc3_in _adcon0 0
234                     ; line_number = 99
235                     ;  or_if rc3_out _adcon0 0
236                     ; line_number = 100
237                     ;  or_if an7 _adcon0 1
238                     ; line_number = 101
239                     ; pin rc2_in, rc2_nc, rc2_out, an6
240                     ; line_number = 102
241                     ; pin_bindings pdip=8, soic=8, tssop=8
242                     ; line_number = 103
243                     ;  bind_to _portc@2
244                     ; line_number = 104
245                     ;  or_if rc2_in _trisc 4
246                     ; line_number = 105
247                     ;  or_if rc2_nc _trisc 4
248                     ; line_number = 106
249                     ;  or_if rc2_out _trisc 0
250                     ; line_number = 107
251                     ;  or_if an6 _trisc 4
252                     ; line_number = 108
253                     ;  or_if rc2_in _ansel 0
254                     ; line_number = 109
255                     ;  or_if rc2_out _ansel 0
256                     ; line_number = 110
257                     ;  or_if an6 _ansel 64
258                     ; line_number = 111
259                     ;  or_if rc2_in _adcon0 0
260                     ; line_number = 112
261                     ;  or_if rc2_out _adcon0 0
262                     ; line_number = 113
263                     ;  or_if an6 _adcon0 1
264                     ; line_number = 114
265                     ; pin rc1_in, rc1_nc, rc1_out, an5, c2in_minus
266                     ; line_number = 115
267                     ; pin_bindings pdip=9, soic=9, tssop=9
268                     ; line_number = 116
269                     ;  bind_to _portc@1
270                     ; line_number = 117
271                     ;  or_if rc1_in _trisc 2
272                     ; line_number = 118
273                     ;  or_if rc1_nc _trisc 2
274                     ; line_number = 119
275                     ;  or_if rc1_out _trisc 0
276                     ; line_number = 120
277                     ;  or_if rc1_in _cmcon0 7
278                     ; line_number = 121
279                     ;  or_if rc1_out _cmcon0 7
280                     ; line_number = 122
281                     ;  or_if an5 _trisc 2
282                     ; line_number = 123
283                     ;  or_if rc1_in _ansel 0
284                     ; line_number = 124
285                     ;  or_if rc1_out _ansel 0
286                     ; line_number = 125
287                     ;  or_if an5 _ansel 32
288                     ; line_number = 126
289                     ;  or_if rc1_in _adcon0 0
290                     ; line_number = 127
291                     ;  or_if rc1_out _adcon0 0
292                     ; line_number = 128
293                     ;  or_if an5 _adcon0 1
294                     ; line_number = 129
295                     ; pin rc0_in, rc0_nc, rc0_out, an4, c2in_plus
296                     ; line_number = 130
297                     ; pin_bindings pdip=10, soic=10, tssop=10
298                     ; line_number = 131
299                     ;  bind_to _portc@0
300                     ; line_number = 132
301                     ;  or_if rc0_in _trisc 1
302                     ; line_number = 133
303                     ;  or_if rc0_nc _trisc 1
304                     ; line_number = 134
305                     ;  or_if rc0_out _trisc 0
306                     ; line_number = 135
307                     ;  or_if rc0_in _cmcon0 7
308                     ; line_number = 136
309                     ;  or_if rc0_out _cmcon0 7
310                     ; line_number = 137
311                     ;  or_if an4 _trisc 1
312                     ; line_number = 138
313                     ;  or_if rc0_in _ansel 0
314                     ; line_number = 139
315                     ;  or_if rc0_out _ansel 0
316                     ; line_number = 140
317                     ;  or_if an4 _ansel 16
318                     ; line_number = 141
319                     ;  or_if rc0_in _adcon0 0
320                     ; line_number = 142
321                     ;  or_if rc0_out _adcon0 0
322                     ; line_number = 143
323                     ;  or_if an4 _adcon0 1
324                     ; line_number = 144
325                     ; pin ra2_in, ra2_nc, ra2_out, an2, c1out, t0cki, int
326                     ; line_number = 145
327                     ; pin_bindings pdip=11, soic=11, tssop=11
328                     ; line_number = 146
329                     ;  bind_to _porta@2
330                     ; line_number = 147
331                     ;  or_if ra2_in _trisa 4
332                     ; line_number = 148
333                     ;  or_if ra2_nc _trisa 4
334                     ; line_number = 149
335                     ;  or_if ra2_out _trisa 0
336                     ; line_number = 150
337                     ;  or_if an2 _trisa 4
338                     ; line_number = 151
339                     ;  or_if ra2_in _ansel 0
340                     ; line_number = 152
341                     ;  or_if ra2_out _ansel 0
342                     ; line_number = 153
343                     ;  or_if an2 _ansel 4
344                     ; line_number = 154
345                     ;  or_if ra2_in _adcon0 0
346                     ; line_number = 155
347                     ;  or_if ra2_out _adcon0 0
348                     ; line_number = 156
349                     ;  or_if an2 _adcon0 1
350                     ; line_number = 157
351                     ; pin ra1_in, ra1_nc, ra1_out, an1, c1in_minus, vref, icspclk
352                     ; line_number = 158
353                     ; pin_bindings pdip=12, soic=12, tssop=12
354                     ; line_number = 159
355                     ;  bind_to _porta@1
356                     ; line_number = 160
357                     ;  or_if ra1_in _trisa 2
358                     ; line_number = 161
359                     ;  or_if ra1_nc _trisa 2
360                     ; line_number = 162
361                     ;  or_if ra1_out _trisa 0
362                     ; line_number = 163
363                     ;  or_if ra1_in _cmcon0 7
364                     ; line_number = 164
365                     ;  or_if ra1_out _cmcon0 7
366                     ; line_number = 165
367                     ;  or_if an1 _trisa 2
368                     ; line_number = 166
369                     ;  or_if ra1_in _ansel 0
370                     ; line_number = 167
371                     ;  or_if ra1_out _ansel 0
372                     ; line_number = 168
373                     ;  or_if an1 _ansel 2
374                     ; line_number = 169
375                     ;  or_if ra1_in _adcon0 0
376                     ; line_number = 170
377                     ;  or_if ra1_out _adcon0 0
378                     ; line_number = 171
379                     ;  or_if an1 _adcon0 1
380                     ; line_number = 172
381                     ; pin ra0_in, ra0_nc, ra0_out, an0, c1in_plus, icspdat, ulpwu
382                     ; line_number = 173
383                     ; pin_bindings pdip=13, soic=13, tssop=13
384                     ; line_number = 174
385                     ;  bind_to _porta@0
386                     ; line_number = 175
387                     ;  or_if ra0_in _trisa 1
388                     ; line_number = 176
389                     ;  or_if ra0_nc _trisa 1
390                     ; line_number = 177
391                     ;  or_if ra0_out _trisa 0
392                     ; line_number = 178
393                     ;  or_if ra0_in _cmcon0 7
394                     ; line_number = 179
395                     ;  or_if ra0_out _cmcon0 7
396                     ; line_number = 180
397                     ;  or_if an0 _trisa 1
398                     ; line_number = 181
399                     ;  or_if ra0_in _ansel 0
400                     ; line_number = 182
401                     ;  or_if ra0_out _ansel 0
402                     ; line_number = 183
403                     ;  or_if an0 _ansel 1
404                     ; line_number = 184
405                     ;  or_if ra0_in _adcon0 0
406                     ; line_number = 185
407                     ;  or_if ra0_out _adcon0 0
408                     ; line_number = 186
409                     ;  or_if an0 _adcon0 1
410                     ; line_number = 187
411                     ; pin vss, ground
412                     ; line_number = 188
413                     ; pin_bindings pdip=14, soic=14, tssop=14
414             
415             
416                     ; # Register/bit bindings:
417             
418                     ; # Databank 0 (0x0 - 0x7f):
419             
420                     ; line_number = 197
421                     ; register _indf = 
422  00000000 = _indf equ 0
423             
424                     ; line_number = 199
425                     ; register _tmr0 = 
426  00000001 = _tmr0 equ 1
427             
428                     ; line_number = 201
429                     ; register _pcl = 
430  00000002 = _pcl equ 2
431             
432                     ; line_number = 203
433                     ; register _status = 
434  00000003 = _status equ 3
435                     ; line_number = 204
436                     ; bind _irp = _status@7
437  00000003 = _irp___byte equ _status
438  00000007 = _irp___bit equ 7
439                     ; line_number = 205
440                     ; bind _rp1 = _status@5
441  00000003 = _rp1___byte equ _status
442  00000005 = _rp1___bit equ 5
443                     ; line_number = 206
444                     ; bind _rp0 = _status@5
445  00000003 = _rp0___byte equ _status
446  00000005 = _rp0___bit equ 5
447                     ; line_number = 207
448                     ; bind _to = _status@4
449  00000003 = _to___byte equ _status
450  00000004 = _to___bit equ 4
451                     ; line_number = 208
452                     ; bind _pd = _status@3
453  00000003 = _pd___byte equ _status
454  00000003 = _pd___bit equ 3
455                     ; line_number = 209
456                     ; bind _z = _status@2
457  00000003 = _z___byte equ _status
458  00000002 = _z___bit equ 2
459                     ; line_number = 210
460                     ; bind _dc = _status@1
461  00000003 = _dc___byte equ _status
462  00000001 = _dc___bit equ 1
463                     ; line_number = 211
464                     ; bind _c = _status@0
465  00000003 = _c___byte equ _status
466  00000000 = _c___bit equ 0
467             
468                     ; line_number = 213
469                     ; register _fsr = 
470  00000004 = _fsr equ 4
471             
472                     ; line_number = 215
473                     ; register _porta = 
474  00000005 = _porta equ 5
475                     ; line_number = 216
476                     ; register _ra = 
477  00000005 = _ra equ 5
478                     ; line_number = 217
479                     ; bind _ra5 = _porta@5
480  00000005 = _ra5___byte equ _porta
481  00000005 = _ra5___bit equ 5
482                     ; line_number = 218
483                     ; bind _ra4 = _porta@4
484  00000005 = _ra4___byte equ _porta
485  00000004 = _ra4___bit equ 4
486                     ; line_number = 219
487                     ; bind _ra3 = _porta@3
488  00000005 = _ra3___byte equ _porta
489  00000003 = _ra3___bit equ 3
490                     ; line_number = 220
491                     ; bind _ra2 = _porta@2
492  00000005 = _ra2___byte equ _porta
493  00000002 = _ra2___bit equ 2
494                     ; line_number = 221
495                     ; bind _ra1 = _porta@1
496  00000005 = _ra1___byte equ _porta
497  00000001 = _ra1___bit equ 1
498                     ; line_number = 222
499                     ; bind _ra0 = _porta@0
500  00000005 = _ra0___byte equ _porta
501  00000000 = _ra0___bit equ 0
502             
503                     ; line_number = 224
504                     ; register _portc = 
505  00000007 = _portc equ 7
506                     ; line_number = 225
507                     ; register _rc = 
508  00000007 = _rc equ 7
509                     ; line_number = 226
510                     ; bind _rc5 = _portc@5
511  00000007 = _rc5___byte equ _portc
512  00000005 = _rc5___bit equ 5
513                     ; line_number = 227
514                     ; bind _rc4 = _portc@4
515  00000007 = _rc4___byte equ _portc
516  00000004 = _rc4___bit equ 4
517                     ; line_number = 228
518                     ; bind _rc3 = _portc@3
519  00000007 = _rc3___byte equ _portc
520  00000003 = _rc3___bit equ 3
521                     ; line_number = 229
522                     ; bind _rc2 = _portc@2
523  00000007 = _rc2___byte equ _portc
524  00000002 = _rc2___bit equ 2
525                     ; line_number = 230
526                     ; bind _rc1 = _portc@1
527  00000007 = _rc1___byte equ _portc
528  00000001 = _rc1___bit equ 1
529                     ; line_number = 231
530                     ; bind _rc0 = _portc@0
531  00000007 = _rc0___byte equ _portc
532  00000000 = _rc0___bit equ 0
533             
534                     ; line_number = 233
535                     ; register _pclath = 
536  0000000a = _pclath equ 10
537             
538                     ; line_number = 235
539                     ; register _intcon = 
540  0000000b = _intcon equ 11
541                     ; line_number = 236
542                     ; bind _gie = _intcon@7
543  0000000b = _gie___byte equ _intcon
544  00000007 = _gie___bit equ 7
545                     ; line_number = 237
546                     ; bind _peie = _intcon@6
547  0000000b = _peie___byte equ _intcon
548  00000006 = _peie___bit equ 6
549                     ; line_number = 238
550                     ; bind _t0ie = _intcon@5
551  0000000b = _t0ie___byte equ _intcon
552  00000005 = _t0ie___bit equ 5
553                     ; line_number = 239
554                     ; bind _inte = _intcon@4
555  0000000b = _inte___byte equ _intcon
556  00000004 = _inte___bit equ 4
557                     ; line_number = 240
558                     ; bind _raie = _intcon@3
559  0000000b = _raie___byte equ _intcon
560  00000003 = _raie___bit equ 3
561                     ; line_number = 241
562                     ; bind _t0if = _intcon@2
563  0000000b = _t0if___byte equ _intcon
564  00000002 = _t0if___bit equ 2
565                     ; line_number = 242
566                     ; bind _intf = _intcon@1
567  0000000b = _intf___byte equ _intcon
568  00000001 = _intf___bit equ 1
569                     ; line_number = 243
570                     ; bind _raif = _intcon@0
571  0000000b = _raif___byte equ _intcon
572  00000000 = _raif___bit equ 0
573             
574                     ; line_number = 245
575                     ; register _pir1 = 
576  0000000c = _pir1 equ 12
577                     ; line_number = 246
578                     ; bind _eeif = _pir1@7
579  0000000c = _eeif___byte equ _pir1
580  00000007 = _eeif___bit equ 7
581                     ; line_number = 247
582                     ; bind _adif = _pir1@6
583  0000000c = _adif___byte equ _pir1
584  00000006 = _adif___bit equ 6
585                     ; line_number = 248
586                     ; bind _rcif = _pir1@5
587  0000000c = _rcif___byte equ _pir1
588  00000005 = _rcif___bit equ 5
589                     ; line_number = 249
590                     ; bind _c2if = _pir1@4
591  0000000c = _c2if___byte equ _pir1
592  00000004 = _c2if___bit equ 4
593                     ; line_number = 250
594                     ; bind _c1if = _pir1@3
595  0000000c = _c1if___byte equ _pir1
596  00000003 = _c1if___bit equ 3
597                     ; line_number = 251
598                     ; bind _osfif = _pir1@2
599  0000000c = _osfif___byte equ _pir1
600  00000002 = _osfif___bit equ 2
601                     ; line_number = 252
602                     ; bind _txif = _pir1@1
603  0000000c = _txif___byte equ _pir1
604  00000001 = _txif___bit equ 1
605                     ; line_number = 253
606                     ; bind _tmr1if = _pir1@0
607  0000000c = _tmr1if___byte equ _pir1
608  00000000 = _tmr1if___bit equ 0
609             
610                     ; line_number = 255
611                     ; register _tmr1l = 
612  0000000e = _tmr1l equ 14
613             
614                     ; line_number = 257
615                     ; register _tmr1h = 
616  0000000f = _tmr1h equ 15
617             
618                     ; line_number = 259
619                     ; register _t1con = 
620  00000010 = _t1con equ 16
621                     ; line_number = 260
622                     ; bind t1ginv = _t1con@7
623  00000010 = t1ginv___byte equ _t1con
624  00000007 = t1ginv___bit equ 7
625                     ; line_number = 261
626                     ; bind _tmr1ge = _t1con@6
627  00000010 = _tmr1ge___byte equ _t1con
628  00000006 = _tmr1ge___bit equ 6
629                     ; line_number = 262
630                     ; bind _t1ckps1 = _t1con@5
631  00000010 = _t1ckps1___byte equ _t1con
632  00000005 = _t1ckps1___bit equ 5
633                     ; line_number = 263
634                     ; bind _t1ckps0 = _t1con@4
635  00000010 = _t1ckps0___byte equ _t1con
636  00000004 = _t1ckps0___bit equ 4
637                     ; line_number = 264
638                     ; bind _t1oscen = _t1con@3
639  00000010 = _t1oscen___byte equ _t1con
640  00000003 = _t1oscen___bit equ 3
641                     ; line_number = 265
642                     ; bind _t1sync = _t1con@2
643  00000010 = _t1sync___byte equ _t1con
644  00000002 = _t1sync___bit equ 2
645                     ; line_number = 266
646                     ; bind _tmr1cs = _t1con@1
647  00000010 = _tmr1cs___byte equ _t1con
648  00000001 = _tmr1cs___bit equ 1
649                     ; line_number = 267
650                     ; bind _tmr1on = _t1con@0
651  00000010 = _tmr1on___byte equ _t1con
652  00000000 = _tmr1on___bit equ 0
653             
654                     ; line_number = 269
655                     ; register _baudctl = 
656  00000011 = _baudctl equ 17
657                     ; line_number = 270
658                     ; bind _abdovf = _baudctl@7
659  00000011 = _abdovf___byte equ _baudctl
660  00000007 = _abdovf___bit equ 7
661                     ; line_number = 271
662                     ; bind _rcidl = _baudctl@6
663  00000011 = _rcidl___byte equ _baudctl
664  00000006 = _rcidl___bit equ 6
665                     ; line_number = 272
666                     ; bind _sckp = _baudctl@4
667  00000011 = _sckp___byte equ _baudctl
668  00000004 = _sckp___bit equ 4
669                     ; line_number = 273
670                     ; bind _brg16 = _baudctl@3
671  00000011 = _brg16___byte equ _baudctl
672  00000003 = _brg16___bit equ 3
673                     ; line_number = 274
674                     ; bind _wue = _baudctl@1
675  00000011 = _wue___byte equ _baudctl
676  00000001 = _wue___bit equ 1
677                     ; line_number = 275
678                     ; bind _abden = _baudctl@0
679  00000011 = _abden___byte equ _baudctl
680  00000000 = _abden___bit equ 0
681             
682                     ; line_number = 277
683                     ; register _spbrgh = 
684  00000012 = _spbrgh equ 18
685             
686                     ; line_number = 279
687                     ; register _spbrg = 
688  00000013 = _spbrg equ 19
689             
690                     ; line_number = 281
691                     ; register _rcreg = 
692  00000014 = _rcreg equ 20
693             
694                     ; line_number = 283
695                     ; register _txreg = 
696  00000015 = _txreg equ 21
697             
698                     ; line_number = 285
699                     ; register _txsta = 
700  00000016 = _txsta equ 22
701                     ; line_number = 286
702                     ; bind _csrc = _txsta@7
703  00000016 = _csrc___byte equ _txsta
704  00000007 = _csrc___bit equ 7
705                     ; line_number = 287
706                     ; bind _tx9 = _txsta@6
707  00000016 = _tx9___byte equ _txsta
708  00000006 = _tx9___bit equ 6
709                     ; line_number = 288
710                     ; bind _txen = _txsta@5
711  00000016 = _txen___byte equ _txsta
712  00000005 = _txen___bit equ 5
713                     ; line_number = 289
714                     ; bind _sync = _txsta@4
715  00000016 = _sync___byte equ _txsta
716  00000004 = _sync___bit equ 4
717                     ; line_number = 290
718                     ; bind _sendb = _txsta@3
719  00000016 = _sendb___byte equ _txsta
720  00000003 = _sendb___bit equ 3
721                     ; line_number = 291
722                     ; bind _brgh = _txsta@2
723  00000016 = _brgh___byte equ _txsta
724  00000002 = _brgh___bit equ 2
725                     ; line_number = 292
726                     ; bind _trmt = _txsta@1
727  00000016 = _trmt___byte equ _txsta
728  00000001 = _trmt___bit equ 1
729                     ; line_number = 293
730                     ; bind _tx9d = _txsta@7
731  00000016 = _tx9d___byte equ _txsta
732  00000007 = _tx9d___bit equ 7
733             
734                     ; line_number = 295
735                     ; register _rcsta = 
736  00000017 = _rcsta equ 23
737                     ; line_number = 296
738                     ; bind _spen = _rcsta@7
739  00000017 = _spen___byte equ _rcsta
740  00000007 = _spen___bit equ 7
741                     ; line_number = 297
742                     ; bind _rx9 = _rcsta@6
743  00000017 = _rx9___byte equ _rcsta
744  00000006 = _rx9___bit equ 6
745                     ; line_number = 298
746                     ; bind _sren = _rcsta@5
747  00000017 = _sren___byte equ _rcsta
748  00000005 = _sren___bit equ 5
749                     ; line_number = 299
750                     ; bind _cren = _rcsta@4
751  00000017 = _cren___byte equ _rcsta
752  00000004 = _cren___bit equ 4
753                     ; line_number = 300
754                     ; bind _adden = _rcsta@3
755  00000017 = _adden___byte equ _rcsta
756  00000003 = _adden___bit equ 3
757                     ; line_number = 301
758                     ; bind _ferr = _rcsta@2
759  00000017 = _ferr___byte equ _rcsta
760  00000002 = _ferr___bit equ 2
761                     ; line_number = 302
762                     ; bind _oerr = _rcsta@1
763  00000017 = _oerr___byte equ _rcsta
764  00000001 = _oerr___bit equ 1
765                     ; line_number = 303
766                     ; bind _rx9d = _rcsta@0
767  00000017 = _rx9d___byte equ _rcsta
768  00000000 = _rx9d___bit equ 0
769             
770                     ; line_number = 305
771                     ; register _wdtcon = 
772  00000018 = _wdtcon equ 24
773                     ; line_number = 306
774                     ; bind _wdtps3 = _wdtcon@4
775  00000018 = _wdtps3___byte equ _wdtcon
776  00000004 = _wdtps3___bit equ 4
777                     ; line_number = 307
778                     ; bind _wdtps2 = _wdtcon@3
779  00000018 = _wdtps2___byte equ _wdtcon
780  00000003 = _wdtps2___bit equ 3
781                     ; line_number = 308
782                     ; bind _wdtps1 = _wdtcon@2
783  00000018 = _wdtps1___byte equ _wdtcon
784  00000002 = _wdtps1___bit equ 2
785                     ; line_number = 309
786                     ; bind _wdtps0 = _wdtcon@1
787  00000018 = _wdtps0___byte equ _wdtcon
788  00000001 = _wdtps0___bit equ 1
789                     ; line_number = 310
790                     ; bind _swdten = _wdtcon@0
791  00000018 = _swdten___byte equ _wdtcon
792  00000000 = _swdten___bit equ 0
793             
794                     ; line_number = 312
795                     ; register _cmcon0 = 
796  00000019 = _cmcon0 equ 25
797                     ; line_number = 313
798                     ; bind _c1out = _cmcon0@7
799  00000019 = _c1out___byte equ _cmcon0
800  00000007 = _c1out___bit equ 7
801                     ; line_number = 314
802                     ; bind _c2out = _cmcon0@6
803  00000019 = _c2out___byte equ _cmcon0
804  00000006 = _c2out___bit equ 6
805                     ; line_number = 315
806                     ; bind _c1inv = _cmcon0@5
807  00000019 = _c1inv___byte equ _cmcon0
808  00000005 = _c1inv___bit equ 5
809                     ; line_number = 316
810                     ; bind _c2inv = _cmcon0@4
811  00000019 = _c2inv___byte equ _cmcon0
812  00000004 = _c2inv___bit equ 4
813                     ; line_number = 317
814                     ; bind _cis = _cmcon0@3
815  00000019 = _cis___byte equ _cmcon0
816  00000003 = _cis___bit equ 3
817                     ; line_number = 318
818                     ; bind _cm2 = _cmcon0@2
819  00000019 = _cm2___byte equ _cmcon0
820  00000002 = _cm2___bit equ 2
821                     ; line_number = 319
822                     ; bind _cm1 = _cmcon0@1
823  00000019 = _cm1___byte equ _cmcon0
824  00000001 = _cm1___bit equ 1
825                     ; line_number = 320
826                     ; bind _cm0 = _cmcon0@0
827  00000019 = _cm0___byte equ _cmcon0
828  00000000 = _cm0___bit equ 0
829             
830                     ; line_number = 322
831                     ; register _cmcon1 = 
832  0000001a = _cmcon1 equ 26
833                     ; line_number = 323
834                     ; bind _t1gss = _cmcon1@0
835  0000001a = _t1gss___byte equ _cmcon1
836  00000000 = _t1gss___bit equ 0
837                     ; line_number = 324
838                     ; bind _c2sync = _cmcon1@1
839  0000001a = _c2sync___byte equ _cmcon1
840  00000001 = _c2sync___bit equ 1
841             
842                     ; line_number = 326
843                     ; register _adresh = 
844  0000001e = _adresh equ 30
845             
846                     ; line_number = 328
847                     ; register _adcon0 = 
848  0000001f = _adcon0 equ 31
849                     ; line_number = 329
850                     ; bind _adfm = _adcon0@7
851  0000001f = _adfm___byte equ _adcon0
852  00000007 = _adfm___bit equ 7
853                     ; line_number = 330
854                     ; bind _vcfg = _adcon0@6
855  0000001f = _vcfg___byte equ _adcon0
856  00000006 = _vcfg___bit equ 6
857                     ; line_number = 331
858                     ; bind _chs2 = _adcon0@4
859  0000001f = _chs2___byte equ _adcon0
860  00000004 = _chs2___bit equ 4
861                     ; line_number = 332
862                     ; bind _chs1 = _adcon0@3
863  0000001f = _chs1___byte equ _adcon0
864  00000003 = _chs1___bit equ 3
865                     ; line_number = 333
866                     ; bind _chs0 = _adcon0@2
867  0000001f = _chs0___byte equ _adcon0
868  00000002 = _chs0___bit equ 2
869                     ; line_number = 334
870                     ; bind _go = _adcon0@1
871  0000001f = _go___byte equ _adcon0
872  00000001 = _go___bit equ 1
873                     ; line_number = 335
874                     ; bind _adon = _adcon0@0
875  0000001f = _adon___byte equ _adcon0
876  00000000 = _adon___bit equ 0
877             
878                     ; # Data bank 1 (0x80-0xff):
879             
880                     ; line_number = 339
881                     ; register _option_reg = 
882  00000081 = _option_reg equ 129
883                     ; line_number = 340
884                     ; bind _rapu = _option_reg@7
885  00000081 = _rapu___byte equ _option_reg
886  00000007 = _rapu___bit equ 7
887                     ; line_number = 341
888                     ; bind _intedg = _option_reg@6
889  00000081 = _intedg___byte equ _option_reg
890  00000006 = _intedg___bit equ 6
891                     ; line_number = 342
892                     ; bind _t0cs = _option_reg@5
893  00000081 = _t0cs___byte equ _option_reg
894  00000005 = _t0cs___bit equ 5
895                     ; line_number = 343
896                     ; bind _t0se = _option_reg@4
897  00000081 = _t0se___byte equ _option_reg
898  00000004 = _t0se___bit equ 4
899                     ; line_number = 344
900                     ; bind _psa = _option_reg@3
901  00000081 = _psa___byte equ _option_reg
902  00000003 = _psa___bit equ 3
903                     ; line_number = 345
904                     ; bind _ps2 = _option_reg@2
905  00000081 = _ps2___byte equ _option_reg
906  00000002 = _ps2___bit equ 2
907                     ; line_number = 346
908                     ; bind _ps1 = _option_reg@1
909  00000081 = _ps1___byte equ _option_reg
910  00000001 = _ps1___bit equ 1
911                     ; line_number = 347
912                     ; bind _ps0 = _option_reg@0
913  00000081 = _ps0___byte equ _option_reg
914  00000000 = _ps0___bit equ 0
915             
916                     ; line_number = 349
917                     ; register _trisa = 
918  00000085 = _trisa equ 133
919                     ; line_number = 350
920                     ; bind _trisa5 = _trisa@5
921  00000085 = _trisa5___byte equ _trisa
922  00000005 = _trisa5___bit equ 5
923                     ; line_number = 351
924                     ; bind _trisa4 = _trisa@4
925  00000085 = _trisa4___byte equ _trisa
926  00000004 = _trisa4___bit equ 4
927                     ; line_number = 352
928                     ; bind _trisa3 = _trisa@3
929  00000085 = _trisa3___byte equ _trisa
930  00000003 = _trisa3___bit equ 3
931                     ; line_number = 353
932                     ; bind _trisa2 = _trisa@2
933  00000085 = _trisa2___byte equ _trisa
934  00000002 = _trisa2___bit equ 2
935                     ; line_number = 354
936                     ; bind _trisa1 = _trisa@1
937  00000085 = _trisa1___byte equ _trisa
938  00000001 = _trisa1___bit equ 1
939                     ; line_number = 355
940                     ; bind _trisa0 = _trisa@0
941  00000085 = _trisa0___byte equ _trisa
942  00000000 = _trisa0___bit equ 0
943             
944                     ; line_number = 357
945                     ; register _trisc = 
946  00000087 = _trisc equ 135
947                     ; line_number = 358
948                     ; bind _trisc5 = _trisc@5
949  00000087 = _trisc5___byte equ _trisc
950  00000005 = _trisc5___bit equ 5
951                     ; line_number = 359
952                     ; bind _trisc4 = _trisc@4
953  00000087 = _trisc4___byte equ _trisc
954  00000004 = _trisc4___bit equ 4
955                     ; line_number = 360
956                     ; bind _trisc3 = _trisc@3
957  00000087 = _trisc3___byte equ _trisc
958  00000003 = _trisc3___bit equ 3
959                     ; line_number = 361
960                     ; bind _trisc2 = _trisc@2
961  00000087 = _trisc2___byte equ _trisc
962  00000002 = _trisc2___bit equ 2
963                     ; line_number = 362
964                     ; bind _trisc1 = _trisc@1
965  00000087 = _trisc1___byte equ _trisc
966  00000001 = _trisc1___bit equ 1
967                     ; line_number = 363
968                     ; bind _trisc0 = _trisc@0
969  00000087 = _trisc0___byte equ _trisc
970  00000000 = _trisc0___bit equ 0
971             
972                     ; line_number = 365
973                     ; register _pie1 = 
974  0000008c = _pie1 equ 140
975                     ; line_number = 366
976                     ; bind _eeie = _pie1@7
977  0000008c = _eeie___byte equ _pie1
978  00000007 = _eeie___bit equ 7
979                     ; line_number = 367
980                     ; bind _adie = _pie1@6
981  0000008c = _adie___byte equ _pie1
982  00000006 = _adie___bit equ 6
983                     ; line_number = 368
984                     ; bind _rcie = _pie1@5
985  0000008c = _rcie___byte equ _pie1
986  00000005 = _rcie___bit equ 5
987                     ; line_number = 369
988                     ; bind _c2ie = _pie1@4
989  0000008c = _c2ie___byte equ _pie1
990  00000004 = _c2ie___bit equ 4
991                     ; line_number = 370
992                     ; bind _c1ie = _pie1@3
993  0000008c = _c1ie___byte equ _pie1
994  00000003 = _c1ie___bit equ 3
995                     ; line_number = 371
996                     ; bind _osfie = _pie1@2
997  0000008c = _osfie___byte equ _pie1
998  00000002 = _osfie___bit equ 2
999                     ; line_number = 372
1000                    ; bind _txie = _pie1@1
1001 0000008c = _txie___byte equ _pie1
1002 00000001 = _txie___bit equ 1
1003                    ; line_number = 373
1004                    ; bind _tmr1ie = _pie1@0
1005 0000008c = _tmr1ie___byte equ _pie1
1006 00000000 = _tmr1ie___bit equ 0
1007            
1008                    ; line_number = 375
1009                    ; register _pcon = 
1010 0000008e = _pcon equ 142
1011                    ; line_number = 376
1012                    ; bind _ulpwue = _pcon@5
1013 0000008e = _ulpwue___byte equ _pcon
1014 00000005 = _ulpwue___bit equ 5
1015                    ; line_number = 377
1016                    ; bind _sboden = _pcon@4
1017 0000008e = _sboden___byte equ _pcon
1018 00000004 = _sboden___bit equ 4
1019                    ; line_number = 378
1020                    ; bind _por = _pcon@1
1021 0000008e = _por___byte equ _pcon
1022 00000001 = _por___bit equ 1
1023                    ; line_number = 379
1024                    ; bind _bod = _pcon@0
1025 0000008e = _bod___byte equ _pcon
1026 00000000 = _bod___bit equ 0
1027            
1028                    ; line_number = 381
1029                    ; register _osccon = 
1030 0000008f = _osccon equ 143
1031                    ; line_number = 382
1032                    ; bind _ircf2 = _osccon@6
1033 0000008f = _ircf2___byte equ _osccon
1034 00000006 = _ircf2___bit equ 6
1035                    ; line_number = 383
1036                    ; bind _ircf1 = _osccon@5
1037 0000008f = _ircf1___byte equ _osccon
1038 00000005 = _ircf1___bit equ 5
1039                    ; line_number = 384
1040                    ; bind _ircf0 = _osccon@4
1041 0000008f = _ircf0___byte equ _osccon
1042 00000004 = _ircf0___bit equ 4
1043                    ; line_number = 385
1044                    ; bind _osts = _osccon@3
1045 0000008f = _osts___byte equ _osccon
1046 00000003 = _osts___bit equ 3
1047                    ; line_number = 386
1048                    ; bind _hts = _osccon@2
1049 0000008f = _hts___byte equ _osccon
1050 00000002 = _hts___bit equ 2
1051                    ; line_number = 387
1052                    ; bind _lts = _osccon@3
1053 0000008f = _lts___byte equ _osccon
1054 00000003 = _lts___bit equ 3
1055                    ; line_number = 388
1056                    ; bind _scs = _osccon@2
1057 0000008f = _scs___byte equ _osccon
1058 00000002 = _scs___bit equ 2
1059            
1060                    ; line_number = 390
1061                    ; register _osctune = 
1062 00000090 = _osctune equ 144
1063                    ; line_number = 391
1064                    ; bind _tun4 = _osctune@4
1065 00000090 = _tun4___byte equ _osctune
1066 00000004 = _tun4___bit equ 4
1067                    ; line_number = 392
1068                    ; bind _tun3 = _osctune@3
1069 00000090 = _tun3___byte equ _osctune
1070 00000003 = _tun3___bit equ 3
1071                    ; line_number = 393
1072                    ; bind _tun2 = _osctune@2
1073 00000090 = _tun2___byte equ _osctune
1074 00000002 = _tun2___bit equ 2
1075                    ; line_number = 394
1076                    ; bind _tun1 = _osctune@1
1077 00000090 = _tun1___byte equ _osctune
1078 00000001 = _tun1___bit equ 1
1079                    ; line_number = 395
1080                    ; bind _tun0 = _osctune@0
1081 00000090 = _tun0___byte equ _osctune
1082 00000000 = _tun0___bit equ 0
1083                    ; line_number = 396
1084                    ; constant _osccal_lsb = 1
1085 00000001 = _osccal_lsb equ 1
1086            
1087                    ; line_number = 398
1088                    ; register _ansel = 
1089 00000091 = _ansel equ 145
1090                    ; line_number = 399
1091                    ; bind _ans7 = _ansel@7
1092 00000091 = _ans7___byte equ _ansel
1093 00000007 = _ans7___bit equ 7
1094                    ; line_number = 400
1095                    ; bind _ans6 = _ansel@6
1096 00000091 = _ans6___byte equ _ansel
1097 00000006 = _ans6___bit equ 6
1098                    ; line_number = 401
1099                    ; bind _ans5 = _ansel@5
1100 00000091 = _ans5___byte equ _ansel
1101 00000005 = _ans5___bit equ 5
1102                    ; line_number = 402
1103                    ; bind _ans4 = _ansel@4
1104 00000091 = _ans4___byte equ _ansel
1105 00000004 = _ans4___bit equ 4
1106                    ; line_number = 403
1107                    ; bind _ans3 = _ansel@3
1108 00000091 = _ans3___byte equ _ansel
1109 00000003 = _ans3___bit equ 3
1110                    ; line_number = 404
1111                    ; bind _ans2 = _ansel@2
1112 00000091 = _ans2___byte equ _ansel
1113 00000002 = _ans2___bit equ 2
1114                    ; line_number = 405
1115                    ; bind _ans1 = _ansel@1
1116 00000091 = _ans1___byte equ _ansel
1117 00000001 = _ans1___bit equ 1
1118                    ; line_number = 406
1119                    ; bind _ans0 = _ansel@0
1120 00000091 = _ans0___byte equ _ansel
1121 00000000 = _ans0___bit equ 0
1122            
1123                    ; line_number = 408
1124                    ; register _wpua = 
1125 00000095 = _wpua equ 149
1126                    ; line_number = 409
1127                    ; bind _wpua5 = _wpua@5
1128 00000095 = _wpua5___byte equ _wpua
1129 00000005 = _wpua5___bit equ 5
1130                    ; line_number = 410
1131                    ; bind _wpua4 = _wpua@4
1132 00000095 = _wpua4___byte equ _wpua
1133 00000004 = _wpua4___bit equ 4
1134                    ; line_number = 411
1135                    ; bind _wpua2 = _wpua@2
1136 00000095 = _wpua2___byte equ _wpua
1137 00000002 = _wpua2___bit equ 2
1138                    ; line_number = 412
1139                    ; bind _wpua1 = _wpua@1
1140 00000095 = _wpua1___byte equ _wpua
1141 00000001 = _wpua1___bit equ 1
1142                    ; line_number = 413
1143                    ; bind _wpua0 = _wpua@0
1144 00000095 = _wpua0___byte equ _wpua
1145 00000000 = _wpua0___bit equ 0
1146            
1147                    ; line_number = 415
1148                    ; register _ioca = 
1149 00000096 = _ioca equ 150
1150                    ; line_number = 416
1151                    ; bind _ioca5 = _ioca@5
1152 00000096 = _ioca5___byte equ _ioca
1153 00000005 = _ioca5___bit equ 5
1154                    ; line_number = 417
1155                    ; bind _ioca4 = _ioca@4
1156 00000096 = _ioca4___byte equ _ioca
1157 00000004 = _ioca4___bit equ 4
1158                    ; line_number = 418
1159                    ; bind _ioca3 = _ioca@3
1160 00000096 = _ioca3___byte equ _ioca
1161 00000003 = _ioca3___bit equ 3
1162                    ; line_number = 419
1163                    ; bind _ioca2 = _ioca@2
1164 00000096 = _ioca2___byte equ _ioca
1165 00000002 = _ioca2___bit equ 2
1166                    ; line_number = 420
1167                    ; bind _ioca1 = _ioca@1
1168 00000096 = _ioca1___byte equ _ioca
1169 00000001 = _ioca1___bit equ 1
1170                    ; line_number = 421
1171                    ; bind _ioca0 = _ioca@0
1172 00000096 = _ioca0___byte equ _ioca
1173 00000000 = _ioca0___bit equ 0
1174            
1175                    ; line_number = 423
1176                    ; register _eedath = 
1177 00000097 = _eedath equ 151
1178            
1179                    ; line_number = 425
1180                    ; register _eeadrh = 
1181 00000098 = _eeadrh equ 152
1182            
1183                    ; line_number = 427
1184                    ; register _vrcon = 
1185 00000099 = _vrcon equ 153
1186                    ; line_number = 428
1187                    ; bind _vren = _vrcon@7
1188 00000099 = _vren___byte equ _vrcon
1189 00000007 = _vren___bit equ 7
1190                    ; line_number = 429
1191                    ; bind _vrr = _vrcon@5
1192 00000099 = _vrr___byte equ _vrcon
1193 00000005 = _vrr___bit equ 5
1194                    ; line_number = 430
1195                    ; bind _vr3 = _vrcon@3
1196 00000099 = _vr3___byte equ _vrcon
1197 00000003 = _vr3___bit equ 3
1198                    ; line_number = 431
1199                    ; bind _vr2 = _vrcon@2
1200 00000099 = _vr2___byte equ _vrcon
1201 00000002 = _vr2___bit equ 2
1202                    ; line_number = 432
1203                    ; bind _vr1 = _vrcon@1
1204 00000099 = _vr1___byte equ _vrcon
1205 00000001 = _vr1___bit equ 1
1206                    ; line_number = 433
1207                    ; bind _vr0 = _vrcon@0
1208 00000099 = _vr0___byte equ _vrcon
1209 00000000 = _vr0___bit equ 0
1210            
1211                    ; line_number = 435
1212                    ; register _eedata = 
1213 0000009a = _eedata equ 154
1214                    ; line_number = 436
1215                    ; bind _eedat7 = _eedata@7
1216 0000009a = _eedat7___byte equ _eedata
1217 00000007 = _eedat7___bit equ 7
1218                    ; line_number = 437
1219                    ; bind _eedat6 = _eedata@6
1220 0000009a = _eedat6___byte equ _eedata
1221 00000006 = _eedat6___bit equ 6
1222                    ; line_number = 438
1223                    ; bind _eedat5 = _eedata@5
1224 0000009a = _eedat5___byte equ _eedata
1225 00000005 = _eedat5___bit equ 5
1226                    ; line_number = 439
1227                    ; bind _eedat4 = _eedata@4
1228 0000009a = _eedat4___byte equ _eedata
1229 00000004 = _eedat4___bit equ 4
1230                    ; line_number = 440
1231                    ; bind _eedat3 = _eedata@3
1232 0000009a = _eedat3___byte equ _eedata
1233 00000003 = _eedat3___bit equ 3
1234                    ; line_number = 441
1235                    ; bind _eedat2 = _eedata@2
1236 0000009a = _eedat2___byte equ _eedata
1237 00000002 = _eedat2___bit equ 2
1238                    ; line_number = 442
1239                    ; bind _eedat1 = _eedata@1
1240 0000009a = _eedat1___byte equ _eedata
1241 00000001 = _eedat1___bit equ 1
1242                    ; line_number = 443
1243                    ; bind _eedat0 = _eedata@0
1244 0000009a = _eedat0___byte equ _eedata
1245 00000000 = _eedat0___bit equ 0
1246            
1247                    ; line_number = 445
1248                    ; register _eeadr = 
1249 0000009b = _eeadr equ 155
1250                    ; line_number = 446
1251                    ; bind _eeadr7 = _eeadr@7
1252 0000009b = _eeadr7___byte equ _eeadr
1253 00000007 = _eeadr7___bit equ 7
1254                    ; line_number = 447
1255                    ; bind _eeadr6 = _eeadr@6
1256 0000009b = _eeadr6___byte equ _eeadr
1257 00000006 = _eeadr6___bit equ 6
1258                    ; line_number = 448
1259                    ; bind _eeadr5 = _eeadr@5
1260 0000009b = _eeadr5___byte equ _eeadr
1261 00000005 = _eeadr5___bit equ 5
1262                    ; line_number = 449
1263                    ; bind _eeadr4 = _eeadr@4
1264 0000009b = _eeadr4___byte equ _eeadr
1265 00000004 = _eeadr4___bit equ 4
1266                    ; line_number = 450
1267                    ; bind _eeadr3 = _eeadr@3
1268 0000009b = _eeadr3___byte equ _eeadr
1269 00000003 = _eeadr3___bit equ 3
1270                    ; line_number = 451
1271                    ; bind _eeadr2 = _eeadr@2
1272 0000009b = _eeadr2___byte equ _eeadr
1273 00000002 = _eeadr2___bit equ 2
1274                    ; line_number = 452
1275                    ; bind _eeadr1 = _eeadr@1
1276 0000009b = _eeadr1___byte equ _eeadr
1277 00000001 = _eeadr1___bit equ 1
1278                    ; line_number = 453
1279                    ; bind _eeadr0 = _eeadr@0
1280 0000009b = _eeadr0___byte equ _eeadr
1281 00000000 = _eeadr0___bit equ 0
1282            
1283                    ; line_number = 455
1284                    ; register _eecon1 = 
1285 0000009c = _eecon1 equ 156
1286                    ; line_number = 456
1287                    ; bind _eepgd = _eecon1@7
1288 0000009c = _eepgd___byte equ _eecon1
1289 00000007 = _eepgd___bit equ 7
1290                    ; line_number = 457
1291                    ; bind _wrerr = _eecon1@3
1292 0000009c = _wrerr___byte equ _eecon1
1293 00000003 = _wrerr___bit equ 3
1294                    ; line_number = 458
1295                    ; bind _wren = _eecon1@2
1296 0000009c = _wren___byte equ _eecon1
1297 00000002 = _wren___bit equ 2
1298                    ; line_number = 459
1299                    ; bind _wr = _eecon1@1
1300 0000009c = _wr___byte equ _eecon1
1301 00000001 = _wr___bit equ 1
1302                    ; line_number = 460
1303                    ; bind _rd = _eecon1@0
1304 0000009c = _rd___byte equ _eecon1
1305 00000000 = _rd___bit equ 0
1306            
1307                    ; line_number = 462
1308                    ; register _eecon2 = 
1309 0000009d = _eecon2 equ 157
1310            
1311                    ; line_number = 464
1312                    ; register _adresl = 
1313 0000009e = _adresl equ 158
1314            
1315                    ; line_number = 466
1316                    ; register _adcon1 = 
1317 0000009f = _adcon1 equ 159
1318                    ; line_number = 467
1319                    ; bind _adcs2 = _adcon1@6
1320 0000009f = _adcs2___byte equ _adcon1
1321 00000006 = _adcs2___bit equ 6
1322                    ; line_number = 468
1323                    ; bind _adcs1 = _adcon1@5
1324 0000009f = _adcs1___byte equ _adcon1
1325 00000005 = _adcs1___bit equ 5
1326                    ; line_number = 469
1327                    ; bind _adcs0 = _adcon1@4
1328 0000009f = _adcs0___byte equ _adcon1
1329 00000004 = _adcs0___bit equ 4
1330            
1331                    ; # Data Bank 2 (0x100 - 0x17f):
1332            
1333                    ; buffer = '_robobricks_pic16f688'
1334                    ; line_number = 6
1335                    ; library _pic16f688 exited
1336                    ; line_number = 7
1337                    ; library clock8mhz entered
1338                    ; # Copyright (c) 2004-2005 by Wayne C. Gramlich
1339                    ; # All rights reserved.
1340            
1341                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1342                    ; # and {clocks_per_instruction}.
1343            
1344                    ; # Define processor constants:
1345                    ; buffer = 'clock8mhz'
1346                    ; line_number = 9
1347                    ; constant clock_rate = 8000000
1348 007a1200 = clock_rate equ 8000000
1349                    ; line_number = 10
1350                    ; constant clocks_per_instruction = 4
1351 00000004 = clocks_per_instruction equ 4
1352                    ; line_number = 11
1353                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1354 001e8480 = instruction_rate equ 2000000
1355            
1356            
1357                    ; buffer = '_robobricks_pic16f688'
1358                    ; line_number = 7
1359                    ; library clock8mhz exited
1360            
1361                    ; # Get some EUSART constants defined:
1362                    ; line_number = 10
1363                    ; constant _eusart_clock = clock_rate
1364 007a1200 = _eusart_clock equ 8000000
1365                    ; line_number = 11
1366                    ; constant _eusart_factor = 4
1367 00000004 = _eusart_factor equ 4
1368                    ; line_number = 12
1369                    ; library _eusart entered
1370            
1371                    ; # Copyright (c) 2005 by Wayne C. Gramlich
1372                    ; # All rights reserved.
1373            
1374                    ; # This library contains a bunch of definitions for the Enhanced Universal
1375                    ; # Asynchronous Serial Receiver/Transmitter (EUSART) that is available
1376                    ; # on many of the PIC microcontrollers.
1377            
1378                    ; # In order to use this module you have to get two constants defined
1379                    ; # BEFORE including this library -- {_eusart_factor} and {_eusart_clock}.
1380                    ; # {_eusart_clock} should be set to the frequency oscillator for the chip.
1381                    ; # {_eusart_factor} should be set to 4, 16, or 64 depending upon whether
1382                    ; # the {_brg16} and {_brgh} bits are set.  Use the table below to select:
1383                    ; #
1384                    ; #        _{brg16}	{_brgh}		_{eusart_factor}
1385                    ; #	    0		   0		      64
1386                    ; #	    0		   1		      16
1387                    ; #	    1		   0		      16
1388                    ; #	    1		   1		       
1389            
1390                    ; # 2400 baud:
1391                    ; buffer = '_eusart'
1392                    ; line_number = 23
1393                    ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
1394 00000340 = _eusart_2400 equ 832
1395                    ; line_number = 24
1396                    ; constant _eusart_2400_low = _eusart_2400 & 0xff
1397 00000040 = _eusart_2400_low equ 64
1398                    ; line_number = 25
1399                    ; constant _eusart_2400_high = _eusart_2400 >> 8
1400 00000003 = _eusart_2400_high equ 3
1401                    ; line_number = 26
1402                    ; constant _eusart_2400_index = 0
1403 00000000 = _eusart_2400_index equ 0
1404                    ; # 4800 baud:
1405                    ; line_number = 28
1406                    ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
1407 0000019f = _eusart_4800 equ 415
1408                    ; line_number = 29
1409                    ; constant _eusart_4800_low = _eusart_4800 & 0xff
1410 0000009f = _eusart_4800_low equ 159
1411                    ; line_number = 30
1412                    ; constant _eusart_4800_high = _eusart_4800 >> 8
1413 00000001 = _eusart_4800_high equ 1
1414                    ; line_number = 31
1415                    ; constant _eusart_4800_index = 1
1416 00000001 = _eusart_4800_index equ 1
1417                    ; # 9600 baud:
1418                    ; line_number = 33
1419                    ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
1420 000000cf = _eusart_9600 equ 207
1421                    ; line_number = 34
1422                    ; constant _eusart_9600_low = _eusart_9600 & 0xff
1423 000000cf = _eusart_9600_low equ 207
1424                    ; line_number = 35
1425                    ; constant _eusart_9600_high = _eusart_9600 >> 8
1426 00000000 = _eusart_9600_high equ 0
1427                    ; line_number = 36
1428                    ; constant _eusart_9600_index = 2
1429 00000002 = _eusart_9600_index equ 2
1430                    ; # 19200 baud:
1431                    ; line_number = 38
1432                    ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
1433 00000067 = _eusart_19200 equ 103
1434                    ; line_number = 39
1435                    ; constant _eusart_19200_low = _eusart_19200 & 0xff
1436 00000067 = _eusart_19200_low equ 103
1437                    ; line_number = 40
1438                    ; constant _eusart_19200_high = _eusart_19200 >> 8
1439 00000000 = _eusart_19200_high equ 0
1440                    ; line_number = 41
1441                    ; constant _eusart_19200_index = 3
1442 00000003 = _eusart_19200_index equ 3
1443                    ; # 38400 baud:
1444                    ; line_number = 43
1445                    ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
1446 00000033 = _eusart_38400 equ 51
1447                    ; line_number = 44
1448                    ; constant _eusart_38400_low = _eusart_38400 & 0xff
1449 00000033 = _eusart_38400_low equ 51
1450                    ; line_number = 45
1451                    ; constant _eusart_38400_high = _eusart_38400 >> 8
1452 00000000 = _eusart_38400_high equ 0
1453                    ; line_number = 46
1454                    ; constant _eusart_38400_index = 4
1455 00000004 = _eusart_38400_index equ 4
1456                    ; # 57600 baud:
1457                    ; line_number = 48
1458                    ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
1459 00000021 = _eusart_57600 equ 33
1460                    ; line_number = 49
1461                    ; constant _eusart_57600_low = _eusart_57600 & 0xff
1462 00000021 = _eusart_57600_low equ 33
1463                    ; line_number = 50
1464                    ; constant _eusart_57600_high = _eusart_57600 >> 8
1465 00000000 = _eusart_57600_high equ 0
1466                    ; line_number = 51
1467                    ; constant _eusart_57600_index = 5
1468 00000005 = _eusart_57600_index equ 5
1469                    ; # 115200 baud:
1470                    ; line_number = 53
1471                    ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
1472 00000010 = _eusart_115200 equ 16
1473                    ; line_number = 54
1474                    ; constant _eusart_115200_low = _eusart_115200 & 0xff
1475 00000010 = _eusart_115200_low equ 16
1476                    ; line_number = 55
1477                    ; constant _eusart_115200_high = _eusart_115200 >> 8
1478 00000000 = _eusart_115200_high equ 0
1479                    ; line_number = 56
1480                    ; constant _eusart_115200_index = 6
1481 00000006 = _eusart_115200_index equ 6
1482                    ; # 203400 baud:
1483                    ; line_number = 58
1484                    ; constant _eusart_203400 = (_eusart_clock / (203400 * _eusart_factor)) - 1
1485 00000008 = _eusart_203400 equ 8
1486                    ; line_number = 59
1487                    ; constant _eusart_203400_low = _eusart_203400 & 0xff
1488 00000008 = _eusart_203400_low equ 8
1489                    ; line_number = 60
1490                    ; constant _eusart_203400_high = _eusart_203400 >> 8
1491 00000000 = _eusart_203400_high equ 0
1492                    ; line_number = 61
1493                    ; constant _eusart_203400_index = 7
1494 00000007 = _eusart_203400_index equ 7
1495            
1496            
1497                    ; buffer = '_robobricks_pic16f688'
1498                    ; line_number = 12
1499                    ; library _eusart exited
1500            
1501                    ; line_number = 14
1502                    ; global debug_mode bit
1503 0000006f = debug_mode___byte equ globals___0+79
1504 00000000 = debug_mode___bit equ 0
1505                    ; line_number = 15
1506                    ; global in_byte_get bit
1507 0000006f = in_byte_get___byte equ globals___0+79
1508 00000001 = in_byte_get___bit equ 1
1509            
1510                    ; Delaying code generation for procedure  byte_get
1511                    ; Delaying code generation for procedure  byte_put
1512                    ; Delaying code generation for procedure  baud_rate_low
1513                    ; Delaying code generation for procedure  baud_rate_high
1514            
1515                    ; buffer = 'dualmotor1amp'
1516                    ; line_number = 6
1517                    ; library _robobricks_pic16f688 exited
1518            
1519                    ; line_number = 8
1520                    ; package pdip
1521                    ; line_number = 9
1522                    ; pin 1 = power_supply
1523                    ; line_number = 10
1524                    ;  pin 2 = ra5_in, name = debug, bit = debug_bit
1525 00000005 = debug___byte equ _porta
1526 00000005 = debug___bit equ 5
1527 00000005 = debug_bit equ 5
1528                    ; line_number = 11
1529                    ;  pin 3 = ra4_out, name = motor0b, mask = motor0b_mask
1530 00000005 = motor0b___byte equ _porta
1531 00000004 = motor0b___bit equ 4
1532 00000010 = motor0b_mask equ 16
1533                    ; line_number = 12
1534                    ;  pin 4 = ra3_nc
1535                    ; line_number = 13
1536                    ;  pin 5 = rx
1537                    ; line_number = 14
1538                    ;  pin 6 = tx
1539                    ; line_number = 15
1540                    ;  pin 7 = rc3_nc
1541                    ; line_number = 16
1542                    ;  pin 8 = rc2_out, name = led1
1543 00000007 = led1___byte equ _portc
1544 00000002 = led1___bit equ 2
1545                    ; line_number = 17
1546                    ;  pin 9 = rc1_out, name = led0
1547 00000007 = led0___byte equ _portc
1548 00000001 = led0___bit equ 1
1549                    ; line_number = 18
1550                    ;  pin 10 = rc0_out, name = enable
1551 00000007 = enable___byte equ _portc
1552 00000000 = enable___bit equ 0
1553                    ; line_number = 19
1554                    ;  pin 11 = ra2_out, name = motor1b, mask = motor1b_mask
1555 00000005 = motor1b___byte equ _porta
1556 00000002 = motor1b___bit equ 2
1557 00000004 = motor1b_mask equ 4
1558                    ; line_number = 20
1559                    ;  pin 12 = ra1_out, name = motor1a, mask = motor1a_mask
1560 00000005 = motor1a___byte equ _porta
1561 00000001 = motor1a___bit equ 1
1562 00000002 = motor1a_mask equ 2
1563                    ; line_number = 21
1564                    ;  pin 13 = ra0_out, name = motor0a, mask = motor0a_mask
1565 00000005 = motor0a___byte equ _porta
1566 00000000 = motor0a___bit equ 0
1567 00000001 = motor0a_mask equ 1
1568                    ; line_number = 22
1569                    ;  pin 14 = ground
1570            
1571                    ; # Define duty cycle and motor on/off masks:
1572                    ; line_number = 25
1573                    ; global actual_speed0 byte
1574 00000023 = actual_speed0 equ globals___0+3
1575                    ; line_number = 26
1576                    ; global actual_speed1 byte
1577 00000024 = actual_speed1 equ globals___0+4
1578                    ; line_number = 27
1579                    ; global motor0_off byte
1580 00000025 = motor0_off equ globals___0+5
1581                    ; line_number = 28
1582                    ; global motor0_on byte
1583 00000026 = motor0_on equ globals___0+6
1584                    ; line_number = 29
1585                    ; global motor1_off byte
1586 00000027 = motor1_off equ globals___0+7
1587                    ; line_number = 30
1588                    ; global motor1_on byte
1589 00000028 = motor1_on equ globals___0+8
1590            
1591                    ; # Ramp variables:
1592                    ; line_number = 33
1593                    ; global desired_speed0 byte
1594 00000029 = desired_speed0 equ globals___0+9
1595                    ; line_number = 34
1596                    ; global desired_speed1 byte
1597 0000002a = desired_speed1 equ globals___0+10
1598                    ; line_number = 35
1599                    ; global desired_direction0 bit
1600 0000006f = desired_direction0___byte equ globals___0+79
1601 00000002 = desired_direction0___bit equ 2
1602                    ; line_number = 36
1603                    ; global desired_direction1 bit
1604 0000006f = desired_direction1___byte equ globals___0+79
1605 00000003 = desired_direction1___bit equ 3
1606                    ; line_number = 37
1607                    ; global ramp0 byte
1608 0000002b = ramp0 equ globals___0+11
1609                    ; line_number = 38
1610                    ; global ramp1 byte
1611 0000002c = ramp1 equ globals___0+12
1612                    ; line_number = 39
1613                    ; global ramp0_delay byte
1614 0000002d = ramp0_delay equ globals___0+13
1615                    ; line_number = 40
1616                    ; global ramp1_delay byte
1617 0000002e = ramp1_delay equ globals___0+14
1618                    ; line_number = 41
1619                    ; global ramp0_offset byte
1620 0000002f = ramp0_offset equ globals___0+15
1621                    ; line_number = 42
1622                    ; global ramp1_offset byte
1623 00000030 = ramp1_offset equ globals___0+16
1624            
1625                    ; # Fail safe variables:
1626                    ; line_number = 45
1627                    ; global fail_safe byte
1628 00000031 = fail_safe equ globals___0+17
1629                    ; line_number = 46
1630                    ; global fail_safe_errors byte
1631 00000032 = fail_safe_errors equ globals___0+18
1632                    ; line_number = 47
1633                    ; global fail_safe_high_counter byte
1634 00000033 = fail_safe_high_counter equ globals___0+19
1635                    ; line_number = 48
1636                    ; global fail_safe_low_counter byte
1637 00000034 = fail_safe_low_counter equ globals___0+20
1638            
1639                    ; # Second command stuff for ramped direction change:
1640                    ; line_number = 51
1641                    ; global second_motor0_command bit
1642 0000006f = second_motor0_command___byte equ globals___0+79
1643 00000004 = second_motor0_command___bit equ 4
1644                    ; line_number = 52
1645                    ; global second_motor1_command bit
1646 0000006f = second_motor1_command___byte equ globals___0+79
1647 00000005 = second_motor1_command___bit equ 5
1648                    ; line_number = 53
1649                    ; global second_desired_speed0 byte
1650 00000035 = second_desired_speed0 equ globals___0+21
1651                    ; line_number = 54
1652                    ; global second_desired_speed1 byte
1653 00000036 = second_desired_speed1 equ globals___0+22
1654                    ; line_number = 55
1655                    ; global second_ramp0_offset byte
1656 00000037 = second_ramp0_offset equ globals___0+23
1657                    ; line_number = 56
1658                    ; global second_ramp1_offset byte
1659 00000038 = second_ramp1_offset equ globals___0+24
1660                    ; line_number = 57
1661                    ; global second_motor0_on byte
1662 00000039 = second_motor0_on equ globals___0+25
1663                    ; line_number = 58
1664                    ; global second_motor1_on byte
1665 0000003a = second_motor1_on equ globals___0+26
1666                    ; line_number = 59
1667                    ; global second_motor0_off byte
1668 0000003b = second_motor0_off equ globals___0+27
1669                    ; line_number = 60
1670                    ; global second_motor1_off byte
1671 0000003c = second_motor1_off equ globals___0+28
1672            
1673                    ; line_number = 62
1674                    ; global motor0 byte
1675 0000003d = motor0 equ globals___0+29
1676                    ; line_number = 63
1677                    ; global motor1 byte
1678 0000003e = motor1 equ globals___0+30
1679            
1680                    ; # Mode (pulsed vs. continuous) bits:
1681                    ; line_number = 66
1682                    ; global motor0_mode bit
1683 0000006f = motor0_mode___byte equ globals___0+79
1684 00000006 = motor0_mode___bit equ 6
1685                    ; line_number = 67
1686                    ; global motor1_mode bit
1687 0000006f = motor1_mode___byte equ globals___0+79
1688 00000007 = motor1_mode___bit equ 7
1689                    ; line_number = 68
1690                    ; global motor0_direction bit
1691 0000006e = motor0_direction___byte equ globals___0+78
1692 00000000 = motor0_direction___bit equ 0
1693                    ; line_number = 69
1694                    ; global motor1_direction bit
1695 0000006e = motor1_direction___byte equ globals___0+78
1696 00000001 = motor1_direction___bit equ 1
1697            
1698                    ; # Shared command registers and option:
1699                    ; line_number = 72
1700                    ; global glitch byte
1701 0000003f = glitch equ globals___0+31
1702                    ; line_number = 73
1703                    ; global id_index byte
1704 00000040 = id_index equ globals___0+32
1705                    ; line_number = 74
1706                    ; global spare byte
1707 00000041 = spare equ globals___0+33
1708            
1709                    ; line_number = 76
1710                    ; global command_previous byte
1711 00000042 = command_previous equ globals___0+34
1712                    ; line_number = 77
1713                    ; global command_last byte
1714 00000043 = command_last equ globals___0+35
1715                    ; line_number = 78
1716                    ; global sent_previous byte
1717 00000044 = sent_previous equ globals___0+36
1718                    ; line_number = 79
1719                    ; global sent_last byte
1720 00000045 = sent_last equ globals___0+37
1721            
1722                    ; line_number = 81
1723                    ; procedure main
1724   0000 :   main:
1725                    ; Initialize some registers
1726 0000 019f          clrf    _adcon0
1727 0001 1683          bsf     __rp0___byte, __rp0___bit
1728 0002 0191          clrf    _ansel
1729 0003 3007          movlw   7
1730 0004 1283          bcf     __rp0___byte, __rp0___bit
1731 0005 0099          movwf   _cmcon0
1732 0006 3028          movlw   40
1733 0007 1683          bsf     __rp0___byte, __rp0___bit
1734 0008 0085          movwf   _trisa
1735 0009 3038          movlw   56
1736 000a 0087          movwf   _trisc
1737                    ; arguments_none
1738                    ; line_number = 83
1739                    ;  returns_nothing
1740            
1741                    ; line_number = 85
1742                    ;  local command byte
1743 00000046 = main__command equ globals___0+38
1744                    ; line_number = 86
1745                    ;  local temp byte
1746 00000047 = main__temp equ globals___0+39
1747            
1748                    ; # Switch over to 8MHz:
1749                    ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:XX=>XX)
1750                    ; line_number = 89
1751                    ;  _osccon := 0x71
1752 000b 3071          movlw   113
1753 000c 008f          movwf   _osccon
1754            
1755                    ; # Warm up the UART:
1756                    ; line_number = 92
1757                    ;  _txsta := 0x24
1758 000d 3024          movlw   36
1759 000e 1283          bcf     __rp0___byte, __rp0___bit
1760 000f 0096          movwf   _txsta
1761                    ; line_number = 93
1762                    ;  _rcsta := 0x90
1763 0010 3090          movlw   144
1764 0011 0097          movwf   _rcsta
1765                    ; line_number = 94
1766                    ;  _baudctl := 0x08
1767 0012 3008          movlw   8
1768 0013 0091          movwf   _baudctl
1769                    ; line_number = 95
1770                    ;  _spbrg := _eusart_2400_low
1771 0014 3040          movlw   64
1772 0015 0093          movwf   _spbrg
1773                    ; line_number = 96
1774                    ;  _spbrgh := _eusart_2400_high
1775 0016 3003          movlw   3
1776 0017 0092          movwf   _spbrgh
1777            
1778                    ; line_number = 98
1779                    ;  call reset()
1780 0018 21e8          call    reset
1781            
1782                    ; # Loop waiting for commands:
1783                    ; line_number = 101
1784                    ;  loop_forever start
1785   0019 :   main__1:
1786                    ; # Get a command byte:
1787                    ; line_number = 103
1788                    ;  command := byte_get()
1789 0019 22eb          call    byte_get
1790 001a 00c6          movwf   main__command
1791            
1792                    ; # Dispatch on command:
1793                    ; line_number = 106
1794                    ;  switch command >> 6 start
1795 001b 3000          movlw   main__97>>8
1796 001c 008a          movwf   __pclath
1797 0000004a = main__98 equ globals___0+42
1798 001d 0e46          swapf   main__command,w
1799 001e 00ca          movwf   main__98
1800 001f 0cca          rrf     main__98,f
1801 0020 0c4a          rrf     main__98,w
1802 0021 3903          andlw   3
1803 0022 3e24          addlw   main__97
1804 0023 0082          movwf   __pcl
1805                    ; page_group 4
1806   0024 :   main__97:
1807 0024 2828          goto    main__93
1808 0025 2841          goto    main__94
1809 0026 2858          goto    main__95
1810 0027 291b          goto    main__96
1811                    ; line_number = 107
1812                    ; case 0
1813   0028 :   main__93:
1814                    ; # Set Quick (Command = 00hh hhdm):
1815                    ; line_number = 109
1816                    ;  temp := ((command << 2) & 0xf0) | (command >> 2)
1817 00000049 = main__2 equ globals___0+41
1818 0000004a = main__3 equ globals___0+42
1819 0028 0d46          rlf     main__command,w
1820 0029 00ca          movwf   main__3
1821 002a 0d4a          rlf     main__3,w
1822 002b 39f0          andlw   240
1823 002c 00c9          movwf   main__2
1824 0000004a = main__4 equ globals___0+42
1825 002d 0c46          rrf     main__command,w
1826 002e 00ca          movwf   main__4
1827 002f 0c4a          rrf     main__4,w
1828 0030 393f          andlw   63
1829 0031 0449          iorwf   main__2,w
1830 0032 00c7          movwf   main__temp
1831                    ; line_number = 110
1832                    ;  if command@0 start
1833 00000046 = main__select__7___byte equ main__command
1834 00000000 = main__select__7___bit equ 0
1835                    ; # Motor :
1836                    ; line_number = 112
1837                    ;  desired_speed1 := temp
1838 0033 0847          movf    main__temp,w
1839                    ; line_number = 115
1840                    ; desired_speed0 := temp
1841                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1842                    ; CASE: true_code_size > 1 && false_code_size > 1
1843                    ; true_code_size=4 false_code_size=4
1844 0034 1c46          btfss   main__select__7___byte, main__select__7___bit
1845 0035 283b          goto    main__8
1846 0036 00aa          movwf   desired_speed1
1847                    ; line_number = 113
1848                    ;  desired_direction1 := command@1
1849 0037 11ef          bcf     desired_direction1___byte, desired_direction1___bit
1850 00000046 = main__select__6___byte equ main__command
1851 00000001 = main__select__6___bit equ 1
1852                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1853                    ; CASE: True.size=1 False.size=0
1854 0038 18c6          btfsc   main__select__6___byte, main__select__6___bit
1855 0039 15ef          bsf     desired_direction1___byte, desired_direction1___bit
1856                    ; Recombine size1 = 0 || size2 = 0
1857                    ; code.delay=4294967295 back_code.delay=4294967295
1858                    ; <=bit_code_emit@symbol; sym=main__select__6 (data:00=>00 code:XX=>XX)
1859 003a 283f          goto    main__9
1860   003b :   main__8:
1861 003b 00a9          movwf   desired_speed0
1862                    ; line_number = 116
1863                    ;  desired_direction0 := command@1
1864 003c 116f          bcf     desired_direction0___byte, desired_direction0___bit
1865 00000046 = main__select__5___byte equ main__command
1866 00000001 = main__select__5___bit equ 1
1867                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1868                    ; CASE: True.size=1 False.size=0
1869 003d 18c6          btfsc   main__select__5___byte, main__select__5___bit
1870 003e 156f          bsf     desired_direction0___byte, desired_direction0___bit
1871                    ; Recombine size1 = 0 || size2 = 0
1872                    ; code.delay=4294967295 back_code.delay=4294967295
1873                    ; <=bit_code_emit@symbol; sym=main__select__5 (data:00=>00 code:XX=>XX)
1874   003f :   main__9:
1875                    ; code.delay=4294967295 back_code.delay=4294967295
1876                    ; <=bit_code_emit@symbol; sym=main__select__7 (data:00=>00 code:XX=>XX)
1877                    ; line_number = 110
1878                    ;  if command@0 done
1879                    ; line_number = 117
1880                    ; call set_up()
1881 003f 2163          call    set_up
1882 0040 2960          goto    main__99
1883                    ; line_number = 118
1884                    ; case 1
1885   0041 :   main__94:
1886                    ; # Set Low (Command = 01ll lldm):
1887                    ; line_number = 120
1888                    ;  temp := (command >> 2) & 0xf
1889 0000004a = main__10 equ globals___0+42
1890 0041 0c46          rrf     main__command,w
1891 0042 00ca          movwf   main__10
1892 0043 0c4a          rrf     main__10,w
1893 0044 390f          andlw   15
1894 0045 00c7          movwf   main__temp
1895                    ; line_number = 121
1896                    ;  if command@0 start
1897 00000046 = main__select__13___byte equ main__command
1898 00000000 = main__select__13___bit equ 0
1899                    ; # Motor 1:
1900                    ; line_number = 123
1901                    ;  desired_speed1 := desired_speed1 & 0xf0 | temp
1902 0046 30f0          movlw   240
1903                    ; # Motor 0:
1904                    ; line_number = 127
1905                    ;  desired_speed0 := desired_speed0 & 0xf0 | temp
1906                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1907                    ; CASE: true_code_size > 1 && false_code_size > 1
1908                    ; true_code_size=6 false_code_size=6
1909 0047 1c46          btfss   main__select__13___byte, main__select__13___bit
1910 0048 2850          goto    main__14
1911 0049 052a          andwf   desired_speed1,w
1912 004a 0447          iorwf   main__temp,w
1913 004b 00aa          movwf   desired_speed1
1914                    ; line_number = 124
1915                    ;  desired_direction1 := command@1
1916 004c 11ef          bcf     desired_direction1___byte, desired_direction1___bit
1917 00000046 = main__select__12___byte equ main__command
1918 00000001 = main__select__12___bit equ 1
1919                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1920                    ; CASE: True.size=1 False.size=0
1921 004d 18c6          btfsc   main__select__12___byte, main__select__12___bit
1922 004e 15ef          bsf     desired_direction1___byte, desired_direction1___bit
1923                    ; Recombine size1 = 0 || size2 = 0
1924                    ; code.delay=4294967295 back_code.delay=4294967295
1925                    ; <=bit_code_emit@symbol; sym=main__select__12 (data:00=>00 code:XX=>XX)
1926 004f 2856          goto    main__15
1927   0050 :   main__14:
1928 0050 0529          andwf   desired_speed0,w
1929 0051 0447          iorwf   main__temp,w
1930 0052 00a9          movwf   desired_speed0
1931                    ; line_number = 128
1932                    ;  desired_direction0 := command@1
1933 0053 116f          bcf     desired_direction0___byte, desired_direction0___bit
1934 00000046 = main__select__11___byte equ main__command
1935 00000001 = main__select__11___bit equ 1
1936                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
1937                    ; CASE: True.size=1 False.size=0
1938 0054 18c6          btfsc   main__select__11___byte, main__select__11___bit
1939 0055 156f          bsf     desired_direction0___byte, desired_direction0___bit
1940                    ; Recombine size1 = 0 || size2 = 0
1941                    ; code.delay=4294967295 back_code.delay=4294967295
1942                    ; <=bit_code_emit@symbol; sym=main__select__11 (data:00=>00 code:XX=>XX)
1943   0056 :   main__15:
1944                    ; code.delay=4294967295 back_code.delay=4294967295
1945                    ; <=bit_code_emit@symbol; sym=main__select__13 (data:00=>00 code:XX=>XX)
1946                    ; line_number = 121
1947                    ;  if command@0 done
1948                    ; line_number = 129
1949                    ; call set_up()
1950 0056 2163          call    set_up
1951 0057 2960          goto    main__99
1952                    ; line_number = 130
1953                    ; case 2
1954   0058 :   main__95:
1955                    ; # Command = 10xx xxxx:
1956                    ; line_number = 132
1957                    ;  switch (command >> 3) & 7 start
1958 0058 3000          movlw   main__75>>8
1959 0059 008a          movwf   __pclath
1960 0000004a = main__76 equ globals___0+42
1961 005a 0c46          rrf     main__command,w
1962 005b 00ca          movwf   main__76
1963 005c 0cca          rrf     main__76,f
1964 005d 0c4a          rrf     main__76,w
1965 005e 3907          andlw   7
1966 005f 3e61          addlw   main__75
1967 0060 0082          movwf   __pcl
1968                    ; page_group 8
1969   0061 :   main__75:
1970 0061 2869          goto    main__68
1971 0062 289c          goto    main__69
1972 0063 28b3          goto    main__70
1973 0064 28b9          goto    main__71
1974 0065 28ee          goto    main__72
1975 0066 2912          goto    main__73
1976 0067 291a          goto    main__74
1977 0068 291a          goto    main__74
1978                    ; line_number = 133
1979                    ; case 0
1980   0069 :   main__68:
1981                    ; # Command = 1000 0xxx:
1982                    ; line_number = 135
1983                    ;  switch command & 7 start
1984 0069 3000          movlw   main__26>>8
1985 006a 008a          movwf   __pclath
1986 006b 3007          movlw   7
1987 006c 0546          andwf   main__command,w
1988 006d 3e6f          addlw   main__26
1989 006e 0082          movwf   __pcl
1990                    ; page_group 8
1991   006f :   main__26:
1992 006f 2877          goto    main__22
1993 0070 2877          goto    main__22
1994 0071 2880          goto    main__23
1995 0072 2887          goto    main__24
1996 0073 288c          goto    main__25
1997 0074 288c          goto    main__25
1998 0075 288c          goto    main__25
1999 0076 288c          goto    main__25
2000                    ; line_number = 136
2001                    ; case 0, 1
2002   0077 :   main__22:
2003                    ; # Set Ramp (Command = 1000 000m):
2004                    ; line_number = 138
2005                    ;  temp := byte_get()
2006 0077 22eb          call    byte_get
2007 0078 00c7          movwf   main__temp
2008                    ; line_number = 139
2009                    ;  if command@0 start
2010 00000046 = main__select__16___byte equ main__command
2011 00000000 = main__select__16___bit equ 0
2012                    ; line_number = 140
2013                    ; ramp1 := temp
2014 0079 0847          movf    main__temp,w
2015                    ; line_number = 142
2016                    ; ramp0 := temp
2017                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2018                    ; CASE: true_size=1 && false_size=1
2019                    ; SUBCASE: Double test; true, then false
2020 007a 1846          btfsc   main__select__16___byte, main__select__16___bit
2021 007b 00ac          movwf   ramp1
2022 007c 1c46          btfss   main__select__16___byte, main__select__16___bit
2023 007d 00ab          movwf   ramp0
2024                    ; code.delay=4294967295 back_code.delay=4294967295
2025                    ; <=bit_code_emit@symbol; sym=main__select__16 (data:00=>00 code:XX=>XX)
2026                    ; line_number = 139
2027                    ;  if command@0 done
2028                    ; line_number = 143
2029                    ; call set_up()
2030 007e 2163          call    set_up
2031 007f 289b          goto    main__27
2032                    ; line_number = 144
2033                    ; case 2
2034   0080 :   main__23:
2035                    ; # Set Failsafe (Command = 1000 0010):
2036                    ; line_number = 146
2037                    ;  fail_safe := byte_get()
2038 0080 22eb          call    byte_get
2039 0081 00b1          movwf   fail_safe
2040                    ; line_number = 147
2041                    ;  fail_safe_high_counter := fail_safe
2042 0082 0831          movf    fail_safe,w
2043 0083 00b3          movwf   fail_safe_high_counter
2044                    ; line_number = 148
2045                    ;  fail_safe_low_counter := 0
2046 0084 3000          movlw   0
2047 0085 00b4          movwf   fail_safe_low_counter
2048 0086 289b          goto    main__27
2049                    ; line_number = 149
2050                    ; case 3
2051   0087 :   main__24:
2052                    ; # Reset Failsafe (Command = 1000 0011):
2053                    ; line_number = 151
2054                    ;  fail_safe_high_counter := fail_safe
2055 0087 0831          movf    fail_safe,w
2056 0088 00b3          movwf   fail_safe_high_counter
2057                    ; line_number = 152
2058                    ;  fail_safe_low_counter := 0
2059 0089 3000          movlw   0
2060 008a 00b4          movwf   fail_safe_low_counter
2061 008b 289b          goto    main__27
2062                    ; line_number = 153
2063                    ; case 4, 5, 6, 7
2064   008c :   main__25:
2065                    ; # Set Speed (Command = 1000 01dm):
2066                    ; line_number = 155
2067                    ;  temp := byte_get()
2068 008c 22eb          call    byte_get
2069 008d 00c7          movwf   main__temp
2070                    ; line_number = 156
2071                    ;  if command@0 start
2072 00000046 = main__select__19___byte equ main__command
2073 00000000 = main__select__19___bit equ 0
2074                    ; # Motor 1:
2075                    ; line_number = 158
2076                    ;  desired_speed1 := temp
2077 008e 0847          movf    main__temp,w
2078                    ; # Motor 0:
2079                    ; line_number = 162
2080                    ;  desired_speed0 := temp
2081                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2082                    ; CASE: true_code_size > 1 && false_code_size > 1
2083                    ; true_code_size=4 false_code_size=4
2084 008f 1c46          btfss   main__select__19___byte, main__select__19___bit
2085 0090 2896          goto    main__20
2086 0091 00aa          movwf   desired_speed1
2087                    ; line_number = 159
2088                    ;  desired_direction1 := command@1
2089 0092 11ef          bcf     desired_direction1___byte, desired_direction1___bit
2090 00000046 = main__select__18___byte equ main__command
2091 00000001 = main__select__18___bit equ 1
2092                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2093                    ; CASE: True.size=1 False.size=0
2094 0093 18c6          btfsc   main__select__18___byte, main__select__18___bit
2095 0094 15ef          bsf     desired_direction1___byte, desired_direction1___bit
2096                    ; Recombine size1 = 0 || size2 = 0
2097                    ; code.delay=4294967295 back_code.delay=4294967295
2098                    ; <=bit_code_emit@symbol; sym=main__select__18 (data:00=>00 code:XX=>XX)
2099 0095 289a          goto    main__21
2100   0096 :   main__20:
2101 0096 00a9          movwf   desired_speed0
2102                    ; line_number = 163
2103                    ;  desired_direction0 := command@1
2104 0097 116f          bcf     desired_direction0___byte, desired_direction0___bit
2105 00000046 = main__select__17___byte equ main__command
2106 00000001 = main__select__17___bit equ 1
2107                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2108                    ; CASE: True.size=1 False.size=0
2109 0098 18c6          btfsc   main__select__17___byte, main__select__17___bit
2110 0099 156f          bsf     desired_direction0___byte, desired_direction0___bit
2111                    ; Recombine size1 = 0 || size2 = 0
2112                    ; code.delay=4294967295 back_code.delay=4294967295
2113                    ; <=bit_code_emit@symbol; sym=main__select__17 (data:00=>00 code:XX=>XX)
2114   009a :   main__21:
2115                    ; code.delay=4294967295 back_code.delay=4294967295
2116                    ; <=bit_code_emit@symbol; sym=main__select__19 (data:00=>00 code:XX=>XX)
2117                    ; line_number = 156
2118                    ;  if command@0 done
2119                    ; line_number = 164
2120                    ; call set_up()
2121 009a 2163          call    set_up
2122   009b :   main__27:
2123                    ; switch end:(data:00=>00 code:XX=>XX)
2124                    ; line_number = 135
2125                    ;  switch command & 7 done
2126 009b 291a          goto    main__77
2127                    ; line_number = 165
2128                    ; case 1
2129   009c :   main__69:
2130                    ; # Command = 1000 1xxx:
2131                    ; line_number = 167
2132                    ;  if command@2 start
2133 00000046 = main__select__38___byte equ main__command
2134 00000002 = main__select__38___bit equ 2
2135                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2136                    ; CASE: true_code_size > 1 && false_code_size > 1
2137                    ; true_code_size=9 false_code_size=9
2138 009c 1d46          btfss   main__select__38___byte, main__select__38___bit
2139 009d 28a8          goto    main__39
2140                    ; # Set direction (Command = 1000 11dm):
2141                    ; line_number = 169
2142                    ;  if command@0 start
2143 00000046 = main__select__35___byte equ main__command
2144 00000000 = main__select__35___bit equ 0
2145                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2146                    ; CASE: true_code_size > 1 && false_code_size > 1
2147                    ; true_code_size=3 false_code_size=3
2148 009e 1c46          btfss   main__select__35___byte, main__select__35___bit
2149 009f 28a4          goto    main__36
2150                    ; # Motor 1:
2151                    ; line_number = 171
2152                    ;  desired_direction1 := command@1
2153 00a0 11ef          bcf     desired_direction1___byte, desired_direction1___bit
2154 00000046 = main__select__34___byte equ main__command
2155 00000001 = main__select__34___bit equ 1
2156                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2157                    ; CASE: True.size=1 False.size=0
2158 00a1 18c6          btfsc   main__select__34___byte, main__select__34___bit
2159 00a2 15ef          bsf     desired_direction1___byte, desired_direction1___bit
2160                    ; Recombine size1 = 0 || size2 = 0
2161                    ; code.delay=4294967295 back_code.delay=4294967295
2162                    ; <=bit_code_emit@symbol; sym=main__select__34 (data:00=>00 code:XX=>XX)
2163 00a3 28a7          goto    main__37
2164   00a4 :   main__36:
2165                    ; # Motor 0:
2166                    ; line_number = 174
2167                    ;  desired_direction0 := command@1
2168 00a4 116f          bcf     desired_direction0___byte, desired_direction0___bit
2169 00000046 = main__select__33___byte equ main__command
2170 00000001 = main__select__33___bit equ 1
2171                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2172                    ; CASE: True.size=1 False.size=0
2173 00a5 18c6          btfsc   main__select__33___byte, main__select__33___bit
2174 00a6 156f          bsf     desired_direction0___byte, desired_direction0___bit
2175                    ; Recombine size1 = 0 || size2 = 0
2176                    ; code.delay=4294967295 back_code.delay=4294967295
2177                    ; <=bit_code_emit@symbol; sym=main__select__33 (data:00=>00 code:XX=>XX)
2178   00a7 :   main__37:
2179                    ; code.delay=4294967295 back_code.delay=4294967295
2180                    ; <=bit_code_emit@symbol; sym=main__select__35 (data:00=>00 code:XX=>XX)
2181                    ; line_number = 169
2182                    ;  if command@0 done
2183 00a7 28b1          goto    main__40
2184   00a8 :   main__39:
2185                    ; # Set mode (Command = 1000 10xm):
2186                    ; line_number = 177
2187                    ;  if command@0 start
2188 00000046 = main__select__30___byte equ main__command
2189 00000000 = main__select__30___bit equ 0
2190                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2191                    ; CASE: true_code_size > 1 && false_code_size > 1
2192                    ; true_code_size=3 false_code_size=3
2193 00a8 1c46          btfss   main__select__30___byte, main__select__30___bit
2194 00a9 28ae          goto    main__31
2195                    ; # Motor 1:
2196                    ; line_number = 179
2197                    ;  motor1_mode := command@1
2198 00aa 13ef          bcf     motor1_mode___byte, motor1_mode___bit
2199 00000046 = main__select__29___byte equ main__command
2200 00000001 = main__select__29___bit equ 1
2201                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2202                    ; CASE: True.size=1 False.size=0
2203 00ab 18c6          btfsc   main__select__29___byte, main__select__29___bit
2204 00ac 17ef          bsf     motor1_mode___byte, motor1_mode___bit
2205                    ; Recombine size1 = 0 || size2 = 0
2206                    ; code.delay=4294967295 back_code.delay=4294967295
2207                    ; <=bit_code_emit@symbol; sym=main__select__29 (data:00=>00 code:XX=>XX)
2208 00ad 28b1          goto    main__32
2209   00ae :   main__31:
2210                    ; # Motor 0:
2211                    ; line_number = 182
2212                    ;  motor0_mode := command@1
2213 00ae 136f          bcf     motor0_mode___byte, motor0_mode___bit
2214 00000046 = main__select__28___byte equ main__command
2215 00000001 = main__select__28___bit equ 1
2216                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2217                    ; CASE: True.size=1 False.size=0
2218 00af 18c6          btfsc   main__select__28___byte, main__select__28___bit
2219 00b0 176f          bsf     motor0_mode___byte, motor0_mode___bit
2220                    ; Recombine size1 = 0 || size2 = 0
2221                    ; code.delay=4294967295 back_code.delay=4294967295
2222                    ; <=bit_code_emit@symbol; sym=main__select__28 (data:00=>00 code:XX=>XX)
2223   00b1 :   main__32:
2224                    ; code.delay=4294967295 back_code.delay=4294967295
2225                    ; <=bit_code_emit@symbol; sym=main__select__30 (data:00=>00 code:XX=>XX)
2226                    ; line_number = 177
2227                    ;  if command@0 done
2228   00b1 :   main__40:
2229                    ; code.delay=4294967295 back_code.delay=4294967295
2230                    ; <=bit_code_emit@symbol; sym=main__select__38 (data:00=>00 code:XX=>XX)
2231                    ; line_number = 167
2232                    ;  if command@2 done
2233                    ; line_number = 183
2234                    ; call set_up()
2235 00b1 2163          call    set_up
2236 00b2 291a          goto    main__77
2237                    ; line_number = 184
2238                    ; case 2
2239   00b3 :   main__70:
2240                    ; # Set Prescaler (Command = 1001 0ppp):
2241                    ; line_number = 186
2242                    ;  _option_reg := command & 7
2243 00b3 3007          movlw   7
2244 00b4 0546          andwf   main__command,w
2245 00b5 1683          bsf     __rp0___byte, __rp0___bit
2246 00b6 0081          movwf   _option_reg
2247                    ; line_number = 187
2248                    ;  _rapu := 1
2249 00b7 1781          bsf     _rapu___byte, _rapu___bit
2250 00b8 291a          goto    main__77
2251                    ; line_number = 188
2252                    ; case 3
2253   00b9 :   main__71:
2254                    ; # Command = 1001 1xxx:
2255                    ; line_number = 190
2256                    ;  switch command & 7 start
2257 00b9 3000          movlw   main__55>>8
2258 00ba 008a          movwf   __pclath
2259 00bb 3007          movlw   7
2260 00bc 0546          andwf   main__command,w
2261 00bd 3ebf          addlw   main__55
2262 00be 0082          movwf   __pcl
2263                    ; page_group 8
2264   00bf :   main__55:
2265 00bf 28c7          goto    main__50
2266 00c0 28ca          goto    main__51
2267 00c1 28d0          goto    main__52
2268 00c2 28d0          goto    main__52
2269 00c3 28d6          goto    main__53
2270 00c4 28d6          goto    main__53
2271 00c5 28e6          goto    main__54
2272 00c6 28e6          goto    main__54
2273                    ; line_number = 191
2274                    ; case 0
2275   00c7 :   main__50:
2276                    ; # Read Failsafe (Command = 1001 1000):
2277                    ; line_number = 193
2278                    ;  call byte_put(fail_safe)
2279 00c7 0831          movf    fail_safe,w
2280 00c8 22f6          call    byte_put
2281 00c9 28ed          goto    main__56
2282                    ; line_number = 194
2283                    ; case 1
2284   00ca :   main__51:
2285                    ; This case body wants this bit set
2286 00ca 1683          bsf     __rp0___byte, __rp0___bit
2287                    ; # Read Prescaler (Command = 1001 1001):
2288                    ; line_number = 196
2289                    ;  call byte_put(_option_reg & 7)
2290 00cb 3007          movlw   7
2291 00cc 0501          andwf   _option_reg,w
2292 00cd 1283          bcf     __rp0___byte, __rp0___bit
2293 00ce 22f6          call    byte_put
2294 00cf 28ed          goto    main__56
2295                    ; line_number = 197
2296                    ; case 2, 3
2297   00d0 :   main__52:
2298                    ; # Read Speed (Command = 1001 101m):
2299                    ; line_number = 199
2300                    ;  if command@0 start
2301 00000046 = main__select__41___byte equ main__command
2302 00000000 = main__select__41___bit equ 0
2303                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2304                    ; CASE: true_size=1 && false_size=1
2305                    ; SUBCASE: Double test; true, then false
2306 00d0 1846          btfsc   main__select__41___byte, main__select__41___bit
2307                    ; line_number = 200
2308                    ; call byte_put(actual_speed1)
2309 00d1 0824          movf    actual_speed1,w
2310 00d2 1c46          btfss   main__select__41___byte, main__select__41___bit
2311                    ; line_number = 202
2312                    ; call byte_put(actual_speed0)
2313 00d3 0823          movf    actual_speed0,w
2314                    ; code.delay=4294967295 back_code.delay=4294967295
2315 00d4 22f6          call    byte_put
2316                    ; <=bit_code_emit@symbol; sym=main__select__41 (data:00=>00 code:XX=>XX)
2317                    ; line_number = 199
2318                    ;  if command@0 done
2319 00d5 28ed          goto    main__56
2320                    ; line_number = 203
2321                    ; case 4, 5
2322   00d6 :   main__53:
2323                    ; # Read Mode/Direction (Command = 1001 110m):
2324                    ; line_number = 205
2325                    ;  temp := 0
2326 00d6 3000          movlw   0
2327 00d7 00c7          movwf   main__temp
2328                    ; line_number = 206
2329                    ;  if command@0 start
2330 00000046 = main__select__46___byte equ main__command
2331 00000000 = main__select__46___bit equ 0
2332                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2333                    ; CASE: true_code_size > 1 && false_code_size > 1
2334                    ; true_code_size=4 false_code_size=4
2335 00d8 1c46          btfss   main__select__46___byte, main__select__46___bit
2336 00d9 28df          goto    main__47
2337                    ; # Motor 1:
2338                    ; line_number = 208
2339                    ;  if motor1_direction start
2340                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2341                    ; CASE: True.size=1 False.size=0
2342 00da 18ee          btfsc   motor1_direction___byte, motor1_direction___bit
2343                    ; line_number = 209
2344                    ; temp@1 := 1
2345 00000047 = main__select__44___byte equ main__temp
2346 00000001 = main__select__44___bit equ 1
2347 00db 14c7          bsf     main__select__44___byte, main__select__44___bit
2348                    ; Recombine size1 = 0 || size2 = 0
2349                    ; code.delay=4294967295 back_code.delay=4294967295
2350                    ; <=bit_code_emit@symbol; sym=motor1_direction (data:00=>00 code:XX=>XX)
2351                    ; line_number = 208
2352                    ;  if motor1_direction done
2353                    ; line_number = 210
2354                    ; if motor1_mode start
2355                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2356                    ; CASE: True.size=1 False.size=0
2357 00dc 1bef          btfsc   motor1_mode___byte, motor1_mode___bit
2358                    ; line_number = 211
2359                    ; temp@0 := 1
2360 00000047 = main__select__45___byte equ main__temp
2361 00000000 = main__select__45___bit equ 0
2362 00dd 1447          bsf     main__select__45___byte, main__select__45___bit
2363                    ; Recombine size1 = 0 || size2 = 0
2364                    ; code.delay=4294967295 back_code.delay=4294967295
2365                    ; <=bit_code_emit@symbol; sym=motor1_mode (data:00=>00 code:XX=>XX)
2366                    ; line_number = 210
2367                    ; if motor1_mode done
2368 00de 28e3          goto    main__48
2369   00df :   main__47:
2370                    ; # Motor 0:
2371                    ; line_number = 214
2372                    ;  if motor0_direction start
2373                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2374                    ; CASE: True.size=1 False.size=0
2375 00df 186e          btfsc   motor0_direction___byte, motor0_direction___bit
2376                    ; line_number = 215
2377                    ; temp@1 := 1
2378 00000047 = main__select__42___byte equ main__temp
2379 00000001 = main__select__42___bit equ 1
2380 00e0 14c7          bsf     main__select__42___byte, main__select__42___bit
2381                    ; Recombine size1 = 0 || size2 = 0
2382                    ; code.delay=4294967295 back_code.delay=4294967295
2383                    ; <=bit_code_emit@symbol; sym=motor0_direction (data:00=>00 code:XX=>XX)
2384                    ; line_number = 214
2385                    ;  if motor0_direction done
2386                    ; line_number = 216
2387                    ; if motor0_mode start
2388                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2389                    ; CASE: True.size=1 False.size=0
2390 00e1 1b6f          btfsc   motor0_mode___byte, motor0_mode___bit
2391                    ; line_number = 217
2392                    ; temp@0 := 1
2393 00000047 = main__select__43___byte equ main__temp
2394 00000000 = main__select__43___bit equ 0
2395 00e2 1447          bsf     main__select__43___byte, main__select__43___bit
2396                    ; Recombine size1 = 0 || size2 = 0
2397                    ; code.delay=4294967295 back_code.delay=4294967295
2398                    ; <=bit_code_emit@symbol; sym=motor0_mode (data:00=>00 code:XX=>XX)
2399                    ; line_number = 216
2400                    ; if motor0_mode done
2401   00e3 :   main__48:
2402                    ; code.delay=4294967295 back_code.delay=4294967295
2403                    ; <=bit_code_emit@symbol; sym=main__select__46 (data:00=>00 code:XX=>XX)
2404                    ; line_number = 206
2405                    ;  if command@0 done
2406                    ; line_number = 218
2407                    ; call byte_put(temp)
2408 00e3 0847          movf    main__temp,w
2409 00e4 22f6          call    byte_put
2410 00e5 28ed          goto    main__56
2411                    ; line_number = 219
2412                    ; case 6, 7
2413   00e6 :   main__54:
2414                    ; # Read Ramp (Command = 1001 101m):
2415                    ; line_number = 221
2416                    ;  if command@0 start
2417 00000046 = main__select__49___byte equ main__command
2418 00000000 = main__select__49___bit equ 0
2419                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2420                    ; CASE: true_size=1 && false_size=1
2421                    ; SUBCASE: Double test; true, then false
2422 00e6 1846          btfsc   main__select__49___byte, main__select__49___bit
2423                    ; line_number = 222
2424                    ; temp := ramp1
2425 00e7 082c          movf    ramp1,w
2426 00e8 1c46          btfss   main__select__49___byte, main__select__49___bit
2427                    ; line_number = 224
2428                    ; temp := ramp0
2429 00e9 082b          movf    ramp0,w
2430                    ; code.delay=4294967295 back_code.delay=4294967295
2431 00ea 00c7          movwf   main__temp
2432                    ; <=bit_code_emit@symbol; sym=main__select__49 (data:00=>00 code:XX=>XX)
2433                    ; line_number = 221
2434                    ;  if command@0 done
2435                    ; line_number = 225
2436                    ; call byte_put(temp)
2437 00eb 0847          movf    main__temp,w
2438 00ec 22f6          call    byte_put
2439   00ed :   main__56:
2440                    ; switch end:(data:00=>00 code:XX=>XX)
2441                    ; line_number = 190
2442                    ;  switch command & 7 done
2443 00ed 291a          goto    main__77
2444                    ; line_number = 226
2445                    ; case 4
2446   00ee :   main__72:
2447                    ; # Command = 0110 0xxx:
2448                    ; line_number = 228
2449                    ;  switch command & 7 start
2450 00ee 3000          movlw   main__65>>8
2451 00ef 008a          movwf   __pclath
2452 00f0 3007          movlw   7
2453 00f1 0546          andwf   main__command,w
2454 00f2 3ef4          addlw   main__65
2455 00f3 0082          movwf   __pcl
2456                    ; page_group 8
2457   00f4 :   main__65:
2458 00f4 28fc          goto    main__57
2459 00f5 2901          goto    main__58
2460 00f6 2904          goto    main__59
2461 00f7 2907          goto    main__60
2462 00f8 290a          goto    main__61
2463 00f9 290c          goto    main__62
2464 00fa 290e          goto    main__63
2465 00fb 2910          goto    main__64
2466                    ; line_number = 229
2467                    ; case 0
2468   00fc :   main__57:
2469                    ; # Read Failsafe Errors (Command = 1010 0000):
2470                    ; line_number = 231
2471                    ;  call byte_put(fail_safe_errors)
2472 00fc 0832          movf    fail_safe_errors,w
2473 00fd 22f6          call    byte_put
2474                    ; line_number = 232
2475                    ;  fail_safe_errors := 0
2476 00fe 3000          movlw   0
2477 00ff 00b2          movwf   fail_safe_errors
2478 0100 2911          goto    main__66
2479                    ; line_number = 233
2480                    ; case 1
2481   0101 :   main__58:
2482                    ; # Read Failsafe Counter (Command = 1010 0001):
2483                    ; line_number = 235
2484                    ;  call byte_put(fail_safe_high_counter)
2485 0101 0833          movf    fail_safe_high_counter,w
2486 0102 22f6          call    byte_put
2487 0103 2911          goto    main__66
2488                    ; line_number = 236
2489                    ; case 2
2490   0104 :   main__59:
2491                    ; # Read Actual Speed 0(Command = 1010 0010):
2492                    ; line_number = 238
2493                    ;  call byte_put(actual_speed0)
2494 0104 0823          movf    actual_speed0,w
2495 0105 22f6          call    byte_put
2496 0106 2911          goto    main__66
2497                    ; line_number = 239
2498                    ; case 3
2499   0107 :   main__60:
2500                    ; # Read Actual Speed 1 (Command = 1010 0011):
2501                    ; line_number = 241
2502                    ;  call byte_put(actual_speed1)
2503 0107 0824          movf    actual_speed1,w
2504 0108 22f6          call    byte_put
2505 0109 2911          goto    main__66
2506                    ; line_number = 242
2507                    ; case 4
2508   010a :   main__61:
2509                    ; # Set Motors 0 and 1 off (Command = 1010 0100):
2510                    ; line_number = 244
2511                    ;  enable := 0
2512 010a 1007          bcf     enable___byte, enable___bit
2513 010b 2911          goto    main__66
2514                    ; line_number = 245
2515                    ; case 5
2516   010c :   main__62:
2517                    ; # Set Motor 0 and 1 on (Command = 1010 0101):
2518                    ; line_number = 247
2519                    ;  enable := 1
2520 010c 1407          bsf     enable___byte, enable___bit
2521 010d 2911          goto    main__66
2522                    ; line_number = 248
2523                    ; case 6
2524   010e :   main__63:
2525                    ; # Set Motors 0 and 1 off (Command = 1010 0110):
2526                    ; line_number = 250
2527                    ;  enable := 0
2528 010e 1007          bcf     enable___byte, enable___bit
2529 010f 2911          goto    main__66
2530                    ; line_number = 251
2531                    ; case 7
2532   0110 :   main__64:
2533                    ; # Set Motors 0 and 1 on (Command = 1010 0111):
2534                    ; line_number = 253
2535                    ;  enable := 1
2536 0110 1407          bsf     enable___byte, enable___bit
2537   0111 :   main__66:
2538                    ; switch end:(data:00=>00 code:XX=>XX)
2539                    ; line_number = 228
2540                    ;  switch command & 7 done
2541 0111 291a          goto    main__77
2542                    ; line_number = 254
2543                    ; case 5
2544   0112 :   main__73:
2545                    ; line_number = 255
2546                    ; if command & 3 = 0 start
2547                    ; Left minus Right
2548 0112 3003          movlw   3
2549 0113 0546          andwf   main__command,w
2550                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2551                    ; CASE: true_code.size = 0 && false_code.size > 1
2552                    ; bit_code_emit_helper1: body_code.size=3 true_test=true body_code.delay=0 (non-uniform delay)
2553 0114 1d03          btfss   __z___byte, __z___bit
2554 0115 2919          goto    main__67
2555                    ; # FIXME: Code generator chokes on single call instruction
2556                    ; # in the then clause.  Add 'ramp0 := 0' to work around!!!
2557                    ; line_number = 258
2558                    ;  ramp0 := 0
2559 0116 3000          movlw   0
2560 0117 00ab          movwf   ramp0
2561                    ; line_number = 259
2562                    ;  call reset()
2563 0118 21e8          call    reset
2564                    ; Recombine size1 = 0 || size2 = 0
2565   0119 :   main__67:
2566                    ; code.delay=4294967295 back_code.delay=4294967295
2567                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2568                    ; line_number = 255
2569                    ; if command & 3 = 0 done
2570 0119 291a          goto    main__77
2571                    ; line_number = 260
2572                    ; case 6, 7
2573   011a :   main__74:
2574                    ; line_number = 261
2575                    ; do_nothing
2576   011a :   main__77:
2577                    ; switch end:(data:00=>?? code:XX=>XX)
2578                    ; line_number = 132
2579                    ;  switch (command >> 3) & 7 done
2580 011a 2960          goto    main__99
2581                    ; line_number = 262
2582                    ; case 3
2583   011b :   main__96:
2584                    ; # Command = 11xx xxxx:
2585                    ; line_number = 264
2586                    ;  switch (command >> 3) & 7 start
2587 011b 3001          movlw   main__90>>8
2588 011c 008a          movwf   __pclath
2589 0000004a = main__91 equ globals___0+42
2590 011d 0c46          rrf     main__command,w
2591 011e 00ca          movwf   main__91
2592 011f 0cca          rrf     main__91,f
2593 0120 0c4a          rrf     main__91,w
2594 0121 3907          andlw   7
2595 0122 3e24          addlw   main__90
2596 0123 0082          movwf   __pcl
2597                    ; page_group 8
2598   0124 :   main__90:
2599 0124 2960          goto    main__92
2600 0125 2960          goto    main__92
2601 0126 2960          goto    main__92
2602 0127 2960          goto    main__92
2603 0128 2960          goto    main__92
2604 0129 2960          goto    main__92
2605 012a 2960          goto    main__92
2606 012b 292c          goto    main__89
2607                    ; line_number = 265
2608                    ; case 7
2609   012c :   main__89:
2610                    ; # Shared commands (Command = 1111 1ccc):
2611                    ; line_number = 267
2612                    ;  switch command & 7 start
2613 012c 3001          movlw   main__87>>8
2614 012d 008a          movwf   __pclath
2615 012e 3007          movlw   7
2616 012f 0546          andwf   main__command,w
2617 0130 3e32          addlw   main__87
2618 0131 0082          movwf   __pcl
2619                    ; page_group 8
2620   0132 :   main__87:
2621 0132 293a          goto    main__79
2622 0133 293d          goto    main__80
2623 0134 2940          goto    main__81
2624 0135 2945          goto    main__82
2625 0136 2948          goto    main__83
2626 0137 2955          goto    main__84
2627 0138 2958          goto    main__85
2628 0139 295d          goto    main__86
2629                    ; line_number = 268
2630                    ; case 0
2631   013a :   main__79:
2632                    ; This case body wants this bit set
2633 013a 1683          bsf     __rp0___byte, __rp0___bit
2634                    ; # Clock Decrement (Command = 1111 1000):
2635                    ; line_number = 270
2636                    ;  _osctune := _osctune - _osccal_lsb
2637 013b 0390          decf    _osctune,f
2638 013c 2960          goto    main__88
2639                    ; line_number = 271
2640                    ; case 1
2641   013d :   main__80:
2642                    ; This case body wants this bit set
2643 013d 1683          bsf     __rp0___byte, __rp0___bit
2644                    ; # Clock Increment (Command = 1111 1001):
2645                    ; line_number = 273
2646                    ;  _osctune := _osctune + _osccal_lsb
2647 013e 0a90          incf    _osctune,f
2648 013f 2960          goto    main__88
2649                    ; line_number = 274
2650                    ; case 2
2651   0140 :   main__81:
2652                    ; This case body wants this bit set
2653 0140 1683          bsf     __rp0___byte, __rp0___bit
2654                    ; # Clock Read (Command = 1111 1010):
2655                    ; line_number = 276
2656                    ;  call byte_put(_osctune)
2657 0141 0810          movf    _osctune,w
2658 0142 1283          bcf     __rp0___byte, __rp0___bit
2659 0143 22f6          call    byte_put
2660 0144 2960          goto    main__88
2661                    ; line_number = 277
2662                    ; case 3
2663   0145 :   main__82:
2664                    ; # Clock Pulse (Command = 1111 1011):
2665                    ; line_number = 279
2666                    ;  call byte_put(0)
2667 0145 3000          movlw   0
2668 0146 22f6          call    byte_put
2669 0147 2960          goto    main__88
2670                    ; line_number = 280
2671                    ; case 4
2672   0148 :   main__83:
2673                    ; # ID Next (Command = 1111 1100):
2674                    ; line_number = 282
2675                    ;  temp := 0
2676 0148 3000          movlw   0
2677 0149 00c7          movwf   main__temp
2678                    ; line_number = 283
2679                    ;  if id_index < id.size start
2680 014a 302e          movlw   46
2681 014b 0240          subwf   id_index,w
2682                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2683                    ; CASE: true.size=0 && false.size>1
2684                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
2685 014c 1803          btfsc   __c___byte, __c___bit
2686 014d 2952          goto    main__78
2687                    ; line_number = 284
2688                    ; temp := id[id_index]
2689 014e 0840          movf    id_index,w
2690 014f 22b7          call    id
2691 0150 00c7          movwf   main__temp
2692                    ; line_number = 285
2693                    ;  id_index := id_index + 1
2694 0151 0ac0          incf    id_index,f
2695   0152 :   main__78:
2696                    ; Recombine size1 = 0 || size2 = 0
2697                    ; code.delay=4294967295 back_code.delay=4294967295
2698                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2699                    ; line_number = 283
2700                    ;  if id_index < id.size done
2701                    ; line_number = 286
2702                    ; call byte_put(temp)
2703 0152 0847          movf    main__temp,w
2704 0153 22f6          call    byte_put
2705 0154 2960          goto    main__88
2706                    ; line_number = 287
2707                    ; case 5
2708   0155 :   main__84:
2709                    ; # ID Reset (Command = 1111 1101):
2710                    ; line_number = 289
2711                    ;  id_index := 0
2712 0155 3000          movlw   0
2713 0156 00c0          movwf   id_index
2714 0157 2960          goto    main__88
2715                    ; line_number = 290
2716                    ; case 6
2717   0158 :   main__85:
2718                    ; # Glitch Read (Command = 1111 1110):
2719                    ; line_number = 292
2720                    ;  call byte_put(glitch)
2721 0158 083f          movf    glitch,w
2722 0159 22f6          call    byte_put
2723                    ; line_number = 293
2724                    ;  glitch := 0
2725 015a 3000          movlw   0
2726 015b 00bf          movwf   glitch
2727 015c 2960          goto    main__88
2728                    ; line_number = 294
2729                    ; case 7
2730   015d :   main__86:
2731                    ; # Glitch (Command = 1111 1111):
2732                    ; line_number = 296
2733                    ;  if glitch != 0xff start
2734                    ; Left minus Right
2735 015d 0a3f          incf    glitch,w
2736                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2737                    ; CASE: true_code.size=0 && false_code.size=1
2738 015e 1d03          btfss   __z___byte, __z___bit
2739                    ; line_number = 297
2740                    ; glitch := glitch + 1
2741 015f 0abf          incf    glitch,f
2742            
2743            
2744                    ; Recombine size1 = 0 || size2 = 0
2745                    ; code.delay=4294967295 back_code.delay=4294967295
2746                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2747                    ; line_number = 296
2748                    ;  if glitch != 0xff done
2749   0160 :   main__88:
2750                    ; switch end:(data:00=>0? code:XX=>XX)
2751                    ; line_number = 267
2752                    ;  switch command & 7 done
2753   0160 :   main__92:
2754                    ; switch end:(data:00=>0? code:XX=>XX)
2755                    ; line_number = 264
2756                    ;  switch (command >> 3) & 7 done
2757   0160 :   main__99:
2758                    ; switch end:(data:00=>?? code:XX=>XX)
2759                    ; line_number = 106
2760                    ;  switch command >> 6 done
2761                    ; line_number = 101
2762                    ;  loop_forever wrap-up
2763                    ; Need to adjust code banks to match front of loop
2764 0160 1283          bcf     __rp0___byte, __rp0___bit
2765 0161 1303          bcf     __rp1___byte, __rp1___bit
2766 0162 2819          goto    main__1
2767                    ; line_number = 101
2768                    ;  loop_forever done
2769                    ; delay after procedure statements=non-uniform
2770            
2771            
2772            
2773            
2774                    ; line_number = 300
2775                    ; procedure set_up
2776   0163 :   set_up:
2777                    ; arguments_none
2778                    ; line_number = 302
2779                    ;  returns_nothing
2780            
2781                    ; # This procedure will arrange for the speed and direction of
2782                    ; # each motor to be set to desired_speed0/1 and desired_direction0/1.
2783                    ; # If ramp0/1 is 0, the speed and direction is changed immediately.
2784                    ; # If ramp0/1 is non-zero, the speed is changed gradually.
2785            
2786                    ; line_number = 309
2787                    ;  local temporary byte
2788 00000048 = set_up__temporary equ globals___0+40
2789            
2790                    ; # Reset failsafe:
2791                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
2792                    ; line_number = 312
2793                    ;  fail_safe_low_counter := 0
2794 0163 3000          movlw   0
2795 0164 00b4          movwf   fail_safe_low_counter
2796                    ; line_number = 313
2797                    ;  fail_safe_high_counter := fail_safe
2798 0165 0831          movf    fail_safe,w
2799 0166 00b3          movwf   fail_safe_high_counter
2800            
2801                    ; # Mode Dir  On   Off
2802                    ; # ==================
2803                    ; #  0    0    A    0
2804                    ; #  0    1    B    0
2805                    ; #  1    0    A    B
2806                    ; #  1    1    B    A
2807            
2808                    ; # Motor 0:
2809            
2810                    ; # Figure out all the ramping stuff:
2811                    ; line_number = 325
2812                    ;  if ramp0 = 0 start
2813                    ; Left minus Right
2814 0167 082b          movf    ramp0,w
2815                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2816                    ; CASE: true_code_size > 1 && false_code_size > 1
2817                    ; true_code_size=8 false_code_size=24
2818 0168 1d03          btfss   __z___byte, __z___bit
2819 0169 2973          goto    set_up__6
2820                    ; # No ramping:
2821                    ; line_number = 327
2822                    ;  actual_speed0 := desired_speed0
2823 016a 0829          movf    desired_speed0,w
2824 016b 00a3          movwf   actual_speed0
2825                    ; line_number = 328
2826                    ;  motor0_direction := desired_direction0
2827 016c 106e          bcf     motor0_direction___byte, motor0_direction___bit
2828                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2829                    ; CASE: True.size=1 False.size=0
2830 016d 196f          btfsc   desired_direction0___byte, desired_direction0___bit
2831 016e 146e          bsf     motor0_direction___byte, motor0_direction___bit
2832                    ; Recombine size1 = 0 || size2 = 0
2833                    ; code.delay=4294967295 back_code.delay=4294967295
2834                    ; <=bit_code_emit@symbol; sym=desired_direction0 (data:00=>00 code:XX=>XX)
2835                    ; line_number = 329
2836                    ;  ramp0_delay := 0
2837 016f 3000          movlw   0
2838 0170 00ad          movwf   ramp0_delay
2839                    ; line_number = 330
2840                    ;  ramp0_offset := 0
2841 0171 3000          movlw   0
2842 0172 298b          goto    set_up__7
2843   0173 :   set_up__6:
2844                    ; # We are ramping:
2845            
2846                    ; # Figure out if we are changing direction:
2847                    ; line_number = 335
2848                    ;  temporary := 0
2849 0173 3000          movlw   0
2850 0174 00c8          movwf   set_up__temporary
2851                    ; line_number = 336
2852                    ;  if motor0_direction start
2853                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2854                    ; CASE: True.size=1 False.size=0
2855 0175 186e          btfsc   motor0_direction___byte, motor0_direction___bit
2856                    ; line_number = 337
2857                    ; temporary@0 := 1
2858 00000048 = set_up__select__1___byte equ set_up__temporary
2859 00000000 = set_up__select__1___bit equ 0
2860 0176 1448          bsf     set_up__select__1___byte, set_up__select__1___bit
2861                    ; Recombine size1 = 0 || size2 = 0
2862                    ; code.delay=4294967295 back_code.delay=4294967295
2863                    ; <=bit_code_emit@symbol; sym=motor0_direction (data:00=>00 code:XX=>XX)
2864                    ; line_number = 336
2865                    ;  if motor0_direction done
2866                    ; line_number = 338
2867                    ; if desired_direction0 start
2868                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2869                    ; CASE: true_code.size = 0 && false_code.size > 1
2870                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
2871 0177 1d6f          btfss   desired_direction0___byte, desired_direction0___bit
2872 0178 297b          goto    set_up__2
2873                    ; line_number = 339
2874                    ; temporary := temporary ^ 1
2875 0179 3001          movlw   1
2876 017a 06c8          xorwf   set_up__temporary,f
2877            
2878                    ; Recombine size1 = 0 || size2 = 0
2879   017b :   set_up__2:
2880                    ; code.delay=4294967295 back_code.delay=4294967295
2881                    ; <=bit_code_emit@symbol; sym=desired_direction0 (data:00=>00 code:XX=>XX)
2882                    ; line_number = 338
2883                    ; if desired_direction0 done
2884                    ; line_number = 341
2885                    ; if temporary@0 start
2886 00000048 = set_up__select__3___byte equ set_up__temporary
2887 00000000 = set_up__select__3___bit equ 0
2888                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2889                    ; CASE: true_code_size > 1 && false_code_size > 1
2890                    ; true_code_size=7 false_code_size=5
2891 017b 1c48          btfss   set_up__select__3___byte, set_up__select__3___bit
2892 017c 2985          goto    set_up__4
2893                    ; # We are changing direction:
2894                    ; line_number = 343
2895                    ;  second_ramp0_offset := 1
2896 017d 3001          movlw   1
2897 017e 00b7          movwf   second_ramp0_offset
2898                    ; line_number = 344
2899                    ;  second_desired_speed0 := desired_speed0
2900 017f 0829          movf    desired_speed0,w
2901 0180 00b5          movwf   second_desired_speed0
2902                    ; line_number = 345
2903                    ;  second_motor0_command := 1
2904 0181 166f          bsf     second_motor0_command___byte, second_motor0_command___bit
2905                    ; line_number = 346
2906                    ;  desired_speed0 := 0
2907 0182 3000          movlw   0
2908 0183 00a9          movwf   desired_speed0
2909                    ; line_number = 347
2910                    ;  ramp0_offset := 0xff
2911 0184 298a          goto    set_up__5
2912   0185 :   set_up__4:
2913                    ; # Direction remains unchanged
2914                    ; line_number = 350
2915                    ;  if desired_speed0 < actual_speed0 start
2916 0185 0823          movf    actual_speed0,w
2917 0186 0229          subwf   desired_speed0,w
2918                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2919                    ; CASE: true_size=1 && false_size=1
2920                    ; SUBCASE: Double test; true, then false
2921 0187 1803          btfsc   __c___byte, __c___bit
2922                    ; line_number = 353
2923                    ; ramp0_offset := 1
2924 0188 3001          movlw   1
2925 0189 1c03          btfss   __c___byte, __c___bit
2926                    ; line_number = 351
2927                    ; ramp0_offset := 0xff
2928   018a :   set_up__5:
2929                    ; code.delay=4294967295 back_code.delay=4294967295
2930 018a 30ff          movlw   255
2931   018b :   set_up__7:
2932                    ; code.delay=4294967295 back_code.delay=4294967295
2933 018b 00af          movwf   ramp0_offset
2934                    ; code.delay=4294967295 back_code.delay=4294967295
2935            
2936                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
2937                    ; line_number = 350
2938                    ;  if desired_speed0 < actual_speed0 done
2939                    ; <=bit_code_emit@symbol; sym=set_up__select__3 (data:00=>00 code:XX=>XX)
2940                    ; line_number = 341
2941                    ; if temporary@0 done
2942                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
2943                    ; line_number = 325
2944                    ;  if ramp0 = 0 done
2945                    ; # Figure out all the direction stuff:
2946                    ; line_number = 356
2947                    ;  motor0_off := 0
2948 018c 3000          movlw   0
2949 018d 00a5          movwf   motor0_off
2950                    ; line_number = 357
2951                    ;  second_motor0_off := 0
2952 018e 3000          movlw   0
2953 018f 00bb          movwf   second_motor0_off
2954                    ; line_number = 358
2955                    ;  if motor0_direction start
2956                    ; # Direction = 1 (Backward):
2957                    ; line_number = 360
2958                    ;  if motor0_mode start
2959                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2960                    ; CASE: true_code.size = 0 && false_code.size > 1
2961                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
2962 0190 1f6f          btfss   motor0_mode___byte, motor0_mode___bit
2963                    ; # Direction = 0 (Forward):
2964                    ; line_number = 368
2965                    ;  if motor0_mode start
2966                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2967                    ; CASE: true_code.size = 0 && false_code.size > 1
2968                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
2969                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
2970                    ; CASE: true_code_size > 1 && false_code_size > 1
2971                    ; true_code_size=8 false_code_size=8
2972 0191 1c6e          btfss   motor0_direction___byte, motor0_direction___bit
2973 0192 299c          goto    set_up__10
2974 0193 2998          goto    set_up__9
2975                    ; # Mode = 1 (Continuous):
2976                    ; line_number = 362
2977                    ;  motor0_off := motor0a_mask
2978 0194 3001          movlw   1
2979 0195 00a5          movwf   motor0_off
2980                    ; line_number = 363
2981                    ;  second_motor0_off := motor0b_mask
2982 0196 3010          movlw   16
2983 0197 00bb          movwf   second_motor0_off
2984                    ; Recombine size1 = 0 || size2 = 0
2985   0198 :   set_up__9:
2986                    ; code.delay=4294967295 back_code.delay=4294967295
2987                    ; <=bit_code_emit@symbol; sym=motor0_mode (data:00=>00 code:XX=>XX)
2988                    ; line_number = 360
2989                    ;  if motor0_mode done
2990                    ; line_number = 364
2991                    ; motor0_on := motor0b_mask
2992 0198 3010          movlw   16
2993 0199 00a6          movwf   motor0_on
2994                    ; line_number = 365
2995                    ;  second_motor0_on := motor0a_mask
2996 019a 3001          movlw   1
2997 019b 29a4          goto    set_up__11
2998   019c :   set_up__10:
2999 019c 29a1          goto    set_up__8
3000                    ; # Mode = 1 (Continuous):
3001                    ; line_number = 370
3002                    ;  motor0_off := motor0b_mask
3003 019d 3010          movlw   16
3004 019e 00a5          movwf   motor0_off
3005                    ; line_number = 371
3006                    ;  second_motor0_off := motor0a_mask
3007 019f 3001          movlw   1
3008 01a0 00bb          movwf   second_motor0_off
3009                    ; Recombine size1 = 0 || size2 = 0
3010   01a1 :   set_up__8:
3011                    ; code.delay=4294967295 back_code.delay=4294967295
3012                    ; <=bit_code_emit@symbol; sym=motor0_mode (data:00=>00 code:XX=>XX)
3013                    ; line_number = 368
3014                    ;  if motor0_mode done
3015                    ; line_number = 372
3016                    ; motor0_on := motor0a_mask
3017 01a1 3001          movlw   1
3018 01a2 00a6          movwf   motor0_on
3019                    ; line_number = 373
3020                    ;  second_motor0_on := motor0b_mask
3021 01a3 3010          movlw   16
3022   01a4 :   set_up__11:
3023                    ; code.delay=4294967295 back_code.delay=4294967295
3024 01a4 00b9          movwf   second_motor0_on
3025            
3026                    ; <=bit_code_emit@symbol; sym=motor0_direction (data:00=>00 code:XX=>XX)
3027                    ; line_number = 358
3028                    ;  if motor0_direction done
3029                    ; # Motor 1:
3030                    ; line_number = 376
3031                    ;  if ramp1 = 0 start
3032                    ; Left minus Right
3033 01a5 082c          movf    ramp1,w
3034                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3035                    ; CASE: true_code_size > 1 && false_code_size > 1
3036                    ; true_code_size=8 false_code_size=24
3037 01a6 1d03          btfss   __z___byte, __z___bit
3038 01a7 29b1          goto    set_up__17
3039                    ; # No ramping:
3040                    ; line_number = 378
3041                    ;  actual_speed1 := desired_speed1
3042 01a8 082a          movf    desired_speed1,w
3043 01a9 00a4          movwf   actual_speed1
3044                    ; line_number = 379
3045                    ;  motor1_direction := desired_direction1
3046 01aa 10ee          bcf     motor1_direction___byte, motor1_direction___bit
3047                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3048                    ; CASE: True.size=1 False.size=0
3049 01ab 19ef          btfsc   desired_direction1___byte, desired_direction1___bit
3050 01ac 14ee          bsf     motor1_direction___byte, motor1_direction___bit
3051                    ; Recombine size1 = 0 || size2 = 0
3052                    ; code.delay=4294967295 back_code.delay=4294967295
3053                    ; <=bit_code_emit@symbol; sym=desired_direction1 (data:00=>00 code:XX=>XX)
3054                    ; line_number = 380
3055                    ;  ramp1_delay := 0
3056 01ad 3000          movlw   0
3057 01ae 00ae          movwf   ramp1_delay
3058                    ; line_number = 381
3059                    ;  ramp1_offset := 0
3060 01af 3000          movlw   0
3061 01b0 29c9          goto    set_up__18
3062   01b1 :   set_up__17:
3063                    ; # We are ramping:
3064            
3065                    ; # Figure out if we are changing direction:
3066                    ; line_number = 386
3067                    ;  temporary := 0
3068 01b1 3000          movlw   0
3069 01b2 00c8          movwf   set_up__temporary
3070                    ; line_number = 387
3071                    ;  if motor1_direction start
3072                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3073                    ; CASE: True.size=1 False.size=0
3074 01b3 18ee          btfsc   motor1_direction___byte, motor1_direction___bit
3075                    ; line_number = 388
3076                    ; temporary@0 := 1
3077 00000048 = set_up__select__12___byte equ set_up__temporary
3078 00000000 = set_up__select__12___bit equ 0
3079 01b4 1448          bsf     set_up__select__12___byte, set_up__select__12___bit
3080                    ; Recombine size1 = 0 || size2 = 0
3081                    ; code.delay=4294967295 back_code.delay=4294967295
3082                    ; <=bit_code_emit@symbol; sym=motor1_direction (data:00=>00 code:XX=>XX)
3083                    ; line_number = 387
3084                    ;  if motor1_direction done
3085                    ; line_number = 389
3086                    ; if desired_direction1 start
3087                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3088                    ; CASE: true_code.size = 0 && false_code.size > 1
3089                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
3090 01b5 1def          btfss   desired_direction1___byte, desired_direction1___bit
3091 01b6 29b9          goto    set_up__13
3092                    ; line_number = 390
3093                    ; temporary := temporary ^ 1
3094 01b7 3001          movlw   1
3095 01b8 06c8          xorwf   set_up__temporary,f
3096            
3097                    ; Recombine size1 = 0 || size2 = 0
3098   01b9 :   set_up__13:
3099                    ; code.delay=4294967295 back_code.delay=4294967295
3100                    ; <=bit_code_emit@symbol; sym=desired_direction1 (data:00=>00 code:XX=>XX)
3101                    ; line_number = 389
3102                    ; if desired_direction1 done
3103                    ; line_number = 392
3104                    ; if temporary@0 start
3105 00000048 = set_up__select__14___byte equ set_up__temporary
3106 00000000 = set_up__select__14___bit equ 0
3107                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3108                    ; CASE: true_code_size > 1 && false_code_size > 1
3109                    ; true_code_size=7 false_code_size=5
3110 01b9 1c48          btfss   set_up__select__14___byte, set_up__select__14___bit
3111 01ba 29c3          goto    set_up__15
3112                    ; # We are changing direction:
3113                    ; line_number = 394
3114                    ;  second_ramp1_offset := 1
3115 01bb 3001          movlw   1
3116 01bc 00b8          movwf   second_ramp1_offset
3117                    ; line_number = 395
3118                    ;  second_desired_speed1 := desired_speed1
3119 01bd 082a          movf    desired_speed1,w
3120 01be 00b6          movwf   second_desired_speed1
3121                    ; line_number = 396
3122                    ;  second_motor1_command := 1
3123 01bf 16ef          bsf     second_motor1_command___byte, second_motor1_command___bit
3124                    ; line_number = 397
3125                    ;  desired_speed1 := 0
3126 01c0 3000          movlw   0
3127 01c1 00aa          movwf   desired_speed1
3128                    ; line_number = 398
3129                    ;  ramp1_offset := 0xff
3130 01c2 29c8          goto    set_up__16
3131   01c3 :   set_up__15:
3132                    ; # We are not changing direction:
3133                    ; line_number = 401
3134                    ;  if desired_speed1 < actual_speed1 start
3135 01c3 0824          movf    actual_speed1,w
3136 01c4 022a          subwf   desired_speed1,w
3137                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3138                    ; CASE: true_size=1 && false_size=1
3139                    ; SUBCASE: Double test; true, then false
3140 01c5 1803          btfsc   __c___byte, __c___bit
3141                    ; line_number = 404
3142                    ; ramp1_offset := 1
3143 01c6 3001          movlw   1
3144 01c7 1c03          btfss   __c___byte, __c___bit
3145                    ; line_number = 402
3146                    ; ramp1_offset := 0xff
3147   01c8 :   set_up__16:
3148                    ; code.delay=4294967295 back_code.delay=4294967295
3149 01c8 30ff          movlw   255
3150   01c9 :   set_up__18:
3151                    ; code.delay=4294967295 back_code.delay=4294967295
3152 01c9 00b0          movwf   ramp1_offset
3153                    ; code.delay=4294967295 back_code.delay=4294967295
3154            
3155                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3156                    ; line_number = 401
3157                    ;  if desired_speed1 < actual_speed1 done
3158                    ; <=bit_code_emit@symbol; sym=set_up__select__14 (data:00=>00 code:XX=>XX)
3159                    ; line_number = 392
3160                    ; if temporary@0 done
3161                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3162                    ; line_number = 376
3163                    ;  if ramp1 = 0 done
3164                    ; line_number = 406
3165                    ; motor1_off := 0
3166 01ca 3000          movlw   0
3167 01cb 00a7          movwf   motor1_off
3168                    ; line_number = 407
3169                    ;  second_motor1_off := 0
3170 01cc 3000          movlw   0
3171 01cd 00bc          movwf   second_motor1_off
3172                    ; line_number = 408
3173                    ;  if motor1_direction start
3174                    ; # Direction = 1 (Backward):
3175                    ; line_number = 410
3176                    ;  if motor1_mode start
3177                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3178                    ; CASE: true_code.size = 0 && false_code.size > 1
3179                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
3180 01ce 1fef          btfss   motor1_mode___byte, motor1_mode___bit
3181                    ; # Direction = 0 (Forward):
3182                    ; line_number = 418
3183                    ;  if motor1_mode start
3184                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3185                    ; CASE: true_code.size = 0 && false_code.size > 1
3186                    ; bit_code_emit_helper1: body_code.size=4 true_test=true body_code.delay=0 (non-uniform delay)
3187                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3188                    ; CASE: true_code_size > 1 && false_code_size > 1
3189                    ; true_code_size=8 false_code_size=8
3190 01cf 1cee          btfss   motor1_direction___byte, motor1_direction___bit
3191 01d0 29da          goto    set_up__21
3192 01d1 29d6          goto    set_up__20
3193                    ; # Mode = 1 (Continuous):
3194                    ; line_number = 412
3195                    ;  motor1_off := motor1a_mask
3196 01d2 3002          movlw   2
3197 01d3 00a7          movwf   motor1_off
3198                    ; line_number = 413
3199                    ;  second_motor1_off := motor1b_mask
3200 01d4 3004          movlw   4
3201 01d5 00bc          movwf   second_motor1_off
3202                    ; Recombine size1 = 0 || size2 = 0
3203   01d6 :   set_up__20:
3204                    ; code.delay=4294967295 back_code.delay=4294967295
3205                    ; <=bit_code_emit@symbol; sym=motor1_mode (data:00=>00 code:XX=>XX)
3206                    ; line_number = 410
3207                    ;  if motor1_mode done
3208                    ; line_number = 414
3209                    ; motor1_on := motor1b_mask
3210 01d6 3004          movlw   4
3211 01d7 00a8          movwf   motor1_on
3212                    ; line_number = 415
3213                    ;  second_motor1_on := motor1a_mask
3214 01d8 3002          movlw   2
3215 01d9 29e2          goto    set_up__22
3216   01da :   set_up__21:
3217 01da 29df          goto    set_up__19
3218                    ; # Mode = 1 (Continuous):
3219                    ; line_number = 420
3220                    ;  motor1_off := motor1b_mask
3221 01db 3004          movlw   4
3222 01dc 00a7          movwf   motor1_off
3223                    ; line_number = 421
3224                    ;  second_motor1_off := motor1a_mask
3225 01dd 3002          movlw   2
3226 01de 00bc          movwf   second_motor1_off
3227                    ; Recombine size1 = 0 || size2 = 0
3228   01df :   set_up__19:
3229                    ; code.delay=4294967295 back_code.delay=4294967295
3230                    ; <=bit_code_emit@symbol; sym=motor1_mode (data:00=>00 code:XX=>XX)
3231                    ; line_number = 418
3232                    ;  if motor1_mode done
3233                    ; line_number = 422
3234                    ; motor1_on := motor1a_mask
3235 01df 3002          movlw   2
3236 01e0 00a8          movwf   motor1_on
3237                    ; line_number = 423
3238                    ;  second_motor1_on := motor1b_mask
3239 01e1 3004          movlw   4
3240   01e2 :   set_up__22:
3241                    ; code.delay=4294967295 back_code.delay=4294967295
3242 01e2 00ba          movwf   second_motor1_on
3243            
3244            
3245                    ; <=bit_code_emit@symbol; sym=motor1_direction (data:00=>00 code:XX=>XX)
3246                    ; line_number = 408
3247                    ;  if motor1_direction done
3248                    ; line_number = 426
3249                    ; if debug start
3250                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3251                    ; CASE: true_code.size = 0 && false_code.size > 1
3252                    ; bit_code_emit_helper1: body_code.size=2 true_test=true body_code.delay=0 (non-uniform delay)
3253 01e3 1e85          btfss   debug___byte, debug___bit
3254 01e4 29e7          goto    set_up__25
3255                    ; line_number = 427
3256                    ; motor0_on@debug_bit := 1
3257 00000026 = set_up__select__23___byte equ motor0_on
3258 00000005 = set_up__select__23___bit equ 5
3259 01e5 16a6          bsf     set_up__select__23___byte, set_up__select__23___bit
3260                    ; line_number = 428
3261                    ;  motor0_off@debug_bit := 1
3262 00000025 = set_up__select__24___byte equ motor0_off
3263 00000005 = set_up__select__24___bit equ 5
3264 01e6 16a5          bsf     set_up__select__24___byte, set_up__select__24___bit
3265            
3266            
3267                    ; Recombine size1 = 0 || size2 = 0
3268   01e7 :   set_up__25:
3269                    ; code.delay=4294967295 back_code.delay=4294967295
3270                    ; <=bit_code_emit@symbol; sym=debug (data:00=>00 code:XX=>XX)
3271                    ; line_number = 426
3272                    ; if debug done
3273                    ; delay after procedure statements=non-uniform
3274                    ; Implied return
3275 01e7 3400          retlw   0
3276            
3277            
3278            
3279            
3280                    ; line_number = 431
3281                    ; procedure reset
3282   01e8 :   reset:
3283                    ; arguments_none
3284                    ; line_number = 433
3285                    ;  returns_nothing
3286            
3287                    ; # Initialize everything else:
3288                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3289                    ; line_number = 436
3290                    ;  enable := 1
3291 01e8 1407          bsf     enable___byte, enable___bit
3292                    ; line_number = 437
3293                    ;  _intcon := 0
3294 01e9 3000          movlw   0
3295 01ea 008b          movwf   _intcon
3296                    ; line_number = 438
3297                    ;  _option_reg := 0
3298 01eb 3000          movlw   0
3299 01ec 1683          bsf     __rp0___byte, __rp0___bit
3300 01ed 0081          movwf   _option_reg
3301                    ; line_number = 439
3302                    ;  _wpua := 0
3303 01ee 3000          movlw   0
3304 01ef 0095          movwf   _wpua
3305                    ; line_number = 440
3306                    ;  actual_speed0 := 0
3307 01f0 3000          movlw   0
3308 01f1 1283          bcf     __rp0___byte, __rp0___bit
3309 01f2 00a3          movwf   actual_speed0
3310                    ; line_number = 441
3311                    ;  actual_speed1 := 0
3312 01f3 3000          movlw   0
3313 01f4 00a4          movwf   actual_speed1
3314                    ; line_number = 442
3315                    ;  motor0_off := 0
3316 01f5 3000          movlw   0
3317 01f6 00a5          movwf   motor0_off
3318                    ; line_number = 443
3319                    ;  motor0_on := 0
3320 01f7 3000          movlw   0
3321 01f8 00a6          movwf   motor0_on
3322                    ; line_number = 444
3323                    ;  motor1_off := 0
3324 01f9 3000          movlw   0
3325 01fa 00a7          movwf   motor1_off
3326                    ; line_number = 445
3327                    ;  motor1_on := 0
3328 01fb 3000          movlw   0
3329 01fc 00a8          movwf   motor1_on
3330                    ; line_number = 446
3331                    ;  desired_direction0 := 0
3332 01fd 116f          bcf     desired_direction0___byte, desired_direction0___bit
3333                    ; line_number = 447
3334                    ;  desired_direction1 := 0
3335 01fe 11ef          bcf     desired_direction1___byte, desired_direction1___bit
3336                    ; line_number = 448
3337                    ;  desired_speed0 := 0
3338 01ff 3000          movlw   0
3339 0200 00a9          movwf   desired_speed0
3340                    ; line_number = 449
3341                    ;  desired_speed1 := 0
3342 0201 3000          movlw   0
3343 0202 00aa          movwf   desired_speed1
3344                    ; line_number = 450
3345                    ;  ramp0 := 0
3346 0203 3000          movlw   0
3347 0204 00ab          movwf   ramp0
3348                    ; line_number = 451
3349                    ;  ramp1 := 0
3350 0205 3000          movlw   0
3351 0206 00ac          movwf   ramp1
3352                    ; line_number = 452
3353                    ;  ramp0_delay := 0
3354 0207 3000          movlw   0
3355 0208 00ad          movwf   ramp0_delay
3356                    ; line_number = 453
3357                    ;  ramp1_delay := 0
3358 0209 3000          movlw   0
3359 020a 00ae          movwf   ramp1_delay
3360                    ; line_number = 454
3361                    ;  ramp0_offset := 0
3362 020b 3000          movlw   0
3363 020c 00af          movwf   ramp0_offset
3364                    ; line_number = 455
3365                    ;  ramp1_offset := 0
3366 020d 3000          movlw   0
3367 020e 00b0          movwf   ramp1_offset
3368                    ; line_number = 456
3369                    ;  motor0_direction := 0
3370 020f 106e          bcf     motor0_direction___byte, motor0_direction___bit
3371                    ; line_number = 457
3372                    ;  motor1_direction := 0
3373 0210 10ee          bcf     motor1_direction___byte, motor1_direction___bit
3374                    ; line_number = 458
3375                    ;  motor0_mode := 0
3376 0211 136f          bcf     motor0_mode___byte, motor0_mode___bit
3377                    ; line_number = 459
3378                    ;  motor1_mode := 0
3379 0212 13ef          bcf     motor1_mode___byte, motor1_mode___bit
3380                    ; line_number = 460
3381                    ;  second_motor0_command := 0
3382 0213 126f          bcf     second_motor0_command___byte, second_motor0_command___bit
3383                    ; line_number = 461
3384                    ;  second_motor1_command := 0
3385 0214 12ef          bcf     second_motor1_command___byte, second_motor1_command___bit
3386                    ; line_number = 462
3387                    ;  fail_safe := 0
3388 0215 3000          movlw   0
3389 0216 00b1          movwf   fail_safe
3390                    ; line_number = 463
3391                    ;  fail_safe_errors := 0
3392 0217 3000          movlw   0
3393 0218 00b2          movwf   fail_safe_errors
3394                    ; line_number = 464
3395                    ;  fail_safe_high_counter := 0
3396 0219 3000          movlw   0
3397 021a 00b3          movwf   fail_safe_high_counter
3398                    ; line_number = 465
3399                    ;  fail_safe_low_counter := 0
3400 021b 3000          movlw   0
3401 021c 00b4          movwf   fail_safe_low_counter
3402                    ; line_number = 466
3403                    ;  glitch := 0
3404 021d 3000          movlw   0
3405 021e 00bf          movwf   glitch
3406                    ; line_number = 467
3407                    ;  id_index := 0
3408 021f 3000          movlw   0
3409 0220 00c0          movwf   id_index
3410            
3411            
3412                    ; delay after procedure statements=non-uniform
3413                    ; Implied return
3414 0221 3400          retlw   0
3415            
3416            
3417            
3418            
3419                    ; line_number = 470
3420                    ; procedure delay
3421   0222 :   delay:
3422                    ; arguments_none
3423                    ; line_number = 472
3424                    ;  returns_nothing
3425                    ; #exact_delay delay_instructions
3426            
3427                    ; # Delay for 1/3 of a bit time.
3428            
3429                    ; # Kick the dog:
3430                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3431                    ; line_number = 478
3432                    ;  watch_dog_reset done
3433 0222 0064          clrwdt  
3434            
3435                    ; # This is the first probe of TMR0:
3436                    ; line_number = 481
3437                    ;  if _tmr0 < actual_speed0 start
3438 0223 0823          movf    actual_speed0,w
3439 0224 0201          subwf   _tmr0,w
3440                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3441                    ; CASE: true_size=1 && false_size=1
3442                    ; SUBCASE: Double test; true, then false
3443 0225 1803          btfsc   __c___byte, __c___bit
3444                    ; line_number = 484
3445                    ; motor0 := motor0_off
3446 0226 0825          movf    motor0_off,w
3447 0227 1c03          btfss   __c___byte, __c___bit
3448                    ; line_number = 482
3449                    ; motor0 := motor0_on
3450 0228 0826          movf    motor0_on,w
3451                    ; code.delay=4294967295 back_code.delay=4294967295
3452 0229 00bd          movwf   motor0
3453                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3454                    ; line_number = 481
3455                    ;  if _tmr0 < actual_speed0 done
3456                    ; line_number = 485
3457                    ; if _tmr0 < actual_speed1 start
3458 022a 0824          movf    actual_speed1,w
3459 022b 0201          subwf   _tmr0,w
3460                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3461                    ; CASE: true_size=1 && false_size=1
3462                    ; SUBCASE: Double test; true, then false
3463 022c 1803          btfsc   __c___byte, __c___bit
3464                    ; line_number = 488
3465                    ; motor1 := motor1_off
3466 022d 0827          movf    motor1_off,w
3467 022e 1c03          btfss   __c___byte, __c___bit
3468                    ; line_number = 486
3469                    ; motor1 := motor1_on
3470 022f 0828          movf    motor1_on,w
3471                    ; code.delay=4294967295 back_code.delay=4294967295
3472 0230 00be          movwf   motor1
3473                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3474                    ; line_number = 485
3475                    ; if _tmr0 < actual_speed1 done
3476                    ; line_number = 489
3477                    ; _porta := motor0 | motor1
3478 0231 083d          movf    motor0,w
3479 0232 043e          iorwf   motor1,w
3480 0233 0085          movwf   _porta
3481            
3482                    ; # First check out {fail_safe_counter}:
3483                    ; line_number = 492
3484                    ;  fail_safe_low_counter := fail_safe_low_counter - 1
3485 0234 03b4          decf    fail_safe_low_counter,f
3486                    ; line_number = 493
3487                    ;  if _z start
3488                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3489                    ; CASE: true_code.size = 0 && false_code.size > 1
3490                    ; bit_code_emit_helper1: body_code.size=23 true_test=true body_code.delay=0 (non-uniform delay)
3491 0235 1d03          btfss   _z___byte, _z___bit
3492 0236 2a4e          goto    delay__3
3493                    ; line_number = 494
3494                    ; fail_safe_high_counter := fail_safe_high_counter - 1
3495 0237 03b3          decf    fail_safe_high_counter,f
3496                    ; line_number = 495
3497                    ;  if _z start
3498                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3499                    ; CASE: true_code.size = 0 && false_code.size > 1
3500                    ; bit_code_emit_helper1: body_code.size=20 true_test=true body_code.delay=0 (non-uniform delay)
3501 0238 1d03          btfss   _z___byte, _z___bit
3502 0239 2a4e          goto    delay__2
3503                    ; line_number = 496
3504                    ; if fail_safe != 0 start
3505                    ; Left minus Right
3506 023a 0831          movf    fail_safe,w
3507                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3508                    ; CASE: true.size=0 && false.size>1
3509                    ; bit_code_emit_helper1: body_code.size=17 true_test=false body_code.delay=0 (non-uniform delay)
3510 023b 1903          btfsc   __z___byte, __z___bit
3511 023c 2a4e          goto    delay__1
3512                    ; # Turn the motors off:
3513                    ; line_number = 498
3514                    ;  motor0_on := 0
3515 023d 3000          movlw   0
3516 023e 00a6          movwf   motor0_on
3517                    ; line_number = 499
3518                    ;  motor0_off := 0
3519 023f 3000          movlw   0
3520 0240 00a5          movwf   motor0_off
3521                    ; line_number = 500
3522                    ;  motor1_on := 0
3523 0241 3000          movlw   0
3524 0242 00a8          movwf   motor1_on
3525                    ; line_number = 501
3526                    ;  motor1_off := 0
3527 0243 3000          movlw   0
3528 0244 00a7          movwf   motor1_off
3529                    ; line_number = 502
3530                    ;  desired_speed0 := 0
3531 0245 3000          movlw   0
3532 0246 00a9          movwf   desired_speed0
3533                    ; line_number = 503
3534                    ;  desired_speed1 := 0
3535 0247 3000          movlw   0
3536 0248 00aa          movwf   desired_speed1
3537                    ; line_number = 504
3538                    ;  actual_speed0 := 0
3539 0249 3000          movlw   0
3540 024a 00a3          movwf   actual_speed0
3541                    ; line_number = 505
3542                    ;  actual_speed1 := 0
3543 024b 3000          movlw   0
3544 024c 00a4          movwf   actual_speed1
3545                    ; line_number = 506
3546                    ;  fail_safe_errors := fail_safe_errors + 1
3547 024d 0ab2          incf    fail_safe_errors,f
3548            
3549   024e :   delay__1:
3550                    ; Recombine size1 = 0 || size2 = 0
3551                    ; code.delay=4294967295 back_code.delay=4294967295
3552                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3553                    ; line_number = 496
3554                    ; if fail_safe != 0 done
3555                    ; Recombine size1 = 0 || size2 = 0
3556   024e :   delay__2:
3557                    ; code.delay=4294967295 back_code.delay=4294967295
3558                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:XX=>XX)
3559                    ; line_number = 495
3560                    ;  if _z done
3561                    ; Recombine size1 = 0 || size2 = 0
3562   024e :   delay__3:
3563                    ; code.delay=4294967295 back_code.delay=4294967295
3564                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:XX=>XX)
3565                    ; line_number = 493
3566                    ;  if _z done
3567                    ; # This is the second probe of TMR0:
3568                    ; line_number = 509
3569                    ;  if _tmr0 < actual_speed0 start
3570 024e 0823          movf    actual_speed0,w
3571 024f 0201          subwf   _tmr0,w
3572                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3573                    ; CASE: true_size=1 && false_size=1
3574                    ; SUBCASE: Double test; true, then false
3575 0250 1803          btfsc   __c___byte, __c___bit
3576                    ; line_number = 512
3577                    ; motor0 := motor0_off
3578 0251 0825          movf    motor0_off,w
3579 0252 1c03          btfss   __c___byte, __c___bit
3580                    ; line_number = 510
3581                    ; motor0 := motor0_on
3582 0253 0826          movf    motor0_on,w
3583                    ; code.delay=4294967295 back_code.delay=4294967295
3584 0254 00bd          movwf   motor0
3585                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3586                    ; line_number = 509
3587                    ;  if _tmr0 < actual_speed0 done
3588                    ; line_number = 513
3589                    ; if _tmr0 < actual_speed1 start
3590 0255 0824          movf    actual_speed1,w
3591 0256 0201          subwf   _tmr0,w
3592                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3593                    ; CASE: true_size=1 && false_size=1
3594                    ; SUBCASE: Double test; true, then false
3595 0257 1803          btfsc   __c___byte, __c___bit
3596                    ; line_number = 516
3597                    ; motor1 := motor1_off
3598 0258 0827          movf    motor1_off,w
3599 0259 1c03          btfss   __c___byte, __c___bit
3600                    ; line_number = 514
3601                    ; motor1 := motor1_on
3602 025a 0828          movf    motor1_on,w
3603                    ; code.delay=4294967295 back_code.delay=4294967295
3604 025b 00be          movwf   motor1
3605                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3606                    ; line_number = 513
3607                    ; if _tmr0 < actual_speed1 done
3608                    ; line_number = 517
3609                    ; _porta := motor0 | motor1
3610 025c 083d          movf    motor0,w
3611 025d 043e          iorwf   motor1,w
3612 025e 0085          movwf   _porta
3613            
3614                    ; # Do {ramp0} management:
3615                    ; line_number = 520
3616                    ;  ramp0_delay := ramp0_delay - 1
3617 025f 03ad          decf    ramp0_delay,f
3618                    ; line_number = 521
3619                    ;  if _z start
3620                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3621                    ; CASE: true_code.size = 0 && false_code.size > 1
3622                    ; bit_code_emit_helper1: body_code.size=23 true_test=true body_code.delay=0 (non-uniform delay)
3623 0260 1d03          btfss   _z___byte, _z___bit
3624 0261 2a79          goto    delay__7
3625                    ; line_number = 522
3626                    ; ramp0_delay := ramp0
3627 0262 082b          movf    ramp0,w
3628 0263 00ad          movwf   ramp0_delay
3629                    ; line_number = 523
3630                    ;  if actual_speed0 != desired_speed0 start
3631                    ; Left minus Right
3632 0264 0829          movf    desired_speed0,w
3633 0265 0223          subwf   actual_speed0,w
3634                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3635                    ; CASE: true_code_size > 1 && false_code_size > 1
3636                    ; true_code_size=14 false_code_size=2
3637 0266 1d03          btfss   __z___byte, __z___bit
3638 0267 2a77          goto    delay__5
3639                    ; line_number = 525
3640                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3641                    ; CASE: true_code.size = 0 && false_code.size > 1
3642                    ; bit_code_emit_helper1: body_code.size=12 true_test=true body_code.delay=0 (non-uniform delay)
3643 0268 1e6f          btfss   second_motor0_command___byte, second_motor0_command___bit
3644 0269 2a76          goto    delay__4
3645                    ; line_number = 526
3646                    ; second_motor0_command := 0
3647 026a 126f          bcf     second_motor0_command___byte, second_motor0_command___bit
3648                    ; line_number = 527
3649                    ;  desired_speed0 := second_desired_speed0
3650 026b 0835          movf    second_desired_speed0,w
3651 026c 00a9          movwf   desired_speed0
3652                    ; line_number = 528
3653                    ;  ramp0_offset := second_ramp0_offset
3654 026d 0837          movf    second_ramp0_offset,w
3655 026e 00af          movwf   ramp0_offset
3656                    ; line_number = 529
3657                    ;  motor0_on := second_motor0_on
3658 026f 0839          movf    second_motor0_on,w
3659 0270 00a6          movwf   motor0_on
3660                    ; line_number = 530
3661                    ;  motor0_off := second_motor0_off
3662 0271 083b          movf    second_motor0_off,w
3663 0272 00a5          movwf   motor0_off
3664                    ; line_number = 531
3665                    ;  motor0_direction := desired_direction0
3666 0273 106e          bcf     motor0_direction___byte, motor0_direction___bit
3667                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3668                    ; CASE: True.size=1 False.size=0
3669 0274 196f          btfsc   desired_direction0___byte, desired_direction0___bit
3670 0275 146e          bsf     motor0_direction___byte, motor0_direction___bit
3671                    ; Recombine size1 = 0 || size2 = 0
3672                    ; code.delay=4294967295 back_code.delay=4294967295
3673                    ; <=bit_code_emit@symbol; sym=desired_direction0 (data:XX=>00 code:XX=>XX)
3674            
3675                    ; Recombine size1 = 0 || size2 = 0
3676   0276 :   delay__4:
3677                    ; code.delay=4294967295 back_code.delay=4294967295
3678                    ; <=bit_code_emit@symbol; sym=second_motor0_command (data:00=>00 code:XX=>XX)
3679 0276 2a79          goto    delay__6
3680   0277 :   delay__5:
3681                    ; line_number = 524
3682                    ; actual_speed0 := actual_speed0 + ramp0_offset
3683 0277 082f          movf    ramp0_offset,w
3684 0278 07a3          addwf   actual_speed0,f
3685   0279 :   delay__6:
3686                    ; code.delay=4294967295 back_code.delay=4294967295
3687                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3688                    ; line_number = 523
3689                    ;  if actual_speed0 != desired_speed0 done
3690                    ; Recombine size1 = 0 || size2 = 0
3691   0279 :   delay__7:
3692                    ; code.delay=4294967295 back_code.delay=4294967295
3693                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:XX=>XX)
3694                    ; line_number = 521
3695                    ;  if _z done
3696                    ; # This is the third probe of TMR0:
3697                    ; line_number = 534
3698                    ;  if _tmr0 < actual_speed0 start
3699 0279 0823          movf    actual_speed0,w
3700 027a 0201          subwf   _tmr0,w
3701                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3702                    ; CASE: true_size=1 && false_size=1
3703                    ; SUBCASE: Double test; true, then false
3704 027b 1803          btfsc   __c___byte, __c___bit
3705                    ; line_number = 537
3706                    ; motor0 := motor0_off
3707 027c 0825          movf    motor0_off,w
3708 027d 1c03          btfss   __c___byte, __c___bit
3709                    ; line_number = 535
3710                    ; motor0 := motor0_on
3711 027e 0826          movf    motor0_on,w
3712                    ; code.delay=4294967295 back_code.delay=4294967295
3713 027f 00bd          movwf   motor0
3714            
3715                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3716                    ; line_number = 534
3717                    ;  if _tmr0 < actual_speed0 done
3718                    ; line_number = 539
3719                    ; if _tmr0 < actual_speed1 start
3720 0280 0824          movf    actual_speed1,w
3721 0281 0201          subwf   _tmr0,w
3722                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3723                    ; CASE: true_size=1 && false_size=1
3724                    ; SUBCASE: Double test; true, then false
3725 0282 1803          btfsc   __c___byte, __c___bit
3726                    ; line_number = 542
3727                    ; motor1 := motor1_off
3728 0283 0827          movf    motor1_off,w
3729 0284 1c03          btfss   __c___byte, __c___bit
3730                    ; line_number = 540
3731                    ; motor1 := motor1_on
3732 0285 0828          movf    motor1_on,w
3733                    ; code.delay=4294967295 back_code.delay=4294967295
3734 0286 00be          movwf   motor1
3735                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3736                    ; line_number = 539
3737                    ; if _tmr0 < actual_speed1 done
3738                    ; line_number = 543
3739                    ; _porta := motor0 | motor1
3740 0287 083d          movf    motor0,w
3741 0288 043e          iorwf   motor1,w
3742 0289 0085          movwf   _porta
3743            
3744                    ; # Do {ramp1} management:
3745                    ; line_number = 546
3746                    ;  ramp1_delay := ramp1_delay - 1
3747 028a 03ae          decf    ramp1_delay,f
3748                    ; line_number = 547
3749                    ;  if _z start
3750                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3751                    ; CASE: true_code_size > 1 && false_code_size > 1
3752                    ; true_code_size=23 false_code_size=17
3753 028b 1d03          btfss   _z___byte, _z___bit
3754 028c 2aa5          goto    delay__11
3755                    ; line_number = 548
3756                    ; ramp1_delay := ramp1
3757 028d 082c          movf    ramp1,w
3758 028e 00ae          movwf   ramp1_delay
3759                    ; line_number = 549
3760                    ;  if actual_speed1 != desired_speed1 start
3761                    ; Left minus Right
3762 028f 082a          movf    desired_speed1,w
3763 0290 0224          subwf   actual_speed1,w
3764                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3765                    ; CASE: true_code_size > 1 && false_code_size > 1
3766                    ; true_code_size=14 false_code_size=2
3767 0291 1d03          btfss   __z___byte, __z___bit
3768 0292 2aa2          goto    delay__9
3769                    ; line_number = 551
3770                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3771                    ; CASE: true_code.size = 0 && false_code.size > 1
3772                    ; bit_code_emit_helper1: body_code.size=12 true_test=true body_code.delay=0 (non-uniform delay)
3773 0293 1eef          btfss   second_motor1_command___byte, second_motor1_command___bit
3774 0294 2aa1          goto    delay__8
3775                    ; line_number = 552
3776                    ; second_motor1_command := 0
3777 0295 12ef          bcf     second_motor1_command___byte, second_motor1_command___bit
3778                    ; line_number = 553
3779                    ;  desired_speed1 := second_desired_speed1
3780 0296 0836          movf    second_desired_speed1,w
3781 0297 00aa          movwf   desired_speed1
3782                    ; line_number = 554
3783                    ;  ramp1_offset := second_ramp1_offset
3784 0298 0838          movf    second_ramp1_offset,w
3785 0299 00b0          movwf   ramp1_offset
3786                    ; line_number = 555
3787                    ;  motor1_on := second_motor1_on
3788 029a 083a          movf    second_motor1_on,w
3789 029b 00a8          movwf   motor1_on
3790                    ; line_number = 556
3791                    ;  motor1_off := second_motor1_off
3792 029c 083c          movf    second_motor1_off,w
3793 029d 00a7          movwf   motor1_off
3794                    ; line_number = 557
3795                    ;  motor1_direction := desired_direction1
3796 029e 10ee          bcf     motor1_direction___byte, motor1_direction___bit
3797                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3798                    ; CASE: True.size=1 False.size=0
3799 029f 19ef          btfsc   desired_direction1___byte, desired_direction1___bit
3800 02a0 14ee          bsf     motor1_direction___byte, motor1_direction___bit
3801                    ; Recombine size1 = 0 || size2 = 0
3802                    ; code.delay=4294967295 back_code.delay=4294967295
3803                    ; <=bit_code_emit@symbol; sym=desired_direction1 (data:XX=>00 code:XX=>XX)
3804                    ; Recombine size1 = 0 || size2 = 0
3805   02a1 :   delay__8:
3806                    ; code.delay=4294967295 back_code.delay=4294967295
3807                    ; <=bit_code_emit@symbol; sym=second_motor1_command (data:00=>00 code:XX=>XX)
3808 02a1 2aa4          goto    delay__10
3809   02a2 :   delay__9:
3810                    ; line_number = 550
3811                    ; actual_speed1 := actual_speed1 + ramp1_offset
3812 02a2 0830          movf    ramp1_offset,w
3813 02a3 07a4          addwf   actual_speed1,f
3814   02a4 :   delay__10:
3815                    ; code.delay=4294967295 back_code.delay=4294967295
3816                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
3817                    ; line_number = 549
3818                    ;  if actual_speed1 != desired_speed1 done
3819 02a4 2ab6          goto    delay__12
3820   02a5 :   delay__11:
3821                    ; # This is the forth probe of TMR0:
3822                    ; line_number = 560
3823                    ;  if _tmr0 < actual_speed0 start
3824 02a5 0823          movf    actual_speed0,w
3825 02a6 0201          subwf   _tmr0,w
3826                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3827                    ; CASE: true_size=1 && false_size=1
3828                    ; SUBCASE: Double test; true, then false
3829 02a7 1803          btfsc   __c___byte, __c___bit
3830                    ; line_number = 563
3831                    ; motor0 := motor0_off
3832 02a8 0825          movf    motor0_off,w
3833 02a9 1c03          btfss   __c___byte, __c___bit
3834                    ; line_number = 561
3835                    ; motor0 := motor0_on
3836 02aa 0826          movf    motor0_on,w
3837                    ; code.delay=4294967295 back_code.delay=4294967295
3838 02ab 00bd          movwf   motor0
3839                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3840                    ; line_number = 560
3841                    ;  if _tmr0 < actual_speed0 done
3842                    ; line_number = 564
3843                    ; if _tmr0 < actual_speed1 start
3844 02ac 0824          movf    actual_speed1,w
3845 02ad 0201          subwf   _tmr0,w
3846                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3847                    ; CASE: true_size=1 && false_size=1
3848                    ; SUBCASE: Double test; true, then false
3849 02ae 1803          btfsc   __c___byte, __c___bit
3850                    ; line_number = 567
3851                    ; motor1 := motor1_off
3852 02af 0827          movf    motor1_off,w
3853 02b0 1c03          btfss   __c___byte, __c___bit
3854                    ; line_number = 565
3855                    ; motor1 := motor1_on
3856 02b1 0828          movf    motor1_on,w
3857                    ; code.delay=4294967295 back_code.delay=4294967295
3858 02b2 00be          movwf   motor1
3859                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
3860                    ; line_number = 564
3861                    ; if _tmr0 < actual_speed1 done
3862                    ; line_number = 568
3863                    ; _porta := motor0 | motor1
3864 02b3 083d          movf    motor0,w
3865 02b4 043e          iorwf   motor1,w
3866 02b5 0085          movwf   _porta
3867            
3868            
3869   02b6 :   delay__12:
3870                    ; code.delay=4294967295 back_code.delay=4294967295
3871                    ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:XX=>XX)
3872                    ; line_number = 547
3873                    ;  if _z done
3874                    ; delay after procedure statements=non-uniform
3875                    ; Implied return
3876 02b6 3400          retlw   0
3877            
3878            
3879            
3880            
3881                    ; line_number = 571
3882                    ; constant zero8 = "\0,0,0,0,0,0,0,0\"
3883                    ; zero8 = '\0,0,0,0,0,0,0,0\'
3884                    ; line_number = 572
3885                    ; constant module_name = "\13\DualMotor1Amp"
3886                    ; module_name = '\13\DualMotor1Amp'
3887                    ; line_number = 573
3888                    ; constant vendor_name = "\7\Gramson"
3889                    ; vendor_name = '\7\Gramson'
3890            
3891                    ; line_number = 575
3892                    ; string id = "\1,1,14,8,9,0,0,0\" ~ zero8 ~ zero8 ~ module_name ~ vendor_name start
3893                    ; id = '\1,1,14,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13\DualMotor1Amp\7\Gramson'
3894   02b7 :   id:
3895                    ; Temporarily save index into FSR
3896 02b7 0084          movwf   __fsr
3897                    ; Initialize PCLATH to point to this code page
3898 02b8 3002          movlw   id___base>>8
3899 02b9 008a          movwf   __pclath
3900                    ; Restore index from FSR
3901 02ba 0804          movf    __fsr,w
3902 02bb 3ebd          addlw   id___base
3903                    ; Index to the correct return value
3904 02bc 0082          movwf   __pcl
3905                    ; page_group 46
3906   02bd :   id___base:
3907 02bd 3401          retlw   1
3908 02be 3401          retlw   1
3909 02bf 340e          retlw   14
3910 02c0 3408          retlw   8
3911 02c1 3409          retlw   9
3912 02c2 3400          retlw   0
3913 02c3 3400          retlw   0
3914 02c4 3400          retlw   0
3915 02c5 3400          retlw   0
3916 02c6 3400          retlw   0
3917 02c7 3400          retlw   0
3918 02c8 3400          retlw   0
3919 02c9 3400          retlw   0
3920 02ca 3400          retlw   0
3921 02cb 3400          retlw   0
3922 02cc 3400          retlw   0
3923 02cd 3400          retlw   0
3924 02ce 3400          retlw   0
3925 02cf 3400          retlw   0
3926 02d0 3400          retlw   0
3927 02d1 3400          retlw   0
3928 02d2 3400          retlw   0
3929 02d3 3400          retlw   0
3930 02d4 3400          retlw   0
3931 02d5 340d          retlw   13
3932 02d6 3444          retlw   68
3933 02d7 3475          retlw   117
3934 02d8 3461          retlw   97
3935 02d9 346c          retlw   108
3936 02da 344d          retlw   77
3937 02db 346f          retlw   111
3938 02dc 3474          retlw   116
3939 02dd 346f          retlw   111
3940 02de 3472          retlw   114
3941 02df 3431          retlw   49
3942 02e0 3441          retlw   65
3943 02e1 346d          retlw   109
3944 02e2 3470          retlw   112
3945 02e3 3407          retlw   7
3946 02e4 3447          retlw   71
3947 02e5 3472          retlw   114
3948 02e6 3461          retlw   97
3949 02e7 346d          retlw   109
3950 02e8 3473          retlw   115
3951 02e9 346f          retlw   111
3952 02ea 346e          retlw   110
3953                    ; line_number = 575
3954                    ; string id = "\1,1,14,8,9,0,0,0\" ~ zero8 ~ zero8 ~ module_name ~ vendor_name start
3955            
3956                    ; Appending 4 delayed procedures to code bank 0
3957                    ; buffer = '_robobricks_pic16f688'
3958                    ; line_number = 17
3959                    ; procedure byte_get
3960   02eb :   byte_get:
3961                    ; arguments_none
3962                    ; line_number = 19
3963                    ;  returns byte
3964            
3965                    ; # This procedure will return the next byte from the UART.
3966                    ; # It continuously calls delay() while it is waiting.
3967            
3968                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
3969                    ; line_number = 24
3970                    ;  while !_rcif start
3971   02eb :   byte_get__1:
3972                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
3973                    ; CASE: true.size=0 && false.size>1
3974                    ; bit_code_emit_helper1: body_code.size=4 true_test=false body_code.delay=0 (non-uniform delay)
3975 02eb 1a8c          btfsc   _rcif___byte, _rcif___bit
3976 02ec 2af1          goto    byte_get__2
3977                    ; line_number = 25
3978                    ; in_byte_get := 1
3979 02ed 14ef          bsf     in_byte_get___byte, in_byte_get___bit
3980                    ; line_number = 26
3981                    ;  call delay()
3982 02ee 2222          call    delay
3983                    ; line_number = 27
3984                    ;  in_byte_get := 0
3985 02ef 10ef          bcf     in_byte_get___byte, in_byte_get___bit
3986 02f0 2aeb          goto    byte_get__1
3987   02f1 :   byte_get__2:
3988                    ; Recombine size1 = 0 || size2 = 0
3989                    ; code.delay=4294967295 back_code.delay=4294967295
3990                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
3991                    ; line_number = 24
3992                    ;  while !_rcif done
3993                    ; line_number = 28
3994                    ; command_previous := command_last
3995 02f1 0843          movf    command_last,w
3996 02f2 00c2          movwf   command_previous
3997                    ; line_number = 29
3998                    ;  _rcif := 0
3999 02f3 128c          bcf     _rcif___byte, _rcif___bit
4000                    ; line_number = 30
4001                    ;  return _rcreg start
4002                    ; line_number = 30
4003 02f4 0814          movf    _rcreg,w
4004 02f5 0008          return  
4005                    ; line_number = 30
4006                    ;  return _rcreg done
4007            
4008            
4009                    ; delay after procedure statements=non-uniform
4010            
4011            
4012            
4013            
4014                    ; line_number = 33
4015                    ; procedure byte_put
4016   02f6 :   byte_put:
4017                    ; Last argument is sitting in W; save into argument variable
4018 02f6 00a0          movwf   byte_put__value
4019                    ; delay=4294967295
4020                    ; line_number = 34
4021                    ; argument value byte
4022 00000020 = byte_put__value equ globals___0
4023                    ; line_number = 35
4024                    ;  returns_nothing
4025            
4026                    ; # This procedure will output {value} to the UART.  If the UART is
4027                    ; # already busy transmitting a character, the {delay} procedure is
4028                    ; # repeatably called until {value} can be sent.
4029            
4030                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4031                    ; line_number = 41
4032                    ;  while !_trmt start
4033   02f7 :   byte_put__1:
4034                    ; (after recombine) true_delay=non-uniform, false_delay=non-uniform
4035                    ; CASE: true.size=0 && false.size>1
4036                    ; bit_code_emit_helper1: body_code.size=2 true_test=false body_code.delay=0 (non-uniform delay)
4037 02f7 1896          btfsc   _trmt___byte, _trmt___bit
4038 02f8 2afb          goto    byte_put__2
4039                    ; line_number = 42
4040                    ; call delay()
4041 02f9 2222          call    delay
4042 02fa 2af7          goto    byte_put__1
4043   02fb :   byte_put__2:
4044                    ; Recombine size1 = 0 || size2 = 0
4045                    ; code.delay=4294967295 back_code.delay=4294967295
4046                    ; <=bit_code_emit@symbol; sym=_trmt (data:00=>00 code:XX=>XX)
4047                    ; line_number = 41
4048                    ;  while !_trmt done
4049                    ; line_number = 43
4050                    ; debug := 0
4051 02fb 1285          bcf     debug___byte, debug___bit
4052                    ; line_number = 44
4053                    ;  sent_previous := sent_last
4054 02fc 0845          movf    sent_last,w
4055 02fd 00c4          movwf   sent_previous
4056                    ; line_number = 45
4057                    ;  sent_last := value
4058 02fe 0820          movf    byte_put__value,w
4059 02ff 00c5          movwf   sent_last
4060                    ; line_number = 46
4061                    ;  _txreg := value
4062 0300 0820          movf    byte_put__value,w
4063 0301 0095          movwf   _txreg
4064            
4065            
4066                    ; delay after procedure statements=non-uniform
4067                    ; Implied return
4068 0302 3400          retlw   0
4069            
4070            
4071            
4072            
4073                    ; line_number = 49
4074                    ; procedure baud_rate_low
4075   0303 :   baud_rate_low:
4076                    ; Last argument is sitting in W; save into argument variable
4077 0303 00a1          movwf   baud_rate_low__baud_rate_index
4078                    ; delay=4294967295
4079                    ; line_number = 50
4080                    ; argument baud_rate_index byte
4081 00000021 = baud_rate_low__baud_rate_index equ globals___0+1
4082                    ; line_number = 51
4083                    ;  returns byte
4084            
4085                    ; #: This procedure will return the baud rate low byte for {baud_rate_index}.
4086            
4087                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4088                    ; line_number = 55
4089                    ;  switch baud_rate_index start
4090 0304 3003          movlw   baud_rate_low__9>>8
4091 0305 008a          movwf   __pclath
4092 0306 0821          movf    baud_rate_low__baud_rate_index,w
4093 0307 3e09          addlw   baud_rate_low__9
4094 0308 0082          movwf   __pcl
4095                    ; page_group 8
4096   0309 :   baud_rate_low__9:
4097                    ; line_number = 57
4098                    ; return _eusart_2400_low start
4099                    ; line_number = 57
4100 0309 3440          retlw   64
4101                    ; line_number = 57
4102                    ; return _eusart_2400_low done
4103                    ; line_number = 59
4104                    ; return _eusart_4800_low start
4105                    ; line_number = 59
4106 030a 349f          retlw   159
4107                    ; line_number = 59
4108                    ; return _eusart_4800_low done
4109                    ; line_number = 61
4110                    ; return _eusart_9600_low start
4111                    ; line_number = 61
4112 030b 34cf          retlw   207
4113                    ; line_number = 61
4114                    ; return _eusart_9600_low done
4115                    ; line_number = 63
4116                    ; return _eusart_19200_low start
4117                    ; line_number = 63
4118 030c 3467          retlw   103
4119                    ; line_number = 63
4120                    ; return _eusart_19200_low done
4121                    ; line_number = 65
4122                    ; return _eusart_38400_low start
4123                    ; line_number = 65
4124 030d 3433          retlw   51
4125                    ; line_number = 65
4126                    ; return _eusart_38400_low done
4127                    ; line_number = 67
4128                    ; return _eusart_57600_low start
4129                    ; line_number = 67
4130 030e 3421          retlw   33
4131                    ; line_number = 67
4132                    ; return _eusart_57600_low done
4133                    ; line_number = 69
4134                    ; return _eusart_115200_low start
4135                    ; line_number = 69
4136 030f 3410          retlw   16
4137                    ; line_number = 69
4138                    ; return _eusart_115200_low done
4139                    ; line_number = 71
4140                    ; return _eusart_203400_low start
4141                    ; line_number = 71
4142 0310 3408          retlw   8
4143                    ; line_number = 71
4144                    ; return _eusart_203400_low done
4145            
4146            
4147   0311 :   baud_rate_low__10:
4148                    ; switch end:(data:00=>00 code:XX=>XX)
4149                    ; line_number = 55
4150                    ;  switch baud_rate_index done
4151                    ; delay after procedure statements=non-uniform
4152                    ; Exiting procedure with no return(s); fail with infinite loop
4153   0311 :   baud_rate_low__11:
4154 0311 2b11          goto    baud_rate_low__11
4155            
4156            
4157            
4158            
4159                    ; line_number = 74
4160                    ; procedure baud_rate_high
4161   0312 :   baud_rate_high:
4162                    ; Last argument is sitting in W; save into argument variable
4163 0312 00a2          movwf   baud_rate_high__baud_rate_index
4164                    ; delay=4294967295
4165                    ; line_number = 75
4166                    ; argument baud_rate_index byte
4167 00000022 = baud_rate_high__baud_rate_index equ globals___0+2
4168                    ; line_number = 76
4169                    ;  returns byte
4170            
4171                    ; # This procedure will return the baud rate high byte for
4172                    ; # {baud_rate_index}.
4173            
4174                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
4175                    ; line_number = 81
4176                    ;  switch baud_rate_index start
4177 0313 3003          movlw   baud_rate_high__9>>8
4178 0314 008a          movwf   __pclath
4179 0315 0822          movf    baud_rate_high__baud_rate_index,w
4180 0316 3e18          addlw   baud_rate_high__9
4181 0317 0082          movwf   __pcl
4182                    ; page_group 8
4183   0318 :   baud_rate_high__9:
4184                    ; line_number = 83
4185                    ; return _eusart_2400_high start
4186                    ; line_number = 83
4187 0318 3403          retlw   3
4188                    ; line_number = 83
4189                    ; return _eusart_2400_high done
4190                    ; line_number = 85
4191                    ; return _eusart_4800_high start
4192                    ; line_number = 85
4193 0319 3401          retlw   1
4194                    ; line_number = 85
4195                    ; return _eusart_4800_high done
4196                    ; line_number = 87
4197                    ; return _eusart_9600_high start
4198                    ; line_number = 87
4199 031a 3400          retlw   0
4200                    ; line_number = 87
4201                    ; return _eusart_9600_high done
4202                    ; line_number = 89
4203                    ; return _eusart_19200_high start
4204                    ; line_number = 89
4205 031b 3400          retlw   0
4206                    ; line_number = 89
4207                    ; return _eusart_19200_high done
4208                    ; line_number = 91
4209                    ; return _eusart_38400_high start
4210                    ; line_number = 91
4211 031c 3400          retlw   0
4212                    ; line_number = 91
4213                    ; return _eusart_38400_high done
4214                    ; line_number = 93
4215                    ; return _eusart_57600_high start
4216                    ; line_number = 93
4217 031d 3400          retlw   0
4218                    ; line_number = 93
4219                    ; return _eusart_57600_high done
4220                    ; line_number = 95
4221                    ; return _eusart_115200_high start
4222                    ; line_number = 95
4223 031e 3400          retlw   0
4224                    ; line_number = 95
4225                    ; return _eusart_115200_high done
4226                    ; line_number = 97
4227                    ; return _eusart_203400_high start
4228                    ; line_number = 97
4229 031f 3400          retlw   0
4230                    ; line_number = 97
4231                    ; return _eusart_203400_high done
4232            
4233   0320 :   baud_rate_high__10:
4234                    ; switch end:(data:00=>00 code:XX=>XX)
4235                    ; line_number = 81
4236                    ;  switch baud_rate_index done
4237                    ; delay after procedure statements=non-uniform
4238                    ; Exiting procedure with no return(s); fail with infinite loop
4239   0320 :   baud_rate_high__11:
4240 0320 2b20          goto    baud_rate_high__11
4241            
4242            
4243            
4244            
4245                    ; Configuration bits
4246                    ; fill = 0x3000
4247                    ; fcmen = off (0x0)
4248                    ; ieso = off (0x0)
4249                    ; boden = off (0x0)
4250                    ; cpd = off (0x80)
4251                    ; cp = off (0x40)
4252                    ; mclre = off (0x20)
4253                    ; pwrte = off (0x10)
4254                    ; wdte = off (0x0)
4255                    ; fosc = int_no_clk (0x4)
4256                    ; 12532 = 0x30f4
4257   30f4 =           __config 12532
4258                    ; Define start addresses for data regions
4259                    ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
4260                    ; Region="globals___0" Address=32" Size=80 Bytes=43 Bits=10 Available=35
4261                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
4262                    ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
4263                    ; Region="globals___3" Address=416" Size=80 Bytes=0 Bits=0 Available=80
4264                    end
