        radix   dec
        ; Code bank 0; Start address: 0; End address: 4095
        org     0
        ; Define start addresses for data regions
shared___globals equ 112
globals___0 equ 32
globals___1 equ 160
globals___2 equ 288
__indf equ 0
__pcl equ 2
__status equ 3
__fsr equ 4
__c___byte equ 3
__c___bit equ 0
__z___byte equ 3
__z___bit equ 2
__rp0___byte equ 3
__rp0___bit equ 5
__rp1___byte equ 3
__rp1___bit equ 6
__irp___byte equ 3
__irp___bit equ 7
__pclath equ 10
__cb0___byte equ 10
__cb0___bit equ 3
__cb1___byte equ 10
__cb1___bit equ 4

        ; # Copyright (c) 2004-2005 by Wayne C. Gramlich
        ; # All rights reserved.

        ; buffer = 'servo4'
        ; line_number = 6
        ; library _robobricks_pic16f688 entered

        ; # Copyright (c) 2000-2005 by Wayne C. Gramlich and Bill Benson
        ; # All rights reserved.

        ; buffer = '_robobricks_pic16f688'
        ; line_number = 6
        ; library _pic16f688 entered
        ; # Copyright (c) 2004 by Wayne C. Gramlich
        ; # All rights reserved.

        ; buffer = '_pic16f688'
        ; line_number = 5
        ; processor pic16f688
        ; line_number = 6
        ; configure_address 0x2007
        ; line_number = 7
        ;  configure_fill 0x3000
        ; line_number = 8
        ;  configure_option fcmen: on = 0x800
        ; line_number = 9
        ;  configure_option fcmen: off = 0x000
        ; line_number = 10
        ;  configure_option ieso: on = 0x400
        ; line_number = 11
        ;  configure_option ieso: off = 0x000
        ; line_number = 12
        ;  configure_option boden: on = 0x300
        ; line_number = 13
        ;  configure_option boden: partial = 0x200
        ; line_number = 14
        ;  configure_option boden: sboden = 0x100
        ; line_number = 15
        ;  configure_option boden: off = 0x000
        ; line_number = 16
        ;  configure_option cpd: on = 0x00
        ; line_number = 17
        ;  configure_option cpd: off = 0x80
        ; line_number = 18
        ;  configure_option cp: on = 0x00
        ; line_number = 19
        ;  configure_option cp: off = 0x40
        ; line_number = 20
        ;  configure_option mclre: on = 0x20
        ; line_number = 21
        ;  configure_option mclre: off = 0x20
        ; line_number = 22
        ;  configure_option pwrte: on = 0x00
        ; line_number = 23
        ;  configure_option pwrte: off = 0x10
        ; line_number = 24
        ;  configure_option wdte: on = 8
        ; line_number = 25
        ;  configure_option wdte: off = 0
        ; line_number = 26
        ;  configure_option fosc: rc_clk = 7
        ; line_number = 27
        ;  configure_option fosc: rc_no_clk = 6
        ; line_number = 28
        ;  configure_option fosc: int_clk = 5
        ; line_number = 29
        ;  configure_option fosc: int_no_clk = 4
        ; line_number = 30
        ;  configure_option fosc: ec = 3
        ; line_number = 31
        ;  configure_option fosc: hs = 2
        ; line_number = 32
        ;  configure_option fosc: xt = 1
        ; line_number = 33
        ;  configure_option fosc: lp = 0

        ; line_number = 35
        ;  code_bank 0x0 : 0xfff
        ; line_number = 36
        ;  data_bank 0x0 : 0x7f
        ; line_number = 37
        ;  data_bank 0x80 : 0xff
        ; line_number = 38
        ;  data_bank 0x100 : 0x17f
        ; line_number = 39
        ;  data_bank 0x180 : 0x1ff
        ; line_number = 40
        ;  global_region 0x20 : 0x6f
        ; line_number = 41
        ;  global_region 0xa0 : 0xef
        ; line_number = 42
        ;  global_region 0x120 : 0x16f
        ; line_number = 43
        ;  shared_region 0x70 : 0x7f
        ; line_number = 44
        ;  interrupts_possible
        ; line_number = 45
        ;  packages pdip=14, soic=14, tssop=14
        ; line_number = 46
        ;  pin vdd, power_supply
        ; line_number = 47
        ; pin_bindings pdip=1, soic=1, tssop=1
        ; line_number = 48
        ; pin ra5_in, ra5_nc, ra5_out, t1cki, osc1, clkin
        ; line_number = 49
        ; pin_bindings pdip=2, soic=2, tssop=2
        ; line_number = 50
        ;  bind_to _porta@5
        ; line_number = 51
        ;  or_if ra5_in _trisa 32
        ; line_number = 52
        ;  or_if ra5_nc _trisa 32
        ; line_number = 53
        ;  or_if ra5_out _trisa 0
        ; line_number = 54
        ; pin ra4_in, ra4_nc, ra4_out, t1g, osc2, an3, clkout
        ; line_number = 55
        ; pin_bindings pdip=3, soic=3, tssop=3
        ; line_number = 56
        ;  bind_to _porta@4
        ; line_number = 57
        ;  or_if ra4_in _trisa 16
        ; line_number = 58
        ;  or_if ra4_nc _trisa 16
        ; line_number = 59
        ;  or_if ra4_out _trisa 0
        ; line_number = 60
        ;  or_if an3 _trisa 8
        ; line_number = 61
        ;  or_if ra4_in _ansel 0
        ; line_number = 62
        ;  or_if ra4_out _ansel 0
        ; line_number = 63
        ;  or_if an3 _ansel 8
        ; line_number = 64
        ;  or_if ra4_in _adcon0 0
        ; line_number = 65
        ;  or_if ra4_out _adcon0 0
        ; line_number = 66
        ;  or_if an3 _adcon0 1
        ; line_number = 67
        ; pin ra3_in, ra3_nc, mclr, vpp
        ; line_number = 68
        ; pin_bindings pdip=4, soic=4, tssop=4
        ; line_number = 69
        ;  bind_to _porta@4
        ; line_number = 70
        ;  or_if ra3_in _trisa 8
        ; line_number = 71
        ;  or_if ra3_nc _trisa 8
        ; line_number = 72
        ; pin rc5_in, rc5_nc, rc5_out, rx, dt
        ; line_number = 73
        ; pin_bindings pdip=5, soic=5, tssop=5
        ; line_number = 74
        ;  bind_to _portc@5
        ; line_number = 75
        ;  or_if rc5_in _trisc 32
        ; line_number = 76
        ;  or_if rc5_nc _trisc 32
        ; line_number = 77
        ;  or_if rc5_out _trisc 0
        ; line_number = 78
        ;  or_if rx _trisc 32
        ; line_number = 79
        ; pin rc4_in, rc4_nc, rc4_out, c2out, tx, ck
        ; line_number = 80
        ; pin_bindings pdip=6, soic=6, tssop=6
        ; line_number = 81
        ;  bind_to _portc@4
        ; line_number = 82
        ;  or_if rc4_in _trisc 16
        ; line_number = 83
        ;  or_if rc4_nc _trisc 16
        ; line_number = 84
        ;  or_if rc4_out _trisc 0
        ; # The UART documentation says TX must be marked as in input:
        ; line_number = 86
        ;  or_if tx _trisc 16
        ; line_number = 87
        ; pin rc3_in, rc3_nc, rc3_out, an7
        ; line_number = 88
        ; pin_bindings pdip=7, soic=7, tssop=7
        ; line_number = 89
        ;  bind_to _portc@3
        ; line_number = 90
        ;  or_if rc3_in _trisc 8
        ; line_number = 91
        ;  or_if rc3_nc _trisc 8
        ; line_number = 92
        ;  or_if rc3_out _trisc 0
        ; line_number = 93
        ;  or_if an7 _trisc 8
        ; line_number = 94
        ;  or_if rc3_in _ansel 0
        ; line_number = 95
        ;  or_if rc3_out _ansel 0
        ; line_number = 96
        ;  or_if an7 _ansel 128
        ; line_number = 97
        ;  or_if rc3_in _adcon0 0
        ; line_number = 98
        ;  or_if rc3_out _adcon0 0
        ; line_number = 99
        ;  or_if an7 _adcon0 1
        ; line_number = 100
        ; pin rc2_in, rc2_nc, rc2_out, an6
        ; line_number = 101
        ; pin_bindings pdip=8, soic=8, tssop=8
        ; line_number = 102
        ;  bind_to _portc@2
        ; line_number = 103
        ;  or_if rc2_in _trisc 4
        ; line_number = 104
        ;  or_if rc2_nc _trisc 4
        ; line_number = 105
        ;  or_if rc2_out _trisc 0
        ; line_number = 106
        ;  or_if an6 _trisc 4
        ; line_number = 107
        ;  or_if rc2_in _ansel 0
        ; line_number = 108
        ;  or_if rc2_out _ansel 0
        ; line_number = 109
        ;  or_if an6 _ansel 64
        ; line_number = 110
        ;  or_if rc2_in _adcon0 0
        ; line_number = 111
        ;  or_if rc2_out _adcon0 0
        ; line_number = 112
        ;  or_if an6 _adcon0 1
        ; line_number = 113
        ; pin rc1_in, rc1_nc, rc1_out, an5, c2in_minus
        ; line_number = 114
        ; pin_bindings pdip=9, soic=9, tssop=9
        ; line_number = 115
        ;  bind_to _portc@1
        ; line_number = 116
        ;  or_if rc1_in _trisc 2
        ; line_number = 117
        ;  or_if rc1_nc _trisc 2
        ; line_number = 118
        ;  or_if rc1_out _trisc 0
        ; line_number = 119
        ;  or_if rc1_in _cmcon0 7
        ; line_number = 120
        ;  or_if rc1_out _cmcon0 7
        ; line_number = 121
        ;  or_if an5 _trisc 2
        ; line_number = 122
        ;  or_if rc1_in _ansel 0
        ; line_number = 123
        ;  or_if rc1_out _ansel 0
        ; line_number = 124
        ;  or_if an5 _ansel 32
        ; line_number = 125
        ;  or_if rc1_in _adcon0 0
        ; line_number = 126
        ;  or_if rc1_out _adcon0 0
        ; line_number = 127
        ;  or_if an5 _adcon0 1
        ; line_number = 128
        ; pin rc0_in, rc0_nc, rc0_out, an4, c2in_plus
        ; line_number = 129
        ; pin_bindings pdip=10, soic=10, tssop=10
        ; line_number = 130
        ;  bind_to _portc@0
        ; line_number = 131
        ;  or_if rc0_in _trisc 1
        ; line_number = 132
        ;  or_if rc0_nc _trisc 1
        ; line_number = 133
        ;  or_if rc0_out _trisc 0
        ; line_number = 134
        ;  or_if rc0_in _cmcon0 7
        ; line_number = 135
        ;  or_if rc0_out _cmcon0 7
        ; line_number = 136
        ;  or_if an4 _trisc 1
        ; line_number = 137
        ;  or_if rc0_in _ansel 0
        ; line_number = 138
        ;  or_if rc0_out _ansel 0
        ; line_number = 139
        ;  or_if an4 _ansel 16
        ; line_number = 140
        ;  or_if rc0_in _adcon0 0
        ; line_number = 141
        ;  or_if rc0_out _adcon0 0
        ; line_number = 142
        ;  or_if an4 _adcon0 1
        ; line_number = 143
        ; pin ra2_in, ra2_nc, ra2_out, an2, c1out, t0cki, int
        ; line_number = 144
        ; pin_bindings pdip=11, soic=11, tssop=11
        ; line_number = 145
        ;  bind_to _porta@2
        ; line_number = 146
        ;  or_if ra2_in _trisa 4
        ; line_number = 147
        ;  or_if ra2_nc _trisa 4
        ; line_number = 148
        ;  or_if ra2_out _trisa 0
        ; line_number = 149
        ;  or_if an2 _trisa 4
        ; line_number = 150
        ;  or_if ra2_in _ansel 0
        ; line_number = 151
        ;  or_if ra2_out _ansel 0
        ; line_number = 152
        ;  or_if an2 _ansel 4
        ; line_number = 153
        ;  or_if ra2_in _adcon0 0
        ; line_number = 154
        ;  or_if ra2_out _adcon0 0
        ; line_number = 155
        ;  or_if an2 _adcon0 1
        ; line_number = 156
        ; pin ra1_in, ra1_nc, ra1_out, an1, c1in_minus, vref, icspclk
        ; line_number = 157
        ; pin_bindings pdip=12, soic=12, tssop=12
        ; line_number = 158
        ;  bind_to _porta@1
        ; line_number = 159
        ;  or_if ra1_in _trisa 2
        ; line_number = 160
        ;  or_if ra1_nc _trisa 2
        ; line_number = 161
        ;  or_if ra1_out _trisa 0
        ; line_number = 162
        ;  or_if ra1_in _cmcon0 7
        ; line_number = 163
        ;  or_if ra1_out _cmcon0 7
        ; line_number = 164
        ;  or_if an1 _trisa 2
        ; line_number = 165
        ;  or_if ra1_in _ansel 0
        ; line_number = 166
        ;  or_if ra1_out _ansel 0
        ; line_number = 167
        ;  or_if an1 _ansel 2
        ; line_number = 168
        ;  or_if ra1_in _adcon0 0
        ; line_number = 169
        ;  or_if ra1_out _adcon0 0
        ; line_number = 170
        ;  or_if an1 _adcon0 1
        ; line_number = 171
        ; pin ra0_in, ra0_nc, ra0_out, an0, c1in_plus, icspdat, ulpwu
        ; line_number = 172
        ; pin_bindings pdip=13, soic=13, tssop=13
        ; line_number = 173
        ;  bind_to _porta@0
        ; line_number = 174
        ;  or_if ra0_in _trisa 1
        ; line_number = 175
        ;  or_if ra0_nc _trisa 1
        ; line_number = 176
        ;  or_if ra0_out _trisa 0
        ; line_number = 177
        ;  or_if ra0_in _cmcon0 7
        ; line_number = 178
        ;  or_if ra0_out _cmcon0 7
        ; line_number = 179
        ;  or_if an0 _trisa 1
        ; line_number = 180
        ;  or_if ra0_in _ansel 0
        ; line_number = 181
        ;  or_if ra0_out _ansel 0
        ; line_number = 182
        ;  or_if an0 _ansel 1
        ; line_number = 183
        ;  or_if ra0_in _adcon0 0
        ; line_number = 184
        ;  or_if ra0_out _adcon0 0
        ; line_number = 185
        ;  or_if an0 _adcon0 1
        ; line_number = 186
        ; pin vss, ground
        ; line_number = 187
        ; pin_bindings pdip=14, soic=14, tssop=14


        ; # Register/bit bindings:

        ; # Databank 0 (0x0 - 0x7f):

        ; line_number = 196
        ; register _indf = 
_indf equ 0

        ; line_number = 198
        ; register _tmr0 = 
_tmr0 equ 1

        ; line_number = 200
        ; register _pcl = 
_pcl equ 2

        ; line_number = 202
        ; register _status = 
_status equ 3
        ; line_number = 203
        ; bind _irp = _status@7
_irp___byte equ _status
_irp___bit equ 7
        ; line_number = 204
        ; bind _rp1 = _status@5
_rp1___byte equ _status
_rp1___bit equ 5
        ; line_number = 205
        ; bind _rp0 = _status@5
_rp0___byte equ _status
_rp0___bit equ 5
        ; line_number = 206
        ; bind _to = _status@4
