        radix   dec
        ; Code bank 0; Start address: 0; End address: 2047
        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 : 0x7ff
        ; line_number = 37
        ;  code_bank 0x800 : 0xfff
        ; line_number = 38
        ;  data_bank 0x0 : 0x7f
        ; line_number = 39
        ;  data_bank 0x80 : 0xff
        ; line_number = 40
        ;  data_bank 0x100 : 0x17f
        ; line_number = 41
        ;  data_bank 0x180 : 0x1ff

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

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

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

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

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

        ; line_number = 206
        ; 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 = 206
        ; library _standard exited


        ; # Register/bit bindings:

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

        ; line_number = 217
        ; register _indf = 
_indf equ 0

        ; line_number = 219
        ; register _tmr0 = 
_tmr0 equ 1

        ; line_number = 221
        ; register _pcl = 
_pcl equ 2

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

        ; line_number = 233
        ; register _fsr = 
_fsr equ 4

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

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

        ; line_number = 253
        ; register _pclath = 
_pclath equ 10

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

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

        ; line_number = 275
        ; register _tmr1l = 
_tmr1l equ 14

        ; line_number = 277
        ; register _tmr1h = 
_tmr1h equ 15

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

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

        ; line_number = 297
        ; register _spbrgh = 
_spbrgh equ 18

        ; line_number = 299
        ; register _spbrg = 
_spbrg equ 19

        ; line_number = 301
        ; register _rcreg = 
_rcreg equ 20

        ; line_number = 303
        ; register _txreg = 
_txreg equ 21

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

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

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

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

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

        ; line_number = 346
        ; register _adresh = 
_adresh equ 30

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

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

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

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

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

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

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

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

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

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

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

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

        ; line_number = 443
        ; register _eedath = 
_eedath equ 151

        ; line_number = 445
        ; register _eeadrh = 
_eeadrh equ 152

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

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

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

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

        ; line_number = 482
        ; register _eecon2 = 
_eecon2 equ 157

        ; line_number = 484
        ; register _adresl = 
_adresl equ 158

        ; line_number = 486
        ; register _adcon1 = 
_adcon1 equ 159
        ; line_number = 487
        ; bind _adcs2 = _adcon1@6
_adcs2___byte equ _adcon1
_adcs2___bit equ 6
        ; line_number = 488
        ; bind _adcs1 = _adcon1@5
_adcs1___byte equ _adcon1
_adcs1___bit equ 5
        ; line_number = 489
        ; 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
        ; #library clock16mhz
        ; line_number = 8
        ; 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 = 8
        ; library clock20mhz exited
        ; line_number = 9
        ; 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 = 9
        ; library _uart exited
        ; line_number = 10
        ; constant _eusart_clock = clock_rate
_eusart_clock equ 20000000
        ; line_number = 11
        ; constant _eusart_factor = 4
_eusart_factor equ 4
        ; line_number = 12
        ; library _eusart entered

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

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

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

        ; # 2400 bits/sec:
        ; 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 bits/sec:
        ; 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 bits/sec:
        ; 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 bits/sec:
        ; 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 bits/sec:
        ; 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 bits/sec:
        ; 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 bits/sec:
        ; 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 bits/sec:
        ; 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 bits/sec:
        ; line_number = 63
        ; constant _eusart_460800 = (_eusart_clock / (460800 * _eusart_factor)) - 1
_eusart_460800 equ 9
        ; line_number = 64
        ; constant _eusart_460800_low = _eusart_460800 & 0xff
_eusart_460800_low equ 9
        ; line_number = 65
        ; constant _eusart_460800_high = _eusart_460800 >> 8
_eusart_460800_high equ 0
        ; line_number = 66
        ; constant _eusart_460800_index = 8
_eusart_460800_index equ 8
        ; # 500000 bits/sec:
        ; 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 = 9
_eusart_500000_index equ 9
        ; # 576000 bits/sec (1MHz):
        ; line_number = 73
        ; constant _eusart_576000 = (_eusart_clock / (576000 * _eusart_factor)) - 1
_eusart_576000 equ 7
        ; line_number = 74
        ; constant _eusart_576000_low = _eusart_576000 & 0xff
_eusart_576000_low equ 7
        ; line_number = 75
        ; constant _eusart_576000_high = _eusart_576000 >> 8
_eusart_576000_high equ 0
        ; line_number = 76
        ; constant _eusart_576000_index = 10
_eusart_576000_index equ 10
        ; # 625000 bits/sec:
        ; line_number = 78
        ; constant _eusart_625000 = (_eusart_clock / (625000 * _eusart_factor)) - 1
_eusart_625000 equ 7
        ; line_number = 79
        ; constant _eusart_625000_low = _eusart_625000 & 0xff
_eusart_625000_low equ 7
        ; line_number = 80
        ; constant _eusart_625000_high = _eusart_625000 >> 8
_eusart_625000_high equ 0
        ; line_number = 81
        ; constant _eusart_625000_index = 11
_eusart_625000_index equ 11
        ; # 833333 bits/sec:
        ; line_number = 83
        ; constant _eusart_833333 = (_eusart_clock / (833333 * _eusart_factor)) - 1
_eusart_833333 equ 5
        ; line_number = 84
        ; constant _eusart_833333_low = _eusart_833333 & 0xff
_eusart_833333_low equ 5
        ; line_number = 85
        ; constant _eusart_833333_high = _eusart_833333 >> 8
_eusart_833333_high equ 0
        ; line_number = 86
        ; constant _eusart_833333_index = 12
_eusart_833333_index equ 12
        ; # 921600 bits/sec:
        ; line_number = 88
        ; constant _eusart_921600 = (_eusart_clock / (921600 * _eusart_factor)) - 1
_eusart_921600 equ 4
        ; line_number = 89
        ; constant _eusart_921600_low = _eusart_921600 & 0xff
_eusart_921600_low equ 4
        ; line_number = 90
        ; constant _eusart_921600_high = _eusart_921600 >> 8
_eusart_921600_high equ 0
        ; line_number = 91
        ; constant _eusart_921600_index = 13
_eusart_921600_index equ 13
        ; # 1000000 bits/sec (1MHz):
        ; line_number = 93
        ; constant _eusart_1000000 = (_eusart_clock / (1000000 * _eusart_factor)) - 1
_eusart_1000000 equ 4
        ; line_number = 94
        ; constant _eusart_1000000_low = _eusart_1000000 & 0xff
_eusart_1000000_low equ 4
        ; line_number = 95
        ; constant _eusart_1000000_high = _eusart_1000000 >> 8
_eusart_1000000_high equ 0
        ; line_number = 96
        ; constant _eusart_1000000_index = 14
_eusart_1000000_index equ 14

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


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

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


        ; # The host buffer lives over in data bank 1:

        ; line_number = 39
        ; constant host_buffer_power = 6
host_buffer_power equ 6
        ; line_number = 40
        ; constant host_buffer_size = 1 << host_buffer_power
host_buffer_size equ 64
        ; line_number = 41
        ; constant host_buffer_mask = host_buffer_size - 1
host_buffer_mask equ 63

        ; line_number = 43
        ; global host_buffer[host_buffer_size] array[byte]
host_buffer equ globals___1


        ; line_number = 47
        ; global host_index_in byte	# Index to insert bytes into {host_buffer}
host_index_in equ globals___0+3
        ; line_number = 48
        ; global host_index_out byte	# Index to remove bytes from {host_buffer}
host_index_out equ globals___0+4
        ; line_number = 49
        ; global host_count byte		# Number of bytes in host {host_buffer}:
host_count equ globals___0+5

        ; line_number = 51
        ; global error bit
error___byte equ globals___0+79
error___bit equ 0
        ; line_number = 52
        ; global end_of_line bit
end_of_line___byte equ globals___0+79
end_of_line___bit equ 1
        ; line_number = 53
        ; global hex_high byte
hex_high equ globals___0+6
        ; line_number = 54
        ; global hex_low byte
hex_low equ globals___0+7
        ; line_number = 55
        ; global bus_shift byte
bus_shift equ globals___0+8
        ; line_number = 56
        ; global time_out bit
time_out___byte equ globals___0+79
time_out___bit equ 2
        ; line_number = 57
        ; global bus_msb bit
bus_msb___byte equ globals___0+79
bus_msb___bit equ 3
        ; line_number = 58
        ; global bus_buffer[5] array[byte]
bus_buffer equ globals___0+9

        ; line_number = 60
        ; origin 0
        org     0

        ; line_number = 62
        ;info   62, 0
        ; procedure start
start:
        ; arguments_none
        ; line_number = 64
        ;  returns_nothing
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 65
        ;  assemble
        ;info   65, 0
        ; line_number = 66
        ;info   66, 0
        goto    main

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




        ; line_number = 68
        ; origin 4
        org     4

        ; line_number = 70
        ; share fsr_save byte		# Place to stuff {_fsr}
fsr_save equ shared___globals
        ; line_number = 71
        ; share pclath_save byte		# Place to stuff {_pclath}
