        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 272
globals___3 equ 400
__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) 2000-2005 by Wayne C. Gramlich.
        ; # All rights reserved.

        ; # This is a boot loader that resides in high memory for
        ; # loading programs into low memory.

        ; buffer = 'picbrain11'
        ; line_number = 9
        ; library _pic16f876 entered

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

        ; buffer = '_pic16f876'
        ; line_number = 6
        ; processor pic16f876
        ; line_number = 7
        ; configure_address 0x2007
        ; line_number = 8
        ;  configure_fill 0x0400
        ; line_number = 9
        ;  configure_option cp: off = 0x3030
        ; line_number = 10
        ;  configure_option cp: quarter = 0x2020
        ; line_number = 11
        ;  configure_option cp: half = 0x1010
        ; line_number = 12
        ;  configure_option cp: on = 0x0000
        ; line_number = 13
        ;  configure_option debug: on = 0x000
        ; line_number = 14
        ;  configure_option debug: off = 0x800
        ; line_number = 15
        ;  configure_option wrt: on = 0x200
        ; line_number = 16
        ;  configure_option wrt: off = 0x000
        ; line_number = 17
        ;  configure_option cpd: on = 0x000
        ; line_number = 18
        ;  configure_option cpd: off = 0x100
        ; line_number = 19
        ;  configure_option lvp: on = 0x80
        ; line_number = 20
        ;  configure_option lvp: off = 0x00
        ; line_number = 21
        ;  configure_option boden: on = 0x40
        ; line_number = 22
        ;  configure_option boden: off = 0x00
        ; line_number = 23
        ;  configure_option pwrte: on = 0
        ; line_number = 24
        ;  configure_option pwrte: off = 8
        ; line_number = 25
        ;  configure_option wdte: on = 4
        ; line_number = 26
        ;  configure_option wdte: off = 0
        ; line_number = 27
        ;  configure_option fosc: rc = 3
        ; line_number = 28
        ;  configure_option fosc: hs = 2
        ; line_number = 29
        ;  configure_option fosc: xt = 1
        ; line_number = 30
        ;  configure_option fosc: lp = 0
        ; line_number = 31
        ;  code_bank 0x0 : 0x7ff
        ; line_number = 32
        ;  code_bank 0x800 : 0xfff
        ; line_number = 33
        ;  code_bank 0x1000 : 0x17ff
        ; line_number = 34
        ;  code_bank 0x1800 : 0x1fff
        ; line_number = 35
        ;  data_bank 0x0 : 0x7f
        ; line_number = 36
        ;  data_bank 0x80 : 0xff
        ; line_number = 37
        ;  data_bank 0x100 : 0x17f
        ; line_number = 38
        ;  data_bank 0x180 : 0x1ff
        ; line_number = 39
        ;  global_region 0x20 : 0x6f
        ; line_number = 40
        ;  global_region 0xa0 : 0xef
        ; line_number = 41
        ;  global_region 0x110 : 0x16f
        ; line_number = 42
        ;  global_region 0x190 : 0x1ff
        ; line_number = 43
        ;  shared_region 0x70 : 0x7f
        ; line_number = 44
        ;  interrupts_possible
        ; line_number = 45
        ;  packages pdip = 28
        ; line_number = 46
        ;  pin mclr, vpp, thv, mclr_unused
        ; line_number = 47
        ; pin_bindings pdip = 1
        ; line_number = 48
        ; pin ra0_in, ra0_out, an0, ra0_unused
        ; line_number = 49
        ; pin_bindings pdip = 2
        ; line_number = 50
        ;  bind_to _porta@0
        ; line_number = 51
        ;  or_if ra0_in _trisa 1
        ; line_number = 52
        ;  or_if ra0_in _adcon1 7
        ; line_number = 53
        ;  or_if ra0_in _adcon0 0
        ; line_number = 54
        ;  or_if ra0_out _trisa 0
        ; line_number = 55
        ;  or_if ra0_out _adcon1 7
        ; line_number = 56
        ;  or_if ra0_out _adcon0 0
        ; line_number = 57
        ; pin ra1_in, ra1_out, an1, ra1_unused
        ; line_number = 58
        ; pin_bindings pdip = 3
        ; line_number = 59
        ;  bind_to _porta@1
        ; line_number = 60
        ;  or_if ra1_in _trisa 2
        ; line_number = 61
        ;  or_if ra1_in _adcon1 7
        ; line_number = 62
        ;  or_if ra1_in _adcon0 0
        ; line_number = 63
        ;  or_if ra1_out _trisa 0
        ; line_number = 64
        ;  or_if ra1_out _adcon1 7
        ; line_number = 65
        ;  or_if ra1_out _adcon0 0
        ; line_number = 66
        ; pin ra2_in, ra2_out, an2, vref_minus, ra2_unused
        ; line_number = 67
        ; pin_bindings pdip = 4
        ; line_number = 68
        ;  bind_to _porta@2
        ; line_number = 69
        ;  or_if ra2_in _trisa 4
        ; line_number = 70
        ;  or_if ra2_in _adcon1 7
        ; line_number = 71
        ;  or_if ra2_in _adcon0 0
        ; line_number = 72
        ;  or_if ra2_out _trisa 0
        ; line_number = 73
        ;  or_if ra2_out _adcon1 7
        ; line_number = 74
        ;  or_if ra2_out _adcon0 0
        ; line_number = 75
        ; pin ra3_in, ra3_out, an3, vrev_plus, ra3_unused
        ; line_number = 76
        ; pin_bindings pdip = 5
        ; line_number = 77
        ;  bind_to _porta@3
        ; line_number = 78
        ;  or_if ra3_in _trisa 8
        ; line_number = 79
        ;  or_if ra3_in _adcon1 7
        ; line_number = 80
        ;  or_if ra3_in _adcon0 0
        ; line_number = 81
        ;  or_if ra3_out _trisa 0
        ; line_number = 82
        ;  or_if ra3_out _adcon1 7
        ; line_number = 83
        ;  or_if ra3_out _adcon0 0
        ; line_number = 84
        ; pin ra4_in, ra4_out, t0cki, ra4_unused
        ; line_number = 85
        ; pin_bindings pdip = 6
        ; line_number = 86
        ;  bind_to _porta@4
        ; line_number = 87
        ;  or_if ra4_in _trisa 16
        ; line_number = 88
        ;  or_if ra4_in _adcon1 7
        ; line_number = 89
        ;  or_if ra4_in _adcon0 0
        ; line_number = 90
        ;  or_if ra4_out _trisa 0
        ; line_number = 91
        ;  or_if ra4_out _adcon1 7
        ; line_number = 92
        ;  or_if ra4_out _adcon0 0
        ; line_number = 93
        ; pin ra5_in, ra5_out, an4, ra5_unused
        ; line_number = 94
        ; pin_bindings pdip = 7
        ; line_number = 95
        ;  bind_to _porta@5
        ; line_number = 96
        ;  or_if ra5_in _trisa 32
        ; line_number = 97
        ;  or_if ra5_in _adcon1 7
        ; line_number = 98
        ;  or_if ra5_in _adcon1 0
        ; line_number = 99
        ;  or_if ra5_out _trisa 0
        ; line_number = 100
        ;  or_if ra5_out _adcon1 7
        ; line_number = 101
        ;  or_if ra5_out _adcon0 0
        ; line_number = 102
        ; pin vss, ground
        ; line_number = 103
        ; pin_bindings pdip = 8
        ; line_number = 104
        ; pin osc1, clkin
        ; line_number = 105
        ; pin_bindings pdip = 9
        ; line_number = 106
        ; pin osc2, clkout
        ; line_number = 107
        ; pin_bindings pdip = 10
        ; line_number = 108
        ; pin rc0_in, rc0_out, t1oso, t1cki, rc0_unused
        ; line_number = 109
        ; pin_bindings pdip = 11
        ; line_number = 110
        ;  bind_to _portc@0
        ; line_number = 111
        ;  or_if rc0_in _trisc 1
        ; line_number = 112
        ;  or_if rc0_in _adcon1 7
        ; line_number = 113
        ;  or_if rc0_in _adcon0 0
        ; line_number = 114
        ;  or_if rc0_out _trisc 0
        ; line_number = 115
        ;  or_if rc0_out _adcon1 7
        ; line_number = 116
        ;  or_if rc0_out _adcon0 0
        ; line_number = 117
        ; pin rc1_in, rc1_out, t1osi, ccp2, rc1_unused
        ; line_number = 118
        ; pin_bindings pdip = 12
        ; line_number = 119
        ;  bind_to _portc@1
        ; line_number = 120
        ;  or_if rc1_in _trisc 2
        ; line_number = 121
        ;  or_if rc1_in _adcon1 7
        ; line_number = 122
        ;  or_if rc1_in _adcon0 0
        ; line_number = 123
        ;  or_if rc1_out _trisc 0
        ; line_number = 124
        ;  or_if rc1_out _adcon1 7
        ; line_number = 125
        ;  or_if rc1_out _adcon0 0
        ; line_number = 126
        ; pin rc2_in, rc2_out, ccp1, rc2_unused
        ; line_number = 127
        ; pin_bindings pdip = 13
        ; line_number = 128
        ;  bind_to _portc@2
        ; line_number = 129
        ;  or_if rc2_in _trisc 4
        ; line_number = 130
        ;  or_if rc2_in _adcon1 7
        ; line_number = 131
        ;  or_if rc2_in _adcon0 0
        ; line_number = 132
        ;  or_if rc2_out _trisc 0
        ; line_number = 133
        ;  or_if rc2_out _adcon1 7
        ; line_number = 134
        ;  or_if rc2_out _adcon0 0
        ; line_number = 135
        ; pin rc3_in, rc3_out, sck, scl, rc3_unused
        ; line_number = 136
        ; pin_bindings pdip = 14
        ; line_number = 137
        ;  bind_to _portc@3
        ; line_number = 138
        ;  or_if rc3_in _trisc 8
        ; line_number = 139
        ;  or_if rc3_in _adcon1 7
        ; line_number = 140
        ;  or_if rc3_in _adcon0 0
        ; line_number = 141
        ;  or_if rc3_out _trisc 0
        ; line_number = 142
        ;  or_if rc3_out _adcon1 7
        ; line_number = 143
        ;  or_if rc3_out _adcon0 0
        ; line_number = 144
        ; pin rc4_in, rc4_out, sdi, sda, rc4_unused
        ; line_number = 145
        ; pin_bindings pdip = 15
        ; line_number = 146
        ;  bind_to _portc@4
        ; line_number = 147
        ;  or_if rc4_in _trisc 16
        ; line_number = 148
        ;  or_if rc4_in _adcon1 7
        ; line_number = 149
        ;  or_if rc4_in _adcon0 0
        ; line_number = 150
        ;  or_if rc4_out _trisc 0
        ; line_number = 151
        ;  or_if rc4_out _adcon1 7
        ; line_number = 152
        ;  or_if rc4_out _adcon0 0
        ; line_number = 153
        ; pin rc5_in, rc5_out, sdo, rc5_unused
        ; line_number = 154
        ; pin_bindings pdip = 16
        ; line_number = 155
        ;  bind_to _portc@5
        ; line_number = 156
        ;  or_if rc5_in _trisc 32
        ; line_number = 157
        ;  or_if rc5_in _adcon1 7
        ; line_number = 158
        ;  or_if rc5_in _adcon0 0
        ; line_number = 159
        ;  or_if rc5_out _trisc 0
        ; line_number = 160
        ;  or_if rc5_out _adcon1 7
        ; line_number = 161
        ;  or_if rc5_out _adcon0 0
        ; line_number = 162
        ; pin rc6_in, rc6_out, tx, ck, rc6_unused
        ; line_number = 163
        ; pin_bindings pdip = 17
        ; line_number = 164
        ;  bind_to _portc@6
        ; line_number = 165
        ;  or_if rc6_in _trisc 64
        ; line_number = 166
        ;  or_if rc6_in _adcon1 7
        ; line_number = 167
        ;  or_if rc6_in _adcon0 0
        ; line_number = 168
        ;  or_if rc6_out _trisc 0
        ; line_number = 169
        ;  or_if rc6_out _adcon1 7
        ; line_number = 170
        ;  or_if rc6_out _adcon0 0
        ; line_number = 171
        ;  or_if tx _trisc 0
        ; line_number = 172
        ;  or_if tx _adcon1 7
        ; line_number = 173
        ;  or_if tx _adcon0 0
        ; line_number = 174
        ; pin rc7_in, rc7_out, rx, dt, rc7_unused
        ; line_number = 175
        ; pin_bindings pdip = 18
        ; line_number = 176
        ;  bind_to _portc@7
        ; line_number = 177
        ;  or_if rc7_in _trisc 128
        ; line_number = 178
        ;  or_if rc7_in _adcon1 7
        ; line_number = 179
        ;  or_if rc7_in _adcon0 0
        ; line_number = 180
        ;  or_if rx _trisc 128
        ; line_number = 181
        ;  or_if rx _adcon1 7
        ; line_number = 182
        ;  or_if rx _adcon0 0
        ; line_number = 183
        ;  or_if rc7_out _trisc 0
        ; line_number = 184
        ;  or_if rc7_out _adcon1 7
        ; line_number = 185
        ;  or_if rc7_out _adcon0 0
        ; line_number = 186
        ; pin vss2, ground2
        ; line_number = 187
        ; pin_bindings pdip = 19
        ; line_number = 188
        ; pin vdd, power_supply
        ; line_number = 189
        ; pin_bindings pdip = 20
        ; line_number = 190
        ; pin rb0_in, rb0_out, int, rb0_unused
        ; line_number = 191
        ; pin_bindings pdip = 21
        ; line_number = 192
        ;  bind_to _portb@0
        ; line_number = 193
        ;  or_if rb0_in _trisb 1
        ; line_number = 194
        ;  or_if rb0_in _adcon1 7
        ; line_number = 195
        ;  or_if rb0_in _adcon0 0
        ; line_number = 196
        ;  or_if rb0_out _trisb 0
        ; line_number = 197
        ;  or_if rb0_out _adcon1 7
        ; line_number = 198
        ;  or_if rb0_out _adcon0 0
        ; line_number = 199
        ; pin rb1_in, rb1_out, rb1_unused
        ; line_number = 200
        ; pin_bindings pdip = 22
        ; line_number = 201
        ;  bind_to _portb@1
        ; line_number = 202
        ;  or_if rb1_in _trisb 2
        ; line_number = 203
        ;  or_if rb1_in _adcon1 7
        ; line_number = 204
        ;  or_if rb1_in _adcon0 0
        ; line_number = 205
        ;  or_if rb1_out _trisb 0
        ; line_number = 206
        ;  or_if rb1_out _adcon1 7
        ; line_number = 207
        ;  or_if rb1_out _adcon0 0
        ; line_number = 208
        ; pin rb2_in, rb2_out, rb2_unused
        ; line_number = 209
        ; pin_bindings pdip = 23
        ; line_number = 210
        ;  bind_to _portb@2
        ; line_number = 211
        ;  or_if rb2_in _trisb 4
        ; line_number = 212
        ;  or_if rb2_in _adcon1 7
        ; line_number = 213
        ;  or_if rb2_in _adcon0 0
        ; line_number = 214
        ;  or_if rb2_out _trisb 0
        ; line_number = 215
        ;  or_if rb2_out _adcon1 7
        ; line_number = 216
        ;  or_if rb2_out _adcon0 0
        ; line_number = 217
        ; pin rb3_in, rb3_out, pgm, rb3_unused
        ; line_number = 218
        ; pin_bindings pdip = 24
        ; line_number = 219
        ;  bind_to _portb@3
        ; line_number = 220
        ;  or_if rb3_in _trisb 8
        ; line_number = 221
        ;  or_if rb3_in _adcon1 7
        ; line_number = 222
        ;  or_if rb3_out _trisb 0
        ; line_number = 223
        ;  or_if rb3_out _adcon1 7
        ; line_number = 224
        ; pin rb4_in, rb4_out, rb4_unused
        ; line_number = 225
        ; pin_bindings pdip = 25
        ; line_number = 226
        ;  bind_to _portb@4
        ; line_number = 227
        ;  or_if rb4_in _trisb 16
        ; line_number = 228
        ;  or_if rb4_in _adcon1 7
        ; line_number = 229
        ;  or_if rb4_in _adcon0 0
        ; line_number = 230
        ;  or_if rb4_out _trisb 0
        ; line_number = 231
        ;  or_if rb4_out _adcon1 7
        ; line_number = 232
        ;  or_if rb4_out _adcon0 0
        ; line_number = 233
        ; pin rb5_in, rb5_out, rb5_unused
        ; line_number = 234
        ; pin_bindings pdip = 26
        ; line_number = 235
        ;  bind_to _portb@5
        ; line_number = 236
        ;  or_if rb5_in _trisb 32
        ; line_number = 237
        ;  or_if rb5_in _adcon1 7
        ; line_number = 238
        ;  or_if rb5_in _adcon0 0
        ; line_number = 239
        ;  or_if rb5_out _trisb 0
        ; line_number = 240
        ;  or_if rb5_out _adcon1 7
        ; line_number = 241
        ;  or_if rb5_out _adcon0 0
        ; line_number = 242
        ; pin rb6_in, rb6_out, pgc, rb6_unused
        ; line_number = 243
        ; pin_bindings pdip = 27
        ; line_number = 244
        ;  bind_to _portb@6
        ; line_number = 245
        ;  or_if rb6_in _trisb 64
        ; line_number = 246
        ;  or_if rb6_in _adcon1 7
        ; line_number = 247
        ;  or_if rb6_in _adcon0 0
        ; line_number = 248
        ;  or_if rb6_out _trisb 0
        ; line_number = 249
        ;  or_if rb6_out _adcon1 7
        ; line_number = 250
        ;  or_if rb6_out _adcon0 0
        ; line_number = 251
        ; pin rb7_in, rb7_out, pgd, rb7_unused
        ; line_number = 252
        ; pin_bindings pdip = 28
        ; line_number = 253
        ;  bind_to _portb@7
        ; line_number = 254
        ;  or_if rb7_in _trisb 128
        ; line_number = 255
        ;  or_if rb7_in _adcon1 7
        ; line_number = 256
        ;  or_if rb7_in _adcon0 0
        ; line_number = 257
        ;  or_if rb7_out _trisb 0
        ; line_number = 258
        ;  or_if rb7_out _adcon1 7
        ; line_number = 259
        ;  or_if rb7_out _adcon0 0


        ; # Register and pin definitions:

        ; line_number = 266
        ; library _pic16f87x entered

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

        ; # Common declarations for PIC16F87x series microcontrollers:

        ; # Register and pin definitions:

        ; # Bank 0:

        ; buffer = '_pic16f87x'
        ; line_number = 12
        ; register _indf = 