_to___byte equ _status
_to___bit equ 4
        ; line_number = 207
        ; bind _pd = _status@3
_pd___byte equ _status
_pd___bit equ 3
        ; line_number = 208
        ; bind _z = _status@2
_z___byte equ _status
_z___bit equ 2
        ; line_number = 209
        ; bind _dc = _status@1
_dc___byte equ _status
_dc___bit equ 1
        ; line_number = 210
        ; bind _c = _status@0
_c___byte equ _status
_c___bit equ 0

        ; line_number = 212
        ; register _fsr = 
_fsr equ 4

        ; line_number = 214
        ; register _porta = 
_porta equ 5
        ; line_number = 215
        ; register _ra = 
_ra equ 5
        ; line_number = 216
        ; bind _ra5 = _porta@5
_ra5___byte equ _porta
_ra5___bit equ 5
        ; line_number = 217
        ; bind _ra4 = _porta@4
_ra4___byte equ _porta
_ra4___bit equ 4
        ; line_number = 218
        ; bind _ra3 = _porta@3
_ra3___byte equ _porta
_ra3___bit equ 3
        ; line_number = 219
        ; bind _ra2 = _porta@2
_ra2___byte equ _porta
_ra2___bit equ 2
        ; line_number = 220
        ; bind _ra1 = _porta@1
_ra1___byte equ _porta
_ra1___bit equ 1
        ; line_number = 221
        ; bind _ra0 = _porta@0
_ra0___byte equ _porta
_ra0___bit equ 0

        ; line_number = 223
        ; register _portc = 
_portc equ 7
        ; line_number = 224
        ; register _rc = 
_rc equ 7
        ; line_number = 225
        ; bind _rc5 = _portc@5
_rc5___byte equ _portc
_rc5___bit equ 5
        ; line_number = 226
        ; bind _rc4 = _portc@4
_rc4___byte equ _portc
_rc4___bit equ 4
        ; line_number = 227
        ; bind _rc3 = _portc@3
_rc3___byte equ _portc
_rc3___bit equ 3
        ; line_number = 228
        ; bind _rc2 = _portc@2
_rc2___byte equ _portc
_rc2___bit equ 2
        ; line_number = 229
        ; bind _rc1 = _portc@1
_rc1___byte equ _portc
_rc1___bit equ 1
        ; line_number = 230
        ; bind _rc0 = _portc@0
_rc0___byte equ _portc
_rc0___bit equ 0

        ; line_number = 232
        ; register _pclath = 
_pclath equ 10

        ; line_number = 234
        ; register _intcon = 
_intcon equ 11
        ; line_number = 235
        ; bind _gie = _intcon@7
_gie___byte equ _intcon
_gie___bit equ 7
        ; line_number = 236
        ; bind _peie = _intcon@6
_peie___byte equ _intcon
_peie___bit equ 6
        ; line_number = 237
        ; bind _t0ie = _intcon@5
_t0ie___byte equ _intcon
_t0ie___bit equ 5
        ; line_number = 238
        ; bind _inte = _intcon@4
_inte___byte equ _intcon
_inte___bit equ 4
        ; line_number = 239
        ; bind _raie = _intcon@3
_raie___byte equ _intcon
_raie___bit equ 3
        ; line_number = 240
        ; bind _t0if = _intcon@2
_t0if___byte equ _intcon
_t0if___bit equ 2
        ; line_number = 241
        ; bind _intf = _intcon@1
_intf___byte equ _intcon
_intf___bit equ 1
        ; line_number = 242
        ; bind _raif = _intcon@0
_raif___byte equ _intcon
_raif___bit equ 0

        ; line_number = 244
        ; register _pir1 = 
_pir1 equ 12
        ; line_number = 245
        ; bind _eeif = _pir1@7
_eeif___byte equ _pir1
_eeif___bit equ 7
        ; line_number = 246
        ; bind _adif = _pir1@6
_adif___byte equ _pir1
_adif___bit equ 6
        ; line_number = 247
        ; bind _rcif = _pir1@5
_rcif___byte equ _pir1
_rcif___bit equ 5
        ; line_number = 248
        ; bind _c2if = _pir1@4
_c2if___byte equ _pir1
_c2if___bit equ 4
        ; line_number = 249
        ; bind _c1if = _pir1@3
_c1if___byte equ _pir1
_c1if___bit equ 3
        ; line_number = 250
        ; bind _osfif = _pir1@2
_osfif___byte equ _pir1
_osfif___bit equ 2
        ; line_number = 251
        ; bind _txif = _pir1@1
_txif___byte equ _pir1
_txif___bit equ 1
        ; line_number = 252
        ; bind _tmr1if = _pir1@0
_tmr1if___byte equ _pir1
_tmr1if___bit equ 0

        ; line_number = 254
        ; register _tmr1l = 
_tmr1l equ 14

        ; line_number = 256
        ; register _tmr1h = 
_tmr1h equ 15

        ; line_number = 258
        ; register _t1con = 
_t1con equ 16
        ; line_number = 259
        ; bind t1ginv = _t1con@7
t1ginv___byte equ _t1con
t1ginv___bit equ 7
        ; line_number = 260
        ; bind _tmr1ge = _t1con@6
_tmr1ge___byte equ _t1con
_tmr1ge___bit equ 6
        ; line_number = 261
        ; bind _t1ckps1 = _t1con@5
_t1ckps1___byte equ _t1con
_t1ckps1___bit equ 5
        ; line_number = 262
        ; bind _t1ckps0 = _t1con@4
_t1ckps0___byte equ _t1con
_t1ckps0___bit equ 4
        ; line_number = 263
        ; bind _t1oscen = _t1con@3
_t1oscen___byte equ _t1con
_t1oscen___bit equ 3
        ; line_number = 264
        ; bind _t1sync = _t1con@2
_t1sync___byte equ _t1con
_t1sync___bit equ 2
        ; line_number = 265
        ; bind _tmr1cs = _t1con@1
_tmr1cs___byte equ _t1con
_tmr1cs___bit equ 1
        ; line_number = 266
        ; bind _tmr1on = _t1con@0
_tmr1on___byte equ _t1con
_tmr1on___bit equ 0

        ; line_number = 268
        ; register _baudctl = 
_baudctl equ 17
        ; line_number = 269
        ; bind _abdovf = _baudctl@7
_abdovf___byte equ _baudctl
_abdovf___bit equ 7
        ; line_number = 270
        ; bind _rcidl = _baudctl@6
_rcidl___byte equ _baudctl
_rcidl___bit equ 6
        ; line_number = 271
        ; bind _sckp = _baudctl@4
_sckp___byte equ _baudctl
_sckp___bit equ 4
        ; line_number = 272
        ; bind _brg16 = _baudctl@3
_brg16___byte equ _baudctl
_brg16___bit equ 3
        ; line_number = 273
        ; bind _wue = _baudctl@1
_wue___byte equ _baudctl
_wue___bit equ 1
        ; line_number = 274
        ; bind _abden = _baudctl@0
_abden___byte equ _baudctl
_abden___bit equ 0

        ; line_number = 276
        ; register _spbrgh = 
_spbrgh equ 18

        ; line_number = 278
        ; register _spbrg = 
_spbrg equ 19

        ; line_number = 280
        ; register _rcreg = 
_rcreg equ 20

        ; line_number = 282
        ; register _txreg = 
_txreg equ 21

        ; line_number = 284
        ; register _txsta = 
_txsta equ 22
        ; line_number = 285
        ; bind _csrc = _txsta@7
_csrc___byte equ _txsta
_csrc___bit equ 7
        ; line_number = 286
        ; bind _tx9 = _txsta@6
_tx9___byte equ _txsta
_tx9___bit equ 6
        ; line_number = 287
        ; bind _txen = _txsta@5
_txen___byte equ _txsta
_txen___bit equ 5
        ; line_number = 288
        ; bind _sync = _txsta@4
_sync___byte equ _txsta
_sync___bit equ 4
        ; line_number = 289
        ; bind _sendb = _txsta@3
_sendb___byte equ _txsta
_sendb___bit equ 3
        ; line_number = 290
        ; bind _brgh = _txsta@2
_brgh___byte equ _txsta
_brgh___bit equ 2
        ; line_number = 291
        ; bind _trmt = _txsta@1
_trmt___byte equ _txsta
_trmt___bit equ 1
        ; line_number = 292
        ; bind _tx9d = _txsta@7
_tx9d___byte equ _txsta
_tx9d___bit equ 7

        ; line_number = 294
        ; register _rcsta = 
_rcsta equ 23
        ; line_number = 295
        ; bind _spen = _rcsta@7
_spen___byte equ _rcsta
_spen___bit equ 7
        ; line_number = 296
        ; bind _rx9 = _rcsta@6
_rx9___byte equ _rcsta
_rx9___bit equ 6
        ; line_number = 297
        ; bind _sren = _rcsta@5
_sren___byte equ _rcsta
_sren___bit equ 5
        ; line_number = 298
        ; bind _cren = _rcsta@4
_cren___byte equ _rcsta
_cren___bit equ 4
        ; line_number = 299
        ; bind _adden = _rcsta@3
_adden___byte equ _rcsta
_adden___bit equ 3
        ; line_number = 300
        ; bind _ferr = _rcsta@2
_ferr___byte equ _rcsta
_ferr___bit equ 2
        ; line_number = 301
        ; bind _oerr = _rcsta@1
_oerr___byte equ _rcsta
_oerr___bit equ 1
        ; line_number = 302
        ; bind _rx9d = _rcsta@0
_rx9d___byte equ _rcsta
_rx9d___bit equ 0

        ; line_number = 304
        ; register _wdtcon = 
_wdtcon equ 24
        ; line_number = 305
        ; bind _wdtps3 = _wdtcon@4
_wdtps3___byte equ _wdtcon
_wdtps3___bit equ 4
        ; line_number = 306
        ; bind _wdtps2 = _wdtcon@3
_wdtps2___byte equ _wdtcon
_wdtps2___bit equ 3
        ; line_number = 307
        ; bind _wdtps1 = _wdtcon@2
_wdtps1___byte equ _wdtcon
_wdtps1___bit equ 2
        ; line_number = 308
        ; bind _wdtps0 = _wdtcon@1
_wdtps0___byte equ _wdtcon
_wdtps0___bit equ 1
        ; line_number = 309
        ; bind _swdten = _wdtcon@0
_swdten___byte equ _wdtcon
_swdten___bit equ 0

        ; line_number = 311
        ; register _cmcon0 = 
_cmcon0 equ 25
        ; line_number = 312
        ; bind _c1out = _cmcon0@7
_c1out___byte equ _cmcon0
_c1out___bit equ 7
        ; line_number = 313
        ; bind _c2out = _cmcon0@6
_c2out___byte equ _cmcon0
_c2out___bit equ 6
        ; line_number = 314
        ; bind _c1inv = _cmcon0@5
_c1inv___byte equ _cmcon0
_c1inv___bit equ 5
        ; line_number = 315
        ; bind _c2inv = _cmcon0@4
_c2inv___byte equ _cmcon0
_c2inv___bit equ 4
        ; line_number = 316
        ; bind _cis = _cmcon0@3
_cis___byte equ _cmcon0
_cis___bit equ 3
        ; line_number = 317
        ; bind _cm2 = _cmcon0@2
_cm2___byte equ _cmcon0
_cm2___bit equ 2
        ; line_number = 318
        ; bind _cm1 = _cmcon0@1
_cm1___byte equ _cmcon0
_cm1___bit equ 1
        ; line_number = 319
        ; bind _cm0 = _cmcon0@0
_cm0___byte equ _cmcon0
_cm0___bit equ 0

        ; line_number = 321
        ; register _cmcon1 = 
_cmcon1 equ 26
        ; line_number = 322
        ; bind _t1gss = _cmcon1@0
_t1gss___byte equ _cmcon1
_t1gss___bit equ 0
        ; line_number = 323
        ; bind _c2sync = _cmcon1@1
_c2sync___byte equ _cmcon1
_c2sync___bit equ 1

        ; line_number = 325
        ; register _adresh = 
_adresh equ 30

        ; line_number = 327
        ; register _adcon0 = 
_adcon0 equ 31
        ; line_number = 328
        ; bind _adfm = _adcon0@7
_adfm___byte equ _adcon0
_adfm___bit equ 7
        ; line_number = 329
        ; bind _vcfg = _adcon0@6
_vcfg___byte equ _adcon0
_vcfg___bit equ 6
        ; line_number = 330
        ; bind _chs2 = _adcon0@4
_chs2___byte equ _adcon0
_chs2___bit equ 4
        ; line_number = 331
        ; bind _chs1 = _adcon0@3
_chs1___byte equ _adcon0
_chs1___bit equ 3
        ; line_number = 332
        ; bind _chs0 = _adcon0@2
_chs0___byte equ _adcon0
_chs0___bit equ 2
        ; line_number = 333
        ; bind _go = _adcon0@1
_go___byte equ _adcon0
_go___bit equ 1
        ; line_number = 334
        ; bind _adon = _adcon0@0
_adon___byte equ _adcon0
_adon___bit equ 0

        ; # Data bank 1 (0x80-0xff):

        ; line_number = 338
        ; register _option_reg = 
_option_reg equ 129
        ; line_number = 339
        ; bind _rapu = _option_reg@7
_rapu___byte equ _option_reg
_rapu___bit equ 7
        ; line_number = 340
        ; bind _intedg = _option_reg@6
_intedg___byte equ _option_reg
_intedg___bit equ 6
        ; line_number = 341
        ; bind _t0cs = _option_reg@5
_t0cs___byte equ _option_reg
_t0cs___bit equ 5
        ; line_number = 342
        ; bind _t0se = _option_reg@4
_t0se___byte equ _option_reg
_t0se___bit equ 4
        ; line_number = 343
        ; bind _psa = _option_reg@3
_psa___byte equ _option_reg
_psa___bit equ 3
        ; line_number = 344
        ; bind _ps2 = _option_reg@2
_ps2___byte equ _option_reg
_ps2___bit equ 2
        ; line_number = 345
        ; bind _ps1 = _option_reg@1
_ps1___byte equ _option_reg
_ps1___bit equ 1
        ; line_number = 346
        ; bind _ps0 = _option_reg@0
_ps0___byte equ _option_reg
_ps0___bit equ 0

        ; line_number = 348
        ; register _trisa = 
_trisa equ 133
        ; line_number = 349
        ; bind _trisa5 = _trisa@5
_trisa5___byte equ _trisa
_trisa5___bit equ 5
        ; line_number = 350
        ; bind _trisa4 = _trisa@4
_trisa4___byte equ _trisa
_trisa4___bit equ 4
        ; line_number = 351
        ; bind _trisa3 = _trisa@3
_trisa3___byte equ _trisa
_trisa3___bit equ 3
        ; line_number = 352
        ; bind _trisa2 = _trisa@2
_trisa2___byte equ _trisa
_trisa2___bit equ 2
        ; line_number = 353
        ; bind _trisa1 = _trisa@1
_trisa1___byte equ _trisa
_trisa1___bit equ 1
        ; line_number = 354
        ; bind _trisa0 = _trisa@0
_trisa0___byte equ _trisa
_trisa0___bit equ 0

        ; line_number = 356
        ; register _trisc = 
_trisc equ 135
        ; line_number = 357
        ; bind _trisc5 = _trisc@5
_trisc5___byte equ _trisc
_trisc5___bit equ 5
        ; line_number = 358
        ; bind _trisc4 = _trisc@4