pclath_save equ shared___globals+1

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

        ; # This routine will handle a UART receive buffer interrupt.

        ; # Save {_fsr} and {_pclath}:
        ; before procedure statements delay=non-uniform, bit states=(data:??=uu=>?? code:X0=cu=>X0)
        ; line_number = 80
        ;  fsr_save := _fsr
        ;info   80, 7
        movf    _fsr,w
        movwf   fsr_save
        ; line_number = 81
        ;  pclath_save := _pclath
        ;info   81, 9
        movf    _pclath,w
        movwf   pclath_save

        ; line_number = 83
        ;  if _rcif start
        ;info   83, 11
        ; =>bit_code_emit@symbol(): sym=_rcif
        ; No 1TEST: true.size=15 false.size=0
        ; No 2TEST: true.size=15 false.size=0
        ; 1GOTO: Single test with GOTO
        bcf     __rp0___byte, __rp0___bit
        bcf     __rp1___byte, __rp1___bit
        btfss   _rcif___byte, _rcif___bit
        goto    interrupt__1
        ; # Clear the interrupt flag until the next byte arrives:
        ; line_number = 85
        ;  _rcif := _false
        ;info   85, 15
        bcf     _rcif___byte, _rcif___bit

        ; # Deal with UART errors:
        ; line_number = 88
        ;  if _oerr start
        ;info   88, 16
        ; =>bit_code_emit@symbol(): sym=_oerr
        ; 1TEST: Single test with code in skip slot
        btfsc   _oerr___byte, _oerr___bit
        ; line_number = 89
        ; _cren := _false
        ;info   89, 17
        bcf     _cren___byte, _cren___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 88
        ;  if _oerr done
        ; line_number = 90
        ; if _ferr start
        ;info   90, 18
        ; =>bit_code_emit@symbol(): sym=_ferr
        ; 1TEST: Single test with code in skip slot
        btfsc   _ferr___byte, _ferr___bit
        ; line_number = 91
        ; _cren := _false
        ;info   91, 19
        bcf     _cren___byte, _cren___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 90
        ; if _ferr done
        ; line_number = 92
        ; _cren := _true
        ;info   92, 20
        bsf     _cren___byte, _cren___bit

        ; # Now read the byte and stuff it into {host_buffer}:
        ; line_number = 95
        ;  host_buffer[host_index_in & host_buffer_mask] := _rcreg
        ;info   95, 21
        ; index_fsr_first
        movlw   63
        andwf   host_index_in,w
        addlw   host_buffer
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    _rcreg,w
        movwf   __indf
        ; line_number = 96
        ;  host_index_in := host_index_in + 1
        ;info   96, 28
        incf    host_index_in,f
        ; line_number = 97
        ;  host_count := host_count + 1
        ;info   97, 29
        incf    host_count,f

        ; Recombine size1 = 0 || size2 = 0
interrupt__1:
        ; line_number = 83
        ;  if _rcif done
        ; # Restore {_pclath} and {_fsr}:
        ; line_number = 100
        ;  _pclath := pclath_save
        ;info   100, 30
        movf    pclath_save,w
        movwf   _pclath
        ; line_number = 101
        ;  _fsr := fsr_save
        ;info   101, 32
        movf    fsr_save,w
        movwf   _fsr


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




        ; line_number = 104
        ;info   104, 39
        ; procedure host_byte_get
host_byte_get:
        ; arguments_none
        ; line_number = 106
        ;  returns byte

        ; # This routine will wait until {host_buffer} is non-empty and then
        ; # return the next byte from {host_buffer}.

        ; line_number = 111
        ;  local result byte
host_byte_get__result equ globals___0+14

        ; # Wait until {host_buffer} has something:
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 114
        ;  while host_count = 0 start
host_byte_get__1:
        ;info   114, 39
        ; Left minus Right
        movf    host_count,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; 1TEST: Single test with code in skip slot
        btfsc   __z___byte, __z___bit
        ; line_number = 115
        ; do_nothing
        ;info   115, 41

        goto    host_byte_get__1
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 114
        ;  while host_count = 0 done
        ; # Remove the contents with interrupts turned off:
        ; line_number = 118
        ;  _rcif := _false
        ;info   118, 42
        bcf     _rcif___byte, _rcif___bit
        ; line_number = 119
        ;  result := host_buffer[host_index_out & host_buffer_mask]
        ;info   119, 43
        movlw   63
        andwf   host_index_out,w
        addlw   host_buffer
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        movwf   host_byte_get__result
        ; line_number = 120
        ;  host_index_out := host_index_out + 1
        ;info   120, 50
        incf    host_index_out,f
        ; line_number = 121
        ;  host_count := host_count - 1
        ;info   121, 51
        decf    host_count,f
        ; line_number = 122
        ;  _rcif := _true
        ;info   122, 52
        bsf     _rcif___byte, _rcif___bit

        ; line_number = 124
        ;  return result start
        ; line_number = 124
        ;info   124, 53
        movf    host_byte_get__result,w
        return  
        ; line_number = 124
        ;  return result done


        ; delay after procedure statements=non-uniform




        ; line_number = 127
        ;info   127, 55
        ; 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 = 129
        ;  returns_nothing

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

        ; line_number = 134
        ;  local bit9 bit
main__bit9___byte equ globals___0+79
main__bit9___bit equ 4
        ; line_number = 135
        ;  local command byte
main__command equ globals___0+15
        ; line_number = 136
        ;  local id byte
main__id equ globals___0+16
        ; line_number = 137
        ;  local low byte
main__low equ globals___0+17
        ; line_number = 138
        ;  local node byte
main__node equ globals___0+18
        ; line_number = 139
        ;  local page byte
main__page equ globals___0+19
        ; line_number = 140
        ;  local receive byte
main__receive equ globals___0+20
        ; line_number = 141
        ;  local row byte
main__row equ globals___0+21
        ; line_number = 142
        ;  local send byte
main__send equ globals___0+22
        ; line_number = 143
        ;  local value byte
main__value equ globals___0+23

        ; line_number = 145
        ;  local index byte
main__index equ globals___0+24
        ; line_number = 146
        ;  local count byte
main__count equ globals___0+25
        ; line_number = 147
        ;  local mask byte
main__mask equ globals___0+26
        ; line_number = 148
        ;  local ninth bit
main__ninth___byte equ globals___0+79
main__ninth___bit equ 5
        ; line_number = 149
        ;  local high4 byte
main__high4 equ globals___0+27

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

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>01 code:X0=cu=>X0)
        ; line_number = 156
        ;  host_index_in := 0
        ;info   156, 66
        bcf     __rp0___byte, __rp0___bit
        clrf    host_index_in
        ; line_number = 157
        ;  host_index_out := 0
        ;info   157, 68
        clrf    host_index_out
        ; line_number = 158
        ;  host_count := 0
        ;info   158, 69
        clrf    host_count

        ; # Warm up the EUSART:
        ; line_number = 161
        ;  _trisc@5 := _true
        ;info   161, 70
main__select__1___byte equ _trisc
main__select__1___bit equ 5
        bsf     __rp0___byte, __rp0___bit
        bsf     main__select__1___byte, main__select__1___bit
        ; line_number = 162
        ;  _trisc@4 := _true
        ;info   162, 72
main__select__2___byte equ _trisc
main__select__2___bit equ 4
        bsf     main__select__2___byte, main__select__2___bit

        ; line_number = 164
        ;  _txsta := 0
        ;info   164, 73
        bcf     __rp0___byte, __rp0___bit
        clrf    _txsta
        ; line_number = 165
        ;  _tx9 := _false
        ;info   165, 75
        bcf     _tx9___byte, _tx9___bit
        ; line_number = 166
        ;  _txen := _true
        ;info   166, 76
        bsf     _txen___byte, _txen___bit
        ; line_number = 167
        ;  _brgh := _true
        ;info   167, 77
        bsf     _brgh___byte, _brgh___bit

        ; line_number = 169
        ;  _rcsta := 0
        ;info   169, 78
        clrf    _rcsta
        ; line_number = 170
        ;  _spen := _true
        ;info   170, 79
        bsf     _spen___byte, _spen___bit
        ; line_number = 171
        ;  _rx9 := _false
        ;info   171, 80
        bcf     _rx9___byte, _rx9___bit
        ; line_number = 172
        ;  _cren := _true
        ;info   172, 81
        bsf     _cren___byte, _cren___bit
        ; line_number = 173
        ;  _adden := _true
        ;info   173, 82
        bsf     _adden___byte, _adden___bit

        ; line_number = 175
        ;  _baudctl := 0
        ;info   175, 83
        clrf    _baudctl
        ; line_number = 176
        ;  _brg16 := _true
        ;info   176, 84
        bsf     _brg16___byte, _brg16___bit

        ; #_spbrg := _eusart_19200_low
        ; #_spbrgh := _eusart_19200_highb
        ; line_number = 180
        ;  _spbrg := _eusart_115200_low
        ;info   180, 85
        movlw   42
        movwf   _spbrg
        ; line_number = 181
        ;  _spbrgh := _eusart_115200_high
        ;info   181, 87
        clrf    _spbrgh
        ; #_spbrg := _eusart_230400_low
        ; #_spbrgh := _eusart_230400_high
        ; #_spbrg := _eusart_460800_low
        ; #_spbrgh := _eusart_460800_high
        ; #_spbrg := _eusart_500000_low
        ; #_spbrgh := _eusart_500000_high

        ; # Enable interrupts:
        ; line_number = 190
        ;  _rcif := _false
        ;info   190, 88
        bcf     _rcif___byte, _rcif___bit
        ; line_number = 191
        ;  _rcie := _true
        ;info   191, 89
        bsf     __rp0___byte, __rp0___bit
        bsf     _rcie___byte, _rcie___bit
        ; line_number = 192
        ;  _peie := _true
        ;info   192, 91
        bsf     _peie___byte, _peie___bit
        ; line_number = 193
        ;  _gie := _true
        ;info   193, 92
        bsf     _gie___byte, _gie___bit

        ; # 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 = 212
        ;  loop_forever start
