        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) 2005-2006 by Wayne C. Gramlich
        ; # All rights reserved.

        ; buffer = 'host'
        ; line_number = 6
        ; library _pic16f688 entered

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

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

        ; line_number = 36
        ;  code_bank 0x0 : 0xfff
        ; line_number = 37
        ;  data_bank 0x0 : 0x7f
        ; line_number = 38
        ;  data_bank 0x80 : 0xff
        ; line_number = 39
        ;  data_bank 0x100 : 0x17f
        ; line_number = 40
        ;  data_bank 0x180 : 0x1ff

        ; line_number = 42
        ;  global_region 0x20 : 0x6f
        ; line_number = 43
        ;  icd2_global_region 0x20 : 0x6f

        ; line_number = 45
        ;  global_region 0xa0 : 0xef
        ; line_number = 46
        ;  icd2_global_region 0xa0 : 0xef

        ; line_number = 48
        ;  global_region 0x120 : 0x16f
        ; line_number = 49
        ;  icd2_global_region 0x120 : 0x164

        ; line_number = 51
        ;  shared_region 0x70 : 0x7f
        ; line_number = 52
        ;  icd2_shared_region 0x71 : 0x7f

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

        ; line_number = 205
        ; library _standard entered

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

        ; # Standard definition for uCL:

        ; buffer = '_standard'
        ; line_number = 8
        ; constant _true = (1 = 1)
_true equ 1
        ; line_number = 9
        ; constant _false = (0 != 0)
_false equ 0


        ; buffer = '_pic16f688'
        ; line_number = 205
        ; library _standard exited


        ; # Register/bit bindings:

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

        ; line_number = 216
        ; register _indf = 
_indf equ 0

        ; line_number = 218
        ; register _tmr0 = 
_tmr0 equ 1

        ; line_number = 220
        ; register _pcl = 
_pcl equ 2

        ; line_number = 222
        ; register _status = 
_status equ 3
        ; line_number = 223
        ; bind _irp = _status@7
_irp___byte equ _status
_irp___bit equ 7
        ; line_number = 224
        ; bind _rp1 = _status@5
_rp1___byte equ _status
_rp1___bit equ 5
        ; line_number = 225
        ; bind _rp0 = _status@5
_rp0___byte equ _status
_rp0___bit equ 5
        ; line_number = 226
        ; bind _to = _status@4
_to___byte equ _status
_to___bit equ 4
        ; line_number = 227
        ; bind _pd = _status@3
_pd___byte equ _status
_pd___bit equ 3
        ; line_number = 228
        ; bind _z = _status@2
_z___byte equ _status
_z___bit equ 2
        ; line_number = 229
        ; bind _dc = _status@1
_dc___byte equ _status
_dc___bit equ 1
        ; line_number = 230
        ; bind _c = _status@0
_c___byte equ _status
_c___bit equ 0

        ; line_number = 232
        ; register _fsr = 
_fsr equ 4

        ; line_number = 234
        ; register _porta = 
_porta equ 5
        ; line_number = 235
        ; register _ra = 
_ra equ 5
        ; line_number = 236
        ; bind _ra5 = _porta@5
_ra5___byte equ _porta
_ra5___bit equ 5
        ; line_number = 237
        ; bind _ra4 = _porta@4
_ra4___byte equ _porta
_ra4___bit equ 4
        ; line_number = 238
        ; bind _ra3 = _porta@3
_ra3___byte equ _porta
_ra3___bit equ 3
        ; line_number = 239
        ; bind _ra2 = _porta@2
_ra2___byte equ _porta
_ra2___bit equ 2
        ; line_number = 240
        ; bind _ra1 = _porta@1
_ra1___byte equ _porta
_ra1___bit equ 1
        ; line_number = 241
        ; bind _ra0 = _porta@0
_ra0___byte equ _porta
_ra0___bit equ 0

        ; line_number = 243
        ; register _portc = 
_portc equ 7
        ; line_number = 244
        ; register _rc = 
_rc equ 7
        ; line_number = 245
        ; bind _rc5 = _portc@5
_rc5___byte equ _portc
_rc5___bit equ 5
        ; line_number = 246
        ; bind _rc4 = _portc@4
_rc4___byte equ _portc
_rc4___bit equ 4
        ; line_number = 247
        ; bind _rc3 = _portc@3
_rc3___byte equ _portc
_rc3___bit equ 3
        ; line_number = 248
        ; bind _rc2 = _portc@2
_rc2___byte equ _portc
_rc2___bit equ 2
        ; line_number = 249
        ; bind _rc1 = _portc@1
_rc1___byte equ _portc
_rc1___bit equ 1
        ; line_number = 250
        ; bind _rc0 = _portc@0
_rc0___byte equ _portc
_rc0___bit equ 0

        ; line_number = 252
        ; register _pclath = 
_pclath equ 10

        ; line_number = 254
        ; register _intcon = 
_intcon equ 11
        ; line_number = 255
        ; bind _gie = _intcon@7
_gie___byte equ _intcon
_gie___bit equ 7
        ; line_number = 256
        ; bind _peie = _intcon@6
_peie___byte equ _intcon
_peie___bit equ 6
        ; line_number = 257
        ; bind _t0ie = _intcon@5
_t0ie___byte equ _intcon
_t0ie___bit equ 5
        ; line_number = 258
        ; bind _inte = _intcon@4
_inte___byte equ _intcon
_inte___bit equ 4
        ; line_number = 259
        ; bind _raie = _intcon@3
_raie___byte equ _intcon
_raie___bit equ 3
        ; line_number = 260
        ; bind _t0if = _intcon@2
_t0if___byte equ _intcon
_t0if___bit equ 2
        ; line_number = 261
        ; bind _intf = _intcon@1
_intf___byte equ _intcon
_intf___bit equ 1
        ; line_number = 262
        ; bind _raif = _intcon@0
_raif___byte equ _intcon
_raif___bit equ 0

        ; line_number = 264
        ; register _pir1 = 
_pir1 equ 12
        ; line_number = 265
        ; bind _eeif = _pir1@7
_eeif___byte equ _pir1
_eeif___bit equ 7
        ; line_number = 266
        ; bind _adif = _pir1@6
_adif___byte equ _pir1
_adif___bit equ 6
        ; line_number = 267
        ; bind _rcif = _pir1@5
_rcif___byte equ _pir1
_rcif___bit equ 5
        ; line_number = 268
        ; bind _c2if = _pir1@4
_c2if___byte equ _pir1
_c2if___bit equ 4
        ; line_number = 269
        ; bind _c1if = _pir1@3
_c1if___byte equ _pir1
_c1if___bit equ 3
        ; line_number = 270
        ; bind _osfif = _pir1@2
_osfif___byte equ _pir1
_osfif___bit equ 2
        ; line_number = 271
        ; bind _txif = _pir1@1
_txif___byte equ _pir1
_txif___bit equ 1
        ; line_number = 272
        ; bind _tmr1if = _pir1@0
_tmr1if___byte equ _pir1
_tmr1if___bit equ 0

        ; line_number = 274
        ; register _tmr1l = 
_tmr1l equ 14

        ; line_number = 276
        ; register _tmr1h = 
_tmr1h equ 15

        ; line_number = 278
        ; register _t1con = 
_t1con equ 16
        ; line_number = 279
        ; bind t1ginv = _t1con@7
t1ginv___byte equ _t1con
t1ginv___bit equ 7
        ; line_number = 280
        ; bind _tmr1ge = _t1con@6
_tmr1ge___byte equ _t1con
_tmr1ge___bit equ 6
        ; line_number = 281
        ; bind _t1ckps1 = _t1con@5
_t1ckps1___byte equ _t1con
_t1ckps1___bit equ 5
        ; line_number = 282
        ; bind _t1ckps0 = _t1con@4
_t1ckps0___byte equ _t1con
_t1ckps0___bit equ 4
        ; line_number = 283
        ; bind _t1oscen = _t1con@3
_t1oscen___byte equ _t1con
_t1oscen___bit equ 3
        ; line_number = 284
        ; bind _t1sync = _t1con@2
_t1sync___byte equ _t1con
_t1sync___bit equ 2
        ; line_number = 285
        ; bind _tmr1cs = _t1con@1
_tmr1cs___byte equ _t1con
_tmr1cs___bit equ 1
        ; line_number = 286
        ; bind _tmr1on = _t1con@0
_tmr1on___byte equ _t1con
_tmr1on___bit equ 0

        ; line_number = 288
        ; register _baudctl = 
_baudctl equ 17
        ; line_number = 289
        ; bind _abdovf = _baudctl@7
_abdovf___byte equ _baudctl
_abdovf___bit equ 7
        ; line_number = 290
        ; bind _rcidl = _baudctl@6
_rcidl___byte equ _baudctl
_rcidl___bit equ 6
        ; line_number = 291
        ; bind _sckp = _baudctl@4
_sckp___byte equ _baudctl
_sckp___bit equ 4
        ; line_number = 292
        ; bind _brg16 = _baudctl@3
_brg16___byte equ _baudctl
_brg16___bit equ 3
        ; line_number = 293
        ; bind _wue = _baudctl@1
_wue___byte equ _baudctl
_wue___bit equ 1
        ; line_number = 294
        ; bind _abden = _baudctl@0
_abden___byte equ _baudctl
_abden___bit equ 0

        ; line_number = 296
        ; register _spbrgh = 
_spbrgh equ 18

        ; line_number = 298
        ; register _spbrg = 
_spbrg equ 19

        ; line_number = 300
        ; register _rcreg = 
_rcreg equ 20

        ; line_number = 302
        ; register _txreg = 
_txreg equ 21

        ; line_number = 304
        ; register _txsta = 
_txsta equ 22
        ; line_number = 305
        ; bind _csrc = _txsta@7
_csrc___byte equ _txsta
_csrc___bit equ 7
        ; line_number = 306
        ; bind _tx9 = _txsta@6
_tx9___byte equ _txsta
_tx9___bit equ 6
        ; line_number = 307
        ; bind _txen = _txsta@5
_txen___byte equ _txsta
_txen___bit equ 5
        ; line_number = 308
        ; bind _sync = _txsta@4
_sync___byte equ _txsta
_sync___bit equ 4
        ; line_number = 309
        ; bind _sendb = _txsta@3
_sendb___byte equ _txsta
_sendb___bit equ 3
        ; line_number = 310
        ; bind _brgh = _txsta@2
_brgh___byte equ _txsta
_brgh___bit equ 2
        ; line_number = 311
        ; bind _trmt = _txsta@1
_trmt___byte equ _txsta
_trmt___bit equ 1
        ; line_number = 312
        ; bind _tx9d = _txsta@0
_tx9d___byte equ _txsta
_tx9d___bit equ 0

        ; line_number = 314
        ; register _rcsta = 
_rcsta equ 23
        ; line_number = 315
        ; bind _spen = _rcsta@7
_spen___byte equ _rcsta
_spen___bit equ 7
        ; line_number = 316
        ; bind _rx9 = _rcsta@6
_rx9___byte equ _rcsta
_rx9___bit equ 6
        ; line_number = 317
        ; bind _sren = _rcsta@5
_sren___byte equ _rcsta
_sren___bit equ 5
        ; line_number = 318
        ; bind _cren = _rcsta@4
_cren___byte equ _rcsta
_cren___bit equ 4
        ; line_number = 319
        ; bind _adden = _rcsta@3
_adden___byte equ _rcsta
_adden___bit equ 3
        ; line_number = 320
        ; bind _ferr = _rcsta@2
_ferr___byte equ _rcsta
_ferr___bit equ 2
        ; line_number = 321
        ; bind _oerr = _rcsta@1
_oerr___byte equ _rcsta
_oerr___bit equ 1
        ; line_number = 322
        ; bind _rx9d = _rcsta@0
_rx9d___byte equ _rcsta
_rx9d___bit equ 0

        ; line_number = 324
        ; register _wdtcon = 
_wdtcon equ 24
        ; line_number = 325
        ; bind _wdtps3 = _wdtcon@4
_wdtps3___byte equ _wdtcon
_wdtps3___bit equ 4
        ; line_number = 326
        ; bind _wdtps2 = _wdtcon@3
_wdtps2___byte equ _wdtcon
_wdtps2___bit equ 3
        ; line_number = 327
        ; bind _wdtps1 = _wdtcon@2
_wdtps1___byte equ _wdtcon
_wdtps1___bit equ 2
        ; line_number = 328
        ; bind _wdtps0 = _wdtcon@1
_wdtps0___byte equ _wdtcon
_wdtps0___bit equ 1
        ; line_number = 329
        ; bind _swdten = _wdtcon@0
_swdten___byte equ _wdtcon
_swdten___bit equ 0

        ; line_number = 331
        ; register _cmcon0 = 
_cmcon0 equ 25
        ; line_number = 332
        ; bind _c1out = _cmcon0@7
_c1out___byte equ _cmcon0
_c1out___bit equ 7
        ; line_number = 333
        ; bind _c2out = _cmcon0@6
_c2out___byte equ _cmcon0
_c2out___bit equ 6
        ; line_number = 334
        ; bind _c1inv = _cmcon0@5
_c1inv___byte equ _cmcon0
_c1inv___bit equ 5
        ; line_number = 335
        ; bind _c2inv = _cmcon0@4
_c2inv___byte equ _cmcon0
_c2inv___bit equ 4
        ; line_number = 336
        ; bind _cis = _cmcon0@3
_cis___byte equ _cmcon0
_cis___bit equ 3
        ; line_number = 337
        ; bind _cm2 = _cmcon0@2
_cm2___byte equ _cmcon0
_cm2___bit equ 2
        ; line_number = 338
        ; bind _cm1 = _cmcon0@1
_cm1___byte equ _cmcon0
_cm1___bit equ 1
        ; line_number = 339
        ; bind _cm0 = _cmcon0@0
_cm0___byte equ _cmcon0
_cm0___bit equ 0

        ; line_number = 341
        ; register _cmcon1 = 
_cmcon1 equ 26
        ; line_number = 342
        ; bind _t1gss = _cmcon1@0
_t1gss___byte equ _cmcon1
_t1gss___bit equ 0
        ; line_number = 343
        ; bind _c2sync = _cmcon1@1
_c2sync___byte equ _cmcon1
_c2sync___bit equ 1

        ; line_number = 345
        ; register _adresh = 
_adresh equ 30

        ; line_number = 347
        ; register _adcon0 = 
_adcon0 equ 31
        ; line_number = 348
        ; bind _adfm = _adcon0@7
_adfm___byte equ _adcon0
_adfm___bit equ 7
        ; line_number = 349
        ; bind _vcfg = _adcon0@6
_vcfg___byte equ _adcon0
_vcfg___bit equ 6
        ; line_number = 350
        ; bind _chs2 = _adcon0@4
_chs2___byte equ _adcon0
_chs2___bit equ 4
        ; line_number = 351
        ; bind _chs1 = _adcon0@3
_chs1___byte equ _adcon0
_chs1___bit equ 3
        ; line_number = 352
        ; bind _chs0 = _adcon0@2