_trisc4___byte equ _trisc
_trisc4___bit equ 4
        ; line_number = 359
        ; bind _trisc3 = _trisc@3
_trisc3___byte equ _trisc
_trisc3___bit equ 3
        ; line_number = 360
        ; bind _trisc2 = _trisc@2
_trisc2___byte equ _trisc
_trisc2___bit equ 2
        ; line_number = 361
        ; bind _trisc1 = _trisc@1
_trisc1___byte equ _trisc
_trisc1___bit equ 1
        ; line_number = 362
        ; bind _trisc0 = _trisc@0
_trisc0___byte equ _trisc
_trisc0___bit equ 0

        ; line_number = 364
        ; register _pie1 = 
_pie1 equ 140
        ; line_number = 365
        ; bind _eeie = _pie1@7
_eeie___byte equ _pie1
_eeie___bit equ 7
        ; line_number = 366
        ; bind _adie = _pie1@6
_adie___byte equ _pie1
_adie___bit equ 6
        ; line_number = 367
        ; bind _rcie = _pie1@5
_rcie___byte equ _pie1
_rcie___bit equ 5
        ; line_number = 368
        ; bind _c2ie = _pie1@4
_c2ie___byte equ _pie1
_c2ie___bit equ 4
        ; line_number = 369
        ; bind _c1ie = _pie1@3
_c1ie___byte equ _pie1
_c1ie___bit equ 3
        ; line_number = 370
        ; bind _osfie = _pie1@2
_osfie___byte equ _pie1
_osfie___bit equ 2
        ; line_number = 371
        ; bind _txie = _pie1@1
_txie___byte equ _pie1
_txie___bit equ 1
        ; line_number = 372
        ; bind _tmr1ie = _pie1@0
_tmr1ie___byte equ _pie1
_tmr1ie___bit equ 0

        ; line_number = 374
        ; register _pcon = 
_pcon equ 142
        ; line_number = 375
        ; bind _ulpwue = _pcon@5
_ulpwue___byte equ _pcon
_ulpwue___bit equ 5
        ; line_number = 376
        ; bind _sboden = _pcon@4
_sboden___byte equ _pcon
_sboden___bit equ 4
        ; line_number = 377
        ; bind _por = _pcon@1
_por___byte equ _pcon
_por___bit equ 1
        ; line_number = 378
        ; bind _bod = _pcon@0
_bod___byte equ _pcon
_bod___bit equ 0

        ; line_number = 380
        ; register _osccon = 
_osccon equ 143
        ; line_number = 381
        ; bind _ircf2 = _osccon@6
_ircf2___byte equ _osccon
_ircf2___bit equ 6
        ; line_number = 382
        ; bind _ircf1 = _osccon@5
_ircf1___byte equ _osccon
_ircf1___bit equ 5
        ; line_number = 383
        ; bind _ircf0 = _osccon@4
_ircf0___byte equ _osccon
_ircf0___bit equ 4
        ; line_number = 384
        ; bind _osts = _osccon@3
_osts___byte equ _osccon
_osts___bit equ 3
        ; line_number = 385
        ; bind _hts = _osccon@2
_hts___byte equ _osccon
_hts___bit equ 2
        ; line_number = 386
        ; bind _lts = _osccon@3
_lts___byte equ _osccon
_lts___bit equ 3
        ; line_number = 387
        ; bind _scs = _osccon@2
_scs___byte equ _osccon
_scs___bit equ 2

        ; line_number = 389
        ; register _osctune = 
_osctune equ 144
        ; line_number = 390
        ; bind _tun4 = _osctune@4
_tun4___byte equ _osctune
_tun4___bit equ 4
        ; line_number = 391
        ; bind _tun3 = _osctune@3
_tun3___byte equ _osctune
_tun3___bit equ 3
        ; line_number = 392
        ; bind _tun2 = _osctune@2
_tun2___byte equ _osctune
_tun2___bit equ 2
        ; line_number = 393
        ; bind _tun1 = _osctune@1
_tun1___byte equ _osctune
_tun1___bit equ 1
        ; line_number = 394
        ; bind _tun0 = _osctune@0
_tun0___byte equ _osctune
_tun0___bit equ 0
        ; line_number = 395
        ; constant _osccal_lsb = 1
_osccal_lsb equ 1

        ; line_number = 397
        ; register _ansel = 
_ansel equ 145
        ; line_number = 398
        ; bind _ans7 = _ansel@7
_ans7___byte equ _ansel
_ans7___bit equ 7
        ; line_number = 399
        ; bind _ans6 = _ansel@6
_ans6___byte equ _ansel
_ans6___bit equ 6
        ; line_number = 400
        ; bind _ans5 = _ansel@5
_ans5___byte equ _ansel
_ans5___bit equ 5
        ; line_number = 401
        ; bind _ans4 = _ansel@4
_ans4___byte equ _ansel
_ans4___bit equ 4
        ; line_number = 402
        ; bind _ans3 = _ansel@3
_ans3___byte equ _ansel
_ans3___bit equ 3
        ; line_number = 403
        ; bind _ans2 = _ansel@2
_ans2___byte equ _ansel
_ans2___bit equ 2
        ; line_number = 404
        ; bind _ans1 = _ansel@1
_ans1___byte equ _ansel
_ans1___bit equ 1
        ; line_number = 405
        ; bind _ans0 = _ansel@0
_ans0___byte equ _ansel
_ans0___bit equ 0

        ; line_number = 407
        ; register _wpua = 
_wpua equ 149
        ; line_number = 408
        ; bind _wpua5 = _wpua@5
_wpua5___byte equ _wpua
_wpua5___bit equ 5
        ; line_number = 409
        ; bind _wpua4 = _wpua@4
_wpua4___byte equ _wpua
_wpua4___bit equ 4
        ; line_number = 410
        ; bind _wpua2 = _wpua@2
_wpua2___byte equ _wpua
_wpua2___bit equ 2
        ; line_number = 411
        ; bind _wpua1 = _wpua@1
_wpua1___byte equ _wpua
_wpua1___bit equ 1
        ; line_number = 412
        ; bind _wpua0 = _wpua@0
_wpua0___byte equ _wpua
_wpua0___bit equ 0

        ; line_number = 414
        ; register _ioca = 
_ioca equ 150
        ; line_number = 415
        ; bind _ioca5 = _ioca@5
_ioca5___byte equ _ioca
_ioca5___bit equ 5
        ; line_number = 416
        ; bind _ioca4 = _ioca@4
_ioca4___byte equ _ioca
_ioca4___bit equ 4
        ; line_number = 417
        ; bind _ioca3 = _ioca@3
_ioca3___byte equ _ioca
_ioca3___bit equ 3
        ; line_number = 418
        ; bind _ioca2 = _ioca@2
_ioca2___byte equ _ioca
_ioca2___bit equ 2
        ; line_number = 419
        ; bind _ioca1 = _ioca@1
_ioca1___byte equ _ioca
_ioca1___bit equ 1
        ; line_number = 420
        ; bind _ioca0 = _ioca@0
_ioca0___byte equ _ioca
_ioca0___bit equ 0

        ; line_number = 422
        ; register _eedath = 
_eedath equ 151

        ; line_number = 424
        ; register _eeadrh = 
_eeadrh equ 152

        ; line_number = 426
        ; register _vrcon = 
_vrcon equ 153
        ; line_number = 427
        ; bind _vren = _vrcon@7
_vren___byte equ _vrcon
_vren___bit equ 7
        ; line_number = 428
        ; bind _vrr = _vrcon@5
_vrr___byte equ _vrcon
_vrr___bit equ 5
        ; line_number = 429
        ; bind _vr3 = _vrcon@3
_vr3___byte equ _vrcon
_vr3___bit equ 3
        ; line_number = 430
        ; bind _vr2 = _vrcon@2
_vr2___byte equ _vrcon
_vr2___bit equ 2
        ; line_number = 431
        ; bind _vr1 = _vrcon@1
_vr1___byte equ _vrcon
_vr1___bit equ 1
        ; line_number = 432
        ; bind _vr0 = _vrcon@0
_vr0___byte equ _vrcon
_vr0___bit equ 0

        ; line_number = 434
        ; register _eedata = 
_eedata equ 154
        ; line_number = 435
        ; bind _eedat7 = _eedata@7
_eedat7___byte equ _eedata
_eedat7___bit equ 7
        ; line_number = 436
        ; bind _eedat6 = _eedata@6
_eedat6___byte equ _eedata
_eedat6___bit equ 6
        ; line_number = 437
        ; bind _eedat5 = _eedata@5
_eedat5___byte equ _eedata
_eedat5___bit equ 5
        ; line_number = 438
        ; bind _eedat4 = _eedata@4
_eedat4___byte equ _eedata
_eedat4___bit equ 4
        ; line_number = 439
        ; bind _eedat3 = _eedata@3
_eedat3___byte equ _eedata
_eedat3___bit equ 3
        ; line_number = 440
        ; bind _eedat2 = _eedata@2
_eedat2___byte equ _eedata
_eedat2___bit equ 2
        ; line_number = 441
        ; bind _eedat1 = _eedata@1
_eedat1___byte equ _eedata
_eedat1___bit equ 1
        ; line_number = 442
        ; bind _eedat0 = _eedata@0
_eedat0___byte equ _eedata
_eedat0___bit equ 0

        ; line_number = 444
        ; register _eeadr = 
_eeadr equ 155
        ; line_number = 445
        ; bind _eeadr7 = _eeadr@7
_eeadr7___byte equ _eeadr
_eeadr7___bit equ 7
        ; line_number = 446
        ; bind _eeadr6 = _eeadr@6
_eeadr6___byte equ _eeadr
_eeadr6___bit equ 6
        ; line_number = 447
        ; bind _eeadr5 = _eeadr@5
_eeadr5___byte equ _eeadr
_eeadr5___bit equ 5
        ; line_number = 448
        ; bind _eeadr4 = _eeadr@4
_eeadr4___byte equ _eeadr
_eeadr4___bit equ 4
        ; line_number = 449
        ; bind _eeadr3 = _eeadr@3
_eeadr3___byte equ _eeadr
_eeadr3___bit equ 3
        ; line_number = 450
        ; bind _eeadr2 = _eeadr@2
_eeadr2___byte equ _eeadr
_eeadr2___bit equ 2
        ; line_number = 451
        ; bind _eeadr1 = _eeadr@1
_eeadr1___byte equ _eeadr
_eeadr1___bit equ 1
        ; line_number = 452
        ; bind _eeadr0 = _eeadr@0
_eeadr0___byte equ _eeadr
_eeadr0___bit equ 0

        ; line_number = 454
        ; register _eecon1 = 
_eecon1 equ 156
        ; line_number = 455
        ; bind _eepgd = _eecon1@7
_eepgd___byte equ _eecon1
_eepgd___bit equ 7
        ; line_number = 456
        ; bind _wrerr = _eecon1@3
_wrerr___byte equ _eecon1
_wrerr___bit equ 3
        ; line_number = 457
        ; bind _wren = _eecon1@2
_wren___byte equ _eecon1
_wren___bit equ 2
        ; line_number = 458
        ; bind _wr = _eecon1@1
_wr___byte equ _eecon1
_wr___bit equ 1
        ; line_number = 459
        ; bind _rd = _eecon1@0
_rd___byte equ _eecon1
_rd___bit equ 0

        ; line_number = 461
        ; register _eecon2 = 
_eecon2 equ 157

        ; line_number = 463
        ; register _adresl = 
_adresl equ 158

        ; line_number = 465
        ; register _adcon1 = 
_adcon1 equ 159
        ; line_number = 466
        ; bind _adcs2 = _adcon1@6
_adcs2___byte equ _adcon1
_adcs2___bit equ 6
        ; line_number = 467
        ; bind _adcs1 = _adcon1@5
_adcs1___byte equ _adcon1
_adcs1___bit equ 5
        ; line_number = 468
        ; bind _adcs0 = _adcon1@4
_adcs0___byte equ _adcon1
_adcs0___bit equ 4

        ; # Data Bank 2 (0x100 - 0x17f):

        ; buffer = '_robobricks_pic16f688'
        ; line_number = 6
        ; library _pic16f688 exited
        ; line_number = 7
        ; library clock8mhz entered
        ; # Copyright (c) 2004-2005 by Wayne C. Gramlich
        ; # All rights reserved.

        ; # This library defines the contstants {clock_rate}, {instruction_rate},
        ; # and {clocks_per_instruction}.

        ; # Define processor constants:
        ; buffer = 'clock8mhz'
        ; line_number = 9
        ; constant clock_rate = 8000000
clock_rate equ 8000000
        ; line_number = 10
        ; constant clocks_per_instruction = 4
clocks_per_instruction equ 4
        ; line_number = 11
        ; constant instruction_rate = clock_rate / clocks_per_instruction
instruction_rate equ 2000000
        ; line_number = 12
        ; constant microsecond = 2
microsecond equ 2


        ; buffer = '_robobricks_pic16f688'
        ; line_number = 7
        ; library clock8mhz exited

        ; # Get some EUSART constants defined:
        ; line_number = 10
        ; constant _eusart_clock = clock_rate
_eusart_clock equ 8000000
        ; line_number = 11
        ; constant _eusart_factor = 4
_eusart_factor equ 4
        ; line_number = 12
        ; library _eusart entered

        ; # Copyright (c) 2005 by Wayne C. Gramlich
        ; # All rights reserved.

        ; # This library contains a bunch of definitions for the Enhanced Universal
        ; # Asynchronous Serial Receiver/Transmitter (EUSART) that is available
        ; # on many of the PIC microcontrollers.

        ; # In order to use this module you have to get two constants defined
        ; # BEFORE including this library -- {_eusart_factor} and {_eusart_clock}.
        ; # {_eusart_clock} should be set to the frequency oscillator for the chip.
        ; # {_eusart_factor} should be set to 4, 16, or 64 depending upon whether
        ; # the {_brg16} and {_brgh} bits are set.  Use the table below to select:
        ; #
        ; #        _{brg16}	{_brgh}		_{eusart_factor}
        ; #	    0		   0		      64
        ; #	    0		   1		      16
        ; #	    1		   0		      16
        ; #	    1		   1		       

        ; # 2400 baud:
        ; buffer = '_eusart'
        ; line_number = 23
        ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
_eusart_2400 equ 832
        ; line_number = 24
        ; constant _eusart_2400_low = _eusart_2400 & 0xff
_eusart_2400_low equ 64
        ; line_number = 25
        ; constant _eusart_2400_high = _eusart_2400 >> 8
_eusart_2400_high equ 3
        ; line_number = 26
        ; constant _eusart_2400_index = 0
_eusart_2400_index equ 0
        ; # 4800 baud:
        ; line_number = 28
        ; constant _eusart_4800 = (_eusart_clock / (4800 * _eusart_factor)) - 1
_eusart_4800 equ 415
        ; line_number = 29
        ; constant _eusart_4800_low = _eusart_4800 & 0xff
_eusart_4800_low equ 159
        ; line_number = 30
        ; constant _eusart_4800_high = _eusart_4800 >> 8
_eusart_4800_high equ 1
        ; line_number = 31
        ; constant _eusart_4800_index = 1
_eusart_4800_index equ 1
        ; # 9600 baud:
        ; line_number = 33
        ; constant _eusart_9600 = (_eusart_clock / (9600 * _eusart_factor)) - 1
_eusart_9600 equ 207
        ; line_number = 34
        ; constant _eusart_9600_low = _eusart_9600 & 0xff