_indf equ 0

        ; line_number = 14
        ; register _tmr0 = 
_tmr0 equ 1

        ; line_number = 16
        ; register _pcl = 
_pcl equ 2

        ; line_number = 18
        ; register _status = 
_status equ 3
        ; line_number = 19
        ; bind _irp = _status@7
_irp___byte equ _status
_irp___bit equ 7
        ; line_number = 20
        ; bind _rp1 = _status@6
_rp1___byte equ _status
_rp1___bit equ 6
        ; line_number = 21
        ; bind _rp0 = _status@5
_rp0___byte equ _status
_rp0___bit equ 5
        ; line_number = 22
        ; bind _to = _status@4
_to___byte equ _status
_to___bit equ 4
        ; line_number = 23
        ; bind _pd = _status@3
_pd___byte equ _status
_pd___bit equ 3
        ; line_number = 24
        ; bind _z = _status@2
_z___byte equ _status
_z___bit equ 2
        ; line_number = 25
        ; bind _dc = _status@1
_dc___byte equ _status
_dc___bit equ 1

        ; line_number = 27
        ; register _fsr = 
_fsr equ 4

        ; line_number = 29
        ; register _porta = 
_porta equ 5

        ; line_number = 31
        ; register _portb = 
_portb equ 6

        ; line_number = 33
        ; register _portc = 
_portc equ 7

        ; line_number = 35
        ; register _pclath = 
_pclath equ 10

        ; line_number = 37
        ; register _intcon = 
_intcon equ 11
        ; line_number = 38
        ; bind _gie = _intcon@7
_gie___byte equ _intcon
_gie___bit equ 7
        ; line_number = 39
        ; bind _peie = _intcon@6
_peie___byte equ _intcon
_peie___bit equ 6
        ; line_number = 40
        ; bind _t0ie = _intcon@5
_t0ie___byte equ _intcon
_t0ie___bit equ 5
        ; line_number = 41
        ; bind _inte = _intcon@4
_inte___byte equ _intcon
_inte___bit equ 4
        ; line_number = 42
        ; bind _rbie = _intcon@3
_rbie___byte equ _intcon
_rbie___bit equ 3
        ; line_number = 43
        ; bind _t0if = _intcon@2
_t0if___byte equ _intcon
_t0if___bit equ 2
        ; line_number = 44
        ; bind _intf = _intcon@1
_intf___byte equ _intcon
_intf___bit equ 1
        ; line_number = 45
        ; bind _rbf = _intcon@0
_rbf___byte equ _intcon
_rbf___bit equ 0

        ; line_number = 47
        ; register _pir1 = 
_pir1 equ 12
        ; line_number = 48
        ; bind _pspif = _pir1@7
_pspif___byte equ _pir1
_pspif___bit equ 7
        ; line_number = 49
        ; bind _adif = _pir1@6
_adif___byte equ _pir1
_adif___bit equ 6
        ; line_number = 50
        ; bind _rcif = _pir1@5
_rcif___byte equ _pir1
_rcif___bit equ 5
        ; line_number = 51
        ; bind _txif = _pir1@4
_txif___byte equ _pir1
_txif___bit equ 4
        ; line_number = 52
        ; bind _sspif = _pir1@3
_sspif___byte equ _pir1
_sspif___bit equ 3
        ; line_number = 53
        ; bind _ccpif = _pir1@2
_ccpif___byte equ _pir1
_ccpif___bit equ 2
        ; line_number = 54
        ; bind _tmr2if = _pir1@1
_tmr2if___byte equ _pir1
_tmr2if___bit equ 1
        ; line_number = 55
        ; bind _tmr1if = _pir1@0
_tmr1if___byte equ _pir1
_tmr1if___bit equ 0

        ; line_number = 57
        ; register _pir2 = 
_pir2 equ 13
        ; line_number = 58
        ; bind _eeif = _pir2@4
_eeif___byte equ _pir2
_eeif___bit equ 4
        ; line_number = 59
        ; bind _bclif = _pir2@3
_bclif___byte equ _pir2
_bclif___bit equ 3
        ; line_number = 60
        ; bind _ccp2if = _pir2@0
_ccp2if___byte equ _pir2
_ccp2if___bit equ 0

        ; line_number = 62
        ; register _tmr1l = 
_tmr1l equ 14

        ; line_number = 64
        ; register _tmr1h = 
_tmr1h equ 15

        ; line_number = 66
        ; register _t1con = 
_t1con equ 16
        ; line_number = 67
        ; bind _t1ckps1 = _t1con@5
_t1ckps1___byte equ _t1con
_t1ckps1___bit equ 5
        ; line_number = 68
        ; bind _t1ckps0 = _t1con@4
_t1ckps0___byte equ _t1con
_t1ckps0___bit equ 4
        ; line_number = 69
        ; bind _t1oscen = _t1con@3
_t1oscen___byte equ _t1con
_t1oscen___bit equ 3
        ; line_number = 70
        ; bind _t1sync = _t1con@2
_t1sync___byte equ _t1con
_t1sync___bit equ 2
        ; line_number = 71
        ; bind _tmr1cs = _t1con@1
_tmr1cs___byte equ _t1con
_tmr1cs___bit equ 1
        ; line_number = 72
        ; bind _tmr1on = _t1con@0
_tmr1on___byte equ _t1con
_tmr1on___bit equ 0

        ; line_number = 74
        ; register _tmr2 = 
_tmr2 equ 17

        ; line_number = 76
        ; register _t2con = 
_t2con equ 18
        ; line_number = 77
        ; bind _toutps3 = _t2con@6
_toutps3___byte equ _t2con
_toutps3___bit equ 6
        ; line_number = 78
        ; bind _toutps2 = _t2con@5
_toutps2___byte equ _t2con
_toutps2___bit equ 5
        ; line_number = 79
        ; bind _toutps1 = _t2con@4
_toutps1___byte equ _t2con
_toutps1___bit equ 4
        ; line_number = 80
        ; bind _toutps0 = _t2con@3
_toutps0___byte equ _t2con
_toutps0___bit equ 3
        ; line_number = 81
        ; bind _tmr2on = _t2con@2
_tmr2on___byte equ _t2con
_tmr2on___bit equ 2
        ; line_number = 82
        ; bind _t2ckps1 = _t2con@1
_t2ckps1___byte equ _t2con
_t2ckps1___bit equ 1
        ; line_number = 83
        ; bind _t2ckps0 = _t2con@0
_t2ckps0___byte equ _t2con
_t2ckps0___bit equ 0

        ; line_number = 85
        ; register _sspbuf = 
_sspbuf equ 19

        ; line_number = 87
        ; register _sspcon = 
_sspcon equ 20
        ; line_number = 88
        ; bind _wcol = _sspcon@7
_wcol___byte equ _sspcon
_wcol___bit equ 7
        ; line_number = 89
        ; bind _sspov = _sspcon@6
_sspov___byte equ _sspcon
_sspov___bit equ 6
        ; line_number = 90
        ; bind _sspen = _sspcon@5
_sspen___byte equ _sspcon
_sspen___bit equ 5
        ; line_number = 91
        ; bind _ckp = _sspcon@4
_ckp___byte equ _sspcon
_ckp___bit equ 4
        ; line_number = 92
        ; bind _sspm3 = _sspcon@3
_sspm3___byte equ _sspcon
_sspm3___bit equ 3
        ; line_number = 93
        ; bind _sspm2 = _sspcon@2
_sspm2___byte equ _sspcon
_sspm2___bit equ 2
        ; line_number = 94
        ; bind _sspm1 = _sspcon@1
_sspm1___byte equ _sspcon
_sspm1___bit equ 1
        ; line_number = 95
        ; bind _sspm0 = _sspcon@0
_sspm0___byte equ _sspcon
_sspm0___bit equ 0

        ; line_number = 97
        ; register _ccpr1l = 
_ccpr1l equ 21

        ; line_number = 99
        ; register _ccpr1h = 
_ccpr1h equ 22

        ; line_number = 101
        ; register _ccp1con = 
_ccp1con equ 23
        ; line_number = 102
        ; bind _ccp1x = _ccp1con@5
_ccp1x___byte equ _ccp1con
_ccp1x___bit equ 5
        ; line_number = 103
        ; bind _ccp1y = _ccp1con@4
_ccp1y___byte equ _ccp1con
_ccp1y___bit equ 4
        ; line_number = 104
        ; bind _ccp1m3 = _ccp1con@3
_ccp1m3___byte equ _ccp1con
_ccp1m3___bit equ 3
        ; line_number = 105
        ; bind _ccp1m2 = _ccp1con@2
_ccp1m2___byte equ _ccp1con
_ccp1m2___bit equ 2
        ; line_number = 106
        ; bind _ccp1m1 = _ccp1con@1
_ccp1m1___byte equ _ccp1con
_ccp1m1___bit equ 1
        ; line_number = 107
        ; bind _ccp1m0 = _ccp1con@0
_ccp1m0___byte equ _ccp1con
_ccp1m0___bit equ 0

        ; line_number = 109
        ; register _rcsta = 
_rcsta equ 24
        ; line_number = 110
        ; bind _spen = _rcsta@7
_spen___byte equ _rcsta
_spen___bit equ 7
        ; line_number = 111
        ; bind _rx9 = _rcsta@6
_rx9___byte equ _rcsta
_rx9___bit equ 6
        ; line_number = 112
        ; bind _sren = _rcsta@5
_sren___byte equ _rcsta
_sren___bit equ 5
        ; line_number = 113
        ; bind _cren = _rcsta@4
_cren___byte equ _rcsta
_cren___bit equ 4
        ; line_number = 114
        ; bind _adden = _rcsta@3
_adden___byte equ _rcsta
_adden___bit equ 3
        ; line_number = 115
        ; bind _ferr = _rcsta@2
_ferr___byte equ _rcsta
_ferr___bit equ 2
        ; line_number = 116
        ; bind _oerr = _rcsta@1
_oerr___byte equ _rcsta
_oerr___bit equ 1
        ; line_number = 117
        ; bind _rx9d = _rcsta@0
_rx9d___byte equ _rcsta
_rx9d___bit equ 0

        ; line_number = 119
        ; register _txreg = 
_txreg equ 25

        ; line_number = 121
        ; register _rcreg = 
_rcreg equ 26

        ; line_number = 123
        ; register _ccpr2l = 
_ccpr2l equ 27

        ; line_number = 125
        ; register _ccpr2h = 
_ccpr2h equ 28

        ; line_number = 127
        ; register _ccp2con = 
_ccp2con equ 29
        ; line_number = 128
        ; bind _ccp2x = _ccp2con@5
_ccp2x___byte equ _ccp2con
_ccp2x___bit equ 5
        ; line_number = 129
        ; bind _ccp2y = _ccp2con@4
_ccp2y___byte equ _ccp2con
_ccp2y___bit equ 4
        ; line_number = 130
        ; bind _ccp2m3 = _ccp2con@3
_ccp2m3___byte equ _ccp2con
_ccp2m3___bit equ 3
        ; line_number = 131
        ; bind _ccp2m2 = _ccp2con@2
_ccp2m2___byte equ _ccp2con
_ccp2m2___bit equ 2
        ; line_number = 132
        ; bind _ccp2m1 = _ccp2con@1
_ccp2m1___byte equ _ccp2con
_ccp2m1___bit equ 1
        ; line_number = 133
        ; bind _ccp2m0 = _ccp2con@0
_ccp2m0___byte equ _ccp2con
_ccp2m0___bit equ 0

        ; line_number = 135
        ; register _adresh = 
_adresh equ 30

        ; line_number = 137
        ; register _adcon0 = 
_adcon0 equ 31
        ; line_number = 138
        ; bind _adcs1 = _adcon0@7
_adcs1___byte equ _adcon0
_adcs1___bit equ 7
        ; line_number = 139
        ; bind _adcs0 = _adcon0@6
_adcs0___byte equ _adcon0
_adcs0___bit equ 6
        ; line_number = 140
        ; bind _chs2 = _adcon0@5
_chs2___byte equ _adcon0
_chs2___bit equ 5
        ; line_number = 141
        ; bind _chs1 = _adcon0@4
_chs1___byte equ _adcon0
_chs1___bit equ 4
        ; line_number = 142
        ; bind _chs0 = _adcon0@3
_chs0___byte equ _adcon0
_chs0___bit equ 3
        ; line_number = 143
        ; bind _go_done = _adcon0@2
_go_done___byte equ _adcon0
_go_done___bit equ 2
        ; line_number = 144
        ; bind _adon = _adcon0@0
_adon___byte equ _adcon0
_adon___bit equ 0

        ; # Bank 1:

        ; line_number = 148
        ; register _option_reg = 
_option_reg equ 129
        ; line_number = 149
        ; bind _rbpu = _option_reg@7
_rbpu___byte equ _option_reg
_rbpu___bit equ 7
        ; line_number = 150
        ; bind _intedg = _option_reg@6
_intedg___byte equ _option_reg
_intedg___bit equ 6
        ; line_number = 151
        ; bind _t0cs = _option_reg@5
_t0cs___byte equ _option_reg
_t0cs___bit equ 5
        ; line_number = 152
        ; bind _t0se = _option_reg@4
_t0se___byte equ _option_reg
_t0se___bit equ 4
        ; line_number = 153
        ; bind _psa = _option_reg@3
_psa___byte equ _option_reg
_psa___bit equ 3
        ; line_number = 154
        ; bind _ps2 = _option_reg@2
_ps2___byte equ _option_reg
_ps2___bit equ 2
        ; line_number = 155
        ; bind _ps1 = _option_reg@1
_ps1___byte equ _option_reg
_ps1___bit equ 1
        ; line_number = 156
        ; bind _ps0 = _option_reg@0
_ps0___byte equ _option_reg
_ps0___bit equ 0

        ; line_number = 158
        ; register _trisa = 
_trisa equ 133

        ; line_number = 160
        ; register _trisb = 
_trisb equ 134

        ; line_number = 162
        ; register _trisc = 
_trisc equ 135

        ; line_number = 164
        ; register _pie1 = 
_pie1 equ 140
        ; line_number = 165
        ; bind _pspie = _pie1@7
_pspie___byte equ _pie1
_pspie___bit equ 7
        ; line_number = 166
        ; bind _adie = _pie1@6
_adie___byte equ _pie1
_adie___bit equ 6
        ; line_number = 167
        ; bind _rcie = _pie1@5
_rcie___byte equ _pie1
_rcie___bit equ 5
        ; line_number = 168
        ; bind _txie = _pie1@4
_txie___byte equ _pie1
_txie___bit equ 4
        ; line_number = 169
        ; bind _sspie = _pie1@3
_sspie___byte equ _pie1
_sspie___bit equ 3
        ; line_number = 170
        ; bind _ccp1ie = _pie1@2
_ccp1ie___byte equ _pie1
_ccp1ie___bit equ 2
        ; line_number = 171
        ; bind _tmr2ie = _pie1@1
_tmr2ie___byte equ _pie1
_tmr2ie___bit equ 1
        ; line_number = 172
        ; bind _tmr1ie = _pie1@0
_tmr1ie___byte equ _pie1
_tmr1ie___bit equ 0

        ; line_number = 174
        ; register _pie2 = 
_pie2 equ 141
        ; line_number = 175
        ; bind _eeie = _pie2@4
_eeie___byte equ _pie2
_eeie___bit equ 4
        ; line_number = 176
        ; bind _bcie = _pie2@3
_bcie___byte equ _pie2
_bcie___bit equ 3
        ; line_number = 177
        ; bind _ccp2ie = _pie2@0
_ccp2ie___byte equ _pie2
_ccp2ie___bit equ 0

        ; line_number = 179
        ; register _pcon = 
_pcon equ 142
        ; line_number = 180
        ; bind _por = _pcon@1
_por___byte equ _pcon
_por___bit equ 1
        ; line_number = 181
        ; bind _bor = _pcon@0
_bor___byte equ _pcon
_bor___bit equ 0

        ; line_number = 183
        ; register _sspcon2 = 
_sspcon2 equ 145
        ; line_number = 184
        ; bind _gcen = _sspcon2@7
_gcen___byte equ _sspcon2
_gcen___bit equ 7
        ; line_number = 185
        ; bind _ackstat = _sspcon2@6
_ackstat___byte equ _sspcon2
_ackstat___bit equ 6
        ; line_number = 186
        ; bind _ackdt = _sspcon2@5
_ackdt___byte equ _sspcon2
_ackdt___bit equ 5
        ; line_number = 187
        ; bind _acken = _sspcon2@4
_acken___byte equ _sspcon2
_acken___bit equ 4
        ; line_number = 188
        ; bind _rcen = _sspcon2@3
_rcen___byte equ _sspcon2
_rcen___bit equ 3
        ; line_number = 189
        ; bind _pen = _sspcon2@2
_pen___byte equ _sspcon2
_pen___bit equ 2
        ; line_number = 190
        ; bind _rsen = _sspcon2@1
_rsen___byte equ _sspcon2
_rsen___bit equ 1
        ; line_number = 191
        ; bind _sen = _sspcon2@0
_sen___byte equ _sspcon2
_sen___bit equ 0

        ; line_number = 193
        ; register _pr2 = 
_pr2 equ 146

        ; line_number = 195
        ; register _sspadd = 
_sspadd equ 147

        ; line_number = 197
        ; register _sspstat = 
_sspstat equ 148
        ; line_number = 198
        ; bind _smp = _sspstat@7
_smp___byte equ _sspstat
_smp___bit equ 7
        ; line_number = 199
        ; bind _cke = _sspstat@6
_cke___byte equ _sspstat
_cke___bit equ 6
        ; line_number = 200
        ; bind _da = _sspstat@5
_da___byte equ _sspstat
_da___bit equ 5
        ; line_number = 201
        ; bind _p = _sspstat@4
_p___byte equ _sspstat
_p___bit equ 4
        ; line_number = 202
        ; bind _s = _sspstat@3
_s___byte equ _sspstat
_s___bit equ 3
        ; line_number = 203
        ; bind _rw = _sspstat@2
_rw___byte equ _sspstat
_rw___bit equ 2
        ; line_number = 204
        ; bind _ua = _sspstat@1
_ua___byte equ _sspstat
_ua___bit equ 1
        ; line_number = 205
        ; bind _bf = _sspstat@0
_bf___byte equ _sspstat
_bf___bit equ 0

        ; line_number = 207
        ; register _txsta = 
_txsta equ 152
        ; line_number = 208
        ; bind _csrc = _txsta@7
_csrc___byte equ _txsta
_csrc___bit equ 7
        ; line_number = 209
        ; bind _tx9 = _txsta@6
_tx9___byte equ _txsta
_tx9___bit equ 6
        ; line_number = 210
        ; bind _txen = _txsta@5
_txen___byte equ _txsta
_txen___bit equ 5
        ; line_number = 211
        ; bind _sync = _txsta@4