_chs0___byte equ _adcon0
_chs0___bit equ 2
        ; line_number = 353
        ; bind _go = _adcon0@1
_go___byte equ _adcon0
_go___bit equ 1
        ; line_number = 354
        ; bind _adon = _adcon0@0
_adon___byte equ _adcon0
_adon___bit equ 0

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

        ; line_number = 358
        ; register _option_reg = 
_option_reg equ 129
        ; line_number = 359
        ; bind _rapu = _option_reg@7
_rapu___byte equ _option_reg
_rapu___bit equ 7
        ; line_number = 360
        ; bind _intedg = _option_reg@6
_intedg___byte equ _option_reg
_intedg___bit equ 6
        ; line_number = 361
        ; bind _t0cs = _option_reg@5
_t0cs___byte equ _option_reg
_t0cs___bit equ 5
        ; line_number = 362
        ; bind _t0se = _option_reg@4
_t0se___byte equ _option_reg
_t0se___bit equ 4
        ; line_number = 363
        ; bind _psa = _option_reg@3
_psa___byte equ _option_reg
_psa___bit equ 3
        ; line_number = 364
        ; bind _ps2 = _option_reg@2
_ps2___byte equ _option_reg
_ps2___bit equ 2
        ; line_number = 365
        ; bind _ps1 = _option_reg@1
_ps1___byte equ _option_reg
_ps1___bit equ 1
        ; line_number = 366
        ; bind _ps0 = _option_reg@0
_ps0___byte equ _option_reg
_ps0___bit equ 0

        ; line_number = 368
        ; register _trisa = 
_trisa equ 133
        ; line_number = 369
        ; bind _trisa5 = _trisa@5
_trisa5___byte equ _trisa
_trisa5___bit equ 5
        ; line_number = 370
        ; bind _trisa4 = _trisa@4
_trisa4___byte equ _trisa
_trisa4___bit equ 4
        ; line_number = 371
        ; bind _trisa3 = _trisa@3
_trisa3___byte equ _trisa
_trisa3___bit equ 3
        ; line_number = 372
        ; bind _trisa2 = _trisa@2
_trisa2___byte equ _trisa
_trisa2___bit equ 2
        ; line_number = 373
        ; bind _trisa1 = _trisa@1
_trisa1___byte equ _trisa
_trisa1___bit equ 1
        ; line_number = 374
        ; bind _trisa0 = _trisa@0
_trisa0___byte equ _trisa
_trisa0___bit equ 0

        ; line_number = 376
        ; register _trisc = 
_trisc equ 135
        ; line_number = 377
        ; bind _trisc5 = _trisc@5
_trisc5___byte equ _trisc
_trisc5___bit equ 5
        ; line_number = 378
        ; bind _trisc4 = _trisc@4
_trisc4___byte equ _trisc
_trisc4___bit equ 4
        ; line_number = 379
        ; bind _trisc3 = _trisc@3
_trisc3___byte equ _trisc
_trisc3___bit equ 3
        ; line_number = 380
        ; bind _trisc2 = _trisc@2
_trisc2___byte equ _trisc
_trisc2___bit equ 2
        ; line_number = 381
        ; bind _trisc1 = _trisc@1
_trisc1___byte equ _trisc
_trisc1___bit equ 1
        ; line_number = 382
        ; bind _trisc0 = _trisc@0
_trisc0___byte equ _trisc
_trisc0___bit equ 0

        ; line_number = 384
        ; register _pie1 = 
_pie1 equ 140
        ; line_number = 385
        ; bind _eeie = _pie1@7
_eeie___byte equ _pie1
_eeie___bit equ 7
        ; line_number = 386
        ; bind _adie = _pie1@6
_adie___byte equ _pie1
_adie___bit equ 6
        ; line_number = 387
        ; bind _rcie = _pie1@5
_rcie___byte equ _pie1
_rcie___bit equ 5
        ; line_number = 388
        ; bind _c2ie = _pie1@4
_c2ie___byte equ _pie1
_c2ie___bit equ 4
        ; line_number = 389
        ; bind _c1ie = _pie1@3
_c1ie___byte equ _pie1
_c1ie___bit equ 3
        ; line_number = 390
        ; bind _osfie = _pie1@2
_osfie___byte equ _pie1
_osfie___bit equ 2
        ; line_number = 391
        ; bind _txie = _pie1@1
_txie___byte equ _pie1
_txie___bit equ 1
        ; line_number = 392
        ; bind _tmr1ie = _pie1@0
_tmr1ie___byte equ _pie1
_tmr1ie___bit equ 0

        ; line_number = 394
        ; register _pcon = 
_pcon equ 142
        ; line_number = 395
        ; bind _ulpwue = _pcon@5
_ulpwue___byte equ _pcon
_ulpwue___bit equ 5
        ; line_number = 396
        ; bind _sboden = _pcon@4
_sboden___byte equ _pcon
_sboden___bit equ 4
        ; line_number = 397
        ; bind _por = _pcon@1
_por___byte equ _pcon
_por___bit equ 1
        ; line_number = 398
        ; bind _bod = _pcon@0
_bod___byte equ _pcon
_bod___bit equ 0

        ; line_number = 400
        ; register _osccon = 
_osccon equ 143
        ; line_number = 401
        ; bind _ircf2 = _osccon@6
_ircf2___byte equ _osccon
_ircf2___bit equ 6
        ; line_number = 402
        ; bind _ircf1 = _osccon@5
_ircf1___byte equ _osccon
_ircf1___bit equ 5
        ; line_number = 403
        ; bind _ircf0 = _osccon@4
_ircf0___byte equ _osccon
_ircf0___bit equ 4
        ; line_number = 404
        ; bind _osts = _osccon@3
_osts___byte equ _osccon
_osts___bit equ 3
        ; line_number = 405
        ; bind _hts = _osccon@2
_hts___byte equ _osccon
_hts___bit equ 2
        ; line_number = 406
        ; bind _lts = _osccon@3
_lts___byte equ _osccon
_lts___bit equ 3
        ; line_number = 407
        ; bind _scs = _osccon@2
_scs___byte equ _osccon
_scs___bit equ 2

        ; line_number = 409
        ; register _osctune = 
_osctune equ 144
        ; line_number = 410
        ; bind _tun4 = _osctune@4
_tun4___byte equ _osctune
_tun4___bit equ 4
        ; line_number = 411
        ; bind _tun3 = _osctune@3
_tun3___byte equ _osctune
_tun3___bit equ 3
        ; line_number = 412
        ; bind _tun2 = _osctune@2
_tun2___byte equ _osctune
_tun2___bit equ 2
        ; line_number = 413
        ; bind _tun1 = _osctune@1
_tun1___byte equ _osctune
_tun1___bit equ 1
        ; line_number = 414
        ; bind _tun0 = _osctune@0
_tun0___byte equ _osctune
_tun0___bit equ 0
        ; line_number = 415
        ; constant _osccal_lsb = 1
_osccal_lsb equ 1

        ; line_number = 417
        ; register _ansel = 
_ansel equ 145
        ; line_number = 418
        ; bind _ans7 = _ansel@7
_ans7___byte equ _ansel
_ans7___bit equ 7
        ; line_number = 419
        ; bind _ans6 = _ansel@6
_ans6___byte equ _ansel
_ans6___bit equ 6
        ; line_number = 420
        ; bind _ans5 = _ansel@5
_ans5___byte equ _ansel
_ans5___bit equ 5
        ; line_number = 421
        ; bind _ans4 = _ansel@4
_ans4___byte equ _ansel
_ans4___bit equ 4
        ; line_number = 422
        ; bind _ans3 = _ansel@3
_ans3___byte equ _ansel
_ans3___bit equ 3
        ; line_number = 423
        ; bind _ans2 = _ansel@2
_ans2___byte equ _ansel
_ans2___bit equ 2
        ; line_number = 424
        ; bind _ans1 = _ansel@1
_ans1___byte equ _ansel
_ans1___bit equ 1
        ; line_number = 425
        ; bind _ans0 = _ansel@0
_ans0___byte equ _ansel
_ans0___bit equ 0

        ; line_number = 427
        ; register _wpua = 
_wpua equ 149
        ; line_number = 428
        ; bind _wpua5 = _wpua@5
_wpua5___byte equ _wpua
_wpua5___bit equ 5
        ; line_number = 429
        ; bind _wpua4 = _wpua@4
_wpua4___byte equ _wpua
_wpua4___bit equ 4
        ; line_number = 430
        ; bind _wpua2 = _wpua@2
_wpua2___byte equ _wpua
_wpua2___bit equ 2
        ; line_number = 431
        ; bind _wpua1 = _wpua@1
_wpua1___byte equ _wpua
_wpua1___bit equ 1
        ; line_number = 432
        ; bind _wpua0 = _wpua@0
_wpua0___byte equ _wpua
_wpua0___bit equ 0

        ; line_number = 434
        ; register _ioca = 
_ioca equ 150
        ; line_number = 435
        ; bind _ioca5 = _ioca@5
_ioca5___byte equ _ioca
_ioca5___bit equ 5
        ; line_number = 436
        ; bind _ioca4 = _ioca@4
_ioca4___byte equ _ioca
_ioca4___bit equ 4
        ; line_number = 437
        ; bind _ioca3 = _ioca@3
_ioca3___byte equ _ioca
_ioca3___bit equ 3
        ; line_number = 438
        ; bind _ioca2 = _ioca@2
_ioca2___byte equ _ioca
_ioca2___bit equ 2
        ; line_number = 439
        ; bind _ioca1 = _ioca@1
_ioca1___byte equ _ioca
_ioca1___bit equ 1
        ; line_number = 440
        ; bind _ioca0 = _ioca@0
_ioca0___byte equ _ioca
_ioca0___bit equ 0

        ; line_number = 442
        ; register _eedath = 
_eedath equ 151

        ; line_number = 444
        ; register _eeadrh = 
_eeadrh equ 152

        ; line_number = 446
        ; register _vrcon = 
_vrcon equ 153
        ; line_number = 447
        ; bind _vren = _vrcon@7
_vren___byte equ _vrcon
_vren___bit equ 7
        ; line_number = 448
        ; bind _vrr = _vrcon@5
_vrr___byte equ _vrcon
_vrr___bit equ 5
        ; line_number = 449
        ; bind _vr3 = _vrcon@3
_vr3___byte equ _vrcon
_vr3___bit equ 3
        ; line_number = 450
        ; bind _vr2 = _vrcon@2
_vr2___byte equ _vrcon
_vr2___bit equ 2
        ; line_number = 451
        ; bind _vr1 = _vrcon@1
_vr1___byte equ _vrcon
_vr1___bit equ 1
        ; line_number = 452
        ; bind _vr0 = _vrcon@0
_vr0___byte equ _vrcon
_vr0___bit equ 0

        ; line_number = 454
        ; register _eedat = 
_eedat equ 154
        ; line_number = 455
        ; bind _eedat7 = _eedat@7
_eedat7___byte equ _eedat
_eedat7___bit equ 7
        ; line_number = 456
        ; bind _eedat6 = _eedat@6
_eedat6___byte equ _eedat
_eedat6___bit equ 6
        ; line_number = 457
        ; bind _eedat5 = _eedat@5
_eedat5___byte equ _eedat
_eedat5___bit equ 5
        ; line_number = 458
        ; bind _eedat4 = _eedat@4
_eedat4___byte equ _eedat
_eedat4___bit equ 4
        ; line_number = 459
        ; bind _eedat3 = _eedat@3
_eedat3___byte equ _eedat
_eedat3___bit equ 3
        ; line_number = 460
        ; bind _eedat2 = _eedat@2
_eedat2___byte equ _eedat
_eedat2___bit equ 2
        ; line_number = 461
        ; bind _eedat1 = _eedat@1
_eedat1___byte equ _eedat
_eedat1___bit equ 1
        ; line_number = 462
        ; bind _eedat0 = _eedat@0
_eedat0___byte equ _eedat
_eedat0___bit equ 0

        ; line_number = 464
        ; register _eeadr = 
_eeadr equ 155
        ; line_number = 465
        ; bind _eeadr7 = _eeadr@7
_eeadr7___byte equ _eeadr
_eeadr7___bit equ 7
        ; line_number = 466
        ; bind _eeadr6 = _eeadr@6
_eeadr6___byte equ _eeadr
_eeadr6___bit equ 6
        ; line_number = 467
        ; bind _eeadr5 = _eeadr@5
_eeadr5___byte equ _eeadr
_eeadr5___bit equ 5
        ; line_number = 468
        ; bind _eeadr4 = _eeadr@4
_eeadr4___byte equ _eeadr
_eeadr4___bit equ 4
        ; line_number = 469
        ; bind _eeadr3 = _eeadr@3
_eeadr3___byte equ _eeadr
_eeadr3___bit equ 3
        ; line_number = 470
        ; bind _eeadr2 = _eeadr@2
_eeadr2___byte equ _eeadr
_eeadr2___bit equ 2
        ; line_number = 471
        ; bind _eeadr1 = _eeadr@1
_eeadr1___byte equ _eeadr
_eeadr1___bit equ 1
        ; line_number = 472
        ; bind _eeadr0 = _eeadr@0
_eeadr0___byte equ _eeadr
_eeadr0___bit equ 0

        ; line_number = 474
        ; register _eecon1 = 
_eecon1 equ 156
        ; line_number = 475
        ; bind _eepgd = _eecon1@7
_eepgd___byte equ _eecon1
_eepgd___bit equ 7
        ; line_number = 476
        ; bind _wrerr = _eecon1@3
_wrerr___byte equ _eecon1
_wrerr___bit equ 3
        ; line_number = 477
        ; bind _wren = _eecon1@2
_wren___byte equ _eecon1
_wren___bit equ 2
        ; line_number = 478
        ; bind _wr = _eecon1@1
_wr___byte equ _eecon1
_wr___bit equ 1
        ; line_number = 479
        ; bind _rd = _eecon1@0
_rd___byte equ _eecon1
_rd___bit equ 0

        ; line_number = 481
        ; register _eecon2 = 
_eecon2 equ 157

        ; line_number = 483
        ; register _adresl = 
_adresl equ 158

        ; line_number = 485
        ; register _adcon1 = 
_adcon1 equ 159
        ; line_number = 486
        ; bind _adcs2 = _adcon1@6
_adcs2___byte equ _adcon1
_adcs2___bit equ 6
        ; line_number = 487
        ; bind _adcs1 = _adcon1@5
_adcs1___byte equ _adcon1
_adcs1___bit equ 5
        ; line_number = 488
        ; bind _adcs0 = _adcon1@4
_adcs0___byte equ _adcon1
_adcs0___bit equ 4

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

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

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

        ; # Define processor constants:
        ; buffer = 'clock20mhz'
        ; line_number = 9
        ; constant clock_rate = 20000000