_eusart_9600_low equ 207
        ; line_number = 35
        ; constant _eusart_9600_high = _eusart_9600 >> 8
_eusart_9600_high equ 0
        ; line_number = 36
        ; constant _eusart_9600_index = 2
_eusart_9600_index equ 2
        ; # 19200 baud:
        ; line_number = 38
        ; constant _eusart_19200 = (_eusart_clock / (19200 * _eusart_factor)) - 1
_eusart_19200 equ 103
        ; line_number = 39
        ; constant _eusart_19200_low = _eusart_19200 & 0xff
_eusart_19200_low equ 103
        ; line_number = 40
        ; constant _eusart_19200_high = _eusart_19200 >> 8
_eusart_19200_high equ 0
        ; line_number = 41
        ; constant _eusart_19200_index = 3
_eusart_19200_index equ 3
        ; # 38400 baud:
        ; line_number = 43
        ; constant _eusart_38400 = (_eusart_clock / (38400 * _eusart_factor)) - 1
_eusart_38400 equ 51
        ; line_number = 44
        ; constant _eusart_38400_low = _eusart_38400 & 0xff
_eusart_38400_low equ 51
        ; line_number = 45
        ; constant _eusart_38400_high = _eusart_38400 >> 8
_eusart_38400_high equ 0
        ; line_number = 46
        ; constant _eusart_38400_index = 4
_eusart_38400_index equ 4
        ; # 57600 baud:
        ; line_number = 48
        ; constant _eusart_57600 = (_eusart_clock / (57600 * _eusart_factor)) - 1
_eusart_57600 equ 33
        ; line_number = 49
        ; constant _eusart_57600_low = _eusart_57600 & 0xff
_eusart_57600_low equ 33
        ; line_number = 50
        ; constant _eusart_57600_high = _eusart_57600 >> 8
_eusart_57600_high equ 0
        ; line_number = 51
        ; constant _eusart_57600_index = 5
_eusart_57600_index equ 5
        ; # 115200 baud:
        ; line_number = 53
        ; constant _eusart_115200 = (_eusart_clock / (115200 * _eusart_factor)) - 1
_eusart_115200 equ 16
        ; line_number = 54
        ; constant _eusart_115200_low = _eusart_115200 & 0xff
_eusart_115200_low equ 16
        ; line_number = 55
        ; constant _eusart_115200_high = _eusart_115200 >> 8
_eusart_115200_high equ 0
        ; line_number = 56
        ; constant _eusart_115200_index = 6
_eusart_115200_index equ 6
        ; # 203400 baud:
        ; line_number = 58
        ; constant _eusart_203400 = (_eusart_clock / (203400 * _eusart_factor)) - 1
_eusart_203400 equ 8
        ; line_number = 59
        ; constant _eusart_203400_low = _eusart_203400 & 0xff
_eusart_203400_low equ 8
        ; line_number = 60
        ; constant _eusart_203400_high = _eusart_203400 >> 8
_eusart_203400_high equ 0
        ; line_number = 61
        ; constant _eusart_203400_index = 7
_eusart_203400_index equ 7


        ; buffer = '_robobricks_pic16f688'
        ; line_number = 12
        ; library _eusart exited

        ; line_number = 14
        ; global debug_mode bit
debug_mode___byte equ globals___0+79
debug_mode___bit equ 0
        ; line_number = 15
        ; global in_byte_get bit
in_byte_get___byte equ globals___0+79
in_byte_get___bit equ 1

        ; Delaying code generation for procedure  byte_get
        ; Delaying code generation for procedure  byte_put
        ; Delaying code generation for procedure  baud_rate_low
        ; Delaying code generation for procedure  baud_rate_high

        ; buffer = 'servo4'
        ; line_number = 6
        ; library _robobricks_pic16f688 exited

        ; line_number = 8
        ; package pdip
        ; line_number = 9
        ; pin 1 = power_supply
        ; line_number = 10
        ;  pin 2 = ra5_nc
        ; line_number = 11
        ;  pin 3 = ra4_in, name = debug
debug___byte equ _porta
debug___bit equ 4
        ; line_number = 12
        ;  pin 4 = ra3_in, name = cal_mode
cal_mode___byte equ _porta
cal_mode___bit equ 4
        ; line_number = 13
        ;  pin 5 = rx
        ; line_number = 14
        ;  pin 6 = tx
        ; line_number = 15
        ;  pin 7 = rc3_out, name = servo3, bit = servo3_bit, mask = servo3_mask
servo3___byte equ _portc
servo3___bit equ 3
servo3_bit equ 3
servo3_mask equ 8
        ; line_number = 16
        ;  pin 8 = an6, name = sense3, bit = sense3_channel
sense3___byte equ _portc
sense3___bit equ 2
sense3_channel equ 2
        ; line_number = 17
        ;  pin 9 = rc1_out, name = servo2, bit = servo2_bit, mask = servo2_mask
servo2___byte equ _portc
servo2___bit equ 1
servo2_bit equ 1
servo2_mask equ 2
        ; line_number = 18
        ;  pin 10 = an4, name = sense2, bit = sense2_channel
sense2___byte equ _portc
sense2___bit equ 0
sense2_channel equ 0
        ; line_number = 19
        ;  pin 11 = ra2_out, name = servo1, bit = servo1_bit, mask = servo1_mask
servo1___byte equ _porta
servo1___bit equ 2
servo1_bit equ 2
servo1_mask equ 4
        ; line_number = 20
        ;  pin 12 = an1, name = sense0, bit = sense0_channel
sense0___byte equ _porta
sense0___bit equ 1
sense0_channel equ 1
        ; line_number = 21
        ;  pin 13 = ra0_out, name = servo0, bit = servo0_bit, mask = servo0_mask
servo0___byte equ _porta
servo0___bit equ 0
servo0_bit equ 0
servo0_mask equ 1
        ; line_number = 22
        ;  pin 14 = ground
        ; line_number = 23
        ; constant sense1_channel = 0
sense1_channel equ 0

        ; #configure cp=on, wdte=on

        ; # Define the pin bindings:
        ; line_number = 28
        ; constant initial_minimum = 1000 * microsecond
initial_minimum equ 2000
        ; line_number = 29
        ; constant initial_maximum = 2000 * microsecond
initial_maximum equ 4000
        ; line_number = 30
        ; constant initial_scale = (initial_maximum - initial_minimum) >> 4
initial_scale equ 125
        ; line_number = 31
        ; constant initial_high = initial_minimum >> 8
initial_high equ 7
        ; line_number = 32
        ; constant initial_low = initial_minimum & 0xff
initial_low equ 208

        ; line_number = 34
        ; global analogs[4] array[byte]
analogs equ globals___0+3

        ; # The next {eedata_size} bytes are saved and restored from EEData:
        ; line_number = 37
        ; constant eedata_size = 13
eedata_size equ 13
        ; line_number = 38
        ; global base_lows[4] array[byte]
base_lows equ globals___0+7
        ; line_number = 39
        ; global base_highs[4] array[byte]
base_highs equ globals___0+11
        ; line_number = 40
        ; global scales[4] array[byte]
scales equ globals___0+15
        ; line_number = 41
        ; global address byte
address equ globals___0+19

        ; line_number = 43
        ; global fines[4] array[byte]
fines equ globals___0+20
        ; line_number = 44
        ; global positions[4] array[byte]
positions equ globals___0+24
        ; line_number = 45
        ; global interrupts byte
interrupts equ globals___0+28
        ; line_number = 46
        ; global enables byte
enables equ globals___0+29

        ; line_number = 48
        ; global command_previous byte
command_previous equ globals___0+30
        ; line_number = 49
        ; global command_last byte
command_last equ globals___0+31
        ; line_number = 50
        ; global sent_previous byte
sent_previous equ globals___0+32
        ; line_number = 51
        ; global sent_last byte
sent_last equ globals___0+33

        ; line_number = 53
        ; global final_lows[4] array[byte]
final_lows equ globals___0+34
        ; line_number = 54
        ; global final_highs[4] array[byte]
final_highs equ globals___0+38

        ; line_number = 56
        ; global interrupt_pending bit
interrupt_pending___byte equ globals___0+79
interrupt_pending___bit equ 2

        ; line_number = 58
        ; constant servo_on = 0
servo_on equ 0
        ; line_number = 59
        ; constant servo_off = 1
servo_off equ 1

        ; line_number = 61
        ; origin 0
        org     0

        ; line_number = 63
        ; procedure xmain
xmain:
        ; arguments_none
        ; line_number = 65
        ;  returns_nothing

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 67
        ;  assemble
        ; line_number = 68
        goto    main

        ; delay after procedure statements=non-uniform
        ; Implied return
        retlw   0




        ; line_number = 70
        ; origin 4
        org     4

        ; line_number = 72
        ; procedure interrupt
interrupt:
interrupt___w_save equ shared___globals+1
interrupt___status_save equ shared___globals
        ; Carefully save __w and __tatus into RAM
        ; Save W first (easy)
        movwf   interrupt___w_save
        ; Save Status without smashing it (tricky)
        ; Move swapped version of status into W
        swapf   __status,w
        ; Store swapped version of status into RAM
        movwf   interrupt___status_save
        ; arguments_none
        ; line_number = 74
        ;  returns_nothing

        ; before procedure statements delay=non-uniform, bit states=(data:??=>?? code:XX=>XX)
        ; line_number = 76
        ;  interrupts := interrupts + 1
        bcf     __rp0___byte, __rp0___bit
        bcf     __rp1___byte, __rp1___bit
        incf    interrupts,f
        ; line_number = 77
        ;  servo0 := servo_off
        bsf     servo0___byte, servo0___bit
        ; line_number = 78
        ;  servo1 := servo_off
        bsf     servo1___byte, servo1___bit
        ; line_number = 79
        ;  servo2 := servo_off
        bsf     servo2___byte, servo2___bit
        ; line_number = 80
        ;  servo3 := servo_off
        bsf     servo3___byte, servo3___bit
        ; line_number = 81
        ;  _tmr1if := 0
        bcf     _tmr1if___byte, _tmr1if___bit


        ; delay after procedure statements=non-uniform
        ; Interrupt return
        ; Carefully restore __w and __tatus from RAM
        ; Restore swapped status into W
        swapf   interrupt___status_save,w
        ; W now contains (unswapped) status
        ; Restore W to __status
        movwf   __status
        ; From here on out, do not modify __status
        ; Swap saved W register in RAM
        swapf   interrupt___w_save,f
        ; Unswap the saved W reg and restore to W
        swapf   interrupt___w_save,w
        ; __w and __status are now restored
        ; Return from interrupt
        retfie  




        ; line_number = 84
        ; procedure us100
us100:
        ; Last argument is sitting in W; save into argument variable
        movwf   us100__count
        ; delay=4294967295
        ; line_number = 85
        ; argument count byte
us100__count equ globals___0+42
        ; line_number = 86
        ;  returns_nothing

        ; # This procedure will delay by {count} * 100uS.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 90
        ;  loop_exactly count start
us100__1 equ globals___0+58
        movf    us100__count,w
        movwf   us100__1
us100__2:
        ; line_number = 91
        ; delay 100 * microsecond start
        ; Delay expression evaluates to 200
        ; line_number = 92
        ; do_nothing


        ; Delay 200 cycles
        ; Delay loop takes 50 * 4 = 200 cycles
        movlw   50
us100__3:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    us100__3
        ; line_number = 91
        ; delay 100 * microsecond done
        ; line_number = 90
        ;  loop_exactly count wrap-up
        decfsz  us100__1,f
        goto    us100__2
        ; line_number = 90
        ;  loop_exactly count done
        ; delay after procedure statements=non-uniform
        ; Implied return
        retlw   0




        ; line_number = 95
        ; procedure main
main:
        ; Initialize some registers
        movlw   1
        movwf   _adcon0
        movlw   82
        bsf     __rp0___byte, __rp0___bit
        movwf   _ansel
        movlw   7
        bcf     __rp0___byte, __rp0___bit
        movwf   _cmcon0
        movlw   58
        bsf     __rp0___byte, __rp0___bit
        movwf   _trisa
        movlw   53
        movwf   _trisc
        ; arguments_none
        ; line_number = 97
        ;  returns_nothing

        ; line_number = 99
        ;  local command byte
main__command equ globals___0+43
        ; line_number = 100
        ;  local glitch byte
main__glitch equ globals___0+44
        ; line_number = 101
        ;  local id_index byte
main__id_index equ globals___0+45
        ; line_number = 102
        ;  local temporary byte
main__temporary equ globals___0+46
        ; line_number = 103
        ;  local servo byte
main__servo equ globals___0+47
        ; line_number = 104
        ;  local position byte
main__position equ globals___0+48

        ; # Switch over to 8MHz:
        ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:XX=>XX)
        ; line_number = 107
        ;  _osccon := 0x71
        movlw   113
        movwf   _osccon

        ; # Warm up the UART:
        ; line_number = 110
        ;  _txsta := 0x24
        movlw   36
        bcf     __rp0___byte, __rp0___bit
        movwf   _txsta
        ; line_number = 111
        ;  _rcsta := 0x90
        movlw   144
        movwf   _rcsta
        ; line_number = 112
        ;  _baudctl := 0x08
        movlw   8
        movwf   _baudctl
        ; line_number = 113
        ;  _spbrg := _eusart_2400_low
        movlw   64
        movwf   _spbrg
        ; line_number = 114
        ;  _spbrgh := _eusart_2400_high
        movlw   3
        movwf   _spbrgh

        ; # These registers are in data bank 1:
        ; line_number = 117
        ;  _psa := 0
        bsf     __rp0___byte, __rp0___bit
        bcf     _psa___byte, _psa___bit

        ; #loop_forever
        ; #	servo0 := servo_on
        ; #	servo1 := servo_on
        ; #	servo2 := servo_on
        ; #	servo3 := servo_on
        ; #
        ; #	call us100(15)
        ; #
        ; #	servo0 := servo_off
        ; #	servo1 := servo_off
        ; #	servo2 := servo_off
        ; #	servo3 := servo_off
        ; #
        ; #	call us100(190)


        ; # These registers are in data bank 0:
        ; line_number = 136
        ;  _t1con := 0x00
        movlw   0
        bcf     __rp0___byte, __rp0___bit
        movwf   _t1con
        ; line_number = 137
        ;  interrupts := 0
        movlw   0
        movwf   interrupts

        ; # Set A/D clock to Fosc/32 (Tad= 1.6uS):
        ; line_number = 140
        ;  _adcon1 := 0x20
        movlw   32
        bsf     __rp0___byte, __rp0___bit
        movwf   _adcon1
        ; #_adcs0 := 1

        ; #_eeadr := 0
        ; #loop_exactly 13
        ; #	_rd := 1
        ; #	base_lows[_eeadr] := _eedata
        ; #	_eeadr := _eeadr + 1

        ; #if base_lows[0] = 0xff
        ; line_number = 150
        ;  servo := 0
        movlw   0
        bcf     __rp0___byte, __rp0___bit
        movwf   main__servo
        ; line_number = 151
        ;  loop_exactly 4 start
main__1 equ globals___0+59
        movlw   4
        movwf   main__1