_sync___byte equ _txsta
_sync___bit equ 4
        ; line_number = 212
        ; bind _brgh = _txsta@2
_brgh___byte equ _txsta
_brgh___bit equ 2
        ; line_number = 213
        ; bind _trmt = _txsta@1
_trmt___byte equ _txsta
_trmt___bit equ 1
        ; line_number = 214
        ; bind _tx9d = _txsta@0
_tx9d___byte equ _txsta
_tx9d___bit equ 0

        ; line_number = 216
        ; register _spbrg = 
_spbrg equ 153

        ; line_number = 218
        ; register _adresl = 
_adresl equ 158

        ; line_number = 220
        ; register _adcon1 = 
_adcon1 equ 159
        ; line_number = 221
        ; bind _adfm = _adcon1@7
_adfm___byte equ _adcon1
_adfm___bit equ 7
        ; line_number = 222
        ; bind _pcfg3 = _adcon1@3
_pcfg3___byte equ _adcon1
_pcfg3___bit equ 3
        ; line_number = 223
        ; bind _pcfg2 = _adcon1@2
_pcfg2___byte equ _adcon1
_pcfg2___bit equ 2
        ; line_number = 224
        ; bind _pcfg1 = _adcon1@1
_pcfg1___byte equ _adcon1
_pcfg1___bit equ 1
        ; line_number = 225
        ; bind _pcfg0 = _adcon1@0
_pcfg0___byte equ _adcon1
_pcfg0___bit equ 0

        ; # Bank 2:

        ; line_number = 229
        ; register _eedata = 
_eedata equ 268

        ; line_number = 231
        ; register _eeadr = 
_eeadr equ 269

        ; line_number = 233
        ; register _eedath = 
_eedath equ 270

        ; line_number = 235
        ; register _eeadrh = 
_eeadrh equ 271

        ; # Bank 3:

        ; line_number = 239
        ; register _eecon1 = 
_eecon1 equ 396
        ; line_number = 240
        ; bind _eepgd = _eecon1@7
_eepgd___byte equ _eecon1
_eepgd___bit equ 7
        ; line_number = 241
        ; bind _wrerr = _eecon1@3
_wrerr___byte equ _eecon1
_wrerr___bit equ 3
        ; line_number = 242
        ; bind _wren = _eecon1@2
_wren___byte equ _eecon1
_wren___bit equ 2
        ; line_number = 243
        ; bind _wr = _eecon1@1
_wr___byte equ _eecon1
_wr___bit equ 1
        ; line_number = 244
        ; bind _rd = _eecon1@0
_rd___byte equ _eecon1
_rd___bit equ 0

        ; line_number = 246
        ; register _eecon2 = 
_eecon2 equ 397


        ; buffer = '_pic16f876'
        ; line_number = 266
        ; library _pic16f87x exited


        ; buffer = 'picbrain11'
        ; line_number = 9
        ; library _pic16f876 exited
        ; line_number = 10
        ; 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 = 'picbrain11'
        ; line_number = 10
        ; library clock20mhz exited


        ; # Port and pin definitions:

        ; line_number = 16
        ; constant a_reg = 0
a_reg equ 0
        ; line_number = 17
        ; constant b_reg = 1
b_reg equ 1
        ; line_number = 18
        ; constant c_reg = 2
c_reg equ 2

        ; line_number = 20
        ; constant n1 = 0
n1 equ 0
        ; line_number = 21
        ; constant n1_reg = b_reg
n1_reg equ 1

        ; line_number = 23
        ; constant n2 = 1
n2 equ 1
        ; line_number = 24
        ; constant n2_reg = a_reg
n2_reg equ 0

        ; line_number = 26
        ; constant n3 = 2
n3 equ 2
        ; line_number = 27
        ; constant n3_reg = b_reg
n3_reg equ 1

        ; line_number = 29
        ; constant n4 = 3
n4 equ 3
        ; line_number = 30
        ; constant n4_reg = a_reg
n4_reg equ 0

        ; line_number = 32
        ; constant n5 = 4
n5 equ 4
        ; line_number = 33
        ; constant n5_reg = b_reg
n5_reg equ 1

        ; line_number = 35
        ; constant n6 = 5
n6 equ 5
        ; line_number = 36
        ; constant n6_reg = a_reg
n6_reg equ 0

        ; line_number = 38
        ; constant n7 = 6
n7 equ 6
        ; line_number = 39
        ; constant n7_reg = b_reg
n7_reg equ 1

        ; line_number = 41
        ; constant n8 = 7
n8 equ 7
        ; line_number = 42
        ; constant n8_reg = c_reg
n8_reg equ 2

        ; line_number = 44
        ; constant n9 = 8
n9 equ 8
        ; line_number = 45
        ; constant n9_reg = c_reg
n9_reg equ 2

        ; line_number = 47
        ; constant n10 = 9
n10 equ 9
        ; line_number = 48
        ; constant n10_reg = c_reg
n10_reg equ 2

        ; line_number = 50
        ; constant n11 = 10
n11 equ 10
        ; line_number = 51
        ; constant n11_reg = c_reg
n11_reg equ 2

        ; line_number = 53
        ; constant n_none = 11
n_none equ 11

        ; # Port definitions:

        ; line_number = 57
        ; package pdip
        ; line_number = 58
        ; pin 1 = mclr
        ; line_number = 59
        ;  pin 2 = ra0_in, name = n2in, bit = n2in_bit, mask = n2in_mask
n2in___byte equ _porta
n2in___bit equ 0
n2in_bit equ 0
n2in_mask equ 1
        ; line_number = 60
        ;  pin 3 = ra1_out, name = n2out, bit = n2out_bit, mask = n2out_mask
n2out___byte equ _porta
n2out___bit equ 1
n2out_bit equ 1
n2out_mask equ 2
        ; line_number = 61
        ;  pin 4 = ra2_in, name = n4in, bit = n4in_bit, mask = n4in_mask
n4in___byte equ _porta
n4in___bit equ 2
n4in_bit equ 2
n4in_mask equ 4
        ; line_number = 62
        ;  pin 5 = ra3_out, name = n4out, bit = n4out_bit, mask = n4out_mask
n4out___byte equ _porta
n4out___bit equ 3
n4out_bit equ 3
n4out_mask equ 8
        ; line_number = 63
        ;  pin 6 = ra4_in, name = n6in, bit = n6in_bit, mask = n6in_mask
n6in___byte equ _porta
n6in___bit equ 4
n6in_bit equ 4
n6in_mask equ 16
        ; line_number = 64
        ;  pin 7 = ra5_out, name = n6out, bit = n6_out_bit, mask = n6out_mask
n6out___byte equ _porta
n6out___bit equ 5
n6_out_bit equ 5
n6out_mask equ 32
        ; line_number = 65
        ;  pin 8 = ground
        ; line_number = 66
        ;  pin 9 = osc1
        ; line_number = 67
        ;  pin 10 = osc2
        ; line_number = 68
        ;  pin 11 = rc0_in, name = n9in, bit = n9in_bit, mask = n9in_mask
n9in___byte equ _portc
n9in___bit equ 0
n9in_bit equ 0
n9in_mask equ 1
        ; line_number = 69
        ;  pin 12 = rc1_out, name = n9out, bit = n9out_bit, mask = n9out_mask
n9out___byte equ _portc
n9out___bit equ 1
n9out_bit equ 1
n9out_mask equ 2
        ; line_number = 70
        ;  pin 13 = rc2_in, name = n8in, bit = n8in_bit, mask = n8in_mask
n8in___byte equ _portc
n8in___bit equ 2
n8in_bit equ 2
n8in_mask equ 4
        ; line_number = 71
        ;  pin 14 = rc3_in, name = n10in, bit = n10in_bit, mask = n10in_mask
n10in___byte equ _portc
n10in___bit equ 3
n10in_bit equ 3
n10in_mask equ 8
        ; line_number = 72
        ;  pin 15 = rc4_out, name = n10out, bit = n10out_bit, mask = n10out_mask
n10out___byte equ _portc
n10out___bit equ 4
n10out_bit equ 4
n10out_mask equ 16
        ; line_number = 73
        ;  pin 16 = rc5_out, name = n8out, bit = n8out_bit, mask = n8out_mask
n8out___byte equ _portc
n8out___bit equ 5
n8out_bit equ 5
n8out_mask equ 32
        ; line_number = 74
        ;  pin 17 = rc6_out, name = n11out, bit = n11out_bit, mask = n11out_mask
n11out___byte equ _portc
n11out___bit equ 6
n11out_bit equ 6
n11out_mask equ 64
        ; line_number = 75
        ;  pin 18 = rc7_in, name = n11in, bit = n11in_bit, mask = n11in_mask
n11in___byte equ _portc
n11in___bit equ 7
n11in_bit equ 7
n11in_mask equ 128
        ; line_number = 76
        ;  pin 19 = ground2
        ; line_number = 77
        ;  pin 20 = power_supply
        ; line_number = 78
        ;  pin 21 = rb0_in, name = n7in, bit = n7in_bit, mask = n7in_mask
n7in___byte equ _portb
n7in___bit equ 0
n7in_bit equ 0
n7in_mask equ 1
        ; line_number = 79
        ;  pin 22 = rb1_out, name = n7out, bit = n7_out_bit, mask = n7out_mask
n7out___byte equ _portb
n7out___bit equ 1
n7_out_bit equ 1
n7out_mask equ 2
        ; line_number = 80
        ;  pin 23 = rb2_in, name = n5in, bit = n5in_bit, mask = n5in_mask
n5in___byte equ _portb
n5in___bit equ 2
n5in_bit equ 2
n5in_mask equ 4
        ; line_number = 81
        ;  pin 24 = rb3_out, name = n5out, bit = n5out_bit, mask = n5out_mask
n5out___byte equ _portb
n5out___bit equ 3
n5out_bit equ 3
n5out_mask equ 8
        ; line_number = 82
        ;  pin 25 = rb4_in, name = n3in, bit = n3in_bit, mask = n3in_mask
n3in___byte equ _portb
n3in___bit equ 4
n3in_bit equ 4
n3in_mask equ 16
        ; line_number = 83
        ;  pin 26 = rb5_out, name = n3out, bit = n3out_bit, mask = n3out_mask
n3out___byte equ _portb
n3out___bit equ 5
n3out_bit equ 5
n3out_mask equ 32
        ; line_number = 84
        ;  pin 27 = rb6_in, name = n1in, bit = n1in_bit, mask = n1in_mask
n1in___byte equ _portb
n1in___bit equ 6
n1in_bit equ 6
n1in_mask equ 64
        ; line_number = 85
        ;  pin 28 = rb7_out, name = n1out, bit = n1out_bit, mask = n1out_mask
n1out___byte equ _portb
n1out___bit equ 7
n1out_bit equ 7
n1out_mask equ 128

        ; # The tether is expected on connector N1:
        ; #constant tether_socket = n1
        ; line_number = 89
        ; constant tether_socket = n1
tether_socket equ 0

        ; # Some general constants:
        ; line_number = 92
        ; constant ascii_mask = 0x7f
ascii_mask equ 127
        ; line_number = 93
        ; constant tab = 8
tab equ 8
        ; line_number = 94
        ; constant line_feed = 10
line_feed equ 10
        ; line_number = 95
        ; constant carriage_return = 13
carriage_return equ 13
        ; line_number = 96
        ; constant space = 32
space equ 32
        ; line_number = 97
        ; constant register_mask = 0x7f
register_mask equ 127

        ; # Stome timing constants:
        ; line_number = 100
        ; constant baud_rate = 2400
baud_rate equ 2400
        ; line_number = 101
        ; constant instructions_per_bit = instruction_rate / baud_rate
instructions_per_bit equ 2083
        ; line_number = 102
        ; constant delays_per_bit = 3
delays_per_bit equ 3
        ; line_number = 103
        ; constant instructions_per_delay = instructions_per_bit / delays_per_bit
instructions_per_delay equ 694
        ; line_number = 104
        ; constant extra_delay_instructions = 8
extra_delay_instructions equ 8
        ; line_number = 105
        ; constant extra_bit_instructions = extra_delay_instructions * delays_per_bit
extra_bit_instructions equ 24
        ; line_number = 106
        ; constant delay_instructions = instructions_per_delay - extra_delay_instructions
delay_instructions equ 686

        ; # The null pulse that comes back from a clock pulse command is supposed to be
        ; # exactly 9 bits long.  9 bits at 2400 baud is 9/2400 = 3.75mS.  The number
        ; # iterations through the loop is 3.75mS / (number of instructions per iteration.)
        ; line_number = 111
        ; constant nine_bits_instructions = (clock_rate * 9) / (4 * baud_rate)
nine_bits_instructions equ 18750
        ; line_number = 112
        ; constant instructions_per_iteration = 13
instructions_per_iteration equ 13
        ; line_number = 113
        ; constant iterations_for_nine_bits = nine_bits_instructions / instructions_per_iteration
iterations_for_nine_bits equ 1442
        ; line_number = 114
        ; constant iterations_high = iterations_for_nine_bits / 256
iterations_high equ 5
        ; line_number = 115
        ; constant iterations_low = iterations_for_nine_bits - (iterations_high * 256)
iterations_low equ 162

        ; line_number = 117
        ; origin 0
        org     0


        ; line_number = 121
        ; procedure start
start:
        ; arguments_none
        ; line_number = 123
        ;  returns_nothing

        ; # This procedure will transfer control to the boot loader {main}.

        ; before procedure statements delay=non-uniform, bit states=(data:01=>01 code:00=>00)
        ; line_number = 127
        ;  call main()
        bsf     __cb0___byte, __cb0___bit
        bsf     __cb1___byte, __cb1___bit
        bcf     __rp0___byte, __rp0___bit
        call    main


        ; delay after procedure statements=non-uniform
        bsf     __rp0___byte, __rp0___bit
        ; Implied return
        bcf     __cb0___byte, __cb0___bit
        bcf     __cb1___byte, __cb1___bit
        retlw   0




        ; line_number = 130
        ; constant program_origin = 8
program_origin equ 8
        ; line_number = 131
        ; origin program_origin
        org     8

        ; line_number = 133
        ; procedure program
program:
        ; arguments_none
        ; line_number = 135
        ;  returns_nothing

        ; # Dummy program that does nothing:

        ; line_number = 139
        ;  local index byte
program__index equ globals___1

        ; before procedure statements delay=non-uniform, bit states=(data:01=>01 code:00=>00)
        ; line_number = 141
        ;  index := 1
        movlw   1
        movwf   program__index
        ; line_number = 142
        ;  loop_exactly message.size start
program__1 equ globals___1+1
        movlw   33
        movwf   program__1
program__2:
        ; line_number = 143
        ; call put_character(message[index])
        movf    program__index,w
        call    message
        bsf     __cb0___byte, __cb0___bit
        bsf     __cb1___byte, __cb1___bit
        bcf     __rp0___byte, __rp0___bit
        call    put_character
        ; line_number = 144
        ;  index := index + 1
        bsf     __rp0___byte, __rp0___bit
        incf    program__index,f

        ; line_number = 142
        ;  loop_exactly message.size wrap-up
        decfsz  program__1,f
        bcf     __cb0___byte, __cb0___bit
        bcf     __cb1___byte, __cb1___bit
        goto    program__2
        ; line_number = 142
        ;  loop_exactly message.size done
        ; line_number = 146
        ; call main()
        bsf     __cb0___byte, __cb0___bit
        bsf     __cb1___byte, __cb1___bit
        bcf     __rp0___byte, __rp0___bit
        call    main


        ; delay after procedure statements=non-uniform
        bsf     __rp0___byte, __rp0___bit
        ; Implied return
        bcf     __cb0___byte, __cb0___bit
        bcf     __cb1___byte, __cb1___bit
        retlw   0




        ; line_number = 149
        ; string message = "You need to download a program!\cr,lf\" start
        ; message = 'You need to download a program!\13,10\'
message:
        ; Temporarily save index into FSR
        movwf   __fsr
        ; Initialize PCLATH to point to this code page
        movlw   message___base>>8
        movwf   __pclath
        ; Restore index from FSR
        movf    __fsr,w
        addlw   message___base
        ; Index to the correct return value
        movwf   __pcl
        ; page_group 33
message___base:
        retlw   89
        retlw   111
        retlw   117
        retlw   32
        retlw   110
        retlw   101
        retlw   101
        retlw   100
        retlw   32
        retlw   116
        retlw   111
        retlw   32
        retlw   100
        retlw   111
        retlw   119
        retlw   110
        retlw   108
        retlw   111
        retlw   97
        retlw   100
        retlw   32
        retlw   97
        retlw   32
        retlw   112
        retlw   114
        retlw   111
        retlw   103
        retlw   114
        retlw   97
        retlw   109
        retlw   33
        retlw   13
        retlw   10
        ; line_number = 149
        ; string message = "You need to download a program!\cr,lf\" start

        ; line_number = 152
        ; constant buffer_size = 8
buffer_size equ 8
        ; line_number = 153
        ; global buffer_highs[buffer_size] array[byte]
buffer_highs equ globals___2
        ; line_number = 154
        ; global buffer_lows[buffer_size] array[byte]
buffer_lows equ globals___2+8

        ; line_number = 156
        ; constant boot_loader_origin = 0x1b00
boot_loader_origin equ 6912
        ; line_number = 157
        ; constant boot_loader_origin_high = boot_loader_origin >> 8
boot_loader_origin_high equ 27
        ; line_number = 158
        ; origin boot_loader_origin
        ; Code bank 1; Start address: 2048; End address: 4095
        org     2048
        ; Code bank 2; Start address: 4096; End address: 6143
        org     4096
        ; Code bank 3; Start address: 6144; End address: 8191
        org     6144
        org     6912

        ; line_number = 161
        ; register_array bank01[256] = 0
bank01 equ 0
        ; line_number = 162
        ; register_array bank23[256] = 0x100
bank23 equ 256
        ; line_number = 163
        ; register_array ports[3] = 5
ports equ 5

        ; line_number = 165
        ; constant id_reset = 0xfd
id_reset equ 253
        ; line_number = 166
        ; constant id_next = 0xfc
id_next equ 252

        ; # Global variables:

        ; # In general, I don't like gobal error registers, but for this
        ; # application, I think a global one works best:
        ; line_number = 172
        ; global ok bit
ok___byte equ globals___0+79
ok___bit equ 0
        ; line_number = 173
        ; global have_carriage_return bit
have_carriage_return___byte equ globals___0+79
have_carriage_return___bit equ 1

        ; # I/O registers:
        ; line_number = 176
        ; global in_mask byte
in_mask equ globals___0
        ; line_number = 177
        ; global in_out_register byte
in_out_register equ globals___0+1
        ; line_number = 178
        ; global out_mask byte
out_mask equ globals___0+2
        ; line_number = 179
        ; global receiving bit