clock_rate equ 20000000
        ; 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 5000000


        ; buffer = 'host'
        ; line_number = 7
        ; library clock20mhz exited
        ; line_number = 8
        ; library _uart entered
        ; # Copyright (c) 2004 by Wayne C. Gramlich.
        ; # All rights reserved.

        ; # This library contains some procedures for accessing the UART.

        ; Delaying code generation for procedure  _uart_byte_safe_get
        ; Delaying code generation for procedure  _uart_byte_get
        ; Delaying code generation for procedure  _uart_hex_put
        ; Delaying code generation for procedure  _uart_nibble_put
        ; Delaying code generation for procedure  _uart_space_put
        ; Delaying code generation for procedure  _uart_crlf_put
        ; Delaying code generation for procedure  _uart_byte_put

        ; line_number = 8
        ; library _uart exited
        ; line_number = 9
        ; constant _eusart_clock = clock_rate
_eusart_clock equ 20000000
        ; line_number = 10
        ; constant _eusart_factor = 4
_eusart_factor equ 4
        ; line_number = 11
        ; 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		       4

        ; # 2400 baud:
        ; buffer = '_eusart'
        ; line_number = 23
        ; constant _eusart_2400 = (_eusart_clock / (2400 * _eusart_factor)) - 1
_eusart_2400 equ 2082
        ; line_number = 24
        ; constant _eusart_2400_low = _eusart_2400 & 0xff
_eusart_2400_low equ 34
        ; line_number = 25
        ; constant _eusart_2400_high = _eusart_2400 >> 8
_eusart_2400_high equ 8
        ; 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 1040
        ; line_number = 29
        ; constant _eusart_4800_low = _eusart_4800 & 0xff
_eusart_4800_low equ 16
        ; line_number = 30
        ; constant _eusart_4800_high = _eusart_4800 >> 8
_eusart_4800_high equ 4
        ; 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 519
        ; line_number = 34
        ; constant _eusart_9600_low = _eusart_9600 & 0xff
_eusart_9600_low equ 7
        ; line_number = 35
        ; constant _eusart_9600_high = _eusart_9600 >> 8
_eusart_9600_high equ 2
        ; 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 259
        ; line_number = 39
        ; constant _eusart_19200_low = _eusart_19200 & 0xff
_eusart_19200_low equ 3
        ; line_number = 40
        ; constant _eusart_19200_high = _eusart_19200 >> 8
_eusart_19200_high equ 1
        ; 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 129
        ; line_number = 44
        ; constant _eusart_38400_low = _eusart_38400 & 0xff
_eusart_38400_low equ 129
        ; 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 85
        ; line_number = 49
        ; constant _eusart_57600_low = _eusart_57600 & 0xff
_eusart_57600_low equ 85
        ; 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 42
        ; line_number = 54
        ; constant _eusart_115200_low = _eusart_115200 & 0xff
_eusart_115200_low equ 42
        ; 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_230400 = (_eusart_clock / (230400 * _eusart_factor)) - 1
_eusart_230400 equ 20
        ; line_number = 59
        ; constant _eusart_230400_low = _eusart_230400 & 0xff
_eusart_230400_low equ 20
        ; line_number = 60
        ; constant _eusart_230400_high = _eusart_230400 >> 8
_eusart_230400_high equ 0
        ; line_number = 61
        ; constant _eusart_230400_index = 7
_eusart_230400_index equ 7
        ; # 406800 baud:
        ; line_number = 63
        ; constant _eusart_406800 = (_eusart_clock / (406800 * _eusart_factor)) - 1
_eusart_406800 equ 11
        ; line_number = 64
        ; constant _eusart_406800_low = _eusart_406800 & 0xff
_eusart_406800_low equ 11
        ; line_number = 65
        ; constant _eusart_406800_high = _eusart_406800 >> 8
_eusart_406800_high equ 0
        ; line_number = 66
        ; constant _eusart_406800_index = 8
_eusart_406800_index equ 8
        ; # 500000 baud:
        ; line_number = 68
        ; constant _eusart_500000 = (_eusart_clock / (500000 * _eusart_factor)) - 1
_eusart_500000 equ 9
        ; line_number = 69
        ; constant _eusart_500000_low = _eusart_500000 & 0xff
_eusart_500000_low equ 9
        ; line_number = 70
        ; constant _eusart_500000_high = _eusart_500000 >> 8
_eusart_500000_high equ 0
        ; line_number = 71
        ; constant _eusart_500000_index = 8
_eusart_500000_index equ 8
        ; # 62500 baud:
        ; line_number = 73
        ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
_eusart_625000 equ 7
        ; line_number = 74
        ; constant _eusart_625000_low = _eusart_625000 & 0xff
_eusart_625000_low equ 7
        ; line_number = 75
        ; constant _eusart_625000_high = _eusart_625000 >> 8
_eusart_625000_high equ 0
        ; line_number = 76
        ; constant _eusart_625000_index = 9
_eusart_625000_index equ 9
        ; # 833333 baud:
        ; line_number = 78
        ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
_eusart_833333 equ 5
        ; line_number = 79
        ; constant _eusart_833333_low = _eusart_833333 & 0xff
_eusart_833333_low equ 5
        ; line_number = 80
        ; constant _eusart_833333_high = _eusart_833333 >> 8
_eusart_833333_high equ 0
        ; line_number = 81
        ; constant _eusart_833333_index = 10
_eusart_833333_index equ 10
        ; # 1000000 baud (1MHz):
        ; line_number = 83
        ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
_eusart_1000000 equ 4
        ; line_number = 84
        ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
_eusart_1000000_low equ 4
        ; line_number = 85
        ; constant _eusart_1000000_high = _eusart_1000000 >> 8
_eusart_1000000_high equ 0
        ; line_number = 86
        ; constant _eusart_1000000_index = 11
_eusart_1000000_index equ 11

        ; buffer = 'host'
        ; line_number = 11
        ; library _eusart exited


        ; #constant _true = 1
        ; #constant _false = 0

        ; line_number = 18
        ; package pdip
        ; line_number = 19
        ; pin 1 = power_supply
        ; line_number = 20
        ;  pin 2 = osc1
        ; line_number = 21
        ;  pin 3 = osc2
        ; line_number = 22
        ;  pin 4 = ra3_in, name=dtr
dtr___byte equ _porta
dtr___bit equ 3
        ; line_number = 23
        ;  pin 5 = rx, name=rx
rx___byte equ _portc
rx___bit equ 5
        ; line_number = 24
        ;  pin 6 = tx, name=tx
tx___byte equ _portc
tx___bit equ 4
        ; line_number = 25
        ;  pin 7 = rc3_out, name=p3
p3___byte equ _portc
p3___bit equ 3
        ; line_number = 26
        ;  pin 8 = rc2_out, name=p2
p2___byte equ _portc
p2___bit equ 2
        ; line_number = 27
        ;  pin 9 = rc1_in, name=p1
p1___byte equ _portc
p1___bit equ 1
        ; line_number = 28
        ;  pin 10 = rc0_in, name=p0
p0___byte equ _portc
p0___bit equ 0
        ; line_number = 29
        ;  pin 11 = ra2_out, name=p6
p6___byte equ _porta
p6___bit equ 2
        ; line_number = 30
        ;  pin 12 = ra1_in, name=p5
p5___byte equ _porta
p5___bit equ 1
        ; line_number = 31
        ;  pin 13 = ra0_out, name=p4
p4___byte equ _porta
p4___bit equ 0
        ; line_number = 32
        ;  pin 14 = ground

        ; line_number = 34
        ; global error bit
error___byte equ globals___0+79
error___bit equ 0
        ; line_number = 35
        ; global end_of_line bit
end_of_line___byte equ globals___0+79
end_of_line___bit equ 1
        ; line_number = 36
        ; global hex_high byte
hex_high equ globals___0+3
        ; line_number = 37
        ; global hex_low byte
hex_low equ globals___0+4
        ; line_number = 38
        ; global bus_shift byte
bus_shift equ globals___0+5
        ; line_number = 39
        ; global time_out bit
time_out___byte equ globals___0+79
time_out___bit equ 2
        ; line_number = 40
        ; global bus_msb bit
bus_msb___byte equ globals___0+79
bus_msb___bit equ 3
        ; line_number = 41
        ; global buffer[5] array[byte]
buffer equ globals___0+6


        ; line_number = 44
        ;info   44, 0
        ; procedure main
main:
        ; Initialize some registers
        clrf    _adcon0
        bsf     __rp0___byte, __rp0___bit
        clrf    _ansel
        movlw   7
        bcf     __rp0___byte, __rp0___bit
        movwf   _cmcon0
        movlw   58
        bsf     __rp0___byte, __rp0___bit
        movwf   _trisa
        movlw   51
        movwf   _trisc
        ; arguments_none
        ; line_number = 46
        ;  returns_nothing

        ; # This is the main procdure that initializes the the microcontroller
        ; # and waits for commands from the host.

        ; line_number = 51
        ;  local bit9 bit
main__bit9___byte equ globals___0+79
main__bit9___bit equ 4
        ; line_number = 52
        ;  local command byte
main__command equ globals___0+11
        ; line_number = 53
        ;  local id byte
main__id equ globals___0+12
        ; line_number = 54
        ;  local low byte
main__low equ globals___0+13
        ; line_number = 55
        ;  local node byte
main__node equ globals___0+14
        ; line_number = 56
        ;  local page byte
main__page equ globals___0+15
        ; line_number = 57
        ;  local receive byte
main__receive equ globals___0+16
        ; line_number = 58
        ;  local row byte
main__row equ globals___0+17
        ; line_number = 59
        ;  local send byte
main__send equ globals___0+18
        ; line_number = 60
        ;  local value byte
main__value equ globals___0+19

        ; line_number = 62
        ;  local index byte
main__index equ globals___0+20
        ; line_number = 63
        ;  local count byte
main__count equ globals___0+21
        ; line_number = 64
        ;  local mask byte
main__mask equ globals___0+22
        ; line_number = 65
        ;  local ninth bit
main__ninth___byte equ globals___0+79
main__ninth___bit equ 5
        ; line_number = 66
        ;  local high4 byte
main__high4 equ globals___0+23

        ; # For debugging only -- just wiggle the p2 pin:
        ; #loop_forever
        ; #	p2 := _true
        ; #	p2 := _false

        ; # Warm up the EUSART:
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:XX=cc=>XX)
        ; line_number = 74
        ;  _trisc@5 := _true
        ;info   74, 11
main__select__1___byte equ _trisc
main__select__1___bit equ 5
        bsf     main__select__1___byte, main__select__1___bit
        ; line_number = 75
        ;  _trisc@4 := _true
        ;info   75, 12
main__select__2___byte equ _trisc
main__select__2___bit equ 4
        bsf     main__select__2___byte, main__select__2___bit

        ; line_number = 77
        ;  _txsta := 0
        ;info   77, 13
        bcf     __rp0___byte, __rp0___bit
        clrf    _txsta
        ; line_number = 78
        ;  _tx9 := _false
        ;info   78, 15
        bcf     _tx9___byte, _tx9___bit
        ; line_number = 79
        ;  _txen := _true
        ;info   79, 16
        bsf     _txen___byte, _txen___bit
        ; line_number = 80
        ;  _brgh := _true
        ;info   80, 17
        bsf     _brgh___byte, _brgh___bit

        ; line_number = 82
        ;  _rcsta := 0
        ;info   82, 18
        clrf    _rcsta
        ; line_number = 83
        ;  _spen := _true
        ;info   83, 19
        bsf     _spen___byte, _spen___bit
        ; line_number = 84
        ;  _rx9 := _false
        ;info   84, 20
        bcf     _rx9___byte, _rx9___bit
        ; line_number = 85
        ;  _cren := _true
        ;info   85, 21
        bsf     _cren___byte, _cren___bit
        ; line_number = 86
        ;  _adden := _true
        ;info   86, 22
        bsf     _adden___byte, _adden___bit

        ; line_number = 88
        ;  _baudctl := 0
        ;info   88, 23
        clrf    _baudctl
        ; line_number = 89
        ;  _brg16 := _true
        ;info   89, 24
        bsf     _brg16___byte, _brg16___bit

        ; #_spbrg := _eusart_19200_low
        ; #_spbrgh := _eusart_19200_high
        ; line_number = 93
        ;  _spbrg := _eusart_115200_low
        ;info   93, 25
        movlw   42
        movwf   _spbrg
        ; line_number = 94
        ;  _spbrgh := _eusart_115200_high
        ;info   94, 27
        clrf    _spbrgh
        ; #_spbrg := _eusart_230400_low
        ; #_spbrgh := _eusart_230400_high

        ; # For debugging only -- just output a stream of 'U':
        ; #loop_forever
        ; #	loop_exactly 255
        ; #	    delay 600
        ; #		do_nothing
        ; #	call _uart_byte_put('U')

        ; # For debugging only -- Double echo:
        ; #loop_forever
        ; #	# Wait for command:
        ; #	command := _uart_byte_get()
        ; #	#call _uart_hex_put(command)
        ; #  	call _uart_byte_put(command)
        ; #  	call _uart_byte_put(command)

        ; # Process commands:
        ; #call _uart_byte_put('>')
        ; line_number = 115
        ;  loop_forever start
main__3:
        ; # Wait for command:
        ; line_number = 117
        ;  error := _false
        ;info   117, 28
        bcf     error___byte, error___bit
        ; line_number = 118
        ;  end_of_line := _false
        ;info   118, 29
        bcf     end_of_line___byte, end_of_line___bit

        ; # Fetch a command letter from the user:
        ; line_number = 121
        ;  command := _uart_byte_get()
        ;info   121, 30
        call    _uart_byte_get
        movwf   main__command
        ; line_number = 122
        ;  if command@7 start
        ;info   122, 32
main__select__102___byte equ main__command
main__select__102___bit equ 7
        ; =>bit_code_emit@symbol(): sym=main__select__102
        ; No 1TEST: true.size=78 false.size=393
        ; No 2TEST: true.size=78 false.size=393
        ; 2GOTO: Single test with two GOTO's
        btfss   main__select__102___byte, main__select__102___bit
        goto    main__103
        ; # Binary mode command:
        ; line_number = 124
        ;  switch (command >> 4) & 7 start
        ;info   124, 34
        ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
        ; line_number = 125
        ; case_maximum 7
        movlw   main__99>>8
        movwf   __pclath
main__100 equ globals___0+34
        swapf   main__command,w
        andlw   7
        ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
        addlw   main__99
        movwf   __pcl
        ; page_group 8
main__99:
        goto    main__96
        goto    main__96
        goto    main__97
        goto    main__98
        goto    main__101
        goto    main__101
        goto    main__101
        goto    main__101
        ; line_number = 126
        ; case 0, 1
main__96:
        ; # 100h hhhh (High5 Set):
        ; line_number = 128
        ;  ninth := command@4
        ;info   128, 48
        bcf     main__ninth___byte, main__ninth___bit
main__select__83___byte equ main__command
main__select__83___bit equ 4
        ; =>bit_code_emit@symbol(): sym=main__select__83
        ; 1TEST: Single test with code in skip slot
        btfsc   main__select__83___byte, main__select__83___bit
        bsf     main__ninth___byte, main__ninth___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 129
        ;  high4 := command << 4
        ;info   129, 51
        swapf   main__command,w
        movwf   main__high4
        movlw   240
        andwf   main__high4,f
        goto    main__101
        ; line_number = 130
        ; case 2