main__2:
        ; line_number = 152
        ; base_lows[servo] := initial_low
        ; index_fsr_first
        movf    main__servo,w
        addlw   base_lows
        movwf   __fsr
        movlw   208
        movwf   __indf
        ; line_number = 153
        ;  base_highs[servo] := initial_high
        ; index_fsr_first
        movf    main__servo,w
        addlw   base_highs
        movwf   __fsr
        movlw   7
        movwf   __indf
        ; line_number = 154
        ;  scales[servo] := initial_scale
        ; index_fsr_first
        movf    main__servo,w
        addlw   scales
        movwf   __fsr
        movlw   125
        movwf   __indf
        ; line_number = 155
        ;  servo := servo + 1
        incf    main__servo,f
        ; line_number = 151
        ;  loop_exactly 4 wrap-up
        decfsz  main__1,f
        goto    main__2
        ; line_number = 151
        ;  loop_exactly 4 done
        ; line_number = 156
        ; address := 0xff
        movlw   255
        movwf   address

        ; line_number = 158
        ;  servo := 0
        movlw   0
        movwf   main__servo
        ; line_number = 159
        ;  loop_exactly 4 start
main__3 equ globals___0+59
        movlw   4
        movwf   main__3
main__4:
        ; line_number = 160
        ; positions[servo] := 0
        ; index_fsr_first
        movf    main__servo,w
        addlw   positions
        movwf   __fsr
        movlw   0
        movwf   __indf
        ; line_number = 161
        ;  fines[servo] := 0
        ; index_fsr_first
        movf    main__servo,w
        addlw   fines
        movwf   __fsr
        movlw   0
        movwf   __indf
        ; line_number = 162
        ;  servo := servo + 1
        incf    main__servo,f

        ; line_number = 159
        ;  loop_exactly 4 wrap-up
        decfsz  main__3,f
        goto    main__4
        ; line_number = 159
        ;  loop_exactly 4 done
        ; # For now:
        ; line_number = 165
        ;  enables := 0xf
        movlw   15
        movwf   enables
        ; #enables := 0

        ; # Let's initialize the servo's to off:
        ; line_number = 169
        ;  servo0 := servo_off
        bsf     servo0___byte, servo0___bit
        ; line_number = 170
        ;  servo1 := servo_off
        bsf     servo1___byte, servo1___bit
        ; line_number = 171
        ;  servo2 := servo_off
        bsf     servo2___byte, servo2___bit
        ; line_number = 172
        ;  servo3 := servo_off
        bsf     servo3___byte, servo3___bit

        ; # According to the specification sheet, TMR1L, TRM1H, and
        ; # TMR1IF must be clear before enabling TMR1IE.  Since they
        ; # do not say why, it is unclear what problem that this addresses.
        ; line_number = 177
        ;  _tmr1l := 0
        movlw   0
        movwf   _tmr1l
        ; line_number = 178
        ;  _tmr1h := 0
        movlw   0
        movwf   _tmr1h
        ; line_number = 179
        ;  _tmr1if := 0
        bcf     _tmr1if___byte, _tmr1if___bit
        ; line_number = 180
        ;  _tmr1ie := 1
        bsf     __rp0___byte, __rp0___bit
        bsf     _tmr1ie___byte, _tmr1ie___bit
        ; line_number = 181
        ;  _peie := 1
        bcf     __rp0___byte, __rp0___bit
        bsf     _peie___byte, _peie___bit
        ; line_number = 182
        ;  _gie := 1
        bsf     _gie___byte, _gie___bit
        ; #_tmr1on := 1
        ; #_tmr1ie := 0
        ; #_peie := 0
        ; #_gie := 0
        ; line_number = 187
        ;  _tmr1on := 0
        bcf     _tmr1on___byte, _tmr1on___bit

        ; line_number = 189
        ;  glitch := 0
        movlw   0
        movwf   main__glitch
        ; line_number = 190
        ;  id_index := 0
        movlw   0
        movwf   main__id_index


        ; line_number = 193
        ;  loop_forever start
main__5:
        ; line_number = 194
        ; command := byte_get()
        call    byte_get
        movwf   main__command
        ; line_number = 195
        ;  servo := command & 3
        movlw   3
        andwf   main__command,w
        movwf   main__servo
        ; line_number = 196
        ;  switch command >> 6 start
        movlw   main__93>>8
        movwf   __pclath
main__94 equ globals___0+59
        swapf   main__command,w
        movwf   main__94
        rrf     main__94,f
        rrf     main__94,w
        andlw   3
        addlw   main__93
        movwf   __pcl
        ; page_group 4
main__93:
        goto    main__89
        goto    main__90
        goto    main__91
        goto    main__92
        ; line_number = 197
        ; case 0
main__89:
        ; # 00xx xxxx
        ; line_number = 199
        ;  switch (command >> 3) & 7 start
        movlw   main__15>>8
        movwf   __pclath
main__16 equ globals___0+59
        rrf     main__command,w
        movwf   main__16
        rrf     main__16,f
        rrf     main__16,w
        andlw   7
        addlw   main__15
        movwf   __pcl
        ; page_group 8
main__15:
        goto    main__10
        goto    main__11
        goto    main__12
        goto    main__13
        goto    main__14
        goto    main__14
        goto    main__14
        goto    main__14
        ; line_number = 200
        ; case 0
main__10:
        ; # 0000 0xxx:
        ; line_number = 202
        ;  temporary := byte_get()
        call    byte_get
        movwf   main__temporary
        ; line_number = 203
        ;  if command@2 start
main__select__6___byte equ main__command
main__select__6___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__6
        ; # 0000 01ss (Write Base High):
        ; line_number = 205
        ;  base_highs[servo] := temporary
        ; index_fsr_first
        movf    main__servo,w
        ; # 0000 00ss (Write Base Low):
        ; line_number = 208
        ;  base_lows[servo] := temporary
        ; index_fsr_first
        ; CASE: true_size=1 && false_size=1
        btfsc   main__select__6___byte, main__select__6___bit
        addlw   base_highs
        btfss   main__select__6___byte, main__select__6___bit
        addlw   base_lows
        movwf   __fsr
        movf    main__temporary,w
        movwf   __indf
        ; <=bit_code_emit@symbol; sym=main__select__6 (data:00=>00 code:XX=>XX)
        ; line_number = 203
        ;  if command@2 done
        goto    main__17
        ; line_number = 209
        ; case 1
main__11:
        ; # 0000 1xxx:
        ; line_number = 211
        ;  temporary := byte_get()
        call    byte_get
        movwf   main__temporary
        ; line_number = 212
        ;  if command@2 start
main__select__7___byte equ main__command
main__select__7___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__7
        ; # 0000 11ss (Write Scale):
        ; line_number = 214
        ;  scales[servo] := temporary
        ; index_fsr_first
        movf    main__servo,w
        ; # 0000 10ss (Write Position)
        ; line_number = 217
        ;  positions[servo] := temporary
        ; index_fsr_first
        ; CASE: true_size=1 && false_size=1
        btfsc   main__select__7___byte, main__select__7___bit
        addlw   scales
        btfss   main__select__7___byte, main__select__7___bit
        addlw   positions
        movwf   __fsr
        movf    main__temporary,w
        movwf   __indf
        ; <=bit_code_emit@symbol; sym=main__select__7 (data:00=>00 code:XX=>XX)
        ; line_number = 212
        ;  if command@2 done
        goto    main__17
        ; line_number = 218
        ; case 2
main__12:
        ; # 0001 0xxx:
        ; line_number = 220
        ;  if command@2 start
main__select__8___byte equ main__command
main__select__8___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__8
        ; # 0001 01ss (Read Base High):
        ; line_number = 222
        ;  temporary := base_highs[servo]
        movf    main__servo,w
        ; # 0001 00ss (Read Base Low):
        ; line_number = 225
        ;  temporary := base_lows[servo]
        ; CASE: true_size=1 && false_size=1
        btfsc   main__select__8___byte, main__select__8___bit
        addlw   base_highs
        btfss   main__select__8___byte, main__select__8___bit
        addlw   base_lows
        movwf   __fsr
        movf    __indf,w
        movwf   main__temporary
        ; <=bit_code_emit@symbol; sym=main__select__8 (data:00=>00 code:XX=>XX)
        ; line_number = 220
        ;  if command@2 done
        ; line_number = 226
        ; call byte_put(temporary)
        movf    main__temporary,w
        call    byte_put
        goto    main__17
        ; line_number = 227
        ; case 3
main__13:
        ; # 0001 1xxx:
        ; line_number = 229
        ;  if command@2 start
main__select__9___byte equ main__command
main__select__9___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__9
        ; # 0001 11ss (Read Scale):
        ; line_number = 231
        ;  temporary := scales[servo]
        movf    main__servo,w
        ; # 0001 10ss (Read Position):
        ; line_number = 234
        ;  temporary := positions[servo]
        ; CASE: true_size=1 && false_size=1
        btfsc   main__select__9___byte, main__select__9___bit
        addlw   scales
        btfss   main__select__9___byte, main__select__9___bit
        addlw   positions
        movwf   __fsr
        movf    __indf,w
        movwf   main__temporary
        ; <=bit_code_emit@symbol; sym=main__select__9 (data:00=>00 code:XX=>XX)
        ; line_number = 229
        ;  if command@2 done
        ; line_number = 235
        ; call byte_put(temporary)
        movf    main__temporary,w
        call    byte_put
        goto    main__17
        ; line_number = 236
        ; case 4, 5, 6, 7
main__14:
        ; # 001x xxxx:
        ; line_number = 238
        ;  do_nothing
main__17:
        ; line_number = 199
        ;  switch (command >> 3) & 7 done
        goto    main__95
        ; line_number = 239
        ; case 1
main__90:
        ; # 01hh hhhh (Set High):
        ; line_number = 241
        ;  position := positions[servo]
        movf    main__servo,w
        addlw   positions
        movwf   __fsr
        movf    __indf,w
        movwf   main__position
        ; line_number = 242
        ;  position := position & 0xf | (command << 2) & 0xf0
main__18 equ globals___0+59
        movlw   15
        andwf   main__position,w
        movwf   main__18
main__19 equ globals___0+60
        rlf     main__command,w
        movwf   main__19
        rlf     main__19,w
        andlw   240
        iorwf   main__18,w
        movwf   main__position
        ; line_number = 243
        ;  positions[servo] := position
        ; index_fsr_first
        movf    main__servo,w
        addlw   positions
        movwf   __fsr
        movf    main__position,w
        movwf   __indf
        goto    main__95
        ; line_number = 244
        ; case 2
main__91:
        ; # 10ll llll (Set Low):
        ; line_number = 246
        ;  position := positions[servo]
        movf    main__servo,w
        addlw   positions
        movwf   __fsr
        movf    __indf,w
        movwf   main__position
        ; line_number = 247
        ;  position := position & 0xf0 | (command >> 2) & 0xf
main__20 equ globals___0+59
        movlw   240
        andwf   main__position,w
        movwf   main__20
main__21 equ globals___0+60
        rrf     main__command,w
        movwf   main__21
        rrf     main__21,w
        andlw   15
        iorwf   main__20,w
        movwf   main__position
        ; line_number = 248
        ;  positions[servo] := position
        ; index_fsr_first
        movf    main__servo,w
        addlw   positions
        movwf   __fsr
        movf    main__position,w
        movwf   __indf
        goto    main__95
        ; line_number = 249
        ; case 3
main__92:
        ; # 11xx xxxx:
        ; line_number = 251
        ;  switch (command >> 3) & 7 start
        movlw   main__86>>8
        movwf   __pclath
main__87 equ globals___0+59
        rrf     main__command,w
        movwf   main__87
        rrf     main__87,f
        rrf     main__87,w
        andlw   7
        addlw   main__86
        movwf   __pcl
        ; page_group 8
main__86:
        goto    main__79
        goto    main__80
        goto    main__81
        goto    main__82
        goto    main__83
        goto    main__84
        goto    main__84
        goto    main__85
        ; line_number = 252
        ; case 0
main__79:
        ; # 1100 0ess (Set Enable and Position):
        ; line_number = 254
        ;  positions[servo] := byte_get()
        ; index_temporary_first
main__22 equ globals___0+59
main__23 equ globals___0+60
        movf    main__servo,w
        movwf   main__22
        call    byte_get
        movwf   main__23
        movf    main__22,w
        addlw   positions
        movwf   __fsr
        movf    main__23,w
        movwf   __indf
        ; line_number = 255
        ;  temporary := mask_get(servo)
        movf    main__servo,w
        call    mask_get
        movwf   main__temporary
        ; line_number = 256
        ;  if command@2 start
main__select__24___byte equ main__command
main__select__24___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__24
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   main__select__24___byte, main__select__24___bit
        goto    main__25
        ; line_number = 257
        ; enables := enables | temporary
        movf    main__temporary,w
        iorwf   enables,f
        goto    main__26
main__25:
        ; line_number = 259
        ; enables := enables & (temporary ^ 0xf)
        movlw   15
        xorwf   main__temporary,w
        andwf   enables,f
main__26:
        ; <=bit_code_emit@symbol; sym=main__select__24 (data:00=>00 code:XX=>XX)
        ; line_number = 256
        ;  if command@2 done
        goto    main__88
        ; line_number = 260
        ; case 1
main__80:
        ; # 1100 1ess (Set Enable Flag Only):
        ; line_number = 262
        ;  temporary := mask_get(servo)
        movf    main__servo,w
        call    mask_get
        movwf   main__temporary
        ; line_number = 263
        ;  if command@2 start
main__select__27___byte equ main__command
main__select__27___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__27
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   main__select__27___byte, main__select__27___bit
        goto    main__28
        ; line_number = 264
        ; enables := enables | temporary
        movf    main__temporary,w
        iorwf   enables,f
        goto    main__29
main__28:
        ; line_number = 266
        ; enables := enables & (temporary ^ 0xf)
        movlw   15
        xorwf   main__temporary,w
        andwf   enables,f
main__29:
        ; <=bit_code_emit@symbol; sym=main__select__27 (data:00=>00 code:XX=>XX)
        ; line_number = 263
        ;  if command@2 done
        goto    main__88
        ; line_number = 267
        ; case 2
main__81:
        ; # 1101 0xxx:
        ; line_number = 269
        ;  if command@2 start
main__select__32___byte equ main__command
main__select__32___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__32
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   main__select__32___byte, main__select__32___bit
        goto    main__33
        ; # 1101 01ss (Read Enable):
        ; line_number = 271
        ;  temporary := 0
        movlw   0
        movwf   main__temporary
        ; line_number = 272
        ;  if enables & mask_get(servo) != 0 start
        ; Left minus Right
main__31 equ globals___0+59
        movf    enables,w
        movwf   main__31
        movf    main__servo,w
        call    mask_get
        andwf   main__31,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size=0 && false_code.size=1
        btfss   __z___byte, __z___bit
        ; line_number = 273
        ; temporary@0 := 1
main__select__30___byte equ main__temporary
main__select__30___bit equ 0
        bsf     main__select__30___byte, main__select__30___bit
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
        ; line_number = 272
        ;  if enables & mask_get(servo) != 0 done
        ; line_number = 274
        ; call byte_put(temporary)
        movf    main__temporary,w
        goto    main__34
main__33:
        ; # 1101 00ss (Read position):
        ; line_number = 277
        ;  call byte_put(positions[servo])
        movf    main__servo,w
        addlw   positions
        movwf   __fsr
        movf    __indf,w
main__34:
        call    byte_put
        ; <=bit_code_emit@symbol; sym=main__select__32 (data:00=>00 code:XX=>XX)
        ; line_number = 269
        ;  if command@2 done
        goto    main__88
        ; line_number = 278
        ; case 3
main__82:
        ; # 1101 1xxx:
        ; line_number = 280
        ;  if command@2 start