receiving___byte equ globals___0+79
receiving___bit equ 2

        ; line_number = 181
        ; global sleep_count byte
sleep_count equ globals___0+3

        ; line_number = 183
        ; procedure main
main:
        ; Initialize some registers
        clrf    _adcon0
        movlw   7
        bsf     __rp0___byte, __rp0___bit
        movwf   _adcon1
        movlw   21
        movwf   _trisa
        movlw   85
        movwf   _trisb
        movlw   141
        movwf   _trisc
        ; arguments_none
        ; line_number = 185
        ;  returns_nothing

        ; line_number = 187
        ;  local address_high byte
main__address_high equ globals___0+4
        ; line_number = 188
        ;  local address_low byte
main__address_low equ globals___0+5
        ; line_number = 189
        ;  local block_index byte
main__block_index equ globals___0+6
        ; line_number = 190
        ;  local buffer_index byte
main__buffer_index equ globals___0+7
        ; line_number = 191
        ;  local buffer_size byte
main__buffer_size equ globals___0+8
        ; line_number = 192
        ;  local byte byte
main__byte equ globals___0+9
        ; line_number = 193
        ;  local check_sum byte
main__check_sum equ globals___0+10
        ; line_number = 194
        ;  local chr byte
main__chr equ globals___0+11
        ; line_number = 195
        ;  local command byte
main__command equ globals___0+12
        ; line_number = 196
        ;  local count byte
main__count equ globals___0+13
        ; line_number = 197
        ;  local errors byte
main__errors equ globals___0+14
        ; line_number = 198
        ;  local error_high byte
main__error_high equ globals___0+15
        ; line_number = 199
        ;  local error_low byte
main__error_low equ globals___0+16
        ; line_number = 200
        ;  local index byte
main__index equ globals___0+17
        ; line_number = 201
        ;  local length byte
main__length equ globals___0+18
        ; line_number = 202
        ;  local more bit
main__more___byte equ globals___0+79
main__more___bit equ 3
        ; line_number = 203
        ;  local return1 byte
main__return1 equ globals___0+19
        ; line_number = 204
        ;  local return2 byte
main__return2 equ globals___0+20
        ; line_number = 205
        ;  local socket byte
main__socket equ globals___0+21
        ; line_number = 206
        ;  local type byte
main__type equ globals___0+22

        ; # Turn of general interrupts:
        ; before procedure statements delay=non-uniform, bit states=(data:00=>01 code:11=>11)
        ; line_number = 209
        ;  _gie := 0
        bcf     _gie___byte, _gie___bit

        ; # Initilize serial port:

        ; # Do Baud Rate selection and asynch. serial port enable:
        ; # Prescaler = low:
        ; line_number = 215
        ;  _brgh := 1
        bsf     _brgh___byte, _brgh___bit
        ; # Baud rate = 19200 Baud:
        ; line_number = 217
        ;  _spbrg := 64
        movlw   64
        movwf   _spbrg
        ; # Asynchronous mode:
        ; line_number = 219
        ;  _sync := 0
        bcf     _sync___byte, _sync___bit
        ; # Serial port enable:
        ; line_number = 221
        ;  _spen := 1
        bcf     __rp0___byte, __rp0___bit
        bsf     _spen___byte, _spen___bit
        ; line_number = 222
        ;  _txif := 0
        bcf     _txif___byte, _txif___bit

        ; # Enable the transmitter:
        ; # 8-bit mode:
        ; line_number = 226
        ;  _tx9 := 0
        bsf     __rp0___byte, __rp0___bit
        bcf     _tx9___byte, _tx9___bit
        ; # Enable transmitter:
        ; line_number = 228
        ;  _txen := 1
        bsf     _txen___byte, _txen___bit

        ; # Enable the receiver:
        ; # 8-bit mode:
        ; line_number = 232
        ;  _rx9 := 0
        bcf     __rp0___byte, __rp0___bit
        bcf     _rx9___byte, _rx9___bit
        ; # Disable address:
        ; line_number = 234
        ;  _adden := 0
        bcf     _adden___byte, _adden___bit
        ; # Continuous receive enable:
        ; line_number = 236
        ;  _cren := 1
        bsf     _cren___byte, _cren___bit
        ; # Serial receive enable:
        ; line_number = 238
        ;  _sren := 1
        bsf     _sren___byte, _sren___bit

        ; # Initialize all of the serial outs:
        ; line_number = 241
        ;  n1out := 1
        bsf     n1out___byte, n1out___bit
        ; line_number = 242
        ;  n2out := 1
        bsf     n2out___byte, n2out___bit
        ; line_number = 243
        ;  n3out := 1
        bsf     n3out___byte, n3out___bit
        ; line_number = 244
        ;  n4out := 1
        bsf     n4out___byte, n4out___bit
        ; line_number = 245
        ;  n5out := 1
        bsf     n5out___byte, n5out___bit
        ; line_number = 246
        ;  n6out := 1
        bsf     n6out___byte, n6out___bit
        ; line_number = 247
        ;  n7out := 1
        bsf     n7out___byte, n7out___bit
        ; line_number = 248
        ;  n8out := 1
        bsf     n8out___byte, n8out___bit
        ; line_number = 249
        ;  n9out := 1
        bsf     n9out___byte, n9out___bit
        ; line_number = 250
        ;  n10out := 1
        bsf     n10out___byte, n10out___bit

        ; #call put_character('H')
        ; #call put_character('i')
        ; #call put_character('!')
        ; #call put_character('\r\')
        ; #call put_character('\n\')

        ; # Print out a hello message:
        ; line_number = 259
        ;  index := 0
        movlw   0
        movwf   main__index
        ; line_number = 260
        ;  while index < hello.size start
main__1:
        movlw   13
        subwf   main__index,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size=0 && false.size>1
        btfsc   __c___byte, __c___bit
        goto    main__2
        ; line_number = 261
        ; call put_character(hello[index])
        movf    main__index,w
        call    hello
        call    put_character
        ; line_number = 262
        ;  index := index + 1
        incf    main__index,f

        goto    main__1
main__2:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 260
        ;  while index < hello.size done
        ; line_number = 264
        ; if seconds_sleep(60) start
        movlw   60
        call    seconds_sleep
        ; =>bit_code_emit@symbol(): sym=seconds_sleep__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   seconds_sleep__0return___byte, seconds_sleep__0return___bit
        goto    main__3
        ; line_number = 265
        ; call put_crlf()
        call    put_crlf

        ; line_number = 267
        ;  call execute()
        call    execute

        ; Recombine size1 = 0 || size2 = 0
main__3:
        ; <=bit_code_emit@symbol; sym=seconds_sleep__0return (data:00=>00 code:11=>11)
        ; line_number = 264
        ; if seconds_sleep(60) done
        ; #FIXME: What is this?
        ; #call put_byte(0x11, n10)
        ; #call put_byte(0xa0, n10)

        ; line_number = 273
        ;  socket := n1
        clrf    main__socket
        ; line_number = 274
        ;  errors := 0
        movlw   0
        movwf   main__errors

        ; # Command loop:
        ; #call put_crlf()
        ; line_number = 278
        ;  loop_forever start
main__4:
        ; # Output a prompt:
        ; line_number = 280
        ;  call put_character('>')
        movlw   62
        call    put_character

        ; # Go fetch a command character:
        ; line_number = 283
        ;  have_carriage_return := 0
        bcf     have_carriage_return___byte, have_carriage_return___bit
        ; line_number = 284
        ;  ok := 1
        bsf     ok___byte, ok___bit
        ; line_number = 285
        ;  command := get_character()
        call    get_character
        movwf   main__command

        ; # Dispatch on command character:
        ; line_number = 288
        ;  if command = 'C' start
        ; Left minus Right
        movlw   189
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__66
        ; line_number = 289
        ; byte := get_hex_byte()
        call    get_hex_byte
        movwf   main__byte
        ; line_number = 290
        ;  if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__65
        ; line_number = 291
        ; call clock_adjust(byte, socket)
        movf    main__byte,w
        movwf   clock_adjust__adjust
        movf    main__socket,w
        call    clock_adjust
        ; Recombine size1 = 0 || size2 = 0
main__65:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 290
        ;  if get_carriage_return() done
        goto    main__67
main__66:
        ; line_number = 292
        ; Left minus Right
        movlw   187
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__63
        ; # Examine data memory command:
        ; line_number = 294
        ;  address_high := get_hex_byte()
        call    get_hex_byte
        movwf   main__address_high
        ; line_number = 295
        ;  address_low := get_hex_byte()
        call    get_hex_byte
        movwf   main__address_low
        ; line_number = 296
        ;  count := get_hex_byte()
        call    get_hex_byte
        movwf   main__count
        ; line_number = 297
        ;  if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__62
        ; line_number = 298
        ; loop_exactly count start
main__58 equ globals___0+69
        movf    main__count,w
        movwf   main__58
main__59:
        ; line_number = 299
        ; if address_high = 0 start
        ; Left minus Right
        movf    main__address_high,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__60
        ; line_number = 300
        ; byte := bank01[address_low]
        movf    main__address_low,w
        addlw   bank01
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        movwf   main__byte
        goto    main__61
main__60:
        ; line_number = 302
        ; byte := bank23[address_low]
        movf    main__address_low,w
        addlw   bank23
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    __indf,w
        movwf   main__byte
main__61:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 299
        ; if address_high = 0 done
        ; line_number = 303
        ; call put_hex_byte(byte)
        movf    main__byte,w
        call    put_hex_byte
        ; line_number = 304
        ;  call put_space()
        call    put_space
        ; line_number = 305
        ;  address_low := address_low + 1
        incf    main__address_low,f
        ; line_number = 306
        ;  if _z start
        ; =>bit_code_emit@symbol(): sym=_z
        ; CASE: True.size=1 False.size=0
        btfsc   _z___byte, _z___bit
        ; line_number = 307
        ; address_high := address_high + 1
        incf    main__address_high,f
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
        ; line_number = 306
        ;  if _z done
        ; line_number = 298
        ; loop_exactly count wrap-up
        decfsz  main__58,f
        goto    main__59
        ; line_number = 298
        ; loop_exactly count done
        ; line_number = 308
        ; call put_crlf()
        call    put_crlf
        ; Recombine size1 = 0 || size2 = 0
main__62:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 297
        ;  if get_carriage_return() done
        goto    main__64
main__63:
        ; line_number = 309
        ; Left minus Right
        movlw   185
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=1 false.size>1; no GOTO
        btfss   __z___byte, __z___bit
        goto    main__56
        ; # Goto command:
        ; line_number = 311
        ;  call goto_command()
        call    goto_command
        goto    main__57
main__56:
        ; line_number = 312
        ; Left minus Right
        movlw   183
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__54
        ; line_number = 313
        ; if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__53
        ; line_number = 314
        ; call put_byte(id_reset, socket)
        movlw   253
        movwf   put_byte__character
        movf    main__socket,w
        call    put_byte
        ; line_number = 315
        ;  call id8(socket)
        movf    main__socket,w
        call    id8
        ; line_number = 316
        ;  call id8(socket)
        movf    main__socket,w
        call    id8
        ; line_number = 317
        ;  call id8(socket)
        movf    main__socket,w
        call    id8
        ; line_number = 318
        ;  call id_string(socket)
        movf    main__socket,w
        call    id_string
        ; line_number = 319
        ;  call id_string(socket)
        movf    main__socket,w
        call    id_string
        ; Recombine size1 = 0 || size2 = 0
main__53:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 313
        ; if get_carriage_return() done
        goto    main__55
main__54:
        ; line_number = 320
        ; Left minus Right
        movlw   181
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__51
        ; line_number = 321
        ; byte := get_hex_nibble()
        call    get_hex_nibble
        movwf   main__byte
        ; line_number = 322
        ;  if byte = 0 || byte > 10 start
        ; Left minus Right
        movf    main__byte,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=1 false.size>1; true=GOTO
        btfsc   __z___byte, __z___bit
        goto    main__49
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   10
        subwf   main__byte,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: True.size=1 False.size=0
        btfsc   __c___byte, __c___bit
main__49:
        ; line_number = 323
        ; ok := 0
        bcf     ok___byte, ok___bit
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; &&||: index=0 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; &&||:: index=0 new_delay=4294967295 goto_delay=4294967295
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 322
        ;  if byte = 0 || byte > 10 done
        ; line_number = 324
        ; if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__50
        ; line_number = 325
        ; socket := byte - 1
        decf    main__byte,w
        movwf   main__socket
        ; Recombine size1 = 0 || size2 = 0
main__50:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 324
        ; if get_carriage_return() done
        goto    main__52
main__51:
        ; line_number = 326
        ; Left minus Right
        movlw   176
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__47
        ; # Print a page of memory:
        ; line_number = 328
        ;  _eeadrh := get_hex_byte()
        call    get_hex_byte
        bsf     __rp1___byte, __rp1___bit
        movwf   _eeadrh
        ; line_number = 329
        ;  if get_carriage_return() start
        bcf     __rp1___byte, __rp1___bit
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__46
        ; line_number = 330
        ; index := 0
        movlw   0
        movwf   main__index
        ; line_number = 331
        ;  more := 1
        bsf     main__more___byte, main__more___bit
        ; line_number = 332
        ;  while more start
main__43:
        ; =>bit_code_emit@symbol(): sym=main__more
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   main__more___byte, main__more___bit
        goto    main__45
        ; line_number = 333
        ; if index & 7 = 0 start
        ; Left minus Right
        movlw   7
        andwf   main__index,w
        ; =>bit_code_emit@symbol(): sym=__z
        bsf     __rp1___byte, __rp1___bit
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    main__44
        ; # Display the address:
        ; line_number = 335
        ;  call put_hex_byte(_eeadrh)
        movf    _eeadrh,w
        bcf     __rp1___byte, __rp1___bit
        call    put_hex_byte
        ; line_number = 336
        ;  call put_hex_byte(index)
        movf    main__index,w
        call    put_hex_byte
        ; line_number = 337
        ;  call put_character(':')
        movlw   58
        call    put_character

        ; Recombine size1 = 0 || size2 = 0
main__44:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>?0 code:11=>11)
        ; line_number = 333
        ; if index & 7 = 0 done
        ; # Read the word:
        ; line_number = 340
        ;  _eeadr := index
        bcf     __rp1___byte, __rp1___bit
        movf    main__index,w
        bsf     __rp1___byte, __rp1___bit
        movwf   _eeadr
        ; line_number = 341
        ;  _eepgd := 1
        bsf     __rp0___byte, __rp0___bit
        bsf     _eepgd___byte, _eepgd___bit
        ; line_number = 342
        ;  _rd := 1
        bsf     _rd___byte, _rd___bit
        ; # The next two instructions are *ignored*:
        ; line_number = 344
        ;  assemble
        ; line_number = 345
        nop     
        ; line_number = 346
        nop     

        ; # Display the word:
        ; line_number = 349
        ;  call put_space()
        bcf     __rp0___byte, __rp0___bit
        bcf     __rp1___byte, __rp1___bit
        call    put_space
        ; line_number = 350
        ;  call put_hex_byte(_eedath)
        bsf     __rp1___byte, __rp1___bit
        movf    _eedath,w
        bcf     __rp1___byte, __rp1___bit
        call    put_hex_byte
        ; line_number = 351
        ;  call put_hex_byte(_eedata)
        bsf     __rp1___byte, __rp1___bit
        movf    _eedata,w
        bcf     __rp1___byte, __rp1___bit
        call    put_hex_byte

        ; # Bump to next address in page:
        ; line_number = 354
        ;  index := index + 1
        incf    main__index,f
        ; line_number = 355
        ;  if _z start
        ; =>bit_code_emit@symbol(): sym=_z
        ; CASE: True.size=1 False.size=0
        btfsc   _z___byte, _z___bit
        ; line_number = 356
        ; more := 0
        bcf     main__more___byte, main__more___bit
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
        ; line_number = 355
        ;  if _z done
        ; line_number = 357
        ; if index & 7 = 0 start
        ; Left minus Right
        movlw   7
        andwf   main__index,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: True.size=1 False.size=0
        btfsc   __z___byte, __z___bit
        ; line_number = 358
        ; call put_crlf()
        call    put_crlf
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 357
        ; if index & 7 = 0 done
        goto    main__43
        ; Recombine size1 = 0 || size2 = 0
main__45:
        ; <=bit_code_emit@symbol; sym=main__more (data:00=>00 code:11=>11)
        ; line_number = 332
        ;  while more done
        ; Recombine size1 = 0 || size2 = 0
main__46:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 329
        ;  if get_carriage_return() done
        goto    main__48
main__47:
        ; line_number = 359
        ; Left minus Right
        movlw   174
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__41
        ; # Send a command to a RoboBrick:
        ; line_number = 361
        ;  byte := get_hex_byte()
        call    get_hex_byte
        movwf   main__byte
        ; line_number = 362
        ;  if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__40
        ; line_number = 363
        ; call put_byte(byte, socket)
        movf    main__byte,w
        movwf   put_byte__character
        movf    main__socket,w
        call    put_byte
        ; line_number = 364
        ;  return1 := get_byte(socket)
        movf    main__socket,w
        call    get_byte
        movwf   main__return1
        ; line_number = 365
        ;  return2 := get_byte(socket)
        movf    main__socket,w
        call    get_byte
        movwf   main__return2
        ; line_number = 366
        ;  call put_hex_byte(return1)
        movf    main__return1,w
        call    put_hex_byte
        ; line_number = 367
        ;  call put_space()
        call    put_space
        ; line_number = 368
        ;  call put_hex_byte(return2)
        movf    main__return2,w
        call    put_hex_byte
        ; line_number = 369
        ;  call put_crlf()
        call    put_crlf
        ; Recombine size1 = 0 || size2 = 0
main__40:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 362
        ;  if get_carriage_return() done
        goto    main__42
main__41:
        ; line_number = 370
        ; Left minus Right
        movlw   173
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__38
        ; # Store data memory command:
        ; line_number = 372
        ;  address_high := get_hex_byte()
        call    get_hex_byte
        movwf   main__address_high
        ; line_number = 373
        ;  address_low := get_hex_byte()
        call    get_hex_byte
        movwf   main__address_low
        ; line_number = 374
        ;  byte := get_hex_byte()
        call    get_hex_byte
        movwf   main__byte
        ; line_number = 375
        ;  if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__37
        ; line_number = 376
        ; if address_high = 0 start
        ; Left minus Right
        movf    main__address_high,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__35
        ; line_number = 377
        ; bank01[address_low] := byte
        ; index_fsr_first
        movf    main__address_low,w
        addlw   bank01
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    main__byte,w
        movwf   __indf
        goto    main__36
main__35:
        ; line_number = 379
        ; bank23[address_low] := byte
        ; index_fsr_first
        movf    main__address_low,w
        addlw   bank23
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    main__byte,w
        movwf   __indf