main__97:
        ; # 1010 llll (Low4 Send):
        ; line_number = 132
        ;  send := high4 | command & 0xf
        ;info   132, 56
        movlw   15
        andwf   main__command,w
        iorwf   main__high4,w
        movwf   main__send
        ; line_number = 133
        ;  if ninth start
        ;info   133, 60
        ; =>bit_code_emit@symbol(): sym=main__ninth
        ; line_number = 134
        ; call bus_select_send(send)
        ;info   134, 60
        movf    main__send,w
        ; line_number = 136
        ; call bus_byte_send(send)
        ;info   136, 61
        ; No 1TEST: true.size=1 false.size=1
        ; 2TEST: two tests with code in both delay slots
        btfsc   main__ninth___byte, main__ninth___bit
        call    bus_select_send
        btfss   main__ninth___byte, main__ninth___bit
        call    bus_byte_send
        ; line_number = 133
        ;  if ninth done
        goto    main__101
        ; line_number = 137
        ; case 3
main__98:
        ; # 1011 xxxx:
        ; line_number = 139
        ;  if command & 0xf = 0 start
        ;info   139, 66
        ; Left minus Right
        movlw   15
        andwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=42 false.size=0
        ; No 2TEST: true.size=42 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   __z___byte, __z___bit
        goto    main__95
        ; # 1011 0000 (Receive5):
        ; line_number = 141
        ;  mask := 0x80
        ;info   141, 70
        movlw   128
        movwf   main__mask
        ; line_number = 142
        ;  count := 0
        ;info   142, 72
        clrf    main__count
        ; line_number = 143
        ;  send := 0
        ;info   143, 73
        clrf    main__send

        ; # Check the buffer exactly 5 times:
        ; line_number = 146
        ;  loop_exactly 5 start
        ;info   146, 74
main__84 equ globals___0+34
        movlw   5
        movwf   main__84
main__85:
        ; # Check to see if anything is in the buffer:
        ; line_number = 148
        ;  call shift2(6)
        ;info   148, 76
        movlw   6
        call    shift2
        ; line_number = 149
        ;  if !(bus_shift@1) start
        ;info   149, 78
main__select__90___byte equ bus_shift
main__select__90___bit equ 1
        ; =>bit_code_emit@symbol(): sym=main__select__90
        ; No 1TEST: true.size=0 false.size=16
        ; No 2TEST: true.size=0 false.size=16
        ; 1GOTO: Single test with GOTO
        btfsc   main__select__90___byte, main__select__90___bit
        goto    main__91
        ; # There is a byte over there:

        ; # Stuff the 9th bit into {mask}:
        ; line_number = 153
        ;  if bus_shift@0 start
        ;info   153, 80
main__select__86___byte equ bus_shift
main__select__86___bit equ 0
        ; =>bit_code_emit@symbol(): sym=main__select__86
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   main__select__86___byte, main__select__86___bit
        goto    main__87
        ; line_number = 154
        ; send := send | mask
        ;info   154, 82
        movf    main__mask,w
        iorwf   main__send,f
        ; Recombine size1 = 0 || size2 = 0
main__87:
        ; line_number = 153
        ;  if bus_shift@0 done
        ; line_number = 155
        ; mask := mask >> 1
        ;info   155, 84
        ; Assignment of variable to self (no code needed)
        rrf     main__mask,f
        bcf     main__mask, 7

        ; # Grab the rest of the byte:
        ; line_number = 158
        ;  loop_exactly 4 start
        ;info   158, 86
main__88 equ globals___0+35
        movlw   4
        movwf   main__88
main__89:
        ; line_number = 159
        ; call shift2(0)
        ;info   159, 88
        movlw   0
        call    shift2
        ; line_number = 158
        ;  loop_exactly 4 wrap-up
        decfsz  main__88,f
        goto    main__89
        ; line_number = 158
        ;  loop_exactly 4 done
        ; line_number = 160
        ; buffer[count] := bus_shift
        ;info   160, 92
        ; index_fsr_first
        movf    main__count,w
        addlw   buffer
        movwf   __fsr
        movf    bus_shift,w
        movwf   __indf
        ; line_number = 161
        ;  count := count + 1
        ;info   161, 97
        incf    main__count,f
main__91:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 149
        ;  if !(bus_shift@1) done
        ; line_number = 146
        ;  loop_exactly 5 wrap-up
        decfsz  main__84,f
        goto    main__85
        ; line_number = 146
        ;  loop_exactly 5 done
        ; line_number = 162
        ; send := send | count
        ;info   162, 100
        movf    main__count,w
        iorwf   main__send,f

        ; # Send the results back to the host:
        ; line_number = 165
        ;  call _uart_byte_put(send)
        ;info   165, 102
        movf    main__send,w
        call    _uart_byte_put
        ; line_number = 166
        ;  if count != 0 start
        ;info   166, 104
        ; Left minus Right
        movf    main__count,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=0 false.size=9
        ; No 2TEST: true.size=0 false.size=9
        ; 1GOTO: Single test with GOTO
        btfsc   __z___byte, __z___bit
        goto    main__94
        ; line_number = 167
        ; index := 0
        ;info   167, 107
        clrf    main__index
        ; line_number = 168
        ;  loop_exactly count start
        ;info   168, 108
main__92 equ globals___0+35
        movf    main__count,w
        movwf   main__92
main__93:
        ; line_number = 169
        ; call _uart_byte_put(buffer[index])
        ;info   169, 110
        movf    main__index,w
        addlw   buffer
        movwf   __fsr
        movf    __indf,w
        call    _uart_byte_put
        ; line_number = 170
        ;  index := index + 1
        ;info   170, 115
        incf    main__index,f
        ; line_number = 168
        ;  loop_exactly count wrap-up
        decfsz  main__92,f
        goto    main__93
        ; line_number = 168
        ;  loop_exactly count done
main__94:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 166
        ;  if count != 0 done
        ; Recombine size1 = 0 || size2 = 0
main__95:
        ; line_number = 139
        ;  if command & 0xf = 0 done
main__101:
        ; line_number = 124
        ;  switch (command >> 4) & 7 done
        goto    main__104
        ; 2GOTO: Starting code 2
main__103:
        ; # ASCII mode command:

        ; # Echo the character:
        ; line_number = 175
        ;  call _uart_byte_put(command)
        ;info   175, 119
        movf    main__command,w
        call    _uart_byte_put

        ; # Convert it to upper case:
        ; line_number = 178
        ;  if 'a' <= command && command <= 'z' start
        ;info   178, 121
        movlw   97
        subwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=8 false.size=1
        ; No 2TEST: true.size=8 false.size=1
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    main__4
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   122
        subwf   main__command,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=0 false.size=2
        ; No 2TEST: true.size=0 false.size=2
        ; 1GOTO: Single test with GOTO
        btfsc   __c___byte, __c___bit
        goto    main__5
        ; line_number = 179
        ; command := command + ('A' - 'a')
        ;info   179, 131
        movlw   224
        addwf   main__command,f
main__5:
main__4:
        ; Recombine code1_bit_states != code2_bit_states
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; Recombine code1_bit_states != code2_bit_states
        ; 2GOTO: No goto needed; true= false=main__4 true_size=8 false_size=1
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 178
        ;  if 'a' <= command && command <= 'z' done
        ; line_number = 180
        ; if 'A' <= command && command <= 'Z' start
        ;info   180, 133
        movlw   65
        subwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=373 false.size=1
        ; No 2TEST: true.size=373 false.size=1
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    main__80
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   90
        subwf   main__command,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=14 false.size=352
        ; No 2TEST: true.size=14 false.size=352
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    main__81
main__80:
        ; line_number = 401
        ;info   401, 143
        ; Left minus Right
        movlw   198
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   __z___byte, __z___bit
        goto    main__7
        ; # Hex:
        ; line_number = 403
        ;  if end_of_line_get() start
        ;info   403, 147
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; 1TEST: Single test with code in skip slot
        btfsc   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        ; line_number = 404
        ; call _uart_crlf_put()
        ;info   404, 149
        goto    main__8
        ; 2GOTO: Starting code 2
main__7:
        ; line_number = 405
        ;info   405, 150
        ; Left minus Right
        movlw   243
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=0 false.size=2
        ; No 2TEST: true.size=0 false.size=2
        ; 1GOTO: Single test with GOTO
        btfsc   __z___byte, __z___bit
        goto    main__6
        ; # Illegal command:
        ; line_number = 410
        ;  call _uart_byte_put('?')
        ;info   410, 154
        movlw   63
        call    _uart_byte_put
        ; line_number = 411
        ;  call _uart_crlf_put()
        ;info   411, 156
main__6:
        ; # Blank line:
        ; line_number = 407
        ;  call _uart_crlf_put()
        ;info   407, 156
main__8:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 403
        ;  if end_of_line_get() done

        goto    main__82
        ; 2GOTO: Starting code 2
main__81:
        ; # We have a command letter:
        ; line_number = 182
        ;  switch command - 'A' start
        ;info   182, 158
        ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
        movlw   main__78>>8
        movwf   __pclath
        movlw   191
        addwf   main__command,w
        ; switch after expression:(data:00=uu=>00 code:XX=cc=>XX)
        addlw   main__78
        movwf   __pcl
        ; page_group 26
main__78:
        goto    main__63
        goto    main__64
        goto    main__65
        goto    main__66
        goto    main__77
        goto    main__67
        goto    main__77
        goto    main__77
        goto    main__68
        goto    main__69
        goto    main__77
        goto    main__77
        goto    main__77
        goto    main__77
        goto    main__77
        goto    main__70
        goto    main__77
        goto    main__71
        goto    main__72
        goto    main__73
        goto    main__77
        goto    main__77
        goto    main__74
        goto    main__75
        goto    main__77
        goto    main__76
        ; line_number = 183
        ; case 0
main__63:
        ; # Set address:
        ; line_number = 185
        ;  id := hex_byte_get()
        ;info   185, 190
        call    hex_byte_get
        movwf   main__id
        ; line_number = 186
        ;  node := hex_byte_get()
        ;info   186, 192
        call    hex_byte_get
        movwf   main__node
        ; line_number = 187
        ;  if end_of_line_get() start
        ;info   187, 194
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=6 false.size=0
        ; No 2TEST: true.size=6 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__9
        ; line_number = 188
        ; call _uart_hex_put(id)
        ;info   188, 197
        movf    main__id,w
        call    _uart_hex_put
        ; line_number = 189
        ;  call _uart_space_put()
        ;info   189, 199
        call    _uart_space_put
        ; line_number = 190
        ;  call _uart_hex_put(node)
        ;info   190, 200
        movf    main__node,w
        call    _uart_hex_put
        ; line_number = 191
        ;  call _uart_crlf_put()
        ;info   191, 202
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__9:
        ; line_number = 187
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 192
        ; case 1
main__64:
        ; line_number = 193
        ; value := hex_byte_get()
        ;info   193, 204
        call    hex_byte_get
        movwf   main__value
        ; line_number = 194
        ;  if end_of_line_get() start
        ;info   194, 206
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=3 false.size=0
        ; No 2TEST: true.size=3 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__10
        ; line_number = 195
        ; call _uart_hex_put(value)
        ;info   195, 209
        movf    main__value,w
        call    _uart_hex_put
        ; line_number = 196
        ;  call _uart_crlf_put()
        ;info   196, 211
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__10:
        ; line_number = 194
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 197
        ; case 2
main__65:
        ; # Clear bus:
        ; line_number = 199
        ;  if end_of_line_get() start
        ;info   199, 213
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; 1TEST: Single test with code in skip slot
        btfsc   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        ; line_number = 200
        ; call _uart_crlf_put()
        ;info   200, 215
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 199
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 201
        ; case 3
main__66:
        ; # Deselect:
        ; line_number = 203
        ;  if end_of_line_get() start
        ;info   203, 217
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=17 false.size=0
        ; No 2TEST: true.size=17 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__14
        ; line_number = 204
        ; call _uart_crlf_put()
        ;info   204, 220
        call    _uart_crlf_put
        ; line_number = 205
        ;  call bus_byte_send(0xff)
        ;info   205, 221
        movlw   255
        call    bus_byte_send
        ; line_number = 206
        ;  value := bus_byte_receive()
        ;info   206, 223
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 207
        ;  if time_out start
        ;info   207, 225
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__12
        ; line_number = 208
        ; call _uart_byte_put('@')
        ;info   208, 227
        movlw   64
        call    _uart_byte_put
        goto    main__13
        ; 2GOTO: Starting code 2
main__12:
        ; line_number = 210
        ; if bus_msb start
        ;info   210, 230
        ; =>bit_code_emit@symbol(): sym=bus_msb
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   bus_msb___byte, bus_msb___bit
        goto    main__11
        ; line_number = 211
        ; call _uart_byte_put('1')
        ;info   211, 232
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__11:
        ; line_number = 210
        ; if bus_msb done
        ; line_number = 212
        ; call _uart_hex_put(value)
        ;info   212, 234
        movf    main__value,w
        call    _uart_hex_put
main__13:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 207
        ;  if time_out done
        ; line_number = 213
        ; call _uart_crlf_put()
        ;info   213, 236
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__14:
        ; line_number = 203
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 214
        ; case 5
main__67:
        ; # Flush buffer
        ; line_number = 216
        ;  if end_of_line_get() start
        ;info   216, 238
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=15 false.size=0
        ; No 2TEST: true.size=15 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__19
        ; line_number = 217
        ; time_out := _false
        ;info   217, 241
        bcf     time_out___byte, time_out___bit
        ; line_number = 218
        ;  while !time_out start
main__15:
        ;info   218, 242
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=0 false.size=11
        ; No 2TEST: true.size=0 false.size=11
        ; 1GOTO: Single test with GOTO
        btfsc   time_out___byte, time_out___bit
        goto    main__18
        ; line_number = 219
        ; value := bus_byte_receive()
        ;info   219, 244
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 220
        ;  call _uart_space_put()
        ;info   220, 246
        call    _uart_space_put
        ; line_number = 221
        ;  if time_out start
        ;info   221, 247
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=2
        ; No 2TEST: true.size=2 false.size=2
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__16
        ; line_number = 222
        ; call _uart_byte_put('@')
        ;info   222, 249
        movlw   64
        call    _uart_byte_put
        goto    main__17
        ; 2GOTO: Starting code 2
main__16:
        ; line_number = 224
        ; call _uart_hex_put(value)
        ;info   224, 252
        movf    main__value,w
        call    _uart_hex_put
main__17:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 221
        ;  if time_out done
        goto    main__15
main__18:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 218
        ;  while !time_out done
        ; line_number = 225
        ; call _uart_crlf_put()
        ;info   225, 255
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__19:
        ; line_number = 216
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 226
        ; case 8