main__select__49___byte equ main__command
main__select__49___bit equ 2
        ; =>bit_code_emit@symbol(): sym=main__select__49
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   main__select__49___byte, main__select__49___bit
        goto    main__50
        ; # 1101 11ss (Read Current Draw):
        ; line_number = 282
        ;  call byte_put(analogs[servo])
        movf    main__servo,w
        addlw   analogs
        movwf   __fsr
        movf    __indf,w
        call    byte_put
        goto    main__51
main__50:
        ; # 1101 10xx:
        ; line_number = 285
        ;  if command@1 start
main__select__46___byte equ main__command
main__select__46___bit equ 1
        ; =>bit_code_emit@symbol(): sym=main__select__46
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   main__select__46___byte, main__select__46___bit
        goto    main__47
        ; # 1101 101x:
        ; line_number = 287
        ;  if command@0 start
main__select__43___byte equ main__command
main__select__43___bit equ 0
        ; =>bit_code_emit@symbol(): sym=main__select__43
        ; # 1101 1011 (Set Address):
        ; line_number = 289
        ;  address := byte_get()
        call    byte_get
        ; # 1101 1010 (Save settings):
        ; # Need magic OK byte first:
        ; line_number = 293
        ;  if byte_get() = 0xa5 start
        ; Left minus Right
        ; CASE: true.size=1 false.size>1; no GOTO
        btfss   main__select__43___byte, main__select__43___bit
        goto    main__44
        movwf   address
        goto    main__45
main__44:
        addlw   91
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size>1 false.size=1; no GOTO's
        btfss   __z___byte, __z___bit
        goto    main__41
        ; #FIXME: Compiler problem kludge!!!
        ; line_number = 295
        ;  temporary := 0
        movlw   0
        movwf   main__temporary
        ; line_number = 296
        ;  _eeadr := 0
        movlw   0
        bsf     __rp0___byte, __rp0___bit
        movwf   _eeadr
        ; line_number = 297
        ;  _gie := 0
        bcf     __rp0___byte, __rp0___bit
        bcf     _gie___byte, _gie___bit
        ; line_number = 298
        ;  loop_exactly 13 start
main__38 equ globals___0+59
        movlw   13
        movwf   main__38
main__39:
        ; line_number = 299
        ; _eedata := base_lows[_eeadr]
        bsf     __rp0___byte, __rp0___bit
        movf    _eeadr,w
        addlw   base_lows
        movwf   __fsr
        movf    __indf,w
        movwf   _eedata
        ; line_number = 300
        ;  _wren := 1
        bsf     _wren___byte, _wren___bit
        ; line_number = 301
        ;  _eecon2 := 0x55
        movlw   85
        movwf   _eecon2
        ; line_number = 302
        ;  _eecon2 := 0xaa
        movlw   170
        movwf   _eecon2
        ; line_number = 303
        ;  _wr := 1
        bsf     _wr___byte, _wr___bit
        ; line_number = 304
        ;  while _wr start
main__40:
        ; =>bit_code_emit@symbol(): sym=_wr
        ; CASE: True.size=1 False.size=0
        btfsc   _wr___byte, _wr___bit
        ; true=GOTO
        goto    main__40
        ; <=bit_code_emit@symbol; sym=_wr (data:00=>01 code:XX=>XX)
        ; line_number = 304
        ;  while _wr done
        ; line_number = 306
        ; _eeadr := _eeadr + 1
        incf    _eeadr,f
        bcf     __rp0___byte, __rp0___bit
        ; line_number = 298
        ;  loop_exactly 13 wrap-up
        decfsz  main__38,f
        goto    main__39
        ; line_number = 298
        ;  loop_exactly 13 done
        ; line_number = 307
        ; _gie := 1
        bsf     _gie___byte, _gie___bit
        ; line_number = 308
        ;  _wren := 0
        bsf     __rp0___byte, __rp0___bit
        bcf     _wren___byte, _wren___bit
        ; line_number = 309
        ;  call byte_put(0xa5)
        movlw   165
        bcf     __rp0___byte, __rp0___bit
        goto    main__42
main__41:
        ; line_number = 311
        ; call byte_put(0x11)
        movlw   17
main__42:
        call    byte_put
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
        ; line_number = 293
        ;  if byte_get() = 0xa5 done
main__45:
        ; <=bit_code_emit@symbol; sym=main__select__43 (data:00=>00 code:XX=>XX)
        ; line_number = 287
        ;  if command@0 done
        goto    main__48
main__47:
        ; # 1101 100x:
        ; line_number = 314
        ;  if command@0 start
main__select__35___byte equ main__command
main__select__35___bit equ 0
        ; =>bit_code_emit@symbol(): sym=main__select__35
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   main__select__35___byte, main__select__35___bit
        goto    main__36
        ; # 1101 1001 (Set Enables):
        ; line_number = 316
        ;  enables := byte_get() & 0xf
        call    byte_get
        andlw   15
        movwf   enables
        goto    main__37
main__36:
        ; # 1101 1001 (Read Enables):
        ; line_number = 319
        ;  call byte_put(enables)
        movf    enables,w
        call    byte_put
main__37:
        ; <=bit_code_emit@symbol; sym=main__select__35 (data:00=>00 code:XX=>XX)
        ; line_number = 314
        ;  if command@0 done
main__48:
        ; <=bit_code_emit@symbol; sym=main__select__46 (data:00=>00 code:XX=>XX)
        ; line_number = 285
        ;  if command@1 done
main__51:
        ; <=bit_code_emit@symbol; sym=main__select__49 (data:00=>00 code:XX=>XX)
        ; line_number = 280
        ;  if command@2 done
        goto    main__88
        ; line_number = 320
        ; case 4
main__83:
        ; # 1110 0xxx:
        ; line_number = 322
        ;  switch command & 7 start
        ; line_number = 323
        ; case_maximum 7
        movlw   main__60>>8
        movwf   __pclath
        movlw   7
        andwf   main__command,w
        addlw   main__60
        movwf   __pcl
        ; page_group 8
main__60:
        goto    main__52
        goto    main__53
        goto    main__54
        goto    main__55
        goto    main__56
        goto    main__57
        goto    main__58
        goto    main__59
        ; line_number = 324
        ; case 0
main__52:
        ; line_number = 325
        ; call byte_put(interrupts)
        movf    interrupts,w
        call    byte_put
        goto    main__61
        ; line_number = 326
        ; case 1
main__53:
        ; line_number = 327
        ; call byte_put(positions[0])
        movf    positions,w
        call    byte_put
        goto    main__61
        ; line_number = 328
        ; case 2
main__54:
        ; line_number = 329
        ; call byte_put(final_lows[0])
        movf    final_lows,w
        call    byte_put
        goto    main__61
        ; line_number = 330
        ; case 3
main__55:
        ; line_number = 331
        ; call byte_put(final_highs[0])
        movf    final_highs,w
        call    byte_put
        goto    main__61
        ; line_number = 332
        ; case 4
main__56:
        ; line_number = 333
        ; call byte_put(base_lows[0])
        movf    base_lows,w
        call    byte_put
        goto    main__61
        ; line_number = 334
        ; case 5
main__57:
        ; line_number = 335
        ; call byte_put(base_highs[0])
        movf    base_highs,w
        call    byte_put
        goto    main__61
        ; line_number = 336
        ; case 6
main__58:
        ; line_number = 337
        ; call byte_put(scales[0])
        movf    scales,w
        call    byte_put
        goto    main__61
        ; line_number = 338
        ; case 7
main__59:
        ; line_number = 339
        ; call byte_put(fines[0])
        movf    fines,w
        call    byte_put

main__61:
        ; line_number = 322
        ;  switch command & 7 done
        goto    main__88
        ; line_number = 341
        ; case 5, 6
main__84:
        ; # 1110 0xxx, 1110 1xxx, 1111 0xxx:
        ; line_number = 343
        ;  do_nothing
        goto    main__88
        ; line_number = 344
        ; case 7
main__85:
        ; # 1111 1xxx
        ; line_number = 346
        ;  switch command & 7 start
        movlw   main__77>>8
        movwf   __pclath
        movlw   7
        andwf   main__command,w
        addlw   main__77
        movwf   __pcl
        ; page_group 8
main__77:
        goto    main__69
        goto    main__70
        goto    main__71
        goto    main__72
        goto    main__73
        goto    main__74
        goto    main__75
        goto    main__76
        ; line_number = 347
        ; case 0
main__69:
        ; This case body wants this bit set
        bsf     __rp0___byte, __rp0___bit
        ; line_number = 348
        ; _osctune := _osctune - _osccal_lsb
        decf    _osctune,f
        goto    main__78
        ; line_number = 349
        ; case 1
main__70:
        ; This case body wants this bit set
        bsf     __rp0___byte, __rp0___bit
        ; line_number = 350
        ; _osctune := _osctune + _osccal_lsb
        incf    _osctune,f
        goto    main__78
        ; line_number = 351
        ; case 2
main__71:
        ; This case body wants this bit set
        bsf     __rp0___byte, __rp0___bit
        ; line_number = 352
        ; call byte_put(_osctune)
        movf    _osctune,w
        bcf     __rp0___byte, __rp0___bit
        call    byte_put
        goto    main__78
        ; line_number = 353
        ; case 3
main__72:
        ; line_number = 354
        ; call byte_put(0)
        movlw   0
        call    byte_put
        goto    main__78
        ; line_number = 355
        ; case 4
main__73:
        ; line_number = 356
        ; temporary := 0
        movlw   0
        movwf   main__temporary
        ; line_number = 357
        ;  if id_index < id.size start
        movlw   40
        subwf   main__id_index,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size=0 && false.size>1
        btfsc   __c___byte, __c___bit
        goto    main__62
        ; line_number = 358
        ; temporary := id[id_index]
        movf    main__id_index,w
        call    id
        movwf   main__temporary
        ; line_number = 359
        ;  id_index := id_index + 1
        incf    main__id_index,f
main__62:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:XX=>XX)
        ; line_number = 357
        ;  if id_index < id.size done
        ; line_number = 360
        ; call byte_put(temporary)
        movf    main__temporary,w
        call    byte_put
        goto    main__78
        ; line_number = 361
        ; case 5
main__74:
        ; line_number = 362
        ; id_index := 0
        movlw   0
        movwf   main__id_index
        goto    main__78
        ; line_number = 363
        ; case 6
main__75:
        ; line_number = 364
        ; call byte_put(glitch)
        movf    main__glitch,w
        call    byte_put
        ; line_number = 365
        ;  glitch := 0
        movlw   0
        movwf   main__glitch
        goto    main__78
        ; line_number = 366
        ; case 7
main__76:
        ; line_number = 367
        ; glitch := glitch + 1
        incf    main__glitch,f
        ; #enables := 0xf
        ; line_number = 369
        ;  command := byte_get()
        call    byte_get
        movwf   main__command
        ; line_number = 370
        ;  servo := command & 3
        movlw   3
        andwf   main__command,w
        movwf   main__servo
        ; line_number = 371
        ;  position := byte_get()
        call    byte_get
        movwf   main__position
        ; line_number = 372
        ;  temporary := address
        movf    address,w
        movwf   main__temporary
        ; line_number = 373
        ;  if address = 0xff start
        ; Left minus Right
        incf    address,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    main__66
        ; line_number = 374
        ; temporary := (analogs[3] >> 2) & 0x30 | (analogs[2] >> 4) & 0xc
main__63 equ globals___0+59
main__64 equ globals___0+60
        movf    analogs+3,w
        movwf   main__64
        rrf     main__64,f
        rrf     main__64,w
        andlw   48
        movwf   main__63
main__65 equ globals___0+60
        movf    analogs+2,w
        movwf   main__65
        swapf   main__65,f
        andlw   12
        iorwf   main__63,w
        movwf   main__temporary

        ; Recombine size1 = 0 || size2 = 0
main__66:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
        ; line_number = 373
        ;  if address = 0xff done
        ; line_number = 376
        ; if (command ^ temporary) & 0xfc = 0 start
        ; Left minus Right
        movf    main__command,w
        xorwf   main__temporary,w
        andlw   252
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    main__68
        ; line_number = 377
        ; positions[servo] := position
        ; index_fsr_first
        movf    main__servo,w
        addlw   positions
        movwf   __fsr
        movf    main__position,w
        movwf   __indf
        ; line_number = 378
        ;  enables := enables | mask_get(servo)
main__67 equ globals___0+59
        movf    enables,w
        movwf   main__67
        movf    main__servo,w
        call    mask_get
        iorwf   main__67,w
        movwf   enables



        ; Recombine size1 = 0 || size2 = 0
main__68:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:XX=>XX)
        ; line_number = 376
        ; if (command ^ temporary) & 0xfc = 0 done
main__78:
        ; line_number = 346
        ;  switch command & 7 done
main__88:
        ; line_number = 251
        ;  switch (command >> 3) & 7 done
main__95:
        ; line_number = 196
        ;  switch command >> 6 done
        ; line_number = 193
        ;  loop_forever wrap-up
        ; Need to adjust code banks to match front of loop
        bcf     __rp0___byte, __rp0___bit
        goto    main__5
        ; line_number = 193
        ;  loop_forever done
        ; delay after procedure statements=non-uniform




        ; line_number = 382
        ; procedure delay
delay:
        ; arguments_none
        ; line_number = 384
        ;  returns_nothing
        ; line_number = 385
        ;  exact_delay 138 * microsecond

        ; # This procedure delays 1/3 of a bit.

        ; line_number = 389
        ;  local counter byte
delay__counter equ globals___0+49
        ; line_number = 390
        ;  local position_high byte
delay__position_high equ globals___0+50
        ; line_number = 391
        ;  local position_low byte
delay__position_low equ globals___0+51
        ; line_number = 392
        ;  local servo byte
delay__servo equ globals___0+52
        ; line_number = 393
        ;  local servo_low byte
delay__servo_low equ globals___0+53
        ; line_number = 394
        ;  local servo_high byte
delay__servo_high equ globals___0+54
        ; line_number = 395
        ;  local scale byte
delay__scale equ globals___0+55
        ; line_number = 396
        ;  local temporary byte
delay__temporary equ globals___0+56

        ; before procedure statements delay=0, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 398
        ;  watch_dog_reset done
        ; Delay at watch_dog_reset is 0
        clrwdt  

        ; #debug_out := 1
        ; line_number = 401
        ;  counter := (counter + 1) & 0x7f
        ; Delay at assignment is 1
        incf    delay__counter,w
        andlw   127
        movwf   delay__counter
        ; line_number = 402
        ;  servo := (counter >> 5) & 3
        ; Delay at assignment is 4
delay__1 equ globals___0+61
        swapf   delay__counter,w
        movwf   delay__1
        rrf     delay__1,w
        andlw   3
        movwf   delay__servo
        ; line_number = 403
        ;  switch counter & 0x1f start
        ; line_number = 404
        ; case_maximum 31
        movlw   delay__45>>8
        movwf   __pclath
        movlw   31
        andwf   delay__counter,w
        addlw   delay__45
        movwf   __pcl
        ; page_group 32
delay__45:
        goto    delay__38
        goto    delay__39
        goto    delay__39
        goto    delay__39
        goto    delay__39
        goto    delay__39
        goto    delay__39
        goto    delay__39
        goto    delay__39
        goto    delay__40
        goto    delay__41
        goto    delay__42
        goto    delay__43
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__46
        goto    delay__44
        ; case_data[0] delay=27{0 }
        ; case_data[1] delay=17{1 2 3 4 5 6 7 8 }
        ; case_data[2] delay=42{9 }
        ; case_data[3] delay=13{10 }
        ; case_data[4] delay=3{11 }
        ; case_data[5] delay=16{12 }
        ; case_data[6] delay=4{31 }
        ; Maximum Case Delay = 42
        ; line_number = 405
        ; case 0