main__3:
        bcf     __rp0___byte, __rp0___bit
        ; # Wait for command:
        ; line_number = 214
        ;  error := _false
        ;info   214, 94
        bcf     error___byte, error___bit
        ; line_number = 215
        ;  end_of_line := _false
        ;info   215, 95
        bcf     end_of_line___byte, end_of_line___bit

        ; # Fetch a command letter from the user:
        ; line_number = 218
        ;  command := host_byte_get()
        ;info   218, 96
        call    host_byte_get
        movwf   main__command
        ; line_number = 219
        ;  if command@7 start
        ;info   219, 98
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=80 false.size=391
        ; No 2TEST: true.size=80 false.size=391
        ; 2GOTO: Single test with two GOTO's
        btfss   main__select__102___byte, main__select__102___bit
        goto    main__103
        ; # Binary mode command:
        ; line_number = 221
        ;  switch (command >> 4) & 7 start
        ;info   221, 100
        ; switch_before:(data:XX=cc=>XX code:XX=cc=>XX) size=0
        ; line_number = 222
        ; case_maximum 7
        movlw   main__99>>8
        movwf   __pclath
main__100 equ globals___0+38
        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 = 223
        ; case 0, 1
main__96:
        ; # 100h hhhh (High5 Set):
        ; line_number = 225
        ;  ninth := command@4
        ;info   225, 114
        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 = 226
        ;  high4 := command << 4
        ;info   226, 117
        swapf   main__command,w
        movwf   main__high4
        movlw   240
        andwf   main__high4,f
        goto    main__101
        ; line_number = 227
        ; case 2
main__97:
        ; # 1010 llll (Low4 Send):
        ; line_number = 229
        ;  send := high4 | command & 0xf
        ;info   229, 122
        movlw   15
        andwf   main__command,w
        iorwf   main__high4,w
        movwf   main__send
        ; line_number = 230
        ;  if ninth start
        ;info   230, 126
        ; =>bit_code_emit@symbol(): sym=main__ninth
        ; line_number = 231
        ; call bus_select_send(send)
        ;info   231, 126
        movf    main__send,w
        ; line_number = 233
        ; call bus_byte_send(send)
        ;info   233, 127
        ; 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 = 230
        ;  if ninth done
        goto    main__101
        ; line_number = 234
        ; case 3
main__98:
        ; # 1011 xxxx:
        ; line_number = 236
        ;  if command & 0xf = 0 start
        ;info   236, 132
        ; Left minus Right
        movlw   15
        andwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=44 false.size=0
        ; No 2TEST: true.size=44 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   __z___byte, __z___bit
        goto    main__95
        ; # 1011 0000 (Receive5):
        ; line_number = 238
        ;  mask := 0x80
        ;info   238, 136
        movlw   128
        movwf   main__mask
        ; line_number = 239
        ;  count := 0
        ;info   239, 138
        clrf    main__count
        ; line_number = 240
        ;  send := 0
        ;info   240, 139
        clrf    main__send

        ; # Check {bus_buffer} exactly 5 times:
        ; line_number = 243
        ;  loop_exactly 5 start
        ;info   243, 140
main__84 equ globals___0+38
        movlw   5
        movwf   main__84
main__85:
        ; # Check to see if anything is in the {bus_buffer}:
        ; line_number = 245
        ;  call shift2(6)
        ;info   245, 142
        movlw   6
        call    shift2
        ; line_number = 246
        ;  if !(bus_shift@1) start
        ;info   246, 144
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=17
        ; No 2TEST: true.size=0 false.size=17
        ; 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 = 250
        ;  if bus_shift@0 start
        ;info   250, 146
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 = 251
        ; send := send | mask
        ;info   251, 148
        movf    main__mask,w
        iorwf   main__send,f
        ; Recombine size1 = 0 || size2 = 0
main__87:
        ; line_number = 250
        ;  if bus_shift@0 done
        ; line_number = 252
        ; mask := mask >> 1
        ;info   252, 150
        ; Assignment of variable to self (no code needed)
        rrf     main__mask,f
        bcf     main__mask, 7

        ; # Grab the rest of the byte:
        ; line_number = 255
        ;  loop_exactly 4 start
        ;info   255, 152
main__88 equ globals___0+39
        movlw   4
        movwf   main__88
main__89:
        ; line_number = 256
        ; call shift2(0)
        ;info   256, 154
        movlw   0
        call    shift2
        ; line_number = 255
        ;  loop_exactly 4 wrap-up
        decfsz  main__88,f
        goto    main__89
        ; line_number = 255
        ;  loop_exactly 4 done
        ; line_number = 257
        ; bus_buffer[count] := bus_shift
        ;info   257, 158
        ; index_fsr_first
        movf    main__count,w
        addlw   bus_buffer
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    bus_shift,w
        movwf   __indf
        ; line_number = 258
        ;  count := count + 1
        ;info   258, 164
        incf    main__count,f
main__91:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 246
        ;  if !(bus_shift@1) done
        ; line_number = 243
        ;  loop_exactly 5 wrap-up
        decfsz  main__84,f
        goto    main__85
        ; line_number = 243
        ;  loop_exactly 5 done
        ; line_number = 259
        ; send := send | count
        ;info   259, 167
        movf    main__count,w
        iorwf   main__send,f

        ; # Send the results back to the host:
        ; line_number = 262
        ;  call _uart_byte_put(send)
        ;info   262, 169
        movf    main__send,w
        call    _uart_byte_put
        ; line_number = 263
        ;  if count != 0 start
        ;info   263, 171
        ; Left minus Right
        movf    main__count,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=0 false.size=10
        ; No 2TEST: true.size=0 false.size=10
        ; 1GOTO: Single test with GOTO
        btfsc   __z___byte, __z___bit
        goto    main__94
        ; line_number = 264
        ; index := 0
        ;info   264, 174
        clrf    main__index
        ; line_number = 265
        ;  loop_exactly count start
        ;info   265, 175
main__92 equ globals___0+39
        movf    main__count,w
        movwf   main__92
main__93:
        ; line_number = 266
        ; call _uart_byte_put(bus_buffer[index])
        ;info   266, 177
        movf    main__index,w
        addlw   bus_buffer
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        call    _uart_byte_put
        ; line_number = 267
        ;  index := index + 1
        ;info   267, 183
        incf    main__index,f
        ; line_number = 265
        ;  loop_exactly count wrap-up
        decfsz  main__92,f
        goto    main__93
        ; line_number = 265
        ;  loop_exactly count done
main__94:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 263
        ;  if count != 0 done
        ; Recombine size1 = 0 || size2 = 0
main__95:
        ; line_number = 236
        ;  if command & 0xf = 0 done
main__101:
        ; line_number = 221
        ;  switch (command >> 4) & 7 done
        goto    main__104
        ; 2GOTO: Starting code 2
main__103:
        ; # ASCII mode command:

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

        ; # Convert it to upper case:
        ; line_number = 275
        ;  if 'a' <= command && command <= 'z' start
        ;info   275, 189
        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 = 276
        ; command := command + ('A' - 'a')
        ;info   276, 199
        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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 275
        ;  if 'a' <= command && command <= 'z' done
        ; line_number = 277
        ; if 'A' <= command && command <= 'Z' start
        ;info   277, 201
        movlw   65
        subwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; No 1TEST: true.size=371 false.size=1
        ; No 2TEST: true.size=371 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=350
        ; No 2TEST: true.size=14 false.size=350
        ; 2GOTO: Single test with two GOTO's
        btfss   __c___byte, __c___bit
        goto    main__81
main__80:
        ; line_number = 496
        ;info   496, 211
        ; 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 = 498
        ;  if end_of_line_get() start
        ;info   498, 215
        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 = 499
        ; call _uart_crlf_put()
        ;info   499, 217
        goto    main__8
        ; 2GOTO: Starting code 2
main__7:
        ; line_number = 500
        ;info   500, 218
        ; 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 = 505
        ;  call _uart_byte_put('?')
        ;info   505, 222
        movlw   63
        call    _uart_byte_put
        ; line_number = 506
        ;  call _uart_crlf_put()
        ;info   506, 224
main__6:
        ; # Blank line:
        ; line_number = 502
        ;  call _uart_crlf_put()
        ;info   502, 224
main__8:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 498
        ;  if end_of_line_get() done

        goto    main__82
        ; 2GOTO: Starting code 2
main__81:
        ; # We have a command letter:
        ; line_number = 279
        ;  switch command - 'A' start
        ;info   279, 226
        ; 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
        ; Add 24 NOP's until start of new page 
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
        nop     
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 = 280
        ; case 0
main__63:
        ; # Set address:
        ; line_number = 282
        ;  id := hex_byte_get()
        ;info   282, 282
        call    hex_byte_get
        movwf   main__id
        ; line_number = 283
        ;  node := hex_byte_get()
        ;info   283, 284
        call    hex_byte_get
        movwf   main__node
        ; line_number = 284
        ;  if end_of_line_get() start
        ;info   284, 286
        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 = 285
        ; call _uart_hex_put(id)
        ;info   285, 289
        movf    main__id,w
        call    _uart_hex_put
        ; line_number = 286
        ;  call _uart_space_put()
        ;info   286, 291
        call    _uart_space_put
        ; line_number = 287
        ;  call _uart_hex_put(node)
        ;info   287, 292
        movf    main__node,w
        call    _uart_hex_put
        ; line_number = 288
        ;  call _uart_crlf_put()
        ;info   288, 294
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__9:
        ; line_number = 284
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 289
        ; case 1