main__68:
        ; # Identify:
        ; line_number = 228
        ;  if end_of_line_get() start
        ;info   228, 257
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; 1TEST: Single test with code in skip slot
        btfsc   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        ; line_number = 229
        ; call id_dump()
        ;info   229, 259
        call    id_dump
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 228
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 230
        ; case 9
main__69:
        ; # Jump:
        ; line_number = 232
        ;  call hex_word_get()
        ;info   232, 261
        call    hex_word_get
        ; line_number = 233
        ;  if end_of_line_get() start
        ;info   233, 262
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=5 false.size=0
        ; No 2TEST: true.size=5 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__20
        ; line_number = 234
        ; call _uart_hex_put(hex_high)
        ;info   234, 265
        movf    hex_high,w
        call    _uart_hex_put
        ; line_number = 235
        ;  call _uart_hex_put(hex_low)
        ;info   235, 267
        movf    hex_low,w
        call    _uart_hex_put
        ; line_number = 236
        ;  call _uart_crlf_put()
        ;info   236, 269
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__20:
        ; line_number = 233
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 237
        ; case 15
main__70:
        ; # Print a page of program memory:
        ; line_number = 239
        ;  page := hex_byte_get()
        ;info   239, 271
        call    hex_byte_get
        movwf   main__page
        ; line_number = 240
        ;  if end_of_line_get() start
        ;info   240, 273
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=55 false.size=0
        ; No 2TEST: true.size=55 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__29
        ; line_number = 241
        ; row := 0
        ;info   241, 276
        clrf    main__row
        ; line_number = 242
        ;  low := 0
        ;info   242, 277
        clrf    main__low
        ; line_number = 243
        ;  while row < 32 start
main__21:
        ;info   243, 278
        movlw   32
        subwf   main__row,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=0 false.size=49
        ; No 2TEST: true.size=0 false.size=49
        ; 1GOTO: Single test with GOTO
        btfsc   __c___byte, __c___bit
        goto    main__28
        ; line_number = 244
        ; call _uart_hex_put(page)
        ;info   244, 282
        movf    main__page,w
        call    _uart_hex_put
        ; line_number = 245
        ;  call _uart_hex_put(low)
        ;info   245, 284
        movf    main__low,w
        call    _uart_hex_put
        ; line_number = 246
        ;  call _uart_byte_put(':')
        ;info   246, 286
        movlw   58
        call    _uart_byte_put

        ; # Set address:
        ; line_number = 249
        ;  call bus_byte_send(0)
        ;info   249, 288
        movlw   0
        call    bus_byte_send
        ; line_number = 250
        ;  call bus_byte_receive()
        ;info   250, 290
        call    bus_byte_receive

        ; line_number = 252
        ;  call bus_byte_send(page)
        ;info   252, 291
        movf    main__page,w
        call    bus_byte_send
        ; line_number = 253
        ;  call bus_byte_receive()
        ;info   253, 293
        call    bus_byte_receive

        ; line_number = 255
        ;  call bus_byte_send(low)
        ;info   255, 294
        movf    main__low,w
        call    bus_byte_send
        ; line_number = 256
        ;  call bus_byte_receive()
        ;info   256, 296
        call    bus_byte_receive

        ; # Read the ack byte:
        ; line_number = 259
        ;  call bus_byte_receive()
        ;info   259, 297
        call    bus_byte_receive

        ; # Read out 8 words:
        ; line_number = 262
        ;  call bus_byte_send(1)
        ;info   262, 298
        movlw   1
        call    bus_byte_send
        ; line_number = 263
        ;  call bus_byte_receive()
        ;info   263, 300
        call    bus_byte_receive

        ; line_number = 265
        ;  call bus_byte_send(8)
        ;info   265, 301
        movlw   8
        call    bus_byte_send
        ; line_number = 266
        ;  call bus_byte_receive()
        ;info   266, 303
        call    bus_byte_receive
        ; line_number = 267
        ;  loop_exactly 8 start
        ;info   267, 304
main__22 equ globals___0+34
        movlw   8
        movwf   main__22
main__23:
        ; line_number = 268
        ; value := bus_byte_receive()
        ;info   268, 306
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 269
        ;  call _uart_space_put()
        ;info   269, 308
        call    _uart_space_put
        ; line_number = 270
        ;  if time_out start
        ;info   270, 309
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=2
        ; No 2TEST: true.size=2 false.size=2
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__24
        ; line_number = 271
        ; call _uart_byte_put('@')
        ;info   271, 311
        movlw   64
        call    _uart_byte_put
        goto    main__25
        ; 2GOTO: Starting code 2
main__24:
        ; line_number = 273
        ; call _uart_hex_put(value)
        ;info   273, 314
        movf    main__value,w
        call    _uart_hex_put
main__25:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 270
        ;  if time_out done
        ; line_number = 274
        ; value := bus_byte_receive()
        ;info   274, 316
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 275
        ;  if time_out start
        ;info   275, 318
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=2
        ; No 2TEST: true.size=2 false.size=2
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__26
        ; line_number = 276
        ; call _uart_byte_put('@')
        ;info   276, 320
        movlw   64
        call    _uart_byte_put
        goto    main__27
        ; 2GOTO: Starting code 2
main__26:
        ; line_number = 278
        ; call _uart_hex_put(value)
        ;info   278, 323
        movf    main__value,w
        call    _uart_hex_put

main__27:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 275
        ;  if time_out done
        ; line_number = 267
        ;  loop_exactly 8 wrap-up
        decfsz  main__22,f
        goto    main__23
        ; line_number = 267
        ;  loop_exactly 8 done
        ; # Read the ack byte:
        ; line_number = 281
        ;  call bus_byte_receive()
        ;info   281, 327
        call    bus_byte_receive

        ; line_number = 283
        ;  call _uart_crlf_put()
        ;info   283, 328
        call    _uart_crlf_put
        ; line_number = 284
        ;  row := row + 1
        ;info   284, 329
        incf    main__row,f
        ; line_number = 285
        ;  low := low + 8
        ;info   285, 330
        movlw   8
        addwf   main__low,f
        goto    main__21
main__28:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 243
        ;  while row < 32 done
        ; Recombine size1 = 0 || size2 = 0
main__29:
        ; line_number = 240
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 286
        ; case 17
main__71:
        ; # Read:
        ; line_number = 288
        ;  call hex_word_get()
        ;info   288, 334
        call    hex_word_get
        ; line_number = 289
        ;  if end_of_line_get() start
        ;info   289, 335
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=5 false.size=0
        ; No 2TEST: true.size=5 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__30
        ; line_number = 290
        ; call _uart_hex_put(hex_high)
        ;info   290, 338
        movf    hex_high,w
        call    _uart_hex_put
        ; line_number = 291
        ;  call _uart_hex_put(hex_low)
        ;info   291, 340
        movf    hex_low,w
        call    _uart_hex_put
        ; line_number = 292
        ;  call _uart_crlf_put()
        ;info   292, 342
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__30:
        ; line_number = 289
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 293
        ; case 18
main__72:
        ; # Select:
        ; line_number = 295
        ;  node := hex_byte_get()
        ;info   295, 344
        call    hex_byte_get
        movwf   main__node
        ; line_number = 296
        ;  if end_of_line_get() start
        ;info   296, 346
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=47 false.size=0
        ; No 2TEST: true.size=47 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__40
        ; line_number = 297
        ; call _uart_crlf_put()
        ;info   297, 349
        call    _uart_crlf_put
        ; line_number = 298
        ;  call bus_select_send(node)
        ;info   298, 350
        movf    main__node,w
        call    bus_select_send
        ; line_number = 299
        ;  value := bus_byte_receive()
        ;info   299, 352
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 300
        ;  if time_out start
        ;info   300, 354
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__32
        ; line_number = 301
        ; call _uart_byte_put('@')
        ;info   301, 356
        movlw   64
        call    _uart_byte_put
        goto    main__33
        ; 2GOTO: Starting code 2
main__32:
        ; line_number = 303
        ; if bus_msb start
        ;info   303, 359
        ; =>bit_code_emit@symbol(): sym=bus_msb
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   bus_msb___byte, bus_msb___bit
        goto    main__31
        ; line_number = 304
        ; call _uart_byte_put('1')
        ;info   304, 361
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__31:
        ; line_number = 303
        ; if bus_msb done
        ; line_number = 305
        ; call _uart_hex_put(value)
        ;info   305, 363
        movf    main__value,w
        call    _uart_hex_put
main__33:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 300
        ;  if time_out done
        ; line_number = 306
        ; call _uart_byte_put(' ')
        ;info   306, 365
        movlw   32
        call    _uart_byte_put

        ; line_number = 308
        ;  value := bus_byte_receive()
        ;info   308, 367
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 309
        ;  if time_out start
        ;info   309, 369
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__35
        ; line_number = 310
        ; call _uart_byte_put('@')
        ;info   310, 371
        movlw   64
        call    _uart_byte_put
        goto    main__36
        ; 2GOTO: Starting code 2
main__35:
        ; line_number = 312
        ; if bus_msb start
        ;info   312, 374
        ; =>bit_code_emit@symbol(): sym=bus_msb
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   bus_msb___byte, bus_msb___bit
        goto    main__34
        ; line_number = 313
        ; call _uart_byte_put('1')
        ;info   313, 376
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__34:
        ; line_number = 312
        ; if bus_msb done
        ; line_number = 314
        ; call _uart_hex_put(value)
        ;info   314, 378
        movf    main__value,w
        call    _uart_hex_put
main__36:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 309
        ;  if time_out done
        ; line_number = 315
        ; call _uart_byte_put(' ')
        ;info   315, 380
        movlw   32
        call    _uart_byte_put
        ; line_number = 316
        ;  value := bus_byte_receive()
        ;info   316, 382
        call    bus_byte_receive
        movwf   main__value

        ; line_number = 318
        ;  if time_out start
        ;info   318, 384
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__38
        ; line_number = 319
        ; call _uart_byte_put('@')
        ;info   319, 386
        movlw   64
        call    _uart_byte_put
        goto    main__39
        ; 2GOTO: Starting code 2
main__38:
        ; line_number = 321
        ; if bus_msb start
        ;info   321, 389
        ; =>bit_code_emit@symbol(): sym=bus_msb
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   bus_msb___byte, bus_msb___bit
        goto    main__37
        ; line_number = 322
        ; call _uart_byte_put('1')
        ;info   322, 391
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__37:
        ; line_number = 321
        ; if bus_msb done
        ; line_number = 323
        ; call _uart_hex_put(value)
        ;info   323, 393
        movf    main__value,w
        call    _uart_hex_put
main__39:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 318
        ;  if time_out done
        ; line_number = 324
        ; call _uart_crlf_put()
        ;info   324, 395
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__40:
        ; line_number = 296
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 325
        ; case 19
main__73:
        ; # Test mode:
        ; line_number = 327
        ;  loop_forever start
main__41:
        ; line_number = 328
        ; call bus_select_send(8)
        ;info   328, 397
        movlw   8
        call    bus_select_send
        ; line_number = 329
        ;  loop_exactly 255 start
        ;info   329, 399
main__42 equ globals___0+34
        movlw   255
        movwf   main__42
main__43:
        ; line_number = 330
        ; delay 600 start
        ;info   330, 401
        ; Delay expression evaluates to 600
        ; line_number = 331
        ; do_nothing
        ;info   331, 401

        ; Delay 600 cycles
        ; Delay loop takes 150 * 4 = 600 cycles
        movlw   150
main__44:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    main__44
        ; line_number = 330
        ; delay 600 done
        ; line_number = 329
        ;  loop_exactly 255 wrap-up
        decfsz  main__42,f
        goto    main__43
        ; line_number = 329
        ;  loop_exactly 255 done
        ; line_number = 333
        ; call bus_byte_send(command & 0xf)
        ;info   333, 407
        movlw   15
        andwf   main__command,w
        call    bus_byte_send
        ; line_number = 334
        ;  command := command + 1
        ;info   334, 410
        incf    main__command,f
        ; line_number = 335
        ;  loop_exactly 255 start
        ;info   335, 411
main__45 equ globals___0+34
        movlw   255
        movwf   main__45
main__46:
        ; line_number = 336
        ; delay 600 start
        ;info   336, 413
        ; Delay expression evaluates to 600
        ; line_number = 337
        ; do_nothing
        ;info   337, 413
        ; Delay 600 cycles
        ; Delay loop takes 150 * 4 = 600 cycles
        movlw   150
main__47:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    main__47
        ; line_number = 336
        ; delay 600 done
        ; line_number = 335
        ;  loop_exactly 255 wrap-up
        decfsz  main__45,f
        goto    main__46
        ; line_number = 335
        ;  loop_exactly 255 done
        ; line_number = 338
        ; call _uart_byte_put('.')
        ;info   338, 419
        movlw   46
        call    _uart_byte_put

        ; line_number = 327
        ;  loop_forever wrap-up
        goto    main__41
        ; line_number = 327
        ;  loop_forever done
        goto    main__79
        ; line_number = 340
        ; case 22
main__74:
        ; # Write:
        ; line_number = 342
        ;  call hex_word_get()
        ;info   342, 423
        call    hex_word_get
        ; line_number = 343
        ;  value := hex_byte_get()
        ;info   343, 424
        call    hex_byte_get
        movwf   main__value
        ; line_number = 344
        ;  if end_of_line_get() start
        ;info   344, 426
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=7 false.size=0
        ; No 2TEST: true.size=7 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__48
        ; line_number = 345
        ; call _uart_hex_put(hex_high)
        ;info   345, 429
        movf    hex_high,w
        call    _uart_hex_put
        ; line_number = 346
        ;  call _uart_hex_put(hex_low)
        ;info   346, 431
        movf    hex_low,w
        call    _uart_hex_put
        ; line_number = 347
        ;  call _uart_hex_put(value)
        ;info   347, 433
        movf    main__value,w
        call    _uart_hex_put
        ; line_number = 348
        ;  call _uart_crlf_put()
        ;info   348, 435
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__48:
        ; line_number = 344
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 349
        ; case 23
main__75:
        ; # Transmit:
        ; line_number = 351
        ;  value := hex_byte_get()
        ;info   351, 437
        call    hex_byte_get
        movwf   main__value
        ; line_number = 352
        ;  if end_of_line_get() start
        ;info   352, 439
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=46 false.size=0
        ; No 2TEST: true.size=46 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__58
        ; #call _uart_hex_put(value)
        ; #call _uart_crlf_put()
        ; line_number = 355
        ;  call bus_byte_send(value)
        ;info   355, 442
        movf    main__value,w
        call    bus_byte_send

        ; line_number = 357
        ;  value := bus_byte_receive()
        ;info   357, 444
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 358
        ;  if time_out start
        ;info   358, 446
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__50
        ; line_number = 359
        ; call _uart_byte_put('@')
        ;info   359, 448
        movlw   64
        call    _uart_byte_put
        goto    main__51
        ; 2GOTO: Starting code 2