delay__38:
        ; # Set up for multiply:
        ; line_number = 407
        ;  position_low := positions[servo]
        ; Delay at assignment is 0
        movf    delay__servo,w
        addlw   positions
        movwf   __fsr
        movf    __indf,w
        movwf   delay__position_low
        ; line_number = 408
        ;  servo_low := base_lows[servo]
        ; Delay at assignment is 5
        movf    delay__servo,w
        addlw   base_lows
        movwf   __fsr
        movf    __indf,w
        movwf   delay__servo_low
        ; line_number = 409
        ;  servo_high := base_highs[servo]
        ; Delay at assignment is 10
        movf    delay__servo,w
        addlw   base_highs
        movwf   __fsr
        movf    __indf,w
        movwf   delay__servo_high
        ; line_number = 410
        ;  scale := scales[servo]
        ; Delay at assignment is 15
        movf    delay__servo,w
        addlw   scales
        movwf   __fsr
        movf    __indf,w
        movwf   delay__scale
        ; line_number = 411
        ;  position_high := position_low >> 4
        ; Delay at assignment is 20
        swapf   delay__position_low,w
        movwf   delay__position_high
        movlw   15
        andwf   delay__position_high,f
        ; line_number = 412
        ;  position_low := position_low << 4
        ; Delay at assignment is 24
        ; Assignment of variable to self (no code needed)
        swapf   delay__position_low,f
        movlw   240
        andwf   delay__position_low,f
        ; Delay 15 cycles
        ; Delay loop takes 3 * 4 = 12 cycles
        movlw   3
delay__47:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__47
        goto    delay__48
delay__48:
        nop     
        goto    delay__46
        ; line_number = 413
        ; case 1, 2, 3, 4, 5, 6, 7, 8
delay__39:
        ; # Do one multiply cycle:
        ; line_number = 415
        ;  position_low := position_low >> 1
        ; Delay at assignment is 0
        ; Assignment of variable to self (no code needed)
        rrf     delay__position_low,f
        bcf     delay__position_low, 7
        ; line_number = 416
        ;  if position_high@0 start
        ; Delay at if is 2
delay__select__3___byte equ delay__position_high
delay__select__3___bit equ 0
        ; =>bit_code_emit@symbol(): sym=delay__select__3
        ; CASE: True.size=1 False.size=0
        btfsc   delay__select__3___byte, delay__select__3___bit
        ; line_number = 417
        ; position_low@7 := 1
        ; Delay at assignment is 0
