1                       radix   dec
2                       ; Code bank 0; Start address: 0; End address: 2047
3      0000 :           org     0
4               
5                       ; Define start addresses for data regions
6    00000070 = shared___globals equ 112
7    00000020 = globals___0 equ 32
8    000000a0 = globals___1 equ 160
9    00000110 = globals___2 equ 272
10   00000190 = globals___3 equ 400
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) 2005-2007 by Wayne C. Gramlich
32                      ; # All rights reserved.
33              
34                      ; buffer = 'chopper'
35                      ; line_number = 6
36                      ; library _pic16f777 entered
37              
38                      ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
39                      ; # All rights reserved.
40              
41                      ; buffer = '_pic16f777'
42                      ; line_number = 6
43                      ; processor pic16f676
44                      ; line_number = 7
45                      ; configure_address 0x2007
46                      ; line_number = 8
47                      ;  configure_fill 0x0600
48                      ; line_number = 9
49                      ;  configure_option cp: off = 0x2000
50                      ; line_number = 10
51                      ;  configure_option cp: on = 0x0000
52                      ; line_number = 11
53                      ;  configure_option cpmx: rc1 = 0x1000
54                      ; line_number = 12
55                      ;  configure_option cpmx: rb3 = 0x0000
56                      ; line_number = 13
57                      ;  configure_option debug: off = 0x0800
58                      ; line_number = 14
59                      ;  configure_option debug: on = 0x0000
60                      ; line_number = 15
61                      ;  configure_option borv: borv11 = 0x0180
62                      ; line_number = 16
63                      ;  configure_option borv: borv10 = 0x0100
64                      ; line_number = 17
65                      ;  configure_option borv: borv01 = 0x0080
66                      ; line_number = 18
67                      ;  configure_option borv: borv00 = 0x0000
68                      ; line_number = 19
69                      ;  configure_option boren: on = 0x40
70                      ; line_number = 20
71                      ;  configure_option boren: off = 0x00
72                      ; line_number = 21
73                      ;  configure_option mclre: on = 0x20
74                      ; line_number = 22
75                      ;  configure_option mclre: off = 0x00
76                      ; line_number = 23
77                      ;  configure_option pwrten: off = 8
78                      ; line_number = 24
79                      ;  configure_option pwrten: on = 0
80                      ; line_number = 25
81                      ;  configure_option wdten: on = 4
82                      ; line_number = 26
83                      ;  configure_option wdten: off = 0
84                      ; line_number = 27
85                      ;  configure_option fosc: rc_clk = 0x13
86                      ; line_number = 28
87                      ;  configure_option fosc: rc_no_clk = 0x12
88                      ; line_number = 29
89                      ;  configure_option fosc: int_clk = 0x11
90                      ; line_number = 30
91                      ;  configure_option fosc: int_no_clk = 0x10
92                      ; line_number = 31
93                      ;  configure_option fosc: extclk = 3
94                      ; line_number = 32
95                      ;  configure_option fosc: hs = 2
96                      ; line_number = 33
97                      ;  configure_option fosc: xt = 1
98                      ; line_number = 34
99                      ;  configure_option fosc: lp = 0
100             
101                     ; line_number = 36
102                     ;  configure_address 0x2008
103                     ; line_number = 37
104                     ;  configure_fill 0x33bc
105                     ; line_number = 38
106                     ;  configure_option borsen: on = 0x0040
107                     ; line_number = 39
108                     ;  configure_option borsen: off = 0x0000
109                     ; line_number = 40
110                     ;  configure_option ieso: on = 0x0002
111                     ; line_number = 41
112                     ;  configure_option ieso: off = 0x0002
113                     ; line_number = 42
114                     ;  configure_option fcmen: on = 0x0001
115                     ; line_number = 43
116                     ;  configure_option fcmen: off = 0x0000
117             
118                     ; line_number = 45
119                     ;  code_bank 0x0 : 0x7ff
120                     ; line_number = 46
121                     ;  code_bank 0x800 : 0xfff
122                     ; line_number = 47
123                     ;  code_bank 0x1000 : 0x17ff
124                     ; line_number = 48
125                     ;  code_bank 0x1800 : 0x1fff
126                     ; line_number = 49
127                     ;  data_bank 0x0 : 0x7f
128                     ; line_number = 50
129                     ;  data_bank 0x80 : 0xff
130                     ; line_number = 51
131                     ;  data_bank 0x100 : 0x17f
132                     ; line_number = 52
133                     ;  data_bank 0x180 : 0x1ff
134                     ; line_number = 53
135                     ;  global_region 0x20 : 0x6f
136                     ; line_number = 54
137                     ;  global_region 0xa0 : 0xef
138                     ; line_number = 55
139                     ;  global_region 0x110 : 0x16f
140                     ; line_number = 56
141                     ;  global_region 0x190 : 0x1ff
142                     ; line_number = 57
143                     ;  shared_region 0x70 : 0x7f
144             
145                     ; line_number = 59
146                     ;  interrupts_possible
147                     ; line_number = 60
148                     ;  packages pdip = 40
149                     ; line_number = 61
150                     ;  pin re3_in, re3_out, mclr, vpp, thv, re3_unused
151                     ; line_number = 62
152                     ; pin_bindings pdip = 1
153                     ; line_number = 63
154                     ;  bind_to _porte@3
155                     ; line_number = 64
156                     ;  or_if re3_in _trise 8
157                     ; line_number = 65
158                     ;  or_if re3_in _adcon1 15
159                     ; line_number = 66
160                     ;  or_if re3_in _adcon0 0
161                     ; line_number = 67
162                     ;  or_if re3_out _trise 0
163                     ; line_number = 68
164                     ;  or_if re3_out _adcon1 15
165                     ; line_number = 69
166                     ;  or_if re3_out _adcon0 0
167                     ; line_number = 70
168                     ; pin ra0_in, ra0_out, an0, ra0_unused
169                     ; line_number = 71
170                     ; pin_bindings pdip = 2
171                     ; line_number = 72
172                     ;  bind_to _porta@0
173                     ; line_number = 73
174                     ;  or_if ra0_in _trisa 1
175                     ; line_number = 74
176                     ;  or_if ra0_in _adcon1 15
177                     ; line_number = 75
178                     ;  or_if ra0_in _adcon0 0
179                     ; line_number = 76
180                     ;  or_if ra0_out _trisa 0
181                     ; line_number = 77
182                     ;  or_if ra0_out _adcon1 15
183                     ; line_number = 78
184                     ;  or_if ra0_out _adcon0 0
185                     ; line_number = 79
186                     ; pin ra1_in, ra1_out, an1, ra1_unused
187                     ; line_number = 80
188                     ; pin_bindings pdip = 3
189                     ; line_number = 81
190                     ;  bind_to _porta@1
191                     ; line_number = 82
192                     ;  or_if ra1_in _trisa 2
193                     ; line_number = 83
194                     ;  or_if ra1_in _adcon1 15
195                     ; line_number = 84
196                     ;  or_if ra1_in _adcon0 0
197                     ; line_number = 85
198                     ;  or_if ra1_out _trisa 0
199                     ; line_number = 86
200                     ;  or_if ra1_out _adcon1 15
201                     ; line_number = 87
202                     ;  or_if ra1_out _adcon0 0
203                     ; line_number = 88
204                     ; pin ra2_in, ra2_out, an2, vref_minus, ra2_unused
205                     ; line_number = 89
206                     ; pin_bindings pdip = 4
207                     ; line_number = 90
208                     ;  bind_to _porta@2
209                     ; line_number = 91
210                     ;  or_if ra2_in _trisa 4
211                     ; line_number = 92
212                     ;  or_if ra2_in _adcon1 15
213                     ; line_number = 93
214                     ;  or_if ra2_in _adcon0 0
215                     ; line_number = 94
216                     ;  or_if ra2_out _trisa 0
217                     ; line_number = 95
218                     ;  or_if ra2_out _adcon1 15
219                     ; line_number = 96
220                     ;  or_if ra2_out _adcon0 0
221                     ; line_number = 97
222                     ; pin ra3_in, ra3_out, an3, vrev_plus, ra3_unused
223                     ; line_number = 98
224                     ; pin_bindings pdip = 5
225                     ; line_number = 99
226                     ;  bind_to _porta@3
227                     ; line_number = 100
228                     ;  or_if ra3_in _trisa 8
229                     ; line_number = 101
230                     ;  or_if ra3_in _adcon1 15
231                     ; line_number = 102
232                     ;  or_if ra3_in _adcon0 0
233                     ; line_number = 103
234                     ;  or_if ra3_out _trisa 0
235                     ; line_number = 104
236                     ;  or_if ra3_out _adcon1 15
237                     ; line_number = 105
238                     ;  or_if ra3_out _adcon0 0
239                     ; line_number = 106
240                     ; pin ra4_in, ra4_out, t0cki, ra4_unused
241                     ; line_number = 107
242                     ; pin_bindings pdip = 6
243                     ; line_number = 108
244                     ;  bind_to _porta@4
245                     ; line_number = 109
246                     ;  or_if ra4_in _trisa 16
247                     ; line_number = 110
248                     ;  or_if ra4_in _adcon1 15
249                     ; line_number = 111
250                     ;  or_if ra4_in _adcon0 0
251                     ; line_number = 112
252                     ;  or_if ra4_out _trisa 0
253                     ; line_number = 113
254                     ;  or_if ra4_out _adcon1 15
255                     ; line_number = 114
256                     ;  or_if ra4_out _adcon0 0
257                     ; line_number = 115
258                     ; pin ra5_in, ra5_out, an4, ra5_unused
259                     ; line_number = 116
260                     ; pin_bindings pdip = 7
261                     ; line_number = 117
262                     ;  bind_to _porta@5
263                     ; line_number = 118
264                     ;  or_if ra5_in _trisa 32
265                     ; line_number = 119
266                     ;  or_if ra5_in _adcon1 15
267                     ; line_number = 120
268                     ;  or_if ra5_in _adcon0 0
269                     ; line_number = 121
270                     ;  or_if ra5_out _trisa 0
271                     ; line_number = 122
272                     ;  or_if ra5_out _adcon1 15
273                     ; line_number = 123
274                     ;  or_if ra5_out _adcon0 0
275                     ; line_number = 124
276                     ; pin re0_in, re0_out, rd, an5, re0_unused
277                     ; line_number = 125
278                     ; pin_bindings pdip = 8
279                     ; line_number = 126
280                     ;  bind_to _porte@0
281                     ; line_number = 127
282                     ;  or_if re0_in _trise 1
283                     ; line_number = 128
284                     ;  or_if re0_in _adcon1 15
285                     ; line_number = 129
286                     ;  or_if re0_in _adcon0 0
287                     ; line_number = 130
288                     ;  or_if re0_out _trise 0
289                     ; line_number = 131
290                     ;  or_if re0_out _adcon1 15
291                     ; line_number = 132
292                     ;  or_if re0_out _adcon0 0
293                     ; line_number = 133
294                     ; pin re1_in, re1_out, wr, an6, re1_unused
295                     ; line_number = 134
296                     ; pin_bindings pdip = 9
297                     ; line_number = 135
298                     ;  bind_to _porte@1
299                     ; line_number = 136
300                     ;  or_if re1_in _trise 2
301                     ; line_number = 137
302                     ;  or_if re1_in _adcon1 15
303                     ; line_number = 138
304                     ;  or_if re1_in _adcon0 0
305                     ; line_number = 139
306                     ;  or_if re1_out _trise 0
307                     ; line_number = 140
308                     ;  or_if re1_out _adcon1 15
309                     ; line_number = 141
310                     ;  or_if re1_out _adcon0 0
311                     ; line_number = 142
312                     ; pin re2_in, re2_out, cs, re2_unused
313                     ; line_number = 143
314                     ; pin_bindings pdip = 10
315                     ; line_number = 144
316                     ;  bind_to _porte@2
317                     ; line_number = 145
318                     ;  or_if re2_in _trise 4
319                     ; line_number = 146
320                     ;  or_if re2_in _adcon1 15
321                     ; line_number = 147
322                     ;  or_if re2_in _adcon0 0
323                     ; line_number = 148
324                     ;  or_if re2_out _trise 0
325                     ; line_number = 149
326                     ;  or_if re2_out _adcon1 15
327                     ; line_number = 150
328                     ;  or_if re2_out _adcon0 0
329                     ; line_number = 151
330                     ; pin vdd1, power_supply
331                     ; line_number = 152
332                     ; pin_bindings pdip = 11
333                     ; line_number = 153
334                     ; pin vss1, ground
335                     ; line_number = 154
336                     ; pin_bindings pdip = 12
337                     ; line_number = 155
338                     ; pin osc1, clki, ra7_in, ra7_out, ra7_unused
339                     ; line_number = 156
340                     ; pin_bindings pdip = 13
341                     ; line_number = 157
342                     ;  bind_to _porta@6
343                     ; line_number = 158
344                     ;  or_if ra7_in _trisa 128
345                     ; line_number = 159
346                     ;  or_if ra7_in _adcon1 15
347                     ; line_number = 160
348                     ;  or_if ra7_in _adcon0 0
349                     ; line_number = 161
350                     ;  or_if ra7_out _trisa 0
351                     ; line_number = 162
352                     ;  or_if ra7_out _adcon1 15
353                     ; line_number = 163
354                     ;  or_if ra7_out _adcon0 0
355                     ; line_number = 164
356                     ; pin osc2, clko, ra6_in, ra6_out, ra6_unused
357                     ; line_number = 165
358                     ; pin_bindings pdip = 14
359                     ; line_number = 166
360                     ;  bind_to _porta@6
361                     ; line_number = 167
362                     ;  or_if ra6_in _trisa 64
363                     ; line_number = 168
364                     ;  or_if ra6_in _adcon1 15
365                     ; line_number = 169
366                     ;  or_if ra6_in _adcon0 0
367                     ; line_number = 170
368                     ;  or_if ra6_out _trisa 0
369                     ; line_number = 171
370                     ;  or_if ra6_out _adcon1 15
371                     ; line_number = 172
372                     ;  or_if ra6_out _adcon0 0
373                     ; line_number = 173
374                     ; pin rc0_in, rc0_out, t1oso, t1cki, rc0_unused
375                     ; line_number = 174
376                     ; pin_bindings pdip = 15
377                     ; line_number = 175
378                     ;  bind_to _portc@0
379                     ; line_number = 176
380                     ;  or_if rc0_in _trisc 1
381                     ; line_number = 177
382                     ;  or_if rc0_in _adcon1 15
383                     ; line_number = 178
384                     ;  or_if rc0_in _adcon0 0
385                     ; line_number = 179
386                     ;  or_if rc0_out _trisc 0
387                     ; line_number = 180
388                     ;  or_if rc0_out _adcon1 15
389                     ; line_number = 181
390                     ;  or_if rc0_out _adcon0 0
391                     ; line_number = 182
392                     ; pin rc1_in, rc1_out, t1osi, ccp2a, rc1_unused
393                     ; line_number = 183
394                     ; pin_bindings pdip = 16
395                     ; line_number = 184
396                     ;  bind_to _portc@1
397                     ; line_number = 185
398                     ;  or_if rc1_in _trisc 2
399                     ; line_number = 186
400                     ;  or_if rc1_in _adcon1 15
401                     ; line_number = 187
402                     ;  or_if rc1_in _adcon0 0
403                     ; line_number = 188
404                     ;  or_if rc1_out _trisc 0
405                     ; line_number = 189
406                     ;  or_if rc1_out _adcon1 15
407                     ; line_number = 190
408                     ;  or_if rc1_out _adcon0 0
409                     ; line_number = 191
410                     ; pin rc2_in, rc2_out, ccp1, rc2_unused
411                     ; line_number = 192
412                     ; pin_bindings pdip = 17
413                     ; line_number = 193
414                     ;  bind_to _portc@2
415                     ; line_number = 194
416                     ;  or_if rc2_in _trisc 4
417                     ; line_number = 195
418                     ;  or_if rc2_in _adcon1 15
419                     ; line_number = 196
420                     ;  or_if rc2_in _adcon0 0
421                     ; line_number = 197
422                     ;  or_if rc2_out _trisc 0
423                     ; line_number = 198
424                     ;  or_if rc2_out _adcon1 15
425                     ; line_number = 199
426                     ;  or_if rc2_out _adcon0 0
427                     ; line_number = 200
428                     ; pin rc3_in, rc3_out, sck, scl, rc3_unused
429                     ; line_number = 201
430                     ; pin_bindings pdip = 18
431                     ; line_number = 202
432                     ;  bind_to _portc@3
433                     ; line_number = 203
434                     ;  or_if rc3_in _trisc 8
435                     ; line_number = 204
436                     ;  or_if rc3_in _adcon1 15
437                     ; line_number = 205
438                     ;  or_if rc3_in _adcon0 0
439                     ; line_number = 206
440                     ;  or_if rc3_out _trisc 0
441                     ; line_number = 207
442                     ;  or_if rc3_out _adcon1 15
443                     ; line_number = 208
444                     ;  or_if rc3_out _adcon0 0
445                     ; line_number = 209
446                     ; pin rd0_in, rd0_out, psp0, rd0_unused
447                     ; line_number = 210
448                     ; pin_bindings pdip = 19
449                     ; line_number = 211
450                     ;  bind_to _portd@0
451                     ; line_number = 212
452                     ;  or_if rd0_in _trisd 1
453                     ; line_number = 213
454                     ;  or_if rd0_in _adcon1 15
455                     ; line_number = 214
456                     ;  or_if rd0_in _adcon0 0
457                     ; line_number = 215
458                     ;  or_if rd0_out _trisd 0
459                     ; line_number = 216
460                     ;  or_if rd0_out _adcon1 15
461                     ; line_number = 217
462                     ;  or_if rd0_out _adcon0 0
463                     ; line_number = 218
464                     ; pin rd1_in, rd1_out, psp1, rd1_unused
465                     ; line_number = 219
466                     ; pin_bindings pdip = 20
467                     ; line_number = 220
468                     ;  bind_to _portd@1
469                     ; line_number = 221
470                     ;  or_if rd1_in _trisd 2
471                     ; line_number = 222
472                     ;  or_if rd1_in _adcon1 15
473                     ; line_number = 223
474                     ;  or_if rd1_in _adcon0 0
475                     ; line_number = 224
476                     ;  or_if rd1_out _trisd 0
477                     ; line_number = 225
478                     ;  or_if rd1_out _adcon1 15
479                     ; line_number = 226
480                     ;  or_if rd1_out _adcon0 0
481                     ; line_number = 227
482                     ; pin rd2_in, rd2_out, psp2, rd2_unused
483                     ; line_number = 228
484                     ; pin_bindings pdip = 21
485                     ; line_number = 229
486                     ;  bind_to _portd@2
487                     ; line_number = 230
488                     ;  or_if rd2_in _trisd 4
489                     ; line_number = 231
490                     ;  or_if rd2_in _adcon1 15
491                     ; line_number = 232
492                     ;  or_if rd2_in _adcon0 0
493                     ; line_number = 233
494                     ;  or_if rd2_out _trisd 0
495                     ; line_number = 234
496                     ;  or_if rd2_out _adcon1 15
497                     ; line_number = 235
498                     ;  or_if rd2_out _adcon0 0
499                     ; line_number = 236
500                     ; pin rd3_in, rd3_out, psp3, rd3_unused
501                     ; line_number = 237
502                     ; pin_bindings pdip = 22
503                     ; line_number = 238
504                     ;  bind_to _portd@3
505                     ; line_number = 239
506                     ;  or_if rd3_in _trisd 8
507                     ; line_number = 240
508                     ;  or_if rd3_in _adcon1 15
509                     ; line_number = 241
510                     ;  or_if rd3_in _adcon0 0
511                     ; line_number = 242
512                     ;  or_if rd3_out _trisd 0
513                     ; line_number = 243
514                     ;  or_if rd3_out _adcon1 15
515                     ; line_number = 244
516                     ;  or_if rd3_out _adcon0 0
517                     ; line_number = 245
518                     ; pin rc4_in, rc4_out, sdi, sda, rc4_unused
519                     ; line_number = 246
520                     ; pin_bindings pdip = 23
521                     ; line_number = 247
522                     ;  bind_to _portc@4
523                     ; line_number = 248
524                     ;  or_if rc4_in _trisc 16
525                     ; line_number = 249
526                     ;  or_if rc4_in _adcon1 15
527                     ; line_number = 250
528                     ;  or_if rc4_in _adcon0 0
529                     ; line_number = 251
530                     ;  or_if rc4_out _trisc 0
531                     ; line_number = 252
532                     ;  or_if rc4_out _adcon1 15
533                     ; line_number = 253
534                     ;  or_if rc4_out _adcon0 0
535                     ; line_number = 254
536                     ; pin rc5_in, rc5_out, sdo, rc5_unused
537                     ; line_number = 255
538                     ; pin_bindings pdip = 24
539                     ; line_number = 256
540                     ;  bind_to _portc@5
541                     ; line_number = 257
542                     ;  or_if rc5_in _trisc 32
543                     ; line_number = 258
544                     ;  or_if rc5_in _adcon1 15
545                     ; line_number = 259
546                     ;  or_if rc5_in _adcon0 0
547                     ; line_number = 260
548                     ;  or_if rc5_out _trisc 0
549                     ; line_number = 261
550                     ;  or_if rc5_out _adcon1 15
551                     ; line_number = 262
552                     ;  or_if rc5_out _adcon0 0
553                     ; line_number = 263
554                     ; pin rc6_in, rc6_out, tx, ck, rc6_unused
555                     ; line_number = 264
556                     ; pin_bindings pdip = 25
557                     ; line_number = 265
558                     ;  bind_to _portc@6
559                     ; line_number = 266
560                     ;  or_if rc6_in _trisc 64
561                     ; line_number = 267
562                     ;  or_if rc6_in _adcon1 15
563                     ; line_number = 268
564                     ;  or_if rc6_in _adcon0 0
565                     ; line_number = 269
566                     ;  or_if rc6_out _trisc 0
567                     ; line_number = 270
568                     ;  or_if rc6_out _adcon1 15
569                     ; line_number = 271
570                     ;  or_if rc6_out _adcon0 0
571                     ; line_number = 272
572                     ;  or_if tx _trisc 0
573                     ; line_number = 273
574                     ;  or_if tx _adcon1 15
575                     ; line_number = 274
576                     ;  or_if tx _adcon0 0
577                     ; line_number = 275
578                     ; pin rc7_in, rc7_out, rx, dt, rc7_unused
579                     ; line_number = 276
580                     ; pin_bindings pdip = 26
581                     ; line_number = 277
582                     ;  bind_to _portc@7
583                     ; line_number = 278
584                     ;  or_if rc7_in _trisc 128
585                     ; line_number = 279
586                     ;  or_if rc7_in _adcon1 15
587                     ; line_number = 280
588                     ;  or_if rc7_in _adcon0 0
589                     ; line_number = 281
590                     ;  or_if rx _trisc 128
591                     ; line_number = 282
592                     ;  or_if rx _adcon1 15
593                     ; line_number = 283
594                     ;  or_if rx _adcon0 0
595                     ; line_number = 284
596                     ;  or_if rc7_out _trisc 0
597                     ; line_number = 285
598                     ;  or_if rc7_out _adcon1 15
599                     ; line_number = 286
600                     ;  or_if rc7_out _adcon0 0
601                     ; line_number = 287
602                     ; pin rd4_in, rd4_out, psp4, rd4_unused
603                     ; line_number = 288
604                     ; pin_bindings pdip = 27
605                     ; line_number = 289
606                     ;  bind_to _portd@4
607                     ; line_number = 290
608                     ;  or_if rd4_in _trisd 16
609                     ; line_number = 291
610                     ;  or_if rd4_in _adcon1 15
611                     ; line_number = 292
612                     ;  or_if rd4_in _adcon0 0
613                     ; line_number = 293
614                     ;  or_if rd4_out _trisd 0
615                     ; line_number = 294
616                     ;  or_if rd4_out _adcon1 15
617                     ; line_number = 295
618                     ;  or_if rd4_out _adcon0 0
619                     ; line_number = 296
620                     ; pin rd5_in, rd5_out, psp5, rd5_unused
621                     ; line_number = 297
622                     ; pin_bindings pdip = 28
623                     ; line_number = 298
624                     ;  bind_to _portd@5
625                     ; line_number = 299
626                     ;  or_if rd5_in _trisd 32
627                     ; line_number = 300
628                     ;  or_if rd5_in _adcon1 15
629                     ; line_number = 301
630                     ;  or_if rd5_in _adcon0 0
631                     ; line_number = 302
632                     ;  or_if rd5_out _trisd 0
633                     ; line_number = 303
634                     ;  or_if rd5_out _adcon1 15
635                     ; line_number = 304
636                     ;  or_if rd5_out _adcon0 0
637                     ; line_number = 305
638                     ; pin rd6_in, rd6_out, psp6, rd6_unused
639                     ; line_number = 306
640                     ; pin_bindings pdip = 29
641                     ; line_number = 307
642                     ;  bind_to _portd@6
643                     ; line_number = 308
644                     ;  or_if rd6_in _trisd 64
645                     ; line_number = 309
646                     ;  or_if rd6_in _adcon1 15
647                     ; line_number = 310
648                     ;  or_if rd6_in _adcon0 0
649                     ; line_number = 311
650                     ;  or_if rd6_out _trisd 0
651                     ; line_number = 312
652                     ;  or_if rd6_out _adcon1 15
653                     ; line_number = 313
654                     ;  or_if rd6_out _adcon0 0
655                     ; line_number = 314
656                     ; pin rd7_in, rd7_out, psp7, rd7_unused
657                     ; line_number = 315
658                     ; pin_bindings pdip = 30
659                     ; line_number = 316
660                     ;  bind_to _portd@7
661                     ; line_number = 317
662                     ;  or_if rd7_in _trisd 128
663                     ; line_number = 318
664                     ;  or_if rd7_in _adcon1 15
665                     ; line_number = 319
666                     ;  or_if rd7_in _adcon0 0
667                     ; line_number = 320
668                     ;  or_if rd7_out _trisd 0
669                     ; line_number = 321
670                     ;  or_if rd7_out _adcon1 15
671                     ; line_number = 322
672                     ;  or_if rd7_out _adcon0 0
673                     ; line_number = 323
674                     ; pin vss2, ground2
675                     ; line_number = 324
676                     ; pin_bindings pdip = 31
677                     ; line_number = 325
678                     ; pin vdd2, power_supply2
679                     ; line_number = 326
680                     ; pin_bindings pdip = 32
681                     ; line_number = 327
682                     ; pin rb0_in, rb0_out, int, an12, rb0_unused
683                     ; line_number = 328
684                     ; pin_bindings pdip = 33
685                     ; line_number = 329
686                     ;  bind_to _portb@0
687                     ; line_number = 330
688                     ;  or_if rb0_in _trisb 1
689                     ; line_number = 331
690                     ;  or_if rb0_in _adcon1 15
691                     ; line_number = 332
692                     ;  or_if rb0_in _adcon0 0
693                     ; line_number = 333
694                     ;  or_if rb0_out _trisb 0
695                     ; line_number = 334
696                     ;  or_if rb0_out _adcon1 15
697                     ; line_number = 335
698                     ;  or_if rb0_out _adcon0 0
699                     ; line_number = 336
700                     ; pin rb1_in, rb1_out, an10, rb1_unused
701                     ; line_number = 337
702                     ; pin_bindings pdip = 34
703                     ; line_number = 338
704                     ;  bind_to _portb@1
705                     ; line_number = 339
706                     ;  or_if rb1_in _trisb 2
707                     ; line_number = 340
708                     ;  or_if rb1_in _adcon1 15
709                     ; line_number = 341
710                     ;  or_if rb1_in _adcon0 0
711                     ; line_number = 342
712                     ;  or_if rb1_out _trisb 0
713                     ; line_number = 343
714                     ;  or_if rb1_out _adcon1 15
715                     ; line_number = 344
716                     ;  or_if rb1_out _adcon0 0
717                     ; line_number = 345
718                     ; pin rb2_in, rb2_out, an8, rb2_unused
719                     ; line_number = 346
720                     ; pin_bindings pdip = 35
721                     ; line_number = 347
722                     ;  bind_to _portb@2
723                     ; line_number = 348
724                     ;  or_if rb2_in _trisb 4
725                     ; line_number = 349
726                     ;  or_if rb2_in _adcon1 15
727                     ; line_number = 350
728                     ;  or_if rb2_in _adcon0 0
729                     ; line_number = 351
730                     ;  or_if rb2_out _trisb 0
731                     ; line_number = 352
732                     ;  or_if rb2_out _adcon1 15
733                     ; line_number = 353
734                     ;  or_if rb2_out _adcon0 0
735                     ; line_number = 354
736                     ; pin rb3_in, rb3_out, ccp2b, an9, rb3_unused
737                     ; line_number = 355
738                     ; pin_bindings pdip = 36
739                     ; line_number = 356
740                     ;  bind_to _portb@3
741                     ; line_number = 357
742                     ;  or_if rb3_in _trisb 8
743                     ; line_number = 358
744                     ;  or_if rb3_in _adcon1 15
745                     ; line_number = 359
746                     ;  or_if rb3_out _trisb 0
747                     ; line_number = 360
748                     ;  or_if rb3_out _adcon1 15
749                     ; line_number = 361
750                     ; pin rb4_in, rb4_out, an11, rb4_unused
751                     ; line_number = 362
752                     ; pin_bindings pdip = 37
753                     ; line_number = 363
754                     ;  bind_to _portb@4
755                     ; line_number = 364
756                     ;  or_if rb4_in _trisb 16
757                     ; line_number = 365
758                     ;  or_if rb4_in _adcon1 15
759                     ; line_number = 366
760                     ;  or_if rb4_in _adcon0 0
761                     ; line_number = 367
762                     ;  or_if rb4_out _trisb 0
763                     ; line_number = 368
764                     ;  or_if rb4_out _adcon1 15
765                     ; line_number = 369
766                     ;  or_if rb4_out _adcon0 0
767                     ; line_number = 370
768                     ; pin rb5_in, rb5_out, an13, ccp3, rb5_unused
769                     ; line_number = 371
770                     ; pin_bindings pdip = 38
771                     ; line_number = 372
772                     ;  bind_to _portb@5
773                     ; line_number = 373
774                     ;  or_if rb5_in _trisb 32
775                     ; line_number = 374
776                     ;  or_if rb5_in _adcon1 15
777                     ; line_number = 375
778                     ;  or_if rb5_in _adcon0 0
779                     ; line_number = 376
780                     ;  or_if rb5_out _trisb 0
781                     ; line_number = 377
782                     ;  or_if rb5_out _adcon1 15
783                     ; line_number = 378
784                     ;  or_if rb5_out _adcon0 0
785                     ; line_number = 379
786                     ; pin rb6_in, rb6_out, pgc, rb6_unused
787                     ; line_number = 380
788                     ; pin_bindings pdip = 39
789                     ; line_number = 381
790                     ;  bind_to _portb@6
791                     ; line_number = 382
792                     ;  or_if rb6_in _trisb 64
793                     ; line_number = 383
794                     ;  or_if rb6_in _adcon1 15
795                     ; line_number = 384
796                     ;  or_if rb6_in _adcon0 0
797                     ; line_number = 385
798                     ;  or_if rb6_out _trisb 0
799                     ; line_number = 386
800                     ;  or_if rb6_out _adcon1 15
801                     ; line_number = 387
802                     ;  or_if rb6_out _adcon0 0
803                     ; line_number = 388
804                     ; pin rb7_in, rb7_out, pgd, rb7_unused
805                     ; line_number = 389
806                     ; pin_bindings pdip = 40
807                     ; line_number = 390
808                     ;  bind_to _portb@7
809                     ; line_number = 391
810                     ;  or_if rb7_in _trisb 128
811                     ; line_number = 392
812                     ;  or_if rb7_in _adcon1 15
813                     ; line_number = 393
814                     ;  or_if rb7_in _adcon0 0
815                     ; line_number = 394
816                     ;  or_if rb7_out _trisb 0
817                     ; line_number = 395
818                     ;  or_if rb7_out _adcon1 15
819                     ; line_number = 396
820                     ;  or_if rb7_out _adcon0 0
821             
822                     ; line_number = 398
823                     ; library _pic16f7x7 entered
824             
825                     ; # Copyright (c) 2004-2006 by Wayne C. Gramlich
826                     ; # All rights reserved.
827             
828                     ; buffer = '_pic16f7x7'
829                     ; line_number = 6
830                     ; library _standard entered
831             
832                     ; # Copyright (c) 2006 by Wayne C. Gramlich
833                     ; # All rights reserved.
834             
835                     ; # Standard definition for uCL:
836             
837                     ; buffer = '_standard'
838                     ; line_number = 8
839                     ; constant _true = (1 = 1)
840  00000001 = _true equ 1
841                     ; line_number = 9
842                     ; constant _false = (0 != 0)
843  00000000 = _false equ 0
844             
845             
846                     ; buffer = '_pic16f7x7'
847                     ; line_number = 6
848                     ; library _standard exited
849             
850                     ; # Common declarations for PIC16F7x7 series microcontrollers:
851             
852                     ; # Register and pin definitions:
853             
854                     ; # Bank 0:
855             
856                     ; line_number = 14
857                     ; register _indf = 
858  00000000 = _indf equ 0
859             
860                     ; line_number = 16
861                     ; register _tmr0 = 
862  00000001 = _tmr0 equ 1
863             
864                     ; line_number = 18
865                     ; register _pcl = 
866  00000002 = _pcl equ 2
867             
868                     ; line_number = 20
869                     ; register _status = 
870  00000003 = _status equ 3
871                     ; line_number = 21
872                     ; bind _irp = _status@7
873  00000003 = _irp___byte equ _status
874  00000007 = _irp___bit equ 7
875                     ; line_number = 22
876                     ; bind _rp1 = _status@6
877  00000003 = _rp1___byte equ _status
878  00000006 = _rp1___bit equ 6
879                     ; line_number = 23
880                     ; bind _rp0 = _status@5
881  00000003 = _rp0___byte equ _status
882  00000005 = _rp0___bit equ 5
883                     ; line_number = 24
884                     ; bind _to = _status@4
885  00000003 = _to___byte equ _status
886  00000004 = _to___bit equ 4
887                     ; line_number = 25
888                     ; bind _pd = _status@3
889  00000003 = _pd___byte equ _status
890  00000003 = _pd___bit equ 3
891                     ; line_number = 26
892                     ; bind _z = _status@2
893  00000003 = _z___byte equ _status
894  00000002 = _z___bit equ 2
895                     ; line_number = 27
896                     ; bind _dc = _status@1
897  00000003 = _dc___byte equ _status
898  00000001 = _dc___bit equ 1
899                     ; line_number = 28
900                     ; bind _c = _status@0
901  00000003 = _c___byte equ _status
902  00000000 = _c___bit equ 0
903             
904                     ; line_number = 30
905                     ; register _fsr = 
906  00000004 = _fsr equ 4
907             
908                     ; line_number = 32
909                     ; register _porta = 
910  00000005 = _porta equ 5
911             
912                     ; line_number = 34
913                     ; register _portb = 
914  00000006 = _portb equ 6
915             
916                     ; line_number = 36
917                     ; register _portc = 
918  00000007 = _portc equ 7
919             
920                     ; line_number = 38
921                     ; register _pclath = 
922  0000000a = _pclath equ 10
923             
924                     ; line_number = 40
925                     ; register _intcon = 
926  0000000b = _intcon equ 11
927                     ; line_number = 41
928                     ; bind _gie = _intcon@7
929  0000000b = _gie___byte equ _intcon
930  00000007 = _gie___bit equ 7
931                     ; line_number = 42
932                     ; bind _peie = _intcon@6
933  0000000b = _peie___byte equ _intcon
934  00000006 = _peie___bit equ 6
935                     ; line_number = 43
936                     ; bind _tmr0ie = _intcon@5
937  0000000b = _tmr0ie___byte equ _intcon
938  00000005 = _tmr0ie___bit equ 5
939                     ; line_number = 44
940                     ; bind _int0ie = _intcon@4
941  0000000b = _int0ie___byte equ _intcon
942  00000004 = _int0ie___bit equ 4
943                     ; line_number = 45
944                     ; bind _rbie = _intcon@3
945  0000000b = _rbie___byte equ _intcon
946  00000003 = _rbie___bit equ 3
947                     ; line_number = 46
948                     ; bind _tmr0if = _intcon@2
949  0000000b = _tmr0if___byte equ _intcon
950  00000002 = _tmr0if___bit equ 2
951                     ; line_number = 47
952                     ; bind _int0if = _intcon@1
953  0000000b = _int0if___byte equ _intcon
954  00000001 = _int0if___bit equ 1
955                     ; line_number = 48
956                     ; bind _rbif = _intcon@0
957  0000000b = _rbif___byte equ _intcon
958  00000000 = _rbif___bit equ 0
959             
960                     ; line_number = 50
961                     ; register _pir1 = 
962  0000000c = _pir1 equ 12
963                     ; line_number = 51
964                     ; bind _pspif = _pir1@7
965  0000000c = _pspif___byte equ _pir1
966  00000007 = _pspif___bit equ 7
967                     ; line_number = 52
968                     ; bind _adif = _pir1@6
969  0000000c = _adif___byte equ _pir1
970  00000006 = _adif___bit equ 6
971                     ; line_number = 53
972                     ; bind _rcif = _pir1@5
973  0000000c = _rcif___byte equ _pir1
974  00000005 = _rcif___bit equ 5
975                     ; line_number = 54
976                     ; bind _txif = _pir1@4
977  0000000c = _txif___byte equ _pir1
978  00000004 = _txif___bit equ 4
979                     ; line_number = 55
980                     ; bind _sspif = _pir1@3
981  0000000c = _sspif___byte equ _pir1
982  00000003 = _sspif___bit equ 3
983                     ; line_number = 56
984                     ; bind _ccp1if = _pir1@2
985  0000000c = _ccp1if___byte equ _pir1
986  00000002 = _ccp1if___bit equ 2
987                     ; line_number = 57
988                     ; bind _tmr2if = _pir1@1
989  0000000c = _tmr2if___byte equ _pir1
990  00000001 = _tmr2if___bit equ 1
991                     ; line_number = 58
992                     ; bind _tmr1if = _pir1@0
993  0000000c = _tmr1if___byte equ _pir1
994  00000000 = _tmr1if___bit equ 0
995             
996                     ; line_number = 60
997                     ; register _pir2 = 
998  0000000d = _pir2 equ 13
999                     ; line_number = 61
1000                    ; bind _osif = _pir2@7
1001 0000000d = _osif___byte equ _pir2
1002 00000007 = _osif___bit equ 7
1003                    ; line_number = 62
1004                    ; bind _cmif = _pir2@6
1005 0000000d = _cmif___byte equ _pir2
1006 00000006 = _cmif___bit equ 6
1007                    ; line_number = 63
1008                    ; bind _lvif = _pir2@5
1009 0000000d = _lvif___byte equ _pir2
1010 00000005 = _lvif___bit equ 5
1011                    ; line_number = 64
1012                    ; bind _bclif = _pir2@3
1013 0000000d = _bclif___byte equ _pir2
1014 00000003 = _bclif___bit equ 3
1015                    ; line_number = 65
1016                    ; bind _ccp3if = _pir2@1
1017 0000000d = _ccp3if___byte equ _pir2
1018 00000001 = _ccp3if___bit equ 1
1019                    ; line_number = 66
1020                    ; bind _ccp2if = _pir2@0
1021 0000000d = _ccp2if___byte equ _pir2
1022 00000000 = _ccp2if___bit equ 0
1023            
1024                    ; line_number = 68
1025                    ; register _tmr1l = 
1026 0000000e = _tmr1l equ 14
1027            
1028                    ; line_number = 70
1029                    ; register _tmr1h = 
1030 0000000f = _tmr1h equ 15
1031            
1032                    ; line_number = 72
1033                    ; register _t1con = 
1034 00000010 = _t1con equ 16
1035                    ; line_number = 73
1036                    ; bind _t1run = _t1con@6
1037 00000010 = _t1run___byte equ _t1con
1038 00000006 = _t1run___bit equ 6
1039                    ; line_number = 74
1040                    ; bind _t1ckps1 = _t1con@5
1041 00000010 = _t1ckps1___byte equ _t1con
1042 00000005 = _t1ckps1___bit equ 5
1043                    ; line_number = 75
1044                    ; bind _t1ckps0 = _t1con@4
1045 00000010 = _t1ckps0___byte equ _t1con
1046 00000004 = _t1ckps0___bit equ 4
1047                    ; line_number = 76
1048                    ; bind _t1oscen = _t1con@3
1049 00000010 = _t1oscen___byte equ _t1con
1050 00000003 = _t1oscen___bit equ 3
1051                    ; line_number = 77
1052                    ; bind _t1sync = _t1con@2
1053 00000010 = _t1sync___byte equ _t1con
1054 00000002 = _t1sync___bit equ 2
1055                    ; line_number = 78
1056                    ; bind _tmr1cs = _t1con@1
1057 00000010 = _tmr1cs___byte equ _t1con
1058 00000001 = _tmr1cs___bit equ 1
1059                    ; line_number = 79
1060                    ; bind _tmr1on = _t1con@0
1061 00000010 = _tmr1on___byte equ _t1con
1062 00000000 = _tmr1on___bit equ 0
1063            
1064                    ; line_number = 81
1065                    ; register _tmr2 = 
1066 00000011 = _tmr2 equ 17
1067            
1068                    ; line_number = 83
1069                    ; register _t2con = 
1070 00000012 = _t2con equ 18
1071                    ; line_number = 84
1072                    ; bind _toutps3 = _t2con@6
1073 00000012 = _toutps3___byte equ _t2con
1074 00000006 = _toutps3___bit equ 6
1075                    ; line_number = 85
1076                    ; bind _toutps2 = _t2con@5
1077 00000012 = _toutps2___byte equ _t2con
1078 00000005 = _toutps2___bit equ 5
1079                    ; line_number = 86
1080                    ; bind _toutps1 = _t2con@4
1081 00000012 = _toutps1___byte equ _t2con
1082 00000004 = _toutps1___bit equ 4
1083                    ; line_number = 87
1084                    ; bind _toutps0 = _t2con@3
1085 00000012 = _toutps0___byte equ _t2con
1086 00000003 = _toutps0___bit equ 3
1087                    ; line_number = 88
1088                    ; bind _tmr2on = _t2con@2
1089 00000012 = _tmr2on___byte equ _t2con
1090 00000002 = _tmr2on___bit equ 2
1091                    ; line_number = 89
1092                    ; bind _t2ckps1 = _t2con@1
1093 00000012 = _t2ckps1___byte equ _t2con
1094 00000001 = _t2ckps1___bit equ 1
1095                    ; line_number = 90
1096                    ; bind _t2ckps0 = _t2con@0
1097 00000012 = _t2ckps0___byte equ _t2con
1098 00000000 = _t2ckps0___bit equ 0
1099            
1100                    ; line_number = 92
1101                    ; register _sspbuf = 
1102 00000013 = _sspbuf equ 19
1103            
1104                    ; line_number = 94
1105                    ; register _sspcon = 
1106 00000014 = _sspcon equ 20
1107                    ; line_number = 95
1108                    ; bind _wcol = _sspcon@7
1109 00000014 = _wcol___byte equ _sspcon
1110 00000007 = _wcol___bit equ 7
1111                    ; line_number = 96
1112                    ; bind _sspov = _sspcon@6
1113 00000014 = _sspov___byte equ _sspcon
1114 00000006 = _sspov___bit equ 6
1115                    ; line_number = 97
1116                    ; bind _sspen = _sspcon@5
1117 00000014 = _sspen___byte equ _sspcon
1118 00000005 = _sspen___bit equ 5
1119                    ; line_number = 98
1120                    ; bind _ckp = _sspcon@4
1121 00000014 = _ckp___byte equ _sspcon
1122 00000004 = _ckp___bit equ 4
1123                    ; line_number = 99
1124                    ; bind _sspm3 = _sspcon@3
1125 00000014 = _sspm3___byte equ _sspcon
1126 00000003 = _sspm3___bit equ 3
1127                    ; line_number = 100
1128                    ; bind _sspm2 = _sspcon@2
1129 00000014 = _sspm2___byte equ _sspcon
1130 00000002 = _sspm2___bit equ 2
1131                    ; line_number = 101
1132                    ; bind _sspm1 = _sspcon@1
1133 00000014 = _sspm1___byte equ _sspcon
1134 00000001 = _sspm1___bit equ 1
1135                    ; line_number = 102
1136                    ; bind _sspm0 = _sspcon@0
1137 00000014 = _sspm0___byte equ _sspcon
1138 00000000 = _sspm0___bit equ 0
1139            
1140                    ; line_number = 104
1141                    ; register _ccpr1l = 
1142 00000015 = _ccpr1l equ 21
1143            
1144                    ; line_number = 106
1145                    ; register _ccpr1h = 
1146 00000016 = _ccpr1h equ 22
1147            
1148                    ; line_number = 108
1149                    ; register _ccp1con = 
1150 00000017 = _ccp1con equ 23
1151                    ; line_number = 109
1152                    ; bind _ccp1x = _ccp1con@5
1153 00000017 = _ccp1x___byte equ _ccp1con
1154 00000005 = _ccp1x___bit equ 5
1155                    ; line_number = 110
1156                    ; bind _ccp1y = _ccp1con@4
1157 00000017 = _ccp1y___byte equ _ccp1con
1158 00000004 = _ccp1y___bit equ 4
1159                    ; line_number = 111
1160                    ; bind _ccp1m3 = _ccp1con@3
1161 00000017 = _ccp1m3___byte equ _ccp1con
1162 00000003 = _ccp1m3___bit equ 3
1163                    ; line_number = 112
1164                    ; bind _ccp1m2 = _ccp1con@2
1165 00000017 = _ccp1m2___byte equ _ccp1con
1166 00000002 = _ccp1m2___bit equ 2
1167                    ; line_number = 113
1168                    ; bind _ccp1m1 = _ccp1con@1
1169 00000017 = _ccp1m1___byte equ _ccp1con
1170 00000001 = _ccp1m1___bit equ 1
1171                    ; line_number = 114
1172                    ; bind _ccp1m0 = _ccp1con@0
1173 00000017 = _ccp1m0___byte equ _ccp1con
1174 00000000 = _ccp1m0___bit equ 0
1175            
1176                    ; line_number = 116
1177                    ; register _rcsta = 
1178 00000018 = _rcsta equ 24
1179                    ; line_number = 117
1180                    ; bind _spen = _rcsta@7
1181 00000018 = _spen___byte equ _rcsta
1182 00000007 = _spen___bit equ 7
1183                    ; line_number = 118
1184                    ; bind _rx9 = _rcsta@6
1185 00000018 = _rx9___byte equ _rcsta
1186 00000006 = _rx9___bit equ 6
1187                    ; line_number = 119
1188                    ; bind _sren = _rcsta@5
1189 00000018 = _sren___byte equ _rcsta
1190 00000005 = _sren___bit equ 5
1191                    ; line_number = 120
1192                    ; bind _cren = _rcsta@4
1193 00000018 = _cren___byte equ _rcsta
1194 00000004 = _cren___bit equ 4
1195                    ; line_number = 121
1196                    ; bind _adden = _rcsta@3
1197 00000018 = _adden___byte equ _rcsta
1198 00000003 = _adden___bit equ 3
1199                    ; line_number = 122
1200                    ; bind _ferr = _rcsta@2
1201 00000018 = _ferr___byte equ _rcsta
1202 00000002 = _ferr___bit equ 2
1203                    ; line_number = 123
1204                    ; bind _oerr = _rcsta@1
1205 00000018 = _oerr___byte equ _rcsta
1206 00000001 = _oerr___bit equ 1
1207                    ; line_number = 124
1208                    ; bind _rx9d = _rcsta@0
1209 00000018 = _rx9d___byte equ _rcsta
1210 00000000 = _rx9d___bit equ 0
1211            
1212                    ; line_number = 126
1213                    ; register _txreg = 
1214 00000019 = _txreg equ 25
1215            
1216                    ; line_number = 128
1217                    ; register _rcreg = 
1218 0000001a = _rcreg equ 26
1219            
1220                    ; line_number = 130
1221                    ; register _ccpr2l = 
1222 0000001b = _ccpr2l equ 27
1223            
1224                    ; line_number = 132
1225                    ; register _ccpr2h = 
1226 0000001c = _ccpr2h equ 28
1227            
1228                    ; line_number = 134
1229                    ; register _ccp2con = 
1230 0000001d = _ccp2con equ 29
1231                    ; line_number = 135
1232                    ; bind _ccp2x = _ccp2con@5
1233 0000001d = _ccp2x___byte equ _ccp2con
1234 00000005 = _ccp2x___bit equ 5
1235                    ; line_number = 136
1236                    ; bind _ccp2y = _ccp2con@4
1237 0000001d = _ccp2y___byte equ _ccp2con
1238 00000004 = _ccp2y___bit equ 4
1239                    ; line_number = 137
1240                    ; bind _ccp2m3 = _ccp2con@3
1241 0000001d = _ccp2m3___byte equ _ccp2con
1242 00000003 = _ccp2m3___bit equ 3
1243                    ; line_number = 138
1244                    ; bind _ccp2m2 = _ccp2con@2
1245 0000001d = _ccp2m2___byte equ _ccp2con
1246 00000002 = _ccp2m2___bit equ 2
1247                    ; line_number = 139
1248                    ; bind _ccp2m1 = _ccp2con@1
1249 0000001d = _ccp2m1___byte equ _ccp2con
1250 00000001 = _ccp2m1___bit equ 1
1251                    ; line_number = 140
1252                    ; bind _ccp2m0 = _ccp2con@0
1253 0000001d = _ccp2m0___byte equ _ccp2con
1254 00000000 = _ccp2m0___bit equ 0
1255            
1256                    ; line_number = 142
1257                    ; register _adresh = 
1258 0000001e = _adresh equ 30
1259            
1260                    ; line_number = 144
1261                    ; register _adcon0 = 
1262 0000001f = _adcon0 equ 31
1263                    ; line_number = 145
1264                    ; bind _adcs1 = _adcon0@7
1265 0000001f = _adcs1___byte equ _adcon0
1266 00000007 = _adcs1___bit equ 7
1267                    ; line_number = 146
1268                    ; bind _adcs0 = _adcon0@6
1269 0000001f = _adcs0___byte equ _adcon0
1270 00000006 = _adcs0___bit equ 6
1271                    ; line_number = 147
1272                    ; bind _chs2 = _adcon0@5
1273 0000001f = _chs2___byte equ _adcon0
1274 00000005 = _chs2___bit equ 5
1275                    ; line_number = 148
1276                    ; bind _chs1 = _adcon0@4
1277 0000001f = _chs1___byte equ _adcon0
1278 00000004 = _chs1___bit equ 4
1279                    ; line_number = 149
1280                    ; bind _chs0 = _adcon0@3
1281 0000001f = _chs0___byte equ _adcon0
1282 00000003 = _chs0___bit equ 3
1283                    ; line_number = 150
1284                    ; bind _go_done = _adcon0@2
1285 0000001f = _go_done___byte equ _adcon0
1286 00000002 = _go_done___bit equ 2
1287                    ; line_number = 151
1288                    ; bind _adon = _adcon0@0
1289 0000001f = _adon___byte equ _adcon0
1290 00000000 = _adon___bit equ 0
1291            
1292                    ; # Bank 1:
1293            
1294                    ; line_number = 155
1295                    ; register _option_reg = 
1296 00000081 = _option_reg equ 129
1297                    ; line_number = 156
1298                    ; bind _rbpu = _option_reg@7
1299 00000081 = _rbpu___byte equ _option_reg
1300 00000007 = _rbpu___bit equ 7
1301                    ; line_number = 157
1302                    ; bind _intedg = _option_reg@6
1303 00000081 = _intedg___byte equ _option_reg
1304 00000006 = _intedg___bit equ 6
1305                    ; line_number = 158
1306                    ; bind _t0cs = _option_reg@5
1307 00000081 = _t0cs___byte equ _option_reg
1308 00000005 = _t0cs___bit equ 5
1309                    ; line_number = 159
1310                    ; bind _t0se = _option_reg@4
1311 00000081 = _t0se___byte equ _option_reg
1312 00000004 = _t0se___bit equ 4
1313                    ; line_number = 160
1314                    ; bind _psa = _option_reg@3
1315 00000081 = _psa___byte equ _option_reg
1316 00000003 = _psa___bit equ 3
1317                    ; line_number = 161
1318                    ; bind _ps2 = _option_reg@2
1319 00000081 = _ps2___byte equ _option_reg
1320 00000002 = _ps2___bit equ 2
1321                    ; line_number = 162
1322                    ; bind _ps1 = _option_reg@1
1323 00000081 = _ps1___byte equ _option_reg
1324 00000001 = _ps1___bit equ 1
1325                    ; line_number = 163
1326                    ; bind _ps0 = _option_reg@0
1327 00000081 = _ps0___byte equ _option_reg
1328 00000000 = _ps0___bit equ 0
1329            
1330                    ; line_number = 165
1331                    ; register _trisa = 
1332 00000085 = _trisa equ 133
1333                    ; line_number = 166
1334                    ; bind _trisa7 = _trisa@7
1335 00000085 = _trisa7___byte equ _trisa
1336 00000007 = _trisa7___bit equ 7
1337                    ; line_number = 167
1338                    ; bind _trisa6 = _trisa@6
1339 00000085 = _trisa6___byte equ _trisa
1340 00000006 = _trisa6___bit equ 6
1341                    ; line_number = 168
1342                    ; bind _trisa5 = _trisa@5
1343 00000085 = _trisa5___byte equ _trisa
1344 00000005 = _trisa5___bit equ 5
1345                    ; line_number = 169
1346                    ; bind _trisa4 = _trisa@4
1347 00000085 = _trisa4___byte equ _trisa
1348 00000004 = _trisa4___bit equ 4
1349                    ; line_number = 170
1350                    ; bind _trisa3 = _trisa@3
1351 00000085 = _trisa3___byte equ _trisa
1352 00000003 = _trisa3___bit equ 3
1353                    ; line_number = 171
1354                    ; bind _trisa2 = _trisa@2
1355 00000085 = _trisa2___byte equ _trisa
1356 00000002 = _trisa2___bit equ 2
1357                    ; line_number = 172
1358                    ; bind _trisa1 = _trisa@1
1359 00000085 = _trisa1___byte equ _trisa
1360 00000001 = _trisa1___bit equ 1
1361                    ; line_number = 173
1362                    ; bind _trisa0 = _trisa@0
1363 00000085 = _trisa0___byte equ _trisa
1364 00000000 = _trisa0___bit equ 0
1365            
1366                    ; line_number = 175
1367                    ; register _trisb = 
1368 00000086 = _trisb equ 134
1369            
1370                    ; line_number = 177
1371                    ; register _trisc = 
1372 00000087 = _trisc equ 135
1373                    ; line_number = 178
1374                    ; bind _trisc7 = _trisc@7
1375 00000087 = _trisc7___byte equ _trisc
1376 00000007 = _trisc7___bit equ 7
1377                    ; line_number = 179
1378                    ; bind _trisc6 = _trisc@6
1379 00000087 = _trisc6___byte equ _trisc
1380 00000006 = _trisc6___bit equ 6
1381                    ; line_number = 180
1382                    ; bind _trisc5 = _trisc@5
1383 00000087 = _trisc5___byte equ _trisc
1384 00000005 = _trisc5___bit equ 5
1385                    ; line_number = 181
1386                    ; bind _trisc4 = _trisc@4
1387 00000087 = _trisc4___byte equ _trisc
1388 00000004 = _trisc4___bit equ 4
1389                    ; line_number = 182
1390                    ; bind _trisc3 = _trisc@3
1391 00000087 = _trisc3___byte equ _trisc
1392 00000003 = _trisc3___bit equ 3
1393                    ; line_number = 183
1394                    ; bind _trisc2 = _trisc@2
1395 00000087 = _trisc2___byte equ _trisc
1396 00000002 = _trisc2___bit equ 2
1397                    ; line_number = 184
1398                    ; bind _trisc1 = _trisc@1
1399 00000087 = _trisc1___byte equ _trisc
1400 00000001 = _trisc1___bit equ 1
1401                    ; line_number = 185
1402                    ; bind _trisc0 = _trisc@0
1403 00000087 = _trisc0___byte equ _trisc
1404 00000000 = _trisc0___bit equ 0
1405            
1406                    ; line_number = 187
1407                    ; register _pie1 = 
1408 0000008c = _pie1 equ 140
1409                    ; line_number = 188
1410                    ; bind _pspie = _pie1@7
1411 0000008c = _pspie___byte equ _pie1
1412 00000007 = _pspie___bit equ 7
1413                    ; line_number = 189
1414                    ; bind _adie = _pie1@6
1415 0000008c = _adie___byte equ _pie1
1416 00000006 = _adie___bit equ 6
1417                    ; line_number = 190
1418                    ; bind _rcie = _pie1@5
1419 0000008c = _rcie___byte equ _pie1
1420 00000005 = _rcie___bit equ 5
1421                    ; line_number = 191
1422                    ; bind _txie = _pie1@4
1423 0000008c = _txie___byte equ _pie1
1424 00000004 = _txie___bit equ 4
1425                    ; line_number = 192
1426                    ; bind _sspie = _pie1@3
1427 0000008c = _sspie___byte equ _pie1
1428 00000003 = _sspie___bit equ 3
1429                    ; line_number = 193
1430                    ; bind _ccp1ie = _pie1@2
1431 0000008c = _ccp1ie___byte equ _pie1
1432 00000002 = _ccp1ie___bit equ 2
1433                    ; line_number = 194
1434                    ; bind _tmr2ie = _pie1@1
1435 0000008c = _tmr2ie___byte equ _pie1
1436 00000001 = _tmr2ie___bit equ 1
1437                    ; line_number = 195
1438                    ; bind _tmr1ie = _pie1@0
1439 0000008c = _tmr1ie___byte equ _pie1
1440 00000000 = _tmr1ie___bit equ 0
1441            
1442                    ; line_number = 197
1443                    ; register _pie2 = 
1444 0000008d = _pie2 equ 141
1445                    ; line_number = 198
1446                    ; bind _osfie = _pie2@7
1447 0000008d = _osfie___byte equ _pie2
1448 00000007 = _osfie___bit equ 7
1449                    ; line_number = 199
1450                    ; bind _cmie = _pie2@6
1451 0000008d = _cmie___byte equ _pie2
1452 00000006 = _cmie___bit equ 6
1453                    ; line_number = 200
1454                    ; bind _lvdie = _pie2@5
1455 0000008d = _lvdie___byte equ _pie2
1456 00000005 = _lvdie___bit equ 5
1457                    ; line_number = 201
1458                    ; bind _bclie = _pie2@3
1459 0000008d = _bclie___byte equ _pie2
1460 00000003 = _bclie___bit equ 3
1461                    ; line_number = 202
1462                    ; bind _ccp3ie = _pie2@1
1463 0000008d = _ccp3ie___byte equ _pie2
1464 00000001 = _ccp3ie___bit equ 1
1465                    ; line_number = 203
1466                    ; bind _ccp2ie = _pie2@0
1467 0000008d = _ccp2ie___byte equ _pie2
1468 00000000 = _ccp2ie___bit equ 0
1469            
1470                    ; line_number = 205
1471                    ; register _pcon = 
1472 0000008e = _pcon equ 142
1473                    ; line_number = 206
1474                    ; bind _sboren = _pcon@2
1475 0000008e = _sboren___byte equ _pcon
1476 00000002 = _sboren___bit equ 2
1477                    ; line_number = 207
1478                    ; bind _por = _pcon@1
1479 0000008e = _por___byte equ _pcon
1480 00000001 = _por___bit equ 1
1481                    ; line_number = 208
1482                    ; bind _bor = _pcon@0
1483 0000008e = _bor___byte equ _pcon
1484 00000000 = _bor___bit equ 0
1485            
1486                    ; line_number = 210
1487                    ; register _osccon = 
1488 0000008f = _osccon equ 143
1489                    ; line_number = 211
1490                    ; bind _ircf2 = _osccon@6
1491 0000008f = _ircf2___byte equ _osccon
1492 00000006 = _ircf2___bit equ 6
1493                    ; line_number = 212
1494                    ; bind _ircf1 = _osccon@5
1495 0000008f = _ircf1___byte equ _osccon
1496 00000005 = _ircf1___bit equ 5
1497                    ; line_number = 213
1498                    ; bind _ircf0 = _osccon@4
1499 0000008f = _ircf0___byte equ _osccon
1500 00000004 = _ircf0___bit equ 4
1501                    ; line_number = 214
1502                    ; bind _osts = _osccon@3
1503 0000008f = _osts___byte equ _osccon
1504 00000003 = _osts___bit equ 3
1505                    ; line_number = 215
1506                    ; bind _iofs = _osccon@2
1507 0000008f = _iofs___byte equ _osccon
1508 00000002 = _iofs___bit equ 2
1509                    ; line_number = 216
1510                    ; bind _scs1 = _osccon@1
1511 0000008f = _scs1___byte equ _osccon
1512 00000001 = _scs1___bit equ 1
1513                    ; line_number = 217
1514                    ; bind _scs0 = _osccon@0
1515 0000008f = _scs0___byte equ _osccon
1516 00000000 = _scs0___bit equ 0
1517            
1518                    ; line_number = 219
1519                    ; register _osctune = 
1520 00000090 = _osctune equ 144
1521                    ; line_number = 220
1522                    ; bind _tun5 = _osctune@5
1523 00000090 = _tun5___byte equ _osctune
1524 00000005 = _tun5___bit equ 5
1525                    ; line_number = 221
1526                    ; bind _tun4 = _osctune@4
1527 00000090 = _tun4___byte equ _osctune
1528 00000004 = _tun4___bit equ 4
1529                    ; line_number = 222
1530                    ; bind _tun3 = _osctune@3
1531 00000090 = _tun3___byte equ _osctune
1532 00000003 = _tun3___bit equ 3
1533                    ; line_number = 223
1534                    ; bind _tun2 = _osctune@2
1535 00000090 = _tun2___byte equ _osctune
1536 00000002 = _tun2___bit equ 2
1537                    ; line_number = 224
1538                    ; bind _tun1 = _osctune@1
1539 00000090 = _tun1___byte equ _osctune
1540 00000001 = _tun1___bit equ 1
1541                    ; line_number = 225
1542                    ; bind _tun0 = _osctune@0
1543 00000090 = _tun0___byte equ _osctune
1544 00000000 = _tun0___bit equ 0
1545            
1546                    ; line_number = 227
1547                    ; register _sspcon2 = 
1548 00000091 = _sspcon2 equ 145
1549                    ; line_number = 228
1550                    ; bind _gcen = _sspcon2@7
1551 00000091 = _gcen___byte equ _sspcon2
1552 00000007 = _gcen___bit equ 7
1553                    ; line_number = 229
1554                    ; bind _ackstat = _sspcon2@6
1555 00000091 = _ackstat___byte equ _sspcon2
1556 00000006 = _ackstat___bit equ 6
1557                    ; line_number = 230
1558                    ; bind _ackdt = _sspcon2@5
1559 00000091 = _ackdt___byte equ _sspcon2
1560 00000005 = _ackdt___bit equ 5
1561                    ; line_number = 231
1562                    ; bind _acken = _sspcon2@4
1563 00000091 = _acken___byte equ _sspcon2
1564 00000004 = _acken___bit equ 4
1565                    ; line_number = 232
1566                    ; bind _rcen = _sspcon2@3
1567 00000091 = _rcen___byte equ _sspcon2
1568 00000003 = _rcen___bit equ 3
1569                    ; line_number = 233
1570                    ; bind _pen = _sspcon2@2
1571 00000091 = _pen___byte equ _sspcon2
1572 00000002 = _pen___bit equ 2
1573                    ; line_number = 234
1574                    ; bind _rsen = _sspcon2@1
1575 00000091 = _rsen___byte equ _sspcon2
1576 00000001 = _rsen___bit equ 1
1577                    ; line_number = 235
1578                    ; bind _sen = _sspcon2@0
1579 00000091 = _sen___byte equ _sspcon2
1580 00000000 = _sen___bit equ 0
1581            
1582                    ; line_number = 237
1583                    ; register _pr2 = 
1584 00000092 = _pr2 equ 146
1585            
1586                    ; line_number = 239
1587                    ; register _sspadd = 
1588 00000093 = _sspadd equ 147
1589            
1590                    ; line_number = 241
1591                    ; register _sspstat = 
1592 00000094 = _sspstat equ 148
1593                    ; line_number = 242
1594                    ; bind _smp = _sspstat@7
1595 00000094 = _smp___byte equ _sspstat
1596 00000007 = _smp___bit equ 7
1597                    ; line_number = 243
1598                    ; bind _cke = _sspstat@6
1599 00000094 = _cke___byte equ _sspstat
1600 00000006 = _cke___bit equ 6
1601                    ; line_number = 244
1602                    ; bind _da = _sspstat@5
1603 00000094 = _da___byte equ _sspstat
1604 00000005 = _da___bit equ 5
1605                    ; line_number = 245
1606                    ; bind _p = _sspstat@4
1607 00000094 = _p___byte equ _sspstat
1608 00000004 = _p___bit equ 4
1609                    ; line_number = 246
1610                    ; bind _s = _sspstat@3
1611 00000094 = _s___byte equ _sspstat
1612 00000003 = _s___bit equ 3
1613                    ; line_number = 247
1614                    ; bind _rw = _sspstat@2
1615 00000094 = _rw___byte equ _sspstat
1616 00000002 = _rw___bit equ 2
1617                    ; line_number = 248
1618                    ; bind _ua = _sspstat@1
1619 00000094 = _ua___byte equ _sspstat
1620 00000001 = _ua___bit equ 1
1621                    ; line_number = 249
1622                    ; bind _bf = _sspstat@0
1623 00000094 = _bf___byte equ _sspstat
1624 00000000 = _bf___bit equ 0
1625            
1626                    ; line_number = 251
1627                    ; register _ccpr3l = 
1628 00000095 = _ccpr3l equ 149
1629            
1630                    ; line_number = 253
1631                    ; register _ccpr3h = 
1632 00000096 = _ccpr3h equ 150
1633            
1634                    ; line_number = 255
1635                    ; register _ccp3con = 
1636 00000096 = _ccp3con equ 150
1637                    ; line_number = 256
1638                    ; bind _ccp3x = _ccp3con@5
1639 00000096 = _ccp3x___byte equ _ccp3con
1640 00000005 = _ccp3x___bit equ 5
1641                    ; line_number = 257
1642                    ; bind _ccp3y = _ccp3con@4
1643 00000096 = _ccp3y___byte equ _ccp3con
1644 00000004 = _ccp3y___bit equ 4
1645                    ; line_number = 258
1646                    ; bind _ccp3m3 = _ccp3con@3
1647 00000096 = _ccp3m3___byte equ _ccp3con
1648 00000003 = _ccp3m3___bit equ 3
1649                    ; line_number = 259
1650                    ; bind _ccp3m2 = _ccp3con@2
1651 00000096 = _ccp3m2___byte equ _ccp3con
1652 00000002 = _ccp3m2___bit equ 2
1653                    ; line_number = 260
1654                    ; bind _ccp3m1 = _ccp3con@1
1655 00000096 = _ccp3m1___byte equ _ccp3con
1656 00000001 = _ccp3m1___bit equ 1
1657                    ; line_number = 261
1658                    ; bind _ccp3m0 = _ccp3con@0
1659 00000096 = _ccp3m0___byte equ _ccp3con
1660 00000000 = _ccp3m0___bit equ 0
1661            
1662                    ; line_number = 263
1663                    ; register _txsta = 
1664 00000098 = _txsta equ 152
1665                    ; line_number = 264
1666                    ; bind _csrc = _txsta@7
1667 00000098 = _csrc___byte equ _txsta
1668 00000007 = _csrc___bit equ 7
1669                    ; line_number = 265
1670                    ; bind _tx9 = _txsta@6
1671 00000098 = _tx9___byte equ _txsta
1672 00000006 = _tx9___bit equ 6
1673                    ; line_number = 266
1674                    ; bind _txen = _txsta@5
1675 00000098 = _txen___byte equ _txsta
1676 00000005 = _txen___bit equ 5
1677                    ; line_number = 267
1678                    ; bind _sync = _txsta@4
1679 00000098 = _sync___byte equ _txsta
1680 00000004 = _sync___bit equ 4
1681                    ; line_number = 268
1682                    ; bind _brgh = _txsta@2
1683 00000098 = _brgh___byte equ _txsta
1684 00000002 = _brgh___bit equ 2
1685                    ; line_number = 269
1686                    ; bind _trmt = _txsta@1
1687 00000098 = _trmt___byte equ _txsta
1688 00000001 = _trmt___bit equ 1
1689                    ; line_number = 270
1690                    ; bind _tx9d = _txsta@0
1691 00000098 = _tx9d___byte equ _txsta
1692 00000000 = _tx9d___bit equ 0
1693            
1694                    ; line_number = 272
1695                    ; register _spbrg = 
1696 00000099 = _spbrg equ 153
1697            
1698                    ; line_number = 274
1699                    ; register _adcon2 = 
1700 0000009b = _adcon2 equ 155
1701                    ; line_number = 275
1702                    ; bind _acqt2 = _adcon2@5
1703 0000009b = _acqt2___byte equ _adcon2
1704 00000005 = _acqt2___bit equ 5
1705                    ; line_number = 276
1706                    ; bind _acqt1 = _adcon2@4
1707 0000009b = _acqt1___byte equ _adcon2
1708 00000004 = _acqt1___bit equ 4
1709                    ; line_number = 277
1710                    ; bind _acqt0 = _adcon2@3
1711 0000009b = _acqt0___byte equ _adcon2
1712 00000003 = _acqt0___bit equ 3
1713            
1714                    ; line_number = 279
1715                    ; register _cmcon = 
1716 0000009c = _cmcon equ 156
1717                    ; line_number = 280
1718                    ; bind _c2out = _cmcon@7
1719 0000009c = _c2out___byte equ _cmcon
1720 00000007 = _c2out___bit equ 7
1721                    ; line_number = 281
1722                    ; bind _c1out = _cmcon@6
1723 0000009c = _c1out___byte equ _cmcon
1724 00000006 = _c1out___bit equ 6
1725                    ; line_number = 282
1726                    ; bind _c2inv = _cmcon@5
1727 0000009c = _c2inv___byte equ _cmcon
1728 00000005 = _c2inv___bit equ 5
1729                    ; line_number = 283
1730                    ; bind _c1inv = _cmcon@4
1731 0000009c = _c1inv___byte equ _cmcon
1732 00000004 = _c1inv___bit equ 4
1733                    ; line_number = 284
1734                    ; bind _cis = _cmcon@3
1735 0000009c = _cis___byte equ _cmcon
1736 00000003 = _cis___bit equ 3
1737                    ; line_number = 285
1738                    ; bind _cm2 = _cmcon@2
1739 0000009c = _cm2___byte equ _cmcon
1740 00000002 = _cm2___bit equ 2
1741                    ; line_number = 286
1742                    ; bind _cm1 = _cmcon@1
1743 0000009c = _cm1___byte equ _cmcon
1744 00000001 = _cm1___bit equ 1
1745                    ; line_number = 287
1746                    ; bind _cm0 = _cmcon@0
1747 0000009c = _cm0___byte equ _cmcon
1748 00000000 = _cm0___bit equ 0
1749            
1750                    ; line_number = 289
1751                    ; register _cvrcon = 
1752 0000009d = _cvrcon equ 157
1753                    ; line_number = 290
1754                    ; bind _cvren = _cvrcon@7
1755 0000009d = _cvren___byte equ _cvrcon
1756 00000007 = _cvren___bit equ 7
1757                    ; line_number = 291
1758                    ; bind _cvroe = _cvrcon@6
1759 0000009d = _cvroe___byte equ _cvrcon
1760 00000006 = _cvroe___bit equ 6
1761                    ; line_number = 292
1762                    ; bind _cvrr = _cvrcon@5
1763 0000009d = _cvrr___byte equ _cvrcon
1764 00000005 = _cvrr___bit equ 5
1765                    ; line_number = 293
1766                    ; bind _cvr3 = _cvrcon@3
1767 0000009d = _cvr3___byte equ _cvrcon
1768 00000003 = _cvr3___bit equ 3
1769                    ; line_number = 294
1770                    ; bind _cvr2 = _cvrcon@2
1771 0000009d = _cvr2___byte equ _cvrcon
1772 00000002 = _cvr2___bit equ 2
1773                    ; line_number = 295
1774                    ; bind _cvr1 = _cvrcon@1
1775 0000009d = _cvr1___byte equ _cvrcon
1776 00000001 = _cvr1___bit equ 1
1777                    ; line_number = 296
1778                    ; bind _cvr0 = _cvrcon@0
1779 0000009d = _cvr0___byte equ _cvrcon
1780 00000000 = _cvr0___bit equ 0
1781            
1782                    ; line_number = 298
1783                    ; register _adresl = 
1784 0000009e = _adresl equ 158
1785            
1786                    ; line_number = 300
1787                    ; register _adcon1 = 
1788 0000009f = _adcon1 equ 159
1789                    ; line_number = 301
1790                    ; bind _adfm = _adcon1@7
1791 0000009f = _adfm___byte equ _adcon1
1792 00000007 = _adfm___bit equ 7
1793                    ; line_number = 302
1794                    ; bind _adcs2 = _adcon1@6
1795 0000009f = _adcs2___byte equ _adcon1
1796 00000006 = _adcs2___bit equ 6
1797                    ; line_number = 303
1798                    ; bind _vfg1 = _adcon1@5
1799 0000009f = _vfg1___byte equ _adcon1
1800 00000005 = _vfg1___bit equ 5
1801                    ; line_number = 304
1802                    ; bind _vfg0 = _adcon1@4
1803 0000009f = _vfg0___byte equ _adcon1
1804 00000004 = _vfg0___bit equ 4
1805                    ; line_number = 305
1806                    ; bind _pcfg3 = _adcon1@3
1807 0000009f = _pcfg3___byte equ _adcon1
1808 00000003 = _pcfg3___bit equ 3
1809                    ; line_number = 306
1810                    ; bind _pcfg2 = _adcon1@2
1811 0000009f = _pcfg2___byte equ _adcon1
1812 00000002 = _pcfg2___bit equ 2
1813                    ; line_number = 307
1814                    ; bind _pcfg1 = _adcon1@1
1815 0000009f = _pcfg1___byte equ _adcon1
1816 00000001 = _pcfg1___bit equ 1
1817                    ; line_number = 308
1818                    ; bind _pcfg0 = _adcon1@0
1819 0000009f = _pcfg0___byte equ _adcon1
1820 00000000 = _pcfg0___bit equ 0
1821            
1822                    ; # Bank 2:
1823            
1824                    ; line_number = 312
1825                    ; register _wdtcon = 
1826 00000105 = _wdtcon equ 261
1827                    ; line_number = 313
1828                    ; bind _wdtps3 = _wdtcon@4
1829 00000105 = _wdtps3___byte equ _wdtcon
1830 00000004 = _wdtps3___bit equ 4
1831                    ; line_number = 314
1832                    ; bind _wdtps2 = _wdtcon@3
1833 00000105 = _wdtps2___byte equ _wdtcon
1834 00000003 = _wdtps2___bit equ 3
1835                    ; line_number = 315
1836                    ; bind _wdtps1 = _wdtcon@2
1837 00000105 = _wdtps1___byte equ _wdtcon
1838 00000002 = _wdtps1___bit equ 2
1839                    ; line_number = 316
1840                    ; bind _wdtps0 = _wdtcon@1
1841 00000105 = _wdtps0___byte equ _wdtcon
1842 00000001 = _wdtps0___bit equ 1
1843                    ; line_number = 317
1844                    ; bind _swdten = _wdtcon@0
1845 00000105 = _swdten___byte equ _wdtcon
1846 00000000 = _swdten___bit equ 0
1847            
1848                    ; line_number = 319
1849                    ; register _lvdcon = 
1850 00000109 = _lvdcon equ 265
1851                    ; line_number = 320
1852                    ; bind _irvst = _lvdcon@5
1853 00000109 = _irvst___byte equ _lvdcon
1854 00000005 = _irvst___bit equ 5
1855                    ; line_number = 321
1856                    ; bind _lvden = _lvdcon@4
1857 00000109 = _lvden___byte equ _lvdcon
1858 00000004 = _lvden___bit equ 4
1859                    ; line_number = 322
1860                    ; bind _lvdl3 = _lvdcon@3
1861 00000109 = _lvdl3___byte equ _lvdcon
1862 00000003 = _lvdl3___bit equ 3
1863                    ; line_number = 323
1864                    ; bind _lvdl2 = _lvdcon@2
1865 00000109 = _lvdl2___byte equ _lvdcon
1866 00000002 = _lvdl2___bit equ 2
1867                    ; line_number = 324
1868                    ; bind _lvdl1 = _lvdcon@1
1869 00000109 = _lvdl1___byte equ _lvdcon
1870 00000001 = _lvdl1___bit equ 1
1871                    ; line_number = 325
1872                    ; bind _lvdl0 = _lvdcon@0
1873 00000109 = _lvdl0___byte equ _lvdcon
1874 00000000 = _lvdl0___bit equ 0
1875            
1876                    ; line_number = 327
1877                    ; register _pmdata = 
1878 0000010c = _pmdata equ 268
1879            
1880                    ; line_number = 329
1881                    ; register _pmadr = 
1882 0000010d = _pmadr equ 269
1883            
1884                    ; line_number = 331
1885                    ; register _pmdath = 
1886 0000010e = _pmdath equ 270
1887            
1888                    ; line_number = 333
1889                    ; register _pmadrh = 
1890 0000010f = _pmadrh equ 271
1891            
1892                    ; # Bank 3:
1893            
1894                    ; line_number = 337
1895                    ; register _pmcon1 = 
1896 0000018c = _pmcon1 equ 396
1897                    ; line_number = 338
1898                    ; bind _rd = _pmcon1@0
1899 0000018c = _rd___byte equ _pmcon1
1900 00000000 = _rd___bit equ 0
1901            
1902            
1903            
1904                    ; buffer = '_pic16f777'
1905                    ; line_number = 398
1906                    ; library _pic16f7x7 exited
1907            
1908                    ; # Additional register and pin definitions:
1909            
1910                    ; line_number = 402
1911                    ; register _portd = 
1912 00000008 = _portd equ 8
1913            
1914                    ; line_number = 404
1915                    ; register _porte = 
1916 00000009 = _porte equ 9
1917            
1918                    ; line_number = 406
1919                    ; register _trisd = 
1920 00000088 = _trisd equ 136
1921            
1922                    ; line_number = 408
1923                    ; register _trise = 
1924 00000089 = _trise equ 137
1925            
1926                    ; # Default configurations:
1927            
1928            
1929                    ; buffer = 'chopper'
1930                    ; line_number = 6
1931                    ; library _pic16f777 exited
1932                    ; line_number = 7
1933                    ; library clock20mhz entered
1934                    ; # Copyright (c) 2004 by Wayne C. Gramlich
1935                    ; # All rights reserved.
1936            
1937                    ; # This library defines the contstants {clock_rate}, {instruction_rate},
1938                    ; # and {clocks_per_instruction}.
1939            
1940                    ; # Define processor constants:
1941                    ; buffer = 'clock20mhz'
1942                    ; line_number = 9
1943                    ; constant clock_rate = 20000000
1944 01312d00 = clock_rate equ 20000000
1945                    ; line_number = 10
1946                    ; constant clocks_per_instruction = 4
1947 00000004 = clocks_per_instruction equ 4
1948                    ; line_number = 11
1949                    ; constant instruction_rate = clock_rate / clocks_per_instruction
1950 004c4b40 = instruction_rate equ 5000000
1951            
1952            
1953                    ; buffer = 'chopper'
1954                    ; line_number = 7
1955                    ; library clock20mhz exited
1956                    ; line_number = 8
1957                    ; library _uart entered
1958                    ; # Copyright (c) 2004 by Wayne C. Gramlich.
1959                    ; # All rights reserved.
1960            
1961                    ; # This library contains some procedures for accessing the UART.
1962            
1963                    ; Delaying code generation for procedure  _uart_byte_safe_get
1964                    ; Delaying code generation for procedure  _uart_byte_get
1965                    ; Delaying code generation for procedure  _uart_hex_put
1966                    ; Delaying code generation for procedure  _uart_nibble_put
1967                    ; Delaying code generation for procedure  _uart_space_put
1968                    ; Delaying code generation for procedure  _uart_crlf_put
1969                    ; Delaying code generation for procedure  _uart_byte_put
1970            
1971                    ; line_number = 8
1972                    ; library _uart exited
1973            
1974                    ; line_number = 10
1975                    ; package pdip
1976                    ; line_number = 11
1977                    ; pin 1 = mclr
1978                    ; line_number = 12
1979                    ;  pin 2 = ra0_in, name = x_step
1980 00000005 = x_step___byte equ _porta
1981 00000000 = x_step___bit equ 0
1982                    ; line_number = 13
1983                    ;  pin 3 = ra1_in, name = y_dir
1984 00000005 = y_dir___byte equ _porta
1985 00000001 = y_dir___bit equ 1
1986                    ; line_number = 14
1987                    ;  pin 4 = ra2_in, name = z_dir
1988 00000005 = z_dir___byte equ _porta
1989 00000002 = z_dir___bit equ 2
1990                    ; line_number = 15
1991                    ;  pin 5 = ra3_in, name = x_dir
1992 00000005 = x_dir___byte equ _porta
1993 00000003 = x_dir___bit equ 3
1994                    ; line_number = 16
1995                    ;  pin 6 = ra4_in, name = a_step
1996 00000005 = a_step___byte equ _porta
1997 00000004 = a_step___bit equ 4
1998                    ; line_number = 17
1999                    ;  pin 7 = ra5_in, name = z_step
2000 00000005 = z_step___byte equ _porta
2001 00000005 = z_step___bit equ 5
2002                    ; line_number = 18
2003                    ;  pin 8 = re0_in, name = y_step
2004 00000009 = y_step___byte equ _porte
2005 00000000 = y_step___bit equ 0
2006                    ; line_number = 19
2007                    ;  pin 9 = re1_in, name = a_dir
2008 00000009 = a_dir___byte equ _porte
2009 00000001 = a_dir___bit equ 1
2010                    ; line_number = 20
2011                    ;  pin 10 = re2_unused
2012                    ; line_number = 21
2013                    ;  pin 11 = vdd1
2014                    ; line_number = 22
2015                    ;  pin 12 = vss1
2016                    ; line_number = 23
2017                    ;  pin 13 = osc1
2018                    ; line_number = 24
2019                    ;  pin 14 = osc2
2020                    ; line_number = 25
2021                    ;  pin 15 = rc0_in, name = strobe
2022 00000007 = strobe___byte equ _portc
2023 00000000 = strobe___bit equ 0
2024                    ; line_number = 26
2025                    ;  pin 16 = rc1_unused
2026                    ; line_number = 27
2027                    ;  pin 17 = rc2_out, name = load
2028 00000007 = load___byte equ _portc
2029 00000002 = load___bit equ 2
2030                    ; line_number = 28
2031                    ;  pin 18 = rc3_out, name = clock
2032 00000007 = clock___byte equ _portc
2033 00000003 = clock___bit equ 3
2034                    ; line_number = 29
2035                    ;  pin 19 = rd0_out, name = x4
2036 00000008 = x4___byte equ _portd
2037 00000000 = x4___bit equ 0
2038                    ; line_number = 30
2039                    ;  pin 20 = rd1_out, name = x3
2040 00000008 = x3___byte equ _portd
2041 00000001 = x3___bit equ 1
2042                    ; line_number = 31
2043                    ;  pin 21 = rd2_out, name = x2
2044 00000008 = x2___byte equ _portd
2045 00000002 = x2___bit equ 2
2046                    ; line_number = 32
2047                    ;  pin 22 = rd3_out, name = x1
2048 00000008 = x1___byte equ _portd
2049 00000003 = x1___bit equ 3
2050                    ; line_number = 33
2051                    ;  pin 23 = rc4_out, name = ldac
2052 00000007 = ldac___byte equ _portc
2053 00000004 = ldac___bit equ 4
2054                    ; line_number = 34
2055                    ;  pin 24 = rc5_out, name = data
2056 00000007 = data___byte equ _portc
2057 00000005 = data___bit equ 5
2058                    ; line_number = 35
2059                    ;  pin 25 = rc6_unused
2060                    ; line_number = 36
2061                    ;  pin 26 = rx, name = rxd
2062 00000007 = rxd___byte equ _portc
2063 00000007 = rxd___bit equ 7
2064                    ; line_number = 37
2065                    ;  pin 27 = rd4_out, name = y4
2066 00000008 = y4___byte equ _portd
2067 00000004 = y4___bit equ 4
2068                    ; line_number = 38
2069                    ;  pin 28 = rd5_out, name = y3
2070 00000008 = y3___byte equ _portd
2071 00000005 = y3___bit equ 5
2072                    ; line_number = 39
2073                    ;  pin 29 = rd6_out, name = y2
2074 00000008 = y2___byte equ _portd
2075 00000006 = y2___bit equ 6
2076                    ; line_number = 40
2077                    ;  pin 30 = rd7_out, name = y1
2078 00000008 = y1___byte equ _portd
2079 00000007 = y1___bit equ 7
2080                    ; line_number = 41
2081                    ;  pin 31 = vss2
2082                    ; line_number = 42
2083                    ;  pin 32 = vdd2
2084                    ; line_number = 43
2085                    ;  pin 33 = rb0_out, name = z4
2086 00000006 = z4___byte equ _portb
2087 00000000 = z4___bit equ 0
2088                    ; line_number = 44
2089                    ;  pin 34 = rb1_out, name = z3
2090 00000006 = z3___byte equ _portb
2091 00000001 = z3___bit equ 1
2092                    ; line_number = 45
2093                    ;  pin 35 = rb2_out, name = z2
2094 00000006 = z2___byte equ _portb
2095 00000002 = z2___bit equ 2
2096                    ; line_number = 46
2097                    ;  pin 36 = rb3_out, name = z1
2098 00000006 = z1___byte equ _portb
2099 00000003 = z1___bit equ 3
2100                    ; line_number = 47
2101                    ;  pin 37 = rb4_out, name = a4
2102 00000006 = a4___byte equ _portb
2103 00000004 = a4___bit equ 4
2104                    ; line_number = 48
2105                    ;  pin 38 = rb5_out, name = a3
2106 00000006 = a3___byte equ _portb
2107 00000005 = a3___bit equ 5
2108                    ; line_number = 49
2109                    ;  pin 39 = rb6_out, name = a2
2110 00000006 = a2___byte equ _portb
2111 00000006 = a2___bit equ 6
2112                    ; line_number = 50
2113                    ;  pin 40 = rb7_out, name = a1
2114 00000006 = a1___byte equ _portb
2115 00000007 = a1___bit equ 7
2116            
2117            
2118                    ; line_number = 54
2119                    ; constant microsecond = 5
2120 00000005 = microsecond equ 5
2121            
2122                    ; line_number = 56
2123                    ; constant tmr0_prescale_power = 0
2124 00000000 = tmr0_prescale_power equ 0
2125                    ; line_number = 57
2126                    ; constant tmr0_prescale = 1 << (tmr0_prescale_power + 1)
2127 00000002 = tmr0_prescale equ 2
2128                    ; line_number = 58
2129                    ; constant refresh_rate = 25000
2130 000061a8 = refresh_rate equ 25000
2131                    ; line_number = 59
2132                    ; constant refresh_clocks = instruction_rate / refresh_rate
2133 000000c8 = refresh_clocks equ 200
2134                    ; line_number = 60
2135                    ; constant tmr0_value = 255 - (refresh_clocks / tmr0_prescale) 
2136 0000009b = tmr0_value equ 155
2137            
2138                    ; # sin((0/8) * 90) = 0.000000   x 255 = 0
2139                    ; # sin((1/8) * 90) = 0.195090   x 255 = 50
2140                    ; # sin((2/8) * 90) = 0.382683   x 255 = 98
2141                    ; # sin((3/8) * 90) = 0.555570   x 255 = 142 
2142                    ; # sin((4/8) * 90) = 0.707107   x 255 = 180
2143                    ; # sin((5/8) * 90) = 0.831470   x 255 = 212
2144                    ; # sin((6/8) * 90) = 0.923880   x 255 = 236
2145                    ; # sin((7/8) * 90) = 0.980785   x 255 = 250
2146                    ; # sin((8/8) * 90) = 1.000000   x 255 = 255
2147            
2148                    ; line_number = 72
2149                    ; constant sine_0_8 = 0
2150 00000000 = sine_0_8 equ 0
2151                    ; line_number = 73
2152                    ; constant sine_1_8 = 50
2153 00000032 = sine_1_8 equ 50
2154                    ; line_number = 74
2155                    ; constant sine_2_8 = 98
2156 00000062 = sine_2_8 equ 98
2157                    ; line_number = 75
2158                    ; constant sine_3_8 = 142
2159 0000008e = sine_3_8 equ 142
2160                    ; line_number = 76
2161                    ; constant sine_4_8 = 180
2162 000000b4 = sine_4_8 equ 180
2163                    ; line_number = 77
2164                    ; constant sine_5_8 = 212
2165 000000d4 = sine_5_8 equ 212
2166                    ; line_number = 78
2167                    ; constant sine_6_8 = 236
2168 000000ec = sine_6_8 equ 236
2169                    ; line_number = 79
2170                    ; constant sine_7_8 = 250
2171 000000fa = sine_7_8 equ 250
2172                    ; line_number = 80
2173                    ; constant sine_8_8 = 255
2174 000000ff = sine_8_8 equ 255
2175            
2176                    ; line_number = 82
2177                    ; global dac byte
2178 00000023 = dac equ globals___0+3
2179                    ; line_number = 83
2180                    ; global port_b byte
2181 00000024 = port_b equ globals___0+4
2182                    ; line_number = 84
2183                    ; global port_d byte
2184 00000025 = port_d equ globals___0+5
2185                    ; line_number = 85
2186                    ; global a_angle byte
2187 00000026 = a_angle equ globals___0+6
2188                    ; line_number = 86
2189                    ; global x_angle byte
2190 00000027 = x_angle equ globals___0+7
2191                    ; line_number = 87
2192                    ; global y_angle byte
2193 00000028 = y_angle equ globals___0+8
2194                    ; line_number = 88
2195                    ; global z_angle byte
2196 00000029 = z_angle equ globals___0+9
2197                    ; line_number = 89
2198                    ; global a_amount byte
2199 0000002a = a_amount equ globals___0+10
2200                    ; line_number = 90
2201                    ; global x_amount byte
2202 0000002b = x_amount equ globals___0+11
2203                    ; line_number = 91
2204                    ; global y_amount byte
2205 0000002c = y_amount equ globals___0+12
2206                    ; line_number = 92
2207                    ; global z_amount byte
2208 0000002d = z_amount equ globals___0+13
2209                    ; line_number = 93
2210                    ; global a_step_previous bit
2211 0000006f = a_step_previous___byte equ globals___0+79
2212 00000000 = a_step_previous___bit equ 0
2213                    ; line_number = 94
2214                    ; global x_step_previous bit
2215 0000006f = x_step_previous___byte equ globals___0+79
2216 00000001 = x_step_previous___bit equ 1
2217                    ; line_number = 95
2218                    ; global y_step_previous bit
2219 0000006f = y_step_previous___byte equ globals___0+79
2220 00000002 = y_step_previous___bit equ 2
2221                    ; line_number = 96
2222                    ; global z_step_previous bit
2223 0000006f = z_step_previous___byte equ globals___0+79
2224 00000003 = z_step_previous___bit equ 3
2225                    ; line_number = 97
2226                    ; global dac_update byte
2227 0000002e = dac_update equ globals___0+14
2228                    ; line_number = 98
2229                    ; bind a_dac_update = dac_update@3
2230 0000002e = a_dac_update___byte equ globals___0+14
2231 00000003 = a_dac_update___bit equ 3
2232                    ; line_number = 99
2233                    ; bind z_dac_update = dac_update@2
2234 0000002e = z_dac_update___byte equ globals___0+14
2235 00000002 = z_dac_update___bit equ 2
2236                    ; line_number = 100
2237                    ; bind y_dac_update = dac_update@1
2238 0000002e = y_dac_update___byte equ globals___0+14
2239 00000001 = y_dac_update___bit equ 1
2240                    ; line_number = 101
2241                    ; bind x_dac_update = dac_update@0
2242 0000002e = x_dac_update___byte equ globals___0+14
2243 00000000 = x_dac_update___bit equ 0
2244                    ; line_number = 102
2245                    ; global a_mask byte
2246 0000002f = a_mask equ globals___0+15
2247                    ; line_number = 103
2248                    ; global z_mask byte
2249 00000030 = z_mask equ globals___0+16
2250                    ; line_number = 104
2251                    ; global y_mask byte
2252 00000031 = y_mask equ globals___0+17
2253                    ; line_number = 105
2254                    ; global x_mask byte
2255 00000032 = x_mask equ globals___0+18
2256                    ; line_number = 106
2257                    ; global a_strength byte
2258 00000033 = a_strength equ globals___0+19
2259                    ; line_number = 107
2260                    ; global x_strength byte
2261 00000034 = x_strength equ globals___0+20
2262                    ; line_number = 108
2263                    ; global y_strength byte
2264 00000035 = y_strength equ globals___0+21
2265                    ; line_number = 109
2266                    ; global z_strength byte
2267 00000036 = z_strength equ globals___0+22
2268            
2269                    ; line_number = 111
2270                    ; origin 0
2271   0000 :           org     0
2272            
2273                    ; line_number = 113
2274                    ;info   113, 0
2275                    ; procedure start
2276   0000 :   start:
2277                    ; arguments_none
2278                    ; line_number = 115
2279                    ;  returns_nothing
2280            
2281                    ; #: This procedure simply jumps around the interrupt procedure
2282                    ; #, located at location 4.
2283            
2284                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
2285                    ; line_number = 120
2286                    ;  assemble
2287                    ;info   120, 0
2288                    ; line_number = 121
2289                    ;info   121, 0
2290 0000 28b5          goto    main
2291            
2292                    ; delay after procedure statements=non-uniform
2293                    ; Implied return
2294 0001 3400          retlw   0
2295            
2296            
2297            
2298            
2299                    ; line_number = 123
2300                    ; origin 4
2301   0004 :           org     4
2302            
2303                    ; line_number = 125
2304                    ;info   125, 4
2305                    ; procedure interrupt
2306   0004 :   interrupt:
2307 00000071 = interrupt___w_save equ shared___globals+1
2308 00000070 = interrupt___status_save equ shared___globals
2309                    ; Carefully save __w and __tatus into RAM
2310                    ; Save W first (easy)
2311 0004 00f1          movwf   interrupt___w_save
2312                    ; Save Status without smashing it (tricky)
2313                    ; Move swapped version of status into W
2314 0005 0e03          swapf   __status,w
2315                    ; Store swapped version of status into RAM
2316 0006 00f0          movwf   interrupt___status_save
2317                    ; arguments_none
2318                    ; line_number = 127
2319                    ;  returns_nothing
2320            
2321                    ; # This procedure processes the TMR0 interrupt.
2322            
2323                    ; # Restart TMR0:
2324                    ; before procedure statements delay=non-uniform, bit states=(data:??=>?? code:00=>00)
2325                    ; line_number = 132
2326                    ;  _tmr0 := tmr0_value
2327                    ;info   132, 7
2328 0007 309b          movlw   155
2329 0008 1283          bcf     __rp0___byte, __rp0___bit
2330 0009 0081          movwf   _tmr0
2331                    ; line_number = 133
2332                    ;  _tmr0if := _false
2333                    ;info   133, 10
2334 000a 110b          bcf     _tmr0if___byte, _tmr0if___bit
2335            
2336                    ; # Blank for 4 microseconds:
2337                    ; line_number = 136
2338                    ;  strobe := _false
2339                    ;info   136, 11
2340 000b 1303          bcf     __rp1___byte, __rp1___bit
2341 000c 1007          bcf     strobe___byte, strobe___bit
2342                    ; line_number = 137
2343                    ;  delay 4 * microsecond start
2344                    ;info   137, 13
2345                    ; Delay expression evaluates to 20
2346                    ; # Set the H-Bridges:
2347                    ; line_number = 139
2348                    ;  _portb := port_b
2349                    ; Delay at assignment is 0
2350                    ;info   139, 13
2351 000d 0824          movf    port_b,w
2352 000e 0086          movwf   _portb
2353                    ; line_number = 140
2354                    ;  _portd := port_d
2355                    ; Delay at assignment is 2
2356                    ;info   140, 15
2357 000f 0825          movf    port_d,w
2358 0010 0088          movwf   _portd
2359            
2360                    ; # Force the DAC values out to the pins:
2361                    ; line_number = 143
2362                    ;  ldac := _false
2363                    ; Delay at assignment is 4
2364                    ;info   143, 17
2365 0011 1207          bcf     ldac___byte, ldac___bit
2366                    ; line_number = 144
2367                    ;  ldac := _true
2368                    ; Delay at assignment is 5
2369                    ;info   144, 18
2370 0012 1607          bsf     ldac___byte, ldac___bit
2371            
2372                    ; # Strobe the H-bridges
2373                    ; # It may be necessary to add some delay here to let the
2374                    ; # sense resistor voltages settle down.
2375                    ; Delay 14 cycles
2376                    ; Delay loop takes 3 * 4 = 12 cycles
2377 0013 3003          movlw   3
2378   0014 :   interrupt__1:
2379 0014 3eff          addlw   255
2380 0015 1d03          btfss   __z___byte, __z___bit
2381 0016 2814          goto    interrupt__1
2382 0017 2818          goto    interrupt__2
2383   0018 :   interrupt__2:
2384                    ; line_number = 137
2385                    ;  delay 4 * microsecond done
2386                    ; line_number = 149
2387                    ; strobe := _true
2388                    ;info   149, 24
2389 0018 1407          bsf     strobe___byte, strobe___bit
2390            
2391            
2392                    ; delay after procedure statements=non-uniform
2393                    ; Interrupt return
2394                    ; Carefully restore __w and __tatus from RAM
2395                    ; Restore swapped status into W
2396 0019 0e70          swapf   interrupt___status_save,w
2397                    ; W now contains (unswapped) status
2398                    ; Restore W to __status
2399 001a 0083          movwf   __status
2400                    ; From here on out, do not modify __status
2401                    ; Swap saved W register in RAM
2402 001b 0ef1          swapf   interrupt___w_save,f
2403                    ; Unswap the saved W reg and restore to W
2404 001c 0e71          swapf   interrupt___w_save,w
2405                    ; __w and __status are now restored
2406                    ; Return from interrupt
2407 001d 0009          retfie  
2408            
2409            
2410            
2411            
2412                    ; line_number = 152
2413                    ;info   152, 30
2414                    ; procedure sine
2415   001e :   sine:
2416                    ; Last argument is sitting in W; save into argument variable
2417 001e 00b7          movwf   sine__angle
2418                    ; delay=4294967295
2419                    ; line_number = 153
2420                    ; argument angle byte
2421 00000037 = sine__angle equ globals___0+23
2422                    ; line_number = 154
2423                    ;  returns byte
2424            
2425                    ; # This procedure will return sin({angle})*255, where {angle} is
2426                    ; # measured in multiples of 11.25 degrees (= (1/8) * 90).
2427            
2428                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
2429                    ; line_number = 159
2430                    ;  switch angle start
2431                    ;info   159, 31
2432 001f 3000          movlw   sine__145>>8
2433 0020 008a          movwf   __pclath
2434 0021 0837          movf    sine__angle,w
2435 0022 3e24          addlw   sine__145
2436 0023 0082          movwf   __pcl
2437                    ; page_group 144
2438   0024 :   sine__145:
2439                    ; line_number = 161
2440                    ; return 0 start
2441                    ; line_number = 161
2442                    ;info   161, 36
2443 0024 3400          retlw   0
2444                    ; line_number = 161
2445                    ; return 0 done
2446                    ; line_number = 163
2447                    ; return 0 start
2448                    ; line_number = 163
2449                    ;info   163, 37
2450 0025 3400          retlw   0
2451                    ; line_number = 163
2452                    ; return 0 done
2453                    ; line_number = 165
2454                    ; return 0 start
2455                    ; line_number = 165
2456                    ;info   165, 38
2457 0026 3400          retlw   0
2458                    ; line_number = 165
2459                    ; return 0 done
2460                    ; line_number = 167
2461                    ; return 0 start
2462                    ; line_number = 167
2463                    ;info   167, 39
2464 0027 3400          retlw   0
2465                    ; line_number = 167
2466                    ; return 0 done
2467                    ; line_number = 169
2468                    ; return 0 start
2469                    ; line_number = 169
2470                    ;info   169, 40
2471 0028 3400          retlw   0
2472                    ; line_number = 169
2473                    ; return 0 done
2474                    ; line_number = 171
2475                    ; return 0 start
2476                    ; line_number = 171
2477                    ;info   171, 41
2478 0029 3400          retlw   0
2479                    ; line_number = 171
2480                    ; return 0 done
2481                    ; line_number = 173
2482                    ; return 0 start
2483                    ; line_number = 173
2484                    ;info   173, 42
2485 002a 3400          retlw   0
2486                    ; line_number = 173
2487                    ; return 0 done
2488                    ; line_number = 175
2489                    ; return 0 start
2490                    ; line_number = 175
2491                    ;info   175, 43
2492 002b 3400          retlw   0
2493                    ; line_number = 175
2494                    ; return 0 done
2495                    ; line_number = 177
2496                    ; return 0 start
2497                    ; line_number = 177
2498                    ;info   177, 44
2499 002c 3400          retlw   0
2500                    ; line_number = 177
2501                    ; return 0 done
2502                    ; line_number = 179
2503                    ; return 0 start
2504                    ; line_number = 179
2505                    ;info   179, 45
2506 002d 3400          retlw   0
2507                    ; line_number = 179
2508                    ; return 0 done
2509                    ; line_number = 181
2510                    ; return 0 start
2511                    ; line_number = 181
2512                    ;info   181, 46
2513 002e 3400          retlw   0
2514                    ; line_number = 181
2515                    ; return 0 done
2516                    ; line_number = 183
2517                    ; return 0 start
2518                    ; line_number = 183
2519                    ;info   183, 47
2520 002f 3400          retlw   0
2521                    ; line_number = 183
2522                    ; return 0 done
2523                    ; line_number = 185
2524                    ; return 0 start
2525                    ; line_number = 185
2526                    ;info   185, 48
2527 0030 3400          retlw   0
2528                    ; line_number = 185
2529                    ; return 0 done
2530                    ; line_number = 187
2531                    ; return 0 start
2532                    ; line_number = 187
2533                    ;info   187, 49
2534 0031 3400          retlw   0
2535                    ; line_number = 187
2536                    ; return 0 done
2537                    ; line_number = 189
2538                    ; return 0 start
2539                    ; line_number = 189
2540                    ;info   189, 50
2541 0032 3400          retlw   0
2542                    ; line_number = 189
2543                    ; return 0 done
2544                    ; line_number = 191
2545                    ; return 0 start
2546                    ; line_number = 191
2547                    ;info   191, 51
2548 0033 3400          retlw   0
2549                    ; line_number = 191
2550                    ; return 0 done
2551            
2552                    ; line_number = 194
2553                    ; return sine_0_8 * 1 / 8 start
2554                    ; line_number = 194
2555                    ;info   194, 52
2556 0034 3400          retlw   0
2557                    ; line_number = 194
2558                    ; return sine_0_8 * 1 / 8 done
2559                    ; line_number = 196
2560                    ; return sine_1_8 * 1 / 8 start
2561                    ; line_number = 196
2562                    ;info   196, 53
2563 0035 3406          retlw   6
2564                    ; line_number = 196
2565                    ; return sine_1_8 * 1 / 8 done
2566                    ; line_number = 198
2567                    ; return sine_2_8 * 1 / 8 start
2568                    ; line_number = 198
2569                    ;info   198, 54
2570 0036 340c          retlw   12
2571                    ; line_number = 198
2572                    ; return sine_2_8 * 1 / 8 done
2573                    ; line_number = 200
2574                    ; return sine_3_8 * 1 / 8 start
2575                    ; line_number = 200
2576                    ;info   200, 55
2577 0037 3411          retlw   17
2578                    ; line_number = 200
2579                    ; return sine_3_8 * 1 / 8 done
2580                    ; line_number = 202
2581                    ; return sine_4_8 * 1 / 8 start
2582                    ; line_number = 202
2583                    ;info   202, 56
2584 0038 3416          retlw   22
2585                    ; line_number = 202
2586                    ; return sine_4_8 * 1 / 8 done
2587                    ; line_number = 204
2588                    ; return sine_5_8 * 1 / 8 start
2589                    ; line_number = 204
2590                    ;info   204, 57
2591 0039 341a          retlw   26
2592                    ; line_number = 204
2593                    ; return sine_5_8 * 1 / 8 done
2594                    ; line_number = 206
2595                    ; return sine_6_8 * 1 / 8 start
2596                    ; line_number = 206
2597                    ;info   206, 58
2598 003a 341d          retlw   29
2599                    ; line_number = 206
2600                    ; return sine_6_8 * 1 / 8 done
2601                    ; line_number = 208
2602                    ; return sine_7_8 * 1 / 8 start
2603                    ; line_number = 208
2604                    ;info   208, 59
2605 003b 341f          retlw   31
2606                    ; line_number = 208
2607                    ; return sine_7_8 * 1 / 8 done
2608                    ; line_number = 210
2609                    ; return sine_8_8 * 1 / 8 start
2610                    ; line_number = 210
2611                    ;info   210, 60
2612 003c 341f          retlw   31
2613                    ; line_number = 210
2614                    ; return sine_8_8 * 1 / 8 done
2615                    ; line_number = 212
2616                    ; return sine_7_8 * 1 / 8 start
2617                    ; line_number = 212
2618                    ;info   212, 61
2619 003d 341f          retlw   31
2620                    ; line_number = 212
2621                    ; return sine_7_8 * 1 / 8 done
2622                    ; line_number = 214
2623                    ; return sine_6_8 * 1 / 8 start
2624                    ; line_number = 214
2625                    ;info   214, 62
2626 003e 341d          retlw   29
2627                    ; line_number = 214
2628                    ; return sine_6_8 * 1 / 8 done
2629                    ; line_number = 216
2630                    ; return sine_5_8 * 1 / 8 start
2631                    ; line_number = 216
2632                    ;info   216, 63
2633 003f 341a          retlw   26
2634                    ; line_number = 216
2635                    ; return sine_5_8 * 1 / 8 done
2636                    ; line_number = 218
2637                    ; return sine_4_8 * 1 / 8 start
2638                    ; line_number = 218
2639                    ;info   218, 64
2640 0040 3416          retlw   22
2641                    ; line_number = 218
2642                    ; return sine_4_8 * 1 / 8 done
2643                    ; line_number = 220
2644                    ; return sine_3_8 * 1 / 8 start
2645                    ; line_number = 220
2646                    ;info   220, 65
2647 0041 3411          retlw   17
2648                    ; line_number = 220
2649                    ; return sine_3_8 * 1 / 8 done
2650                    ; line_number = 222
2651                    ; return sine_2_8 * 1 / 8 start
2652                    ; line_number = 222
2653                    ;info   222, 66
2654 0042 340c          retlw   12
2655                    ; line_number = 222
2656                    ; return sine_2_8 * 1 / 8 done
2657                    ; line_number = 224
2658                    ; return sine_1_8 * 1 / 8 start
2659                    ; line_number = 224
2660                    ;info   224, 67
2661 0043 3406          retlw   6
2662                    ; line_number = 224
2663                    ; return sine_1_8 * 1 / 8 done
2664            
2665                    ; line_number = 227
2666                    ; return sine_0_8 * 2 / 8 start
2667                    ; line_number = 227
2668                    ;info   227, 68
2669 0044 3400          retlw   0
2670                    ; line_number = 227
2671                    ; return sine_0_8 * 2 / 8 done
2672                    ; line_number = 229
2673                    ; return sine_1_8 * 2 / 8 start
2674                    ; line_number = 229
2675                    ;info   229, 69
2676 0045 340c          retlw   12
2677                    ; line_number = 229
2678                    ; return sine_1_8 * 2 / 8 done
2679                    ; line_number = 231
2680                    ; return sine_2_8 * 2 / 8 start
2681                    ; line_number = 231
2682                    ;info   231, 70
2683 0046 3418          retlw   24
2684                    ; line_number = 231
2685                    ; return sine_2_8 * 2 / 8 done
2686                    ; line_number = 233
2687                    ; return sine_3_8 * 2 / 8 start
2688                    ; line_number = 233
2689                    ;info   233, 71
2690 0047 3423          retlw   35
2691                    ; line_number = 233
2692                    ; return sine_3_8 * 2 / 8 done
2693                    ; line_number = 235
2694                    ; return sine_4_8 * 2 / 8 start
2695                    ; line_number = 235
2696                    ;info   235, 72
2697 0048 342d          retlw   45
2698                    ; line_number = 235
2699                    ; return sine_4_8 * 2 / 8 done
2700                    ; line_number = 237
2701                    ; return sine_5_8 * 2 / 8 start
2702                    ; line_number = 237
2703                    ;info   237, 73
2704 0049 3435          retlw   53
2705                    ; line_number = 237
2706                    ; return sine_5_8 * 2 / 8 done
2707                    ; line_number = 239
2708                    ; return sine_6_8 * 2 / 8 start
2709                    ; line_number = 239
2710                    ;info   239, 74
2711 004a 343b          retlw   59
2712                    ; line_number = 239
2713                    ; return sine_6_8 * 2 / 8 done
2714                    ; line_number = 241
2715                    ; return sine_7_8 * 2 / 8 start
2716                    ; line_number = 241
2717                    ;info   241, 75
2718 004b 343e          retlw   62
2719                    ; line_number = 241
2720                    ; return sine_7_8 * 2 / 8 done
2721                    ; line_number = 243
2722                    ; return sine_8_8 * 2 / 8 start
2723                    ; line_number = 243
2724                    ;info   243, 76
2725 004c 343f          retlw   63
2726                    ; line_number = 243
2727                    ; return sine_8_8 * 2 / 8 done
2728                    ; line_number = 245
2729                    ; return sine_7_8 * 2 / 8 start
2730                    ; line_number = 245
2731                    ;info   245, 77
2732 004d 343e          retlw   62
2733                    ; line_number = 245
2734                    ; return sine_7_8 * 2 / 8 done
2735                    ; line_number = 247
2736                    ; return sine_6_8 * 2 / 8 start
2737                    ; line_number = 247
2738                    ;info   247, 78
2739 004e 343b          retlw   59
2740                    ; line_number = 247
2741                    ; return sine_6_8 * 2 / 8 done
2742                    ; line_number = 249
2743                    ; return sine_5_8 * 2 / 8 start
2744                    ; line_number = 249
2745                    ;info   249, 79
2746 004f 3435          retlw   53
2747                    ; line_number = 249
2748                    ; return sine_5_8 * 2 / 8 done
2749                    ; line_number = 251
2750                    ; return sine_4_8 * 2 / 8 start
2751                    ; line_number = 251
2752                    ;info   251, 80
2753 0050 342d          retlw   45
2754                    ; line_number = 251
2755                    ; return sine_4_8 * 2 / 8 done
2756                    ; line_number = 253
2757                    ; return sine_3_8 * 2 / 8 start
2758                    ; line_number = 253
2759                    ;info   253, 81
2760 0051 3423          retlw   35
2761                    ; line_number = 253
2762                    ; return sine_3_8 * 2 / 8 done
2763                    ; line_number = 255
2764                    ; return sine_2_8 * 2 / 8 start
2765                    ; line_number = 255
2766                    ;info   255, 82
2767 0052 3418          retlw   24
2768                    ; line_number = 255
2769                    ; return sine_2_8 * 2 / 8 done
2770                    ; line_number = 257
2771                    ; return sine_1_8 * 2 / 8 start
2772                    ; line_number = 257
2773                    ;info   257, 83
2774 0053 340c          retlw   12
2775                    ; line_number = 257
2776                    ; return sine_1_8 * 2 / 8 done
2777            
2778                    ; line_number = 260
2779                    ; return sine_0_8 * 3 / 8 start
2780                    ; line_number = 260
2781                    ;info   260, 84
2782 0054 3400          retlw   0
2783                    ; line_number = 260
2784                    ; return sine_0_8 * 3 / 8 done
2785                    ; line_number = 262
2786                    ; return sine_1_8 * 3 / 8 start
2787                    ; line_number = 262
2788                    ;info   262, 85
2789 0055 3412          retlw   18
2790                    ; line_number = 262
2791                    ; return sine_1_8 * 3 / 8 done
2792                    ; line_number = 264
2793                    ; return sine_2_8 * 3 / 8 start
2794                    ; line_number = 264
2795                    ;info   264, 86
2796 0056 3424          retlw   36
2797                    ; line_number = 264
2798                    ; return sine_2_8 * 3 / 8 done
2799                    ; line_number = 266
2800                    ; return sine_3_8 * 3 / 8 start
2801                    ; line_number = 266
2802                    ;info   266, 87
2803 0057 3435          retlw   53
2804                    ; line_number = 266
2805                    ; return sine_3_8 * 3 / 8 done
2806                    ; line_number = 268
2807                    ; return sine_4_8 * 3 / 8 start
2808                    ; line_number = 268
2809                    ;info   268, 88
2810 0058 3443          retlw   67
2811                    ; line_number = 268
2812                    ; return sine_4_8 * 3 / 8 done
2813                    ; line_number = 270
2814                    ; return sine_5_8 * 3 / 8 start
2815                    ; line_number = 270
2816                    ;info   270, 89
2817 0059 344f          retlw   79
2818                    ; line_number = 270
2819                    ; return sine_5_8 * 3 / 8 done
2820                    ; line_number = 272
2821                    ; return sine_6_8 * 3 / 8 start
2822                    ; line_number = 272
2823                    ;info   272, 90
2824 005a 3458          retlw   88
2825                    ; line_number = 272
2826                    ; return sine_6_8 * 3 / 8 done
2827                    ; line_number = 274
2828                    ; return sine_7_8 * 3 / 8 start
2829                    ; line_number = 274
2830                    ;info   274, 91
2831 005b 345d          retlw   93
2832                    ; line_number = 274
2833                    ; return sine_7_8 * 3 / 8 done
2834                    ; line_number = 276
2835                    ; return sine_8_8 * 3 / 8 start
2836                    ; line_number = 276
2837                    ;info   276, 92
2838 005c 345f          retlw   95
2839                    ; line_number = 276
2840                    ; return sine_8_8 * 3 / 8 done
2841                    ; line_number = 278
2842                    ; return sine_7_8 * 3 / 8 start
2843                    ; line_number = 278
2844                    ;info   278, 93
2845 005d 345d          retlw   93
2846                    ; line_number = 278
2847                    ; return sine_7_8 * 3 / 8 done
2848                    ; line_number = 280
2849                    ; return sine_6_8 * 3 / 8 start
2850                    ; line_number = 280
2851                    ;info   280, 94
2852 005e 3458          retlw   88
2853                    ; line_number = 280
2854                    ; return sine_6_8 * 3 / 8 done
2855                    ; line_number = 282
2856                    ; return sine_5_8 * 3 / 8 start
2857                    ; line_number = 282
2858                    ;info   282, 95
2859 005f 344f          retlw   79
2860                    ; line_number = 282
2861                    ; return sine_5_8 * 3 / 8 done
2862                    ; line_number = 284
2863                    ; return sine_4_8 * 3 / 8 start
2864                    ; line_number = 284
2865                    ;info   284, 96
2866 0060 3443          retlw   67
2867                    ; line_number = 284
2868                    ; return sine_4_8 * 3 / 8 done
2869                    ; line_number = 286
2870                    ; return sine_3_8 * 3 / 8 start
2871                    ; line_number = 286
2872                    ;info   286, 97
2873 0061 3435          retlw   53
2874                    ; line_number = 286
2875                    ; return sine_3_8 * 3 / 8 done
2876                    ; line_number = 288
2877                    ; return sine_2_8 * 3 / 8 start
2878                    ; line_number = 288
2879                    ;info   288, 98
2880 0062 3424          retlw   36
2881                    ; line_number = 288
2882                    ; return sine_2_8 * 3 / 8 done
2883                    ; line_number = 290
2884                    ; return sine_1_8 * 3 / 8 start
2885                    ; line_number = 290
2886                    ;info   290, 99
2887 0063 3412          retlw   18
2888                    ; line_number = 290
2889                    ; return sine_1_8 * 3 / 8 done
2890            
2891                    ; line_number = 293
2892                    ; return sine_0_8 * 4 / 8 start
2893                    ; line_number = 293
2894                    ;info   293, 100
2895 0064 3400          retlw   0
2896                    ; line_number = 293
2897                    ; return sine_0_8 * 4 / 8 done
2898                    ; line_number = 295
2899                    ; return sine_1_8 * 4 / 8 start
2900                    ; line_number = 295
2901                    ;info   295, 101
2902 0065 3419          retlw   25
2903                    ; line_number = 295
2904                    ; return sine_1_8 * 4 / 8 done
2905                    ; line_number = 297
2906                    ; return sine_2_8 * 4 / 8 start
2907                    ; line_number = 297
2908                    ;info   297, 102
2909 0066 3431          retlw   49
2910                    ; line_number = 297
2911                    ; return sine_2_8 * 4 / 8 done
2912                    ; line_number = 299
2913                    ; return sine_3_8 * 4 / 8 start
2914                    ; line_number = 299
2915                    ;info   299, 103
2916 0067 3447          retlw   71
2917                    ; line_number = 299
2918                    ; return sine_3_8 * 4 / 8 done
2919                    ; line_number = 301
2920                    ; return sine_4_8 * 4 / 8 start
2921                    ; line_number = 301
2922                    ;info   301, 104
2923 0068 345a          retlw   90
2924                    ; line_number = 301
2925                    ; return sine_4_8 * 4 / 8 done
2926                    ; line_number = 303
2927                    ; return sine_5_8 * 4 / 8 start
2928                    ; line_number = 303
2929                    ;info   303, 105
2930 0069 346a          retlw   106
2931                    ; line_number = 303
2932                    ; return sine_5_8 * 4 / 8 done
2933                    ; line_number = 305
2934                    ; return sine_6_8 * 4 / 8 start
2935                    ; line_number = 305
2936                    ;info   305, 106
2937 006a 3476          retlw   118
2938                    ; line_number = 305
2939                    ; return sine_6_8 * 4 / 8 done
2940                    ; line_number = 307
2941                    ; return sine_7_8 * 4 / 8 start
2942                    ; line_number = 307
2943                    ;info   307, 107
2944 006b 347d          retlw   125
2945                    ; line_number = 307
2946                    ; return sine_7_8 * 4 / 8 done
2947                    ; line_number = 309
2948                    ; return sine_8_8 * 4 / 8 start
2949                    ; line_number = 309
2950                    ;info   309, 108
2951 006c 347f          retlw   127
2952                    ; line_number = 309
2953                    ; return sine_8_8 * 4 / 8 done
2954                    ; line_number = 311
2955                    ; return sine_7_8 * 4 / 8 start
2956                    ; line_number = 311
2957                    ;info   311, 109
2958 006d 347d          retlw   125
2959                    ; line_number = 311
2960                    ; return sine_7_8 * 4 / 8 done
2961                    ; line_number = 313
2962                    ; return sine_6_8 * 4 / 8 start
2963                    ; line_number = 313
2964                    ;info   313, 110
2965 006e 3476          retlw   118
2966                    ; line_number = 313
2967                    ; return sine_6_8 * 4 / 8 done
2968                    ; line_number = 315
2969                    ; return sine_5_8 * 4 / 8 start
2970                    ; line_number = 315
2971                    ;info   315, 111
2972 006f 346a          retlw   106
2973                    ; line_number = 315
2974                    ; return sine_5_8 * 4 / 8 done
2975                    ; line_number = 317
2976                    ; return sine_4_8 * 4 / 8 start
2977                    ; line_number = 317
2978                    ;info   317, 112
2979 0070 345a          retlw   90
2980                    ; line_number = 317
2981                    ; return sine_4_8 * 4 / 8 done
2982                    ; line_number = 319
2983                    ; return sine_3_8 * 4 / 8 start
2984                    ; line_number = 319
2985                    ;info   319, 113
2986 0071 3447          retlw   71
2987                    ; line_number = 319
2988                    ; return sine_3_8 * 4 / 8 done
2989                    ; line_number = 321
2990                    ; return sine_2_8 * 4 / 8 start
2991                    ; line_number = 321
2992                    ;info   321, 114
2993 0072 3431          retlw   49
2994                    ; line_number = 321
2995                    ; return sine_2_8 * 4 / 8 done
2996                    ; line_number = 323
2997                    ; return sine_1_8 * 4 / 8 start
2998                    ; line_number = 323
2999                    ;info   323, 115
3000 0073 3419          retlw   25
3001                    ; line_number = 323
3002                    ; return sine_1_8 * 4 / 8 done
3003            
3004                    ; line_number = 326
3005                    ; return sine_0_8 * 5 / 8 start
3006                    ; line_number = 326
3007                    ;info   326, 116
3008 0074 3400          retlw   0
3009                    ; line_number = 326
3010                    ; return sine_0_8 * 5 / 8 done
3011                    ; line_number = 328
3012                    ; return sine_1_8 * 5 / 8 start
3013                    ; line_number = 328
3014                    ;info   328, 117
3015 0075 341f          retlw   31
3016                    ; line_number = 328
3017                    ; return sine_1_8 * 5 / 8 done
3018                    ; line_number = 330
3019                    ; return sine_2_8 * 5 / 8 start
3020                    ; line_number = 330
3021                    ;info   330, 118
3022 0076 343d          retlw   61
3023                    ; line_number = 330
3024                    ; return sine_2_8 * 5 / 8 done
3025                    ; line_number = 332
3026                    ; return sine_3_8 * 5 / 8 start
3027                    ; line_number = 332
3028                    ;info   332, 119
3029 0077 3458          retlw   88
3030                    ; line_number = 332
3031                    ; return sine_3_8 * 5 / 8 done
3032                    ; line_number = 334
3033                    ; return sine_4_8 * 5 / 8 start
3034                    ; line_number = 334
3035                    ;info   334, 120
3036 0078 3470          retlw   112
3037                    ; line_number = 334
3038                    ; return sine_4_8 * 5 / 8 done
3039                    ; line_number = 336
3040                    ; return sine_5_8 * 5 / 8 start
3041                    ; line_number = 336
3042                    ;info   336, 121
3043 0079 3484          retlw   132
3044                    ; line_number = 336
3045                    ; return sine_5_8 * 5 / 8 done
3046                    ; line_number = 338
3047                    ; return sine_6_8 * 5 / 8 start
3048                    ; line_number = 338
3049                    ;info   338, 122
3050 007a 3493          retlw   147
3051                    ; line_number = 338
3052                    ; return sine_6_8 * 5 / 8 done
3053                    ; line_number = 340
3054                    ; return sine_7_8 * 5 / 8 start
3055                    ; line_number = 340
3056                    ;info   340, 123
3057 007b 349c          retlw   156
3058                    ; line_number = 340
3059                    ; return sine_7_8 * 5 / 8 done
3060                    ; line_number = 342
3061                    ; return sine_8_8 * 5 / 8 start
3062                    ; line_number = 342
3063                    ;info   342, 124
3064 007c 349f          retlw   159
3065                    ; line_number = 342
3066                    ; return sine_8_8 * 5 / 8 done
3067                    ; line_number = 344
3068                    ; return sine_7_8 * 5 / 8 start
3069                    ; line_number = 344
3070                    ;info   344, 125
3071 007d 349c          retlw   156
3072                    ; line_number = 344
3073                    ; return sine_7_8 * 5 / 8 done
3074                    ; line_number = 346
3075                    ; return sine_6_8 * 5 / 8 start
3076                    ; line_number = 346
3077                    ;info   346, 126
3078 007e 3493          retlw   147
3079                    ; line_number = 346
3080                    ; return sine_6_8 * 5 / 8 done
3081                    ; line_number = 348
3082                    ; return sine_5_8 * 5 / 8 start
3083                    ; line_number = 348
3084                    ;info   348, 127
3085 007f 3484          retlw   132
3086                    ; line_number = 348
3087                    ; return sine_5_8 * 5 / 8 done
3088                    ; line_number = 350
3089                    ; return sine_4_8 * 5 / 8 start
3090                    ; line_number = 350
3091                    ;info   350, 128
3092 0080 3470          retlw   112
3093                    ; line_number = 350
3094                    ; return sine_4_8 * 5 / 8 done
3095                    ; line_number = 352
3096                    ; return sine_3_8 * 5 / 8 start
3097                    ; line_number = 352
3098                    ;info   352, 129
3099 0081 3458          retlw   88
3100                    ; line_number = 352
3101                    ; return sine_3_8 * 5 / 8 done
3102                    ; line_number = 354
3103                    ; return sine_2_8 * 5 / 8 start
3104                    ; line_number = 354
3105                    ;info   354, 130
3106 0082 343d          retlw   61
3107                    ; line_number = 354
3108                    ; return sine_2_8 * 5 / 8 done
3109                    ; line_number = 356
3110                    ; return sine_1_8 * 5 / 8 start
3111                    ; line_number = 356
3112                    ;info   356, 131
3113 0083 341f          retlw   31
3114                    ; line_number = 356
3115                    ; return sine_1_8 * 5 / 8 done
3116            
3117                    ; line_number = 359
3118                    ; return sine_0_8 * 6 / 8 start
3119                    ; line_number = 359
3120                    ;info   359, 132
3121 0084 3400          retlw   0
3122                    ; line_number = 359
3123                    ; return sine_0_8 * 6 / 8 done
3124                    ; line_number = 361
3125                    ; return sine_1_8 * 6 / 8 start
3126                    ; line_number = 361
3127                    ;info   361, 133
3128 0085 3425          retlw   37
3129                    ; line_number = 361
3130                    ; return sine_1_8 * 6 / 8 done
3131                    ; line_number = 363
3132                    ; return sine_2_8 * 6 / 8 start
3133                    ; line_number = 363
3134                    ;info   363, 134
3135 0086 3449          retlw   73
3136                    ; line_number = 363
3137                    ; return sine_2_8 * 6 / 8 done
3138                    ; line_number = 365
3139                    ; return sine_3_8 * 6 / 8 start
3140                    ; line_number = 365
3141                    ;info   365, 135
3142 0087 346a          retlw   106
3143                    ; line_number = 365
3144                    ; return sine_3_8 * 6 / 8 done
3145                    ; line_number = 367
3146                    ; return sine_4_8 * 6 / 8 start
3147                    ; line_number = 367
3148                    ;info   367, 136
3149 0088 3487          retlw   135
3150                    ; line_number = 367
3151                    ; return sine_4_8 * 6 / 8 done
3152                    ; line_number = 369
3153                    ; return sine_5_8 * 6 / 8 start
3154                    ; line_number = 369
3155                    ;info   369, 137
3156 0089 349f          retlw   159
3157                    ; line_number = 369
3158                    ; return sine_5_8 * 6 / 8 done
3159                    ; line_number = 371
3160                    ; return sine_6_8 * 6 / 8 start
3161                    ; line_number = 371
3162                    ;info   371, 138
3163 008a 34b1          retlw   177
3164                    ; line_number = 371
3165                    ; return sine_6_8 * 6 / 8 done
3166                    ; line_number = 373
3167                    ; return sine_7_8 * 6 / 8 start
3168                    ; line_number = 373
3169                    ;info   373, 139
3170 008b 34bb          retlw   187
3171                    ; line_number = 373
3172                    ; return sine_7_8 * 6 / 8 done
3173                    ; line_number = 375
3174                    ; return sine_8_8 * 6 / 8 start
3175                    ; line_number = 375
3176                    ;info   375, 140
3177 008c 34bf          retlw   191
3178                    ; line_number = 375
3179                    ; return sine_8_8 * 6 / 8 done
3180                    ; line_number = 377
3181                    ; return sine_7_8 * 6 / 8 start
3182                    ; line_number = 377
3183                    ;info   377, 141
3184 008d 34bb          retlw   187
3185                    ; line_number = 377
3186                    ; return sine_7_8 * 6 / 8 done
3187                    ; line_number = 379
3188                    ; return sine_6_8 * 6 / 8 start
3189                    ; line_number = 379
3190                    ;info   379, 142
3191 008e 34b1          retlw   177
3192                    ; line_number = 379
3193                    ; return sine_6_8 * 6 / 8 done
3194                    ; line_number = 381
3195                    ; return sine_5_8 * 6 / 8 start
3196                    ; line_number = 381
3197                    ;info   381, 143
3198 008f 349f          retlw   159
3199                    ; line_number = 381
3200                    ; return sine_5_8 * 6 / 8 done
3201                    ; line_number = 383
3202                    ; return sine_4_8 * 6 / 8 start
3203                    ; line_number = 383
3204                    ;info   383, 144
3205 0090 3487          retlw   135
3206                    ; line_number = 383
3207                    ; return sine_4_8 * 6 / 8 done
3208                    ; line_number = 385
3209                    ; return sine_3_8 * 6 / 8 start
3210                    ; line_number = 385
3211                    ;info   385, 145
3212 0091 346a          retlw   106
3213                    ; line_number = 385
3214                    ; return sine_3_8 * 6 / 8 done
3215                    ; line_number = 387
3216                    ; return sine_2_8 * 6 / 8 start
3217                    ; line_number = 387
3218                    ;info   387, 146
3219 0092 3449          retlw   73
3220                    ; line_number = 387
3221                    ; return sine_2_8 * 6 / 8 done
3222                    ; line_number = 389
3223                    ; return sine_1_8 * 6 / 8 start
3224                    ; line_number = 389
3225                    ;info   389, 147
3226 0093 3425          retlw   37
3227                    ; line_number = 389
3228                    ; return sine_1_8 * 6 / 8 done
3229            
3230                    ; line_number = 392
3231                    ; return sine_0_8 * 7 / 8 start
3232                    ; line_number = 392
3233                    ;info   392, 148
3234 0094 3400          retlw   0
3235                    ; line_number = 392
3236                    ; return sine_0_8 * 7 / 8 done
3237                    ; line_number = 394
3238                    ; return sine_1_8 * 7 / 8 start
3239                    ; line_number = 394
3240                    ;info   394, 149
3241 0095 342b          retlw   43
3242                    ; line_number = 394
3243                    ; return sine_1_8 * 7 / 8 done
3244                    ; line_number = 396
3245                    ; return sine_2_8 * 7 / 8 start
3246                    ; line_number = 396
3247                    ;info   396, 150
3248 0096 3455          retlw   85
3249                    ; line_number = 396
3250                    ; return sine_2_8 * 7 / 8 done
3251                    ; line_number = 398
3252                    ; return sine_3_8 * 7 / 8 start
3253                    ; line_number = 398
3254                    ;info   398, 151
3255 0097 347c          retlw   124
3256                    ; line_number = 398
3257                    ; return sine_3_8 * 7 / 8 done
3258                    ; line_number = 400
3259                    ; return sine_4_8 * 7 / 8 start
3260                    ; line_number = 400
3261                    ;info   400, 152
3262 0098 349d          retlw   157
3263                    ; line_number = 400
3264                    ; return sine_4_8 * 7 / 8 done
3265                    ; line_number = 402
3266                    ; return sine_5_8 * 7 / 8 start
3267                    ; line_number = 402
3268                    ;info   402, 153
3269 0099 34b9          retlw   185
3270                    ; line_number = 402
3271                    ; return sine_5_8 * 7 / 8 done
3272                    ; line_number = 404
3273                    ; return sine_6_8 * 7 / 8 start
3274                    ; line_number = 404
3275                    ;info   404, 154
3276 009a 34ce          retlw   206
3277                    ; line_number = 404
3278                    ; return sine_6_8 * 7 / 8 done
3279                    ; line_number = 406
3280                    ; return sine_7_8 * 7 / 8 start
3281                    ; line_number = 406
3282                    ;info   406, 155
3283 009b 34da          retlw   218
3284                    ; line_number = 406
3285                    ; return sine_7_8 * 7 / 8 done
3286                    ; line_number = 408
3287                    ; return sine_8_8 * 7 / 8 start
3288                    ; line_number = 408
3289                    ;info   408, 156
3290 009c 34df          retlw   223
3291                    ; line_number = 408
3292                    ; return sine_8_8 * 7 / 8 done
3293                    ; line_number = 410
3294                    ; return sine_7_8 * 7 / 8 start
3295                    ; line_number = 410
3296                    ;info   410, 157
3297 009d 34da          retlw   218
3298                    ; line_number = 410
3299                    ; return sine_7_8 * 7 / 8 done
3300                    ; line_number = 412
3301                    ; return sine_6_8 * 7 / 8 start
3302                    ; line_number = 412
3303                    ;info   412, 158
3304 009e 34ce          retlw   206
3305                    ; line_number = 412
3306                    ; return sine_6_8 * 7 / 8 done
3307                    ; line_number = 414
3308                    ; return sine_5_8 * 7 / 8 start
3309                    ; line_number = 414
3310                    ;info   414, 159
3311 009f 34b9          retlw   185
3312                    ; line_number = 414
3313                    ; return sine_5_8 * 7 / 8 done
3314                    ; line_number = 416
3315                    ; return sine_4_8 * 7 / 8 start
3316                    ; line_number = 416
3317                    ;info   416, 160
3318 00a0 349d          retlw   157
3319                    ; line_number = 416
3320                    ; return sine_4_8 * 7 / 8 done
3321                    ; line_number = 418
3322                    ; return sine_3_8 * 7 / 8 start
3323                    ; line_number = 418
3324                    ;info   418, 161
3325 00a1 347c          retlw   124
3326                    ; line_number = 418
3327                    ; return sine_3_8 * 7 / 8 done
3328                    ; line_number = 420
3329                    ; return sine_2_8 * 7 / 8 start
3330                    ; line_number = 420
3331                    ;info   420, 162
3332 00a2 3455          retlw   85
3333                    ; line_number = 420
3334                    ; return sine_2_8 * 7 / 8 done
3335                    ; line_number = 422
3336                    ; return sine_1_8 * 7 / 8 start
3337                    ; line_number = 422
3338                    ;info   422, 163
3339 00a3 342b          retlw   43
3340                    ; line_number = 422
3341                    ; return sine_1_8 * 7 / 8 done
3342            
3343                    ; line_number = 425
3344                    ; return sine_0_8 start
3345                    ; line_number = 425
3346                    ;info   425, 164
3347 00a4 3400          retlw   0
3348                    ; line_number = 425
3349                    ; return sine_0_8 done
3350                    ; line_number = 427
3351                    ; return sine_1_8 start
3352                    ; line_number = 427
3353                    ;info   427, 165
3354 00a5 3432          retlw   50
3355                    ; line_number = 427
3356                    ; return sine_1_8 done
3357                    ; line_number = 429
3358                    ; return sine_2_8 start
3359                    ; line_number = 429
3360                    ;info   429, 166
3361 00a6 3462          retlw   98
3362                    ; line_number = 429
3363                    ; return sine_2_8 done
3364                    ; line_number = 431
3365                    ; return sine_3_8 start
3366                    ; line_number = 431
3367                    ;info   431, 167
3368 00a7 348e          retlw   142
3369                    ; line_number = 431
3370                    ; return sine_3_8 done
3371                    ; line_number = 433
3372                    ; return sine_4_8 start
3373                    ; line_number = 433
3374                    ;info   433, 168
3375 00a8 34b4          retlw   180
3376                    ; line_number = 433
3377                    ; return sine_4_8 done
3378                    ; line_number = 435
3379                    ; return sine_5_8 start
3380                    ; line_number = 435
3381                    ;info   435, 169
3382 00a9 34d4          retlw   212
3383                    ; line_number = 435
3384                    ; return sine_5_8 done
3385                    ; line_number = 437
3386                    ; return sine_6_8 start
3387                    ; line_number = 437
3388                    ;info   437, 170
3389 00aa 34ec          retlw   236
3390                    ; line_number = 437
3391                    ; return sine_6_8 done
3392                    ; line_number = 439
3393                    ; return sine_7_8 start
3394                    ; line_number = 439
3395                    ;info   439, 171
3396 00ab 34fa          retlw   250
3397                    ; line_number = 439
3398                    ; return sine_7_8 done
3399                    ; line_number = 441
3400                    ; return sine_8_8 start
3401                    ; line_number = 441
3402                    ;info   441, 172
3403 00ac 34ff          retlw   255
3404                    ; line_number = 441
3405                    ; return sine_8_8 done
3406                    ; line_number = 443
3407                    ; return sine_7_8 start
3408                    ; line_number = 443
3409                    ;info   443, 173
3410 00ad 34fa          retlw   250
3411                    ; line_number = 443
3412                    ; return sine_7_8 done
3413                    ; line_number = 445
3414                    ; return sine_6_8 start
3415                    ; line_number = 445
3416                    ;info   445, 174
3417 00ae 34ec          retlw   236
3418                    ; line_number = 445
3419                    ; return sine_6_8 done
3420                    ; line_number = 447
3421                    ; return sine_5_8 start
3422                    ; line_number = 447
3423                    ;info   447, 175
3424 00af 34d4          retlw   212
3425                    ; line_number = 447
3426                    ; return sine_5_8 done
3427                    ; line_number = 449
3428                    ; return sine_4_8 start
3429                    ; line_number = 449
3430                    ;info   449, 176
3431 00b0 34b4          retlw   180
3432                    ; line_number = 449
3433                    ; return sine_4_8 done
3434                    ; line_number = 451
3435                    ; return sine_3_8 start
3436                    ; line_number = 451
3437                    ;info   451, 177
3438 00b1 348e          retlw   142
3439                    ; line_number = 451
3440                    ; return sine_3_8 done
3441                    ; line_number = 453
3442                    ; return sine_2_8 start
3443                    ; line_number = 453
3444                    ;info   453, 178
3445 00b2 3462          retlw   98
3446                    ; line_number = 453
3447                    ; return sine_2_8 done
3448                    ; line_number = 455
3449                    ; return sine_1_8 start
3450                    ; line_number = 455
3451                    ;info   455, 179
3452 00b3 3432          retlw   50
3453                    ; line_number = 455
3454                    ; return sine_1_8 done
3455            
3456            
3457   00b4 :   sine__146:
3458                    ; line_number = 159
3459                    ;  switch angle done
3460                    ; delay after procedure statements=non-uniform
3461                    ; Exiting procedure with no return(s); infinite loop fail
3462   00b4 :   sine__147:
3463 00b4 28b4          goto    sine__147
3464            
3465            
3466            
3467            
3468                    ; #procedure test_mode
3469                    ; #    arguments_none
3470                    ; #    returns_nothing
3471                    ; #
3472                    ; #    # This procedure is used for testing only.
3473                    ; #
3474                    ; #    local command byte
3475                    ; #    local high byte
3476                    ; #    local low byte
3477                    ; #    local voltage byte
3478                    ; #
3479                    ; #    # Test 3: Verify that we can write to D/A chip:
3480                    ; #    dac := 0
3481                    ; #    low := 0
3482                    ; #    high := 0
3483                    ; #    dac_update := 0
3484                    ; #    loop_forever
3485                    ; #	#ldac := 0
3486                    ; #	ldac := 1
3487                    ; #	load := 1
3488                    ; #	call _uart_byte_put('>')
3489                    ; #	command := _uart_byte_get()
3490                    ; #	call _uart_byte_put(command)
3491                    ; #	if '0' <= command && command <= '7'
3492                    ; #	    # Select a channel:
3493                    ; #	    dac := command - '0'
3494                    ; #	if 'a' <= command && command <= 'p'
3495                    ; #	    low := command - 'a'
3496                    ; #	if 'A' <= command && command <= 'P'
3497                    ; #	    # Set a voltage:
3498                    ; #	    high := command - 'A'
3499                    ; #	if command = 's'
3500                    ; #	    # Set voltage:
3501                    ; #	    call _uart_crlf_put()
3502                    ; #	    voltage := (high << 4) | low
3503                    ; #	
3504                    ; #	    call _uart_hex_put(dac)
3505                    ; #	    call _uart_hex_put(voltage)
3506                    ; #	    call _uart_space_put()
3507                    ; #
3508                    ; #	    # Select the DAC to output to:
3509                    ; #	    call spi_send(dac << 1)
3510                    ; #	    call spi_send(voltage)
3511                    ; #
3512                    ; #	    # Wait until the command is finished sending:
3513                    ; #	    while !_bf
3514                    ; #	    	do_nothing
3515                    ; #
3516                    ; #	    # Load the command into the DAC chip:
3517                    ; #	    load := 0
3518                    ; #	    load := 1
3519                    ; #
3520                    ; #	    # Force the DAC values out:
3521                    ; #	    ldac := 0
3522                    ; #	    ldac := 1
3523                    ; #	if command = 't'
3524                    ; #	    call _uart_byte_put('s')
3525                    ; #	    call _uart_hex_put(_sspstat)
3526                    ; #	    call _uart_hex_put(_sspcon)
3527                    ; #	    call _uart_byte_put('t')
3528                    ; #	    call _uart_hex_put(_trisa)
3529                    ; #	    call _uart_hex_put(_trisc)
3530                    ; #	    call _uart_byte_put('m')
3531                    ; #	    call _uart_hex_put(_tmr0)
3532                    ; #	    call _uart_hex_put(_option_reg)
3533                    ; #	    call _uart_hex_put(_intcon)
3534                    ; #	if command = 'T'
3535                    ; #	    call _uart_byte_put('d')
3536                    ; #	    call _uart_hex_put(port_d)
3537                    ; #	    call _uart_byte_put('_')
3538                    ; #	    call _uart_byte_put('d')
3539                    ; #	    call _uart_hex_put(_portd)
3540                    ; #	if command = 'u'
3541                    ; #	    _portd := (high << 4) | low
3542                    ; #	if command = 'U'
3543                    ; #	    port_d := (high << 4) | low
3544                    ; #	if command = 'v'
3545                    ; #	    _gie := 1
3546                    ; #	    _tmr0ie := 1
3547                    ; #	if command = 'V'
3548                    ; #	    _gie := 0
3549                    ; #	    _tmr0ie := 0
3550                    ; #	if command = 'w'
3551                    ; #	    a_angle := a_angle + a_amount
3552                    ; #	    a_dac_update := 1
3553                    ; #	if command = 'W'
3554                    ; #	    a_angle := a_angle - a_amount
3555                    ; #	    a_dac_update := 1
3556                    ; #	if command = 'x'
3557                    ; #	    x_angle := x_angle + x_amount
3558                    ; #	    x_dac_update := 1
3559                    ; #	if command = 'X'
3560                    ; #	    x_angle := x_angle - x_amount
3561                    ; #	    x_dac_update := 1
3562                    ; #	if command = 'y'
3563                    ; #	    y_angle := y_angle + y_amount
3564                    ; #	    y_dac_update := 1
3565                    ; #	if command = 'Y'
3566                    ; #	    y_angle := y_angle - y_amount
3567                    ; #	    y_dac_update := 1
3568                    ; #	if command = 'z'
3569                    ; #	    z_angle := z_angle + z_amount
3570                    ; #	    z_dac_update := 1
3571                    ; #	if command = 'Z'
3572                    ; #	    z_angle := z_angle - z_amount
3573                    ; #	    z_dac_update := 1
3574                    ; #	call _uart_crlf_put()
3575                    ; #
3576                    ; #	# This is the code that forces the DAC's to be updated:
3577                    ; #	if dac_update != 0
3578                    ; #	    if a_dac_update
3579                    ; #		a_dac_update := 0
3580                    ; #		a_mask := dac_setup(a_angle, a_strength, 0) << 4
3581                    ; #	    if z_dac_update
3582                    ; #		z_dac_update := 0
3583                    ; #		z_mask := dac_setup(z_angle, z_strength, 2)
3584                    ; #	    if y_dac_update
3585                    ; #		y_dac_update := 0
3586                    ; #		y_mask := dac_setup(y_angle, y_strength, 4) << 4
3587                    ; #	    if x_dac_update
3588                    ; #		x_dac_update := 0
3589                    ; #		x_mask := dac_setup(x_angle, z_strength, 6)
3590                    ; #	    port_b := a_mask | z_mask
3591                    ; #	    port_d := y_mask | x_mask
3592                    ; #
3593                    ; #	    #call _uart_byte_put('b')
3594                    ; #	    #call _uart_hex_put(port_b)
3595                    ; #	    #call _uart_byte_put('d')
3596                    ; #	    #call _uart_hex_put(port_d)
3597                    ; #
3598                    ; #	    # Force the DAC values out:
3599                    ; #	    ldac := 0
3600                    ; #	    ldac := 1
3601            
3602            
3603                    ; line_number = 593
3604                    ;info   593, 181
3605                    ; procedure main
3606   00b5 :   main:
3607                    ; Initialize some registers
3608 00b5 019f          clrf    _adcon0
3609 00b6 300f          movlw   15
3610 00b7 1683          bsf     __rp0___byte, __rp0___bit
3611 00b8 009f          movwf   _adcon1
3612 00b9 303f          movlw   63
3613 00ba 0085          movwf   _trisa
3614 00bb 0186          clrf    _trisb
3615 00bc 3081          movlw   129
3616 00bd 0087          movwf   _trisc
3617 00be 0188          clrf    _trisd
3618 00bf 3003          movlw   3
3619 00c0 0089          movwf   _trise
3620                    ; arguments_none
3621                    ; line_number = 595
3622                    ;  returns_nothing
3623            
3624                    ; # Turn off general interrupts:
3625                    ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:00=>00)
3626                    ; line_number = 598
3627                    ;  _gie := _false
3628                    ;info   598, 193
3629 00c1 138b          bcf     _gie___byte, _gie___bit
3630            
3631                    ; # The {strobe} line is actually an output.  It *must* be
3632                    ; # left high pretty much all the time.  It only gets strobed
3633                    ; # low for small number of cycles (currently 4uS) every
3634                    ; # 1/{refresh_rate}'th  of a second.  If {strobe} is left
3635                    ; # low for an extended period of time, it simply turns on
3636                    ; # the H-bridges and overrides the current limit detection
3637                    ; # circuitry.  This can cause the H-bridges to burn out.
3638                    ; # I know this from very painful experience.  The solution is to
3639                    ; # define {strobe} as a input and then switch it over to being
3640                    ; # an output in the initialization code:
3641            
3642                    ; # Step 1: Set {strobe} high first:
3643                    ; line_number = 612
3644                    ;  strobe := _true
3645                    ;info   612, 194
3646 00c2 1283          bcf     __rp0___byte, __rp0___bit
3647 00c3 1407          bsf     strobe___byte, strobe___bit
3648                    ; # Step 2: Set {_portb} and {_portd} to 0 so that the H-bridges are
3649                    ; # set not to conduct any current even if they are turned on.
3650                    ; line_number = 615
3651                    ;  _portb := 0
3652                    ;info   615, 196
3653 00c4 0186          clrf    _portb
3654                    ; line_number = 616
3655                    ;  _portd := 0
3656                    ;info   616, 197
3657 00c5 0188          clrf    _portd
3658                    ; # Step 3: Enable {strobe} as an output by setting {_trisc}@0 to 0:
3659                    ; line_number = 618
3660                    ;  _trisc@0 := _false
3661                    ;info   618, 198
3662 00000087 = main__select__1___byte equ _trisc
3663 00000000 = main__select__1___bit equ 0
3664 00c6 1683          bsf     __rp0___byte, __rp0___bit
3665 00c7 1007          bcf     main__select__1___byte, main__select__1___bit
3666            
3667                    ; # Initilize serial port:
3668            
3669                    ; # Do Baud Rate selection and asynch. serial port enable:
3670                    ; # Prescaler = low:
3671                    ; line_number = 624
3672                    ;  _brgh := _true
3673                    ;info   624, 200
3674 00c8 1518          bsf     _brgh___byte, _brgh___bit
3675                    ; # Baud rate = 19200 Baud:
3676                    ; line_number = 626
3677                    ;  _spbrg := 64
3678                    ;info   626, 201
3679 00c9 3040          movlw   64
3680 00ca 0099          movwf   _spbrg
3681                    ; # Asynchronous mode:
3682                    ; line_number = 628
3683                    ;  _sync := _false
3684                    ;info   628, 203
3685 00cb 1218          bcf     _sync___byte, _sync___bit
3686                    ; # Serial port enable:
3687                    ; line_number = 630
3688                    ;  _spen := _true
3689                    ;info   630, 204
3690 00cc 1283          bcf     __rp0___byte, __rp0___bit
3691 00cd 1798          bsf     _spen___byte, _spen___bit
3692                    ; line_number = 631
3693                    ;  _txif := _false
3694                    ;info   631, 206
3695 00ce 120c          bcf     _txif___byte, _txif___bit
3696            
3697                    ; # Enable the transmitter:
3698                    ; # 8-bit mode:
3699                    ; line_number = 635
3700                    ;  _tx9 := _false
3701                    ;info   635, 207
3702 00cf 1683          bsf     __rp0___byte, __rp0___bit
3703 00d0 1318          bcf     _tx9___byte, _tx9___bit
3704                    ; # Enable transmitter:
3705                    ; line_number = 637
3706                    ;  _txen := _true
3707                    ;info   637, 209
3708 00d1 1698          bsf     _txen___byte, _txen___bit
3709            
3710                    ; # Enable the receiver:
3711                    ; # 8-bit mode:
3712                    ; line_number = 641
3713                    ;  _rx9 := _false
3714                    ;info   641, 210
3715 00d2 1283          bcf     __rp0___byte, __rp0___bit
3716 00d3 1318          bcf     _rx9___byte, _rx9___bit
3717                    ; # Disable address:
3718                    ; line_number = 643
3719                    ;  _adden := _false
3720                    ;info   643, 212
3721 00d4 1198          bcf     _adden___byte, _adden___bit
3722                    ; # Continuous receive enable:
3723                    ; line_number = 645
3724                    ;  _cren := _true
3725                    ;info   645, 213
3726 00d5 1618          bsf     _cren___byte, _cren___bit
3727                    ; # Serial receive enable:
3728                    ; line_number = 647
3729                    ;  _sren := _true
3730                    ;info   647, 214
3731 00d6 1698          bsf     _sren___byte, _sren___bit
3732            
3733                    ; # Test 1: Say "Hi!":
3734                    ; #loop_forever
3735                    ; #	call _uart_byte_put('H')
3736                    ; #	call _uart_byte_put('i')
3737                    ; #	call _uart_byte_put('!')
3738                    ; #	call _uart_crlf_put()
3739            
3740                    ; # Test 2: Double Echo:
3741                    ; #loop_forever
3742                    ; #	dac := _uart_byte_get()
3743                    ; #	call _uart_byte_put(dac)
3744                    ; #	call _uart_byte_put(dac)
3745            
3746                    ; # Initialize TMR0:
3747                    ; # Set OPTION_REG<2:0> to {tmr0_prescale_power}:
3748                    ; line_number = 664
3749                    ;  _option_reg := tmr0_prescale_power
3750                    ;info   664, 215
3751 00d7 1683          bsf     __rp0___byte, __rp0___bit
3752 00d8 0181          clrf    _option_reg
3753                    ; # Prescaler assigned to TMR0 module
3754                    ; line_number = 666
3755                    ;  _psa := _false
3756                    ;info   666, 217
3757 00d9 1181          bcf     _psa___byte, _psa___bit
3758                    ; # TMR0 runs of system clock
3759                    ; line_number = 668
3760                    ;  _t0cs := _false
3761                    ;info   668, 218
3762 00da 1281          bcf     _t0cs___byte, _t0cs___bit
3763            
3764                    ; # The synchronous serial port can be run in master mode at three
3765                    ; # different clock rates:
3766                    ; #
3767                    ; #    Fosc/4 - SSPM<3:0> = 0000   = 5MHz @ Fosc=20MHz
3768                    ; #    Fosc/16 - SSPM<3:0> = 0001  = 1.25MHz @ Fosc=20MHz
3769                    ; #    Fosc/64 - SSPM<3:0> = 0010  = .3125MHz @ Fosc=20Mhz
3770                    ; #
3771                    ; # Technically, the specifications for the TLC5628 8-channel DAC
3772                    ; # specify the following:
3773                    ; #
3774                    ; #    Maximum clock rate = 1 MHz suggesting Fosc/64
3775                    ; #    Minimum setup times = 50ns sugessing Fosc/16
3776                    ; #    Mininum pulse widths = 250ns suggesting Fosc/16
3777                    ; #
3778                    ; # In practice, everything seems to work just fine with Fosc/4.
3779                    ; # Go figure.
3780            
3781                    ; # Initialize {_sspcon}:
3782                    ; line_number = 688
3783                    ;  _sspcon := 0
3784                    ;info   688, 219
3785 00db 1283          bcf     __rp0___byte, __rp0___bit
3786 00dc 0194          clrf    _sspcon
3787                    ; # Transmit on idle to active:
3788                    ; line_number = 690
3789                    ;  _cke := _false
3790                    ;info   690, 221
3791 00dd 1683          bsf     __rp0___byte, __rp0___bit
3792 00de 1314          bcf     _cke___byte, _cke___bit
3793            
3794                    ; # Initialize {_sspstat}:
3795                    ; line_number = 693
3796                    ;  _sspstat := 0
3797                    ;info   693, 223
3798 00df 0194          clrf    _sspstat
3799                    ; # Idle SCK is low:
3800                    ; line_number = 695
3801                    ;  _ckp := _false
3802                    ;info   695, 224
3803 00e0 1283          bcf     __rp0___byte, __rp0___bit
3804 00e1 1214          bcf     _ckp___byte, _ckp___bit
3805                    ; # Ensure that SDO is an output:
3806                    ; line_number = 697
3807                    ;  _trisc5 := _false
3808                    ;info   697, 226
3809 00e2 1683          bsf     __rp0___byte, __rp0___bit
3810 00e3 1287          bcf     _trisc5___byte, _trisc5___bit
3811                    ; # Ensure that SCK is an output:
3812                    ; line_number = 699
3813                    ;  _trisc3 := _false
3814                    ;info   699, 228
3815 00e4 1187          bcf     _trisc3___byte, _trisc3___bit
3816                    ; # {load} is active low, so it idles at high:
3817                    ; line_number = 701
3818                    ;  load := _true
3819                    ;info   701, 229
3820 00e5 1283          bcf     __rp0___byte, __rp0___bit
3821 00e6 1507          bsf     load___byte, load___bit
3822                    ; # {ldac} is active low, so it idles at high:
3823                    ; line_number = 703
3824                    ;  ldac := _true
3825                    ;info   703, 231
3826 00e7 1607          bsf     ldac___byte, ldac___bit
3827                    ; # Enable Synchronous Serial Port:
3828                    ; line_number = 705
3829                    ;  _sspen := _true
3830                    ;info   705, 232
3831 00e8 1694          bsf     _sspen___byte, _sspen___bit
3832            
3833                    ; # The _bf (buffer full) bit is read-only and it initializes to 0.
3834                    ; # We need to get it set.  This is done by causing the synchronous
3835                    ; # serial port to write (and read) 8 bits:
3836                    ; line_number = 710
3837                    ;  _sspbuf := 0
3838                    ;info   710, 233
3839 00e9 0193          clrf    _sspbuf
3840                    ; # In about 8 cycles {_bf} should be 1:
3841            
3842                    ; # Now initialize the axis angles:
3843                    ; line_number = 714
3844                    ;  a_angle := 0
3845                    ;info   714, 234
3846 00ea 01a6          clrf    a_angle
3847                    ; line_number = 715
3848                    ;  x_angle := 0
3849                    ;info   715, 235
3850 00eb 01a7          clrf    x_angle
3851                    ; line_number = 716
3852                    ;  y_angle := 0
3853                    ;info   716, 236
3854 00ec 01a8          clrf    y_angle
3855                    ; line_number = 717
3856                    ;  z_angle := 0
3857                    ;info   717, 237
3858 00ed 01a9          clrf    z_angle
3859            
3860                    ; # Now intiialize the axis offsets:
3861                    ; # 1 = 11.25 degrees
3862                    ; # 2 = 22.5 degrees
3863                    ; # 4 = 45 degrees (Half Step)
3864                    ; # 8 = 90 degrees (Wave Step)
3865                    ; line_number = 724
3866                    ;  a_amount := 1
3867                    ;info   724, 238
3868 00ee 3001          movlw   1
3869 00ef 00aa          movwf   a_amount
3870                    ; line_number = 725
3871                    ;  x_amount := 1
3872                    ;info   725, 240
3873 00f0 3001          movlw   1
3874 00f1 00ab          movwf   x_amount
3875                    ; line_number = 726
3876                    ;  y_amount := 1
3877                    ;info   726, 242
3878 00f2 3001          movlw   1
3879 00f3 00ac          movwf   y_amount
3880                    ; line_number = 727
3881                    ;  z_amount := 1
3882                    ;info   727, 244
3883 00f4 3001          movlw   1
3884 00f5 00ad          movwf   z_amount
3885            
3886                    ; # Clear any previous states:
3887                    ; line_number = 730
3888                    ;  a_step_previous := _false
3889                    ;info   730, 246
3890 00f6 106f          bcf     a_step_previous___byte, a_step_previous___bit
3891                    ; line_number = 731
3892                    ;  x_step_previous := _false
3893                    ;info   731, 247
3894 00f7 10ef          bcf     x_step_previous___byte, x_step_previous___bit
3895                    ; line_number = 732
3896                    ;  y_step_previous := _false
3897                    ;info   732, 248
3898 00f8 116f          bcf     y_step_previous___byte, y_step_previous___bit
3899                    ; line_number = 733
3900                    ;  z_step_previous := _false
3901                    ;info   733, 249
3902 00f9 11ef          bcf     z_step_previous___byte, z_step_previous___bit
3903                    ; line_number = 734
3904                    ;  dac_update := 0
3905                    ;info   734, 250
3906 00fa 01ae          clrf    dac_update
3907            
3908                    ; # Clear out the mask values:
3909                    ; line_number = 737
3910                    ;  a_mask := 0
3911                    ;info   737, 251
3912 00fb 01af          clrf    a_mask
3913                    ; line_number = 738
3914                    ;  x_mask := 0
3915                    ;info   738, 252
3916 00fc 01b2          clrf    x_mask
3917                    ; line_number = 739
3918                    ;  y_mask := 0
3919                    ;info   739, 253
3920 00fd 01b1          clrf    y_mask
3921                    ; line_number = 740
3922                    ;  z_mask := 0
3923                    ;info   740, 254
3924 00fe 01b0          clrf    z_mask
3925            
3926                    ; # Set the initial strength values:
3927                    ; line_number = 743
3928                    ;  a_strength := 0x70
3929                    ;info   743, 255
3930 00ff 3070          movlw   112
3931 0100 00b3          movwf   a_strength
3932                    ; line_number = 744
3933                    ;  x_strength := 0x70
3934                    ;info   744, 257
3935 0101 3070          movlw   112
3936 0102 00b4          movwf   x_strength
3937                    ; line_number = 745
3938                    ;  y_strength := 0x70
3939                    ;info   745, 259
3940 0103 3070          movlw   112
3941 0104 00b5          movwf   y_strength
3942                    ; line_number = 746
3943                    ;  z_strength := 0x70
3944                    ;info   746, 261
3945 0105 3070          movlw   112
3946 0106 00b6          movwf   z_strength
3947            
3948                    ; # This causes us to enter test mode:
3949                    ; #call test_mode()
3950            
3951                    ; # This is the real code:
3952                    ; line_number = 752
3953                    ;  loop_forever start
3954                    ;info   752, 263
3955   0107 :   main__2:
3956                    ; # See whether the DAC's need to be updated:
3957            
3958                    ; # Do we have any pending DAC updates?
3959                    ; line_number = 756
3960                    ;  if dac_update != 0 start
3961                    ;info   756, 263
3962                    ; Left minus Right
3963 0107 082e          movf    dac_update,w
3964                    ; =>bit_code_emit@symbol(): sym=__z
3965                    ; No 1TEST: true.size=0 false.size=54
3966                    ; No 2TEST: true.size=0 false.size=54
3967                    ; 1GOTO: Single test with GOTO
3968 0108 1903          btfsc   __z___byte, __z___bit
3969 0109 2940          goto    main__7
3970                    ; # Yes: There are pendind DAC updates:
3971                    ; line_number = 758
3972                    ;  if a_dac_update start
3973                    ;info   758, 266
3974                    ; =>bit_code_emit@symbol(): sym=a_dac_update
3975                    ; No 1TEST: true.size=11 false.size=0
3976                    ; No 2TEST: true.size=11 false.size=0
3977                    ; 1GOTO: Single test with GOTO
3978 010a 1dae          btfss   a_dac_update___byte, a_dac_update___bit
3979 010b 2917          goto    main__3
3980                    ; line_number = 759
3981                    ; a_dac_update := _false
3982                    ;info   759, 268
3983 010c 11ae          bcf     a_dac_update___byte, a_dac_update___bit
3984                    ; line_number = 760
3985                    ;  a_mask := dac_setup(a_angle, a_strength, 0) << 4
3986                    ;info   760, 269
3987 010d 0826          movf    a_angle,w
3988 010e 00b9          movwf   dac_setup__angle
3989 010f 0833          movf    a_strength,w
3990 0110 00ba          movwf   dac_setup__strength
3991 0111 3000          movlw   0
3992 0112 2177          call    dac_setup
3993 0113 00af          movwf   a_mask
3994 0114 0eaf          swapf   a_mask,f
3995 0115 30f0          movlw   240
3996 0116 05af          andwf   a_mask,f
3997                    ; Recombine size1 = 0 || size2 = 0
3998   0117 :   main__3:
3999                    ; <=bit_code_emit@symbol; sym=a_dac_update (data:00=>00 code:00=>00)
4000                    ; line_number = 758
4001                    ;  if a_dac_update done
4002                    ; line_number = 761
4003                    ; if z_dac_update start
4004                    ;info   761, 279
4005                    ; =>bit_code_emit@symbol(): sym=z_dac_update
4006                    ; No 1TEST: true.size=8 false.size=0
4007                    ; No 2TEST: true.size=8 false.size=0
4008                    ; 1GOTO: Single test with GOTO
4009 0117 1d2e          btfss   z_dac_update___byte, z_dac_update___bit
4010 0118 2921          goto    main__4
4011                    ; line_number = 762
4012                    ; z_dac_update := _false
4013                    ;info   762, 281
4014 0119 112e          bcf     z_dac_update___byte, z_dac_update___bit
4015                    ; line_number = 763
4016                    ;  z_mask := dac_setup(z_angle, z_strength, 2)
4017                    ;info   763, 282
4018 011a 0829          movf    z_angle,w
4019 011b 00b9          movwf   dac_setup__angle
4020 011c 0836          movf    z_strength,w
4021 011d 00ba          movwf   dac_setup__strength
4022 011e 3002          movlw   2
4023 011f 2177          call    dac_setup
4024 0120 00b0          movwf   z_mask
4025                    ; Recombine size1 = 0 || size2 = 0
4026   0121 :   main__4:
4027                    ; <=bit_code_emit@symbol; sym=z_dac_update (data:00=>00 code:00=>00)
4028                    ; line_number = 761
4029                    ; if z_dac_update done
4030                    ; line_number = 764
4031                    ; if y_dac_update start
4032                    ;info   764, 289
4033                    ; =>bit_code_emit@symbol(): sym=y_dac_update
4034                    ; No 1TEST: true.size=11 false.size=0
4035                    ; No 2TEST: true.size=11 false.size=0
4036                    ; 1GOTO: Single test with GOTO
4037 0121 1cae          btfss   y_dac_update___byte, y_dac_update___bit
4038 0122 292e          goto    main__5
4039                    ; line_number = 765
4040                    ; y_dac_update := _false
4041                    ;info   765, 291
4042 0123 10ae          bcf     y_dac_update___byte, y_dac_update___bit
4043                    ; line_number = 766
4044                    ;  y_mask := dac_setup(y_angle, y_strength, 4) << 4
4045                    ;info   766, 292
4046 0124 0828          movf    y_angle,w
4047 0125 00b9          movwf   dac_setup__angle
4048 0126 0835          movf    y_strength,w
4049 0127 00ba          movwf   dac_setup__strength
4050 0128 3004          movlw   4
4051 0129 2177          call    dac_setup
4052 012a 00b1          movwf   y_mask
4053 012b 0eb1          swapf   y_mask,f
4054 012c 30f0          movlw   240
4055 012d 05b1          andwf   y_mask,f
4056                    ; Recombine size1 = 0 || size2 = 0
4057   012e :   main__5:
4058                    ; <=bit_code_emit@symbol; sym=y_dac_update (data:00=>00 code:00=>00)
4059                    ; line_number = 764
4060                    ; if y_dac_update done
4061                    ; line_number = 767
4062                    ; if x_dac_update start
4063                    ;info   767, 302
4064                    ; =>bit_code_emit@symbol(): sym=x_dac_update
4065                    ; No 1TEST: true.size=8 false.size=0
4066                    ; No 2TEST: true.size=8 false.size=0
4067                    ; 1GOTO: Single test with GOTO
4068 012e 1c2e          btfss   x_dac_update___byte, x_dac_update___bit
4069 012f 2938          goto    main__6
4070                    ; line_number = 768
4071                    ; x_dac_update := _false
4072                    ;info   768, 304
4073 0130 102e          bcf     x_dac_update___byte, x_dac_update___bit
4074                    ; line_number = 769
4075                    ;  x_mask := dac_setup(x_angle, z_strength, 6)
4076                    ;info   769, 305
4077 0131 0827          movf    x_angle,w
4078 0132 00b9          movwf   dac_setup__angle
4079 0133 0836          movf    z_strength,w
4080 0134 00ba          movwf   dac_setup__strength
4081 0135 3006          movlw   6
4082 0136 2177          call    dac_setup
4083 0137 00b2          movwf   x_mask
4084                    ; Recombine size1 = 0 || size2 = 0
4085   0138 :   main__6:
4086                    ; <=bit_code_emit@symbol; sym=x_dac_update (data:00=>00 code:00=>00)
4087                    ; line_number = 767
4088                    ; if x_dac_update done
4089                    ; line_number = 770
4090                    ; port_b := a_mask | z_mask
4091                    ;info   770, 312
4092 0138 082f          movf    a_mask,w
4093 0139 0430          iorwf   z_mask,w
4094 013a 00a4          movwf   port_b
4095                    ; line_number = 771
4096                    ;  port_d := y_mask | x_mask
4097                    ;info   771, 315
4098 013b 0831          movf    y_mask,w
4099 013c 0432          iorwf   x_mask,w
4100 013d 00a5          movwf   port_d
4101            
4102                    ; # Turn on TRM0:
4103                    ; line_number = 774
4104                    ;  _gie := _true
4105                    ;info   774, 318
4106 013e 178b          bsf     _gie___byte, _gie___bit
4107                    ; line_number = 775
4108                    ;  _tmr0ie := _true
4109                    ;info   775, 319
4110 013f 168b          bsf     _tmr0ie___byte, _tmr0ie___bit
4111            
4112   0140 :   main__7:
4113                    ; Recombine size1 = 0 || size2 = 0
4114                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
4115                    ; line_number = 756
4116                    ;  if dac_update != 0 done
4117                    ; line_number = 777
4118                    ; call step_check()
4119                    ;info   777, 320
4120 0140 2142          call    step_check
4121            
4122            
4123                    ; line_number = 752
4124                    ;  loop_forever wrap-up
4125 0141 2907          goto    main__2
4126                    ; line_number = 752
4127                    ;  loop_forever done
4128                    ; delay after procedure statements=non-uniform
4129            
4130            
4131            
4132            
4133                    ; line_number = 780
4134                    ;info   780, 322
4135                    ; procedure step_check
4136   0142 :   step_check:
4137                    ; arguments_none
4138                    ; line_number = 782
4139                    ;  returns_nothing
4140            
4141                    ; # This procedure is reponsible for checking to see whether
4142                    ; # a step pulse occurred.
4143            
4144            
4145                    ; # Process any step pulses:
4146                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4147                    ; line_number = 789
4148                    ;  if a_step start
4149                    ;info   789, 322
4150                    ; =>bit_code_emit@symbol(): sym=a_step
4151                    ; No 1TEST: true.size=9 false.size=1
4152                    ; No 2TEST: true.size=9 false.size=1
4153                    ; 2GOTO: Single test with two GOTO's
4154 0142 1e05          btfss   a_step___byte, a_step___bit
4155 0143 294e          goto    step_check__2
4156                    ; line_number = 790
4157                    ; if !a_step_previous start
4158                    ;info   790, 324
4159                    ; =>bit_code_emit@symbol(): sym=a_step_previous
4160                    ; No 1TEST: true.size=0 false.size=6
4161                    ; No 2TEST: true.size=0 false.size=6
4162                    ; 1GOTO: Single test with GOTO
4163 0144 186f          btfsc   a_step_previous___byte, a_step_previous___bit
4164 0145 294c          goto    step_check__1
4165                    ; # We have an edge:
4166                    ; line_number = 792
4167                    ;  a_dac_update := _true
4168                    ;info   792, 326
4169 0146 15ae          bsf     a_dac_update___byte, a_dac_update___bit
4170                    ; line_number = 793
4171                    ;  if a_dir start
4172                    ;info   793, 327
4173                    ; =>bit_code_emit@symbol(): sym=a_dir
4174                    ; line_number = 794
4175                    ; a_angle := a_angle + a_amount
4176                    ;info   794, 327
4177 0147 082a          movf    a_amount,w
4178                    ; line_number = 796
4179                    ; a_angle := a_angle - a_amount
4180                    ;info   796, 328
4181                    ; No 1TEST: true.size=1 false.size=1
4182                    ; 2TEST: two tests with code in both delay slots
4183 0148 1889          btfsc   a_dir___byte, a_dir___bit
4184 0149 07a6          addwf   a_angle,f
4185 014a 1c89          btfss   a_dir___byte, a_dir___bit
4186 014b 02a6          subwf   a_angle,f
4187                    ; <=bit_code_emit@symbol; sym=a_dir (data:00=>00 code:XX=>XX)
4188                    ; line_number = 793
4189                    ;  if a_dir done
4190   014c :   step_check__1:
4191                    ; Recombine size1 = 0 || size2 = 0
4192                    ; <=bit_code_emit@symbol; sym=a_step_previous (data:00=>00 code:00=>00)
4193                    ; line_number = 790
4194                    ; if !a_step_previous done
4195                    ; line_number = 797
4196                    ; a_step_previous := _true
4197                    ;info   797, 332
4198 014c 146f          bsf     a_step_previous___byte, a_step_previous___bit
4199                    ; Recombine code1_bit_states != code2_bit_states
4200 014d 294f          goto    step_check__3
4201                    ; 2GOTO: Starting code 2
4202   014e :   step_check__2:
4203                    ; line_number = 799
4204                    ; a_step_previous := _false
4205                    ;info   799, 334
4206 014e 106f          bcf     a_step_previous___byte, a_step_previous___bit
4207            
4208   014f :   step_check__3:
4209                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
4210                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
4211                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
4212                    ; <=bit_code_emit@symbol; sym=a_step (data:00=>00 code:00=>00)
4213                    ; line_number = 789
4214                    ;  if a_step done
4215                    ; line_number = 801
4216                    ; if x_step start
4217                    ;info   801, 335
4218                    ; =>bit_code_emit@symbol(): sym=x_step
4219                    ; No 1TEST: true.size=9 false.size=1
4220                    ; No 2TEST: true.size=9 false.size=1
4221                    ; 2GOTO: Single test with two GOTO's
4222 014f 1c05          btfss   x_step___byte, x_step___bit
4223 0150 295b          goto    step_check__5
4224                    ; line_number = 802
4225                    ; if !x_step_previous start
4226                    ;info   802, 337
4227                    ; =>bit_code_emit@symbol(): sym=x_step_previous
4228                    ; No 1TEST: true.size=0 false.size=6
4229                    ; No 2TEST: true.size=0 false.size=6
4230                    ; 1GOTO: Single test with GOTO
4231 0151 18ef          btfsc   x_step_previous___byte, x_step_previous___bit
4232 0152 2959          goto    step_check__4
4233                    ; # We have an edge:
4234                    ; line_number = 804
4235                    ;  x_dac_update := _true
4236                    ;info   804, 339
4237 0153 142e          bsf     x_dac_update___byte, x_dac_update___bit
4238                    ; line_number = 805
4239                    ;  if x_dir start
4240                    ;info   805, 340
4241                    ; =>bit_code_emit@symbol(): sym=x_dir
4242                    ; line_number = 806
4243                    ; x_angle := x_angle + x_amount
4244                    ;info   806, 340
4245 0154 082b          movf    x_amount,w
4246                    ; line_number = 808
4247                    ; x_angle := x_angle - x_amount
4248                    ;info   808, 341
4249                    ; No 1TEST: true.size=1 false.size=1
4250                    ; 2TEST: two tests with code in both delay slots
4251 0155 1985          btfsc   x_dir___byte, x_dir___bit
4252 0156 07a7          addwf   x_angle,f
4253 0157 1d85          btfss   x_dir___byte, x_dir___bit
4254 0158 02a7          subwf   x_angle,f
4255                    ; <=bit_code_emit@symbol; sym=x_dir (data:00=>00 code:XX=>XX)
4256                    ; line_number = 805
4257                    ;  if x_dir done
4258   0159 :   step_check__4:
4259                    ; Recombine size1 = 0 || size2 = 0
4260                    ; <=bit_code_emit@symbol; sym=x_step_previous (data:00=>00 code:00=>00)
4261                    ; line_number = 802
4262                    ; if !x_step_previous done
4263                    ; line_number = 809
4264                    ; x_step_previous := _true
4265                    ;info   809, 345
4266 0159 14ef          bsf     x_step_previous___byte, x_step_previous___bit
4267                    ; Recombine code1_bit_states != code2_bit_states
4268 015a 295c          goto    step_check__6
4269                    ; 2GOTO: Starting code 2
4270   015b :   step_check__5:
4271                    ; line_number = 811
4272                    ; x_step_previous := _false
4273                    ;info   811, 347
4274 015b 10ef          bcf     x_step_previous___byte, x_step_previous___bit
4275            
4276   015c :   step_check__6:
4277                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
4278                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
4279                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
4280                    ; <=bit_code_emit@symbol; sym=x_step (data:00=>00 code:00=>00)
4281                    ; line_number = 801
4282                    ; if x_step done
4283                    ; line_number = 813
4284                    ; if y_step start
4285                    ;info   813, 348
4286                    ; =>bit_code_emit@symbol(): sym=y_step
4287                    ; No 1TEST: true.size=9 false.size=1
4288                    ; No 2TEST: true.size=9 false.size=1
4289                    ; 2GOTO: Single test with two GOTO's
4290 015c 1c09          btfss   y_step___byte, y_step___bit
4291 015d 2968          goto    step_check__8
4292                    ; line_number = 814
4293                    ; if !y_step_previous start
4294                    ;info   814, 350
4295                    ; =>bit_code_emit@symbol(): sym=y_step_previous
4296                    ; No 1TEST: true.size=0 false.size=6
4297                    ; No 2TEST: true.size=0 false.size=6
4298                    ; 1GOTO: Single test with GOTO
4299 015e 196f          btfsc   y_step_previous___byte, y_step_previous___bit
4300 015f 2966          goto    step_check__7
4301                    ; # We have an edge:
4302                    ; line_number = 816
4303                    ;  y_dac_update := _true
4304                    ;info   816, 352
4305 0160 14ae          bsf     y_dac_update___byte, y_dac_update___bit
4306                    ; line_number = 817
4307                    ;  if y_dir start
4308                    ;info   817, 353
4309                    ; =>bit_code_emit@symbol(): sym=y_dir
4310                    ; line_number = 818
4311                    ; y_angle := y_angle + y_amount
4312                    ;info   818, 353
4313 0161 082c          movf    y_amount,w
4314                    ; line_number = 820
4315                    ; y_angle := y_angle - y_amount
4316                    ;info   820, 354
4317                    ; No 1TEST: true.size=1 false.size=1
4318                    ; 2TEST: two tests with code in both delay slots
4319 0162 1885          btfsc   y_dir___byte, y_dir___bit
4320 0163 07a8          addwf   y_angle,f
4321 0164 1c85          btfss   y_dir___byte, y_dir___bit
4322 0165 02a8          subwf   y_angle,f
4323                    ; <=bit_code_emit@symbol; sym=y_dir (data:00=>00 code:XX=>XX)
4324                    ; line_number = 817
4325                    ;  if y_dir done
4326   0166 :   step_check__7:
4327                    ; Recombine size1 = 0 || size2 = 0
4328                    ; <=bit_code_emit@symbol; sym=y_step_previous (data:00=>00 code:00=>00)
4329                    ; line_number = 814
4330                    ; if !y_step_previous done
4331                    ; line_number = 821
4332                    ; y_step_previous := _true
4333                    ;info   821, 358
4334 0166 156f          bsf     y_step_previous___byte, y_step_previous___bit
4335                    ; Recombine code1_bit_states != code2_bit_states
4336 0167 2969          goto    step_check__9
4337                    ; 2GOTO: Starting code 2
4338   0168 :   step_check__8:
4339                    ; line_number = 823
4340                    ; y_step_previous := _false
4341                    ;info   823, 360
4342 0168 116f          bcf     y_step_previous___byte, y_step_previous___bit
4343            
4344   0169 :   step_check__9:
4345                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
4346                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
4347                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
4348                    ; <=bit_code_emit@symbol; sym=y_step (data:00=>00 code:00=>00)
4349                    ; line_number = 813
4350                    ; if y_step done
4351                    ; line_number = 825
4352                    ; if z_step start
4353                    ;info   825, 361
4354                    ; =>bit_code_emit@symbol(): sym=z_step
4355                    ; No 1TEST: true.size=9 false.size=1
4356                    ; No 2TEST: true.size=9 false.size=1
4357                    ; 2GOTO: Single test with two GOTO's
4358 0169 1e85          btfss   z_step___byte, z_step___bit
4359 016a 2975          goto    step_check__11
4360                    ; line_number = 826
4361                    ; if !z_step_previous start
4362                    ;info   826, 363
4363                    ; =>bit_code_emit@symbol(): sym=z_step_previous
4364                    ; No 1TEST: true.size=0 false.size=6
4365                    ; No 2TEST: true.size=0 false.size=6
4366                    ; 1GOTO: Single test with GOTO
4367 016b 19ef          btfsc   z_step_previous___byte, z_step_previous___bit
4368 016c 2973          goto    step_check__10
4369                    ; # We have an edge:
4370                    ; line_number = 828
4371                    ;  z_dac_update := _true
4372                    ;info   828, 365
4373 016d 152e          bsf     z_dac_update___byte, z_dac_update___bit
4374                    ; line_number = 829
4375                    ;  if z_dir start
4376                    ;info   829, 366
4377                    ; =>bit_code_emit@symbol(): sym=z_dir
4378                    ; line_number = 830
4379                    ; z_angle := z_angle + z_amount
4380                    ;info   830, 366
4381 016e 082d          movf    z_amount,w
4382                    ; line_number = 832
4383                    ; z_angle := z_angle - z_amount
4384                    ;info   832, 367
4385                    ; No 1TEST: true.size=1 false.size=1
4386                    ; 2TEST: two tests with code in both delay slots
4387 016f 1905          btfsc   z_dir___byte, z_dir___bit
4388 0170 07a9          addwf   z_angle,f
4389 0171 1d05          btfss   z_dir___byte, z_dir___bit
4390 0172 02a9          subwf   z_angle,f
4391                    ; <=bit_code_emit@symbol; sym=z_dir (data:00=>00 code:XX=>XX)
4392                    ; line_number = 829
4393                    ;  if z_dir done
4394   0173 :   step_check__10:
4395                    ; Recombine size1 = 0 || size2 = 0
4396                    ; <=bit_code_emit@symbol; sym=z_step_previous (data:00=>00 code:00=>00)
4397                    ; line_number = 826
4398                    ; if !z_step_previous done
4399                    ; line_number = 833
4400                    ; z_step_previous := _true
4401                    ;info   833, 371
4402 0173 15ef          bsf     z_step_previous___byte, z_step_previous___bit
4403                    ; Recombine code1_bit_states != code2_bit_states
4404 0174 2976          goto    step_check__12
4405                    ; 2GOTO: Starting code 2
4406   0175 :   step_check__11:
4407                    ; line_number = 835
4408                    ; z_step_previous := _false
4409                    ;info   835, 373
4410 0175 11ef          bcf     z_step_previous___byte, z_step_previous___bit
4411            
4412            
4413   0176 :   step_check__12:
4414                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:00=>00)
4415                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
4416                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
4417                    ; <=bit_code_emit@symbol; sym=z_step (data:00=>00 code:00=>00)
4418                    ; line_number = 825
4419                    ; if z_step done
4420                    ; delay after procedure statements=non-uniform
4421                    ; Implied return
4422 0176 3400          retlw   0
4423            
4424            
4425            
4426            
4427                    ; line_number = 838
4428                    ;info   838, 375
4429                    ; procedure dac_setup
4430   0177 :   dac_setup:
4431                    ; Last argument is sitting in W; save into argument variable
4432 0177 00bb          movwf   dac_setup__dac_base
4433                    ; delay=4294967295
4434                    ; line_number = 839
4435                    ; argument angle byte
4436 00000039 = dac_setup__angle equ globals___0+25
4437                    ; line_number = 840
4438                    ; argument strength byte
4439 0000003a = dac_setup__strength equ globals___0+26
4440                    ; line_number = 841
4441                    ; argument dac_base byte
4442 0000003b = dac_setup__dac_base equ globals___0+27
4443                    ; line_number = 842
4444                    ;  returns byte
4445            
4446                    ; # This procedure will send the appropriate DAC value for {angle}
4447                    ; # out the two DAC channels numbered {dac_base} and {dac_base}+1.
4448                    ; # The  returned value is used to set the direction of both H-bridge
4449                    ; # coils.
4450            
4451                    ; line_number = 849
4452                    ;  local result byte
4453 00000038 = dac_setup__result equ globals___0+24
4454            
4455                    ; #call _uart_byte_put('a')
4456                    ; #call _uart_hex_put(angle)
4457                    ; #call _uart_byte_put('d')
4458                    ; #call _uart_hex_put(dac_base)
4459            
4460                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4461                    ; line_number = 856
4462                    ;  result := dac_helper(angle, strength, dac_base) | dac_helper(angle + 8, strength, dac_base + 1) << 2 
4463                    ;info   856, 376
4464 00000042 = dac_setup__1 equ globals___0+34
4465 0178 0839          movf    dac_setup__angle,w
4466 0179 00bd          movwf   dac_helper__angle
4467 017a 083a          movf    dac_setup__strength,w
4468 017b 00be          movwf   dac_helper__strength
4469 017c 083b          movf    dac_setup__dac_base,w
4470 017d 218e          call    dac_helper
4471 017e 00c2          movwf   dac_setup__1
4472 00000043 = dac_setup__2 equ globals___0+35
4473 017f 3008          movlw   8
4474 0180 0739          addwf   dac_setup__angle,w
4475 0181 00bd          movwf   dac_helper__angle
4476 0182 083a          movf    dac_setup__strength,w
4477 0183 00be          movwf   dac_helper__strength
4478 0184 0a3b          incf    dac_setup__dac_base,w
4479 0185 218e          call    dac_helper
4480 0186 00c3          movwf   dac_setup__2
4481 0187 0dc3          rlf     dac_setup__2,f
4482 0188 0d43          rlf     dac_setup__2,w
4483 0189 39fc          andlw   252
4484 018a 0442          iorwf   dac_setup__1,w
4485 018b 00b8          movwf   dac_setup__result
4486            
4487                    ; #call _uart_byte_put('r')
4488                    ; #call _uart_hex_put(result)
4489            
4490                    ; line_number = 862
4491                    ;  return result start
4492                    ; line_number = 862
4493                    ;info   862, 396
4494 018c 0838          movf    dac_setup__result,w
4495 018d 0008          return  
4496                    ; line_number = 862
4497                    ;  return result done
4498            
4499            
4500                    ; delay after procedure statements=non-uniform
4501            
4502            
4503            
4504            
4505                    ; line_number = 865
4506                    ;info   865, 398
4507                    ; procedure dac_helper
4508   018e :   dac_helper:
4509                    ; Last argument is sitting in W; save into argument variable
4510 018e 00bf          movwf   dac_helper__dac
4511                    ; delay=4294967295
4512                    ; line_number = 866
4513                    ; argument angle byte
4514 0000003d = dac_helper__angle equ globals___0+29
4515                    ; line_number = 867
4516                    ; argument strength byte
4517 0000003e = dac_helper__strength equ globals___0+30
4518                    ; line_number = 868
4519                    ; argument dac byte
4520 0000003f = dac_helper__dac equ globals___0+31
4521                    ; line_number = 869
4522                    ;  returns byte
4523            
4524                    ; # This procedure will output the DAC value for {angle} to DAC
4525                    ; # channel {dac}.
4526            
4527                    ; line_number = 874
4528                    ;  local result byte
4529 0000003c = dac_helper__result equ globals___0+28
4530            
4531                    ; # Select the DAC to output to:
4532                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4533                    ; line_number = 877
4534                    ;  call spi_send(dac << 1)
4535                    ;info   877, 399
4536 00000044 = dac_helper__1 equ globals___0+36
4537 018f 0d3f          rlf     dac_helper__dac,w
4538 0190 39fe          andlw   254
4539 0191 21ab          call    spi_send
4540                    ; line_number = 878
4541                    ;  call spi_send(sine(strength | (angle & 0xf)))
4542                    ;info   878, 402
4543 0192 300f          movlw   15
4544 0193 053d          andwf   dac_helper__angle,w
4545 0194 043e          iorwf   dac_helper__strength,w
4546 0195 201e          call    sine
4547 0196 21ab          call    spi_send
4548            
4549                    ; line_number = 880
4550                    ;  call step_check()
4551                    ;info   880, 407
4552 0197 2142          call    step_check
4553            
4554                    ; # Wait for data to flush:
4555                    ; line_number = 883
4556                    ;  while !_bf start
4557   0198 :   dac_helper__2:
4558                    ;info   883, 408
4559                    ; =>bit_code_emit@symbol(): sym=_bf
4560                    ; 1TEST: Single test with code in skip slot
4561 0198 1683          bsf     __rp0___byte, __rp0___bit
4562 0199 1c14          btfss   _bf___byte, _bf___bit
4563                    ; line_number = 884
4564                    ; do_nothing
4565                    ;info   884, 410
4566            
4567 019a 2998          goto    dac_helper__2
4568                    ; Recombine size1 = 0 || size2 = 0
4569                    ; <=bit_code_emit@symbol; sym=_bf (data:00=>01 code:00=>00)
4570                    ; line_number = 883
4571                    ;  while !_bf done
4572                    ; # Load it in:
4573                    ; line_number = 887
4574                    ;  load := _false
4575                    ;info   887, 411
4576 019b 1283          bcf     __rp0___byte, __rp0___bit
4577 019c 1107          bcf     load___byte, load___bit
4578                    ; line_number = 888
4579                    ;  load := _true
4580                    ;info   888, 413
4581 019d 1507          bsf     load___byte, load___bit
4582            
4583                    ; line_number = 890
4584                    ;  if angle & 15 = 0 start
4585                    ;info   890, 414
4586                    ; Left minus Right
4587 019e 300f          movlw   15
4588 019f 053d          andwf   dac_helper__angle,w
4589                    ; =>bit_code_emit@symbol(): sym=__z
4590                    ; No 1TEST: true.size=1 false.size=5
4591                    ; No 2TEST: true.size=1 false.size=5
4592                    ; 2GOTO: Single test with two GOTO's
4593 01a0 1d03          btfss   __z___byte, __z___bit
4594 01a1 29a4          goto    dac_helper__4
4595                    ; # Turn the coil entirely off:
4596                    ; line_number = 892
4597                    ;  result := 0
4598                    ;info   892, 418
4599 01a2 01bc          clrf    dac_helper__result
4600 01a3 29a9          goto    dac_helper__5
4601                    ; 2GOTO: Starting code 2
4602   01a4 :   dac_helper__4:
4603                    ; line_number = 893
4604                    ;info   893, 420
4605 0000003d = dac_helper__select__3___byte equ dac_helper__angle
4606 00000004 = dac_helper__select__3___bit equ 4
4607                    ; =>bit_code_emit@symbol(): sym=dac_helper__select__3
4608                    ; No 1TEST: true.size=1 false.size=1
4609                    ; 2TEST: two tests with code in both delay slots
4610 01a4 1a3d          btfsc   dac_helper__select__3___byte, dac_helper__select__3___bit
4611                    ; # Coil goes in one direction ...
4612                    ; line_number = 895
4613                    ;  result := 2
4614                    ;info   895, 421
4615 01a5 3002          movlw   2
4616 01a6 1e3d          btfss   dac_helper__select__3___byte, dac_helper__select__3___bit
4617                    ; # ... or the other direction.
4618                    ; line_number = 898
4619                    ;  result := 1
4620                    ;info   898, 423
4621 01a7 3001          movlw   1
4622 01a8 00bc          movwf   dac_helper__result
4623            
4624                    ; <=bit_code_emit@symbol; sym=dac_helper__select__3 (data:00=>00 code:XX=>XX)
4625   01a9 :   dac_helper__5:
4626                    ; 2GOTO: code1 final bitstates:(data:00=>00 code:XX=>XX)
4627                    ; 2GOTO: code2 final bitstates:(data:00=>00 code:XX=>XX)
4628                    ; 2GOTO: code final bitstates:(data:00=>00 code:00=>00)
4629                    ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:00=>00)
4630                    ; line_number = 890
4631                    ;  if angle & 15 = 0 done
4632                    ; #call _uart_byte_put('p')
4633                    ; #call _uart_hex_put(result)
4634            
4635                    ; line_number = 903
4636                    ;  return result start
4637                    ; line_number = 903
4638                    ;info   903, 425
4639 01a9 083c          movf    dac_helper__result,w
4640 01aa 0008          return  
4641                    ; line_number = 903
4642                    ;  return result done
4643            
4644            
4645                    ; delay after procedure statements=non-uniform
4646            
4647            
4648            
4649            
4650                    ; line_number = 906
4651                    ;info   906, 427
4652                    ; procedure spi_send
4653   01ab :   spi_send:
4654                    ; Last argument is sitting in W; save into argument variable
4655 01ab 00c1          movwf   spi_send__command
4656                    ; delay=4294967295
4657                    ; line_number = 907
4658                    ; argument command byte
4659 00000041 = spi_send__command equ globals___0+33
4660                    ; line_number = 908
4661                    ;  returns_nothing
4662            
4663                    ; # This procedure will stuff {command} into the SPI transmitter.
4664            
4665                    ; line_number = 912
4666                    ;  local zilch byte
4667 00000040 = spi_send__zilch equ globals___0+32
4668            
4669                    ; # For debugging:
4670                    ; #call _uart_byte_put('#')
4671                    ; #call _uart_hex_put(command)
4672            
4673                    ; # The code in the specification sheet is a little misleading
4674                    ; # since it does not point out that {_bf} is in {_sspstat} which
4675                    ; # is in data bank 1 and {_sspbuf} is in data bank 0.  They do
4676                    ; # not show any of the data bank switching.  Luckily, the uCL
4677                    ; # compiler keeps track of all of that.
4678            
4679                    ; # Wait until the command is finished sending:
4680                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4681                    ; line_number = 925
4682                    ;  while !_bf start
4683   01ac :   spi_send__1:
4684                    ;info   925, 428
4685                    ; =>bit_code_emit@symbol(): sym=_bf
4686                    ; 1TEST: Single test with code in skip slot
4687 01ac 1683          bsf     __rp0___byte, __rp0___bit
4688 01ad 1c14          btfss   _bf___byte, _bf___bit
4689                    ; line_number = 926
4690                    ; do_nothing
4691                    ;info   926, 430
4692            
4693 01ae 29ac          goto    spi_send__1
4694                    ; Recombine size1 = 0 || size2 = 0
4695                    ; <=bit_code_emit@symbol; sym=_bf (data:00=>01 code:00=>00)
4696                    ; line_number = 925
4697                    ;  while !_bf done
4698                    ; # Read contents of receive buffer {_sspbuf} and throw it away.
4699                    ; # This should cause {_bf} to clear:
4700                    ; line_number = 930
4701                    ;  zilch := _sspbuf
4702                    ;info   930, 431
4703 01af 1283          bcf     __rp0___byte, __rp0___bit
4704 01b0 0813          movf    _sspbuf,w
4705 01b1 00c0          movwf   spi_send__zilch
4706            
4707                    ; # Initiate command sending by writing {command} to {_sspbuf}:
4708                    ; line_number = 933
4709                    ;  _sspbuf := command
4710                    ;info   933, 434
4711 01b2 0841          movf    spi_send__command,w
4712 01b3 0093          movwf   _sspbuf
4713            
4714                    ; delay after procedure statements=non-uniform
4715                    ; Implied return
4716 01b4 3400          retlw   0
4717            
4718            
4719            
4720            
4721                    ; #    # This is some bit bang code that gets the job done:
4722                    ; #
4723                    ; #    loop_exactly 8
4724                    ; #	if command@7
4725                    ; #	    data := 1
4726                    ; #	else
4727                    ; #	    data := 0
4728                    ; #	clock := 1
4729                    ; #	#delay 1
4730                    ; #	#    do_nothing
4731                    ; #	clock := 0
4732                    ; #	#delay 1
4733                    ; #	#    do_nothing
4734                    ; #	command := command << 1
4735            
4736            
4737                    ; Appending 7 delayed procedures to code bank 0
4738                    ; buffer = '_uart'
4739                    ; line_number = 7
4740                    ;info   7, 437
4741                    ; procedure _uart_byte_safe_get
4742   01b5 :   _uart_byte_safe_get:
4743                    ; arguments_none
4744                    ; line_number = 9
4745                    ;  returns byte
4746            
4747                    ; # This procedure will the next byte from UART.  If no byte
4748                    ; # received in a reasonable time, 0xfc is returned.
4749            
4750                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4751                    ; line_number = 14
4752                    ;  loop_exactly 255 start
4753                    ;info   14, 437
4754 00000045 = _uart_byte_safe_get__1 equ globals___0+37
4755 01b5 30ff          movlw   255
4756 01b6 00c5          movwf   _uart_byte_safe_get__1
4757   01b7 :   _uart_byte_safe_get__2:
4758                    ; line_number = 15
4759                    ; loop_exactly 255 start
4760                    ;info   15, 439
4761 00000046 = _uart_byte_safe_get__3 equ globals___0+38
4762 01b7 30ff          movlw   255
4763 01b8 00c6          movwf   _uart_byte_safe_get__3
4764   01b9 :   _uart_byte_safe_get__4:
4765                    ; line_number = 16
4766                    ; if _rcif start
4767                    ;info   16, 441
4768                    ; =>bit_code_emit@symbol(): sym=_rcif
4769                    ; No 1TEST: true.size=2 false.size=0
4770                    ; No 2TEST: true.size=2 false.size=0
4771                    ; 1GOTO: Single test with GOTO
4772 01b9 1e8c          btfss   _rcif___byte, _rcif___bit
4773 01ba 29bd          goto    _uart_byte_safe_get__5
4774                    ; line_number = 17
4775                    ; return _rcreg start
4776                    ; line_number = 17
4777                    ;info   17, 443
4778 01bb 081a          movf    _rcreg,w
4779 01bc 0008          return  
4780                    ; line_number = 17
4781                    ; return _rcreg done
4782                    ; Recombine size1 = 0 || size2 = 0
4783   01bd :   _uart_byte_safe_get__5:
4784                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:00=>00)
4785                    ; line_number = 16
4786                    ; if _rcif done
4787                    ; line_number = 15
4788                    ; loop_exactly 255 wrap-up
4789 01bd 0bc6          decfsz  _uart_byte_safe_get__3,f
4790 01be 29b9          goto    _uart_byte_safe_get__4
4791                    ; line_number = 15
4792                    ; loop_exactly 255 done
4793                    ; line_number = 14
4794                    ;  loop_exactly 255 wrap-up
4795 01bf 0bc5          decfsz  _uart_byte_safe_get__1,f
4796 01c0 29b7          goto    _uart_byte_safe_get__2
4797                    ; line_number = 14
4798                    ;  loop_exactly 255 done
4799                    ; line_number = 18
4800                    ; return 0xfc start
4801                    ; line_number = 18
4802                    ;info   18, 449
4803 01c1 34fc          retlw   252
4804                    ; line_number = 18
4805                    ; return 0xfc done
4806            
4807            
4808                    ; delay after procedure statements=non-uniform
4809            
4810            
4811            
4812            
4813                    ; line_number = 21
4814                    ;info   21, 450
4815                    ; procedure _uart_byte_get
4816   01c2 :   _uart_byte_get:
4817                    ; arguments_none
4818                    ; line_number = 23
4819                    ;  returns byte
4820            
4821                    ; # This procedure will return the next byte from the UART.
4822            
4823                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4824                    ; line_number = 27
4825                    ;  while !_rcif start
4826   01c2 :   _uart_byte_get__1:
4827                    ;info   27, 450
4828                    ; =>bit_code_emit@symbol(): sym=_rcif
4829                    ; 1TEST: Single test with code in skip slot
4830 01c2 1e8c          btfss   _rcif___byte, _rcif___bit
4831                    ; line_number = 28
4832                    ; do_nothing
4833                    ;info   28, 451
4834 01c3 29c2          goto    _uart_byte_get__1
4835                    ; Recombine size1 = 0 || size2 = 0
4836                    ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:00=>00)
4837                    ; line_number = 27
4838                    ;  while !_rcif done
4839                    ; line_number = 29
4840                    ; return _rcreg start
4841                    ; line_number = 29
4842                    ;info   29, 452
4843 01c4 081a          movf    _rcreg,w
4844 01c5 0008          return  
4845                    ; line_number = 29
4846                    ; return _rcreg done
4847            
4848            
4849                    ; delay after procedure statements=non-uniform
4850            
4851            
4852            
4853            
4854                    ; line_number = 32
4855                    ;info   32, 454
4856                    ; procedure _uart_hex_put
4857   01c6 :   _uart_hex_put:
4858                    ; Last argument is sitting in W; save into argument variable
4859 01c6 00a0          movwf   _uart_hex_put__value
4860                    ; delay=4294967295
4861                    ; line_number = 33
4862                    ; argument value byte
4863 00000020 = _uart_hex_put__value equ globals___0
4864                    ; line_number = 34
4865                    ;  returns_nothing
4866            
4867                    ; # This procedure will output {value} to the UART as a 2-digit
4868                    ; # hexadecimal number.
4869            
4870                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4871                    ; line_number = 39
4872                    ;  call _uart_nibble_put(value >> 4)
4873                    ;info   39, 455
4874 00000047 = _uart_hex_put__1 equ globals___0+39
4875 01c7 0e20          swapf   _uart_hex_put__value,w
4876 01c8 390f          andlw   15
4877 01c9 21ce          call    _uart_nibble_put
4878                    ; line_number = 40
4879                    ;  call _uart_nibble_put(value & 0xf)
4880                    ;info   40, 458
4881 01ca 300f          movlw   15
4882 01cb 0520          andwf   _uart_hex_put__value,w
4883 01cc 21ce          call    _uart_nibble_put
4884            
4885            
4886                    ; delay after procedure statements=non-uniform
4887                    ; Implied return
4888 01cd 3400          retlw   0
4889            
4890            
4891            
4892            
4893                    ; line_number = 43
4894                    ;info   43, 462
4895                    ; procedure _uart_nibble_put
4896   01ce :   _uart_nibble_put:
4897                    ; Last argument is sitting in W; save into argument variable
4898 01ce 00a1          movwf   _uart_nibble_put__nibble
4899                    ; delay=4294967295
4900                    ; line_number = 44
4901                    ; argument nibble byte
4902 00000021 = _uart_nibble_put__nibble equ globals___0+1
4903                    ; line_number = 45
4904                    ;  returns_nothing
4905            
4906                    ; # This procedure will output {value} to UART as a 1 digit
4907                    ; # hexadecimal number.
4908            
4909                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4910                    ; line_number = 50
4911                    ;  if nibble < 10 start
4912                    ;info   50, 463
4913 01cf 300a          movlw   10
4914 01d0 0221          subwf   _uart_nibble_put__nibble,w
4915                    ; =>bit_code_emit@symbol(): sym=__c
4916                    ; No 1TEST: true.size=1 false.size=1
4917                    ; 2TEST: two tests with code in both delay slots
4918 01d1 1803          btfsc   __c___byte, __c___bit
4919                    ; line_number = 53
4920                    ; nibble := nibble - 10 + 'A'
4921                    ;info   53, 466
4922 01d2 3037          movlw   55
4923 01d3 1c03          btfss   __c___byte, __c___bit
4924                    ; line_number = 51
4925                    ; nibble := nibble + '0'
4926                    ;info   51, 468
4927 01d4 3030          movlw   48
4928 01d5 07a1          addwf   _uart_nibble_put__nibble,f
4929                    ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:00=>00)
4930                    ; line_number = 50
4931                    ;  if nibble < 10 done
4932                    ; line_number = 54
4933                    ; call _uart_byte_put(nibble)
4934                    ;info   54, 470
4935 01d6 0821          movf    _uart_nibble_put__nibble,w
4936 01d7 21e1          call    _uart_byte_put
4937            
4938            
4939                    ; delay after procedure statements=non-uniform
4940                    ; Implied return
4941 01d8 3400          retlw   0
4942            
4943            
4944            
4945            
4946                    ; line_number = 57
4947                    ;info   57, 473
4948                    ; procedure _uart_space_put
4949   01d9 :   _uart_space_put:
4950                    ; arguments_none
4951                    ; line_number = 59
4952                    ;  returns_nothing
4953            
4954                    ; # This procedure will output a space to the UART.
4955            
4956                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4957                    ; line_number = 63
4958                    ;  call _uart_byte_put(' ')
4959                    ;info   63, 473
4960 01d9 3020          movlw   32
4961 01da 21e1          call    _uart_byte_put
4962            
4963            
4964                    ; delay after procedure statements=non-uniform
4965                    ; Implied return
4966 01db 3400          retlw   0
4967            
4968            
4969            
4970            
4971                    ; line_number = 66
4972                    ;info   66, 476
4973                    ; procedure _uart_crlf_put
4974   01dc :   _uart_crlf_put:
4975                    ; arguments_none
4976                    ; line_number = 68
4977                    ;  returns_nothing
4978            
4979                    ; # This procedure will output a carriage return line feed sequecne to
4980                    ; # the UART.
4981            
4982                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
4983                    ; line_number = 73
4984                    ;  call _uart_byte_put('\cr\')
4985                    ;info   73, 476
4986 01dc 300d          movlw   13
4987 01dd 21e1          call    _uart_byte_put
4988                    ; line_number = 74
4989                    ;  call _uart_byte_put('\lf\')
4990                    ;info   74, 478
4991 01de 300a          movlw   10
4992 01df 21e1          call    _uart_byte_put
4993            
4994            
4995                    ; delay after procedure statements=non-uniform
4996                    ; Implied return
4997 01e0 3400          retlw   0
4998            
4999            
5000            
5001            
5002                    ; line_number = 77
5003                    ;info   77, 481
5004                    ; procedure _uart_byte_put
5005   01e1 :   _uart_byte_put:
5006                    ; Last argument is sitting in W; save into argument variable
5007 01e1 00a2          movwf   _uart_byte_put__byte
5008                    ; delay=4294967295
5009                    ; line_number = 78
5010                    ; argument byte byte
5011 00000022 = _uart_byte_put__byte equ globals___0+2
5012                    ; line_number = 79
5013                    ;  returns_nothing
5014            
5015                    ; # This procedure will send {byte} out using to the UART.
5016            
5017                    ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:00=>00)
5018                    ; line_number = 83
5019                    ;  while !_txif start
5020   01e2 :   _uart_byte_put__1:
5021                    ;info   83, 482
5022                    ; =>bit_code_emit@symbol(): sym=_txif
5023                    ; 1TEST: Single test with code in skip slot
5024 01e2 1e0c          btfss   _txif___byte, _txif___bit
5025                    ; line_number = 84
5026                    ; do_nothing
5027                    ;info   84, 483
5028 01e3 29e2          goto    _uart_byte_put__1
5029                    ; Recombine size1 = 0 || size2 = 0
5030                    ; <=bit_code_emit@symbol; sym=_txif (data:00=>00 code:00=>00)
5031                    ; line_number = 83
5032                    ;  while !_txif done
5033                    ; line_number = 85
5034                    ; _txreg := byte
5035                    ;info   85, 484
5036 01e4 0822          movf    _uart_byte_put__byte,w
5037 01e5 0099          movwf   _txreg
5038            
5039            
5040                    ; delay after procedure statements=non-uniform
5041                    ; Implied return
5042 01e6 3400          retlw   0
5043            
5044            
5045            
5046            
5047                    ; Code bank 1; Start address: 2048; End address: 4095
5048   0800 :           org     2048
5049                    ; Code bank 2; Start address: 4096; End address: 6143
5050   1000 :           org     4096
5051                    ; Code bank 3; Start address: 6144; End address: 8191
5052   1800 :           org     6144
5053                    ; Configuration bits
5054                    ; address = 0x2007, fill = 0x600
5055                    ; cp = off (0x2000)
5056                    ; cpmx = rc1 (0x1000)
5057                    ; debug = off (0x800)
5058                    ; borv = borv00 (0x0)
5059                    ; boren = off (0x0)
5060                    ; mclre = off (0x0)
5061                    ; pwrten = off (0x8)
5062                    ; wdten = off (0x0)
5063                    ; fosc = hs (0x2)
5064                    ; 15882 = 0x3e0a
5065                    ; 8199 = 0x2007
5066   3e0a =           __config 8199, 15882
5067                    ; Configuration bits
5068                    ; address = 0x2008, fill = 0x33bc
5069                    ; borsen = off (0x0)
5070                    ; ieso = off (0x2)
5071                    ; fcmen = off (0x0)
5072                    ; 13246 = 0x33be
5073                    ; 8200 = 0x2008
5074   33be =           __config 8200, 13246
5075                    ; Define start addresses for data regions
5076                    ; Region="shared___globals" Address=112" Size=16 Bytes=2 Bits=0 Available=14
5077                    ; Region="globals___0" Address=32" Size=80 Bytes=40 Bits=4 Available=39
5078                    ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
5079                    ; Region="globals___2" Address=272" Size=96 Bytes=0 Bits=0 Available=96
5080                    ; Region="globals___3" Address=400" Size=112 Bytes=0 Bits=0 Available=112
5081                    end