main__50:
        ; line_number = 361
        ; if bus_msb start
        ;info   361, 451
        ; =>bit_code_emit@symbol(): sym=bus_msb
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   bus_msb___byte, bus_msb___bit
        goto    main__49
        ; line_number = 362
        ; call _uart_byte_put('1')
        ;info   362, 453
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__49:
        ; line_number = 361
        ; if bus_msb done
        ; line_number = 363
        ; call _uart_hex_put(value)
        ;info   363, 455
        movf    main__value,w
        call    _uart_hex_put
main__51:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 358
        ;  if time_out done
        ; line_number = 364
        ; call _uart_byte_put(' ')
        ;info   364, 457
        movlw   32
        call    _uart_byte_put

        ; line_number = 366
        ;  value := bus_byte_receive()
        ;info   366, 459
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 367
        ;  if time_out start
        ;info   367, 461
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__53
        ; line_number = 368
        ; call _uart_byte_put('@')
        ;info   368, 463
        movlw   64
        call    _uart_byte_put
        goto    main__54
        ; 2GOTO: Starting code 2
main__53:
        ; line_number = 370
        ; if bus_msb start
        ;info   370, 466
        ; =>bit_code_emit@symbol(): sym=bus_msb
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   bus_msb___byte, bus_msb___bit
        goto    main__52
        ; line_number = 371
        ; call _uart_byte_put('1')
        ;info   371, 468
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__52:
        ; line_number = 370
        ; if bus_msb done
        ; line_number = 372
        ; call _uart_hex_put(value)
        ;info   372, 470
        movf    main__value,w
        call    _uart_hex_put
main__54:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 367
        ;  if time_out done
        ; line_number = 373
        ; call _uart_byte_put(' ')
        ;info   373, 472
        movlw   32
        call    _uart_byte_put

        ; line_number = 375
        ;  value := bus_byte_receive()
        ;info   375, 474
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 376
        ;  if time_out start
        ;info   376, 476
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=2 false.size=6
        ; No 2TEST: true.size=2 false.size=6
        ; 2GOTO: Single test with two GOTO's
        btfss   time_out___byte, time_out___bit
        goto    main__56
        ; line_number = 377
        ; call _uart_byte_put('@')
        ;info   377, 478
        movlw   64
        call    _uart_byte_put
        goto    main__57
        ; 2GOTO: Starting code 2
main__56:
        ; line_number = 379
        ; if bus_msb start
        ;info   379, 481
        ; =>bit_code_emit@symbol(): sym=bus_msb
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   bus_msb___byte, bus_msb___bit
        goto    main__55
        ; line_number = 380
        ; call _uart_byte_put('1')
        ;info   380, 483
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__55:
        ; line_number = 379
        ; if bus_msb done
        ; line_number = 381
        ; call _uart_hex_put(value)
        ;info   381, 485
        movf    main__value,w
        call    _uart_hex_put

main__57:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 376
        ;  if time_out done
        ; line_number = 383
        ; call _uart_crlf_put()
        ;info   383, 487
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__58:
        ; line_number = 352
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 384
        ; case 25
main__76:
        ; # Sweep bus looking for modules:
        ; line_number = 386
        ;  if end_of_line_get() start
        ;info   386, 489
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=20 false.size=0
        ; No 2TEST: true.size=20 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   end_of_line_get__0return___byte, end_of_line_get__0return___bit
        goto    main__62
        ; line_number = 387
        ; node := 1
        ;info   387, 492
        movlw   1
        movwf   main__node
        ; line_number = 388
        ;  while node != 0 start
main__59:
        ;info   388, 494
        ; Left minus Right
        movf    main__node,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=0 false.size=15
        ; No 2TEST: true.size=0 false.size=15
        ; 1GOTO: Single test with GOTO
        btfsc   __z___byte, __z___bit
        goto    main__61
        ; line_number = 389
        ; call bus_select_send(node)
        ;info   389, 497
        movf    main__node,w
        call    bus_select_send
        ; line_number = 390
        ;  value := bus_byte_receive()
        ;info   390, 499
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 391
        ;  value := bus_byte_receive()
        ;info   391, 501
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 392
        ;  if !time_out start
        ;info   392, 503
        ; =>bit_code_emit@symbol(): sym=time_out
        ; No 1TEST: true.size=0 false.size=5
        ; No 2TEST: true.size=0 false.size=5
        ; 1GOTO: Single test with GOTO
        btfsc   time_out___byte, time_out___bit
        goto    main__60
        ; line_number = 393
        ; call _uart_hex_put(node)
        ;info   393, 505
        movf    main__node,w
        call    _uart_hex_put
        ; line_number = 394
        ;  call _uart_byte_put(':')
        ;info   394, 507
        movlw   58
        call    _uart_byte_put
        ; line_number = 395
        ;  call id_dump()
        ;info   395, 509
        call    id_dump
main__60:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 392
        ;  if !time_out done
        ; line_number = 396
        ; node := node + 1
        ;info   396, 510
        incf    main__node,f
        goto    main__59
main__61:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 388
        ;  while node != 0 done
        ; Recombine size1 = 0 || size2 = 0
main__62:
        ; line_number = 386
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 397
        ; default
main__77:
        ; # Command not implemented:
        ; line_number = 399
        ;  call _uart_byte_put('?')
        ;info   399, 513
        movlw   63
        call    _uart_byte_put
        ; line_number = 400
        ;  call _uart_crlf_put()
        ;info   400, 515
        call    _uart_crlf_put
main__79:
        ; line_number = 182
        ;  switch command - 'A' done
main__82:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; Recombine code1_bit_states != code2_bit_states
        ; 2GOTO: No goto needed; true= false=main__80 true_size=373 false_size=1
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 180
        ; if 'A' <= command && command <= 'Z' done
        ; # Provide a prompt:
        ; line_number = 414
        ;  call _uart_byte_put('>')
        ;info   414, 516
        movlw   62
        call    _uart_byte_put


main__104:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 122
        ;  if command@7 done
        ; line_number = 115
        ;  loop_forever wrap-up
        goto    main__3
        ; line_number = 115
        ;  loop_forever done
        ; delay after procedure statements=non-uniform




        ; line_number = 417
        ;info   417, 519
        ; procedure id_dump
id_dump:
        ; arguments_none
        ; line_number = 419
        ;  returns_nothing

        ; # This procedure will print out the id information for the
        ; # currently selected module.

        ; line_number = 424
        ;  local value byte
id_dump__value equ globals___0+24

        ; # Reset the id index:
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 427
        ;  value := bus_byte_send_receive(0xfe)
        ;info   427, 519
        movlw   254
        call    bus_byte_send_receive
        movwf   id_dump__value

        ; # Read the fixed part:
        ; line_number = 430
        ;  loop_exactly 5 start
        ;info   430, 522
id_dump__1 equ globals___0+36
        movlw   5
        movwf   id_dump__1
id_dump__2:
        ; line_number = 431
        ; value := bus_byte_send_receive(0xfd)
        ;info   431, 524
        movlw   253
        call    bus_byte_send_receive
        movwf   id_dump__value
        ; line_number = 432
        ;  call _uart_hex_put(value)
        ;info   432, 527
        movf    id_dump__value,w
        call    _uart_hex_put
        ; line_number = 433
        ;  call _uart_space_put()
        ;info   433, 529
        call    _uart_space_put


        ; line_number = 430
        ;  loop_exactly 5 wrap-up
        decfsz  id_dump__1,f
        goto    id_dump__2
        ; line_number = 430
        ;  loop_exactly 5 done
        ; # Dump the name string:
        ; line_number = 437
        ;  if value & 2 != 0 start
        ;info   437, 532
        ; Left minus Right
        movlw   2
        andwf   id_dump__value,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; 1TEST: Single test with code in skip slot
        btfss   __z___byte, __z___bit
        ; line_number = 438
        ; call string_dump()
        ;info   438, 535
        call    string_dump

        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 437
        ;  if value & 2 != 0 done
        ; # Dump the vendor string:
        ; line_number = 441
        ;  if value & 1 != 0 start
        ;info   441, 536
        ; Left minus Right
        movlw   1
        andwf   id_dump__value,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; 1TEST: Single test with code in skip slot
        btfss   __z___byte, __z___bit
        ; line_number = 442
        ; call string_dump()
        ;info   442, 539
        call    string_dump

        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 441
        ;  if value & 1 != 0 done
        ; line_number = 444
        ; call _uart_crlf_put()
        ;info   444, 540
        call    _uart_crlf_put


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




        ; line_number = 447
        ;info   447, 542
        ; procedure string_dump
string_dump:
        ; arguments_none
        ; line_number = 449
        ;  returns_nothing

        ; # This procedure will dump a string from the id information.

        ; line_number = 453
        ;  local length byte
string_dump__length equ globals___0+25

        ; # We have a vendor string; now read the length:
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 456
        ;  call _uart_space_put()
        ;info   456, 542
        call    _uart_space_put
        ; line_number = 457
        ;  length := bus_byte_send_receive(0xfd)
        ;info   457, 543
        movlw   253
        call    bus_byte_send_receive
        movwf   string_dump__length
        ; line_number = 458
        ;  call _uart_hex_put(length)
        ;info   458, 546
        movf    string_dump__length,w
        call    _uart_hex_put
        ; line_number = 459
        ;  call _uart_byte_put(':')
        ;info   459, 548
        movlw   58
        call    _uart_byte_put

        ; # Print out the vendor string:
        ; line_number = 462
        ;  call _uart_byte_put('"')
        ;info   462, 550
        movlw   34
        call    _uart_byte_put
        ; line_number = 463
        ;  loop_exactly length start
        ;info   463, 552
string_dump__1 equ globals___0+37
        movf    string_dump__length,w
        movwf   string_dump__1
string_dump__2:
        ; line_number = 464
        ; call _uart_byte_put(bus_byte_send_receive(0xfd))
        ;info   464, 554
        movlw   253
        call    bus_byte_send_receive
        call    _uart_byte_put
        ; line_number = 463
        ;  loop_exactly length wrap-up
        decfsz  string_dump__1,f
        goto    string_dump__2
        ; line_number = 463
        ;  loop_exactly length done
        ; line_number = 465
        ; call _uart_byte_put('"')
        ;info   465, 559
        movlw   34
        call    _uart_byte_put


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




        ; line_number = 468
        ;info   468, 562
        ; procedure bus_byte_send_receive
bus_byte_send_receive:
        ; Last argument is sitting in W; save into argument variable
        movwf   bus_byte_send_receive__value
        ; delay=4294967295
        ; line_number = 469
        ; argument value byte
bus_byte_send_receive__value equ globals___0+26
        ; line_number = 470
        ;  returns byte

        ; # This procedure will send {value} to the currently selected module
        ; # and return the response.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 475
        ;  call bus_byte_send(value)
        ;info   475, 563
        movf    bus_byte_send_receive__value,w
        call    bus_byte_send
        ; line_number = 476
        ;  call bus_byte_receive()
        ;info   476, 565
        call    bus_byte_receive
        ; line_number = 477
        ;  return bus_byte_receive() start
        ; line_number = 477
        ;info   477, 566
        call    bus_byte_receive
        return  
        ; line_number = 477
        ;  return bus_byte_receive() done


        ; delay after procedure statements=non-uniform




        ; line_number = 480
        ;info   480, 568
        ; procedure bus_byte_send
bus_byte_send:
        ; Last argument is sitting in W; save into argument variable
        movwf   bus_byte_send__value
        ; delay=4294967295
        ; line_number = 481
        ; argument value byte
bus_byte_send__value equ globals___0+27
        ; line_number = 482
        ;  returns_nothing

        ; # This procedure will cause a {value} byte to be sent to the bus.

        ; #call _uart_byte_put('{')
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 487
        ;  loop_exactly 4 start
        ;info   487, 569
bus_byte_send__1 equ globals___0+38
        movlw   4
        movwf   bus_byte_send__1
bus_byte_send__2:
        ; line_number = 488
        ; call shift2(value & 3)
        ;info   488, 571
        movlw   3
        andwf   bus_byte_send__value,w
        call    shift2
        ; line_number = 489
        ;  value := value >> 2
        ;info   489, 574
        ; Assignment of variable to self (no code needed)
        rrf     bus_byte_send__value,f
        rrf     bus_byte_send__value,f
        movlw   63
        andwf   bus_byte_send__value,f
        ; line_number = 487
        ;  loop_exactly 4 wrap-up
        decfsz  bus_byte_send__1,f
        goto    bus_byte_send__2
        ; line_number = 487
        ;  loop_exactly 4 done
        ; line_number = 490
        ; call shift2(4)
        ;info   490, 580
        movlw   4
        call    shift2
        ; #call _uart_byte_put('}')


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




        ; line_number = 494
        ;info   494, 583
        ; procedure bus_select_send
bus_select_send:
        ; Last argument is sitting in W; save into argument variable
        movwf   bus_select_send__node
        ; delay=4294967295
        ; line_number = 495
        ; argument node byte
bus_select_send__node equ globals___0+28
        ; line_number = 496
        ;  returns_nothing

        ; # This procedure will cause a {node} select byte to be sent.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 500
        ;  loop_exactly 4 start
        ;info   500, 584
bus_select_send__1 equ globals___0+39
        movlw   4
        movwf   bus_select_send__1
bus_select_send__2:
        ; line_number = 501
        ; call shift2(node & 3)
        ;info   501, 586
        movlw   3
        andwf   bus_select_send__node,w
        call    shift2
        ; line_number = 502
        ;  node := node >> 2
        ;info   502, 589
        ; Assignment of variable to self (no code needed)
        rrf     bus_select_send__node,f
        rrf     bus_select_send__node,f
        movlw   63
        andwf   bus_select_send__node,f
        ; line_number = 500
        ;  loop_exactly 4 wrap-up
        decfsz  bus_select_send__1,f
        goto    bus_select_send__2
        ; line_number = 500
        ;  loop_exactly 4 done
        ; line_number = 503
        ; call shift2(5)
        ;info   503, 595
        movlw   5
        call    shift2


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




        ; line_number = 506
        ;info   506, 598
        ; procedure bus_byte_receive
bus_byte_receive:
        ; arguments_none
        ; line_number = 508
        ;  returns byte

        ; # This procedure receive a byte from the bus processor.
        ; # {time_out} is set if no byte is received in a reasonable
        ; # amount of time.

        ; #call _uart_byte_put('[')
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 515
        ;  time_out := _false
        ;info   515, 598
        bcf     time_out___byte, time_out___bit
        ; # Where does 15*20 come from?  This seems to be the minimum
        ; # timeout that works with programming a PIC16F876.
        ; line_number = 518
        ;  loop_exactly 15 start
        ;info   518, 599
bus_byte_receive__1 equ globals___0+40
        movlw   15
        movwf   bus_byte_receive__1
bus_byte_receive__2:
        ; line_number = 519
        ; loop_exactly 20 start
        ;info   519, 601
bus_byte_receive__3 equ globals___0+41
        movlw   20
        movwf   bus_byte_receive__3
bus_byte_receive__4:
        ; line_number = 520
        ; call shift2(6)
        ;info   520, 603
        movlw   6
        call    shift2
        ; line_number = 521
        ;  if !(bus_shift@1) start
        ;info   521, 605