main__64:
        ; line_number = 290
        ; value := hex_byte_get()
        ;info   290, 296
        call    hex_byte_get
        movwf   main__value
        ; line_number = 291
        ;  if end_of_line_get() start
        ;info   291, 298
        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 = 292
        ; call _uart_hex_put(value)
        ;info   292, 301
        movf    main__value,w
        call    _uart_hex_put
        ; line_number = 293
        ;  call _uart_crlf_put()
        ;info   293, 303
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__10:
        ; line_number = 291
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 294
        ; case 2
main__65:
        ; # Clear bus:
        ; line_number = 296
        ;  if end_of_line_get() start
        ;info   296, 305
        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 = 297
        ; call _uart_crlf_put()
        ;info   297, 307
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 296
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 298
        ; case 3
main__66:
        ; # Deselect:
        ; line_number = 300
        ;  if end_of_line_get() start
        ;info   300, 309
        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 = 301
        ; call _uart_crlf_put()
        ;info   301, 312
        call    _uart_crlf_put
        ; line_number = 302
        ;  call bus_byte_send(0xff)
        ;info   302, 313
        movlw   255
        call    bus_byte_send
        ; line_number = 303
        ;  value := bus_byte_receive()
        ;info   303, 315
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 304
        ;  if time_out start
        ;info   304, 317
        ; =>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 = 305
        ; call _uart_byte_put('@')
        ;info   305, 319
        movlw   64
        call    _uart_byte_put
        goto    main__13
        ; 2GOTO: Starting code 2
main__12:
        ; line_number = 307
        ; if bus_msb start
        ;info   307, 322
        ; =>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 = 308
        ; call _uart_byte_put('1')
        ;info   308, 324
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__11:
        ; line_number = 307
        ; if bus_msb done
        ; line_number = 309
        ; call _uart_hex_put(value)
        ;info   309, 326
        movf    main__value,w
        call    _uart_hex_put
main__13:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 304
        ;  if time_out done
        ; line_number = 310
        ; call _uart_crlf_put()
        ;info   310, 328
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__14:
        ; line_number = 300
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 311
        ; case 5
main__67:
        ; # Flush {bus_buffer}:
        ; line_number = 313
        ;  if end_of_line_get() start
        ;info   313, 330
        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 = 314
        ; time_out := _false
        ;info   314, 333
        bcf     time_out___byte, time_out___bit
        ; line_number = 315
        ;  while !time_out start
main__15:
        ;info   315, 334
        ; =>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 = 316
        ; value := bus_byte_receive()
        ;info   316, 336
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 317
        ;  call _uart_space_put()
        ;info   317, 338
        call    _uart_space_put
        ; line_number = 318
        ;  if time_out start
        ;info   318, 339
        ; =>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 = 319
        ; call _uart_byte_put('@')
        ;info   319, 341
        movlw   64
        call    _uart_byte_put
        goto    main__17
        ; 2GOTO: Starting code 2
main__16:
        ; line_number = 321
        ; call _uart_hex_put(value)
        ;info   321, 344
        movf    main__value,w
        call    _uart_hex_put
main__17:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 318
        ;  if time_out done
        goto    main__15
main__18:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 315
        ;  while !time_out done
        ; line_number = 322
        ; call _uart_crlf_put()
        ;info   322, 347
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__19:
        ; line_number = 313
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 323
        ; case 8
main__68:
        ; # Identify:
        ; line_number = 325
        ;  if end_of_line_get() start
        ;info   325, 349
        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 = 326
        ; call id_dump()
        ;info   326, 351
        call    id_dump
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 325
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 327
        ; case 9
main__69:
        ; # Jump:
        ; line_number = 329
        ;  call hex_word_get()
        ;info   329, 353
        call    hex_word_get
        ; line_number = 330
        ;  if end_of_line_get() start
        ;info   330, 354
        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 = 331
        ; call _uart_hex_put(hex_high)
        ;info   331, 357
        movf    hex_high,w
        call    _uart_hex_put
        ; line_number = 332
        ;  call _uart_hex_put(hex_low)
        ;info   332, 359
        movf    hex_low,w
        call    _uart_hex_put
        ; line_number = 333
        ;  call _uart_crlf_put()
        ;info   333, 361
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__20:
        ; line_number = 330
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 334
        ; case 15
main__70:
        ; # Print a page of program memory:
        ; line_number = 336
        ;  page := hex_byte_get()
        ;info   336, 363
        call    hex_byte_get
        movwf   main__page
        ; line_number = 337
        ;  if end_of_line_get() start
        ;info   337, 365
        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 = 338
        ; row := 0
        ;info   338, 368
        clrf    main__row
        ; line_number = 339
        ;  low := 0
        ;info   339, 369
        clrf    main__low
        ; line_number = 340
        ;  while row < 32 start
main__21:
        ;info   340, 370
        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 = 341
        ; call _uart_hex_put(page)
        ;info   341, 374
        movf    main__page,w
        call    _uart_hex_put
        ; line_number = 342
        ;  call _uart_hex_put(low)
        ;info   342, 376
        movf    main__low,w
        call    _uart_hex_put
        ; line_number = 343
        ;  call _uart_byte_put(':')
        ;info   343, 378
        movlw   58
        call    _uart_byte_put

        ; # Set address:
        ; line_number = 346
        ;  call bus_byte_send(0)
        ;info   346, 380
        movlw   0
        call    bus_byte_send
        ; line_number = 347
        ;  call bus_byte_receive()
        ;info   347, 382
        call    bus_byte_receive

        ; line_number = 349
        ;  call bus_byte_send(page)
        ;info   349, 383
        movf    main__page,w
        call    bus_byte_send
        ; line_number = 350
        ;  call bus_byte_receive()
        ;info   350, 385
        call    bus_byte_receive

        ; line_number = 352
        ;  call bus_byte_send(low)
        ;info   352, 386
        movf    main__low,w
        call    bus_byte_send
        ; line_number = 353
        ;  call bus_byte_receive()
        ;info   353, 388
        call    bus_byte_receive

        ; # Read the ack byte:
        ; line_number = 356
        ;  call bus_byte_receive()
        ;info   356, 389
        call    bus_byte_receive

        ; # Read out 8 words:
        ; line_number = 359
        ;  call bus_byte_send(1)
        ;info   359, 390
        movlw   1
        call    bus_byte_send
        ; line_number = 360
        ;  call bus_byte_receive()
        ;info   360, 392
        call    bus_byte_receive

        ; line_number = 362
        ;  call bus_byte_send(8)
        ;info   362, 393
        movlw   8
        call    bus_byte_send
        ; line_number = 363
        ;  call bus_byte_receive()
        ;info   363, 395
        call    bus_byte_receive
        ; line_number = 364
        ;  loop_exactly 8 start
        ;info   364, 396
main__22 equ globals___0+38
        movlw   8
        movwf   main__22
main__23:
        ; line_number = 365
        ; value := bus_byte_receive()
        ;info   365, 398
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 366
        ;  call _uart_space_put()
        ;info   366, 400
        call    _uart_space_put
        ; line_number = 367
        ;  if time_out start
        ;info   367, 401
        ; =>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 = 368
        ; call _uart_byte_put('@')
        ;info   368, 403
        movlw   64
        call    _uart_byte_put
        goto    main__25
        ; 2GOTO: Starting code 2
main__24:
        ; line_number = 370
        ; call _uart_hex_put(value)
        ;info   370, 406
        movf    main__value,w
        call    _uart_hex_put
main__25:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 367
        ;  if time_out done
        ; line_number = 371
        ; value := bus_byte_receive()
        ;info   371, 408
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 372
        ;  if time_out start
        ;info   372, 410
        ; =>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 = 373
        ; call _uart_byte_put('@')
        ;info   373, 412
        movlw   64
        call    _uart_byte_put
        goto    main__27
        ; 2GOTO: Starting code 2
main__26:
        ; line_number = 375
        ; call _uart_hex_put(value)
        ;info   375, 415
        movf    main__value,w
        call    _uart_hex_put

main__27:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 372
        ;  if time_out done
        ; line_number = 364
        ;  loop_exactly 8 wrap-up
        decfsz  main__22,f
        goto    main__23
        ; line_number = 364
        ;  loop_exactly 8 done
        ; # Read the ack byte:
        ; line_number = 378
        ;  call bus_byte_receive()
        ;info   378, 419
        call    bus_byte_receive

        ; line_number = 380
        ;  call _uart_crlf_put()
        ;info   380, 420
        call    _uart_crlf_put
        ; line_number = 381
        ;  row := row + 1
        ;info   381, 421
        incf    main__row,f
        ; line_number = 382
        ;  low := low + 8
        ;info   382, 422
        movlw   8
        addwf   main__low,f
        goto    main__21
main__28:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 340
        ;  while row < 32 done
        ; Recombine size1 = 0 || size2 = 0
main__29:
        ; line_number = 337
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 383
        ; case 17