delay__select__2___byte equ delay__position_low
delay__select__2___bit equ 7
        bsf     delay__select__2___byte, delay__select__2___bit
        ; <=bit_code_emit@symbol; sym=delay__select__3 (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=4
        ; line_number = 416
        ;  if position_high@0 done
        ; line_number = 418
        ; position_high := position_high >> 1
        ; Delay at assignment is 4
        ; Assignment of variable to self (no code needed)
        rrf     delay__position_high,f
        bcf     delay__position_high, 7
        ; line_number = 419
        ;  if scale@7 start
        ; Delay at if is 6
delay__select__4___byte equ delay__scale
delay__select__4___bit equ 7
        ; =>bit_code_emit@symbol(): sym=delay__select__4
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfsc   delay__select__4___byte, delay__select__4___bit
        goto    delay__5
        ; Delay 5 cycles
        goto    delay__7
delay__7:
        goto    delay__8
delay__8:
        nop     
        goto    delay__6
delay__5:
        ; line_number = 420
        ; servo_high := servo_high + position_high
        ; Delay at assignment is 0
        movf    delay__position_high,w
        addwf   delay__servo_high,f
        ; line_number = 421
        ;  servo_low := servo_low + position_low
        ; Delay at assignment is 2
        movf    delay__position_low,w
        addwf   delay__servo_low,f
        ; line_number = 422
        ;  if _c start
        ; Delay at if is 4
        ; =>bit_code_emit@symbol(): sym=_c
        ; CASE: True.size=1 False.size=0
        btfsc   _c___byte, _c___bit
        ; line_number = 423
        ; servo_high := servo_high + 1
        ; Delay at assignment is 0
        incf    delay__servo_high,f
        ; <=bit_code_emit@symbol; sym=_c (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=6
        ; line_number = 422
        ;  if _c done
delay__6:
        ; <=bit_code_emit@symbol; sym=delay__select__4 (data:00=>00 code:XX=>XX)
        ; if final true delay=6 false delay=0 code delay=15
        ; line_number = 419
        ;  if scale@7 done
        ; line_number = 424
        ; scale := scale << 1
        ; Delay at assignment is 15
        ; Assignment of variable to self (no code needed)
        rlf     delay__scale,f
        bcf     delay__scale, 0
        ; Delay 25 cycles
        ; Delay loop takes 6 * 4 = 24 cycles
        movlw   6
delay__49:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__49
        nop     
        goto    delay__46
        ; line_number = 425
        ; case 9
delay__40:
        ; # Do final wrap-up on multiply:
        ; line_number = 427
        ;  servo_low := servo_low + fines[servo]
        ; Delay at assignment is 0
        movf    delay__servo,w
        addlw   fines
        movwf   __fsr
        movf    __indf,w
        addwf   delay__servo_low,f
        ; line_number = 428
        ;  if _c start
        ; Delay at if is 5
        ; =>bit_code_emit@symbol(): sym=_c
        ; CASE: True.size=1 False.size=0
        btfsc   _c___byte, _c___bit
        ; line_number = 429
        ; servo_high := servo_high + 1
        ; Delay at assignment is 0
        incf    delay__servo_high,f

        ; <=bit_code_emit@symbol; sym=_c (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=7
        ; line_number = 428
        ;  if _c done
        ; # Multiply by 2:
        ; line_number = 432
        ;  servo_high := servo_high << 1
        ; Delay at assignment is 7
        ; Assignment of variable to self (no code needed)
        rlf     delay__servo_high,f
        bcf     delay__servo_high, 0
        ; line_number = 433
        ;  if servo_low@7 start
        ; Delay at if is 9
delay__select__10___byte equ delay__servo_low
delay__select__10___bit equ 7
        ; =>bit_code_emit@symbol(): sym=delay__select__10
        ; CASE: True.size=1 False.size=0
        btfsc   delay__select__10___byte, delay__select__10___bit
        ; line_number = 434
        ; servo_high@0 := 1
        ; Delay at assignment is 0
delay__select__9___byte equ delay__servo_high
delay__select__9___bit equ 0
        bsf     delay__select__9___byte, delay__select__9___bit
        ; <=bit_code_emit@symbol; sym=delay__select__10 (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=11
        ; line_number = 433
        ;  if servo_low@7 done
        ; line_number = 435
        ; servo_low := servo_low << 1
        ; Delay at assignment is 11
        ; Assignment of variable to self (no code needed)
        rlf     delay__servo_low,f
        bcf     delay__servo_low, 0

        ; line_number = 437
        ;  final_lows[servo] := servo_low
        ; Delay at assignment is 13
        ; index_fsr_first
        movf    delay__servo,w
        addlw   final_lows
        movwf   __fsr
        movf    delay__servo_low,w
        movwf   __indf
        ; line_number = 438
        ;  final_highs[servo] := servo_high
        ; Delay at assignment is 18
        ; index_fsr_first
        movf    delay__servo,w
        addlw   final_highs
        movwf   __fsr
        movf    delay__servo_high,w
        movwf   __indf

        ; #servo_high := 6
        ; #servo_low := 0
        ; line_number = 442
        ;  _tmr1l := 0
        ; Delay at assignment is 23
        movlw   0
        movwf   _tmr1l
        ; line_number = 443
        ;  _tmr1h := servo_high ^ 0xff
        ; Delay at assignment is 25
        movlw   255
        xorwf   delay__servo_high,w
        movwf   _tmr1h
        ; line_number = 444
        ;  _tmr1l := servo_low ^ 0xff
        ; Delay at assignment is 28
        movlw   255
        xorwf   delay__servo_low,w
        movwf   _tmr1l
        ; line_number = 445
        ;  if servo@1 start
        ; Delay at if is 31
delay__select__21___byte equ delay__servo
delay__select__21___bit equ 1
        ; =>bit_code_emit@symbol(): sym=delay__select__21
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   delay__select__21___byte, delay__select__21___bit
        goto    delay__22
        ; line_number = 446
        ; if servo@0 start
        ; Delay at if is 0
delay__select__18___byte equ delay__servo
delay__select__18___bit equ 0
        ; =>bit_code_emit@symbol(): sym=delay__select__18
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   delay__select__18___byte, delay__select__18___bit
        goto    delay__19
        ; line_number = 447
        ; if enables@3 start
        ; Delay at if is 0
delay__select__17___byte equ enables
delay__select__17___bit equ 3
        ; =>bit_code_emit@symbol(): sym=delay__select__17
        ; CASE: True.size=1 False.size=0
        btfsc   delay__select__17___byte, delay__select__17___bit
        ; line_number = 448
        ; servo3 := servo_on
        ; Delay at assignment is 0
        bcf     servo3___byte, servo3___bit
        ; <=bit_code_emit@symbol; sym=delay__select__17 (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=2
        ; line_number = 447
        ; if enables@3 done
        goto    delay__20
delay__19:
        ; line_number = 450
        ; if enables@2 start
        ; Delay at if is 0
delay__select__16___byte equ enables
delay__select__16___bit equ 2
        ; =>bit_code_emit@symbol(): sym=delay__select__16
        ; CASE: True.size=1 False.size=0
        btfsc   delay__select__16___byte, delay__select__16___bit
        ; line_number = 451
        ; servo2 := servo_on
        ; Delay at assignment is 0
        bcf     servo2___byte, servo2___bit
        ; <=bit_code_emit@symbol; sym=delay__select__16 (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=2
        ; line_number = 450
        ; if enables@2 done
        nop     
delay__20:
        ; <=bit_code_emit@symbol; sym=delay__select__18 (data:00=>00 code:XX=>XX)
        ; if final true delay=2 false delay=2 code delay=6
        ; line_number = 446
        ; if servo@0 done
        goto    delay__23
delay__22:
        ; line_number = 453
        ; if servo@0 start
        ; Delay at if is 0
delay__select__13___byte equ delay__servo
delay__select__13___bit equ 0
        ; =>bit_code_emit@symbol(): sym=delay__select__13
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   delay__select__13___byte, delay__select__13___bit
        goto    delay__14
        ; line_number = 454
        ; if enables@1 start
        ; Delay at if is 0
delay__select__12___byte equ enables
delay__select__12___bit equ 1
        ; =>bit_code_emit@symbol(): sym=delay__select__12
        ; CASE: True.size=1 False.size=0
        btfsc   delay__select__12___byte, delay__select__12___bit
        ; line_number = 455
        ; servo1 := servo_on
        ; Delay at assignment is 0
        bcf     servo1___byte, servo1___bit
        ; <=bit_code_emit@symbol; sym=delay__select__12 (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=2
        ; line_number = 454
        ; if enables@1 done
        goto    delay__15
delay__14:
        ; line_number = 457
        ; if enables@0 start
        ; Delay at if is 0
delay__select__11___byte equ enables
delay__select__11___bit equ 0
        ; =>bit_code_emit@symbol(): sym=delay__select__11
        ; CASE: True.size=1 False.size=0
        btfsc   delay__select__11___byte, delay__select__11___bit
        ; line_number = 458
        ; servo0 := servo_on
        ; Delay at assignment is 0
        bcf     servo0___byte, servo0___bit
        ; <=bit_code_emit@symbol; sym=delay__select__11 (data:00=>00 code:XX=>XX)
        ; if final true delay=1 false delay=0 code delay=2
        ; line_number = 457
        ; if enables@0 done
        nop     
delay__15:
        ; <=bit_code_emit@symbol; sym=delay__select__13 (data:00=>00 code:XX=>XX)
        ; if final true delay=2 false delay=2 code delay=6
        ; line_number = 453
        ; if servo@0 done
        nop     
delay__23:
        ; <=bit_code_emit@symbol; sym=delay__select__21 (data:00=>00 code:XX=>XX)
        ; if final true delay=6 false delay=6 code delay=41
        ; line_number = 445
        ;  if servo@1 done
        ; line_number = 459
        ; _tmr1on := 1
        ; Delay at assignment is 41
        bsf     _tmr1on___byte, _tmr1on___bit
        goto    delay__46
        ; line_number = 460
        ; case 10
delay__41:
        ; line_number = 461
        ; if servo@1 start
        ; Delay at if is 0
delay__select__30___byte equ delay__servo
delay__select__30___bit equ 1
        ; =>bit_code_emit@symbol(): sym=delay__select__30
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   delay__select__30___byte, delay__select__30___bit
        goto    delay__31
        ; line_number = 462
        ; if servo@0 start
        ; Delay at if is 0
delay__select__27___byte equ delay__servo
delay__select__27___bit equ 0
        ; =>bit_code_emit@symbol(): sym=delay__select__27
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfsc   delay__select__27___byte, delay__select__27___bit
        goto    delay__28
        ; Delay 0 cycles
        ; line_number = 465
        ; _adcon0 := sense2_channel << 2
        ; Delay at assignment is 0
        clrf    _adcon0
        rlf     _adcon0,f
        rlf     _adcon0,f
        movlw   252
        andwf   _adcon0,f
        goto    delay__29
delay__28:
        ; line_number = 463
        ; _adcon0 := sense3_channel << 2
        ; Delay at assignment is 0
        movlw   2
        movwf   _adcon0
        rlf     _adcon0,f
        rlf     _adcon0,f
        movlw   252
        andwf   _adcon0,f
delay__29:
        ; <=bit_code_emit@symbol; sym=delay__select__27 (data:00=>00 code:XX=>XX)
        ; if final true delay=6 false delay=5 code delay=8
        ; line_number = 462
        ; if servo@0 done
        ; Delay 0 cycles
        goto    delay__32
delay__31:
        ; line_number = 467
        ; if servo@0 start
        ; Delay at if is 0
delay__select__24___byte equ delay__servo
delay__select__24___bit equ 0
        ; =>bit_code_emit@symbol(): sym=delay__select__24
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   delay__select__24___byte, delay__select__24___bit
        goto    delay__25
        ; line_number = 468
        ; _adcon0 := sense1_channel << 2
        ; Delay at assignment is 0
        clrf    _adcon0
        rlf     _adcon0,f
        rlf     _adcon0,f
        movlw   252
        andwf   _adcon0,f
        ; Delay 0 cycles
        goto    delay__26
delay__25:
        ; line_number = 470
        ; _adcon0 := sense0_channel << 2
        ; Delay at assignment is 0
        movlw   1
        movwf   _adcon0
        rlf     _adcon0,f
        rlf     _adcon0,f
        movlw   252
        andwf   _adcon0,f
delay__26:
        ; <=bit_code_emit@symbol; sym=delay__select__24 (data:00=>00 code:XX=>XX)
        ; if final true delay=5 false delay=6 code delay=9
        ; line_number = 467
        ; if servo@0 done
delay__32:
        ; <=bit_code_emit@symbol; sym=delay__select__30 (data:00=>00 code:XX=>XX)
        ; if final true delay=8 false delay=9 code delay=12
        ; line_number = 461
        ; if servo@1 done
        ; line_number = 471
        ; _adon := 1
        ; Delay at assignment is 12
        bsf     _adon___byte, _adon___bit
        ; Delay 29 cycles
        ; Delay loop takes 7 * 4 = 28 cycles
        movlw   7
delay__50:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__50
        nop     
        goto    delay__46
        ; line_number = 472
        ; case 11
delay__42:
        ; # Left justified result:
        ; line_number = 474
        ;  _adfm := 0
        ; Delay at assignment is 0
        bcf     _adfm___byte, _adfm___bit
        ; # Use Vdd for voltage reference:
        ; line_number = 476
        ;  _vcfg := 0
        ; Delay at assignment is 1
        bcf     _vcfg___byte, _vcfg___bit
        ; # Fire off the A/D conversion:
        ; line_number = 478
        ;  _go := 1
        ; Delay at assignment is 2
        bsf     _go___byte, _go___bit
        ; Delay 39 cycles
        ; Delay loop takes 9 * 4 = 36 cycles
        movlw   9
delay__51:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__51
        goto    delay__52
delay__52:
        nop     
        goto    delay__46
        ; line_number = 479
        ; case 12
delay__43:
        ; line_number = 480
        ; analogs[servo] := _adresh
        ; Delay at assignment is 0
        ; index_fsr_first
        movf    delay__servo,w
        addlw   analogs
        movwf   __fsr
        movf    _adresh,w
        movwf   __indf
        ; line_number = 481
        ;  if !cal_mode start
        ; Delay at if is 5
        ; =>bit_code_emit@symbol(): sym=cal_mode
        ; CASE: true.size=0 && false.size>1
        btfss   cal_mode___byte, cal_mode___bit
        goto    delay__33
        ; Delay 7 cycles
        goto    delay__35
delay__35:
        goto    delay__36
delay__36:
        goto    delay__37
delay__37:
        nop     
        goto    delay__34
delay__33:
        ; line_number = 482
        ; enables := 3
        ; Delay at assignment is 0
        movlw   3
        movwf   enables
        ; line_number = 483
        ;  temporary := analogs[2]
        ; Delay at assignment is 2
        movf    analogs+2,w
        movwf   delay__temporary
        ; line_number = 484
        ;  positions[0] := temporary
        ; Delay at assignment is 4
        movf    delay__temporary,w
        movwf   positions
        ; line_number = 485
        ;  positions[1] := analogs[3]
        ; Delay at assignment is 6
        movf    analogs+3,w
        movwf   positions+1
delay__34:
        ; <=bit_code_emit@symbol; sym=cal_mode (data:00=>00 code:XX=>XX)
        ; if final true delay=8 false delay=0 code delay=16
        ; line_number = 481
        ;  if !cal_mode done
        ; Delay 26 cycles
        ; Delay loop takes 6 * 4 = 24 cycles
        movlw   6
delay__53:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__53
        goto    delay__54
delay__54:
        goto    delay__46
        ; line_number = 486
        ; case 31
delay__44:
        ; line_number = 487
        ; servo0 := servo_off
        ; Delay at assignment is 0
        bsf     servo0___byte, servo0___bit
        ; line_number = 488
        ;  servo1 := servo_off
        ; Delay at assignment is 1
        bsf     servo1___byte, servo1___bit
        ; line_number = 489
        ;  servo2 := servo_off
        ; Delay at assignment is 2
        bsf     servo2___byte, servo2___bit
        ; line_number = 490
        ;  servo3 := servo_off
        ; Delay at assignment is 3
        bsf     servo3___byte, servo3___bit


        ; Delay 38 cycles
        ; Delay loop takes 9 * 4 = 36 cycles
        movlw   9
delay__55:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__55
        goto    delay__56
delay__56:
        goto    delay__46
delay__46:
        ; line_number = 403
        ;  switch counter & 0x1f done
        ; delay after procedure statements=62
        ; Delay 212 cycles
        ; Delay loop takes 53 * 4 = 212 cycles
        movlw   53
delay__57:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__57
        ; Implied return
        retlw   0
        ; Final delay = 276




        ; line_number = 493
        ; procedure mask_get
mask_get:
        ; Last argument is sitting in W; save into argument variable
        movwf   mask_get__bit_number
        ; delay=4294967295
        ; line_number = 494
        ; argument bit_number byte
mask_get__bit_number equ globals___0+57
        ; line_number = 495
        ;  returns byte

        ; # This procedure will return the mask for {bit_number}.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 499
        ;  switch bit_number start
        movlw   mask_get__5>>8
        movwf   __pclath
        movf    mask_get__bit_number,w
        addlw   mask_get__5
        movwf   __pcl
        ; page_group 4
        ; Add 1 NOP's until start of new page 
        nop     
mask_get__5:
        ; line_number = 501
        ; return 1 start
        ; line_number = 501
        retlw   1
        ; line_number = 501
        ; return 1 done
        ; line_number = 503
        ; return 2 start
        ; line_number = 503
        retlw   2
        ; line_number = 503
        ; return 2 done
        ; line_number = 505
        ; return 4 start
        ; line_number = 505
        retlw   4
        ; line_number = 505
        ; return 4 done
        ; line_number = 507
        ; return 8 start
        ; line_number = 507
        retlw   8
        ; line_number = 507
        ; return 8 done


mask_get__6:
        ; line_number = 499
        ;  switch bit_number done
        ; delay after procedure statements=non-uniform
        ; Exiting procedure with no return(s); fail with infinite loop
mask_get__7:
        goto    mask_get__7




        ; line_number = 510
        ; constant zero8 = "\0,0,0,0,0,0,0,0\"
        ; zero8 = '\0,0,0,0,0,0,0,0\'
        ; line_number = 511
        ; constant module_name = "\7\Servo4J"
        ; module_name = '\7\Servo4J'
        ; line_number = 512
        ; constant vendor_name = "\7\Gramson"
        ; vendor_name = '\7\Gramson'

        ; line_number = 514
        ; string id = "\1,0,15,7,1,0,0,0\" ~ zero8 ~ zero8 ~ module_name ~ vendor_name start
        ; id = '\1,0,15,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7\Servo4J\7\Gramson'
id:
        ; Temporarily save index into FSR
        movwf   __fsr
        ; Initialize PCLATH to point to this code page
        movlw   id___base>>8
        movwf   __pclath
        ; Restore index from FSR
        movf    __fsr,w
        addlw   id___base
        ; Index to the correct return value
        movwf   __pcl
        ; page_group 40
id___base:
        retlw   1
        retlw   0
        retlw   15
        retlw   7
        retlw   1
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   0
        retlw   7
        retlw   83
        retlw   101
        retlw   114
        retlw   118
        retlw   111
        retlw   52
        retlw   74
        retlw   7
        retlw   71
        retlw   114
        retlw   97
        retlw   109
        retlw   115
        retlw   111
        retlw   110
        ; line_number = 514
        ; string id = "\1,0,15,7,1,0,0,0\" ~ zero8 ~ zero8 ~ module_name ~ vendor_name start

        ; Appending 4 delayed procedures to code bank 0
        ; buffer = '_robobricks_pic16f688'
        ; line_number = 17
        ; procedure byte_get
byte_get:
        ; arguments_none
        ; line_number = 19
        ;  returns byte

        ; # This procedure will return the next byte from the UART.
        ; # It continuously calls delay() while it is waiting.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 24
        ;  while !_rcif start
byte_get__1:
        ; =>bit_code_emit@symbol(): sym=_rcif
        ; CASE: true.size=0 && false.size>1
        btfsc   _rcif___byte, _rcif___bit
        goto    byte_get__2
        ; line_number = 25
        ; in_byte_get := 1
        bsf     in_byte_get___byte, in_byte_get___bit
        ; line_number = 26
        ;  call delay()
        call    delay
        ; line_number = 27
        ;  in_byte_get := 0
        bcf     in_byte_get___byte, in_byte_get___bit
        goto    byte_get__1
byte_get__2:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:XX=>XX)
        ; line_number = 24
        ;  while !_rcif done
        ; line_number = 28
        ; interrupt_pending := 0
        bcf     interrupt_pending___byte, interrupt_pending___bit
        ; line_number = 29
        ;  command_previous := command_last
        movf    command_last,w
        movwf   command_previous
        ; line_number = 30
        ;  _rcif := 0
        bcf     _rcif___byte, _rcif___bit
        ; line_number = 31
        ;  return _rcreg start
        ; line_number = 31
        movf    _rcreg,w
        return  
        ; line_number = 31
        ;  return _rcreg done


        ; delay after procedure statements=non-uniform




        ; line_number = 34
        ; procedure byte_put
byte_put:
        ; Last argument is sitting in W; save into argument variable
        movwf   byte_put__value
        ; delay=4294967295
        ; line_number = 35
        ; argument value byte
byte_put__value equ globals___0
        ; line_number = 36
        ;  returns_nothing

        ; # This procedure will output {value} to the UART.  If the UART is
        ; # already busy transmitting a character, the {delay} procedure is
        ; # repeatably called until {value} can be sent.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 42
        ;  while !_trmt start
byte_put__1:
        ; =>bit_code_emit@symbol(): sym=_trmt
        ; CASE: true.size=0 && false.size>1
        btfsc   _trmt___byte, _trmt___bit
        goto    byte_put__2
        ; line_number = 43
        ; call delay()
        call    delay
        goto    byte_put__1
byte_put__2:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=_trmt (data:00=>00 code:XX=>XX)
        ; line_number = 42
        ;  while !_trmt done
        ; line_number = 44
        ; debug := 0
        bcf     debug___byte, debug___bit
        ; line_number = 45
        ;  sent_previous := sent_last
        movf    sent_last,w
        movwf   sent_previous
        ; line_number = 46
        ;  sent_last := value
        movf    byte_put__value,w
        movwf   sent_last
        ; line_number = 47
        ;  _txreg := value
        movf    byte_put__value,w
        movwf   _txreg


        ; delay after procedure statements=non-uniform
        ; Implied return
        retlw   0




        ; line_number = 50
        ; procedure baud_rate_low
baud_rate_low:
        ; Last argument is sitting in W; save into argument variable
        movwf   baud_rate_low__baud_rate_index
        ; delay=4294967295
        ; line_number = 51
        ; argument baud_rate_index byte
baud_rate_low__baud_rate_index equ globals___0+1
        ; line_number = 52
        ;  returns byte

        ; #: This procedure will return the baud rate low byte for {baud_rate_index}.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 56
        ;  switch baud_rate_index start
        movlw   baud_rate_low__9>>8
        movwf   __pclath
        movf    baud_rate_low__baud_rate_index,w
        addlw   baud_rate_low__9
        movwf   __pcl
        ; page_group 8
baud_rate_low__9:
        ; line_number = 58
        ; return _eusart_2400_low start
        ; line_number = 58
        retlw   64
        ; line_number = 58
        ; return _eusart_2400_low done
        ; line_number = 60
        ; return _eusart_4800_low start
        ; line_number = 60
        retlw   159
        ; line_number = 60
        ; return _eusart_4800_low done
        ; line_number = 62
        ; return _eusart_9600_low start
        ; line_number = 62
        retlw   207
        ; line_number = 62
        ; return _eusart_9600_low done
        ; line_number = 64
        ; return _eusart_19200_low start
        ; line_number = 64
        retlw   103
        ; line_number = 64
        ; return _eusart_19200_low done
        ; line_number = 66
        ; return _eusart_38400_low start
        ; line_number = 66
        retlw   51
        ; line_number = 66
        ; return _eusart_38400_low done
        ; line_number = 68
        ; return _eusart_57600_low start
        ; line_number = 68
        retlw   33
        ; line_number = 68
        ; return _eusart_57600_low done
        ; line_number = 70
        ; return _eusart_115200_low start
        ; line_number = 70
        retlw   16
        ; line_number = 70
        ; return _eusart_115200_low done
        ; line_number = 72
        ; return _eusart_203400_low start
        ; line_number = 72
        retlw   8
        ; line_number = 72
        ; return _eusart_203400_low done


baud_rate_low__10:
        ; line_number = 56
        ;  switch baud_rate_index done
        ; delay after procedure statements=non-uniform
        ; Exiting procedure with no return(s); fail with infinite loop
baud_rate_low__11:
        goto    baud_rate_low__11




        ; line_number = 75
        ; procedure baud_rate_high
baud_rate_high:
        ; Last argument is sitting in W; save into argument variable
        movwf   baud_rate_high__baud_rate_index
        ; delay=4294967295
        ; line_number = 76
        ; argument baud_rate_index byte
baud_rate_high__baud_rate_index equ globals___0+2
        ; line_number = 77
        ;  returns byte

        ; # This procedure will return the baud rate high byte for
        ; # {baud_rate_index}.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:XX=>XX)
        ; line_number = 82
        ;  switch baud_rate_index start
        movlw   baud_rate_high__9>>8
        movwf   __pclath
        movf    baud_rate_high__baud_rate_index,w
        addlw   baud_rate_high__9
        movwf   __pcl
        ; page_group 8
baud_rate_high__9:
        ; line_number = 84
        ; return _eusart_2400_high start
        ; line_number = 84
        retlw   3
        ; line_number = 84
        ; return _eusart_2400_high done
        ; line_number = 86
        ; return _eusart_4800_high start
        ; line_number = 86
        retlw   1
        ; line_number = 86
        ; return _eusart_4800_high done
        ; line_number = 88
        ; return _eusart_9600_high start
        ; line_number = 88
        retlw   0
        ; line_number = 88
        ; return _eusart_9600_high done
        ; line_number = 90
        ; return _eusart_19200_high start
        ; line_number = 90
        retlw   0
        ; line_number = 90
        ; return _eusart_19200_high done
        ; line_number = 92
        ; return _eusart_38400_high start
        ; line_number = 92
        retlw   0
        ; line_number = 92
        ; return _eusart_38400_high done
        ; line_number = 94
        ; return _eusart_57600_high start
        ; line_number = 94
        retlw   0
        ; line_number = 94
        ; return _eusart_57600_high done
        ; line_number = 96
        ; return _eusart_115200_high start
        ; line_number = 96
        retlw   0
        ; line_number = 96
        ; return _eusart_115200_high done
        ; line_number = 98
        ; return _eusart_203400_high start
        ; line_number = 98
        retlw   0
        ; line_number = 98
        ; return _eusart_203400_high done

baud_rate_high__10:
        ; line_number = 82
        ;  switch baud_rate_index done
        ; delay after procedure statements=non-uniform
        ; Exiting procedure with no return(s); fail with infinite loop
baud_rate_high__11:
        goto    baud_rate_high__11




        ; Configuration bits
        ; address = 0x2007, fill = 0x3000
        ; fcmen = off (0x0)
        ; ieso = off (0x0)
        ; boden = off (0x0)
        ; cpd = off (0x80)
        ; cp = off (0x40)
        ; mclre = off (0x20)
        ; pwrte = off (0x10)
        ; wdte = off (0x0)
        ; fosc = int_no_clk (0x4)
        ; 12532 = 0x30f4
        __config 12532
        ; Define start addresses for data regions
        ; Region="shared___globals" Address=112" Size=16 Bytes=2 Bits=0 Available=14
        ; Region="globals___0" Address=32" Size=80 Bytes=62 Bits=3 Available=17
        ; Region="globals___1" Address=160" Size=80 Bytes=0 Bits=0 Available=80
        ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
        ; Region="shared___globals" Address=112" Size=16 Bytes=2 Bits=0 Available=14
        end