bus_byte_receive__select__8___byte equ bus_shift
bus_byte_receive__select__8___bit equ 1
        ; =>bit_code_emit@symbol(): sym=bus_byte_receive__select__8
        ; No 1TEST: true.size=0 false.size=9
        ; No 2TEST: true.size=0 false.size=9
        ; 1GOTO: Single test with GOTO
        btfsc   bus_byte_receive__select__8___byte, bus_byte_receive__select__8___bit
        goto    bus_byte_receive__9
        ; # We got one:
        ; line_number = 523
        ;  bus_msb := _false
        ;info   523, 607
        bcf     bus_msb___byte, bus_msb___bit
        ; line_number = 524
        ;  if bus_shift@0 start
        ;info   524, 608
bus_byte_receive__select__5___byte equ bus_shift
bus_byte_receive__select__5___bit equ 0
        ; =>bit_code_emit@symbol(): sym=bus_byte_receive__select__5
        ; 1TEST: Single test with code in skip slot
        btfsc   bus_byte_receive__select__5___byte, bus_byte_receive__select__5___bit
        ; line_number = 525
        ; bus_msb := _true
        ;info   525, 609
        bsf     bus_msb___byte, bus_msb___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 524
        ;  if bus_shift@0 done
        ; line_number = 526
        ; loop_exactly 4 start
        ;info   526, 610
bus_byte_receive__6 equ globals___0+42
        movlw   4
        movwf   bus_byte_receive__6
bus_byte_receive__7:
        ; line_number = 527
        ; call shift2(0)
        ;info   527, 612
        movlw   0
        call    shift2
        ; line_number = 526
        ; loop_exactly 4 wrap-up
        decfsz  bus_byte_receive__6,f
        goto    bus_byte_receive__7
        ; line_number = 526
        ; loop_exactly 4 done
        ; #call _uart_byte_put(']')
        ; line_number = 529
        ;  return bus_shift start
        ; line_number = 529
        ;info   529, 616
        movf    bus_shift,w
        return  
        ; line_number = 529
        ;  return bus_shift done
bus_byte_receive__9:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 521
        ;  if !(bus_shift@1) done
        ; line_number = 519
        ; loop_exactly 20 wrap-up
        decfsz  bus_byte_receive__3,f
        goto    bus_byte_receive__4
        ; line_number = 519
        ; loop_exactly 20 done
        ; line_number = 518
        ;  loop_exactly 15 wrap-up
        decfsz  bus_byte_receive__1,f
        goto    bus_byte_receive__2
        ; line_number = 518
        ;  loop_exactly 15 done
        ; line_number = 530
        ; time_out := _true
        ;info   530, 622
        bsf     time_out___byte, time_out___bit
        ; #call _uart_byte_put(']')
        ; line_number = 532
        ;  return 0 start
        ; line_number = 532
        ;info   532, 623
        retlw   0
        ; line_number = 532
        ;  return 0 done


        ; delay after procedure statements=non-uniform




        ; line_number = 535
        ;info   535, 624
        ; procedure shift2
shift2:
        ; Last argument is sitting in W; save into argument variable
        movwf   shift2__value
        ; delay=4294967295
        ; line_number = 536
        ; argument value byte
shift2__value equ globals___0+29
        ; line_number = 537
        ;  returns_nothing

        ; # This procedure will cause 3 bits to be sent to the bus processor
        ; # and 2 bits returned from the bus processor into {bus_shift}.

        ; #call _uart_byte_put('<')

        ; # Set the 3 bits to send up.  The two lower bits are data and
        ; # the 3rd bit is STROBE.
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 546
        ;  p4 := _false
        ;info   546, 625
        bcf     p4___byte, p4___bit
        ; line_number = 547
        ;  p3 := _false
        ;info   547, 626
        bcf     p3___byte, p3___bit
        ; line_number = 548
        ;  p2 := _false
        ;info   548, 627
        bcf     p2___byte, p2___bit

        ; line_number = 550
        ;  if value@2 start
        ;info   550, 628
shift2__select__1___byte equ shift2__value
shift2__select__1___bit equ 2
        ; =>bit_code_emit@symbol(): sym=shift2__select__1
        ; 1TEST: Single test with code in skip slot
        btfsc   shift2__select__1___byte, shift2__select__1___bit
        ; line_number = 551
        ; p4 := _true
        ;info   551, 629
        bsf     p4___byte, p4___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 550
        ;  if value@2 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')
        ; line_number = 555
        ;  if value@1 start
        ;info   555, 630
shift2__select__2___byte equ shift2__value
shift2__select__2___bit equ 1
        ; =>bit_code_emit@symbol(): sym=shift2__select__2
        ; 1TEST: Single test with code in skip slot
        btfsc   shift2__select__2___byte, shift2__select__2___bit
        ; line_number = 556
        ; p3 := _true
        ;info   556, 631
        bsf     p3___byte, p3___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 555
        ;  if value@1 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')
        ; line_number = 560
        ;  if value@0 start
        ;info   560, 632
shift2__select__3___byte equ shift2__value
shift2__select__3___bit equ 0
        ; =>bit_code_emit@symbol(): sym=shift2__select__3
        ; 1TEST: Single test with code in skip slot
        btfsc   shift2__select__3___byte, shift2__select__3___bit
        ; line_number = 561
        ; p2 := _true
        ;info   561, 633
        bsf     p2___byte, p2___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 560
        ;  if value@0 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')

        ; # Let the bus processor know that we have some data:
        ; line_number = 567
        ;  if p6 start
        ;info   567, 634
        ; =>bit_code_emit@symbol(): sym=p6
        ; No 1TEST: true.size=3 false.size=3
        ; No 2TEST: true.size=3 false.size=3
        ; 2GOTO: Single test with two GOTO's
        btfss   p6___byte, p6___bit
        goto    shift2__6
        ; #call _uart_byte_put('L')
        ; line_number = 569
        ;  p6 := _false
        ;info   569, 636
        bcf     p6___byte, p6___bit
        ; # Wait until the bus processor has a response.
        ; line_number = 571
        ;  while p5 start
shift2__5:
        ;info   571, 637
        ; =>bit_code_emit@symbol(): sym=p5
        ; 1TEST: Single test with code in skip slot
        btfsc   p5___byte, p5___bit
        ; line_number = 572
        ; do_nothing
        ;info   572, 638
        goto    shift2__5
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 571
        ;  while p5 done
        goto    shift2__7
        ; 2GOTO: Starting code 2
shift2__6:
        ; #call _uart_byte_put('H')
        ; line_number = 575
        ;  p6 := _true
        ;info   575, 640
        bsf     p6___byte, p6___bit
        ; # Wait until the bus processor has a response.
        ; line_number = 577
        ;  while !p5 start
shift2__4:
        ;info   577, 641
        ; =>bit_code_emit@symbol(): sym=p5
        ; 1TEST: Single test with code in skip slot
        btfss   p5___byte, p5___bit
        ; line_number = 578
        ; do_nothing
        ;info   578, 642

        goto    shift2__4
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 577
        ;  while !p5 done