main__71:
        ; # Read:
        ; line_number = 385
        ;  call hex_word_get()
        ;info   385, 426
        call    hex_word_get
        ; line_number = 386
        ;  if end_of_line_get() start
        ;info   386, 427
        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 = 387
        ; call _uart_hex_put(hex_high)
        ;info   387, 430
        movf    hex_high,w
        call    _uart_hex_put
        ; line_number = 388
        ;  call _uart_hex_put(hex_low)
        ;info   388, 432
        movf    hex_low,w
        call    _uart_hex_put
        ; line_number = 389
        ;  call _uart_crlf_put()
        ;info   389, 434
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__30:
        ; line_number = 386
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 390
        ; case 18
main__72:
        ; # Select:
        ; line_number = 392
        ;  node := hex_byte_get()
        ;info   392, 436
        call    hex_byte_get
        movwf   main__node
        ; line_number = 393
        ;  if end_of_line_get() start
        ;info   393, 438
        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 = 394
        ; call _uart_crlf_put()
        ;info   394, 441
        call    _uart_crlf_put
        ; line_number = 395
        ;  call bus_select_send(node)
        ;info   395, 442
        movf    main__node,w
        call    bus_select_send
        ; line_number = 396
        ;  value := bus_byte_receive()
        ;info   396, 444
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 397
        ;  if time_out start
        ;info   397, 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__32
        ; line_number = 398
        ; call _uart_byte_put('@')
        ;info   398, 448
        movlw   64
        call    _uart_byte_put
        goto    main__33
        ; 2GOTO: Starting code 2
main__32:
        ; line_number = 400
        ; if bus_msb start
        ;info   400, 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__31
        ; line_number = 401
        ; call _uart_byte_put('1')
        ;info   401, 453
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__31:
        ; line_number = 400
        ; if bus_msb done
        ; line_number = 402
        ; call _uart_hex_put(value)
        ;info   402, 455
        movf    main__value,w
        call    _uart_hex_put
main__33:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 397
        ;  if time_out done
        ; line_number = 403
        ; call _uart_byte_put(' ')
        ;info   403, 457
        movlw   32
        call    _uart_byte_put

        ; line_number = 405
        ;  value := bus_byte_receive()
        ;info   405, 459
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 406
        ;  if time_out start
        ;info   406, 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__35
        ; line_number = 407
        ; call _uart_byte_put('@')
        ;info   407, 463
        movlw   64
        call    _uart_byte_put
        goto    main__36
        ; 2GOTO: Starting code 2
main__35:
        ; line_number = 409
        ; if bus_msb start
        ;info   409, 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__34
        ; line_number = 410
        ; call _uart_byte_put('1')
        ;info   410, 468
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__34:
        ; line_number = 409
        ; if bus_msb done
        ; line_number = 411
        ; call _uart_hex_put(value)
        ;info   411, 470
        movf    main__value,w
        call    _uart_hex_put
main__36:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 406
        ;  if time_out done
        ; line_number = 412
        ; call _uart_byte_put(' ')
        ;info   412, 472
        movlw   32
        call    _uart_byte_put
        ; line_number = 413
        ;  value := bus_byte_receive()
        ;info   413, 474
        call    bus_byte_receive
        movwf   main__value

        ; line_number = 415
        ;  if time_out start
        ;info   415, 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__38
        ; line_number = 416
        ; call _uart_byte_put('@')
        ;info   416, 478
        movlw   64
        call    _uart_byte_put
        goto    main__39
        ; 2GOTO: Starting code 2
main__38:
        ; line_number = 418
        ; if bus_msb start
        ;info   418, 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__37
        ; line_number = 419
        ; call _uart_byte_put('1')
        ;info   419, 483
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__37:
        ; line_number = 418
        ; if bus_msb done
        ; line_number = 420
        ; call _uart_hex_put(value)
        ;info   420, 485
        movf    main__value,w
        call    _uart_hex_put
main__39:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 415
        ;  if time_out done
        ; line_number = 421
        ; call _uart_crlf_put()
        ;info   421, 487
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__40:
        ; line_number = 393
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 422
        ; case 19
main__73:
        ; # Test mode:
        ; line_number = 424
        ;  loop_forever start
main__41:
        ; line_number = 425
        ; call bus_select_send(8)
        ;info   425, 489
        movlw   8
        call    bus_select_send
        ; line_number = 426
        ;  loop_exactly 255 start
        ;info   426, 491
main__42 equ globals___0+38
        movlw   255
        movwf   main__42
main__43:
        ; line_number = 427
        ; delay 600 start
        ;info   427, 493
        ; Delay expression evaluates to 600
        ; line_number = 428
        ; do_nothing
        ;info   428, 493

        ; 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 = 427
        ; delay 600 done
        ; line_number = 426
        ;  loop_exactly 255 wrap-up
        decfsz  main__42,f
        goto    main__43
        ; line_number = 426
        ;  loop_exactly 255 done
        ; line_number = 430
        ; call bus_byte_send(command & 0xf)
        ;info   430, 499
        movlw   15
        andwf   main__command,w
        call    bus_byte_send
        ; line_number = 431
        ;  command := command + 1
        ;info   431, 502
        incf    main__command,f
        ; line_number = 432
        ;  loop_exactly 255 start
        ;info   432, 503
main__45 equ globals___0+38
        movlw   255
        movwf   main__45
main__46:
        ; line_number = 433
        ; delay 600 start
        ;info   433, 505
        ; Delay expression evaluates to 600
        ; line_number = 434
        ; do_nothing
        ;info   434, 505
        ; 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 = 433
        ; delay 600 done
        ; line_number = 432
        ;  loop_exactly 255 wrap-up
        decfsz  main__45,f
        goto    main__46
        ; line_number = 432
        ;  loop_exactly 255 done
        ; line_number = 435
        ; call _uart_byte_put('.')
        ;info   435, 511
        movlw   46
        call    _uart_byte_put

        ; line_number = 424
        ;  loop_forever wrap-up
        goto    main__41
        ; line_number = 424
        ;  loop_forever done
        goto    main__79
        ; line_number = 437
        ; case 22
main__74:
        ; # Write:
        ; line_number = 439
        ;  call hex_word_get()
        ;info   439, 515
        call    hex_word_get
        ; line_number = 440
        ;  value := hex_byte_get()
        ;info   440, 516
        call    hex_byte_get
        movwf   main__value
        ; line_number = 441
        ;  if end_of_line_get() start
        ;info   441, 518
        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 = 442
        ; call _uart_hex_put(hex_high)
        ;info   442, 521
        movf    hex_high,w
        call    _uart_hex_put
        ; line_number = 443
        ;  call _uart_hex_put(hex_low)
        ;info   443, 523
        movf    hex_low,w
        call    _uart_hex_put
        ; line_number = 444
        ;  call _uart_hex_put(value)
        ;info   444, 525
        movf    main__value,w
        call    _uart_hex_put
        ; line_number = 445
        ;  call _uart_crlf_put()
        ;info   445, 527
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__48:
        ; line_number = 441
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 446
        ; case 23
main__75:
        ; # Transmit:
        ; line_number = 448
        ;  value := hex_byte_get()
        ;info   448, 529
        call    hex_byte_get
        movwf   main__value
        ; line_number = 449
        ;  if end_of_line_get() start
        ;info   449, 531
        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 = 452
        ;  call bus_byte_send(value)
        ;info   452, 534
        movf    main__value,w
        call    bus_byte_send

        ; line_number = 454
        ;  value := bus_byte_receive()
        ;info   454, 536
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 455
        ;  if time_out start
        ;info   455, 538
        ; =>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 = 456
        ; call _uart_byte_put('@')
        ;info   456, 540
        movlw   64
        call    _uart_byte_put
        goto    main__51
        ; 2GOTO: Starting code 2
main__50:
        ; line_number = 458
        ; if bus_msb start
        ;info   458, 543
        ; =>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 = 459
        ; call _uart_byte_put('1')
        ;info   459, 545
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__49:
        ; line_number = 458
        ; if bus_msb done
        ; line_number = 460
        ; call _uart_hex_put(value)
        ;info   460, 547
        movf    main__value,w
        call    _uart_hex_put
main__51:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 455
        ;  if time_out done
        ; line_number = 461
        ; call _uart_byte_put(' ')
        ;info   461, 549
        movlw   32
        call    _uart_byte_put

        ; line_number = 463
        ;  value := bus_byte_receive()
        ;info   463, 551
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 464
        ;  if time_out start
        ;info   464, 553
        ; =>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 = 465
        ; call _uart_byte_put('@')
        ;info   465, 555
        movlw   64
        call    _uart_byte_put
        goto    main__54
        ; 2GOTO: Starting code 2
main__53:
        ; line_number = 467
        ; if bus_msb start
        ;info   467, 558
        ; =>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 = 468
        ; call _uart_byte_put('1')
        ;info   468, 560
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__52:
        ; line_number = 467
        ; if bus_msb done
        ; line_number = 469
        ; call _uart_hex_put(value)
        ;info   469, 562
        movf    main__value,w
        call    _uart_hex_put
main__54:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 464
        ;  if time_out done
        ; line_number = 470
        ; call _uart_byte_put(' ')
        ;info   470, 564
        movlw   32
        call    _uart_byte_put

        ; line_number = 472
        ;  value := bus_byte_receive()
        ;info   472, 566
        call    bus_byte_receive
        movwf   main__value
        ; line_number = 473
        ;  if time_out start
        ;info   473, 568
        ; =>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 = 474
        ; call _uart_byte_put('@')
        ;info   474, 570
        movlw   64
        call    _uart_byte_put
        goto    main__57
        ; 2GOTO: Starting code 2