main__36:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 376
        ; if address_high = 0 done
        ; Recombine size1 = 0 || size2 = 0
main__37:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 375
        ;  if get_carriage_return() done
        goto    main__39
main__38:
        ; line_number = 380
        ; Left minus Right
        movlw   172
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__33
        ; line_number = 381
        ; loop_forever start
main__32:
        ; line_number = 382
        ; call put_byte('U', n2)
        movlw   85
        movwf   put_byte__character
        movlw   1
        call    put_byte
        ; line_number = 381
        ; loop_forever wrap-up
        goto    main__32
        ; line_number = 381
        ; loop_forever done
        goto    main__34
main__33:
        ; line_number = 383
        ; Left minus Right
        movlw   170
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__30
        ; line_number = 384
        ; if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__29
        ; line_number = 385
        ; call put_character('1')
        movlw   49
        call    put_character
        ; line_number = 386
        ;  call put_character('.')
        movlw   46
        call    put_character
        ; line_number = 387
        ;  call put_character('0')
        movlw   48
        call    put_character
        ; line_number = 388
        ;  call put_crlf()
        call    put_crlf
        ; Recombine size1 = 0 || size2 = 0
main__29:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 384
        ; if get_carriage_return() done
        goto    main__31
main__30:
        ; line_number = 389
        ; Left minus Right
        movlw   168
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__27
        ; line_number = 390
        ; if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: True.size=1 False.size=0
        btfsc   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        ; line_number = 391
        ; call execute()
        call    execute
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 390
        ; if get_carriage_return() done
        goto    main__28
main__27:
        ; line_number = 392
        ; Left minus Right
        movlw   198
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__25
        ; # Hex command:
        ; line_number = 394
        ;  check_sum := 0
        movlw   0
        movwf   main__check_sum
        ; line_number = 395
        ;  length := get_hex_byte()
        call    get_hex_byte
        movwf   main__length
        ; line_number = 396
        ;  check_sum := check_sum + length
        movf    main__length,w
        addwf   main__check_sum,f
        ; line_number = 397
        ;  address_high := get_hex_byte()
        call    get_hex_byte
        movwf   main__address_high
        ; line_number = 398
        ;  check_sum := check_sum + address_high
        movf    main__address_high,w
        addwf   main__check_sum,f
        ; line_number = 399
        ;  address_low := get_hex_byte()
        call    get_hex_byte
        movwf   main__address_low
        ; line_number = 400
        ;  check_sum := check_sum + address_low
        movf    main__address_low,w
        addwf   main__check_sum,f
        ; line_number = 401
        ;  type := get_hex_byte()
        call    get_hex_byte
        movwf   main__type
        ; line_number = 402
        ;  check_sum := check_sum + type
        movf    main__type,w
        addwf   main__check_sum,f
        ; line_number = 403
        ;  index := 0
        movlw   0
        movwf   main__index
        ; line_number = 404
        ;  buffer_size := length >> 1
        rrf     main__length,w
        movwf   main__buffer_size
        bcf     main__buffer_size, 7
        ; line_number = 405
        ;  while index < buffer_size start
main__6:
        movf    main__buffer_size,w
        subwf   main__index,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size=0 && false.size>1
        btfsc   __c___byte, __c___bit
        goto    main__7
        ; line_number = 406
        ; byte := get_hex_byte()
        call    get_hex_byte
        movwf   main__byte
        ; line_number = 407
        ;  check_sum := check_sum + byte
        movf    main__byte,w
        addwf   main__check_sum,f
        ; line_number = 408
        ;  buffer_lows[index] := byte
        ; index_fsr_first
        movf    main__index,w
        addlw   buffer_lows
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    main__byte,w
        movwf   __indf
        ; line_number = 409
        ;  byte := get_hex_byte()
        call    get_hex_byte
        movwf   main__byte
        ; line_number = 410
        ;  check_sum := check_sum + byte
        movf    main__byte,w
        addwf   main__check_sum,f
        ; line_number = 411
        ;  buffer_highs[index] := byte
        ; index_fsr_first
        movf    main__index,w
        addlw   buffer_highs
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    main__byte,w
        movwf   __indf
        ; line_number = 412
        ;  index := index + 1
        incf    main__index,f
        goto    main__6
main__7:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 405
        ;  while index < buffer_size done
        ; line_number = 413
        ; check_sum := check_sum + get_hex_byte()
main__8 equ globals___0+69
        movf    main__check_sum,w
        movwf   main__8
        call    get_hex_byte
        addwf   main__8,w
        movwf   main__check_sum
        ; line_number = 414
        ;  if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    main__24
        ; # Command completed without error:

        ; # For debugging only:
        ; #call put_character('L')
        ; #call put_hex_byte(length)
        ; #call put_space()

        ; #call put_character('A')
        ; #call put_hex_byte(address_high)
        ; #call put_hex_byte(address_low)
        ; #call put_space()

        ; #call put_character('T')
        ; #call put_hex_byte(type)
        ; #call put_space()

        ; #index := 0
        ; #buffer_size := length >> 1
        ; #while index < buffer_size
        ; #    call put_character('[')
        ; #    call put_hex_nibble(index)
        ; #    call put_character(']')
        ; #    call put_hex_byte(buffer_highs[index])
        ; #    call put_hex_byte(buffer_lows[index])
        ; #    call put_space()
        ; #    index := index + 1		

        ; #call put_character('C')
        ; #call put_hex_byte(check_sum)
        ; #call put_crlf()

        ; line_number = 446
        ;  if check_sum = 0 start
        ; Left minus Right
        movf    main__check_sum,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__22
        ; # Check sum is cool:
        ; # Address is off by a factor of 2:
        ; line_number = 449
        ;  address_low := address_low >> 1
        ; Assignment of variable to self (no code needed)
        rrf     main__address_low,f
        bcf     main__address_low, 7
        ; line_number = 450
        ;  if address_high@0 start
main__select__10___byte equ main__address_high
main__select__10___bit equ 0
        ; =>bit_code_emit@symbol(): sym=main__select__10
        ; CASE: True.size=1 False.size=0
        btfsc   main__select__10___byte, main__select__10___bit
        ; line_number = 451
        ; address_low@7 := 1
main__select__9___byte equ main__address_low
main__select__9___bit equ 7
        bsf     main__select__9___byte, main__select__9___bit
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=main__select__10 (data:00=>00 code:11=>11)
        ; line_number = 450
        ;  if address_high@0 done
        ; line_number = 452
        ; address_high := address_high >> 1
        ; Assignment of variable to self (no code needed)
        rrf     main__address_high,f
        bcf     main__address_high, 7

        ; #call put_character('X')
        ; #call put_hex_byte(address_high)
        ; #call put_hex_byte(address_low)
        ; #call put_space()

        ; # Only write data into "safe" pages:
        ; line_number = 460
        ;  if type = 1 start
        ; Left minus Right
        decf    main__type,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    main__20
        ; line_number = 461
        ; if errors != 0 start
        ; Left minus Right
        movf    main__errors,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=0 && false.size>1
        btfsc   __z___byte, __z___bit
        goto    main__19
        ; line_number = 462
        ; call put_character('E')
        movlw   69
        call    put_character
        ; line_number = 463
        ;  call put_character('r')
        movlw   114
        call    put_character
        ; line_number = 464
        ;  call put_character('r')
        movlw   114
        call    put_character
        ; line_number = 465
        ;  call put_character('@')
        movlw   64
        call    put_character
        ; line_number = 466
        ;  call put_hex_byte(error_high)
        movf    main__error_high,w
        call    put_hex_byte
        ; line_number = 467
        ;  call put_hex_byte(error_low)
        movf    main__error_low,w
        call    put_hex_byte
        ; line_number = 468
        ;  call put_crlf()
        call    put_crlf
        ; line_number = 469
        ;  errors := 0
        movlw   0
        movwf   main__errors
main__19:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 461
        ; if errors != 0 done
        goto    main__21
main__20:
        ; line_number = 470
        ; Left minus Right
        movf    main__type,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    main__18
        ; line_number = 473
        ; Left minus Right
        movf    main__address_high,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size>1 false.size=1; false=GOTO
        btfss   __z___byte, __z___bit
        goto    main__16
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        ; Left minus Right
        movlw   252
        andwf   main__address_low,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=0 && false.size>1
        btfsc   __z___byte, __z___bit
        goto    main__17
main__16:
        ; line_number = 478
        movlw   27
        subwf   main__address_high,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size=0 && false.size>1
        btfsc   __c___byte, __c___bit
        goto    main__15
        ; # Write data until the buffer is empty:
        ; #call put_character('@')
        ; line_number = 481
        ;  ok := 1
        bsf     ok___byte, ok___bit
        ; line_number = 482
        ;  index := 0
        movlw   0
        movwf   main__index
        ; line_number = 483
        ;  loop_exactly buffer_size start
main__11 equ globals___0+69
        movf    main__buffer_size,w
        movwf   main__11
main__12:
        ; # Write the instruction into flash:
        ; #call put_character('&')
        ; line_number = 486
        ;  _eeadrh := address_high
        movf    main__address_high,w
        bsf     __rp1___byte, __rp1___bit
        movwf   _eeadrh
        ; line_number = 487
        ;  _eeadr := address_low
        bcf     __rp1___byte, __rp1___bit
        movf    main__address_low,w
        bsf     __rp1___byte, __rp1___bit
        movwf   _eeadr
        ; line_number = 488
        ;  _eedath := buffer_highs[index]
        bcf     __rp1___byte, __rp1___bit
        movf    main__index,w
        addlw   buffer_highs
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    __indf,w
        bsf     __rp1___byte, __rp1___bit
        movwf   _eedath
        ; line_number = 489
        ;  _eedata := buffer_lows[index]
        bcf     __rp1___byte, __rp1___bit
        movf    main__index,w
        addlw   buffer_lows
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    __indf,w
        bsf     __rp1___byte, __rp1___bit
        movwf   _eedata
        ; line_number = 490
        ;  _eepgd := 1
        bsf     __rp0___byte, __rp0___bit
        bsf     _eepgd___byte, _eepgd___bit
        ; line_number = 491
        ;  _wren := 1
        bsf     _wren___byte, _wren___bit
        ; line_number = 492
        ;  _eecon2 := 0x55
        movlw   85
        movwf   _eecon2
        ; line_number = 493
        ;  _eecon2 := 0xaa
        movlw   170
        movwf   _eecon2
        ; line_number = 494
        ;  _wr := 1
        bsf     _wr___byte, _wr___bit
        ; # The next two instructions must be nop's:
        ; line_number = 496
        ;  assemble
        ; line_number = 497
        nop     
        ; Statement 0 of 2 delay = 29
        ; line_number = 498
        nop     
        ; Statement 1 of 2 delay = 30
        ; line_number = 499
        ; _wren := 0
        bcf     _wren___byte, _wren___bit

        ; # Verify that the data was written successfully:
        ; line_number = 502
        ;  _eepgd := 1
        bsf     _eepgd___byte, _eepgd___bit
        ; line_number = 503
        ;  _rd := 1
        bsf     _rd___byte, _rd___bit
        ; # The next two instructions must be nop's:
        ; line_number = 505
        ;  assemble
        ; line_number = 506
        nop     
        ; Statement 0 of 2 delay = 31
        ; line_number = 507
        nop     
        ; Statement 1 of 2 delay = 32
        ; line_number = 508
        ; if buffer_highs[index] != _eedath start
        ; Right minus Left
        bcf     __rp0___byte, __rp0___bit
        bcf     __rp1___byte, __rp1___bit
        movf    main__index,w
        addlw   buffer_highs
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    __indf,w
        bsf     __rp1___byte, __rp1___bit
        subwf   _eedath,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=0 && false.size>1
        btfsc   __z___byte, __z___bit
        goto    main__13
        ; #call put_character('=')
        ; line_number = 510
        ;  error_high := _eeadrh
        movf    _eeadrh,w
        bcf     __rp1___byte, __rp1___bit
        movwf   main__error_high
        ; line_number = 511
        ;  error_low := _eeadr
        bsf     __rp1___byte, __rp1___bit
        movf    _eeadr,w
        bcf     __rp1___byte, __rp1___bit
        movwf   main__error_low
        ; line_number = 512
        ;  errors := errors + 1
        incf    main__errors,f
main__13:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>?0 code:11=>11)
        ; line_number = 508
        ; if buffer_highs[index] != _eedath done
        ; line_number = 513
        ; if buffer_lows[index] != _eedata start
        ; Right minus Left
        bcf     __rp1___byte, __rp1___bit
        movf    main__index,w
        addlw   buffer_lows
        movwf   __fsr
        bsf     __irp___byte, __irp___bit
        movf    __indf,w
        bsf     __rp1___byte, __rp1___bit
        subwf   _eedata,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=0 && false.size>1
        btfsc   __z___byte, __z___bit
        goto    main__14
        ; #call put_character('+')
        ; line_number = 515
        ;  error_high := _eeadrh
        movf    _eeadrh,w
        bcf     __rp1___byte, __rp1___bit
        movwf   main__error_high
        ; line_number = 516
        ;  error_low := _eeadr
        bsf     __rp1___byte, __rp1___bit
        movf    _eeadr,w
        bcf     __rp1___byte, __rp1___bit
        movwf   main__error_low
        ; line_number = 517
        ;  errors := errors + 1
        incf    main__errors,f

main__14:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>?0 code:11=>11)
        ; line_number = 513
        ; if buffer_lows[index] != _eedata done
        ; # Increment the address:
        ; line_number = 520
        ;  address_low := address_low + 1
        bcf     __rp1___byte, __rp1___bit
        incf    main__address_low,f
        ; line_number = 521
        ;  if _z start
        ; =>bit_code_emit@symbol(): sym=_z
        ; CASE: True.size=1 False.size=0
        btfsc   _z___byte, _z___bit
        ; line_number = 522
        ; address_high := address_high + 1
        incf    main__address_high,f
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
        ; line_number = 521
        ;  if _z done
        ; line_number = 523
        ; index := index + 1
        incf    main__index,f
        ; line_number = 483
        ;  loop_exactly buffer_size wrap-up
        decfsz  main__11,f
        goto    main__12
        ; line_number = 483
        ;  loop_exactly buffer_size done
main__15:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
main__17:
        ; # Trying to modify first 4 words of flash;
        ; # This is not allowed:
        ; #call put_character('^')
        ; line_number = 477
        ;  do_nothing
        ; Recombine code1_bit_states != code2_bit_states
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; &&||: 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
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; Recombine code1_bit_states != code2_bit_states
main__18:
        ; #call put_character('_')
        ; line_number = 472
        ;  do_nothing
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__21:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 460
        ;  if type = 1 done
        goto    main__23
main__22:
        ; line_number = 525
        ; errors := errors + 1
        incf    main__errors,f
        ; line_number = 526
        ;  call put_character('c')
        movlw   99
        call    put_character
        ; line_number = 527
        ;  call put_character('s')
        movlw   115
        call    put_character
        ; line_number = 528
        ;  call put_character('=')
        movlw   61
        call    put_character
        ; line_number = 529
        ;  call put_hex_byte(check_sum)
        movf    main__check_sum,w
        call    put_hex_byte
        ; line_number = 530
        ;  call put_crlf()
        call    put_crlf
main__23:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 446
        ;  if check_sum = 0 done
        ; Recombine size1 = 0 || size2 = 0
main__24:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 414
        ;  if get_carriage_return() done
        goto    main__26
main__25:
        ; line_number = 531
        ; Left minus Right
        movlw   243
        addwf   main__command,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=0 && false.size>1
        btfsc   __z___byte, __z___bit
        goto    main__5
        ; # Unrecognized command:
        ; line_number = 536
        ;  call get_carriage_return()
        call    get_carriage_return
        ; line_number = 537
        ;  call put_character('?')
        movlw   63
        call    put_character
        ; line_number = 538
        ;  call put_crlf()
        call    put_crlf


main__5:
        ; # Empty command:ain11
        ; line_number = 533
        ;  do_nothing
        ; Recombine code1_bit_states != code2_bit_states
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__26:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__28:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__31:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__34:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__39:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__42:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__48:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__52:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__55:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__57:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__64:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
main__67:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 288
        ;  if command = 'C' done
        ; line_number = 278
        ;  loop_forever wrap-up
        goto    main__4
        ; line_number = 278
        ;  loop_forever done
        ; delay after procedure statements=non-uniform




        ; line_number = 541
        ; procedure clock_adjust
clock_adjust:
        ; Last argument is sitting in W; save into argument variable
        movwf   clock_adjust__socket
        ; delay=4294967295
        ; line_number = 542
        ; argument adjust byte
clock_adjust__adjust equ globals___0+32
        ; line_number = 543
        ; argument socket byte
clock_adjust__socket equ globals___0+33
        ; line_number = 544
        ;  returns_nothing

        ; # This procedure will adjust the clock to the slave.

        ; line_number = 548
        ;  local command byte
clock_adjust__command equ globals___0+23
        ; line_number = 549
        ;  local count byte
clock_adjust__count equ globals___0+24
        ; line_number = 550
        ;  local error byte
clock_adjust__error equ globals___0+25
        ; line_number = 551
        ;  local error_minimum byte
clock_adjust__error_minimum equ globals___0+26
        ; line_number = 552
        ;  local high byte
clock_adjust__high equ globals___0+27
        ; line_number = 553
        ;  local in_mask byte
clock_adjust__in_mask equ globals___0+28
        ; line_number = 554
        ;  local in_out_register byte
clock_adjust__in_out_register equ globals___0+29
        ; line_number = 555
        ;  local low byte
clock_adjust__low equ globals___0+30
        ; line_number = 556
        ;  local target byte
clock_adjust__target equ globals___0+31

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 558
        ;  target := iterations_low - adjust
        comf    clock_adjust__adjust,w
        addlw   163
        movwf   clock_adjust__target
        ; line_number = 559
        ;  count := 2
        movlw   2
        movwf   clock_adjust__count
        ; line_number = 560
        ;  error := 0xff
        movlw   255
        movwf   clock_adjust__error
        ; line_number = 561
        ;  error_minimum := 0xf0
        movlw   240
        movwf   clock_adjust__error_minimum

        ; # Print out the target:
        ; line_number = 564
        ;  call put_character('T')
        movlw   84
        call    put_character
        ; line_number = 565
        ;  call put_hex_byte(iterations_high)
        movlw   5
        call    put_hex_byte
        ; line_number = 566
        ;  call put_hex_byte(target)
        movf    clock_adjust__target,w
        call    put_hex_byte
        ; line_number = 567
        ;  call put_crlf()
        call    put_crlf

        ; line_number = 569
        ;  loop_forever start