shift2__7:
        ; 2GOTO: code1 final bitstates:(data:X0=cu=>X0 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:X0=cu=>X0 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 567
        ;  if p6 done
        ; # The bus processor has a response.  Now grab the data.
        ; line_number = 581
        ;  bus_shift := bus_shift << 2
        ;info   581, 643
        ; Assignment of variable to self (no code needed)
        rlf     bus_shift,f
        rlf     bus_shift,f
        movlw   252
        andwf   bus_shift,f
        ; line_number = 582
        ;  if p1 start
        ;info   582, 647
        ; =>bit_code_emit@symbol(): sym=p1
        ; 1TEST: Single test with code in skip slot
        btfsc   p1___byte, p1___bit
        ; line_number = 583
        ; bus_shift@1 := _true
        ;info   583, 648
shift2__select__8___byte equ bus_shift
shift2__select__8___bit equ 1
        bsf     shift2__select__8___byte, shift2__select__8___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 582
        ;  if p1 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')
        ; line_number = 587
        ;  if p0 start
        ;info   587, 649
        ; =>bit_code_emit@symbol(): sym=p0
        ; 1TEST: Single test with code in skip slot
        btfsc   p0___byte, p0___bit
        ; line_number = 588
        ; bus_shift@0 := _true
        ;info   588, 650
shift2__select__9___byte equ bus_shift
shift2__select__9___bit equ 0
        bsf     shift2__select__9___byte, shift2__select__9___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 587
        ;  if p0 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')

        ; #call _uart_byte_put('>')


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




        ; line_number = 596
        ;info   596, 652
        ; procedure character_get
character_get:
        ; arguments_none
        ; line_number = 598
        ;  returns byte

        ; # This procedure will get a character from the user and echo it.
        ; # If the user types '\r\', an extra line feed is output and
        ; # the global {end_of_line} bit is set.

        ; line_number = 604
        ;  local character byte
character_get__character equ globals___0+30

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 606
        ;  character := _uart_byte_get()
        ;info   606, 652
        call    _uart_byte_get
        movwf   character_get__character
        ; line_number = 607
        ;  call _uart_byte_put(character)
        ;info   607, 654
        movf    character_get__character,w
        call    _uart_byte_put
        ; line_number = 608
        ;  if character = '\r\' start
        ;info   608, 656
        ; Left minus Right
        movlw   243
        addwf   character_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=3 false.size=0
        ; No 2TEST: true.size=3 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   __z___byte, __z___bit
        goto    character_get__1
        ; line_number = 609
        ; end_of_line := _true
        ;info   609, 660
        bsf     end_of_line___byte, end_of_line___bit
        ; line_number = 610
        ;  call _uart_byte_put('\n\')
        ;info   610, 661
        movlw   10
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
character_get__1:
        ; line_number = 608
        ;  if character = '\r\' done
        ; line_number = 611
        ; return character start
        ; line_number = 611
        ;info   611, 663
        movf    character_get__character,w
        return  
        ; line_number = 611
        ; return character done


        ; delay after procedure statements=non-uniform




end_of_line_get__0return___byte equ globals___0+79
end_of_line_get__0return___bit equ 6
        ; line_number = 614
        ;info   614, 665
        ; procedure end_of_line_get
end_of_line_get:
        ; arguments_none
        ; line_number = 616
        ;  returns bit

        ; # This procedure will return 1 if end of line has been reached
        ; # without error; otherwise 0 is returned and an error exclamation
        ; # point ('!') is output.

        ; line_number = 622
        ;  local character byte
end_of_line_get__character equ globals___0+31

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 624
        ;  if error start
        ;info   624, 665
        ; =>bit_code_emit@symbol(): sym=error
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   error___byte, error___bit
        goto    end_of_line_get__1
        ; line_number = 625
        ; return 0 start
        ; line_number = 625
        ;info   625, 667
        bcf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
        return  
        ; line_number = 625
        ; return 0 done
        ; Recombine size1 = 0 || size2 = 0
end_of_line_get__1:
        ; line_number = 624
        ;  if error done
        ; line_number = 626
        ; while !end_of_line start
end_of_line_get__2:
        ;info   626, 669
        ; =>bit_code_emit@symbol(): sym=end_of_line
        ; No 1TEST: true.size=0 false.size=21
        ; No 2TEST: true.size=0 false.size=21
        ; 1GOTO: Single test with GOTO
        btfsc   end_of_line___byte, end_of_line___bit
        goto    end_of_line_get__5
        ; line_number = 627
        ; character := character_get()
        ;info   627, 671
        call    character_get
        movwf   end_of_line_get__character
        ; line_number = 628
        ;  if character != '\r\' && character != '\t\' && character != ' ' start
        ;info   628, 673
        ; Left minus Right
        movlw   243
        addwf   end_of_line_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=1 false.size=14
        ; No 2TEST: true.size=1 false.size=14
        ; 2GOTO: Single test with two GOTO's
        btfsc   __z___byte, __z___bit
        goto    end_of_line_get__3
        ; Recombine code1_bit_states != code2_bit_states
        ; Recombine code1_bit_states != code2_bit_states
        ; Left minus Right
        movlw   247
        addwf   end_of_line_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=1 false.size=10
        ; No 2TEST: true.size=1 false.size=10
        ; 2GOTO: Single test with two GOTO's
        btfsc   __z___byte, __z___bit
        goto    end_of_line_get__3
        ; Recombine code1_bit_states != code2_bit_states
        ; &&||: index=2 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; Left minus Right
        movlw   224
        addwf   end_of_line_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=0 false.size=6
        ; No 2TEST: true.size=0 false.size=6
        ; 1GOTO: Single test with GOTO
        btfsc   __z___byte, __z___bit
        goto    end_of_line_get__4
        ; line_number = 629
        ; error := _true
        ;info   629, 685
        bsf     error___byte, error___bit
        ; line_number = 630
        ;  call _uart_byte_put('!')
        ;info   630, 686
        movlw   33
        call    _uart_byte_put
        ; line_number = 631
        ;  call _uart_crlf_put()
        ;info   631, 688
        call    _uart_crlf_put
        ; line_number = 632
        ;  return 0 start
        ; line_number = 632
        ;info   632, 689
        bcf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
        return  
        ; line_number = 632
        ;  return 0 done
end_of_line_get__4:
end_of_line_get__3:
        ; Recombine code1_bit_states != code2_bit_states
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=1 new_delay=4294967295 goto_delay=4294967295
        ; 2GOTO: No goto needed; true=end_of_line_get__3 false= true_size=1 false_size=10
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; 2GOTO: No goto needed; true=end_of_line_get__3 false= true_size=1 false_size=14
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 628
        ;  if character != '\r\' && character != '\t\' && character != ' ' done
        goto    end_of_line_get__2
end_of_line_get__5:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 626
        ; while !end_of_line done
        ; line_number = 633
        ; return 1 start
        ; line_number = 633
        ;info   633, 692
        bsf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
        return  
        ; line_number = 633
        ; return 1 done


        ; delay after procedure statements=non-uniform




        ; line_number = 636
        ;info   636, 694
        ; procedure hex_byte_get
hex_byte_get:
        ; arguments_none
        ; line_number = 638
        ;  returns byte

        ; # This procedure will get a hex byte from the user.  Zero, one or
        ; # more spaces and tabs may preceed the hex byte.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 643
        ;  call hex_word_get()
        ;info   643, 694
        call    hex_word_get
        ; line_number = 644
        ;  return hex_low start
        ; line_number = 644
        ;info   644, 695
        movf    hex_low,w
        return  
        ; line_number = 644
        ;  return hex_low done


        ; delay after procedure statements=non-uniform




        ; line_number = 647
        ;info   647, 697
        ; procedure hex_word_get
hex_word_get:
        ; arguments_none
        ; line_number = 649
        ;  returns_nothing

        ; # This procedure will get a 16-bit hexadecimal value and return
        ; # the result in {hex_high} and {hex_low}.

        ; line_number = 654
        ;  local character byte
hex_word_get__character equ globals___0+32
        ; line_number = 655
        ;  local digit byte
hex_word_get__digit equ globals___0+33

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 657
        ;  hex_high := 0
        ;info   657, 697
        clrf    hex_high
        ; line_number = 658
        ;  hex_low := 0
        ;info   658, 698
        clrf    hex_low
        ; line_number = 659
        ;  character := ' '
        ;info   659, 699
        movlw   32
        movwf   hex_word_get__character
        ; line_number = 660
        ;  if !end_of_line start
        ;info   660, 701
        ; =>bit_code_emit@symbol(): sym=end_of_line
        ; No 1TEST: true.size=0 false.size=79
        ; No 2TEST: true.size=0 false.size=79
        ; 1GOTO: Single test with GOTO
        btfsc   end_of_line___byte, end_of_line___bit
        goto    hex_word_get__18
        ; line_number = 661
        ; while character = ' ' || character = '\t\' start
hex_word_get__1:
        ;info   661, 703
        ; Left minus Right
        movlw   224
        addwf   hex_word_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=1 false.size=7
        ; No 2TEST: true.size=1 false.size=7
        ; 2GOTO: Single test with two GOTO's
        btfsc   __z___byte, __z___bit
        goto    hex_word_get__2
        ; Recombine code1_bit_states != code2_bit_states
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; Left minus Right
        movlw   247
        addwf   hex_word_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=3 false.size=0
        ; No 2TEST: true.size=3 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   __z___byte, __z___bit
        goto    hex_word_get__3
hex_word_get__2:
        ; line_number = 662
        ; character := character_get()
        ;info   662, 711
        call    character_get
        movwf   hex_word_get__character

        goto    hex_word_get__1
        ; Recombine size1 = 0 || size2 = 0
hex_word_get__3:
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; 2GOTO: No goto needed; true=hex_word_get__2 false= true_size=1 false_size=7
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 661
        ; while character = ' ' || character = '\t\' done
        ; line_number = 664
        ; loop_forever start
hex_word_get__4:
        ; line_number = 665
        ; if '0' <= character && character <= '9' start
        ;info   665, 714
        movlw   48
        subwf   hex_word_get__character,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=49 false.size=1
        ; No 2TEST: true.size=49 false.size=1
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    hex_word_get__12
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   57
        subwf   hex_word_get__character,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=39 false.size=3
        ; No 2TEST: true.size=39 false.size=3
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    hex_word_get__13
hex_word_get__12:
        ; line_number = 667
        ;info   667, 724
        movlw   65
        subwf   hex_word_get__character,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=35 false.size=1
        ; No 2TEST: true.size=35 false.size=1
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    hex_word_get__9
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   70
        subwf   hex_word_get__character,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=25 false.size=3
        ; No 2TEST: true.size=25 false.size=3
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    hex_word_get__10
hex_word_get__9:
        ; line_number = 669
        ;info   669, 734
        movlw   97
        subwf   hex_word_get__character,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=21 false.size=1
        ; No 2TEST: true.size=21 false.size=1
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    hex_word_get__6
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   102
        subwf   hex_word_get__character,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=11 false.size=3
        ; No 2TEST: true.size=11 false.size=3
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    hex_word_get__7
hex_word_get__6:
        ; line_number = 671
        ;info   671, 744
        ; Left minus Right
        movlw   224
        addwf   hex_word_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=1 false.size=7
        ; No 2TEST: true.size=1 false.size=7
        ; 2GOTO: Single test with two GOTO's
        btfsc   __z___byte, __z___bit
        goto    hex_word_get__5
        ; Recombine code1_bit_states != code2_bit_states
        ; Recombine code1_bit_states != code2_bit_states
        ; Left minus Right
        movlw   247
        addwf   hex_word_get__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=1 false.size=3
        ; No 2TEST: true.size=1 false.size=3
        ; 2GOTO: Single test with two GOTO's
        btfsc   __z___byte, __z___bit
        goto    hex_word_get__5
        ; Recombine code1_bit_states != code2_bit_states
        ; &&||: index=2 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; =>bit_code_emit@symbol(): sym=end_of_line
        ; 1TEST: Single test with code in skip slot
        btfss   end_of_line___byte, end_of_line___bit
        ; line_number = 674
        ; error := _true
        ;info   674, 753
        bsf     error___byte, error___bit
        ; line_number = 675
        ;  return start
        ; line_number = 675
        ;info   675, 754
hex_word_get__5:
        ; line_number = 672
        ; return start
        ; line_number = 672
        ;info   672, 754
        retlw   0
        ; line_number = 672
        ; return done
        ; line_number = 675
        ;  return done
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=1 new_delay=4294967295 goto_delay=4294967295
        ; 2GOTO: No goto needed; true=hex_word_get__5 false= true_size=1 false_size=3
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; 2GOTO: No goto needed; true=hex_word_get__5 false= true_size=1 false_size=7
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        goto    hex_word_get__8
        ; 2GOTO: Starting code 2
hex_word_get__7:
        ; line_number = 670
        ; digit := character + (10 - 'a')
        ;info   670, 756
        movlw   169
        addwf   hex_word_get__character,w
        movwf   hex_word_get__digit
hex_word_get__8:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; Recombine code1_bit_states != code2_bit_states
        ; 2GOTO: No goto needed; true= false=hex_word_get__6 true_size=21 false_size=1
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        goto    hex_word_get__11
        ; 2GOTO: Starting code 2
hex_word_get__10:
        ; line_number = 668
        ; digit := character + (10 - 'A')
        ;info   668, 760
        movlw   201
        addwf   hex_word_get__character,w
        movwf   hex_word_get__digit
hex_word_get__11:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; Recombine code1_bit_states != code2_bit_states
        ; 2GOTO: No goto needed; true= false=hex_word_get__9 true_size=35 false_size=1
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        goto    hex_word_get__14
        ; 2GOTO: Starting code 2
hex_word_get__13:
        ; line_number = 666
        ; digit := character - '0'
        ;info   666, 764
        movlw   208
        addwf   hex_word_get__character,w
        movwf   hex_word_get__digit
hex_word_get__14:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; Recombine code1_bit_states != code2_bit_states
        ; 2GOTO: No goto needed; true= false=hex_word_get__12 true_size=49 false_size=1
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 665
        ; if '0' <= character && character <= '9' done
        ; line_number = 676
        ; hex_high := (hex_high << 4) | (hex_low >> 4)
        ;info   676, 767
hex_word_get__15 equ globals___0+43
        swapf   hex_high,w
        movwf   hex_word_get__15
        movlw   240
        andwf   hex_word_get__15,f
hex_word_get__16 equ globals___0+44
        swapf   hex_low,w
        andlw   15
        iorwf   hex_word_get__15,w
        movwf   hex_high
        ; line_number = 677
        ;  hex_low := (hex_low << 4) | digit
        ;info   677, 775
hex_word_get__17 equ globals___0+44
        swapf   hex_low,w
        andlw   240
        iorwf   hex_word_get__digit,w
        movwf   hex_low
        ; line_number = 678
        ;  character := character_get()
        ;info   678, 779
        call    character_get
        movwf   hex_word_get__character

        ; line_number = 664
        ; loop_forever wrap-up
        goto    hex_word_get__4
        ; line_number = 664
        ; loop_forever done
hex_word_get__18:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 660
        ;  if !end_of_line done
        ; delay after procedure statements=non-uniform
        ; Implied return
        retlw   0





        ; Appending 7 delayed procedures to code bank 0
        ; buffer = '_uart'
        ; line_number = 7
        ;info   7, 783
        ; procedure _uart_byte_safe_get
_uart_byte_safe_get:
        ; arguments_none
        ; line_number = 9
        ;  returns byte

        ; # This procedure will the next byte from UART.  If no byte
        ; # received in a reasonable time, 0xfc is returned.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 14
        ;  loop_exactly 255 start
        ;info   14, 783
_uart_byte_safe_get__1 equ globals___0+45
        movlw   255
        movwf   _uart_byte_safe_get__1
_uart_byte_safe_get__2:
        ; line_number = 15
        ; loop_exactly 255 start
        ;info   15, 785
_uart_byte_safe_get__3 equ globals___0+46
        movlw   255
        movwf   _uart_byte_safe_get__3
_uart_byte_safe_get__4:
        ; line_number = 16
        ; if _rcif start
        ;info   16, 787
        ; =>bit_code_emit@symbol(): sym=_rcif
        ; No 1TEST: true.size=2 false.size=0
        ; No 2TEST: true.size=2 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   _rcif___byte, _rcif___bit
        goto    _uart_byte_safe_get__5
        ; line_number = 17
        ; return _rcreg start
        ; line_number = 17
        ;info   17, 789
        movf    _rcreg,w
        return  
        ; line_number = 17
        ; return _rcreg done
        ; Recombine size1 = 0 || size2 = 0
_uart_byte_safe_get__5:
        ; line_number = 16
        ; if _rcif done
        ; line_number = 15
        ; loop_exactly 255 wrap-up
        decfsz  _uart_byte_safe_get__3,f
        goto    _uart_byte_safe_get__4
        ; line_number = 15
        ; loop_exactly 255 done
        ; line_number = 14
        ;  loop_exactly 255 wrap-up
        decfsz  _uart_byte_safe_get__1,f
        goto    _uart_byte_safe_get__2
        ; line_number = 14
        ;  loop_exactly 255 done
        ; line_number = 18
        ; return 0xfc start
        ; line_number = 18
        ;info   18, 795
        retlw   252
        ; line_number = 18
        ; return 0xfc done


        ; delay after procedure statements=non-uniform




        ; line_number = 21
        ;info   21, 796
        ; procedure _uart_byte_get
_uart_byte_get:
        ; arguments_none
        ; line_number = 23
        ;  returns byte

        ; # This procedure will return the next byte from the UART.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 27
        ;  while !_rcif start
_uart_byte_get__1:
        ;info   27, 796
        ; =>bit_code_emit@symbol(): sym=_rcif
        ; 1TEST: Single test with code in skip slot
        btfss   _rcif___byte, _rcif___bit
        ; line_number = 28
        ; do_nothing
        ;info   28, 797
        goto    _uart_byte_get__1
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 27
        ;  while !_rcif done
        ; line_number = 29
        ; return _rcreg start
        ; line_number = 29
        ;info   29, 798
        movf    _rcreg,w
        return  
        ; line_number = 29
        ; return _rcreg done


        ; delay after procedure statements=non-uniform




        ; line_number = 32
        ;info   32, 800
        ; procedure _uart_hex_put
_uart_hex_put:
        ; Last argument is sitting in W; save into argument variable
        movwf   _uart_hex_put__value
        ; delay=4294967295
        ; line_number = 33
        ; argument value byte
_uart_hex_put__value equ globals___0
        ; line_number = 34
        ;  returns_nothing

        ; # This procedure will output {value} to the UART as a 2-digit
        ; # hexadecimal number.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 39
        ;  call _uart_nibble_put(value >> 4)
        ;info   39, 801
_uart_hex_put__1 equ globals___0+47
        swapf   _uart_hex_put__value,w
        andlw   15
        call    _uart_nibble_put
        ; line_number = 40
        ;  call _uart_nibble_put(value & 0xf)
        ;info   40, 804
        movlw   15
        andwf   _uart_hex_put__value,w
        call    _uart_nibble_put


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




        ; line_number = 43
        ;info   43, 808
        ; procedure _uart_nibble_put
_uart_nibble_put:
        ; Last argument is sitting in W; save into argument variable
        movwf   _uart_nibble_put__nibble
        ; delay=4294967295
        ; line_number = 44
        ; argument nibble byte
_uart_nibble_put__nibble equ globals___0+1
        ; line_number = 45
        ;  returns_nothing

        ; # This procedure will output {value} to UART as a 1 digit
        ; # hexadecimal number.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 50
        ;  if nibble < 10 start
        ;info   50, 809
        movlw   10
        subwf   _uart_nibble_put__nibble,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=1 false.size=1
        ; 2TEST: two tests with code in both delay slots
        btfsc   __c___byte, __c___bit
        ; line_number = 53
        ; nibble := nibble - 10 + 'A'
        ;info   53, 812
        movlw   55
        btfss   __c___byte, __c___bit
        ; line_number = 51
        ; nibble := nibble + '0'
        ;info   51, 814
        movlw   48
        addwf   _uart_nibble_put__nibble,f
        ; line_number = 50
        ;  if nibble < 10 done
        ; line_number = 54
        ; call _uart_byte_put(nibble)
        ;info   54, 816
        movf    _uart_nibble_put__nibble,w
        call    _uart_byte_put


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




        ; line_number = 57
        ;info   57, 819
        ; procedure _uart_space_put
_uart_space_put:
        ; arguments_none
        ; line_number = 59
        ;  returns_nothing

        ; # This procedure will output a space to the UART.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 63
        ;  call _uart_byte_put(' ')
        ;info   63, 819
        movlw   32
        call    _uart_byte_put


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




        ; line_number = 66
        ;info   66, 822
        ; procedure _uart_crlf_put
_uart_crlf_put:
        ; arguments_none
        ; line_number = 68
        ;  returns_nothing

        ; # This procedure will output a carriage return line feed sequecne to
        ; # the UART.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 73
        ;  call _uart_byte_put('\cr\')
        ;info   73, 822
        movlw   13
        call    _uart_byte_put
        ; line_number = 74
        ;  call _uart_byte_put('\lf\')
        ;info   74, 824
        movlw   10
        call    _uart_byte_put


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




        ; line_number = 77
        ;info   77, 827
        ; procedure _uart_byte_put
_uart_byte_put:
        ; Last argument is sitting in W; save into argument variable
        movwf   _uart_byte_put__byte
        ; delay=4294967295
        ; line_number = 78
        ; argument byte byte
_uart_byte_put__byte equ globals___0+2
        ; line_number = 79
        ;  returns_nothing

        ; # This procedure will send {byte} out using to the UART.

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:XX=cc=>XX)
        ; line_number = 83
        ;  while !_txif start
_uart_byte_put__1:
        ;info   83, 828
        ; =>bit_code_emit@symbol(): sym=_txif
        ; 1TEST: Single test with code in skip slot
        btfss   _txif___byte, _txif___bit
        ; line_number = 84
        ; do_nothing
        ;info   84, 829
        goto    _uart_byte_put__1
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 83
        ;  while !_txif done
        ; line_number = 85
        ; _txreg := byte
        ;info   85, 830
        movf    _uart_byte_put__byte,w
        movwf   _txreg


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




        ; Configuration bits
        ; address = 0x2007, fill = 0x3000
        ; fcmen = off (0x0)
        ; ieso = off (0x0)
        ; boden = off (0x0)
        ; cpd = off (0x80)
        ; cp = off (0x40)
        ; mclre = off (0x0)
        ; pwrte = off (0x10)
        ; wdte = off (0x0)
        ; fosc = hs (0x2)
        ; 12498 = 0x30d2
        __config 12498
        ; Define start addresses for data regions
        ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
        ; Region="globals___0" Address=32" Size=80 Bytes=48 Bits=7 Available=31
        ; 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=0 Bits=0 Available=16
        end