main__56:
        ; line_number = 476
        ; if bus_msb start
        ;info   476, 573
        ; =>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 = 477
        ; call _uart_byte_put('1')
        ;info   477, 575
        movlw   49
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
main__55:
        ; line_number = 476
        ; if bus_msb done
        ; line_number = 478
        ; call _uart_hex_put(value)
        ;info   478, 577
        movf    main__value,w
        call    _uart_hex_put

main__57:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 473
        ;  if time_out done
        ; line_number = 480
        ; call _uart_crlf_put()
        ;info   480, 579
        call    _uart_crlf_put
        ; Recombine size1 = 0 || size2 = 0
main__58:
        ; line_number = 449
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 481
        ; case 25
main__76:
        ; # Sweep bus looking for modules:
        ; line_number = 483
        ;  if end_of_line_get() start
        ;info   483, 581
        call    end_of_line_get
        ; =>bit_code_emit@symbol(): sym=end_of_line_get__0return
        ; No 1TEST: true.size=18 false.size=0
        ; No 2TEST: true.size=18 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 = 484
        ; node := 1
        ;info   484, 584
        movlw   1
        movwf   main__node
        ; line_number = 485
        ;  while node != 0 start
main__59:
        ;info   485, 586
        ; Left minus Right
        movf    main__node,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=0 false.size=13
        ; No 2TEST: true.size=0 false.size=13
        ; 1GOTO: Single test with GOTO
        btfsc   __z___byte, __z___bit
        goto    main__61
        ; line_number = 486
        ; call bus_select_send(node)
        ;info   486, 589
        movf    main__node,w
        call    bus_select_send
        ; line_number = 487
        ;  if bus_byte_receive() = 0xa5 start
        ;info   487, 591
        ; Left minus Right
        call    bus_byte_receive
        addlw   91
        ; =>bit_code_emit@symbol(): sym=__z
        ; No 1TEST: true.size=5 false.size=0
        ; No 2TEST: true.size=5 false.size=0
        ; 1GOTO: Single test with GOTO
        btfss   __z___byte, __z___bit
        goto    main__60
        ; line_number = 488
        ; call _uart_hex_put(node)
        ;info   488, 595
        movf    main__node,w
        call    _uart_hex_put
        ; line_number = 489
        ;  call _uart_byte_put(':')
        ;info   489, 597
        movlw   58
        call    _uart_byte_put
        ; line_number = 490
        ;  call id_dump()
        ;info   490, 599
        call    id_dump
        ; Recombine size1 = 0 || size2 = 0
main__60:
        ; line_number = 487
        ;  if bus_byte_receive() = 0xa5 done
        ; line_number = 491
        ; node := node + 1
        ;info   491, 600
        incf    main__node,f
        goto    main__59
main__61:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 485
        ;  while node != 0 done
        ; Recombine size1 = 0 || size2 = 0
main__62:
        ; line_number = 483
        ;  if end_of_line_get() done
        goto    main__79
        ; line_number = 492
        ; default
main__77:
        ; # Command not implemented:
        ; line_number = 494
        ;  call _uart_byte_put('?')
        ;info   494, 603
        movlw   63
        call    _uart_byte_put
        ; line_number = 495
        ;  call _uart_crlf_put()
        ;info   495, 605
        call    _uart_crlf_put
main__79:
        ; line_number = 279
        ;  switch command - 'A' done
main__82:
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; &&||: 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=371 false_size=1
        ; 2GOTO: code1 final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 277
        ; if 'A' <= command && command <= 'Z' done
        ; # Provide a prompt:
        ; line_number = 509
        ;  call _uart_byte_put('>')
        ;info   509, 606
        movlw   62
        call    _uart_byte_put


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




        ; line_number = 512
        ;info   512, 609
        ; procedure id_dump
id_dump:
        ; arguments_none
        ; line_number = 514
        ;  returns_nothing

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

        ; line_number = 519
        ;  local value byte
id_dump__value equ globals___0+28

        ; # Reset the id index:
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 522
        ;  call bus_byte_send(0xfe)
        ;info   522, 609
        movlw   254
        call    bus_byte_send

        ; # Very few modules return the total length right now (just Shaft2);
        ; # Eventually they all will.  This routine will time-out if nothing
        ; # is forthcoming.
        ; line_number = 527
        ;  value := bus_byte_receive()
        ;info   527, 611
        call    bus_byte_receive
        movwf   id_dump__value

        ; # Read the fixed part:
        ; line_number = 530
        ;  loop_exactly 5 start
        ;info   530, 613
id_dump__1 equ globals___0+40
        movlw   5
        movwf   id_dump__1
id_dump__2:
        ; line_number = 531
        ; value := bus_byte_send_receive(0xfd)
        ;info   531, 615
        movlw   253
        call    bus_byte_send_receive
        movwf   id_dump__value
        ; line_number = 532
        ;  call _uart_hex_put(value)
        ;info   532, 618
        movf    id_dump__value,w
        call    _uart_hex_put
        ; line_number = 533
        ;  call _uart_space_put()
        ;info   533, 620
        call    _uart_space_put


        ; line_number = 530
        ;  loop_exactly 5 wrap-up
        decfsz  id_dump__1,f
        goto    id_dump__2
        ; line_number = 530
        ;  loop_exactly 5 done
        ; # Dump the name string:
        ; line_number = 537
        ;  if value & 2 != 0 start
        ;info   537, 623
        ; 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 = 538
        ; call string_dump()
        ;info   538, 626
        call    string_dump

        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 537
        ;  if value & 2 != 0 done
        ; # Dump the vendor string:
        ; line_number = 541
        ;  if value & 1 != 0 start
        ;info   541, 627
        ; 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 = 542
        ; call string_dump()
        ;info   542, 630
        call    string_dump

        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 541
        ;  if value & 1 != 0 done
        ; line_number = 544
        ; call _uart_crlf_put()
        ;info   544, 631
        call    _uart_crlf_put


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




        ; line_number = 547
        ;info   547, 633
        ; procedure string_dump
string_dump:
        ; arguments_none
        ; line_number = 549
        ;  returns_nothing

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

        ; line_number = 553
        ;  local length byte
string_dump__length equ globals___0+29

        ; # We have a vendor string; now read the length:
        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 556
        ;  call _uart_space_put()
        ;info   556, 633
        call    _uart_space_put
        ; line_number = 557
        ;  length := bus_byte_send_receive(0xfd)
        ;info   557, 634
        movlw   253
        call    bus_byte_send_receive
        movwf   string_dump__length
        ; line_number = 558
        ;  call _uart_hex_put(length)
        ;info   558, 637
        movf    string_dump__length,w
        call    _uart_hex_put
        ; line_number = 559
        ;  call _uart_byte_put(':')
        ;info   559, 639
        movlw   58
        call    _uart_byte_put

        ; # Print out the vendor string:
        ; line_number = 562
        ;  call _uart_byte_put('"')
        ;info   562, 641
        movlw   34
        call    _uart_byte_put
        ; line_number = 563
        ;  loop_exactly length start
        ;info   563, 643
string_dump__1 equ globals___0+41
        movf    string_dump__length,w
        movwf   string_dump__1
string_dump__2:
        ; line_number = 564
        ; call _uart_byte_put(bus_byte_send_receive(0xfd))
        ;info   564, 645
        movlw   253
        call    bus_byte_send_receive
        call    _uart_byte_put
        ; line_number = 563
        ;  loop_exactly length wrap-up
        decfsz  string_dump__1,f
        goto    string_dump__2
        ; line_number = 563
        ;  loop_exactly length done
        ; line_number = 565
        ; call _uart_byte_put('"')
        ;info   565, 650
        movlw   34
        call    _uart_byte_put


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




        ; line_number = 568
        ;info   568, 653
        ; 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 = 569
        ; argument value byte
bus_byte_send_receive__value equ globals___0+30
        ; line_number = 570
        ;  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:X0=cu=>X0)
        ; line_number = 575
        ;  call bus_byte_send(value)
        ;info   575, 654
        movf    bus_byte_send_receive__value,w
        call    bus_byte_send
        ; #call bus_byte_receive()
        ; line_number = 577
        ;  return bus_byte_receive() start
        ; line_number = 577
        ;info   577, 656
        call    bus_byte_receive
        return  
        ; line_number = 577
        ;  return bus_byte_receive() done


        ; delay after procedure statements=non-uniform




        ; line_number = 580
        ;info   580, 658
        ; 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 = 581
        ; argument value byte
bus_byte_send__value equ globals___0+31
        ; line_number = 582
        ;  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:X0=cu=>X0)
        ; line_number = 587
        ;  loop_exactly 4 start
        ;info   587, 659
bus_byte_send__1 equ globals___0+42
        movlw   4
        movwf   bus_byte_send__1
bus_byte_send__2:
        ; line_number = 588
        ; call shift2(value & 3)
        ;info   588, 661
        movlw   3
        andwf   bus_byte_send__value,w
        call    shift2
        ; line_number = 589
        ;  value := value >> 2
        ;info   589, 664
        ; 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 = 587
        ;  loop_exactly 4 wrap-up
        decfsz  bus_byte_send__1,f
        goto    bus_byte_send__2
        ; line_number = 587
        ;  loop_exactly 4 done
        ; line_number = 590
        ; call shift2(4)
        ;info   590, 670
        movlw   4
        call    shift2
        ; #call _uart_byte_put('}')


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




        ; line_number = 594
        ;info   594, 673
        ; 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 = 595
        ; argument node byte