clock_adjust__1:
        ; # Print out the clock value:
        ; line_number = 571
        ;  call put_character('C')
        movlw   67
        call    put_character
        ; line_number = 572
        ;  call put_byte(0xfa, socket)
        movlw   250
        movwf   put_byte__character
        movf    clock_adjust__socket,w
        call    put_byte
        ; line_number = 573
        ;  call put_hex_byte(get_byte(socket))
        movf    clock_adjust__socket,w
        call    get_byte
        call    put_hex_byte
        ; line_number = 574
        ;  call put_space()
        call    put_space

        ; line_number = 576
        ;  in_mask := in_masks(socket)
        movf    clock_adjust__socket,w
        call    in_masks
        movwf   clock_adjust__in_mask
        ; line_number = 577
        ;  in_out_register := in_out_registers(socket)
        movf    clock_adjust__socket,w
        call    in_out_registers
        movwf   clock_adjust__in_out_register

        ; # Ask for a timing byte:
        ; line_number = 580
        ;  call put_byte(0xfb, socket)
        movlw   251
        movwf   put_byte__character
        movf    clock_adjust__socket,w
        call    put_byte

        ; # Nasty:
        ; line_number = 583
        ;  low := 0
        movlw   0
        movwf   clock_adjust__low
        ; line_number = 584
        ;  high := 0
        movlw   0
        movwf   clock_adjust__high
        ; line_number = 585
        ;  while ports[in_out_register] & in_mask != 0 start
clock_adjust__2:
        ; Left minus Right
        movf    clock_adjust__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        andwf   clock_adjust__in_mask,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size=0 && false_code.size=1
        btfss   __z___byte, __z___bit
        ; true.size=0 false_size=1 false=GOTO
        goto    clock_adjust__2
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 585
        ;  while ports[in_out_register] & in_mask != 0 done
        ; line_number = 587
        ; while ports[in_out_register] & in_mask = 0 start
clock_adjust__3:
        ; Left minus Right
        movf    clock_adjust__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        andwf   clock_adjust__in_mask,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    clock_adjust__4
        ; line_number = 588
        ; low := low + 1
        incf    clock_adjust__low,f
        ; line_number = 589
        ;  if _z start
        ; =>bit_code_emit@symbol(): sym=_z
        ; CASE: True.size=1 False.size=0
        btfsc   _z___byte, _z___bit
        ; line_number = 590
        ; high := high + 1
        incf    clock_adjust__high,f

        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
        ; line_number = 589
        ;  if _z done
        goto    clock_adjust__3
        ; Recombine size1 = 0 || size2 = 0
clock_adjust__4:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 587
        ; while ports[in_out_register] & in_mask = 0 done
        ; # Print out high and low:
        ; line_number = 593
        ;  call put_character('H')
        movlw   72
        call    put_character
        ; line_number = 594
        ;  call put_hex_byte(high)
        movf    clock_adjust__high,w
        call    put_hex_byte
        ; line_number = 595
        ;  call put_space()
        call    put_space
        ; line_number = 596
        ;  call put_character('L')
        movlw   76
        call    put_character
        ; line_number = 597
        ;  call put_hex_byte(low)
        movf    clock_adjust__low,w
        call    put_hex_byte
        ; line_number = 598
        ;  call put_space()
        call    put_space

        ; # Now think about adjusting clock.
        ; line_number = 601
        ;  if high > iterations_high start
        movlw   5
        subwf   clock_adjust__high,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __c___byte, __c___bit
        goto    clock_adjust__11
        ; # Clock pulse is too long; slave clock is too slow:
        ; line_number = 603
        ;  command := 0xf9
        movlw   249
        movwf   clock_adjust__command
        ; line_number = 604
        ;  error := high - target
        movf    clock_adjust__target,w
        subwf   clock_adjust__high,w
        movwf   clock_adjust__error
        ; Recombine code1_bit_states != code2_bit_states
        goto    clock_adjust__12
clock_adjust__11:
        ; line_number = 605
        movlw   5
        subwf   clock_adjust__high,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __c___byte, __c___bit
        goto    clock_adjust__9
        ; # The high 8-bits are equal:
        ; line_number = 611
        ;  if low > target start
        movf    clock_adjust__target,w
        subwf   clock_adjust__low,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __c___byte, __c___bit
        goto    clock_adjust__7
        ; # Clock pulse is too long; slave clock is too slow:
        ; line_number = 613
        ;  command := 0xf9
        movlw   249
        movwf   clock_adjust__command
        ; line_number = 614
        ;  error := low - target
        movf    clock_adjust__target,w
        subwf   clock_adjust__low,w
        movwf   clock_adjust__error
        ; Recombine code1_bit_states != code2_bit_states
        goto    clock_adjust__8
clock_adjust__7:
        ; line_number = 615
        movf    clock_adjust__target,w
        subwf   clock_adjust__low,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __c___byte, __c___bit
        goto    clock_adjust__5
        ; # Exact match; we are done:
        ; line_number = 621
        ;  command := 0
        movlw   0
        movwf   clock_adjust__command
        ; line_number = 622
        ;  error := 0
        movlw   0
        movwf   clock_adjust__error
        ; line_number = 623
        ;  error_minimum := 0
        movlw   0
        movwf   clock_adjust__error_minimum

        goto    clock_adjust__6
clock_adjust__5:
        ; # Clock pulse is too short; slave clock is too fast:
        ; line_number = 617
        ;  command := 0xf8
        movlw   248
        movwf   clock_adjust__command
        ; line_number = 618
        ;  error := target - low
        movf    clock_adjust__low,w
        subwf   clock_adjust__target,w
        movwf   clock_adjust__error
clock_adjust__6:
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
clock_adjust__8:
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 611
        ;  if low > target done
        ; Recombine code1_bit_states != code2_bit_states
        goto    clock_adjust__10
clock_adjust__9:
        ; # Clock pulse is too short; slave clock is too fast:
        ; line_number = 607
        ;  command := 0xf8
        movlw   248
        movwf   clock_adjust__command
        ; line_number = 608
        ;  error := target - high
        movf    clock_adjust__high,w
        subwf   clock_adjust__target,w
        movwf   clock_adjust__error
clock_adjust__10:
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
clock_adjust__12:
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 601
        ;  if high > iterations_high done
        ; # Print out the error and error minimum:
        ; line_number = 626
        ;  call put_character('E')
        movlw   69
        call    put_character
        ; line_number = 627
        ;  call put_hex_byte(error)
        movf    clock_adjust__error,w
        call    put_hex_byte
        ; line_number = 628
        ;  call put_space()
        call    put_space
        ; line_number = 629
        ;  call put_character('M')
        movlw   77
        call    put_character
        ; line_number = 630
        ;  call put_hex_byte(error_minimum)
        movf    clock_adjust__error_minimum,w
        call    put_hex_byte
        ; line_number = 631
        ;  call put_space()
        call    put_space

        ; line_number = 633
        ;  if error = error_minimum start
        ; Left minus Right
        movf    clock_adjust__error_minimum,w
        subwf   clock_adjust__error,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __z___byte, __z___bit
        goto    clock_adjust__16
        ; line_number = 634
        ; call put_crlf()
        call    put_crlf
        ; line_number = 635
        ;  return start
        ; line_number = 635
        retlw   0
        ; line_number = 635
        ;  return done
        goto    clock_adjust__17
clock_adjust__16:
        ; line_number = 636
        movf    clock_adjust__error_minimum,w
        subwf   clock_adjust__error,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __c___byte, __c___bit
        goto    clock_adjust__14
        ; line_number = 640
        ; count := count - 1
        decf    clock_adjust__count,f
        ; line_number = 641
        ;  if _z start
        ; =>bit_code_emit@symbol(): sym=_z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   _z___byte, _z___bit
        goto    clock_adjust__13
        ; line_number = 642
        ; error_minimum := error_minimum + 1
        incf    clock_adjust__error_minimum,f
        ; line_number = 643
        ;  count := 2
        movlw   2
        movwf   clock_adjust__count

        ; Recombine size1 = 0 || size2 = 0
clock_adjust__13:
        ; <=bit_code_emit@symbol; sym=_z (data:00=>00 code:11=>11)
        ; line_number = 641
        ;  if _z done
        ; Recombine code1_bit_states != code2_bit_states
        goto    clock_adjust__15
clock_adjust__14:
        ; line_number = 637
        ; error_minimum := error
        movf    clock_adjust__error,w
        movwf   clock_adjust__error_minimum
        ; line_number = 638
        ;  error := error + 1
        incf    clock_adjust__error,f
clock_adjust__15:
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
clock_adjust__17:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 633
        ;  if error = error_minimum done
        ; # Now adjust the clock:
        ; line_number = 646
        ;  call put_byte(command, socket)
        movf    clock_adjust__command,w
        movwf   put_byte__character
        movf    clock_adjust__socket,w
        call    put_byte

        ; line_number = 648
        ;  call put_crlf()
        call    put_crlf


        ; line_number = 569
        ;  loop_forever wrap-up
        goto    clock_adjust__1
        ; line_number = 569
        ;  loop_forever done
        ; delay after procedure statements=non-uniform




        ; line_number = 651
        ; procedure execute
execute:
        ; arguments_none
        ; line_number = 653
        ;  returns_nothing

        ; # This procedure will transfer control to location program_origin.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 657
        ;  _pclath := 0
        movlw   0
        movwf   _pclath
        ; line_number = 658
        ;  _pcl := program_origin
        movlw   8
        movwf   _pcl


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




        ; line_number = 661
        ; procedure goto_command
goto_command:
        ; arguments_none
        ; line_number = 663
        ;  returns_nothing

        ; line_number = 665
        ;  local address_low byte
goto_command__address_low equ globals___0+34
        ; line_number = 666
        ;  local address_high byte
goto_command__address_high equ globals___0+35

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 668
        ;  address_high := get_hex_byte()
        call    get_hex_byte
        movwf   goto_command__address_high
        ; line_number = 669
        ;  address_low := get_hex_byte()
        call    get_hex_byte
        movwf   goto_command__address_low
        ; line_number = 670
        ;  if get_carriage_return() start
        call    get_carriage_return
        ; =>bit_code_emit@symbol(): sym=get_carriage_return__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   get_carriage_return__0return___byte, get_carriage_return__0return___bit
        goto    goto_command__1
        ; line_number = 671
        ; _pclath := address_high
        movf    goto_command__address_high,w
        movwf   _pclath
        ; line_number = 672
        ;  _pcl := address_low
        movf    goto_command__address_low,w
        movwf   _pcl


        ; Recombine size1 = 0 || size2 = 0
goto_command__1:
        ; <=bit_code_emit@symbol; sym=get_carriage_return__0return (data:00=>00 code:11=>11)
        ; line_number = 670
        ;  if get_carriage_return() done
        ; delay after procedure statements=non-uniform
        ; Implied return
        retlw   0




        ; # The `id' procedures are below:

        ; line_number = 677
        ; procedure id8
id8:
        ; Last argument is sitting in W; save into argument variable
        movwf   id8__socket
        ; delay=4294967295
        ; line_number = 678
        ; argument socket byte
id8__socket equ globals___0+37
        ; line_number = 679
        ;  returns_nothing

        ; # This procedure will print out 8 bytes of id:

        ; line_number = 683
        ;  local count byte
id8__count equ globals___0+36

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 685
        ;  loop_exactly 8 start
id8__1 equ globals___0+70
        movlw   8
        movwf   id8__1
id8__2:
        ; line_number = 686
        ; call put_hex_byte(put_get_byte(id_next, socket))
        movlw   252
        movwf   put_get_byte__command
        movf    id8__socket,w
        call    put_get_byte
        call    put_hex_byte
        ; line_number = 687
        ;  call put_space()
        call    put_space
        ; line_number = 685
        ;  loop_exactly 8 wrap-up
        decfsz  id8__1,f
        goto    id8__2
        ; line_number = 685
        ;  loop_exactly 8 done
        ; line_number = 688
        ; call put_crlf()
        call    put_crlf


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




        ; line_number = 691
        ; procedure id_string
id_string:
        ; Last argument is sitting in W; save into argument variable
        movwf   id_string__socket
        ; delay=4294967295
        ; line_number = 692
        ; argument socket byte
id_string__socket equ globals___0+39
        ; line_number = 693
        ;  returns_nothing

        ; # This procedure will print out a string from the id:

        ; line_number = 697
        ;  local size byte
id_string__size equ globals___0+38

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 699
        ;  size := put_get_byte(id_next, socket)
        movlw   252
        movwf   put_get_byte__command
        movf    id_string__socket,w
        call    put_get_byte
        movwf   id_string__size
        ; line_number = 700
        ;  while size != 0 start
id_string__1:
        ; Left minus Right
        movf    id_string__size,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=0 && false.size>1
        btfsc   __z___byte, __z___bit
        goto    id_string__2
        ; line_number = 701
        ; call put_character(put_get_byte(id_next, socket))
        movlw   252
        movwf   put_get_byte__command
        movf    id_string__socket,w
        call    put_get_byte
        call    put_character
        ; line_number = 702
        ;  size := size - 1
        decf    id_string__size,f
        goto    id_string__1
id_string__2:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 700
        ;  while size != 0 done
        ; line_number = 703
        ; call put_crlf()
        call    put_crlf


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




        ; # The `get' procedures are below:

        ; line_number = 708
        ; procedure get_byte
get_byte:
        ; Last argument is sitting in W; save into argument variable
        movwf   get_byte__socket
        ; delay=4294967295
        ; line_number = 709
        ; argument socket byte
get_byte__socket equ globals___0+44
        ; line_number = 710
        ;  returns byte

        ; # This procedure will get a byte from the currently selected
        ; # input.  If no byte is received in a reasonable amount of
        ; # time, 0xfc is returned.

        ; line_number = 716
        ;  local counter byte
get_byte__counter equ globals___0+40
        ; line_number = 717
        ;  local character byte
get_byte__character equ globals___0+41
        ; line_number = 718
        ;  local in_mask byte
get_byte__in_mask equ globals___0+42
        ; line_number = 719
        ;  local in_out_register byte
get_byte__in_out_register equ globals___0+43

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 721
        ;  in_out_register := in_out_registers(socket)
        movf    get_byte__socket,w
        call    in_out_registers
        movwf   get_byte__in_out_register
        ; line_number = 722
        ;  in_mask := in_masks(socket)
        movf    get_byte__socket,w
        call    in_masks
        movwf   get_byte__in_mask

        ; line_number = 724
        ;  receiving := 1
        bsf     receiving___byte, receiving___bit
        ; line_number = 725
        ;  loop_exactly 255 start
get_byte__1 equ globals___0+71
        movlw   255
        movwf   get_byte__1
get_byte__2:
        ; line_number = 726
        ; if ports[in_out_register] & in_mask = 0 start
        ; Left minus Right
        movf    get_byte__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        andwf   get_byte__in_mask,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    get_byte__9
        ; # We got a start bit:
        ; line_number = 728
        ;  call delay()
        call    delay
        ; line_number = 729
        ;  call delay()
        call    delay
        ; line_number = 730
        ;  call delay()
        call    delay

        ; # 2 Instructions for loop_exactly initialization:
        ; line_number = 733
        ;  delay extra_bit_instructions - 2 start
        ; Delay expression evaluates to 22
        ; # Sample 1/3 of bit into each character:
        ; line_number = 735
        ;  character := 0
        ; Delay at assignment is 0
        movlw   0
        movwf   get_byte__character

        ; Delay 20 cycles
        ; Delay loop takes 5 * 4 = 20 cycles
        movlw   5
get_byte__3:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    get_byte__3
        ; line_number = 733
        ;  delay extra_bit_instructions - 2 done
        ; line_number = 737
        ; loop_exactly 8 start
get_byte__4 equ globals___0+72
        movlw   8
        movwf   get_byte__4
get_byte__5:
        ; line_number = 738
        ; call delay()
        call    delay
        ; # 3 Instructions for loop overhead:
        ; line_number = 740
        ;  delay extra_bit_instructions - 3 start
        ; Delay expression evaluates to 21
        ; line_number = 741
        ; character := character >> 1
        ; Delay at assignment is 0
        ; Assignment of variable to self (no code needed)
        rrf     get_byte__character,f
        bcf     get_byte__character, 7
        ; line_number = 742
        ;  if ports[in_out_register] & in_mask != 0 start
        ; Delay at if is 2
        ; Left minus Right
        movf    get_byte__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        andwf   get_byte__in_mask,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size=0 && false_code.size=1
        btfss   __z___byte, __z___bit
        ; line_number = 743
        ; character@7 := 1
        ; Delay at assignment is 0
get_byte__select__6___byte equ get_byte__character
get_byte__select__6___bit equ 7
        bsf     get_byte__select__6___byte, get_byte__select__6___bit
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; Uniform delay broke in relation_code_emit
        ; if final true delay=1 false delay=0 code delay=10
        ; line_number = 742
        ;  if ports[in_out_register] & in_mask != 0 done
        ; Delay 11 cycles
        ; Delay loop takes 2 * 4 = 8 cycles
        movlw   2
get_byte__7:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    get_byte__7
        goto    get_byte__8
get_byte__8:
        nop     
        ; line_number = 740
        ;  delay extra_bit_instructions - 3 done
        ; line_number = 744
        ; call delay()
        call    delay
        ; line_number = 745
        ;  call delay()
        call    delay

        ; line_number = 737
        ; loop_exactly 8 wrap-up
        decfsz  get_byte__4,f
        goto    get_byte__5
        ; line_number = 737
        ; loop_exactly 8 done
        ; # Now sleep through 2/3's of the stop bit:
        ; line_number = 748
        ;  call delay()
        call    delay
        ; line_number = 749
        ;  call delay()
        call    delay
        ; line_number = 750
        ;  return character start
        ; line_number = 750
        movf    get_byte__character,w
        return  
        ; line_number = 750
        ;  return character done
        ; Recombine size1 = 0 || size2 = 0
get_byte__9:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 726
        ; if ports[in_out_register] & in_mask = 0 done
        ; line_number = 751
        ; call delay()
        call    delay
        ; line_number = 725
        ;  loop_exactly 255 wrap-up
        decfsz  get_byte__1,f
        goto    get_byte__2
        ; line_number = 725
        ;  loop_exactly 255 done
        ; line_number = 752
        ; return 0xfc start
        ; line_number = 752
        retlw   252
        ; line_number = 752
        ; return 0xfc done


        ; delay after procedure statements=non-uniform




get_carriage_return__0return___byte equ globals___0+79
get_carriage_return__0return___bit equ 4
        ; line_number = 755
        ; procedure get_carriage_return
get_carriage_return:
        ; arguments_none
        ; line_number = 757
        ;  returns bit

        ; # This procedure will verify that the next character is
        ; # a carriage return.  If the next character is a carriage
        ; # return a 1 is returned.  Otherwise, characters are read
        ; # until a carriage return is encountered and 0 is returned.
        ; # If any errors occurred (i.e. ok = 0), a "?" followed by
        ; # carriage-return line-feed is returned.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 766
        ;  while get_character() != carriage_return start
