abse/smart-ring-flex

A tscircuit package created by abse.

Version
0.0.24
License
unset
Stars
0

firmware/onboard-programmer/ring-service-candidate/picodap.rst

                                      1 ;--------------------------------------------------------
                                      2 ; File Created by SDCC : free open source ANSI-C Compiler
                                      3 ; Version 4.2.0 #13081 (Linux)
                                      4 ;--------------------------------------------------------
                                      5 	.module picodap
                                      6 	.optsdcc -mmcs51 --model-small
                                      7 	
                                      8 ;--------------------------------------------------------
                                      9 ; Public variables in this module
                                     10 ;--------------------------------------------------------
                                     11 	.globl _main
                                     12 	.globl _USB_ISR
                                     13 	.globl _USB_interrupt
                                     14 	.globl _ring_probe_release
                                     15 	.globl _DAP_Thread
                                     16 	.globl _USB_init
                                     17 	.globl _DLY_ms
                                     18 	.globl _PP37
                                     19 	.globl _PP36
                                     20 	.globl _PP35
                                     21 	.globl _PP34
                                     22 	.globl _PP33
                                     23 	.globl _PP32
                                     24 	.globl _PP31
                                     25 	.globl _PP30
                                     26 	.globl _PP17
                                     27 	.globl _PP16
                                     28 	.globl _PP15
                                     29 	.globl _PP14
                                     30 	.globl _PP13
                                     31 	.globl _PP12
                                     32 	.globl _PP11
                                     33 	.globl _PP10
                                     34 	.globl _UIF_BUS_RST
                                     35 	.globl _UIF_DETECT
                                     36 	.globl _UIF_TRANSFER
                                     37 	.globl _UIF_SUSPEND
                                     38 	.globl _UIF_HST_SOF
                                     39 	.globl _UIF_FIFO_OV
                                     40 	.globl _U_SIE_FREE
                                     41 	.globl _U_TOG_OK
                                     42 	.globl _U_IS_NAK
                                     43 	.globl _ADC_CHAN0
                                     44 	.globl _ADC_CHAN1
                                     45 	.globl _CMP_CHAN
                                     46 	.globl _ADC_START
                                     47 	.globl _ADC_IF
                                     48 	.globl _CMP_IF
                                     49 	.globl _CMPO
                                     50 	.globl _U1RI
                                     51 	.globl _U1TI
                                     52 	.globl _U1RB8
                                     53 	.globl _U1TB8
                                     54 	.globl _U1REN
                                     55 	.globl _U1SMOD
                                     56 	.globl _U1SM0
                                     57 	.globl _S0_R_FIFO
                                     58 	.globl _S0_T_FIFO
                                     59 	.globl _S0_FREE
                                     60 	.globl _S0_IF_BYTE
                                     61 	.globl _S0_IF_FIRST
                                     62 	.globl _S0_IF_OV
                                     63 	.globl _S0_FST_ACT
                                     64 	.globl _CP_RL2
                                     65 	.globl _C_T2
                                     66 	.globl _TR2
                                     67 	.globl _EXEN2
                                     68 	.globl _TCLK
                                     69 	.globl _RCLK
                                     70 	.globl _EXF2
                                     71 	.globl _CAP1F
                                     72 	.globl _TF2
                                     73 	.globl _RI
                                     74 	.globl _TI
                                     75 	.globl _RB8
                                     76 	.globl _TB8
                                     77 	.globl _REN
                                     78 	.globl _SM2
                                     79 	.globl _SM1
                                     80 	.globl _SM0
                                     81 	.globl _IT0
                                     82 	.globl _IE0
                                     83 	.globl _IT1
                                     84 	.globl _IE1
                                     85 	.globl _TR0
                                     86 	.globl _TF0
                                     87 	.globl _TR1
                                     88 	.globl _TF1
                                     89 	.globl _RXD
                                     90 	.globl _PWM1_
                                     91 	.globl _TXD
                                     92 	.globl _PWM2_
                                     93 	.globl _AIN3
                                     94 	.globl _VBUS1
                                     95 	.globl _INT0
                                     96 	.globl _TXD1_
                                     97 	.globl _INT1
                                     98 	.globl _T0
                                     99 	.globl _RXD1_
                                    100 	.globl _PWM2
                                    101 	.globl _T1
                                    102 	.globl _UDP
                                    103 	.globl _UDM
                                    104 	.globl _TIN0
                                    105 	.globl _CAP1
                                    106 	.globl _T2
                                    107 	.globl _AIN0
                                    108 	.globl _VBUS2
                                    109 	.globl _TIN1
                                    110 	.globl _CAP2
                                    111 	.globl _T2EX
                                    112 	.globl _RXD_
                                    113 	.globl _TXD_
                                    114 	.globl _AIN1
                                    115 	.globl _UCC1
                                    116 	.globl _TIN2
                                    117 	.globl _SCS
                                    118 	.globl _CAP1_
                                    119 	.globl _T2_
                                    120 	.globl _AIN2
                                    121 	.globl _UCC2
                                    122 	.globl _TIN3
                                    123 	.globl _PWM1
                                    124 	.globl _MOSI
                                    125 	.globl _TIN4
                                    126 	.globl _RXD1
                                    127 	.globl _MISO
                                    128 	.globl _TIN5
                                    129 	.globl _TXD1
                                    130 	.globl _SCK
                                    131 	.globl _IE_SPI0
                                    132 	.globl _IE_TKEY
                                    133 	.globl _IE_USB
                                    134 	.globl _IE_ADC
                                    135 	.globl _IE_UART1
                                    136 	.globl _IE_PWMX
                                    137 	.globl _IE_GPIO
                                    138 	.globl _IE_WDOG
                                    139 	.globl _PX0
                                    140 	.globl _PT0
                                    141 	.globl _PX1
                                    142 	.globl _PT1
                                    143 	.globl _PS
                                    144 	.globl _PT2
                                    145 	.globl _PL_FLAG
                                    146 	.globl _PH_FLAG
                                    147 	.globl _EX0
                                    148 	.globl _ET0
                                    149 	.globl _EX1
                                    150 	.globl _ET1
                                    151 	.globl _ES
                                    152 	.globl _ET2
                                    153 	.globl _E_DIS
                                    154 	.globl _EA
                                    155 	.globl _P
                                    156 	.globl _F1
                                    157 	.globl _OV
                                    158 	.globl _RS0
                                    159 	.globl _RS1
                                    160 	.globl _F0
                                    161 	.globl _AC
                                    162 	.globl _CY
                                    163 	.globl _UEP1_DMA_H
                                    164 	.globl _UEP1_DMA_L
                                    165 	.globl _UEP1_DMA
                                    166 	.globl _UEP0_DMA_H
                                    167 	.globl _UEP0_DMA_L
                                    168 	.globl _UEP0_DMA
                                    169 	.globl _UEP2_3_MOD
                                    170 	.globl _UEP4_1_MOD
                                    171 	.globl _UEP3_DMA_H
                                    172 	.globl _UEP3_DMA_L
                                    173 	.globl _UEP3_DMA
                                    174 	.globl _UEP2_DMA_H
                                    175 	.globl _UEP2_DMA_L
                                    176 	.globl _UEP2_DMA
                                    177 	.globl _USB_DEV_AD
                                    178 	.globl _USB_CTRL
                                    179 	.globl _USB_INT_EN
                                    180 	.globl _UEP4_T_LEN
                                    181 	.globl _UEP4_CTRL
                                    182 	.globl _UEP0_T_LEN
                                    183 	.globl _UEP0_CTRL
                                    184 	.globl _USB_RX_LEN
                                    185 	.globl _USB_MIS_ST
                                    186 	.globl _USB_INT_ST
                                    187 	.globl _USB_INT_FG
                                    188 	.globl _UEP3_T_LEN
                                    189 	.globl _UEP3_CTRL
                                    190 	.globl _UEP2_T_LEN
                                    191 	.globl _UEP2_CTRL
                                    192 	.globl _UEP1_T_LEN
                                    193 	.globl _UEP1_CTRL
                                    194 	.globl _UDEV_CTRL
                                    195 	.globl _USB_C_CTRL
                                    196 	.globl _TKEY_DATH
                                    197 	.globl _TKEY_DATL
                                    198 	.globl _TKEY_DAT
                                    199 	.globl _TKEY_CTRL
                                    200 	.globl _ADC_DATA
                                    201 	.globl _ADC_CFG
                                    202 	.globl _ADC_CTRL
                                    203 	.globl _SBAUD1
                                    204 	.globl _SBUF1
                                    205 	.globl _SCON1
                                    206 	.globl _SPI0_SETUP
                                    207 	.globl _SPI0_CK_SE
                                    208 	.globl _SPI0_CTRL
                                    209 	.globl _SPI0_DATA
                                    210 	.globl _SPI0_STAT
                                    211 	.globl _PWM_CK_SE
                                    212 	.globl _PWM_CTRL
                                    213 	.globl _PWM_DATA1
                                    214 	.globl _PWM_DATA2
                                    215 	.globl _T2CAP1H
                                    216 	.globl _T2CAP1L
                                    217 	.globl _T2CAP1
                                    218 	.globl _TH2
                                    219 	.globl _TL2
                                    220 	.globl _T2COUNT
                                    221 	.globl _RCAP2H
                                    222 	.globl _RCAP2L
                                    223 	.globl _RCAP2
                                    224 	.globl _T2MOD
                                    225 	.globl _T2CON
                                    226 	.globl _SBUF
                                    227 	.globl _SCON
                                    228 	.globl _TH1
                                    229 	.globl _TH0
                                    230 	.globl _TL1
                                    231 	.globl _TL0
                                    232 	.globl _TMOD
                                    233 	.globl _TCON
                                    234 	.globl _XBUS_AUX
                                    235 	.globl _PIN_FUNC
                                    236 	.globl _P3_DIR_PU
                                    237 	.globl _P3_MOD_OC
                                    238 	.globl _P3
                                    239 	.globl _P2
                                    240 	.globl _P1_DIR_PU
                                    241 	.globl _P1_MOD_OC
                                    242 	.globl _P1
                                    243 	.globl _ROM_CTRL
                                    244 	.globl _ROM_DATA_H
                                    245 	.globl _ROM_DATA_L
                                    246 	.globl _ROM_DATA
                                    247 	.globl _ROM_ADDR_H
                                    248 	.globl _ROM_ADDR_L
                                    249 	.globl _ROM_ADDR
                                    250 	.globl _GPIO_IE
                                    251 	.globl _IP_EX
                                    252 	.globl _IE_EX
                                    253 	.globl _IP
                                    254 	.globl _IE
                                    255 	.globl _WDOG_COUNT
                                    256 	.globl _RESET_KEEP
                                    257 	.globl _WAKE_CTRL
                                    258 	.globl _CLOCK_CFG
                                    259 	.globl _PCON
                                    260 	.globl _GLOBAL_CFG
                                    261 	.globl _SAFE_MOD
                                    262 	.globl _DPH
                                    263 	.globl _DPL
                                    264 	.globl _SP
                                    265 	.globl _B
                                    266 	.globl _ACC
                                    267 	.globl _PSW
                                    268 	.globl _ring_probe_enable
                                    269 	.globl _ring_probe_reset
                                    270 ;--------------------------------------------------------
                                    271 ; special function registers
                                    272 ;--------------------------------------------------------
                                    273 	.area RSEG    (ABS,DATA)
      000000                        274 	.org 0x0000
                           0000D0   275 _PSW	=	0x00d0
                           0000E0   276 _ACC	=	0x00e0
                           0000F0   277 _B	=	0x00f0
                           000081   278 _SP	=	0x0081
                           000082   279 _DPL	=	0x0082
                           000083   280 _DPH	=	0x0083
                           0000A1   281 _SAFE_MOD	=	0x00a1
                           0000B1   282 _GLOBAL_CFG	=	0x00b1
                           000087   283 _PCON	=	0x0087
                           0000B9   284 _CLOCK_CFG	=	0x00b9
                           0000A9   285 _WAKE_CTRL	=	0x00a9
                           0000FE   286 _RESET_KEEP	=	0x00fe
                           0000FF   287 _WDOG_COUNT	=	0x00ff
                           0000A8   288 _IE	=	0x00a8
                           0000B8   289 _IP	=	0x00b8
                           0000E8   290 _IE_EX	=	0x00e8
                           0000E9   291 _IP_EX	=	0x00e9
                           0000C7   292 _GPIO_IE	=	0x00c7
                           008584   293 _ROM_ADDR	=	0x8584
                           000084   294 _ROM_ADDR_L	=	0x0084
                           000085   295 _ROM_ADDR_H	=	0x0085
                           008F8E   296 _ROM_DATA	=	0x8f8e
                           00008E   297 _ROM_DATA_L	=	0x008e
                           00008F   298 _ROM_DATA_H	=	0x008f
                           000086   299 _ROM_CTRL	=	0x0086
                           000090   300 _P1	=	0x0090
                           000092   301 _P1_MOD_OC	=	0x0092
                           000093   302 _P1_DIR_PU	=	0x0093
                           0000A0   303 _P2	=	0x00a0
                           0000B0   304 _P3	=	0x00b0
                           000096   305 _P3_MOD_OC	=	0x0096
                           000097   306 _P3_DIR_PU	=	0x0097
                           0000C6   307 _PIN_FUNC	=	0x00c6
                           0000A2   308 _XBUS_AUX	=	0x00a2
                           000088   309 _TCON	=	0x0088
                           000089   310 _TMOD	=	0x0089
                           00008A   311 _TL0	=	0x008a
                           00008B   312 _TL1	=	0x008b
                           00008C   313 _TH0	=	0x008c
                           00008D   314 _TH1	=	0x008d
                           000098   315 _SCON	=	0x0098
                           000099   316 _SBUF	=	0x0099
                           0000C8   317 _T2CON	=	0x00c8
                           0000C9   318 _T2MOD	=	0x00c9
                           00CBCA   319 _RCAP2	=	0xcbca
                           0000CA   320 _RCAP2L	=	0x00ca
                           0000CB   321 _RCAP2H	=	0x00cb
                           00CDCC   322 _T2COUNT	=	0xcdcc
                           0000CC   323 _TL2	=	0x00cc
                           0000CD   324 _TH2	=	0x00cd
                           00CFCE   325 _T2CAP1	=	0xcfce
                           0000CE   326 _T2CAP1L	=	0x00ce
                           0000CF   327 _T2CAP1H	=	0x00cf
                           00009B   328 _PWM_DATA2	=	0x009b
                           00009C   329 _PWM_DATA1	=	0x009c
                           00009D   330 _PWM_CTRL	=	0x009d
                           00009E   331 _PWM_CK_SE	=	0x009e
                           0000F8   332 _SPI0_STAT	=	0x00f8
                           0000F9   333 _SPI0_DATA	=	0x00f9
                           0000FA   334 _SPI0_CTRL	=	0x00fa
                           0000FB   335 _SPI0_CK_SE	=	0x00fb
                           0000FC   336 _SPI0_SETUP	=	0x00fc
                           0000C0   337 _SCON1	=	0x00c0
                           0000C1   338 _SBUF1	=	0x00c1
                           0000C2   339 _SBAUD1	=	0x00c2
                           000080   340 _ADC_CTRL	=	0x0080
                           00009A   341 _ADC_CFG	=	0x009a
                           00009F   342 _ADC_DATA	=	0x009f
                           0000C3   343 _TKEY_CTRL	=	0x00c3
                           00C5C4   344 _TKEY_DAT	=	0xc5c4
                           0000C4   345 _TKEY_DATL	=	0x00c4
                           0000C5   346 _TKEY_DATH	=	0x00c5
                           000091   347 _USB_C_CTRL	=	0x0091
                           0000D1   348 _UDEV_CTRL	=	0x00d1
                           0000D2   349 _UEP1_CTRL	=	0x00d2
                           0000D3   350 _UEP1_T_LEN	=	0x00d3
                           0000D4   351 _UEP2_CTRL	=	0x00d4
                           0000D5   352 _UEP2_T_LEN	=	0x00d5
                           0000D6   353 _UEP3_CTRL	=	0x00d6
                           0000D7   354 _UEP3_T_LEN	=	0x00d7
                           0000D8   355 _USB_INT_FG	=	0x00d8
                           0000D9   356 _USB_INT_ST	=	0x00d9
                           0000DA   357 _USB_MIS_ST	=	0x00da
                           0000DB   358 _USB_RX_LEN	=	0x00db
                           0000DC   359 _UEP0_CTRL	=	0x00dc
                           0000DD   360 _UEP0_T_LEN	=	0x00dd
                           0000DE   361 _UEP4_CTRL	=	0x00de
                           0000DF   362 _UEP4_T_LEN	=	0x00df
                           0000E1   363 _USB_INT_EN	=	0x00e1
                           0000E2   364 _USB_CTRL	=	0x00e2
                           0000E3   365 _USB_DEV_AD	=	0x00e3
                           00E5E4   366 _UEP2_DMA	=	0xe5e4
                           0000E4   367 _UEP2_DMA_L	=	0x00e4
                           0000E5   368 _UEP2_DMA_H	=	0x00e5
                           00E7E6   369 _UEP3_DMA	=	0xe7e6
                           0000E6   370 _UEP3_DMA_L	=	0x00e6
                           0000E7   371 _UEP3_DMA_H	=	0x00e7
                           0000EA   372 _UEP4_1_MOD	=	0x00ea
                           0000EB   373 _UEP2_3_MOD	=	0x00eb
                           00EDEC   374 _UEP0_DMA	=	0xedec
                           0000EC   375 _UEP0_DMA_L	=	0x00ec
                           0000ED   376 _UEP0_DMA_H	=	0x00ed
                           00EFEE   377 _UEP1_DMA	=	0xefee
                           0000EE   378 _UEP1_DMA_L	=	0x00ee
                           0000EF   379 _UEP1_DMA_H	=	0x00ef
                                    380 ;--------------------------------------------------------
                                    381 ; special function bits
                                    382 ;--------------------------------------------------------
                                    383 	.area RSEG    (ABS,DATA)
      000000                        384 	.org 0x0000
                           0000D7   385 _CY	=	0x00d7
                           0000D6   386 _AC	=	0x00d6
                           0000D5   387 _F0	=	0x00d5
                           0000D4   388 _RS1	=	0x00d4
                           0000D3   389 _RS0	=	0x00d3
                           0000D2   390 _OV	=	0x00d2
                           0000D1   391 _F1	=	0x00d1
                           0000D0   392 _P	=	0x00d0
                           0000AF   393 _EA	=	0x00af
                           0000AE   394 _E_DIS	=	0x00ae
                           0000AD   395 _ET2	=	0x00ad
                           0000AC   396 _ES	=	0x00ac
                           0000AB   397 _ET1	=	0x00ab
                           0000AA   398 _EX1	=	0x00aa
                           0000A9   399 _ET0	=	0x00a9
                           0000A8   400 _EX0	=	0x00a8
                           0000BF   401 _PH_FLAG	=	0x00bf
                           0000BE   402 _PL_FLAG	=	0x00be
                           0000BD   403 _PT2	=	0x00bd
                           0000BC   404 _PS	=	0x00bc
                           0000BB   405 _PT1	=	0x00bb
                           0000BA   406 _PX1	=	0x00ba
                           0000B9   407 _PT0	=	0x00b9
                           0000B8   408 _PX0	=	0x00b8
                           0000EF   409 _IE_WDOG	=	0x00ef
                           0000EE   410 _IE_GPIO	=	0x00ee
                           0000ED   411 _IE_PWMX	=	0x00ed
                           0000EC   412 _IE_UART1	=	0x00ec
                           0000EB   413 _IE_ADC	=	0x00eb
                           0000EA   414 _IE_USB	=	0x00ea
                           0000E9   415 _IE_TKEY	=	0x00e9
                           0000E8   416 _IE_SPI0	=	0x00e8
                           000097   417 _SCK	=	0x0097
                           000097   418 _TXD1	=	0x0097
                           000097   419 _TIN5	=	0x0097
                           000096   420 _MISO	=	0x0096
                           000096   421 _RXD1	=	0x0096
                           000096   422 _TIN4	=	0x0096
                           000095   423 _MOSI	=	0x0095
                           000095   424 _PWM1	=	0x0095
                           000095   425 _TIN3	=	0x0095
                           000095   426 _UCC2	=	0x0095
                           000095   427 _AIN2	=	0x0095
                           000094   428 _T2_	=	0x0094
                           000094   429 _CAP1_	=	0x0094
                           000094   430 _SCS	=	0x0094
                           000094   431 _TIN2	=	0x0094
                           000094   432 _UCC1	=	0x0094
                           000094   433 _AIN1	=	0x0094
                           000093   434 _TXD_	=	0x0093
                           000092   435 _RXD_	=	0x0092
                           000091   436 _T2EX	=	0x0091
                           000091   437 _CAP2	=	0x0091
                           000091   438 _TIN1	=	0x0091
                           000091   439 _VBUS2	=	0x0091
                           000091   440 _AIN0	=	0x0091
                           000090   441 _T2	=	0x0090
                           000090   442 _CAP1	=	0x0090
                           000090   443 _TIN0	=	0x0090
                           0000B7   444 _UDM	=	0x00b7
                           0000B6   445 _UDP	=	0x00b6
                           0000B5   446 _T1	=	0x00b5
                           0000B4   447 _PWM2	=	0x00b4
                           0000B4   448 _RXD1_	=	0x00b4
                           0000B4   449 _T0	=	0x00b4
                           0000B3   450 _INT1	=	0x00b3
                           0000B2   451 _TXD1_	=	0x00b2
                           0000B2   452 _INT0	=	0x00b2
                           0000B2   453 _VBUS1	=	0x00b2
                           0000B2   454 _AIN3	=	0x00b2
                           0000B1   455 _PWM2_	=	0x00b1
                           0000B1   456 _TXD	=	0x00b1
                           0000B0   457 _PWM1_	=	0x00b0
                           0000B0   458 _RXD	=	0x00b0
                           00008F   459 _TF1	=	0x008f
                           00008E   460 _TR1	=	0x008e
                           00008D   461 _TF0	=	0x008d
                           00008C   462 _TR0	=	0x008c
                           00008B   463 _IE1	=	0x008b
                           00008A   464 _IT1	=	0x008a
                           000089   465 _IE0	=	0x0089
                           000088   466 _IT0	=	0x0088
                           00009F   467 _SM0	=	0x009f
                           00009E   468 _SM1	=	0x009e
                           00009D   469 _SM2	=	0x009d
                           00009C   470 _REN	=	0x009c
                           00009B   471 _TB8	=	0x009b
                           00009A   472 _RB8	=	0x009a
                           000099   473 _TI	=	0x0099
                           000098   474 _RI	=	0x0098
                           0000CF   475 _TF2	=	0x00cf
                           0000CF   476 _CAP1F	=	0x00cf
                           0000CE   477 _EXF2	=	0x00ce
                           0000CD   478 _RCLK	=	0x00cd
                           0000CC   479 _TCLK	=	0x00cc
                           0000CB   480 _EXEN2	=	0x00cb
                           0000CA   481 _TR2	=	0x00ca
                           0000C9   482 _C_T2	=	0x00c9
                           0000C8   483 _CP_RL2	=	0x00c8
                           0000FF   484 _S0_FST_ACT	=	0x00ff
                           0000FE   485 _S0_IF_OV	=	0x00fe
                           0000FD   486 _S0_IF_FIRST	=	0x00fd
                           0000FC   487 _S0_IF_BYTE	=	0x00fc
                           0000FB   488 _S0_FREE	=	0x00fb
                           0000FA   489 _S0_T_FIFO	=	0x00fa
                           0000F8   490 _S0_R_FIFO	=	0x00f8
                           0000C7   491 _U1SM0	=	0x00c7
                           0000C5   492 _U1SMOD	=	0x00c5
                           0000C4   493 _U1REN	=	0x00c4
                           0000C3   494 _U1TB8	=	0x00c3
                           0000C2   495 _U1RB8	=	0x00c2
                           0000C1   496 _U1TI	=	0x00c1
                           0000C0   497 _U1RI	=	0x00c0
                           000087   498 _CMPO	=	0x0087
                           000086   499 _CMP_IF	=	0x0086
                           000085   500 _ADC_IF	=	0x0085
                           000084   501 _ADC_START	=	0x0084
                           000083   502 _CMP_CHAN	=	0x0083
                           000081   503 _ADC_CHAN1	=	0x0081
                           000080   504 _ADC_CHAN0	=	0x0080
                           0000DF   505 _U_IS_NAK	=	0x00df
                           0000DE   506 _U_TOG_OK	=	0x00de
                           0000DD   507 _U_SIE_FREE	=	0x00dd
                           0000DC   508 _UIF_FIFO_OV	=	0x00dc
                           0000DB   509 _UIF_HST_SOF	=	0x00db
                           0000DA   510 _UIF_SUSPEND	=	0x00da
                           0000D9   511 _UIF_TRANSFER	=	0x00d9
                           0000D8   512 _UIF_DETECT	=	0x00d8
                           0000D8   513 _UIF_BUS_RST	=	0x00d8
                           000090   514 _PP10	=	0x0090
                           000091   515 _PP11	=	0x0091
                           000092   516 _PP12	=	0x0092
                           000093   517 _PP13	=	0x0093
                           000094   518 _PP14	=	0x0094
                           000095   519 _PP15	=	0x0095
                           000096   520 _PP16	=	0x0096
                           000097   521 _PP17	=	0x0097
                           0000B0   522 _PP30	=	0x00b0
                           0000B1   523 _PP31	=	0x00b1
                           0000B2   524 _PP32	=	0x00b2
                           0000B3   525 _PP33	=	0x00b3
                           0000B4   526 _PP34	=	0x00b4
                           0000B5   527 _PP35	=	0x00b5
                           0000B6   528 _PP36	=	0x00b6
                           0000B7   529 _PP37	=	0x00b7
                                    530 ;--------------------------------------------------------
                                    531 ; overlayable register banks
                                    532 ;--------------------------------------------------------
                                    533 	.area REG_BANK_0	(REL,OVR,DATA)
      000000                        534 	.ds 8
                                    535 ;--------------------------------------------------------
                                    536 ; overlayable bit register bank
                                    537 ;--------------------------------------------------------
                                    538 	.area BIT_BANK	(REL,OVR,DATA)
      000021                        539 bits:
      000021                        540 	.ds 1
                           008000   541 	b0 = bits[0]
                           008100   542 	b1 = bits[1]
                           008200   543 	b2 = bits[2]
                           008300   544 	b3 = bits[3]
                           008400   545 	b4 = bits[4]
                           008500   546 	b5 = bits[5]
                           008600   547 	b6 = bits[6]
                           008700   548 	b7 = bits[7]
                                    549 ;--------------------------------------------------------
                                    550 ; internal ram data
                                    551 ;--------------------------------------------------------
                                    552 	.area DSEG    (DATA)
                                    553 ;--------------------------------------------------------
                                    554 ; overlayable items in internal ram
                                    555 ;--------------------------------------------------------
                                    556 ;--------------------------------------------------------
                                    557 ; Stack segment in internal ram
                                    558 ;--------------------------------------------------------
                                    559 	.area	SSEG
      000065                        560 __start__stack:
      000065                        561 	.ds	1
                                    562 
                                    563 ;--------------------------------------------------------
                                    564 ; indirectly addressable internal ram data
                                    565 ;--------------------------------------------------------
                                    566 	.area ISEG    (DATA)
                                    567 ;--------------------------------------------------------
                                    568 ; absolute internal ram data
                                    569 ;--------------------------------------------------------
                                    570 	.area IABS    (ABS,DATA)
                                    571 	.area IABS    (ABS,DATA)
                                    572 ;--------------------------------------------------------
                                    573 ; bit data
                                    574 ;--------------------------------------------------------
                                    575 	.area BSEG    (BIT)
                                    576 ;--------------------------------------------------------
                                    577 ; paged external ram data
                                    578 ;--------------------------------------------------------
                                    579 	.area PSEG    (PAG,XDATA)
                                    580 ;--------------------------------------------------------
                                    581 ; external ram data
                                    582 ;--------------------------------------------------------
                                    583 	.area XSEG    (XDATA)
                                    584 ;--------------------------------------------------------
                                    585 ; absolute external ram data
                                    586 ;--------------------------------------------------------
                                    587 	.area XABS    (ABS,XDATA)
                                    588 ;--------------------------------------------------------
                                    589 ; external initialized ram data
                                    590 ;--------------------------------------------------------
                                    591 	.area HOME    (CODE)
                                    592 	.area GSINIT0 (CODE)
                                    593 	.area GSINIT1 (CODE)
                                    594 	.area GSINIT2 (CODE)
                                    595 	.area GSINIT3 (CODE)
                                    596 	.area GSINIT4 (CODE)
                                    597 	.area GSINIT5 (CODE)
                                    598 	.area GSINIT  (CODE)
                                    599 	.area GSFINAL (CODE)
                                    600 	.area CSEG    (CODE)
                                    601 ;--------------------------------------------------------
                                    602 ; interrupt vector
                                    603 ;--------------------------------------------------------
                                    604 	.area HOME    (CODE)
      000000                        605 __interrupt_vect:
      000000 02 00 49         [24]  606 	ljmp	__sdcc_gsinit_startup
      000003 32               [24]  607 	reti
      000004                        608 	.ds	7
      00000B 32               [24]  609 	reti
      00000C                        610 	.ds	7
      000013 32               [24]  611 	reti
      000014                        612 	.ds	7
      00001B 32               [24]  613 	reti
      00001C                        614 	.ds	7
      000023 32               [24]  615 	reti
      000024                        616 	.ds	7
      00002B 32               [24]  617 	reti
      00002C                        618 	.ds	7
      000033 32               [24]  619 	reti
      000034                        620 	.ds	7
      00003B 32               [24]  621 	reti
      00003C                        622 	.ds	7
      000043 02 00 C3         [24]  623 	ljmp	_USB_ISR
                                    624 ;--------------------------------------------------------
                                    625 ; global & static initialisations
                                    626 ;--------------------------------------------------------
                                    627 	.area HOME    (CODE)
                                    628 	.area GSINIT  (CODE)
                                    629 	.area GSFINAL (CODE)
                                    630 	.area GSINIT  (CODE)
                                    631 	.globl __sdcc_gsinit_startup
                                    632 	.globl __sdcc_program_startup
                                    633 	.globl __start__stack
                                    634 	.globl __mcs51_genRAMCLEAR
                                    635 	.area GSFINAL (CODE)
      000066 02 00 46         [24]  636 	ljmp	__sdcc_program_startup
                                    637 ;--------------------------------------------------------
                                    638 ; Home
                                    639 ;--------------------------------------------------------
                                    640 	.area HOME    (CODE)
                                    641 	.area HOME    (CODE)
      000046                        642 __sdcc_program_startup:
      000046 02 01 02         [24]  643 	ljmp	_main
                                    644 ;	return from main will return to caller
                                    645 ;--------------------------------------------------------
                                    646 ; code
                                    647 ;--------------------------------------------------------
                                    648 	.area CSEG    (CODE)
                                    649 ;------------------------------------------------------------
                                    650 ;Allocation info for local variables in function 'ring_probe_enable'
                                    651 ;------------------------------------------------------------
                                    652 ;saved_ea                  Allocated to registers r7 
                                    653 ;------------------------------------------------------------
                                    654 ;	picodap.c:62: void ring_probe_enable(void) __reentrant {
                                    655 ;	-----------------------------------------
                                    656 ;	 function ring_probe_enable
                                    657 ;	-----------------------------------------
      000069                        658 _ring_probe_enable:
                           000007   659 	ar7 = 0x07
                           000006   660 	ar6 = 0x06
                           000005   661 	ar5 = 0x05
                           000004   662 	ar4 = 0x04
                           000003   663 	ar3 = 0x03
                           000002   664 	ar2 = 0x02
                           000001   665 	ar1 = 0x01
                           000000   666 	ar0 = 0x00
                                    667 ;	picodap.c:63: uint8_t saved_ea = EA;
      000069 A2 AF            [12]  668 	mov	c,_EA
      00006B E4               [12]  669 	clr	a
      00006C 33               [12]  670 	rlc	a
      00006D FF               [12]  671 	mov	r7,a
                                    672 ;	picodap.c:64: EA = 0;
                                    673 ;	assignBit
      00006E C2 AF            [12]  674 	clr	_EA
                                    675 ;	picodap.c:65: if(USB_ENUM_OK && !(USB_MIS_ST & bUMS_SUSPEND)) PIN_high(PIN_XLAT_EN);
      000070 30 01 09         [24]  676 	jnb	_USB_ENUM_OK,00102$
      000073 E5 DA            [12]  677 	mov	a,_USB_MIS_ST
      000075 20 E2 04         [24]  678 	jb	acc.2,00102$
                                    679 ;	assignBit
      000078 D2 94            [12]  680 	setb	_PP14
      00007A 80 02            [24]  681 	sjmp	00103$
      00007C                        682 00102$:
                                    683 ;	picodap.c:66: else PIN_low(PIN_XLAT_EN);
                                    684 ;	assignBit
      00007C C2 94            [12]  685 	clr	_PP14
      00007E                        686 00103$:
                                    687 ;	picodap.c:67: EA = saved_ea;
                                    688 ;	assignBit
      00007E EF               [12]  689 	mov	a,r7
      00007F 24 FF            [12]  690 	add	a,#0xff
      000081 92 AF            [24]  691 	mov	_EA,c
                                    692 ;	picodap.c:68: }
      000083 22               [24]  693 	ret
                                    694 ;------------------------------------------------------------
                                    695 ;Allocation info for local variables in function 'ring_probe_reset'
                                    696 ;------------------------------------------------------------
                                    697 ;value                     Allocated to registers r7 
                                    698 ;saved_ea                  Allocated to registers r6 
                                    699 ;------------------------------------------------------------
                                    700 ;	picodap.c:69: void ring_probe_reset(uint8_t value) __reentrant {
                                    701 ;	-----------------------------------------
                                    702 ;	 function ring_probe_reset
                                    703 ;	-----------------------------------------
      000084                        704 _ring_probe_reset:
      000084 AF 82            [24]  705 	mov	r7,dpl
                                    706 ;	picodap.c:70: uint8_t saved_ea = EA;
      000086 A2 AF            [12]  707 	mov	c,_EA
      000088 E4               [12]  708 	clr	a
      000089 33               [12]  709 	rlc	a
      00008A FE               [12]  710 	mov	r6,a
                                    711 ;	picodap.c:71: EA = 0;
                                    712 ;	assignBit
      00008B C2 AF            [12]  713 	clr	_EA
                                    714 ;	picodap.c:72: if(USB_ENUM_OK && !(USB_MIS_ST & bUMS_SUSPEND)) PIN_write(PIN_RST, !(value & 1));
      00008D 30 01 16         [24]  715 	jnb	_USB_ENUM_OK,00102$
      000090 E5 DA            [12]  716 	mov	a,_USB_MIS_ST
      000092 20 E2 11         [24]  717 	jb	acc.2,00102$
      000095 EF               [12]  718 	mov	a,r7
      000096 54 01            [12]  719 	anl	a,#0x01
      000098 FF               [12]  720 	mov	r7,a
      000099 B4 01 00         [24]  721 	cjne	a,#0x01,00117$
      00009C                        722 00117$:
      00009C 92 08            [24]  723 	mov  b0,c
      00009E E4               [12]  724 	clr	a
      00009F 33               [12]  725 	rlc	a
      0000A0 24 FF            [12]  726 	add	a,#0xff
      0000A2 92 97            [24]  727 	mov	_PP17,c
      0000A4 80 02            [24]  728 	sjmp	00103$
      0000A6                        729 00102$:
                                    730 ;	picodap.c:73: else PIN_low(PIN_RST); // USB loss always releases the external reset sink.
                                    731 ;	assignBit
      0000A6 C2 97            [12]  732 	clr	_PP17
      0000A8                        733 00103$:
                                    734 ;	picodap.c:74: EA = saved_ea;
                                    735 ;	assignBit
      0000A8 EE               [12]  736 	mov	a,r6
      0000A9 24 FF            [12]  737 	add	a,#0xff
      0000AB 92 AF            [24]  738 	mov	_EA,c
                                    739 ;	picodap.c:75: }
      0000AD 22               [24]  740 	ret
                                    741 ;------------------------------------------------------------
                                    742 ;Allocation info for local variables in function 'ring_probe_release'
                                    743 ;------------------------------------------------------------
                                    744 ;	picodap.c:76: void ring_probe_release(void) { PORT_SWD_DISCONNECT(); }
                                    745 ;	-----------------------------------------
                                    746 ;	 function ring_probe_release
                                    747 ;	-----------------------------------------
      0000AE                        748 _ring_probe_release:
                                    749 ;	assignBit
      0000AE C2 94            [12]  750 	clr	_PP14
      0000B0 75 82 01         [24]  751 	mov	dpl,#0x01
      0000B3 12 00 84         [24]  752 	lcall	_ring_probe_reset
      0000B6 53 93 DF         [24]  753 	anl	_P1_DIR_PU,#0xdf
      0000B9 53 92 DF         [24]  754 	anl	_P1_MOD_OC,#0xdf
      0000BC 53 93 BF         [24]  755 	anl	_P1_DIR_PU,#0xbf
      0000BF 53 92 BF         [24]  756 	anl	_P1_MOD_OC,#0xbf
      0000C2 22               [24]  757 	ret
                                    758 ;------------------------------------------------------------
                                    759 ;Allocation info for local variables in function 'USB_ISR'
                                    760 ;------------------------------------------------------------
                                    761 ;	picodap.c:80: void USB_ISR(void) __interrupt(INT_NO_USB) {
                                    762 ;	-----------------------------------------
                                    763 ;	 function USB_ISR
                                    764 ;	-----------------------------------------
      0000C3                        765 _USB_ISR:
      0000C3 C0 21            [24]  766 	push	bits
      0000C5 C0 E0            [24]  767 	push	acc
      0000C7 C0 F0            [24]  768 	push	b
      0000C9 C0 82            [24]  769 	push	dpl
      0000CB C0 83            [24]  770 	push	dph
      0000CD C0 07            [24]  771 	push	(0+7)
      0000CF C0 06            [24]  772 	push	(0+6)
      0000D1 C0 05            [24]  773 	push	(0+5)
      0000D3 C0 04            [24]  774 	push	(0+4)
      0000D5 C0 03            [24]  775 	push	(0+3)
      0000D7 C0 02            [24]  776 	push	(0+2)
      0000D9 C0 01            [24]  777 	push	(0+1)
      0000DB C0 00            [24]  778 	push	(0+0)
      0000DD C0 D0            [24]  779 	push	psw
      0000DF 75 D0 00         [24]  780 	mov	psw,#0x00
                                    781 ;	picodap.c:81: USB_interrupt();
      0000E2 12 17 A8         [24]  782 	lcall	_USB_interrupt
                                    783 ;	picodap.c:82: }
      0000E5 D0 D0            [24]  784 	pop	psw
      0000E7 D0 00            [24]  785 	pop	(0+0)
      0000E9 D0 01            [24]  786 	pop	(0+1)
      0000EB D0 02            [24]  787 	pop	(0+2)
      0000ED D0 03            [24]  788 	pop	(0+3)
      0000EF D0 04            [24]  789 	pop	(0+4)
      0000F1 D0 05            [24]  790 	pop	(0+5)
      0000F3 D0 06            [24]  791 	pop	(0+6)
      0000F5 D0 07            [24]  792 	pop	(0+7)
      0000F7 D0 83            [24]  793 	pop	dph
      0000F9 D0 82            [24]  794 	pop	dpl
      0000FB D0 F0            [24]  795 	pop	b
      0000FD D0 E0            [24]  796 	pop	acc
      0000FF D0 21            [24]  797 	pop	bits
      000101 32               [24]  798 	reti
                                    799 ;------------------------------------------------------------
                                    800 ;Allocation info for local variables in function 'main'
                                    801 ;------------------------------------------------------------
                                    802 ;	picodap.c:91: void main(void) {
                                    803 ;	-----------------------------------------
                                    804 ;	 function main
                                    805 ;	-----------------------------------------
      000102                        806 _main:
                                    807 ;	src/system.h:84: SAFE_MOD = 0x55;
      000102 75 A1 55         [24]  808 	mov	_SAFE_MOD,#0x55
                                    809 ;	src/system.h:85: SAFE_MOD = 0xAA;                              // enter safe mode
      000105 75 A1 AA         [24]  810 	mov	_SAFE_MOD,#0xaa
                                    811 ;	src/system.h:93: __asm__("anl _CLOCK_CFG, #0b11111000");
      000108 53 B9 F8         [24]  812 	anl	_CLOCK_CFG, #0b11111000
                                    813 ;	src/system.h:94: __asm__("orl _CLOCK_CFG, #0b00000101");     // 16MHz	
      00010B 43 B9 05         [24]  814 	orl	_CLOCK_CFG, #0b00000101
                                    815 ;	src/system.h:113: SAFE_MOD = 0x00;                              // terminate safe mode
      00010E 75 A1 00         [24]  816 	mov	_SAFE_MOD,#0x00
                                    817 ;	picodap.c:94: DLY_ms(10);                                           // wait for clock to settle
      000111 90 00 0A         [24]  818 	mov	dptr,#0x000a
      000114 12 14 84         [24]  819 	lcall	_DLY_ms
                                    820 ;	picodap.c:95: DAP_init();                                           // init CMSIS-DAP
      000117 12 14 B1         [24]  821 	lcall	_USB_init
                                    822 ;	assignBit
      00011A C2 94            [12]  823 	clr	_PP14
      00011C 53 92 EF         [24]  824 	anl	_P1_MOD_OC,#0xef
      00011F 43 93 10         [24]  825 	orl	_P1_DIR_PU,#0x10
                                    826 ;	assignBit
      000122 C2 97            [12]  827 	clr	_PP17
      000124 53 92 7F         [24]  828 	anl	_P1_MOD_OC,#0x7f
      000127 43 93 80         [24]  829 	orl	_P1_DIR_PU,#0x80
      00012A 53 93 DF         [24]  830 	anl	_P1_DIR_PU,#0xdf
      00012D 53 92 DF         [24]  831 	anl	_P1_MOD_OC,#0xdf
      000130 53 93 BF         [24]  832 	anl	_P1_DIR_PU,#0xbf
      000133 53 92 BF         [24]  833 	anl	_P1_MOD_OC,#0xbf
                                    834 ;	picodap.c:98: while(1) {
      000136                        835 00108$:
                                    836 ;	picodap.c:99: if(HID_readByteCount && !HID_writeBusyFlag) {       // DAP packet transmitted & received?                      
      000136 90 01 04         [24]  837 	mov	dptr,#_HID_readByteCount
      000139 E0               [24]  838 	movx	a,@dptr
      00013A 60 FA            [24]  839 	jz	00108$
      00013C 20 04 F7         [24]  840 	jb	_HID_writeBusyFlag,00108$
                                    841 ;	picodap.c:100: DAP_Thread();                                     // handle DAP packet
      00013F 12 12 6E         [24]  842 	lcall	_DAP_Thread
                                    843 ;	picodap.c:101: HID_readByteCount = 0;                            // clear byte counter
      000142 90 01 04         [24]  844 	mov	dptr,#_HID_readByteCount
      000145 E4               [12]  845 	clr	a
      000146 F0               [24]  846 	movx	@dptr,a
                                    847 ;	picodap.c:102: HID_writeBusyFlag = 1;                            // set write busy flag
                                    848 ;	assignBit
      000147 D2 04            [12]  849 	setb	_HID_writeBusyFlag
                                    850 ;	picodap.c:103: UEP1_T_LEN = 64;                                  // send 64 bytes
      000149 75 D3 40         [24]  851 	mov	_UEP1_T_LEN,#0x40
                                    852 ;	picodap.c:104: UEP1_CTRL &= ~(MASK_UEP_R_RES | MASK_UEP_T_RES);  // send & receive packet
      00014C 53 D2 F0         [24]  853 	anl	_UEP1_CTRL,#0xf0
                                    854 ;	picodap.c:107: }
      00014F 80 E5            [24]  855 	sjmp	00108$
                                    856 	.area CSEG    (CODE)
                                    857 	.area CONST   (CODE)
                                    858 	.area CABS    (ABS,CODE)