bus_select_send__node equ globals___0+32
        ; line_number = 596
        ;  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:X0=cu=>X0)
        ; line_number = 600
        ;  loop_exactly 4 start
        ;info   600, 674
bus_select_send__1 equ globals___0+43
        movlw   4
        movwf   bus_select_send__1
bus_select_send__2:
        ; line_number = 601
        ; call shift2(node & 3)
        ;info   601, 676
        movlw   3
        andwf   bus_select_send__node,w
        call    shift2
        ; line_number = 602
        ;  node := node >> 2
        ;info   602, 679
        ; 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 = 600
        ;  loop_exactly 4 wrap-up
        decfsz  bus_select_send__1,f
        goto    bus_select_send__2
        ; line_number = 600
        ;  loop_exactly 4 done
        ; line_number = 603
        ; call shift2(5)
        ;info   603, 685
        movlw   5
        call    shift2


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




        ; line_number = 606
        ;info   606, 688
        ; procedure bus_byte_receive
bus_byte_receive:
        ; arguments_none
        ; line_number = 608
        ;  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:X0=cu=>X0)
        ; line_number = 615
        ;  time_out := _false
        ;info   615, 688
        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 = 618
        ;  loop_exactly 15 start
        ;info   618, 689
bus_byte_receive__1 equ globals___0+44
        movlw   15
        movwf   bus_byte_receive__1
bus_byte_receive__2:
        ; line_number = 619
        ; loop_exactly 20 start
        ;info   619, 691
bus_byte_receive__3 equ globals___0+45
        movlw   20
        movwf   bus_byte_receive__3
bus_byte_receive__4:
        ; line_number = 620
        ; call shift2(6)
        ;info   620, 693
        movlw   6
        call    shift2
        ; line_number = 621
        ;  if !(bus_shift@1) start
        ;info   621, 695
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 = 623
        ;  bus_msb := _false
        ;info   623, 697
        bcf     bus_msb___byte, bus_msb___bit
        ; line_number = 624
        ;  if bus_shift@0 start
        ;info   624, 698
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 = 625
        ; bus_msb := _true
        ;info   625, 699
        bsf     bus_msb___byte, bus_msb___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 624
        ;  if bus_shift@0 done
        ; line_number = 626
        ; loop_exactly 4 start
        ;info   626, 700
bus_byte_receive__6 equ globals___0+46
        movlw   4
        movwf   bus_byte_receive__6
bus_byte_receive__7:
        ; line_number = 627
        ; call shift2(0)
        ;info   627, 702
        movlw   0
        call    shift2
        ; line_number = 626
        ; loop_exactly 4 wrap-up
        decfsz  bus_byte_receive__6,f
        goto    bus_byte_receive__7
        ; line_number = 626
        ; loop_exactly 4 done
        ; #call _uart_byte_put(']')
        ; line_number = 629
        ;  return bus_shift start
        ; line_number = 629
        ;info   629, 706
        movf    bus_shift,w
        return  
        ; line_number = 629
        ;  return bus_shift done
bus_byte_receive__9:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 621
        ;  if !(bus_shift@1) done
        ; line_number = 619
        ; loop_exactly 20 wrap-up
        decfsz  bus_byte_receive__3,f
        goto    bus_byte_receive__4
        ; line_number = 619
        ; loop_exactly 20 done
        ; line_number = 618
        ;  loop_exactly 15 wrap-up
        decfsz  bus_byte_receive__1,f
        goto    bus_byte_receive__2
        ; line_number = 618
        ;  loop_exactly 15 done
        ; line_number = 630
        ; time_out := _true
        ;info   630, 712
        bsf     time_out___byte, time_out___bit
        ; #call _uart_byte_put(']')
        ; line_number = 632
        ;  return 0 start
        ; line_number = 632
        ;info   632, 713
        retlw   0
        ; line_number = 632
        ;  return 0 done


        ; delay after procedure statements=non-uniform




        ; line_number = 635
        ;info   635, 714
        ; procedure shift2
shift2:
        ; Last argument is sitting in W; save into argument variable
        movwf   shift2__value
        ; delay=4294967295
        ; line_number = 636
        ; argument value byte
shift2__value equ globals___0+33
        ; line_number = 637
        ;  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:X0=cu=>X0)
        ; line_number = 646
        ;  p4 := _false
        ;info   646, 715
        bcf     p4___byte, p4___bit
        ; line_number = 647
        ;  p3 := _false
        ;info   647, 716
        bcf     p3___byte, p3___bit
        ; line_number = 648
        ;  p2 := _false
        ;info   648, 717
        bcf     p2___byte, p2___bit

        ; line_number = 650
        ;  if value@2 start
        ;info   650, 718
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 = 651
        ; p4 := _true
        ;info   651, 719
        bsf     p4___byte, p4___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 650
        ;  if value@2 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')
        ; line_number = 655
        ;  if value@1 start
        ;info   655, 720
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 = 656
        ; p3 := _true
        ;info   656, 721
        bsf     p3___byte, p3___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 655
        ;  if value@1 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')
        ; line_number = 660
        ;  if value@0 start
        ;info   660, 722
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 = 661
        ; p2 := _true
        ;info   661, 723
        bsf     p2___byte, p2___bit
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 660
        ;  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 = 667
        ;  if p6 start
        ;info   667, 724
        ; =>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 = 669
        ;  p6 := _false
        ;info   669, 726
        bcf     p6___byte, p6___bit
        ; # Wait until the bus processor has a response.
        ; line_number = 671
        ;  while p5 start
shift2__5:
        ;info   671, 727
        ; =>bit_code_emit@symbol(): sym=p5
        ; 1TEST: Single test with code in skip slot
        btfsc   p5___byte, p5___bit
        ; line_number = 672
        ; do_nothing
        ;info   672, 728
        goto    shift2__5
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 671
        ;  while p5 done
        goto    shift2__7
        ; 2GOTO: Starting code 2
shift2__6:
        ; #call _uart_byte_put('H')
        ; line_number = 675
        ;  p6 := _true
        ;info   675, 730
        bsf     p6___byte, p6___bit
        ; # Wait until the bus processor has a response.
        ; line_number = 677
        ;  while !p5 start
shift2__4:
        ;info   677, 731
        ; =>bit_code_emit@symbol(): sym=p5
        ; 1TEST: Single test with code in skip slot
        btfss   p5___byte, p5___bit
        ; line_number = 678
        ; do_nothing
        ;info   678, 732

        goto    shift2__4
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 677
        ;  while !p5 done