get_carriage_return__1:
        ; Left minus Right
        call    get_character
        addlw   243
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true.size=0 && false.size>1
        btfsc   __z___byte, __z___bit
        goto    get_carriage_return__2
        ; line_number = 767
        ; ok := 0
        bcf     ok___byte, ok___bit
        goto    get_carriage_return__1
get_carriage_return__2:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 766
        ;  while get_character() != carriage_return done
        ; line_number = 768
        ; have_carriage_return := 0
        bcf     have_carriage_return___byte, have_carriage_return___bit
        ; line_number = 769
        ;  if ok start
        ; =>bit_code_emit@symbol(): sym=ok
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   ok___byte, ok___bit
        goto    get_carriage_return__3
        ; line_number = 770
        ; return 1 start
        ; line_number = 770
        bsf     get_carriage_return__0return___byte, get_carriage_return__0return___bit
        return  
        ; line_number = 770
        ; return 1 done
        ; Recombine size1 = 0 || size2 = 0
get_carriage_return__3:
        ; <=bit_code_emit@symbol; sym=ok (data:00=>00 code:11=>11)
        ; line_number = 769
        ;  if ok done
        ; line_number = 771
        ; call put_character('?')
        movlw   63
        call    put_character
        ; line_number = 772
        ;  call put_crlf()
        call    put_crlf
        ; line_number = 773
        ;  return 0 start
        ; line_number = 773
        bcf     get_carriage_return__0return___byte, get_carriage_return__0return___bit
        return  
        ; line_number = 773
        ;  return 0 done


        ; delay after procedure statements=non-uniform




        ; line_number = 776
        ; procedure get_character
get_character:
        ; arguments_none
        ; line_number = 778
        ;  returns byte

        ; # This procedure will get the next character from the UART.

        ; line_number = 782
        ;  local character byte
get_character__character equ globals___0+45
        ; line_number = 783
        ;  local pir1_copy byte
get_character__pir1_copy equ globals___0+46

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 785
        ;  if have_carriage_return start
        ; =>bit_code_emit@symbol(): sym=have_carriage_return
        ; CASE: True.size=1 False.size=0
        btfsc   have_carriage_return___byte, have_carriage_return___bit
        ; line_number = 786
        ; return carriage_return start
        ; line_number = 786
        retlw   13
        ; line_number = 786
        ; return carriage_return done

        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=have_carriage_return (data:00=>00 code:11=>11)
        ; line_number = 785
        ;  if have_carriage_return done
        ; # FIXME:  Compiler can't bit test outside of the current data bank!!!
        ; # So read the entire register into a temporary and test second.

        ; # Read characters until something other than a space is typed in:
        ; line_number = 792
        ;  character := space
        movlw   32
        movwf   get_character__character
        ; line_number = 793
        ;  while character = space start
get_character__1:
        ; Left minus Right
        movlw   224
        addwf   get_character__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    get_character__6
        ; line_number = 794
        ; pir1_copy@5 := 0
get_character__select__2___byte equ get_character__pir1_copy
get_character__select__2___bit equ 5
        bcf     get_character__select__2___byte, get_character__select__2___bit
        ; line_number = 795
        ;  while !(pir1_copy@5) start
get_character__3:
get_character__select__4___byte equ get_character__pir1_copy
get_character__select__4___bit equ 5
        ; =>bit_code_emit@symbol(): sym=get_character__select__4
        ; CASE: true.size=0 && false.size>1
        btfsc   get_character__select__4___byte, get_character__select__4___bit
        goto    get_character__5
        ; # Wait for character:
        ; line_number = 797
        ;  pir1_copy := _pir1
        movf    _pir1,w
        movwf   get_character__pir1_copy
        goto    get_character__3
get_character__5:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=get_character__select__4 (data:00=>00 code:11=>11)
        ; line_number = 795
        ;  while !(pir1_copy@5) done
        ; line_number = 798
        ; character := _rcreg
        movf    _rcreg,w
        movwf   get_character__character

        goto    get_character__1
        ; Recombine size1 = 0 || size2 = 0
get_character__6:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 793
        ;  while character = space done
        ; # Convert to upper case:
        ; line_number = 801
        ;  if 'a' <= character && character <= 'z' start
        movlw   97
        subwf   get_character__character,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size>1 false.size=1; false=GOTO
        btfss   __c___byte, __c___bit
        goto    get_character__7
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   122
        subwf   get_character__character,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size=0 && false.size>1
        btfsc   __c___byte, __c___bit
        goto    get_character__8
        ; line_number = 802
        ; character := character - 'a' + 'A'
        movlw   224
        addwf   get_character__character,f

get_character__8:
get_character__7:
        ; Recombine code1_bit_states != code2_bit_states
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; &&||: 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
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 801
        ;  if 'a' <= character && character <= 'z' done
        ; # Carriage returns "stick" until get_carriage_return() is called:
        ; line_number = 805
        ;  if character = carriage_return start
        ; Left minus Right
        movlw   243
        addwf   get_character__character,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   __z___byte, __z___bit
        goto    get_character__9
        ; line_number = 806
        ; call put_character(line_feed)
        movlw   10
        call    put_character
        ; line_number = 807
        ;  have_carriage_return := 1
        bsf     have_carriage_return___byte, have_carriage_return___bit
        ; Recombine size1 = 0 || size2 = 0
get_character__9:
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; line_number = 805
        ;  if character = carriage_return done
        ; line_number = 808
        ; return character start
        ; line_number = 808
        movf    get_character__character,w
        return  
        ; line_number = 808
        ; return character done


        ; delay after procedure statements=non-uniform




        ; line_number = 811
        ; procedure get_hex_byte
get_hex_byte:
        ; arguments_none
        ; line_number = 813
        ;  returns byte

        ; # This procedure will read one hexadecimal byte:

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 817
        ;  return (get_hex_nibble() << 4) | get_hex_nibble() start
        ; line_number = 817
get_hex_byte__1 equ globals___0+73
        call    get_hex_nibble
        movwf   get_hex_byte__1
        swapf   get_hex_byte__1,f
        movlw   240
        andwf   get_hex_byte__1,f
        call    get_hex_nibble
        iorwf   get_hex_byte__1,w
        return  
        ; line_number = 817
        ;  return (get_hex_nibble() << 4) | get_hex_nibble() done


        ; delay after procedure statements=non-uniform




        ; line_number = 820
        ; procedure get_hex_nibble
get_hex_nibble:
        ; arguments_none
        ; line_number = 822
        ;  returns byte

        ; # This procedure will get and return one hexadecimal digit worth
        ; # of number.

        ; line_number = 827
        ;  local character byte
get_hex_nibble__character equ globals___0+47

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 829
        ;  character := get_character()
        call    get_character
        movwf   get_hex_nibble__character
        ; line_number = 830
        ;  if '0' <= character && character <= '9' start
        movlw   48
        subwf   get_hex_nibble__character,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size>1 false.size=1; false=GOTO
        btfss   __c___byte, __c___bit
        goto    get_hex_nibble__3
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   57
        subwf   get_hex_nibble__character,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   __c___byte, __c___bit
        goto    get_hex_nibble__4
get_hex_nibble__3:
        ; line_number = 832
        movlw   65
        subwf   get_hex_nibble__character,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size>1 false.size=1; false=GOTO
        btfss   __c___byte, __c___bit
        goto    get_hex_nibble__1
        ; &&||: index=1 true_delay=4294967295 false_delay=4294967295 goto_delay=4294967295
        movlw   70
        subwf   get_hex_nibble__character,w
        btfsc   __z___byte, __z___bit
        bcf     __c___byte, __c___bit
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size=0 && false.size>1
        btfsc   __c___byte, __c___bit
        goto    get_hex_nibble__2
        ; line_number = 833
        ; return character - 'A' + 10 start
        ; line_number = 833
        movlw   201
        addwf   get_hex_nibble__character,w
        return  
        ; line_number = 833
        ; return character - 'A' + 10 done
get_hex_nibble__2:
get_hex_nibble__1:
        ; Recombine code1_bit_states != code2_bit_states
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; &&||: 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
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; Recombine code1_bit_states != code2_bit_states
        goto    get_hex_nibble__5
get_hex_nibble__4:
        ; line_number = 831
        ; return character - '0' start
        ; line_number = 831
        movlw   208
        addwf   get_hex_nibble__character,w
        return  
        ; line_number = 831
        ; return character - '0' done
get_hex_nibble__5:
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; &&||: 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
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 830
        ;  if '0' <= character && character <= '9' done
        ; line_number = 834
        ; ok := 0
        bcf     ok___byte, ok___bit
        ; line_number = 835
        ;  return 0 start
        ; line_number = 835
        retlw   0
        ; line_number = 835
        ;  return 0 done


        ; delay after procedure statements=non-uniform




        ; # The `put' procedures:

        ; line_number = 840
        ; procedure put_get_byte
put_get_byte:
        ; Last argument is sitting in W; save into argument variable
        movwf   put_get_byte__socket
        ; delay=4294967295
        ; line_number = 841
        ; argument command byte
put_get_byte__command equ globals___0+48
        ; line_number = 842
        ; argument socket byte
put_get_byte__socket equ globals___0+49
        ; line_number = 843
        ;  returns byte

        ; # This procedure will output {command} to {socket} and wait
        ; # for a response which is subseuently returned.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 848
        ;  call put_byte(command, socket)
        movf    put_get_byte__command,w
        movwf   put_byte__character
        movf    put_get_byte__socket,w
        call    put_byte
        ; line_number = 849
        ;  return get_byte(socket) start
        ; line_number = 849
        movf    put_get_byte__socket,w
        call    get_byte
        return  
        ; line_number = 849
        ;  return get_byte(socket) done


        ; delay after procedure statements=non-uniform




        ; line_number = 852
        ; procedure put_byte
put_byte:
        ; Last argument is sitting in W; save into argument variable
        movwf   put_byte__socket
        ; delay=4294967295
        ; line_number = 853
        ; argument character byte
put_byte__character equ globals___0+56
        ; line_number = 854
        ; argument socket byte
put_byte__socket equ globals___0+57
        ; line_number = 855
        ;  returns_nothing

        ; # This procedure will send {character} out to {socket}.

        ; line_number = 859
        ;  local counter byte
put_byte__counter equ globals___0+50
        ; line_number = 860
        ;  local one byte
put_byte__one equ globals___0+51
        ; line_number = 861
        ;  local port byte
put_byte__port equ globals___0+52
        ; line_number = 862
        ;  local zero byte
put_byte__zero equ globals___0+53

        ; line_number = 864
        ;  local in_out_register byte
put_byte__in_out_register equ globals___0+54
        ; line_number = 865
        ;  local out_mask byte
put_byte__out_mask equ globals___0+55

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 867
        ;  in_out_register := in_out_registers(socket)
        movf    put_byte__socket,w
        call    in_out_registers
        movwf   put_byte__in_out_register
        ; line_number = 868
        ;  out_mask := out_masks(socket)
        movf    put_byte__socket,w
        call    out_masks
        movwf   put_byte__out_mask
        ; line_number = 869
        ;  port := ports[in_out_register]
        movf    put_byte__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        movwf   put_byte__port
        ; line_number = 870
        ;  one := port | out_mask
        movf    put_byte__port,w
        iorwf   put_byte__out_mask,w
        movwf   put_byte__one
        ; line_number = 871
        ;  zero := port & (out_mask ^ 0xff)
        movlw   255
        xorwf   put_byte__out_mask,w
        andwf   put_byte__port,w
        movwf   put_byte__zero

        ; # If we were last receiving some characters, let's delay by 2/3 bit
        ; # to make sure there is adequate turn-around:
        ; line_number = 875
        ;  if receiving start
        ; =>bit_code_emit@symbol(): sym=receiving
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   receiving___byte, receiving___bit
        goto    put_byte__1
        ; line_number = 876
        ; receiving := 0
        bcf     receiving___byte, receiving___bit
        ; line_number = 877
        ;  call delay()
        call    delay
        ; line_number = 878
        ;  call delay()
        call    delay

        ; Recombine size1 = 0 || size2 = 0
put_byte__1:
        ; <=bit_code_emit@symbol; sym=receiving (data:00=>00 code:11=>11)
        ; line_number = 875
        ;  if receiving done
        ; # Do start bit:
        ; line_number = 881
        ;  delay extra_bit_instructions - 2 start
        ; Delay expression evaluates to 22
        ; line_number = 882
        ; ports[in_out_register] := zero
        ; Delay at assignment is 0
        ; index_fsr_first
        movf    put_byte__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    put_byte__zero,w
        movwf   __indf
        ; Delay 16 cycles
        ; Delay loop takes 4 * 4 = 16 cycles
        movlw   4
put_byte__2:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    put_byte__2
        ; line_number = 881
        ;  delay extra_bit_instructions - 2 done
        ; line_number = 883
        ; call delay()
        call    delay
        ; line_number = 884
        ;  call delay()
        call    delay
        ; line_number = 885
        ;  call delay()
        call    delay
        ; # "- 2" is for two bytes of loop set up:

        ; # Do next 8 bits:
        ; line_number = 889
        ;  loop_exactly 8 start
put_byte__3 equ globals___0+74
        movlw   8
        movwf   put_byte__3
put_byte__4:
        ; # 3 cycles for goto at end of loop
        ; line_number = 891
        ;  delay extra_bit_instructions - 3 start
        ; Delay expression evaluates to 21
        ; line_number = 892
        ; port := ports[in_out_register]
        ; Delay at assignment is 0
        movf    put_byte__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    __indf,w
        movwf   put_byte__port
        ; line_number = 893
        ;  if character@0 start
        ; Delay at if is 6
put_byte__select__5___byte equ put_byte__character
put_byte__select__5___bit equ 0
        ; =>bit_code_emit@symbol(): sym=put_byte__select__5
        ; CASE: true_code_size > 1 && false_code_size > 1
        btfss   put_byte__select__5___byte, put_byte__select__5___bit
        goto    put_byte__6
        ; # Send a mark (1):
        ; line_number = 895
        ;  port := one
        ; Delay at assignment is 0
        movf    put_byte__one,w
        movwf   put_byte__port
        goto    put_byte__7
put_byte__6:
        ; # Send a space (0):
        ; line_number = 898
        ;  port := zero
        ; Delay at assignment is 0
        movf    put_byte__zero,w
        movwf   put_byte__port
        nop     
put_byte__7:
        ; <=bit_code_emit@symbol; sym=put_byte__select__5 (data:00=>00 code:11=>11)
        ; if final true delay=2 false delay=2 code delay=12
        ; line_number = 893
        ;  if character@0 done
        ; line_number = 899
        ; ports[in_out_register] := port
        ; Delay at assignment is 12
        ; index_fsr_first
        movf    put_byte__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    put_byte__port,w
        movwf   __indf
        ; line_number = 900
        ;  character := character >> 1
        ; Delay at assignment is 18
        ; Assignment of variable to self (no code needed)
        rrf     put_byte__character,f
        bcf     put_byte__character, 7
        ; Delay 1 cycles
        nop     
        ; line_number = 891
        ;  delay extra_bit_instructions - 3 done
        ; line_number = 901
        ; call delay()
        call    delay
        ; line_number = 902
        ;  call delay()
        call    delay
        ; line_number = 903
        ;  call delay()
        call    delay

        ; line_number = 889
        ;  loop_exactly 8 wrap-up
        decfsz  put_byte__3,f
        goto    put_byte__4
        ; line_number = 889
        ;  loop_exactly 8 done
        ; # Now do stop bit:
        ; line_number = 906
        ;  delay extra_bit_instructions start
        ; Delay expression evaluates to 24
        ; line_number = 907
        ; ports[in_out_register] := one
        ; Delay at assignment is 0
        ; index_fsr_first
        movf    put_byte__in_out_register,w
        addlw   ports
        movwf   __fsr
        bcf     __irp___byte, __irp___bit
        movf    put_byte__one,w
        movwf   __indf
        ; Delay 18 cycles
        ; Delay loop takes 4 * 4 = 16 cycles
        movlw   4
put_byte__8:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    put_byte__8
        goto    put_byte__9
put_byte__9:
        ; line_number = 906
        ;  delay extra_bit_instructions done
        ; line_number = 908
        ; call delay()
        call    delay
        ; line_number = 909
        ;  call delay()
        call    delay
        ; line_number = 910
        ;  call delay()
        call    delay


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




        ; line_number = 913
        ; procedure put_character
put_character:
        ; Last argument is sitting in W; save into argument variable
        movwf   put_character__character
        ; delay=4294967295
        ; line_number = 914
        ; argument character byte
put_character__character equ globals___0+59
        ; line_number = 915
        ;  returns_nothing

        ; # This procedure will send {character} out to TX-pin of port C.

        ; line_number = 919
        ;  local pir1_copy byte
put_character__pir1_copy equ globals___0+58

        ; #FIXME: The compiler chokes on a bit test in another page!!!
        ; # For now may a local copy and test locally:
        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 923
        ;  pir1_copy@4 := 0
put_character__select__1___byte equ put_character__pir1_copy
put_character__select__1___bit equ 4
        bcf     put_character__select__1___byte, put_character__select__1___bit
        ; line_number = 924
        ;  while !(pir1_copy@4) start
put_character__2:
put_character__select__3___byte equ put_character__pir1_copy
put_character__select__3___bit equ 4
        ; =>bit_code_emit@symbol(): sym=put_character__select__3
        ; CASE: true.size=0 && false.size>1
        btfsc   put_character__select__3___byte, put_character__select__3___bit
        goto    put_character__4
        ; # Wait for transmit buffer to empty.
        ; line_number = 926
        ;  pir1_copy := _pir1
        movf    _pir1,w
        movwf   put_character__pir1_copy

        goto    put_character__2
put_character__4:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=put_character__select__3 (data:00=>00 code:11=>11)
        ; line_number = 924
        ;  while !(pir1_copy@4) done
        ; # Send the character:
        ; line_number = 929
        ;  _txreg := character
        movf    put_character__character,w
        movwf   _txreg


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




        ; line_number = 932
        ; procedure put_crlf
put_crlf:
        ; arguments_none
        ; line_number = 934
        ;  returns_nothing

        ; # This procedure will output a carriage-return line-feed.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 938
        ;  call put_character(carriage_return)
        movlw   13
        call    put_character
        ; line_number = 939
        ;  call put_character(line_feed)
        movlw   10
        call    put_character


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




        ; line_number = 942
        ; procedure put_hex_byte
put_hex_byte:
        ; Last argument is sitting in W; save into argument variable
        movwf   put_hex_byte__byte
        ; delay=4294967295
        ; line_number = 943
        ; argument byte byte
put_hex_byte__byte equ globals___0+60
        ; line_number = 944
        ;  returns_nothing

        ; # This procedure will output {byte} as two hexadecimal digits.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 948
        ;  call put_hex_nibble(byte >> 4)
put_hex_byte__1 equ globals___0+75
        swapf   put_hex_byte__byte,w
        andlw   15
        call    put_hex_nibble
        ; line_number = 949
        ;  call put_hex_nibble(byte & 15)
        movlw   15
        andwf   put_hex_byte__byte,w
        call    put_hex_nibble


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




        ; line_number = 952
        ; procedure put_hex_nibble
put_hex_nibble:
        ; Last argument is sitting in W; save into argument variable
        movwf   put_hex_nibble__nibble
        ; delay=4294967295
        ; line_number = 953
        ; argument nibble byte
put_hex_nibble__nibble equ globals___0+61
        ; line_number = 954
        ;  returns_nothing

        ; # This procedure will output {nibble} as a hexadecimal digit.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 958
        ;  if nibble < 10 start
        movlw   10
        subwf   put_hex_nibble__nibble,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true_size=1 && false_size=1
        btfsc   __c___byte, __c___bit
        ; line_number = 961
        ; nibble := nibble + 'A' - 10
        movlw   55
        btfss   __c___byte, __c___bit
        ; line_number = 959
        ; nibble := nibble + '0'
        movlw   48
        addwf   put_hex_nibble__nibble,f
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 958
        ;  if nibble < 10 done
        ; line_number = 962
        ; call put_character(nibble)
        movf    put_hex_nibble__nibble,w
        call    put_character


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




        ; line_number = 965
        ; procedure put_space
put_space:
        ; arguments_none
        ; line_number = 967
        ;  returns_nothing

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 969
        ;  call put_character(space)
        movlw   32
        call    put_character


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




        ; # Sleep routines:

seconds_sleep__0return___byte equ globals___0+79
seconds_sleep__0return___bit equ 5
        ; line_number = 974
        ; procedure seconds_sleep
seconds_sleep:
        ; Last argument is sitting in W; save into argument variable
        movwf   seconds_sleep__seconds
        ; delay=4294967295
        ; line_number = 975
        ; argument seconds byte
seconds_sleep__seconds equ globals___0+63
        ; line_number = 976
        ;  returns bit

        ; # This procedure will sleep for the specified number of seconds.

        ; line_number = 980
        ;  local count byte
seconds_sleep__count equ globals___0+62

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 982
        ;  count := 0
        movlw   0
        movwf   seconds_sleep__count
        ; line_number = 983
        ;  loop_exactly seconds start
seconds_sleep__1 equ globals___0+76
        movf    seconds_sleep__seconds,w
        movwf   seconds_sleep__1
seconds_sleep__2:
        ; line_number = 984
        ; call put_hex_byte(count)
        movf    seconds_sleep__count,w
        call    put_hex_byte
        ; line_number = 985
        ;  call put_space()
        call    put_space
        ; line_number = 986
        ;  if second_sleep() start
        call    second_sleep
        ; =>bit_code_emit@symbol(): sym=second_sleep__0return
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfss   second_sleep__0return___byte, second_sleep__0return___bit
        goto    seconds_sleep__4
        ; line_number = 987
        ; if sleep_count < 10 start
        movlw   10
        subwf   sleep_count,w
        ; =>bit_code_emit@symbol(): sym=__c
        ; CASE: true.size=0 && false.size>1
        btfsc   __c___byte, __c___bit
        goto    seconds_sleep__3
        ; line_number = 988
        ; return 1 start
        ; line_number = 988
        bsf     seconds_sleep__0return___byte, seconds_sleep__0return___bit
        return  
        ; line_number = 988
        ; return 1 done
seconds_sleep__3:
        ; Recombine size1 = 0 || size2 = 0
        ; <=bit_code_emit@symbol; sym=__c (data:00=>00 code:11=>11)
        ; line_number = 987
        ; if sleep_count < 10 done
        ; line_number = 989
        ; return 0 start
        ; line_number = 989
        bcf     seconds_sleep__0return___byte, seconds_sleep__0return___bit
        return  
        ; line_number = 989
        ; return 0 done
        ; Recombine size1 = 0 || size2 = 0
seconds_sleep__4:
        ; <=bit_code_emit@symbol; sym=second_sleep__0return (data:00=>00 code:11=>11)
        ; line_number = 986
        ;  if second_sleep() done
        ; line_number = 990
        ; count := count + 1
        incf    seconds_sleep__count,f
        ; line_number = 983
        ;  loop_exactly seconds wrap-up
        decfsz  seconds_sleep__1,f
        goto    seconds_sleep__2
        ; line_number = 983
        ;  loop_exactly seconds done
        ; line_number = 991
        ; return 1 start
        ; line_number = 991
        bsf     seconds_sleep__0return___byte, seconds_sleep__0return___bit
        return  
        ; line_number = 991
        ; return 1 done


        ; delay after procedure statements=non-uniform




second_sleep__0return___byte equ globals___0+79
second_sleep__0return___bit equ 6
        ; line_number = 994
        ; procedure second_sleep
second_sleep:
        ; arguments_none
        ; line_number = 996
        ;  returns bit

        ; # This procedure will sleep for one second.

        ; line_number = 1000
        ;  local count1 byte
second_sleep__count1 equ globals___0+64
        ; line_number = 1001
        ;  local count2 byte
second_sleep__count2 equ globals___0+65

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 1003
        ;  _rcif := 0
        bcf     _rcif___byte, _rcif___bit
        ; line_number = 1004
        ;  _rcreg := 0
        movlw   0
        movwf   _rcreg
        ; line_number = 1005
        ;  loop_exactly 100 start
second_sleep__1 equ globals___0+77
        movlw   100
        movwf   second_sleep__1
second_sleep__2:
        ; line_number = 1006
        ; loop_exactly 100 start
second_sleep__3 equ globals___0+78
        movlw   100
        movwf   second_sleep__3
second_sleep__4:
        ; line_number = 1007
        ; delay 500 start
        ; Delay expression evaluates to 500
        ; line_number = 1008
        ; if _rcif start
        ; Delay at if is 0
        ; =>bit_code_emit@symbol(): sym=_rcif
        ; CASE: true_code.size = 0 && false_code.size > 1
        btfsc   _rcif___byte, _rcif___bit
        goto    second_sleep__5
        ; Delay 2 cycles
        goto    second_sleep__7
second_sleep__7:
        goto    second_sleep__6
second_sleep__5:
        ; line_number = 1009
        ; return 1 start
        ; line_number = 1009
        ; Delay at expression return is 0
        bsf     second_sleep__0return___byte, second_sleep__0return___bit
        return  
        ; line_number = 1009
        ; return 1 done
second_sleep__6:
        ; <=bit_code_emit@symbol; sym=_rcif (data:00=>00 code:11=>11)
        ; if final true delay=3 false delay=0 code delay=6
        ; line_number = 1008
        ; if _rcif done
        ; line_number = 1010
        ; if sleep_count != 255 start
        ; Delay at if is 6
        ; Left minus Right
        incf    sleep_count,w
        ; =>bit_code_emit@symbol(): sym=__z
        ; CASE: true_code.size=0 && false_code.size=1
        btfss   __z___byte, __z___bit
        ; line_number = 1011
        ; sleep_count := sleep_count + 1
        ; Delay at assignment is 0
        incf    sleep_count,f
        ; <=bit_code_emit@symbol; sym=__z (data:00=>00 code:11=>11)
        ; Uniform delay broke in relation_code_emit
        ; if final true delay=1 false delay=0 code delay=9
        ; line_number = 1010
        ; if sleep_count != 255 done
        ; Delay 491 cycles
        ; Delay loop takes 122 * 4 = 488 cycles
        movlw   122
second_sleep__8:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    second_sleep__8
        goto    second_sleep__9
second_sleep__9:
        nop     
        ; line_number = 1007
        ; delay 500 done
        ; line_number = 1006
        ; loop_exactly 100 wrap-up
        decfsz  second_sleep__3,f
        goto    second_sleep__4
        ; line_number = 1006
        ; loop_exactly 100 done
        ; line_number = 1005
        ;  loop_exactly 100 wrap-up
        decfsz  second_sleep__1,f
        goto    second_sleep__2
        ; line_number = 1005
        ;  loop_exactly 100 done
        ; line_number = 1012
        ; return 0 start
        ; line_number = 1012
        bcf     second_sleep__0return___byte, second_sleep__0return___bit
        return  
        ; line_number = 1012
        ; return 0 done


        ; delay after procedure statements=non-uniform




        ; line_number = 1015
        ; procedure delay
delay:
        ; arguments_none
        ; line_number = 1017
        ;  returns_nothing
        ; line_number = 1018
        ;  exact_delay delay_instructions

        ; # Delay 1/3 of a bit:

        ; # Kick the dog:
        ; before procedure statements delay=0, bit states=(data:00=>00 code:11=>11)
        ; line_number = 1023
        ;  watch_dog_reset done
        ; Delay at watch_dog_reset is 0
        clrwdt  


        ; delay after procedure statements=1
        ; Delay 683 cycles
        ; Delay loop takes 170 * 4 = 680 cycles
        movlw   170
delay__1:
        addlw   255
        btfss   __z___byte, __z___bit
        goto    delay__1
        goto    delay__2
delay__2:
        nop     
        ; Implied return
        retlw   0
        ; Final delay = 686




        ; line_number = 1026
        ; string hello = "PICBrain11D\cr,lf\" start
        ; hello = 'PICBrain11D\13,10\'
hello:
        ; Temporarily save index into FSR
        movwf   __fsr
        ; Initialize PCLATH to point to this code page
        movlw   hello___base>>8
        movwf   __pclath
        ; Restore index from FSR
        movf    __fsr,w
        addlw   hello___base
        ; Index to the correct return value
        movwf   __pcl
        ; page_group 13
hello___base:
        retlw   80
        retlw   73
        retlw   67
        retlw   66
        retlw   114
        retlw   97
        retlw   105
        retlw   110
        retlw   49
        retlw   49
        retlw   68
        retlw   13
        retlw   10
        ; line_number = 1026
        ; string hello = "PICBrain11D\cr,lf\" start

        ; line_number = 1028
        ; procedure in_out_registers
in_out_registers:
        ; Last argument is sitting in W; save into argument variable
        movwf   in_out_registers__socket
        ; delay=4294967295
        ; line_number = 1029
        ; argument socket byte
in_out_registers__socket equ globals___0+66
        ; line_number = 1030
        ;  returns byte

        ; # This procedure will return the register number to access for {socket}.

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 1034
        ;  switch socket start
        movlw   in_out_registers__12>>8
        movwf   __pclath
        movf    in_out_registers__socket,w
        addlw   in_out_registers__12
        movwf   __pcl
        ; page_group 11
in_out_registers__12:
        ; line_number = 1036
        ; return n1_reg start
        ; line_number = 1036
        retlw   1
        ; line_number = 1036
        ; return n1_reg done
        ; line_number = 1038
        ; return n2_reg start
        ; line_number = 1038
        retlw   0
        ; line_number = 1038
        ; return n2_reg done
        ; line_number = 1040
        ; return n3_reg start
        ; line_number = 1040
        retlw   1
        ; line_number = 1040
        ; return n3_reg done
        ; line_number = 1042
        ; return n4_reg start
        ; line_number = 1042
        retlw   0
        ; line_number = 1042
        ; return n4_reg done
        ; line_number = 1044
        ; return n5_reg start
        ; line_number = 1044
        retlw   1
        ; line_number = 1044
        ; return n5_reg done
        ; line_number = 1046
        ; return n6_reg start
        ; line_number = 1046
        retlw   0
        ; line_number = 1046
        ; return n6_reg done
        ; line_number = 1048
        ; return n7_reg start
        ; line_number = 1048
        retlw   1
        ; line_number = 1048
        ; return n7_reg done
        ; line_number = 1050
        ; return n8_reg start
        ; line_number = 1050
        retlw   2
        ; line_number = 1050
        ; return n8_reg done
        ; line_number = 1052
        ; return n9_reg start
        ; line_number = 1052
        retlw   2
        ; line_number = 1052
        ; return n9_reg done
        ; line_number = 1054
        ; return n10_reg start
        ; line_number = 1054
        retlw   2
        ; line_number = 1054
        ; return n10_reg done
        ; line_number = 1056
        ; return n11_reg start
        ; line_number = 1056
        retlw   2
        ; line_number = 1056
        ; return n11_reg done
in_out_registers__13:
        ; line_number = 1034
        ;  switch socket done
        ; line_number = 1057
        ; return n_none start
        ; line_number = 1057
        retlw   11
        ; line_number = 1057
        ; return n_none done


        ; delay after procedure statements=non-uniform




        ; line_number = 1060
        ; procedure in_masks
in_masks:
        ; Last argument is sitting in W; save into argument variable
        movwf   in_masks__socket
        ; delay=4294967295
        ; line_number = 1061
        ; argument socket byte
in_masks__socket equ globals___0+67
        ; line_number = 1062
        ;  returns byte

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

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 1066
        ;  switch socket start
        movlw   in_masks__12>>8
        movwf   __pclath
        movf    in_masks__socket,w
        addlw   in_masks__12
        movwf   __pcl
        ; page_group 11
in_masks__12:
        ; line_number = 1068
        ; return n1in_mask start
        ; line_number = 1068
        retlw   64
        ; line_number = 1068
        ; return n1in_mask done
        ; line_number = 1070
        ; return n2in_mask start
        ; line_number = 1070
        retlw   1
        ; line_number = 1070
        ; return n2in_mask done
        ; line_number = 1072
        ; return n3in_mask start
        ; line_number = 1072
        retlw   16
        ; line_number = 1072
        ; return n3in_mask done
        ; line_number = 1074
        ; return n4in_mask start
        ; line_number = 1074
        retlw   4
        ; line_number = 1074
        ; return n4in_mask done
        ; line_number = 1076
        ; return n5in_mask start
        ; line_number = 1076
        retlw   4
        ; line_number = 1076
        ; return n5in_mask done
        ; line_number = 1078
        ; return n6in_mask start
        ; line_number = 1078
        retlw   16
        ; line_number = 1078
        ; return n6in_mask done
        ; line_number = 1080
        ; return n7in_mask start
        ; line_number = 1080
        retlw   1
        ; line_number = 1080
        ; return n7in_mask done
        ; line_number = 1082
        ; return n8in_mask start
        ; line_number = 1082
        retlw   4
        ; line_number = 1082
        ; return n8in_mask done
        ; line_number = 1084
        ; return n9in_mask start
        ; line_number = 1084
        retlw   1
        ; line_number = 1084
        ; return n9in_mask done
        ; line_number = 1086
        ; return n10in_mask start
        ; line_number = 1086
        retlw   8
        ; line_number = 1086
        ; return n10in_mask done
        ; line_number = 1088
        ; return n11in_mask start
        ; line_number = 1088
        retlw   128
        ; line_number = 1088
        ; return n11in_mask done
in_masks__13:
        ; line_number = 1066
        ;  switch socket done
        ; line_number = 1089
        ; return 0 start
        ; line_number = 1089
        retlw   0
        ; line_number = 1089
        ; return 0 done


        ; delay after procedure statements=non-uniform




        ; line_number = 1092
        ; procedure out_masks
out_masks:
        ; Last argument is sitting in W; save into argument variable
        movwf   out_masks__socket
        ; delay=4294967295
        ; line_number = 1093
        ; argument socket byte
out_masks__socket equ globals___0+68
        ; line_number = 1094
        ;  returns byte

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

        ; before procedure statements delay=non-uniform, bit states=(data:00=>00 code:11=>11)
        ; line_number = 1098
        ;  switch socket start
        movlw   out_masks__12>>8
        movwf   __pclath
        movf    out_masks__socket,w
        addlw   out_masks__12
        movwf   __pcl
        ; page_group 11
out_masks__12:
        ; line_number = 1100
        ; return n1out_mask start
        ; line_number = 1100
        retlw   128
        ; line_number = 1100
        ; return n1out_mask done
        ; line_number = 1102
        ; return n2out_mask start
        ; line_number = 1102
        retlw   2
        ; line_number = 1102
        ; return n2out_mask done
        ; line_number = 1104
        ; return n3out_mask start
        ; line_number = 1104
        retlw   32
        ; line_number = 1104
        ; return n3out_mask done
        ; line_number = 1106
        ; return n4out_mask start
        ; line_number = 1106
        retlw   8
        ; line_number = 1106
        ; return n4out_mask done
        ; line_number = 1108
        ; return n5out_mask start
        ; line_number = 1108
        retlw   8
        ; line_number = 1108
        ; return n5out_mask done
        ; line_number = 1110
        ; return n6out_mask start
        ; line_number = 1110
        retlw   32
        ; line_number = 1110
        ; return n6out_mask done
        ; line_number = 1112
        ; return n7out_mask start
        ; line_number = 1112
        retlw   2
        ; line_number = 1112
        ; return n7out_mask done
        ; line_number = 1114
        ; return n8out_mask start
        ; line_number = 1114
        retlw   32
        ; line_number = 1114
        ; return n8out_mask done
        ; line_number = 1116
        ; return n9out_mask start
        ; line_number = 1116
        retlw   2
        ; line_number = 1116
        ; return n9out_mask done
        ; line_number = 1118
        ; return n10out_mask start
        ; line_number = 1118
        retlw   16
        ; line_number = 1118
        ; return n10out_mask done
        ; line_number = 1120
        ; return n11out_mask start
        ; line_number = 1120
        retlw   64
        ; line_number = 1120
        ; return n11out_mask done
out_masks__13:
        ; line_number = 1098
        ;  switch socket done
        ; line_number = 1121
        ; return 0 start
        ; line_number = 1121
        retlw   0
        ; line_number = 1121
        ; return 0 done


        ; delay after procedure statements=non-uniform





        ; Configuration bits
        ; address = 0x2007, fill = 0x400
        ; cp = off (0x3030)
        ; debug = off (0x800)
        ; wrt = on (0x200)
        ; cpd = off (0x100)
        ; lvp = off (0x0)
        ; boden = off (0x0)
        ; pwrte = off (0x8)
        ; wdte = off (0x0)
        ; fosc = hs (0x2)
        ; 16186 = 0x3f3a
        __config 16186
        ; Define start addresses for data regions
        ; Region="shared___globals" Address=112" Size=16 Bytes=0 Bits=0 Available=16
        ; Region="globals___0" Address=32" Size=80 Bytes=79 Bits=7 Available=0
        ; Region="globals___1" Address=160" Size=80 Bytes=2 Bits=0 Available=78
        ; Region="globals___2" Address=272" Size=96 Bytes=16 Bits=0 Available=80
        ; Region="globals___3" Address=400" Size=112 Bytes=0 Bits=0 Available=112
        end