shift2__7:
        ; 2GOTO: code1 final bitstates:(data:X0=cu=>X0 code:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:X0=cu=>X0 code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 667
        ;  if p6 done
        ; # The bus processor has a response.  Now grab the data.
        ; line_number = 681
        ;  bus_shift := bus_shift << 2
        ;info   681, 733
        ; Assignment of variable to self (no code needed)
        rlf     bus_shift,f
        rlf     bus_shift,f
        movlw   252
        andwf   bus_shift,f
        ; line_number = 682
        ;  if p1 start
        ;info   682, 737
        ; =>bit_code_emit@symbol(): sym=p1
        ; 1TEST: Single test with code in skip slot
        btfsc   p1___byte, p1___bit
        ; line_number = 683
        ; bus_shift@1 := _true
        ;info   683, 738
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 = 682
        ;  if p1 done
        ; #	call _uart_byte_put('1')
        ; #else
        ; #	call _uart_byte_put('0')
        ; line_number = 687
        ;  if p0 start
        ;info   687, 739
        ; =>bit_code_emit@symbol(): sym=p0
        ; 1TEST: Single test with code in skip slot
        btfsc   p0___byte, p0___bit
        ; line_number = 688
        ; bus_shift@0 := _true
        ;info   688, 740
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 = 687
        ;  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 = 696
        ;info   696, 742
        ; procedure character_get
character_get:
        ; arguments_none
        ; line_number = 698
        ;  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 = 704
        ;  local character byte
character_get__character equ globals___0+34

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 706
        ;  character := host_byte_get()
        ;info   706, 742
        call    host_byte_get
        movwf   character_get__character
        ; #character := _uart_byte_get()
        ; line_number = 708
        ;  call _uart_byte_put(character)
        ;info   708, 744
        movf    character_get__character,w
        call    _uart_byte_put
        ; line_number = 709
        ;  if character = '\r\' start
        ;info   709, 746
        ; 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 = 710
        ; end_of_line := _true
        ;info   710, 750
        bsf     end_of_line___byte, end_of_line___bit
        ; line_number = 711
        ;  call _uart_byte_put('\n\')
        ;info   711, 751
        movlw   10
        call    _uart_byte_put
        ; Recombine size1 = 0 || size2 = 0
character_get__1:
        ; line_number = 709
        ;  if character = '\r\' done
        ; line_number = 712
        ; return character start
        ; line_number = 712
        ;info   712, 753
        movf    character_get__character,w
        return  
        ; line_number = 712
        ; 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 = 715
        ;info   715, 755
        ; procedure end_of_line_get
end_of_line_get:
        ; arguments_none
        ; line_number = 717
        ;  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 = 723
        ;  local character byte
end_of_line_get__character equ globals___0+35

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 725
        ;  if error start
        ;info   725, 755
        ; =>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 = 726
        ; return 0 start
        ; line_number = 726
        ;info   726, 757
        bcf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
        return  
        ; line_number = 726
        ; return 0 done
        ; Recombine size1 = 0 || size2 = 0
end_of_line_get__1:
        ; line_number = 725
        ;  if error done
        ; line_number = 727
        ; while !end_of_line start
end_of_line_get__2:
        ;info   727, 759
        ; =>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 = 728
        ; character := character_get()
        ;info   728, 761
        call    character_get
        movwf   end_of_line_get__character
        ; line_number = 729
        ;  if character != '\r\' && character != '\t\' && character != ' ' start
        ;info   729, 763
        ; 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 = 730
        ; error := _true
        ;info   730, 775
        bsf     error___byte, error___bit
        ; line_number = 731
        ;  call _uart_byte_put('!')
        ;info   731, 776
        movlw   33
        call    _uart_byte_put
        ; line_number = 732
        ;  call _uart_crlf_put()
        ;info   732, 778
        call    _uart_crlf_put
        ; line_number = 733
        ;  return 0 start
        ; line_number = 733
        ;info   733, 779
        bcf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
        return  
        ; line_number = 733
        ;  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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; &&||: 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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 729
        ;  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 = 727
        ; while !end_of_line done
        ; line_number = 734
        ; return 1 start
        ; line_number = 734
        ;info   734, 782
        bsf     end_of_line_get__0return___byte, end_of_line_get__0return___bit
        return  
        ; line_number = 734
        ; return 1 done


        ; delay after procedure statements=non-uniform




        ; line_number = 737
        ;info   737, 784
        ; procedure hex_byte_get
hex_byte_get:
        ; arguments_none
        ; line_number = 739
        ;  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:X0=cu=>X0)
        ; line_number = 744
        ;  call hex_word_get()
        ;info   744, 784
        call    hex_word_get
        ; line_number = 745
        ;  return hex_low start
        ; line_number = 745
        ;info   745, 785
        movf    hex_low,w
        return  
        ; line_number = 745
        ;  return hex_low done


        ; delay after procedure statements=non-uniform




        ; line_number = 748
        ;info   748, 787
        ; procedure hex_word_get
hex_word_get:
        ; arguments_none
        ; line_number = 750
        ;  returns_nothing

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

        ; line_number = 755
        ;  local character byte
hex_word_get__character equ globals___0+36
        ; line_number = 756
        ;  local digit byte
hex_word_get__digit equ globals___0+37

        ; before procedure statements delay=non-uniform, bit states=(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 758
        ;  hex_high := 0
        ;info   758, 787
        clrf    hex_high
        ; line_number = 759
        ;  hex_low := 0
        ;info   759, 788
        clrf    hex_low
        ; line_number = 760
        ;  character := ' '
        ;info   760, 789
        movlw   32
        movwf   hex_word_get__character
        ; line_number = 761
        ;  if !end_of_line start
        ;info   761, 791
        ; =>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 = 762
        ; while character = ' ' || character = '\t\' start
hex_word_get__1:
        ;info   762, 793
        ; 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 = 763
        ; character := character_get()
        ;info   763, 801
        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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 762
        ; while character = ' ' || character = '\t\' done
        ; line_number = 765
        ; loop_forever start
hex_word_get__4:
        ; line_number = 766
        ; if '0' <= character && character <= '9' start
        ;info   766, 804
        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 = 768
        ;info   768, 814
        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 = 770
        ;info   770, 824
        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 = 772
        ;info   772, 834
        ; 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 = 775
        ; error := _true
        ;info   775, 843
        bsf     error___byte, error___bit
        ; line_number = 776
        ;  return start
        ; line_number = 776
        ;info   776, 844
hex_word_get__5:
        ; line_number = 773
        ; return start
        ; line_number = 773
        ;info   773, 844
        retlw   0
        ; line_number = 773
        ; return done
        ; line_number = 776
        ;  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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; &&||: 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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; Recombine code1_bit_states != code2_bit_states
        goto    hex_word_get__8
        ; 2GOTO: Starting code 2
hex_word_get__7:
        ; line_number = 771
        ; digit := character + (10 - 'a')
        ;info   771, 846
        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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; &&||: 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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; Recombine code1_bit_states != code2_bit_states
        goto    hex_word_get__11
        ; 2GOTO: Starting code 2
hex_word_get__10:
        ; line_number = 769
        ; digit := character + (10 - 'A')
        ;info   769, 850
        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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; &&||: 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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; Recombine code1_bit_states != code2_bit_states
        goto    hex_word_get__14
        ; 2GOTO: Starting code 2
hex_word_get__13:
        ; line_number = 767
        ; digit := character - '0'
        ;info   767, 854
        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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:00=uu=>00 code:XX=cc=>XX)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; &&||: 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:X0=cu=>X0)
        ; 2GOTO: code2 final bitstates:(data:XX=cc=>XX code:X0=cu=>X0)
        ; 2GOTO: code final bitstates:(data:00=uu=>00 code:X0=cu=>X0)
        ; line_number = 766
        ; if '0' <= character && character <= '9' done
        ; line_number = 777
        ; hex_high := (hex_high << 4) | (hex_low >> 4)
        ;info   777, 857
hex_word_get__15 equ globals___0+47
        swapf   hex_high,w
        movwf   hex_word_get__15
        movlw   240
        andwf   hex_word_get__15,f
hex_word_get__16 equ globals___0+48
        swapf   hex_low,w
        andlw   15
        iorwf   hex_word_get__15,w
        movwf   hex_high
        ; line_number = 778
        ;  hex_low := (hex_low << 4) | digit
        ;info   778, 865
hex_word_get__17 equ globals___0+48
        swapf   hex_low,w
        andlw   240
        iorwf   hex_word_get__digit,w
        movwf   hex_low
        ; line_number = 779
        ;  character := character_get()
        ;info   779, 869
        call    character_get
        movwf   hex_word_get__character

        ; line_number = 765
        ; loop_forever wrap-up
        goto    hex_word_get__4
        ; line_number = 765
        ; loop_forever done
hex_word_get__18:
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 761
        ;  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, 873
        ; 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:X0=cu=>X0)
        ; line_number = 14
        ;  loop_exactly 255 start
        ;info   14, 873
_uart_byte_safe_get__1 equ globals___0+49
        movlw   255
        movwf   _uart_byte_safe_get__1
_uart_byte_safe_get__2:
        ; line_number = 15
        ; loop_exactly 255 start
        ;info   15, 875
_uart_byte_safe_get__3 equ globals___0+50
        movlw   255
        movwf   _uart_byte_safe_get__3
_uart_byte_safe_get__4:
        ; line_number = 16
        ; if _rcif start
        ;info   16, 877
        ; =>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, 879
        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, 885
        retlw   252
        ; line_number = 18
        ; return 0xfc done


        ; delay after procedure statements=non-uniform




        ; line_number = 21
        ;info   21, 886
        ; 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:X0=cu=>X0)
        ; line_number = 27
        ;  while !_rcif start
_uart_byte_get__1:
        ;info   27, 886
        ; =>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, 887
        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, 888
        movf    _rcreg,w
        return  
        ; line_number = 29
        ; return _rcreg done


        ; delay after procedure statements=non-uniform




        ; line_number = 32
        ;info   32, 890
        ; 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:X0=cu=>X0)
        ; line_number = 39
        ;  call _uart_nibble_put(value >> 4)
        ;info   39, 891
_uart_hex_put__1 equ globals___0+51
        swapf   _uart_hex_put__value,w
        andlw   15
        call    _uart_nibble_put
        ; line_number = 40
        ;  call _uart_nibble_put(value & 0xf)
        ;info   40, 894
        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, 898
        ; 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:X0=cu=>X0)
        ; line_number = 50
        ;  if nibble < 10 start
        ;info   50, 899
        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, 902
        movlw   55
        btfss   __c___byte, __c___bit
        ; line_number = 51
        ; nibble := nibble + '0'
        ;info   51, 904
        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, 906
        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, 909
        ; 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:X0=cu=>X0)
        ; line_number = 63
        ;  call _uart_byte_put(' ')
        ;info   63, 909
        movlw   32
        call    _uart_byte_put


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




        ; line_number = 66
        ;info   66, 912
        ; 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:X0=cu=>X0)
        ; line_number = 73
        ;  call _uart_byte_put('\cr\')
        ;info   73, 912
        movlw   13
        call    _uart_byte_put
        ; line_number = 74
        ;  call _uart_byte_put('\lf\')
        ;info   74, 914
        movlw   10
        call    _uart_byte_put


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




        ; line_number = 77
        ;info   77, 917
        ; 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:X0=cu=>X0)
        ; line_number = 83
        ;  while !_txif start
_uart_byte_put__1:
        ;info   83, 918
        ; =>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, 919
        goto    _uart_byte_put__1
        ; Recombine size1 = 0 || size2 = 0
        ; line_number = 83
        ;  while !_txif done
        ; line_number = 85
        ; _txreg := byte
        ;info   85, 920
        movf    _uart_byte_put__byte,w
        movwf   _txreg


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




        ; Code bank 1; Start address: 2048; End address: 4095
        org     2048
        ; 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=4 Bits=0 Available=12
        ; Region="globals___0" Address=32" Size=80 Bytes=52 Bits=7 Available=27
        ; Region="globals___1" Address=160" Size=80 Bytes=64 Bits=0 Available=16
        ; Region="globals___2" Address=288" Size=80 Bytes=0 Bits=0 Available=80
        ; Region="shared___globals" Address=112" Size=16 Bytes=4 Bits=0 Available=12
        end
