abse/smart-ring-flex

A tscircuit package created by abse.

Version
0.0.24
License
unset
Stars
0

firmware/onboard-programmer/ring-service-candidate/dap.lst

                                      1 ;--------------------------------------------------------
                                      2 ; File Created by SDCC : free open source ANSI-C Compiler
                                      3 ; Version 4.2.0 #13081 (Linux)
                                      4 ;--------------------------------------------------------
                                      5 	.module dap
                                      6 	.optsdcc -mmcs51 --model-small
                                      7 	
                                      8 ;--------------------------------------------------------
                                      9 ; Public variables in this module
                                     10 ;--------------------------------------------------------
                                     11 	.globl _SWD_Transfer
                                     12 	.globl _SWD_Sequence
                                     13 	.globl _SWJ_Sequence
                                     14 	.globl _ring_probe_reset
                                     15 	.globl _ring_probe_enable
                                     16 	.globl _DLY_us
                                     17 	.globl _strcpy
                                     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 _data
                                    269 	.globl _retry
                                    270 	.globl _response_value
                                    271 	.globl _response_count
                                    272 	.globl _request_value
                                    273 	.globl _request_count
                                    274 	.globl _DAP_TransferAbort
                                    275 	.globl _match_value
                                    276 	.globl _match_mask
                                    277 	.globl _match_retry
                                    278 	.globl _retry_count
                                    279 	.globl _debug_port
                                    280 	.globl _idle_cycles
                                    281 	.globl _SWD_Transfer_PARM_2
                                    282 	.globl _SWD_Sequence_PARM_3
                                    283 	.globl _SWD_Sequence_PARM_2
                                    284 	.globl _SWJ_Sequence_PARM_2
                                    285 	.globl _ring_swd_half_period_us
                                    286 	.globl _DAP_Thread
                                    287 ;--------------------------------------------------------
                                    288 ; special function registers
                                    289 ;--------------------------------------------------------
                                    290 	.area RSEG    (ABS,DATA)
      000000                        291 	.org 0x0000
                           0000D0   292 _PSW	=	0x00d0
                           0000E0   293 _ACC	=	0x00e0
                           0000F0   294 _B	=	0x00f0
                           000081   295 _SP	=	0x0081
                           000082   296 _DPL	=	0x0082
                           000083   297 _DPH	=	0x0083
                           0000A1   298 _SAFE_MOD	=	0x00a1
                           0000B1   299 _GLOBAL_CFG	=	0x00b1
                           000087   300 _PCON	=	0x0087
                           0000B9   301 _CLOCK_CFG	=	0x00b9
                           0000A9   302 _WAKE_CTRL	=	0x00a9
                           0000FE   303 _RESET_KEEP	=	0x00fe
                           0000FF   304 _WDOG_COUNT	=	0x00ff
                           0000A8   305 _IE	=	0x00a8
                           0000B8   306 _IP	=	0x00b8
                           0000E8   307 _IE_EX	=	0x00e8
                           0000E9   308 _IP_EX	=	0x00e9
                           0000C7   309 _GPIO_IE	=	0x00c7
                           008584   310 _ROM_ADDR	=	0x8584
                           000084   311 _ROM_ADDR_L	=	0x0084
                           000085   312 _ROM_ADDR_H	=	0x0085
                           008F8E   313 _ROM_DATA	=	0x8f8e
                           00008E   314 _ROM_DATA_L	=	0x008e
                           00008F   315 _ROM_DATA_H	=	0x008f
                           000086   316 _ROM_CTRL	=	0x0086
                           000090   317 _P1	=	0x0090
                           000092   318 _P1_MOD_OC	=	0x0092
                           000093   319 _P1_DIR_PU	=	0x0093
                           0000A0   320 _P2	=	0x00a0
                           0000B0   321 _P3	=	0x00b0
                           000096   322 _P3_MOD_OC	=	0x0096
                           000097   323 _P3_DIR_PU	=	0x0097
                           0000C6   324 _PIN_FUNC	=	0x00c6
                           0000A2   325 _XBUS_AUX	=	0x00a2
                           000088   326 _TCON	=	0x0088
                           000089   327 _TMOD	=	0x0089
                           00008A   328 _TL0	=	0x008a
                           00008B   329 _TL1	=	0x008b
                           00008C   330 _TH0	=	0x008c
                           00008D   331 _TH1	=	0x008d
                           000098   332 _SCON	=	0x0098
                           000099   333 _SBUF	=	0x0099
                           0000C8   334 _T2CON	=	0x00c8
                           0000C9   335 _T2MOD	=	0x00c9
                           00CBCA   336 _RCAP2	=	0xcbca
                           0000CA   337 _RCAP2L	=	0x00ca
                           0000CB   338 _RCAP2H	=	0x00cb
                           00CDCC   339 _T2COUNT	=	0xcdcc
                           0000CC   340 _TL2	=	0x00cc
                           0000CD   341 _TH2	=	0x00cd
                           00CFCE   342 _T2CAP1	=	0xcfce
                           0000CE   343 _T2CAP1L	=	0x00ce
                           0000CF   344 _T2CAP1H	=	0x00cf
                           00009B   345 _PWM_DATA2	=	0x009b
                           00009C   346 _PWM_DATA1	=	0x009c
                           00009D   347 _PWM_CTRL	=	0x009d
                           00009E   348 _PWM_CK_SE	=	0x009e
                           0000F8   349 _SPI0_STAT	=	0x00f8
                           0000F9   350 _SPI0_DATA	=	0x00f9
                           0000FA   351 _SPI0_CTRL	=	0x00fa
                           0000FB   352 _SPI0_CK_SE	=	0x00fb
                           0000FC   353 _SPI0_SETUP	=	0x00fc
                           0000C0   354 _SCON1	=	0x00c0
                           0000C1   355 _SBUF1	=	0x00c1
                           0000C2   356 _SBAUD1	=	0x00c2
                           000080   357 _ADC_CTRL	=	0x0080
                           00009A   358 _ADC_CFG	=	0x009a
                           00009F   359 _ADC_DATA	=	0x009f
                           0000C3   360 _TKEY_CTRL	=	0x00c3
                           00C5C4   361 _TKEY_DAT	=	0xc5c4
                           0000C4   362 _TKEY_DATL	=	0x00c4
                           0000C5   363 _TKEY_DATH	=	0x00c5
                           000091   364 _USB_C_CTRL	=	0x0091
                           0000D1   365 _UDEV_CTRL	=	0x00d1
                           0000D2   366 _UEP1_CTRL	=	0x00d2
                           0000D3   367 _UEP1_T_LEN	=	0x00d3
                           0000D4   368 _UEP2_CTRL	=	0x00d4
                           0000D5   369 _UEP2_T_LEN	=	0x00d5
                           0000D6   370 _UEP3_CTRL	=	0x00d6
                           0000D7   371 _UEP3_T_LEN	=	0x00d7
                           0000D8   372 _USB_INT_FG	=	0x00d8
                           0000D9   373 _USB_INT_ST	=	0x00d9
                           0000DA   374 _USB_MIS_ST	=	0x00da
                           0000DB   375 _USB_RX_LEN	=	0x00db
                           0000DC   376 _UEP0_CTRL	=	0x00dc
                           0000DD   377 _UEP0_T_LEN	=	0x00dd
                           0000DE   378 _UEP4_CTRL	=	0x00de
                           0000DF   379 _UEP4_T_LEN	=	0x00df
                           0000E1   380 _USB_INT_EN	=	0x00e1
                           0000E2   381 _USB_CTRL	=	0x00e2
                           0000E3   382 _USB_DEV_AD	=	0x00e3
                           00E5E4   383 _UEP2_DMA	=	0xe5e4
                           0000E4   384 _UEP2_DMA_L	=	0x00e4
                           0000E5   385 _UEP2_DMA_H	=	0x00e5
                           00E7E6   386 _UEP3_DMA	=	0xe7e6
                           0000E6   387 _UEP3_DMA_L	=	0x00e6
                           0000E7   388 _UEP3_DMA_H	=	0x00e7
                           0000EA   389 _UEP4_1_MOD	=	0x00ea
                           0000EB   390 _UEP2_3_MOD	=	0x00eb
                           00EDEC   391 _UEP0_DMA	=	0xedec
                           0000EC   392 _UEP0_DMA_L	=	0x00ec
                           0000ED   393 _UEP0_DMA_H	=	0x00ed
                           00EFEE   394 _UEP1_DMA	=	0xefee
                           0000EE   395 _UEP1_DMA_L	=	0x00ee
                           0000EF   396 _UEP1_DMA_H	=	0x00ef
                                    397 ;--------------------------------------------------------
                                    398 ; special function bits
                                    399 ;--------------------------------------------------------
                                    400 	.area RSEG    (ABS,DATA)
      000000                        401 	.org 0x0000
                           0000D7   402 _CY	=	0x00d7
                           0000D6   403 _AC	=	0x00d6
                           0000D5   404 _F0	=	0x00d5
                           0000D4   405 _RS1	=	0x00d4
                           0000D3   406 _RS0	=	0x00d3
                           0000D2   407 _OV	=	0x00d2
                           0000D1   408 _F1	=	0x00d1
                           0000D0   409 _P	=	0x00d0
                           0000AF   410 _EA	=	0x00af
                           0000AE   411 _E_DIS	=	0x00ae
                           0000AD   412 _ET2	=	0x00ad
                           0000AC   413 _ES	=	0x00ac
                           0000AB   414 _ET1	=	0x00ab
                           0000AA   415 _EX1	=	0x00aa
                           0000A9   416 _ET0	=	0x00a9
                           0000A8   417 _EX0	=	0x00a8
                           0000BF   418 _PH_FLAG	=	0x00bf
                           0000BE   419 _PL_FLAG	=	0x00be
                           0000BD   420 _PT2	=	0x00bd
                           0000BC   421 _PS	=	0x00bc
                           0000BB   422 _PT1	=	0x00bb
                           0000BA   423 _PX1	=	0x00ba
                           0000B9   424 _PT0	=	0x00b9
                           0000B8   425 _PX0	=	0x00b8
                           0000EF   426 _IE_WDOG	=	0x00ef
                           0000EE   427 _IE_GPIO	=	0x00ee
                           0000ED   428 _IE_PWMX	=	0x00ed
                           0000EC   429 _IE_UART1	=	0x00ec
                           0000EB   430 _IE_ADC	=	0x00eb
                           0000EA   431 _IE_USB	=	0x00ea
                           0000E9   432 _IE_TKEY	=	0x00e9
                           0000E8   433 _IE_SPI0	=	0x00e8
                           000097   434 _SCK	=	0x0097
                           000097   435 _TXD1	=	0x0097
                           000097   436 _TIN5	=	0x0097
                           000096   437 _MISO	=	0x0096
                           000096   438 _RXD1	=	0x0096
                           000096   439 _TIN4	=	0x0096
                           000095   440 _MOSI	=	0x0095
                           000095   441 _PWM1	=	0x0095
                           000095   442 _TIN3	=	0x0095
                           000095   443 _UCC2	=	0x0095
                           000095   444 _AIN2	=	0x0095
                           000094   445 _T2_	=	0x0094
                           000094   446 _CAP1_	=	0x0094
                           000094   447 _SCS	=	0x0094
                           000094   448 _TIN2	=	0x0094
                           000094   449 _UCC1	=	0x0094
                           000094   450 _AIN1	=	0x0094
                           000093   451 _TXD_	=	0x0093
                           000092   452 _RXD_	=	0x0092
                           000091   453 _T2EX	=	0x0091
                           000091   454 _CAP2	=	0x0091
                           000091   455 _TIN1	=	0x0091
                           000091   456 _VBUS2	=	0x0091
                           000091   457 _AIN0	=	0x0091
                           000090   458 _T2	=	0x0090
                           000090   459 _CAP1	=	0x0090
                           000090   460 _TIN0	=	0x0090
                           0000B7   461 _UDM	=	0x00b7
                           0000B6   462 _UDP	=	0x00b6
                           0000B5   463 _T1	=	0x00b5
                           0000B4   464 _PWM2	=	0x00b4
                           0000B4   465 _RXD1_	=	0x00b4
                           0000B4   466 _T0	=	0x00b4
                           0000B3   467 _INT1	=	0x00b3
                           0000B2   468 _TXD1_	=	0x00b2
                           0000B2   469 _INT0	=	0x00b2
                           0000B2   470 _VBUS1	=	0x00b2
                           0000B2   471 _AIN3	=	0x00b2
                           0000B1   472 _PWM2_	=	0x00b1
                           0000B1   473 _TXD	=	0x00b1
                           0000B0   474 _PWM1_	=	0x00b0
                           0000B0   475 _RXD	=	0x00b0
                           00008F   476 _TF1	=	0x008f
                           00008E   477 _TR1	=	0x008e
                           00008D   478 _TF0	=	0x008d
                           00008C   479 _TR0	=	0x008c
                           00008B   480 _IE1	=	0x008b
                           00008A   481 _IT1	=	0x008a
                           000089   482 _IE0	=	0x0089
                           000088   483 _IT0	=	0x0088
                           00009F   484 _SM0	=	0x009f
                           00009E   485 _SM1	=	0x009e
                           00009D   486 _SM2	=	0x009d
                           00009C   487 _REN	=	0x009c
                           00009B   488 _TB8	=	0x009b
                           00009A   489 _RB8	=	0x009a
                           000099   490 _TI	=	0x0099
                           000098   491 _RI	=	0x0098
                           0000CF   492 _TF2	=	0x00cf
                           0000CF   493 _CAP1F	=	0x00cf
                           0000CE   494 _EXF2	=	0x00ce
                           0000CD   495 _RCLK	=	0x00cd
                           0000CC   496 _TCLK	=	0x00cc
                           0000CB   497 _EXEN2	=	0x00cb
                           0000CA   498 _TR2	=	0x00ca
                           0000C9   499 _C_T2	=	0x00c9
                           0000C8   500 _CP_RL2	=	0x00c8
                           0000FF   501 _S0_FST_ACT	=	0x00ff
                           0000FE   502 _S0_IF_OV	=	0x00fe
                           0000FD   503 _S0_IF_FIRST	=	0x00fd
                           0000FC   504 _S0_IF_BYTE	=	0x00fc
                           0000FB   505 _S0_FREE	=	0x00fb
                           0000FA   506 _S0_T_FIFO	=	0x00fa
                           0000F8   507 _S0_R_FIFO	=	0x00f8
                           0000C7   508 _U1SM0	=	0x00c7
                           0000C5   509 _U1SMOD	=	0x00c5
                           0000C4   510 _U1REN	=	0x00c4
                           0000C3   511 _U1TB8	=	0x00c3
                           0000C2   512 _U1RB8	=	0x00c2
                           0000C1   513 _U1TI	=	0x00c1
                           0000C0   514 _U1RI	=	0x00c0
                           000087   515 _CMPO	=	0x0087
                           000086   516 _CMP_IF	=	0x0086
                           000085   517 _ADC_IF	=	0x0085
                           000084   518 _ADC_START	=	0x0084
                           000083   519 _CMP_CHAN	=	0x0083
                           000081   520 _ADC_CHAN1	=	0x0081
                           000080   521 _ADC_CHAN0	=	0x0080
                           0000DF   522 _U_IS_NAK	=	0x00df
                           0000DE   523 _U_TOG_OK	=	0x00de
                           0000DD   524 _U_SIE_FREE	=	0x00dd
                           0000DC   525 _UIF_FIFO_OV	=	0x00dc
                           0000DB   526 _UIF_HST_SOF	=	0x00db
                           0000DA   527 _UIF_SUSPEND	=	0x00da
                           0000D9   528 _UIF_TRANSFER	=	0x00d9
                           0000D8   529 _UIF_DETECT	=	0x00d8
                           0000D8   530 _UIF_BUS_RST	=	0x00d8
                           000090   531 _PP10	=	0x0090
                           000091   532 _PP11	=	0x0091
                           000092   533 _PP12	=	0x0092
                           000093   534 _PP13	=	0x0093
                           000094   535 _PP14	=	0x0094
                           000095   536 _PP15	=	0x0095
                           000096   537 _PP16	=	0x0096
                           000097   538 _PP17	=	0x0097
                           0000B0   539 _PP30	=	0x00b0
                           0000B1   540 _PP31	=	0x00b1
                           0000B2   541 _PP32	=	0x00b2
                           0000B3   542 _PP33	=	0x00b3
                           0000B4   543 _PP34	=	0x00b4
                           0000B5   544 _PP35	=	0x00b5
                           0000B6   545 _PP36	=	0x00b6
                           0000B7   546 _PP37	=	0x00b7
                                    547 ;--------------------------------------------------------
                                    548 ; overlayable register banks
                                    549 ;--------------------------------------------------------
                                    550 	.area REG_BANK_0	(REL,OVR,DATA)
      000000                        551 	.ds 8
                                    552 ;--------------------------------------------------------
                                    553 ; internal ram data
                                    554 ;--------------------------------------------------------
                                    555 	.area DSEG    (DATA)
      000000                        556 _ring_swd_half_period_us::
      000000                        557 	.ds 2
      000002                        558 _SWJ_Sequence_PARM_2:
      000002                        559 	.ds 2
      000004                        560 _SWD_Sequence_PARM_2:
      000004                        561 	.ds 2
      000006                        562 _SWD_Sequence_PARM_3:
      000006                        563 	.ds 2
      000008                        564 _SWD_Transfer_PARM_2:
      000008                        565 	.ds 2
      00000A                        566 _DAP_Info_PARM_2:
      00000A                        567 	.ds 2
      00000C                        568 _DAP_Connect_PARM_2:
      00000C                        569 	.ds 2
      00000E                        570 _DAP_SWJ_Pins_PARM_2:
      00000E                        571 	.ds 2
      000010                        572 _DAP_SWJ_Pins_sloc0_1_0:
      000010                        573 	.ds 1
      000011                        574 _DAP_SWJ_Pins_sloc1_1_0:
      000011                        575 	.ds 1
      000012                        576 _DAP_SWJ_Pins_sloc2_1_0:
      000012                        577 	.ds 2
      000014                        578 _DAP_SWJ_Pins_sloc4_1_0:
      000014                        579 	.ds 1
      000015                        580 _DAP_SWJ_Sequence_PARM_2:
      000015                        581 	.ds 2
      000017                        582 _DAP_SWD_Sequence_PARM_2:
      000017                        583 	.ds 2
      000019                        584 _DAP_SWD_Transfer_PARM_2:
      000019                        585 	.ds 2
      00001B                        586 _DAP_SWD_Transfer_response_head_65536_140:
      00001B                        587 	.ds 2
      00001D                        588 _DAP_SWD_Transfer_post_read_65536_140:
      00001D                        589 	.ds 1
      00001E                        590 _DAP_SWD_Transfer_check_write_65536_140:
      00001E                        591 	.ds 1
      00001F                        592 _DAP_SWD_Transfer_sloc0_1_0:
      00001F                        593 	.ds 1
      000020                        594 _DAP_SWD_TransferBlock_PARM_2:
      000020                        595 	.ds 2
      000022                        596 _DAP_SWD_TransferBlock_response_head_65536_175:
      000022                        597 	.ds 2
      000024                        598 _DAP_TransferBlock_PARM_2:
      000024                        599 	.ds 2
      000026                        600 _DAP_Thread_requested_hz_196608_191:
      000026                        601 	.ds 4
      00002A                        602 _DAP_Thread_sloc0_1_0:
      00002A                        603 	.ds 4
                                    604 ;--------------------------------------------------------
                                    605 ; overlayable items in internal ram
                                    606 ;--------------------------------------------------------
                                    607 	.area	OSEG    (OVR,DATA)
      000000                        608 _DAP_HostStatus_PARM_2:
      000000                        609 	.ds 2
                                    610 	.area	OSEG    (OVR,DATA)
      000000                        611 _DAP_TransferConfigure_PARM_2:
      000000                        612 	.ds 2
                                    613 ;--------------------------------------------------------
                                    614 ; indirectly addressable internal ram data
                                    615 ;--------------------------------------------------------
                                    616 	.area ISEG    (DATA)
      000000                        617 _idle_cycles::
      000000                        618 	.ds 1
      000001                        619 _debug_port::
      000001                        620 	.ds 1
      000002                        621 _retry_count::
      000002                        622 	.ds 2
      000004                        623 _match_retry::
      000004                        624 	.ds 2
      000006                        625 _match_mask::
      000006                        626 	.ds 4
      00000A                        627 _match_value::
      00000A                        628 	.ds 4
      00000E                        629 _DAP_TransferAbort::
      00000E                        630 	.ds 1
      00000F                        631 _request_count::
      00000F                        632 	.ds 1
      000010                        633 _request_value::
      000010                        634 	.ds 1
      000011                        635 _response_count::
      000011                        636 	.ds 1
      000012                        637 _response_value::
      000012                        638 	.ds 1
      000013                        639 _retry::
      000013                        640 	.ds 2
                                    641 ;--------------------------------------------------------
                                    642 ; absolute internal ram data
                                    643 ;--------------------------------------------------------
                                    644 	.area IABS    (ABS,DATA)
                                    645 	.area IABS    (ABS,DATA)
                                    646 ;--------------------------------------------------------
                                    647 ; bit data
                                    648 ;--------------------------------------------------------
                                    649 	.area BSEG    (BIT)
      000000                        650 _DAP_SWJ_Pins_sloc3_1_0:
      000000                        651 	.ds 1
                                    652 ;--------------------------------------------------------
                                    653 ; paged external ram data
                                    654 ;--------------------------------------------------------
                                    655 	.area PSEG    (PAG,XDATA)
                                    656 ;--------------------------------------------------------
                                    657 ; external ram data
                                    658 ;--------------------------------------------------------
                                    659 	.area XSEG    (XDATA)
      000000                        660 _data::
      000000                        661 	.ds 4
                                    662 ;--------------------------------------------------------
                                    663 ; absolute external ram data
                                    664 ;--------------------------------------------------------
                                    665 	.area XABS    (ABS,XDATA)
                                    666 ;--------------------------------------------------------
                                    667 ; external initialized ram data
                                    668 ;--------------------------------------------------------
                                    669 	.area HOME    (CODE)
                                    670 	.area GSINIT0 (CODE)
                                    671 	.area GSINIT1 (CODE)
                                    672 	.area GSINIT2 (CODE)
                                    673 	.area GSINIT3 (CODE)
                                    674 	.area GSINIT4 (CODE)
                                    675 	.area GSINIT5 (CODE)
                                    676 	.area GSINIT  (CODE)
                                    677 	.area GSFINAL (CODE)
                                    678 	.area CSEG    (CODE)
                                    679 ;--------------------------------------------------------
                                    680 ; global & static initialisations
                                    681 ;--------------------------------------------------------
                                    682 	.area HOME    (CODE)
                                    683 	.area GSINIT  (CODE)
                                    684 	.area GSFINAL (CODE)
                                    685 	.area GSINIT  (CODE)
                                    686 ;	src/dap.c:37: uint16_t ring_swd_half_period_us = 5;
      000000 75*00 05         [24]  687 	mov	_ring_swd_half_period_us,#0x05
      000003 75*01 00         [24]  688 	mov	(_ring_swd_half_period_us + 1),#0x00
                                    689 ;	src/dap.c:438: __idata uint8_t DAP_TransferAbort = 0U;
      000006 78r0E            [12]  690 	mov	r0,#_DAP_TransferAbort
      000008 76 00            [12]  691 	mov	@r0,#0x00
                                    692 ;--------------------------------------------------------
                                    693 ; Home
                                    694 ;--------------------------------------------------------
                                    695 	.area HOME    (CODE)
                                    696 	.area HOME    (CODE)
                                    697 ;--------------------------------------------------------
                                    698 ; code
                                    699 ;--------------------------------------------------------
                                    700 	.area CSEG    (CODE)
                                    701 ;------------------------------------------------------------
                                    702 ;Allocation info for local variables in function 'SWJ_Sequence'
                                    703 ;------------------------------------------------------------
                                    704 ;data                      Allocated with name '_SWJ_Sequence_PARM_2'
                                    705 ;count                     Allocated to registers 
                                    706 ;val                       Allocated to registers r6 
                                    707 ;n                         Allocated to registers r5 
                                    708 ;------------------------------------------------------------
                                    709 ;	src/dap.c:45: void SWJ_Sequence(uint8_t count, const __xdata uint8_t *data) {
                                    710 ;	-----------------------------------------
                                    711 ;	 function SWJ_Sequence
                                    712 ;	-----------------------------------------
      000000                        713 _SWJ_Sequence:
                           000007   714 	ar7 = 0x07
                           000006   715 	ar6 = 0x06
                           000005   716 	ar5 = 0x05
                           000004   717 	ar4 = 0x04
                           000003   718 	ar3 = 0x03
                           000002   719 	ar2 = 0x02
                           000001   720 	ar1 = 0x01
                           000000   721 	ar0 = 0x00
      000000 AF 82            [24]  722 	mov	r7,dpl
                                    723 ;	src/dap.c:49: val = 0U;
      000002 7E 00            [12]  724 	mov	r6,#0x00
                                    725 ;	src/dap.c:50: n   = 0U;
      000004 7D 00            [12]  726 	mov	r5,#0x00
                                    727 ;	src/dap.c:51: while(count--) {
      000006 AB*02            [24]  728 	mov	r3,_SWJ_Sequence_PARM_2
      000008 AC*03            [24]  729 	mov	r4,(_SWJ_Sequence_PARM_2 + 1)
      00000A                        730 00103$:
      00000A 8F 02            [24]  731 	mov	ar2,r7
      00000C 1F               [12]  732 	dec	r7
      00000D EA               [12]  733 	mov	a,r2
      00000E 60 48            [24]  734 	jz	00106$
                                    735 ;	src/dap.c:52: if(n == 0U) {
      000010 ED               [12]  736 	mov	a,r5
      000011 70 0D            [24]  737 	jnz	00102$
                                    738 ;	src/dap.c:53: val = *data++;
      000013 8B 82            [24]  739 	mov	dpl,r3
      000015 8C 83            [24]  740 	mov	dph,r4
      000017 E0               [24]  741 	movx	a,@dptr
      000018 FE               [12]  742 	mov	r6,a
      000019 A3               [24]  743 	inc	dptr
      00001A AB 82            [24]  744 	mov	r3,dpl
      00001C AC 83            [24]  745 	mov	r4,dph
                                    746 ;	src/dap.c:54: n   = 8U;
      00001E 7D 08            [12]  747 	mov	r5,#0x08
      000020                        748 00102$:
                                    749 ;	src/dap.c:57: SWD_WRITE_BIT(val);
      000020 EE               [12]  750 	mov	a,r6
      000021 54 01            [12]  751 	anl	a,#0x01
                                    752 ;	assignBit
      000023 24 FF            [12]  753 	add	a,#0xff
      000025 92 95            [24]  754 	mov	_PP15,c
      000027 85*00 82         [24]  755 	mov	dpl,_ring_swd_half_period_us
      00002A 85*01 83         [24]  756 	mov	dph,(_ring_swd_half_period_us + 1)
      00002D C0 07            [24]  757 	push	ar7
      00002F C0 06            [24]  758 	push	ar6
      000031 C0 05            [24]  759 	push	ar5
      000033 C0 04            [24]  760 	push	ar4
      000035 C0 03            [24]  761 	push	ar3
      000037 12r00r00         [24]  762 	lcall	_DLY_us
                                    763 ;	assignBit
      00003A D2 96            [12]  764 	setb	_PP16
      00003C 85*00 82         [24]  765 	mov	dpl,_ring_swd_half_period_us
      00003F 85*01 83         [24]  766 	mov	dph,(_ring_swd_half_period_us + 1)
      000042 12r00r00         [24]  767 	lcall	_DLY_us
      000045 D0 03            [24]  768 	pop	ar3
      000047 D0 04            [24]  769 	pop	ar4
      000049 D0 05            [24]  770 	pop	ar5
      00004B D0 06            [24]  771 	pop	ar6
      00004D D0 07            [24]  772 	pop	ar7
                                    773 ;	assignBit
      00004F C2 96            [12]  774 	clr	_PP16
                                    775 ;	src/dap.c:58: val >>= 1;
      000051 EE               [12]  776 	mov	a,r6
      000052 C3               [12]  777 	clr	c
      000053 13               [12]  778 	rrc	a
      000054 FE               [12]  779 	mov	r6,a
                                    780 ;	src/dap.c:59: n--;
      000055 1D               [12]  781 	dec	r5
      000056 80 B2            [24]  782 	sjmp	00103$
      000058                        783 00106$:
                                    784 ;	src/dap.c:61: }
      000058 22               [24]  785 	ret
                                    786 ;------------------------------------------------------------
                                    787 ;Allocation info for local variables in function 'SWD_Sequence'
                                    788 ;------------------------------------------------------------
                                    789 ;swdo                      Allocated with name '_SWD_Sequence_PARM_2'
                                    790 ;swdi                      Allocated with name '_SWD_Sequence_PARM_3'
                                    791 ;info                      Allocated to registers r7 
                                    792 ;val                       Allocated to registers r3 
                                    793 ;bits                      Allocated to registers r1 
                                    794 ;n                         Allocated to registers r6 
                                    795 ;k                         Allocated to registers r3 
                                    796 ;------------------------------------------------------------
                                    797 ;	src/dap.c:70: void SWD_Sequence(uint8_t info, const __xdata uint8_t *swdo, __xdata uint8_t *swdi) {
                                    798 ;	-----------------------------------------
                                    799 ;	 function SWD_Sequence
                                    800 ;	-----------------------------------------
      000059                        801 _SWD_Sequence:
      000059 AF 82            [24]  802 	mov	r7,dpl
                                    803 ;	src/dap.c:75: n = info & SWD_SEQUENCE_CLK;
      00005B 74 3F            [12]  804 	mov	a,#0x3f
      00005D 5F               [12]  805 	anl	a,r7
                                    806 ;	src/dap.c:76: if(n == 0U) n = 64U;
      00005E FE               [12]  807 	mov	r6,a
      00005F 70 02            [24]  808 	jnz	00102$
      000061 7E 40            [12]  809 	mov	r6,#0x40
      000063                        810 00102$:
                                    811 ;	src/dap.c:78: if(info & SWD_SEQUENCE_DIN) {
      000063 EF               [12]  812 	mov	a,r7
      000064 30 E7 71         [24]  813 	jnb	acc.7,00131$
                                    814 ;	src/dap.c:79: while(n) {
      000067 AD*06            [24]  815 	mov	r5,_SWD_Sequence_PARM_3
      000069 AF*07            [24]  816 	mov	r7,(_SWD_Sequence_PARM_3 + 1)
      00006B                        817 00104$:
      00006B EE               [12]  818 	mov	a,r6
      00006C 70 01            [24]  819 	jnz	00188$
      00006E 22               [24]  820 	ret
      00006F                        821 00188$:
                                    822 ;	src/dap.c:80: val = 0U;
      00006F 7C 00            [12]  823 	mov	r4,#0x00
                                    824 ;	src/dap.c:81: for (k = 8U; k && n; k--, n--) {
      000071 7B 08            [12]  825 	mov	r3,#0x08
      000073 8E 02            [24]  826 	mov	ar2,r6
      000075                        827 00116$:
      000075 EB               [12]  828 	mov	a,r3
      000076 60 45            [24]  829 	jz	00135$
      000078 EA               [12]  830 	mov	a,r2
      000079 60 42            [24]  831 	jz	00135$
                                    832 ;	src/dap.c:82: SWD_READ_BIT(bits);
      00007B A2 95            [12]  833 	mov	c,_PP15
      00007D E4               [12]  834 	clr	a
      00007E 33               [12]  835 	rlc	a
      00007F F9               [12]  836 	mov	r1,a
      000080 85*00 82         [24]  837 	mov	dpl,_ring_swd_half_period_us
      000083 85*01 83         [24]  838 	mov	dph,(_ring_swd_half_period_us + 1)
      000086 C0 07            [24]  839 	push	ar7
      000088 C0 05            [24]  840 	push	ar5
      00008A C0 04            [24]  841 	push	ar4
      00008C C0 03            [24]  842 	push	ar3
      00008E C0 02            [24]  843 	push	ar2
      000090 C0 01            [24]  844 	push	ar1
      000092 12r00r00         [24]  845 	lcall	_DLY_us
                                    846 ;	assignBit
      000095 D2 96            [12]  847 	setb	_PP16
      000097 85*00 82         [24]  848 	mov	dpl,_ring_swd_half_period_us
      00009A 85*01 83         [24]  849 	mov	dph,(_ring_swd_half_period_us + 1)
      00009D 12r00r00         [24]  850 	lcall	_DLY_us
      0000A0 D0 01            [24]  851 	pop	ar1
      0000A2 D0 02            [24]  852 	pop	ar2
      0000A4 D0 03            [24]  853 	pop	ar3
      0000A6 D0 04            [24]  854 	pop	ar4
      0000A8 D0 05            [24]  855 	pop	ar5
      0000AA D0 07            [24]  856 	pop	ar7
                                    857 ;	assignBit
      0000AC C2 96            [12]  858 	clr	_PP16
                                    859 ;	src/dap.c:83: val >>= 1;
      0000AE EC               [12]  860 	mov	a,r4
      0000AF C3               [12]  861 	clr	c
      0000B0 13               [12]  862 	rrc	a
      0000B1 F8               [12]  863 	mov	r0,a
                                    864 ;	src/dap.c:84: val |= bits << 7;
      0000B2 E9               [12]  865 	mov	a,r1
      0000B3 03               [12]  866 	rr	a
      0000B4 54 80            [12]  867 	anl	a,#0x80
      0000B6 F9               [12]  868 	mov	r1,a
      0000B7 48               [12]  869 	orl	a,r0
      0000B8 FC               [12]  870 	mov	r4,a
                                    871 ;	src/dap.c:81: for (k = 8U; k && n; k--, n--) {
      0000B9 1B               [12]  872 	dec	r3
      0000BA 1A               [12]  873 	dec	r2
      0000BB 80 B8            [24]  874 	sjmp	00116$
      0000BD                        875 00135$:
      0000BD 8A 06            [24]  876 	mov	ar6,r2
                                    877 ;	src/dap.c:86: val >>= k;
      0000BF 8B F0            [24]  878 	mov	b,r3
      0000C1 05 F0            [12]  879 	inc	b
      0000C3 EC               [12]  880 	mov	a,r4
      0000C4 80 02            [24]  881 	sjmp	00192$
      0000C6                        882 00191$:
      0000C6 C3               [12]  883 	clr	c
      0000C7 13               [12]  884 	rrc	a
      0000C8                        885 00192$:
      0000C8 D5 F0 FB         [24]  886 	djnz	b,00191$
                                    887 ;	src/dap.c:87: *swdi++ = (uint8_t)val;
      0000CB FB               [12]  888 	mov	r3,a
      0000CC 8D 82            [24]  889 	mov	dpl,r5
      0000CE 8F 83            [24]  890 	mov	dph,r7
      0000D0 F0               [24]  891 	movx	@dptr,a
      0000D1 A3               [24]  892 	inc	dptr
      0000D2 AD 82            [24]  893 	mov	r5,dpl
      0000D4 AF 83            [24]  894 	mov	r7,dph
                                    895 ;	src/dap.c:91: while(n) {
      0000D6 80 93            [24]  896 	sjmp	00104$
      0000D8                        897 00131$:
      0000D8 AD*04            [24]  898 	mov	r5,_SWD_Sequence_PARM_2
      0000DA AF*05            [24]  899 	mov	r7,(_SWD_Sequence_PARM_2 + 1)
      0000DC                        900 00108$:
      0000DC EE               [12]  901 	mov	a,r6
      0000DD 60 50            [24]  902 	jz	00122$
                                    903 ;	src/dap.c:92: val = *swdo++;
      0000DF 8D 82            [24]  904 	mov	dpl,r5
      0000E1 8F 83            [24]  905 	mov	dph,r7
      0000E3 E0               [24]  906 	movx	a,@dptr
      0000E4 FC               [12]  907 	mov	r4,a
      0000E5 A3               [24]  908 	inc	dptr
      0000E6 AD 82            [24]  909 	mov	r5,dpl
      0000E8 AF 83            [24]  910 	mov	r7,dph
                                    911 ;	src/dap.c:93: for(k = 8U; k && n; k--, n--) {
      0000EA 7B 08            [12]  912 	mov	r3,#0x08
      0000EC 8E 02            [24]  913 	mov	ar2,r6
      0000EE                        914 00120$:
      0000EE EB               [12]  915 	mov	a,r3
      0000EF 60 EB            [24]  916 	jz	00108$
      0000F1 EA               [12]  917 	mov	a,r2
      0000F2 60 E8            [24]  918 	jz	00108$
                                    919 ;	src/dap.c:94: SWD_WRITE_BIT(val);
      0000F4 EC               [12]  920 	mov	a,r4
      0000F5 54 01            [12]  921 	anl	a,#0x01
                                    922 ;	assignBit
      0000F7 24 FF            [12]  923 	add	a,#0xff
      0000F9 92 95            [24]  924 	mov	_PP15,c
      0000FB 85*00 82         [24]  925 	mov	dpl,_ring_swd_half_period_us
      0000FE 85*01 83         [24]  926 	mov	dph,(_ring_swd_half_period_us + 1)
      000101 C0 07            [24]  927 	push	ar7
      000103 C0 05            [24]  928 	push	ar5
      000105 C0 04            [24]  929 	push	ar4
      000107 C0 03            [24]  930 	push	ar3
      000109 C0 02            [24]  931 	push	ar2
      00010B 12r00r00         [24]  932 	lcall	_DLY_us
                                    933 ;	assignBit
      00010E D2 96            [12]  934 	setb	_PP16
      000110 85*00 82         [24]  935 	mov	dpl,_ring_swd_half_period_us
      000113 85*01 83         [24]  936 	mov	dph,(_ring_swd_half_period_us + 1)
      000116 12r00r00         [24]  937 	lcall	_DLY_us
      000119 D0 02            [24]  938 	pop	ar2
      00011B D0 03            [24]  939 	pop	ar3
      00011D D0 04            [24]  940 	pop	ar4
      00011F D0 05            [24]  941 	pop	ar5
      000121 D0 07            [24]  942 	pop	ar7
                                    943 ;	assignBit
      000123 C2 96            [12]  944 	clr	_PP16
                                    945 ;	src/dap.c:95: val >>= 1;
      000125 EC               [12]  946 	mov	a,r4
      000126 C3               [12]  947 	clr	c
      000127 13               [12]  948 	rrc	a
      000128 FC               [12]  949 	mov	r4,a
                                    950 ;	src/dap.c:93: for(k = 8U; k && n; k--, n--) {
      000129 1B               [12]  951 	dec	r3
      00012A 1A               [12]  952 	dec	r2
      00012B 8A 06            [24]  953 	mov	ar6,r2
      00012D 80 BF            [24]  954 	sjmp	00120$
      00012F                        955 00122$:
                                    956 ;	src/dap.c:99: }
      00012F 22               [24]  957 	ret
                                    958 ;------------------------------------------------------------
                                    959 ;Allocation info for local variables in function 'SWD_Transfer'
                                    960 ;------------------------------------------------------------
                                    961 ;data                      Allocated with name '_SWD_Transfer_PARM_2'
                                    962 ;req                       Allocated to registers r7 
                                    963 ;ack                       Allocated to registers r5 
                                    964 ;bits                      Allocated to registers r5 
                                    965 ;val                       Allocated to registers r4 
                                    966 ;parity                    Allocated to registers r6 
                                    967 ;m                         Allocated to registers r4 
                                    968 ;n                         Allocated to registers r7 
                                    969 ;------------------------------------------------------------
                                    970 ;	src/dap.c:108: uint8_t SWD_Transfer(uint8_t req, __xdata uint8_t *data) {
                                    971 ;	-----------------------------------------
                                    972 ;	 function SWD_Transfer
                                    973 ;	-----------------------------------------
      000130                        974 _SWD_Transfer:
      000130 AF 82            [24]  975 	mov	r7,dpl
                                    976 ;	src/dap.c:117: SWD_WRITE_BIT(1U);              // start bit
                                    977 ;	assignBit
      000132 D2 95            [12]  978 	setb	_PP15
      000134 85*00 82         [24]  979 	mov	dpl,_ring_swd_half_period_us
      000137 85*01 83         [24]  980 	mov	dph,(_ring_swd_half_period_us + 1)
      00013A C0 07            [24]  981 	push	ar7
      00013C 12r00r00         [24]  982 	lcall	_DLY_us
                                    983 ;	assignBit
      00013F D2 96            [12]  984 	setb	_PP16
      000141 85*00 82         [24]  985 	mov	dpl,_ring_swd_half_period_us
      000144 85*01 83         [24]  986 	mov	dph,(_ring_swd_half_period_us + 1)
      000147 12r00r00         [24]  987 	lcall	_DLY_us
      00014A D0 07            [24]  988 	pop	ar7
                                    989 ;	assignBit
      00014C C2 96            [12]  990 	clr	_PP16
                                    991 ;	src/dap.c:118: SWD_WRITE_BIT(bits);            // APnDP bit
      00014E EF               [12]  992 	mov	a,r7
      00014F 54 01            [12]  993 	anl	a,#0x01
                                    994 ;	assignBit
      000151 24 FF            [12]  995 	add	a,#0xff
      000153 92 95            [24]  996 	mov	_PP15,c
      000155 85*00 82         [24]  997 	mov	dpl,_ring_swd_half_period_us
      000158 85*01 83         [24]  998 	mov	dph,(_ring_swd_half_period_us + 1)
      00015B C0 07            [24]  999 	push	ar7
      00015D 12r00r00         [24] 1000 	lcall	_DLY_us
                                   1001 ;	assignBit
      000160 D2 96            [12] 1002 	setb	_PP16
      000162 85*00 82         [24] 1003 	mov	dpl,_ring_swd_half_period_us
      000165 85*01 83         [24] 1004 	mov	dph,(_ring_swd_half_period_us + 1)
      000168 12r00r00         [24] 1005 	lcall	_DLY_us
      00016B D0 07            [24] 1006 	pop	ar7
                                   1007 ;	assignBit
      00016D C2 96            [12] 1008 	clr	_PP16
                                   1009 ;	src/dap.c:120: bits >>= 1;
      00016F EF               [12] 1010 	mov	a,r7
      000170 C3               [12] 1011 	clr	c
      000171 13               [12] 1012 	rrc	a
                                   1013 ;	src/dap.c:121: SWD_WRITE_BIT(bits);            // RnW bit
      000172 FE               [12] 1014 	mov	r6,a
      000173 54 01            [12] 1015 	anl	a,#0x01
                                   1016 ;	assignBit
      000175 24 FF            [12] 1017 	add	a,#0xff
      000177 92 95            [24] 1018 	mov	_PP15,c
      000179 85*00 82         [24] 1019 	mov	dpl,_ring_swd_half_period_us
      00017C 85*01 83         [24] 1020 	mov	dph,(_ring_swd_half_period_us + 1)
      00017F C0 07            [24] 1021 	push	ar7
      000181 C0 06            [24] 1022 	push	ar6
      000183 12r00r00         [24] 1023 	lcall	_DLY_us
                                   1024 ;	assignBit
      000186 D2 96            [12] 1025 	setb	_PP16
      000188 85*00 82         [24] 1026 	mov	dpl,_ring_swd_half_period_us
      00018B 85*01 83         [24] 1027 	mov	dph,(_ring_swd_half_period_us + 1)
      00018E 12r00r00         [24] 1028 	lcall	_DLY_us
      000191 D0 06            [24] 1029 	pop	ar6
      000193 D0 07            [24] 1030 	pop	ar7
                                   1031 ;	assignBit
      000195 C2 96            [12] 1032 	clr	_PP16
                                   1033 ;	src/dap.c:122: parity += bits;
      000197 EE               [12] 1034 	mov	a,r6
      000198 2F               [12] 1035 	add	a,r7
      000199 FD               [12] 1036 	mov	r5,a
                                   1037 ;	src/dap.c:123: bits >>= 1;
      00019A EE               [12] 1038 	mov	a,r6
      00019B C3               [12] 1039 	clr	c
      00019C 13               [12] 1040 	rrc	a
                                   1041 ;	src/dap.c:124: SWD_WRITE_BIT(bits);            // A2 bit
      00019D FE               [12] 1042 	mov	r6,a
      00019E 54 01            [12] 1043 	anl	a,#0x01
                                   1044 ;	assignBit
      0001A0 24 FF            [12] 1045 	add	a,#0xff
      0001A2 92 95            [24] 1046 	mov	_PP15,c
      0001A4 85*00 82         [24] 1047 	mov	dpl,_ring_swd_half_period_us
      0001A7 85*01 83         [24] 1048 	mov	dph,(_ring_swd_half_period_us + 1)
      0001AA C0 07            [24] 1049 	push	ar7
      0001AC C0 06            [24] 1050 	push	ar6
      0001AE C0 05            [24] 1051 	push	ar5
      0001B0 12r00r00         [24] 1052 	lcall	_DLY_us
                                   1053 ;	assignBit
      0001B3 D2 96            [12] 1054 	setb	_PP16
      0001B5 85*00 82         [24] 1055 	mov	dpl,_ring_swd_half_period_us
      0001B8 85*01 83         [24] 1056 	mov	dph,(_ring_swd_half_period_us + 1)
      0001BB 12r00r00         [24] 1057 	lcall	_DLY_us
      0001BE D0 05            [24] 1058 	pop	ar5
      0001C0 D0 06            [24] 1059 	pop	ar6
                                   1060 ;	assignBit
      0001C2 C2 96            [12] 1061 	clr	_PP16
                                   1062 ;	src/dap.c:125: parity += bits;
      0001C4 EE               [12] 1063 	mov	a,r6
      0001C5 2D               [12] 1064 	add	a,r5
      0001C6 FD               [12] 1065 	mov	r5,a
                                   1066 ;	src/dap.c:126: bits >>= 1;
      0001C7 EE               [12] 1067 	mov	a,r6
      0001C8 C3               [12] 1068 	clr	c
      0001C9 13               [12] 1069 	rrc	a
                                   1070 ;	src/dap.c:127: SWD_WRITE_BIT(bits);            // A3 bit
      0001CA FE               [12] 1071 	mov	r6,a
      0001CB 54 01            [12] 1072 	anl	a,#0x01
                                   1073 ;	assignBit
      0001CD 24 FF            [12] 1074 	add	a,#0xff
      0001CF 92 95            [24] 1075 	mov	_PP15,c
      0001D1 85*00 82         [24] 1076 	mov	dpl,_ring_swd_half_period_us
      0001D4 85*01 83         [24] 1077 	mov	dph,(_ring_swd_half_period_us + 1)
      0001D7 C0 06            [24] 1078 	push	ar6
      0001D9 C0 05            [24] 1079 	push	ar5
      0001DB 12r00r00         [24] 1080 	lcall	_DLY_us
                                   1081 ;	assignBit
      0001DE D2 96            [12] 1082 	setb	_PP16
      0001E0 85*00 82         [24] 1083 	mov	dpl,_ring_swd_half_period_us
      0001E3 85*01 83         [24] 1084 	mov	dph,(_ring_swd_half_period_us + 1)
      0001E6 12r00r00         [24] 1085 	lcall	_DLY_us
      0001E9 D0 05            [24] 1086 	pop	ar5
      0001EB D0 06            [24] 1087 	pop	ar6
                                   1088 ;	assignBit
      0001ED C2 96            [12] 1089 	clr	_PP16
                                   1090 ;	src/dap.c:128: parity += bits;
      0001EF EE               [12] 1091 	mov	a,r6
      0001F0 2D               [12] 1092 	add	a,r5
                                   1093 ;	src/dap.c:129: SWD_WRITE_BIT(parity);          // parity bit
      0001F1 54 01            [12] 1094 	anl	a,#0x01
                                   1095 ;	assignBit
      0001F3 24 FF            [12] 1096 	add	a,#0xff
      0001F5 92 95            [24] 1097 	mov	_PP15,c
      0001F7 85*00 82         [24] 1098 	mov	dpl,_ring_swd_half_period_us
      0001FA 85*01 83         [24] 1099 	mov	dph,(_ring_swd_half_period_us + 1)
      0001FD 12r00r00         [24] 1100 	lcall	_DLY_us
                                   1101 ;	assignBit
      000200 D2 96            [12] 1102 	setb	_PP16
      000202 85*00 82         [24] 1103 	mov	dpl,_ring_swd_half_period_us
      000205 85*01 83         [24] 1104 	mov	dph,(_ring_swd_half_period_us + 1)
      000208 12r00r00         [24] 1105 	lcall	_DLY_us
                                   1106 ;	assignBit
      00020B C2 96            [12] 1107 	clr	_PP16
                                   1108 ;	src/dap.c:130: SWD_WRITE_BIT(0U);              // stop bit
                                   1109 ;	assignBit
      00020D C2 95            [12] 1110 	clr	_PP15
      00020F 85*00 82         [24] 1111 	mov	dpl,_ring_swd_half_period_us
      000212 85*01 83         [24] 1112 	mov	dph,(_ring_swd_half_period_us + 1)
      000215 12r00r00         [24] 1113 	lcall	_DLY_us
                                   1114 ;	assignBit
      000218 D2 96            [12] 1115 	setb	_PP16
      00021A 85*00 82         [24] 1116 	mov	dpl,_ring_swd_half_period_us
      00021D 85*01 83         [24] 1117 	mov	dph,(_ring_swd_half_period_us + 1)
      000220 12r00r00         [24] 1118 	lcall	_DLY_us
                                   1119 ;	assignBit
      000223 C2 96            [12] 1120 	clr	_PP16
                                   1121 ;	src/dap.c:131: SWD_WRITE_BIT(1U);              // park bit
                                   1122 ;	assignBit
      000225 D2 95            [12] 1123 	setb	_PP15
      000227 85*00 82         [24] 1124 	mov	dpl,_ring_swd_half_period_us
      00022A 85*01 83         [24] 1125 	mov	dph,(_ring_swd_half_period_us + 1)
      00022D 12r00r00         [24] 1126 	lcall	_DLY_us
                                   1127 ;	assignBit
      000230 D2 96            [12] 1128 	setb	_PP16
      000232 85*00 82         [24] 1129 	mov	dpl,_ring_swd_half_period_us
      000235 85*01 83         [24] 1130 	mov	dph,(_ring_swd_half_period_us + 1)
      000238 12r00r00         [24] 1131 	lcall	_DLY_us
                                   1132 ;	assignBit
      00023B C2 96            [12] 1133 	clr	_PP16
                                   1134 ;	src/dap.c:134: SWD_OUT_DISABLE();
      00023D 53 93 DF         [24] 1135 	anl	_P1_DIR_PU,#0xdf
      000240 53 92 DF         [24] 1136 	anl	_P1_MOD_OC,#0xdf
                                   1137 ;	src/dap.c:135: SWD_CLOCK_CYCLE();
      000243 85*00 82         [24] 1138 	mov	dpl,_ring_swd_half_period_us
      000246 85*01 83         [24] 1139 	mov	dph,(_ring_swd_half_period_us + 1)
      000249 12r00r00         [24] 1140 	lcall	_DLY_us
                                   1141 ;	assignBit
      00024C D2 96            [12] 1142 	setb	_PP16
      00024E 85*00 82         [24] 1143 	mov	dpl,_ring_swd_half_period_us
      000251 85*01 83         [24] 1144 	mov	dph,(_ring_swd_half_period_us + 1)
      000254 12r00r00         [24] 1145 	lcall	_DLY_us
                                   1146 ;	assignBit
      000257 C2 96            [12] 1147 	clr	_PP16
                                   1148 ;	src/dap.c:138: SWD_READ_BIT(bits);
      000259 A2 95            [12] 1149 	mov	c,_PP15
      00025B E4               [12] 1150 	clr	a
      00025C 33               [12] 1151 	rlc	a
      00025D FE               [12] 1152 	mov	r6,a
      00025E 85*00 82         [24] 1153 	mov	dpl,_ring_swd_half_period_us
      000261 85*01 83         [24] 1154 	mov	dph,(_ring_swd_half_period_us + 1)
      000264 C0 06            [24] 1155 	push	ar6
      000266 12r00r00         [24] 1156 	lcall	_DLY_us
                                   1157 ;	assignBit
      000269 D2 96            [12] 1158 	setb	_PP16
      00026B 85*00 82         [24] 1159 	mov	dpl,_ring_swd_half_period_us
      00026E 85*01 83         [24] 1160 	mov	dph,(_ring_swd_half_period_us + 1)
      000271 12r00r00         [24] 1161 	lcall	_DLY_us
                                   1162 ;	assignBit
      000274 C2 96            [12] 1163 	clr	_PP16
                                   1164 ;	src/dap.c:139: ack = bits << 0;
                                   1165 ;	src/dap.c:140: SWD_READ_BIT(bits);
      000276 A2 95            [12] 1166 	mov	c,_PP15
      000278 E4               [12] 1167 	clr	a
      000279 33               [12] 1168 	rlc	a
      00027A FD               [12] 1169 	mov	r5,a
      00027B 85*00 82         [24] 1170 	mov	dpl,_ring_swd_half_period_us
      00027E 85*01 83         [24] 1171 	mov	dph,(_ring_swd_half_period_us + 1)
      000281 C0 05            [24] 1172 	push	ar5
      000283 12r00r00         [24] 1173 	lcall	_DLY_us
                                   1174 ;	assignBit
      000286 D2 96            [12] 1175 	setb	_PP16
      000288 85*00 82         [24] 1176 	mov	dpl,_ring_swd_half_period_us
      00028B 85*01 83         [24] 1177 	mov	dph,(_ring_swd_half_period_us + 1)
      00028E 12r00r00         [24] 1178 	lcall	_DLY_us
      000291 D0 05            [24] 1179 	pop	ar5
      000293 D0 06            [24] 1180 	pop	ar6
                                   1181 ;	assignBit
      000295 C2 96            [12] 1182 	clr	_PP16
                                   1183 ;	src/dap.c:141: ack |= bits << 1;
      000297 ED               [12] 1184 	mov	a,r5
      000298 2D               [12] 1185 	add	a,r5
      000299 FD               [12] 1186 	mov	r5,a
      00029A EE               [12] 1187 	mov	a,r6
      00029B 42 05            [12] 1188 	orl	ar5,a
                                   1189 ;	src/dap.c:142: SWD_READ_BIT(bits);
      00029D A2 95            [12] 1190 	mov	c,_PP15
      00029F E4               [12] 1191 	clr	a
      0002A0 33               [12] 1192 	rlc	a
      0002A1 FE               [12] 1193 	mov	r6,a
      0002A2 85*00 82         [24] 1194 	mov	dpl,_ring_swd_half_period_us
      0002A5 85*01 83         [24] 1195 	mov	dph,(_ring_swd_half_period_us + 1)
      0002A8 C0 06            [24] 1196 	push	ar6
      0002AA C0 05            [24] 1197 	push	ar5
      0002AC 12r00r00         [24] 1198 	lcall	_DLY_us
                                   1199 ;	assignBit
      0002AF D2 96            [12] 1200 	setb	_PP16
      0002B1 85*00 82         [24] 1201 	mov	dpl,_ring_swd_half_period_us
      0002B4 85*01 83         [24] 1202 	mov	dph,(_ring_swd_half_period_us + 1)
      0002B7 12r00r00         [24] 1203 	lcall	_DLY_us
      0002BA D0 05            [24] 1204 	pop	ar5
      0002BC D0 06            [24] 1205 	pop	ar6
      0002BE D0 07            [24] 1206 	pop	ar7
                                   1207 ;	assignBit
      0002C0 C2 96            [12] 1208 	clr	_PP16
                                   1209 ;	src/dap.c:143: ack |= bits << 2;
      0002C2 EE               [12] 1210 	mov	a,r6
      0002C3 2E               [12] 1211 	add	a,r6
      0002C4 25 E0            [12] 1212 	add	a,acc
      0002C6 FE               [12] 1213 	mov	r6,a
      0002C7 ED               [12] 1214 	mov	a,r5
      0002C8 42 06            [12] 1215 	orl	ar6,a
                                   1216 ;	src/dap.c:145: if(ack == DAP_TRANSFER_OK) {
      0002CA BE 01 02         [24] 1217 	cjne	r6,#0x01,00245$
      0002CD 80 03            [24] 1218 	sjmp	00246$
      0002CF                       1219 00245$:
      0002CF 02r04r53         [24] 1220 	ljmp	00120$
      0002D2                       1221 00246$:
                                   1222 ;	src/dap.c:148: if(req & DAP_TRANSFER_RnW) {  // read data
      0002D2 EF               [12] 1223 	mov	a,r7
      0002D3 20 E1 03         [24] 1224 	jb	acc.1,00247$
      0002D6 02r03r8C         [24] 1225 	ljmp	00114$
      0002D9                       1226 00247$:
                                   1227 ;	src/dap.c:149: val = 0U;
      0002D9 7F 00            [12] 1228 	mov	r7,#0x00
                                   1229 ;	src/dap.c:150: parity = 0U;
      0002DB 7D 00            [12] 1230 	mov	r5,#0x00
                                   1231 ;	src/dap.c:151: for(m = 0; m < 4; m++) {
      0002DD 7C 00            [12] 1232 	mov	r4,#0x00
                                   1233 ;	src/dap.c:152: for(n = 8U; n; n--) {
      0002DF                       1234 00143$:
      0002DF 7B 08            [12] 1235 	mov	r3,#0x08
      0002E1                       1236 00127$:
                                   1237 ;	src/dap.c:153: SWD_READ_BIT(bits);     // read RDATA[0:31]
      0002E1 A2 95            [12] 1238 	mov	c,_PP15
      0002E3 E4               [12] 1239 	clr	a
      0002E4 33               [12] 1240 	rlc	a
      0002E5 FA               [12] 1241 	mov	r2,a
      0002E6 85*00 82         [24] 1242 	mov	dpl,_ring_swd_half_period_us
      0002E9 85*01 83         [24] 1243 	mov	dph,(_ring_swd_half_period_us + 1)
      0002EC C0 07            [24] 1244 	push	ar7
      0002EE C0 06            [24] 1245 	push	ar6
      0002F0 C0 05            [24] 1246 	push	ar5
      0002F2 C0 04            [24] 1247 	push	ar4
      0002F4 C0 03            [24] 1248 	push	ar3
      0002F6 C0 02            [24] 1249 	push	ar2
      0002F8 12r00r00         [24] 1250 	lcall	_DLY_us
                                   1251 ;	assignBit
      0002FB D2 96            [12] 1252 	setb	_PP16
      0002FD 85*00 82         [24] 1253 	mov	dpl,_ring_swd_half_period_us
      000300 85*01 83         [24] 1254 	mov	dph,(_ring_swd_half_period_us + 1)
      000303 12r00r00         [24] 1255 	lcall	_DLY_us
      000306 D0 02            [24] 1256 	pop	ar2
      000308 D0 03            [24] 1257 	pop	ar3
      00030A D0 04            [24] 1258 	pop	ar4
      00030C D0 05            [24] 1259 	pop	ar5
      00030E D0 06            [24] 1260 	pop	ar6
      000310 D0 07            [24] 1261 	pop	ar7
                                   1262 ;	assignBit
      000312 C2 96            [12] 1263 	clr	_PP16
                                   1264 ;	src/dap.c:154: parity += bits;
      000314 EA               [12] 1265 	mov	a,r2
      000315 2D               [12] 1266 	add	a,r5
      000316 FD               [12] 1267 	mov	r5,a
                                   1268 ;	src/dap.c:155: val >>= 1;
      000317 EF               [12] 1269 	mov	a,r7
      000318 C3               [12] 1270 	clr	c
      000319 13               [12] 1271 	rrc	a
      00031A FF               [12] 1272 	mov	r7,a
                                   1273 ;	src/dap.c:156: if(bits) val |= 0x80;
      00031B EA               [12] 1274 	mov	a,r2
      00031C 60 03            [24] 1275 	jz	00128$
      00031E 43 07 80         [24] 1276 	orl	ar7,#0x80
      000321                       1277 00128$:
                                   1278 ;	src/dap.c:152: for(n = 8U; n; n--) {
      000321 DB BE            [24] 1279 	djnz	r3,00127$
                                   1280 ;	src/dap.c:158: if(data) data[m] = val;
      000323 E5*08            [12] 1281 	mov	a,_SWD_Transfer_PARM_2
      000325 45*09            [12] 1282 	orl	a,(_SWD_Transfer_PARM_2 + 1)
      000327 60 0C            [24] 1283 	jz	00130$
      000329 EC               [12] 1284 	mov	a,r4
      00032A 25*08            [12] 1285 	add	a,_SWD_Transfer_PARM_2
      00032C F5 82            [12] 1286 	mov	dpl,a
      00032E E4               [12] 1287 	clr	a
      00032F 35*09            [12] 1288 	addc	a,(_SWD_Transfer_PARM_2 + 1)
      000331 F5 83            [12] 1289 	mov	dph,a
      000333 EF               [12] 1290 	mov	a,r7
      000334 F0               [24] 1291 	movx	@dptr,a
      000335                       1292 00130$:
                                   1293 ;	src/dap.c:151: for(m = 0; m < 4; m++) {
      000335 0C               [12] 1294 	inc	r4
      000336 BC 04 00         [24] 1295 	cjne	r4,#0x04,00251$
      000339                       1296 00251$:
      000339 40 A4            [24] 1297 	jc	00143$
                                   1298 ;	src/dap.c:160: SWD_READ_BIT(bits);         // read parity
      00033B A2 95            [12] 1299 	mov	c,_PP15
      00033D E4               [12] 1300 	clr	a
      00033E 33               [12] 1301 	rlc	a
      00033F FF               [12] 1302 	mov	r7,a
      000340 85*00 82         [24] 1303 	mov	dpl,_ring_swd_half_period_us
      000343 85*01 83         [24] 1304 	mov	dph,(_ring_swd_half_period_us + 1)
      000346 C0 07            [24] 1305 	push	ar7
      000348 C0 06            [24] 1306 	push	ar6
      00034A C0 05            [24] 1307 	push	ar5
      00034C 12r00r00         [24] 1308 	lcall	_DLY_us
                                   1309 ;	assignBit
      00034F D2 96            [12] 1310 	setb	_PP16
      000351 85*00 82         [24] 1311 	mov	dpl,_ring_swd_half_period_us
      000354 85*01 83         [24] 1312 	mov	dph,(_ring_swd_half_period_us + 1)
      000357 12r00r00         [24] 1313 	lcall	_DLY_us
      00035A D0 05            [24] 1314 	pop	ar5
      00035C D0 06            [24] 1315 	pop	ar6
      00035E D0 07            [24] 1316 	pop	ar7
                                   1317 ;	assignBit
      000360 C2 96            [12] 1318 	clr	_PP16
                                   1319 ;	src/dap.c:161: if((parity ^ bits) & 1U)
      000362 EF               [12] 1320 	mov	a,r7
      000363 6D               [12] 1321 	xrl	a,r5
      000364 30 E0 02         [24] 1322 	jnb	acc.0,00108$
                                   1323 ;	src/dap.c:162: ack = DAP_TRANSFER_ERROR;
      000367 7E 08            [12] 1324 	mov	r6,#0x08
      000369                       1325 00108$:
                                   1326 ;	src/dap.c:165: SWD_CLOCK_CYCLE();
      000369 85*00 82         [24] 1327 	mov	dpl,_ring_swd_half_period_us
      00036C 85*01 83         [24] 1328 	mov	dph,(_ring_swd_half_period_us + 1)
      00036F C0 06            [24] 1329 	push	ar6
      000371 12r00r00         [24] 1330 	lcall	_DLY_us
                                   1331 ;	assignBit
      000374 D2 96            [12] 1332 	setb	_PP16
      000376 85*00 82         [24] 1333 	mov	dpl,_ring_swd_half_period_us
      000379 85*01 83         [24] 1334 	mov	dph,(_ring_swd_half_period_us + 1)
      00037C 12r00r00         [24] 1335 	lcall	_DLY_us
      00037F D0 06            [24] 1336 	pop	ar6
                                   1337 ;	assignBit
      000381 C2 96            [12] 1338 	clr	_PP16
                                   1339 ;	src/dap.c:166: SWD_OUT_ENABLE();
      000383 43 92 20         [24] 1340 	orl	_P1_MOD_OC,#0x20
      000386 53 93 DF         [24] 1341 	anl	_P1_DIR_PU,#0xdf
      000389 02r04r22         [24] 1342 	ljmp	00115$
      00038C                       1343 00114$:
                                   1344 ;	src/dap.c:170: SWD_CLOCK_CYCLE();
      00038C 85*00 82         [24] 1345 	mov	dpl,_ring_swd_half_period_us
      00038F 85*01 83         [24] 1346 	mov	dph,(_ring_swd_half_period_us + 1)
      000392 C0 06            [24] 1347 	push	ar6
      000394 12r00r00         [24] 1348 	lcall	_DLY_us
                                   1349 ;	assignBit
      000397 D2 96            [12] 1350 	setb	_PP16
      000399 85*00 82         [24] 1351 	mov	dpl,_ring_swd_half_period_us
      00039C 85*01 83         [24] 1352 	mov	dph,(_ring_swd_half_period_us + 1)
      00039F 12r00r00         [24] 1353 	lcall	_DLY_us
      0003A2 D0 06            [24] 1354 	pop	ar6
                                   1355 ;	assignBit
      0003A4 C2 96            [12] 1356 	clr	_PP16
                                   1357 ;	src/dap.c:171: SWD_OUT_ENABLE();
      0003A6 43 92 20         [24] 1358 	orl	_P1_MOD_OC,#0x20
      0003A9 53 93 DF         [24] 1359 	anl	_P1_DIR_PU,#0xdf
                                   1360 ;	src/dap.c:175: for(m = 0; m < 4; m++) {
      0003AC 7F 00            [12] 1361 	mov	r7,#0x00
      0003AE 7D 00            [12] 1362 	mov	r5,#0x00
      0003B0                       1363 00133$:
                                   1364 ;	src/dap.c:176: val = data[m];
      0003B0 ED               [12] 1365 	mov	a,r5
      0003B1 25*08            [12] 1366 	add	a,_SWD_Transfer_PARM_2
      0003B3 F5 82            [12] 1367 	mov	dpl,a
      0003B5 E4               [12] 1368 	clr	a
      0003B6 35*09            [12] 1369 	addc	a,(_SWD_Transfer_PARM_2 + 1)
      0003B8 F5 83            [12] 1370 	mov	dph,a
      0003BA E0               [24] 1371 	movx	a,@dptr
      0003BB FC               [12] 1372 	mov	r4,a
                                   1373 ;	src/dap.c:177: ACC = val;
      0003BC 8C E0            [24] 1374 	mov	_ACC,r4
                                   1375 ;	src/dap.c:178: if(P) parity++;
      0003BE 30 D0 01         [24] 1376 	jnb	_P,00150$
      0003C1 0F               [12] 1377 	inc	r7
                                   1378 ;	src/dap.c:179: for(n = 8U; n; n--) {
      0003C2                       1379 00150$:
      0003C2 7B 08            [12] 1380 	mov	r3,#0x08
      0003C4                       1381 00131$:
                                   1382 ;	src/dap.c:180: SWD_WRITE_BIT(val);
      0003C4 EC               [12] 1383 	mov	a,r4
      0003C5 54 01            [12] 1384 	anl	a,#0x01
                                   1385 ;	assignBit
      0003C7 24 FF            [12] 1386 	add	a,#0xff
      0003C9 92 95            [24] 1387 	mov	_PP15,c
      0003CB 85*00 82         [24] 1388 	mov	dpl,_ring_swd_half_period_us
      0003CE 85*01 83         [24] 1389 	mov	dph,(_ring_swd_half_period_us + 1)
      0003D1 C0 07            [24] 1390 	push	ar7
      0003D3 C0 06            [24] 1391 	push	ar6
      0003D5 C0 05            [24] 1392 	push	ar5
      0003D7 C0 04            [24] 1393 	push	ar4
      0003D9 C0 03            [24] 1394 	push	ar3
      0003DB 12r00r00         [24] 1395 	lcall	_DLY_us
                                   1396 ;	assignBit
      0003DE D2 96            [12] 1397 	setb	_PP16
      0003E0 85*00 82         [24] 1398 	mov	dpl,_ring_swd_half_period_us
      0003E3 85*01 83         [24] 1399 	mov	dph,(_ring_swd_half_period_us + 1)
      0003E6 12r00r00         [24] 1400 	lcall	_DLY_us
      0003E9 D0 03            [24] 1401 	pop	ar3
      0003EB D0 04            [24] 1402 	pop	ar4
      0003ED D0 05            [24] 1403 	pop	ar5
      0003EF D0 06            [24] 1404 	pop	ar6
      0003F1 D0 07            [24] 1405 	pop	ar7
                                   1406 ;	assignBit
      0003F3 C2 96            [12] 1407 	clr	_PP16
                                   1408 ;	src/dap.c:181: val >>= 1;
      0003F5 EC               [12] 1409 	mov	a,r4
      0003F6 C3               [12] 1410 	clr	c
      0003F7 13               [12] 1411 	rrc	a
      0003F8 FC               [12] 1412 	mov	r4,a
                                   1413 ;	src/dap.c:179: for(n = 8U; n; n--) {
      0003F9 DB C9            [24] 1414 	djnz	r3,00131$
                                   1415 ;	src/dap.c:175: for(m = 0; m < 4; m++) {
      0003FB 0D               [12] 1416 	inc	r5
      0003FC BD 04 00         [24] 1417 	cjne	r5,#0x04,00256$
      0003FF                       1418 00256$:
      0003FF 40 AF            [24] 1419 	jc	00133$
                                   1420 ;	src/dap.c:184: SWD_WRITE_BIT(parity);      // write parity bit
      000401 EF               [12] 1421 	mov	a,r7
      000402 54 01            [12] 1422 	anl	a,#0x01
                                   1423 ;	assignBit
      000404 24 FF            [12] 1424 	add	a,#0xff
      000406 92 95            [24] 1425 	mov	_PP15,c
      000408 85*00 82         [24] 1426 	mov	dpl,_ring_swd_half_period_us
      00040B 85*01 83         [24] 1427 	mov	dph,(_ring_swd_half_period_us + 1)
      00040E C0 06            [24] 1428 	push	ar6
      000410 12r00r00         [24] 1429 	lcall	_DLY_us
                                   1430 ;	assignBit
      000413 D2 96            [12] 1431 	setb	_PP16
      000415 85*00 82         [24] 1432 	mov	dpl,_ring_swd_half_period_us
      000418 85*01 83         [24] 1433 	mov	dph,(_ring_swd_half_period_us + 1)
      00041B 12r00r00         [24] 1434 	lcall	_DLY_us
      00041E D0 06            [24] 1435 	pop	ar6
                                   1436 ;	assignBit
      000420 C2 96            [12] 1437 	clr	_PP16
      000422                       1438 00115$:
                                   1439 ;	src/dap.c:187: SWD_SET(0);
                                   1440 ;	assignBit
      000422 C2 95            [12] 1441 	clr	_PP15
                                   1442 ;	src/dap.c:188: n = idle_cycles;
      000424 78r00            [12] 1443 	mov	r0,#_idle_cycles
                                   1444 ;	src/dap.c:189: if(n) {
      000426 E6               [12] 1445 	mov	a,@r0
      000427 FF               [12] 1446 	mov	r7,a
      000428 60 24            [24] 1447 	jz	00118$
                                   1448 ;	src/dap.c:190: for(; n; n--) SWD_CLOCK_CYCLE();
      00042A                       1449 00136$:
      00042A EF               [12] 1450 	mov	a,r7
      00042B 60 21            [24] 1451 	jz	00118$
      00042D 85*00 82         [24] 1452 	mov	dpl,_ring_swd_half_period_us
      000430 85*01 83         [24] 1453 	mov	dph,(_ring_swd_half_period_us + 1)
      000433 C0 07            [24] 1454 	push	ar7
      000435 C0 06            [24] 1455 	push	ar6
      000437 12r00r00         [24] 1456 	lcall	_DLY_us
                                   1457 ;	assignBit
      00043A D2 96            [12] 1458 	setb	_PP16
      00043C 85*00 82         [24] 1459 	mov	dpl,_ring_swd_half_period_us
      00043F 85*01 83         [24] 1460 	mov	dph,(_ring_swd_half_period_us + 1)
      000442 12r00r00         [24] 1461 	lcall	_DLY_us
      000445 D0 06            [24] 1462 	pop	ar6
      000447 D0 07            [24] 1463 	pop	ar7
                                   1464 ;	assignBit
      000449 C2 96            [12] 1465 	clr	_PP16
      00044B 1F               [12] 1466 	dec	r7
      00044C 80 DC            [24] 1467 	sjmp	00136$
      00044E                       1468 00118$:
                                   1469 ;	src/dap.c:192: SWD_SET(1);
                                   1470 ;	assignBit
      00044E D2 95            [12] 1471 	setb	_PP15
                                   1472 ;	src/dap.c:193: return(ack);
      000450 8E 82            [24] 1473 	mov	dpl,r6
      000452 22               [24] 1474 	ret
      000453                       1475 00120$:
                                   1476 ;	src/dap.c:196: if((ack == DAP_TRANSFER_WAIT) || (ack == DAP_TRANSFER_FAULT)) {
      000453 BE 02 02         [24] 1477 	cjne	r6,#0x02,00260$
      000456 80 03            [24] 1478 	sjmp	00121$
      000458                       1479 00260$:
      000458 BE 04 25         [24] 1480 	cjne	r6,#0x04,00157$
      00045B                       1481 00121$:
                                   1482 ;	src/dap.c:198: SWD_CLOCK_CYCLE();
      00045B 85*00 82         [24] 1483 	mov	dpl,_ring_swd_half_period_us
      00045E 85*01 83         [24] 1484 	mov	dph,(_ring_swd_half_period_us + 1)
      000461 C0 06            [24] 1485 	push	ar6
      000463 12r00r00         [24] 1486 	lcall	_DLY_us
                                   1487 ;	assignBit
      000466 D2 96            [12] 1488 	setb	_PP16
      000468 85*00 82         [24] 1489 	mov	dpl,_ring_swd_half_period_us
      00046B 85*01 83         [24] 1490 	mov	dph,(_ring_swd_half_period_us + 1)
      00046E 12r00r00         [24] 1491 	lcall	_DLY_us
      000471 D0 06            [24] 1492 	pop	ar6
                                   1493 ;	assignBit
      000473 C2 96            [12] 1494 	clr	_PP16
                                   1495 ;	src/dap.c:199: SWD_OUT_ENABLE();
      000475 43 92 20         [24] 1496 	orl	_P1_MOD_OC,#0x20
      000478 53 93 DF         [24] 1497 	anl	_P1_DIR_PU,#0xdf
                                   1498 ;	src/dap.c:200: SWD_SET(1);
                                   1499 ;	assignBit
      00047B D2 95            [12] 1500 	setb	_PP15
                                   1501 ;	src/dap.c:201: return(ack);
      00047D 8E 82            [24] 1502 	mov	dpl,r6
                                   1503 ;	src/dap.c:206: do {
      00047F 22               [24] 1504 	ret
      000480                       1505 00157$:
      000480 7F 22            [12] 1506 	mov	r7,#0x22
      000482                       1507 00124$:
                                   1508 ;	src/dap.c:207: SWD_CLOCK_CYCLE();            // back off data phase
      000482 85*00 82         [24] 1509 	mov	dpl,_ring_swd_half_period_us
      000485 85*01 83         [24] 1510 	mov	dph,(_ring_swd_half_period_us + 1)
      000488 C0 07            [24] 1511 	push	ar7
      00048A C0 06            [24] 1512 	push	ar6
      00048C 12r00r00         [24] 1513 	lcall	_DLY_us
                                   1514 ;	assignBit
      00048F D2 96            [12] 1515 	setb	_PP16
      000491 85*00 82         [24] 1516 	mov	dpl,_ring_swd_half_period_us
      000494 85*01 83         [24] 1517 	mov	dph,(_ring_swd_half_period_us + 1)
      000497 12r00r00         [24] 1518 	lcall	_DLY_us
      00049A D0 06            [24] 1519 	pop	ar6
      00049C D0 07            [24] 1520 	pop	ar7
                                   1521 ;	assignBit
      00049E C2 96            [12] 1522 	clr	_PP16
                                   1523 ;	src/dap.c:208: } while(--n);
      0004A0 DF E0            [24] 1524 	djnz	r7,00124$
                                   1525 ;	src/dap.c:210: SWD_OUT_ENABLE();
      0004A2 43 92 20         [24] 1526 	orl	_P1_MOD_OC,#0x20
      0004A5 53 93 DF         [24] 1527 	anl	_P1_DIR_PU,#0xdf
                                   1528 ;	src/dap.c:211: SWD_SET(1);
                                   1529 ;	assignBit
      0004A8 D2 95            [12] 1530 	setb	_PP15
                                   1531 ;	src/dap.c:212: return(ack);
      0004AA 8E 82            [24] 1532 	mov	dpl,r6
                                   1533 ;	src/dap.c:213: }
      0004AC 22               [24] 1534 	ret
                                   1535 ;------------------------------------------------------------
                                   1536 ;Allocation info for local variables in function 'DAP_Info'
                                   1537 ;------------------------------------------------------------
                                   1538 ;info                      Allocated with name '_DAP_Info_PARM_2'
                                   1539 ;id                        Allocated to registers r7 
                                   1540 ;length                    Allocated to registers r6 
                                   1541 ;------------------------------------------------------------
                                   1542 ;	src/dap.c:221: static uint8_t DAP_Info(uint8_t id, __xdata uint8_t *info) {
                                   1543 ;	-----------------------------------------
                                   1544 ;	 function DAP_Info
                                   1545 ;	-----------------------------------------
      0004AD                       1546 _DAP_Info:
      0004AD AF 82            [24] 1547 	mov	r7,dpl
                                   1548 ;	src/dap.c:222: uint8_t length = 0U;
      0004AF 7E 00            [12] 1549 	mov	r6,#0x00
                                   1550 ;	src/dap.c:223: switch(id) {
      0004B1 BF 04 02         [24] 1551 	cjne	r7,#0x04,00125$
      0004B4 80 0F            [24] 1552 	sjmp	00101$
      0004B6                       1553 00125$:
      0004B6 BF F0 02         [24] 1554 	cjne	r7,#0xf0,00126$
      0004B9 80 2A            [24] 1555 	sjmp	00102$
      0004BB                       1556 00126$:
      0004BB BF FE 02         [24] 1557 	cjne	r7,#0xfe,00127$
      0004BE 80 48            [24] 1558 	sjmp	00104$
      0004C0                       1559 00127$:
                                   1560 ;	src/dap.c:224: case DAP_ID_FW_VER:
      0004C0 BF FF 50         [24] 1561 	cjne	r7,#0xff,00106$
      0004C3 80 2D            [24] 1562 	sjmp	00103$
      0004C5                       1563 00101$:
                                   1564 ;	src/dap.c:225: length = (uint8_t)sizeof(DAP_FW_VER);
      0004C5 7E 06            [12] 1565 	mov	r6,#0x06
                                   1566 ;	src/dap.c:226: strcpy(info, DAP_FW_VER );
      0004C7 AC*0A            [24] 1567 	mov	r4,_DAP_Info_PARM_2
      0004C9 AD*0B            [24] 1568 	mov	r5,(_DAP_Info_PARM_2 + 1)
      0004CB 7F 00            [12] 1569 	mov	r7,#0x00
      0004CD 75*00r00         [24] 1570 	mov	_strcpy_PARM_2,#__str_0
      0004D0 75*01s00         [24] 1571 	mov	(_strcpy_PARM_2 + 1),#(__str_0 >> 8)
      0004D3 75*02 80         [24] 1572 	mov	(_strcpy_PARM_2 + 2),#0x80
      0004D6 8C 82            [24] 1573 	mov	dpl,r4
      0004D8 8D 83            [24] 1574 	mov	dph,r5
      0004DA 8F F0            [24] 1575 	mov	b,r7
      0004DC C0 06            [24] 1576 	push	ar6
      0004DE 12r00r00         [24] 1577 	lcall	_strcpy
      0004E1 D0 06            [24] 1578 	pop	ar6
                                   1579 ;	src/dap.c:227: break;
                                   1580 ;	src/dap.c:228: case DAP_ID_CAPABILITIES:
      0004E3 80 2E            [24] 1581 	sjmp	00106$
      0004E5                       1582 00102$:
                                   1583 ;	src/dap.c:229: info[0] = DAP_PORT_SWD;
      0004E5 85*0A 82         [24] 1584 	mov	dpl,_DAP_Info_PARM_2
      0004E8 85*0B 83         [24] 1585 	mov	dph,(_DAP_Info_PARM_2 + 1)
      0004EB 74 01            [12] 1586 	mov	a,#0x01
      0004ED F0               [24] 1587 	movx	@dptr,a
                                   1588 ;	src/dap.c:230: length = 1U;
      0004EE 7E 01            [12] 1589 	mov	r6,#0x01
                                   1590 ;	src/dap.c:231: break;
                                   1591 ;	src/dap.c:232: case DAP_ID_PACKET_SIZE:
      0004F0 80 21            [24] 1592 	sjmp	00106$
      0004F2                       1593 00103$:
                                   1594 ;	src/dap.c:233: info[0] = DAP_PACKET_SIZE;
      0004F2 AD*0A            [24] 1595 	mov	r5,_DAP_Info_PARM_2
      0004F4 AF*0B            [24] 1596 	mov	r7,(_DAP_Info_PARM_2 + 1)
      0004F6 8D 82            [24] 1597 	mov	dpl,r5
      0004F8 8F 83            [24] 1598 	mov	dph,r7
      0004FA 74 40            [12] 1599 	mov	a,#0x40
      0004FC F0               [24] 1600 	movx	@dptr,a
                                   1601 ;	src/dap.c:234: info[1] = 0;
      0004FD 8D 82            [24] 1602 	mov	dpl,r5
      0004FF 8F 83            [24] 1603 	mov	dph,r7
      000501 A3               [24] 1604 	inc	dptr
      000502 E4               [12] 1605 	clr	a
      000503 F0               [24] 1606 	movx	@dptr,a
                                   1607 ;	src/dap.c:235: length = 2U;
      000504 7E 02            [12] 1608 	mov	r6,#0x02
                                   1609 ;	src/dap.c:236: break;
                                   1610 ;	src/dap.c:237: case DAP_ID_PACKET_COUNT:
      000506 80 0B            [24] 1611 	sjmp	00106$
      000508                       1612 00104$:
                                   1613 ;	src/dap.c:238: info[0] = DAP_PACKET_COUNT;
      000508 85*0A 82         [24] 1614 	mov	dpl,_DAP_Info_PARM_2
      00050B 85*0B 83         [24] 1615 	mov	dph,(_DAP_Info_PARM_2 + 1)
      00050E 74 01            [12] 1616 	mov	a,#0x01
      000510 F0               [24] 1617 	movx	@dptr,a
                                   1618 ;	src/dap.c:239: length = 1U;
      000511 7E 01            [12] 1619 	mov	r6,#0x01
                                   1620 ;	src/dap.c:243: }
      000513                       1621 00106$:
                                   1622 ;	src/dap.c:244: return length;
      000513 8E 82            [24] 1623 	mov	dpl,r6
                                   1624 ;	src/dap.c:245: }
      000515 22               [24] 1625 	ret
                                   1626 ;------------------------------------------------------------
                                   1627 ;Allocation info for local variables in function 'DAP_HostStatus'
                                   1628 ;------------------------------------------------------------
                                   1629 ;res                       Allocated with name '_DAP_HostStatus_PARM_2'
                                   1630 ;req                       Allocated to registers r6 r7 
                                   1631 ;------------------------------------------------------------
                                   1632 ;	src/dap.c:253: static uint8_t DAP_HostStatus(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   1633 ;	-----------------------------------------
                                   1634 ;	 function DAP_HostStatus
                                   1635 ;	-----------------------------------------
      000516                       1636 _DAP_HostStatus:
      000516 AE 82            [24] 1637 	mov	r6,dpl
      000518 AF 83            [24] 1638 	mov	r7,dph
                                   1639 ;	src/dap.c:254: *res = DAP_OK;
      00051A AC*00            [24] 1640 	mov	r4,_DAP_HostStatus_PARM_2
      00051C AD*01            [24] 1641 	mov	r5,(_DAP_HostStatus_PARM_2 + 1)
      00051E 8C 82            [24] 1642 	mov	dpl,r4
      000520 8D 83            [24] 1643 	mov	dph,r5
      000522 E4               [12] 1644 	clr	a
      000523 F0               [24] 1645 	movx	@dptr,a
                                   1646 ;	src/dap.c:255: switch(*req) {
      000524 8E 82            [24] 1647 	mov	dpl,r6
      000526 8F 83            [24] 1648 	mov	dph,r7
      000528 E0               [24] 1649 	movx	a,@dptr
      000529 FF               [12] 1650 	mov	r7,a
      00052A 60 0C            [24] 1651 	jz	00104$
      00052C BF 01 02         [24] 1652 	cjne	r7,#0x01,00116$
      00052F 80 07            [24] 1653 	sjmp	00104$
      000531                       1654 00116$:
                                   1655 ;	src/dap.c:263: *res = DAP_ERROR;
      000531 8C 82            [24] 1656 	mov	dpl,r4
      000533 8D 83            [24] 1657 	mov	dph,r5
      000535 74 FF            [12] 1658 	mov	a,#0xff
      000537 F0               [24] 1659 	movx	@dptr,a
                                   1660 ;	src/dap.c:264: }
      000538                       1661 00104$:
                                   1662 ;	src/dap.c:265: return 1;
      000538 75 82 01         [24] 1663 	mov	dpl,#0x01
                                   1664 ;	src/dap.c:266: }
      00053B 22               [24] 1665 	ret
                                   1666 ;------------------------------------------------------------
                                   1667 ;Allocation info for local variables in function 'DAP_Connect'
                                   1668 ;------------------------------------------------------------
                                   1669 ;res                       Allocated with name '_DAP_Connect_PARM_2'
                                   1670 ;req                       Allocated to registers r6 r7 
                                   1671 ;port                      Allocated to registers r6 
                                   1672 ;------------------------------------------------------------
                                   1673 ;	src/dap.c:275: static uint8_t DAP_Connect(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   1674 ;	-----------------------------------------
                                   1675 ;	 function DAP_Connect
                                   1676 ;	-----------------------------------------
      00053C                       1677 _DAP_Connect:
                                   1678 ;	src/dap.c:277: if(*req == DAP_PORT_AUTODETECT) port = DAP_DEFAULT_PORT;
      00053C E0               [24] 1679 	movx	a,@dptr
      00053D FF               [12] 1680 	mov	r7,a
      00053E 70 04            [24] 1681 	jnz	00102$
      000540 7E 01            [12] 1682 	mov	r6,#0x01
      000542 80 02            [24] 1683 	sjmp	00103$
      000544                       1684 00102$:
                                   1685 ;	src/dap.c:278: else port = *req;
      000544 8F 06            [24] 1686 	mov	ar6,r7
      000546                       1687 00103$:
                                   1688 ;	src/dap.c:280: switch(port) {
      000546 BE 01 25         [24] 1689 	cjne	r6,#0x01,00108$
                                   1690 ;	src/dap.c:282: debug_port = DAP_PORT_SWD;
      000549 78r01            [12] 1691 	mov	r0,#_debug_port
      00054B 76 01            [12] 1692 	mov	@r0,#0x01
                                   1693 ;	src/dap.c:283: PORT_SWD_CONNECT();
                                   1694 ;	assignBit
      00054D C2 94            [12] 1695 	clr	_PP14
      00054F 75 82 01         [24] 1696 	mov	dpl,#0x01
      000552 C0 06            [24] 1697 	push	ar6
      000554 12r00r00         [24] 1698 	lcall	_ring_probe_reset
                                   1699 ;	assignBit
      000557 D2 95            [12] 1700 	setb	_PP15
      000559 43 92 20         [24] 1701 	orl	_P1_MOD_OC,#0x20
      00055C 53 93 DF         [24] 1702 	anl	_P1_DIR_PU,#0xdf
                                   1703 ;	assignBit
      00055F C2 96            [12] 1704 	clr	_PP16
      000561 53 92 BF         [24] 1705 	anl	_P1_MOD_OC,#0xbf
      000564 43 93 40         [24] 1706 	orl	_P1_DIR_PU,#0x40
      000567 12r00r00         [24] 1707 	lcall	_ring_probe_enable
      00056A D0 06            [24] 1708 	pop	ar6
                                   1709 ;	src/dap.c:284: break;
                                   1710 ;	src/dap.c:285: default:
      00056C 80 02            [24] 1711 	sjmp	00109$
      00056E                       1712 00108$:
                                   1713 ;	src/dap.c:286: port = DAP_PORT_DISABLED;
      00056E 7E 00            [12] 1714 	mov	r6,#0x00
                                   1715 ;	src/dap.c:288: }
      000570                       1716 00109$:
                                   1717 ;	src/dap.c:290: *res = port;
      000570 85*0C 82         [24] 1718 	mov	dpl,_DAP_Connect_PARM_2
      000573 85*0D 83         [24] 1719 	mov	dph,(_DAP_Connect_PARM_2 + 1)
      000576 EE               [12] 1720 	mov	a,r6
      000577 F0               [24] 1721 	movx	@dptr,a
                                   1722 ;	src/dap.c:291: return 1;
      000578 75 82 01         [24] 1723 	mov	dpl,#0x01
                                   1724 ;	src/dap.c:292: }
      00057B 22               [24] 1725 	ret
                                   1726 ;------------------------------------------------------------
                                   1727 ;Allocation info for local variables in function 'DAP_Disconnect'
                                   1728 ;------------------------------------------------------------
                                   1729 ;res                       Allocated to registers r6 r7 
                                   1730 ;------------------------------------------------------------
                                   1731 ;	src/dap.c:299: static uint8_t DAP_Disconnect(__xdata uint8_t *res) {
                                   1732 ;	-----------------------------------------
                                   1733 ;	 function DAP_Disconnect
                                   1734 ;	-----------------------------------------
      00057C                       1735 _DAP_Disconnect:
                                   1736 ;	src/dap.c:300: *res = DAP_OK;
      00057C E4               [12] 1737 	clr	a
      00057D F0               [24] 1738 	movx	@dptr,a
                                   1739 ;	src/dap.c:301: debug_port = DAP_PORT_DISABLED;
      00057E 78r01            [12] 1740 	mov	r0,#_debug_port
      000580 76 00            [12] 1741 	mov	@r0,#0x00
                                   1742 ;	src/dap.c:302: PORT_SWD_DISCONNECT();
                                   1743 ;	assignBit
      000582 C2 94            [12] 1744 	clr	_PP14
      000584 75 82 01         [24] 1745 	mov	dpl,#0x01
      000587 12r00r00         [24] 1746 	lcall	_ring_probe_reset
      00058A 53 93 DF         [24] 1747 	anl	_P1_DIR_PU,#0xdf
      00058D 53 92 DF         [24] 1748 	anl	_P1_MOD_OC,#0xdf
      000590 53 93 BF         [24] 1749 	anl	_P1_DIR_PU,#0xbf
      000593 53 92 BF         [24] 1750 	anl	_P1_MOD_OC,#0xbf
                                   1751 ;	src/dap.c:303: return 1;
      000596 75 82 01         [24] 1752 	mov	dpl,#0x01
                                   1753 ;	src/dap.c:304: }
      000599 22               [24] 1754 	ret
                                   1755 ;------------------------------------------------------------
                                   1756 ;Allocation info for local variables in function 'DAP_SWJ_Pins'
                                   1757 ;------------------------------------------------------------
                                   1758 ;res                       Allocated with name '_DAP_SWJ_Pins_PARM_2'
                                   1759 ;req                       Allocated to registers r6 r7 
                                   1760 ;value                     Allocated to registers r7 
                                   1761 ;select                    Allocated to registers r4 
                                   1762 ;wait                      Allocated to registers r3 r2 
                                   1763 ;sloc0                     Allocated with name '_DAP_SWJ_Pins_sloc0_1_0'
                                   1764 ;sloc1                     Allocated with name '_DAP_SWJ_Pins_sloc1_1_0'
                                   1765 ;sloc2                     Allocated with name '_DAP_SWJ_Pins_sloc2_1_0'
                                   1766 ;sloc4                     Allocated with name '_DAP_SWJ_Pins_sloc4_1_0'
                                   1767 ;------------------------------------------------------------
                                   1768 ;	src/dap.c:312: static uint8_t DAP_SWJ_Pins(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   1769 ;	-----------------------------------------
                                   1770 ;	 function DAP_SWJ_Pins
                                   1771 ;	-----------------------------------------
      00059A                       1772 _DAP_SWJ_Pins:
                                   1773 ;	src/dap.c:317: value = * (req + 0);
      00059A AE 82            [24] 1774 	mov	r6,dpl
      00059C AF 83            [24] 1775 	mov  r7,dph
      00059E E0               [24] 1776 	movx	a,@dptr
      00059F FD               [12] 1777 	mov	r5,a
                                   1778 ;	src/dap.c:318: select = (uint8_t) * (req + 1);
      0005A0 8E 82            [24] 1779 	mov	dpl,r6
      0005A2 8F 83            [24] 1780 	mov	dph,r7
      0005A4 A3               [24] 1781 	inc	dptr
      0005A5 E0               [24] 1782 	movx	a,@dptr
      0005A6 FC               [12] 1783 	mov	r4,a
                                   1784 ;	src/dap.c:319: wait = (uint16_t)(*(req + 2) << 0) | (uint16_t)(*(req + 3) << 8);
      0005A7 8E 82            [24] 1785 	mov	dpl,r6
      0005A9 8F 83            [24] 1786 	mov	dph,r7
      0005AB A3               [24] 1787 	inc	dptr
      0005AC A3               [24] 1788 	inc	dptr
      0005AD E0               [24] 1789 	movx	a,@dptr
      0005AE FB               [12] 1790 	mov	r3,a
      0005AF 7A 00            [12] 1791 	mov	r2,#0x00
      0005B1 8E 82            [24] 1792 	mov	dpl,r6
      0005B3 8F 83            [24] 1793 	mov	dph,r7
      0005B5 A3               [24] 1794 	inc	dptr
      0005B6 A3               [24] 1795 	inc	dptr
      0005B7 A3               [24] 1796 	inc	dptr
      0005B8 E0               [24] 1797 	movx	a,@dptr
      0005B9 F9               [12] 1798 	mov	r1,a
      0005BA E4               [12] 1799 	clr	a
      0005BB 42 03            [12] 1800 	orl	ar3,a
      0005BD E9               [12] 1801 	mov	a,r1
      0005BE 42 02            [12] 1802 	orl	ar2,a
                                   1803 ;	src/dap.c:320: if((uint8_t)(*(req + 4)) || (uint8_t)(*(req + 5))) wait |= 0x8000;
      0005C0 74 04            [12] 1804 	mov	a,#0x04
      0005C2 2E               [12] 1805 	add	a,r6
      0005C3 F8               [12] 1806 	mov	r0,a
      0005C4 E4               [12] 1807 	clr	a
      0005C5 3F               [12] 1808 	addc	a,r7
      0005C6 F9               [12] 1809 	mov	r1,a
      0005C7 88 82            [24] 1810 	mov	dpl,r0
      0005C9 89 83            [24] 1811 	mov	dph,r1
      0005CB E0               [24] 1812 	movx	a,@dptr
      0005CC 70 0E            [24] 1813 	jnz	00101$
      0005CE 74 05            [12] 1814 	mov	a,#0x05
      0005D0 2E               [12] 1815 	add	a,r6
      0005D1 FE               [12] 1816 	mov	r6,a
      0005D2 E4               [12] 1817 	clr	a
      0005D3 3F               [12] 1818 	addc	a,r7
      0005D4 FF               [12] 1819 	mov	r7,a
      0005D5 8E 82            [24] 1820 	mov	dpl,r6
      0005D7 8F 83            [24] 1821 	mov	dph,r7
      0005D9 E0               [24] 1822 	movx	a,@dptr
      0005DA 60 0B            [24] 1823 	jz	00102$
      0005DC                       1824 00101$:
      0005DC 8B 06            [24] 1825 	mov	ar6,r3
      0005DE 8A 07            [24] 1826 	mov	ar7,r2
      0005E0 43 07 80         [24] 1827 	orl	ar7,#0x80
      0005E3 8E 03            [24] 1828 	mov	ar3,r6
      0005E5 8F 02            [24] 1829 	mov	ar2,r7
      0005E7                       1830 00102$:
                                   1831 ;	src/dap.c:322: if((select & DAP_SWJ_SWCLK_TCK_BIT) != 0U) {
      0005E7 EC               [12] 1832 	mov	a,r4
      0005E8 30 E0 12         [24] 1833 	jnb	acc.0,00105$
                                   1834 ;	src/dap.c:323: ((value & DAP_SWJ_SWCLK_TCK_BIT) != 0U) ? (SWK_SET(1)) : (SWK_SET(0));
      0005EB 8D 06            [24] 1835 	mov	ar6,r5
      0005ED 7F 00            [12] 1836 	mov	r7,#0x00
      0005EF EE               [12] 1837 	mov	a,r6
      0005F0 30 E0 06         [24] 1838 	jnb	acc.0,00129$
                                   1839 ;	assignBit
      0005F3 D2 96            [12] 1840 	setb	_PP16
      0005F5 A2 96            [12] 1841 	mov	c,_PP16
      0005F7 80 04            [24] 1842 	sjmp	00105$
      0005F9                       1843 00129$:
                                   1844 ;	assignBit
      0005F9 C2 96            [12] 1845 	clr	_PP16
      0005FB A2 96            [12] 1846 	mov	c,_PP16
      0005FD                       1847 00105$:
                                   1848 ;	src/dap.c:325: if((select & DAP_SWJ_SWDIO_TMS_BIT) != 0U) {
      0005FD EC               [12] 1849 	mov	a,r4
      0005FE 30 E1 12         [24] 1850 	jnb	acc.1,00107$
                                   1851 ;	src/dap.c:326: ((value & DAP_SWJ_SWDIO_TMS_BIT) != 0U) ? (SWD_SET(1)) : (SWD_SET(0));
      000601 8D 06            [24] 1852 	mov	ar6,r5
      000603 7F 00            [12] 1853 	mov	r7,#0x00
      000605 EE               [12] 1854 	mov	a,r6
      000606 30 E1 06         [24] 1855 	jnb	acc.1,00131$
                                   1856 ;	assignBit
      000609 D2 95            [12] 1857 	setb	_PP15
      00060B A2 95            [12] 1858 	mov	c,_PP15
      00060D 80 04            [24] 1859 	sjmp	00107$
      00060F                       1860 00131$:
                                   1861 ;	assignBit
      00060F C2 95            [12] 1862 	clr	_PP15
      000611 A2 95            [12] 1863 	mov	c,_PP15
      000613                       1864 00107$:
                                   1865 ;	src/dap.c:328: if((select & DAP_SWJ_nRESET_BIT) != 0U) {
      000613 EC               [12] 1866 	mov	a,r4
      000614 30 E7 19         [24] 1867 	jnb	acc.7,00109$
                                   1868 ;	src/dap.c:329: RST_SET(value >> DAP_SWJ_nRESET);
      000617 ED               [12] 1869 	mov	a,r5
      000618 23               [12] 1870 	rl	a
      000619 54 01            [12] 1871 	anl	a,#0x01
      00061B F5 82            [12] 1872 	mov	dpl,a
      00061D C0 05            [24] 1873 	push	ar5
      00061F C0 04            [24] 1874 	push	ar4
      000621 C0 03            [24] 1875 	push	ar3
      000623 C0 02            [24] 1876 	push	ar2
      000625 12r00r00         [24] 1877 	lcall	_ring_probe_reset
      000628 D0 02            [24] 1878 	pop	ar2
      00062A D0 03            [24] 1879 	pop	ar3
      00062C D0 04            [24] 1880 	pop	ar4
      00062E D0 05            [24] 1881 	pop	ar5
      000630                       1882 00109$:
                                   1883 ;	src/dap.c:332: if(wait != 0U) {
      000630 EB               [12] 1884 	mov	a,r3
      000631 4A               [12] 1885 	orl	a,r2
      000632 60 5B            [24] 1886 	jz	00126$
                                   1887 ;	src/dap.c:333: do {
      000634 74 02            [12] 1888 	mov	a,#0x02
      000636 5C               [12] 1889 	anl	a,r4
      000637 FE               [12] 1890 	mov	r6,a
      000638 7F 00            [12] 1891 	mov	r7,#0x00
      00063A 74 80            [12] 1892 	mov	a,#0x80
      00063C 5C               [12] 1893 	anl	a,r4
      00063D F8               [12] 1894 	mov	r0,a
      00063E 79 00            [12] 1895 	mov	r1,#0x00
      000640 ED               [12] 1896 	mov	a,r5
      000641 23               [12] 1897 	rl	a
      000642 54 01            [12] 1898 	anl	a,#0x01
      000644 F5*10            [12] 1899 	mov	_DAP_SWJ_Pins_sloc0_1_0,a
      000646 ED               [12] 1900 	mov	a,r5
      000647 C3               [12] 1901 	clr	c
      000648 13               [12] 1902 	rrc	a
      000649 F5*11            [12] 1903 	mov	_DAP_SWJ_Pins_sloc1_1_0,a
      00064B 8D*14            [24] 1904 	mov	_DAP_SWJ_Pins_sloc4_1_0,r5
      00064D 74 01            [12] 1905 	mov	a,#0x01
      00064F 5C               [12] 1906 	anl	a,r4
      000650 F5*12            [12] 1907 	mov	_DAP_SWJ_Pins_sloc2_1_0,a
                                   1908 ;	1-genFromRTrack replaced	mov	(_DAP_SWJ_Pins_sloc2_1_0 + 1),#0x00
      000652 8F*13            [24] 1909 	mov	(_DAP_SWJ_Pins_sloc2_1_0 + 1),r7
      000654 8A 04            [24] 1910 	mov	ar4,r2
      000656                       1911 00122$:
                                   1912 ;	src/dap.c:334: if((select & DAP_SWJ_SWCLK_TCK_BIT) != 0U) {
      000656 E5*12            [12] 1913 	mov	a,_DAP_SWJ_Pins_sloc2_1_0
      000658 45*13            [12] 1914 	orl	a,(_DAP_SWJ_Pins_sloc2_1_0 + 1)
      00065A 60 09            [24] 1915 	jz	00113$
                                   1916 ;	src/dap.c:335: if((value >> DAP_SWJ_SWCLK_TCK) ^ (SWK_GET())) continue;
      00065C A2 96            [12] 1917 	mov	c,_PP16
      00065E E4               [12] 1918 	clr	a
      00065F 33               [12] 1919 	rlc	a
      000660 FA               [12] 1920 	mov	r2,a
      000661 65*14            [12] 1921 	xrl	a,_DAP_SWJ_Pins_sloc4_1_0
      000663 70 1D            [24] 1922 	jnz	00123$
      000665                       1923 00113$:
                                   1924 ;	src/dap.c:337: if((select & DAP_SWJ_SWDIO_TMS_BIT) != 0U) {
      000665 EE               [12] 1925 	mov	a,r6
      000666 4F               [12] 1926 	orl	a,r7
      000667 60 09            [24] 1927 	jz	00117$
                                   1928 ;	src/dap.c:338: if((value >> DAP_SWJ_SWDIO_TMS) ^ (SWD_GET())) continue;
      000669 A2 95            [12] 1929 	mov	c,_PP15
      00066B E4               [12] 1930 	clr	a
      00066C 33               [12] 1931 	rlc	a
      00066D FA               [12] 1932 	mov	r2,a
      00066E 65*11            [12] 1933 	xrl	a,_DAP_SWJ_Pins_sloc1_1_0
      000670 70 10            [24] 1934 	jnz	00123$
      000672                       1935 00117$:
                                   1936 ;	src/dap.c:340: if((select & DAP_SWJ_nRESET_BIT) != 0U) {
      000672 E8               [12] 1937 	mov	a,r0
      000673 49               [12] 1938 	orl	a,r1
      000674 60 19            [24] 1939 	jz	00126$
                                   1940 ;	src/dap.c:341: if((value >> DAP_SWJ_nRESET) ^ (RST_GET())) continue;
      000676 A2 97            [12] 1941 	mov	c,_PP17
      000678 B3               [12] 1942 	cpl	c
      000679 92*00            [24] 1943 	mov  _DAP_SWJ_Pins_sloc3_1_0,c
      00067B E4               [12] 1944 	clr	a
      00067C 33               [12] 1945 	rlc	a
      00067D FA               [12] 1946 	mov	r2,a
      00067E 65*10            [12] 1947 	xrl	a,_DAP_SWJ_Pins_sloc0_1_0
      000680 60 0D            [24] 1948 	jz	00126$
                                   1949 ;	src/dap.c:343: break;
      000682                       1950 00123$:
                                   1951 ;	src/dap.c:344: } while(wait--);
      000682 8B 02            [24] 1952 	mov	ar2,r3
      000684 8C 05            [24] 1953 	mov	ar5,r4
      000686 1B               [12] 1954 	dec	r3
      000687 BB FF 01         [24] 1955 	cjne	r3,#0xff,00202$
      00068A 1C               [12] 1956 	dec	r4
      00068B                       1957 00202$:
      00068B EA               [12] 1958 	mov	a,r2
      00068C 4D               [12] 1959 	orl	a,r5
      00068D 70 C7            [24] 1960 	jnz	00122$
      00068F                       1961 00126$:
                                   1962 ;	src/dap.c:347: value = ((uint8_t)SWK_GET() << DAP_SWJ_SWCLK_TCK)
      00068F A2 96            [12] 1963 	mov	c,_PP16
      000691 E4               [12] 1964 	clr	a
      000692 33               [12] 1965 	rlc	a
      000693 FF               [12] 1966 	mov	r7,a
                                   1967 ;	src/dap.c:348: | ((uint8_t)SWD_GET() << DAP_SWJ_SWDIO_TMS)
      000694 A2 95            [12] 1968 	mov	c,_PP15
      000696 E4               [12] 1969 	clr	a
      000697 33               [12] 1970 	rlc	a
      000698 25 E0            [12] 1971 	add	a,acc
      00069A 42 07            [12] 1972 	orl	ar7,a
                                   1973 ;	src/dap.c:352: | ((uint8_t)RST_GET() << DAP_SWJ_nRESET);
      00069C A2 97            [12] 1974 	mov	c,_PP17
      00069E B3               [12] 1975 	cpl	c
      00069F 92*00            [24] 1976 	mov  _DAP_SWJ_Pins_sloc3_1_0,c
      0006A1 E4               [12] 1977 	clr	a
      0006A2 33               [12] 1978 	rlc	a
      0006A3 03               [12] 1979 	rr	a
      0006A4 54 80            [12] 1980 	anl	a,#0x80
      0006A6 42 07            [12] 1981 	orl	ar7,a
                                   1982 ;	src/dap.c:353: *res = value;
      0006A8 85*0E 82         [24] 1983 	mov	dpl,_DAP_SWJ_Pins_PARM_2
      0006AB 85*0F 83         [24] 1984 	mov	dph,(_DAP_SWJ_Pins_PARM_2 + 1)
      0006AE EF               [12] 1985 	mov	a,r7
      0006AF F0               [24] 1986 	movx	@dptr,a
                                   1987 ;	src/dap.c:354: return 1;
      0006B0 75 82 01         [24] 1988 	mov	dpl,#0x01
                                   1989 ;	src/dap.c:355: }
      0006B3 22               [24] 1990 	ret
                                   1991 ;------------------------------------------------------------
                                   1992 ;Allocation info for local variables in function 'DAP_SWJ_Sequence'
                                   1993 ;------------------------------------------------------------
                                   1994 ;res                       Allocated with name '_DAP_SWJ_Sequence_PARM_2'
                                   1995 ;req                       Allocated to registers r6 r7 
                                   1996 ;count                     Allocated to registers r4 
                                   1997 ;------------------------------------------------------------
                                   1998 ;	src/dap.c:363: static uint8_t DAP_SWJ_Sequence(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   1999 ;	-----------------------------------------
                                   2000 ;	 function DAP_SWJ_Sequence
                                   2001 ;	-----------------------------------------
      0006B4                       2002 _DAP_SWJ_Sequence:
                                   2003 ;	src/dap.c:365: count = *req++;
      0006B4 AE 82            [24] 2004 	mov	r6,dpl
      0006B6 AF 83            [24] 2005 	mov  r7,dph
      0006B8 E0               [24] 2006 	movx	a,@dptr
      0006B9 FD               [12] 2007 	mov	r5,a
      0006BA 0E               [12] 2008 	inc	r6
      0006BB BE 00 01         [24] 2009 	cjne	r6,#0x00,00110$
      0006BE 0F               [12] 2010 	inc	r7
      0006BF                       2011 00110$:
                                   2012 ;	src/dap.c:366: if(count == 0U) count = 255U;
      0006BF ED               [12] 2013 	mov	a,r5
      0006C0 FC               [12] 2014 	mov	r4,a
      0006C1 70 02            [24] 2015 	jnz	00102$
      0006C3 7C FF            [12] 2016 	mov	r4,#0xff
      0006C5                       2017 00102$:
                                   2018 ;	src/dap.c:367: SWJ_Sequence(count, req);
      0006C5 8E*02            [24] 2019 	mov	_SWJ_Sequence_PARM_2,r6
      0006C7 8F*03            [24] 2020 	mov	(_SWJ_Sequence_PARM_2 + 1),r7
      0006C9 8C 82            [24] 2021 	mov	dpl,r4
      0006CB 12r00r00         [24] 2022 	lcall	_SWJ_Sequence
                                   2023 ;	src/dap.c:368: *res = DAP_OK;
      0006CE 85*15 82         [24] 2024 	mov	dpl,_DAP_SWJ_Sequence_PARM_2
      0006D1 85*16 83         [24] 2025 	mov	dph,(_DAP_SWJ_Sequence_PARM_2 + 1)
      0006D4 E4               [12] 2026 	clr	a
      0006D5 F0               [24] 2027 	movx	@dptr,a
                                   2028 ;	src/dap.c:369: return 1;
      0006D6 75 82 01         [24] 2029 	mov	dpl,#0x01
                                   2030 ;	src/dap.c:370: }
      0006D9 22               [24] 2031 	ret
                                   2032 ;------------------------------------------------------------
                                   2033 ;Allocation info for local variables in function 'DAP_SWD_Sequence'
                                   2034 ;------------------------------------------------------------
                                   2035 ;res                       Allocated with name '_DAP_SWD_Sequence_PARM_2'
                                   2036 ;req                       Allocated to registers r6 r7 
                                   2037 ;sequence_info             Allocated to registers r2 
                                   2038 ;sequence_count            Allocated to registers 
                                   2039 ;request_count             Allocated to registers r5 
                                   2040 ;response_count            Allocated to registers r4 
                                   2041 ;count                     Allocated to registers r0 
                                   2042 ;------------------------------------------------------------
                                   2043 ;	src/dap.c:378: static uint8_t DAP_SWD_Sequence(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   2044 ;	-----------------------------------------
                                   2045 ;	 function DAP_SWD_Sequence
                                   2046 ;	-----------------------------------------
      0006DA                       2047 _DAP_SWD_Sequence:
      0006DA AE 82            [24] 2048 	mov	r6,dpl
      0006DC AF 83            [24] 2049 	mov	r7,dph
                                   2050 ;	src/dap.c:385: *res++ = DAP_OK;
      0006DE AC*17            [24] 2051 	mov	r4,_DAP_SWD_Sequence_PARM_2
      0006E0 AD*18            [24] 2052 	mov	r5,(_DAP_SWD_Sequence_PARM_2 + 1)
      0006E2 8C 82            [24] 2053 	mov	dpl,r4
      0006E4 8D 83            [24] 2054 	mov	dph,r5
      0006E6 E4               [12] 2055 	clr	a
      0006E7 F0               [24] 2056 	movx	@dptr,a
      0006E8 04               [12] 2057 	inc	a
      0006E9 2C               [12] 2058 	add	a,r4
      0006EA F5*17            [12] 2059 	mov	_DAP_SWD_Sequence_PARM_2,a
      0006EC E4               [12] 2060 	clr	a
      0006ED 3D               [12] 2061 	addc	a,r5
      0006EE F5*18            [12] 2062 	mov	(_DAP_SWD_Sequence_PARM_2 + 1),a
                                   2063 ;	src/dap.c:386: request_count = 1U;
      0006F0 7D 01            [12] 2064 	mov	r5,#0x01
                                   2065 ;	src/dap.c:387: response_count = 1U;
      0006F2 7C 01            [12] 2066 	mov	r4,#0x01
                                   2067 ;	src/dap.c:388: sequence_count = *req++;
      0006F4 8E 82            [24] 2068 	mov	dpl,r6
      0006F6 8F 83            [24] 2069 	mov	dph,r7
      0006F8 E0               [24] 2070 	movx	a,@dptr
      0006F9 FB               [12] 2071 	mov	r3,a
      0006FA 0E               [12] 2072 	inc	r6
      0006FB BE 00 01         [24] 2073 	cjne	r6,#0x00,00139$
      0006FE 0F               [12] 2074 	inc	r7
      0006FF                       2075 00139$:
                                   2076 ;	src/dap.c:390: while(sequence_count--) {
      0006FF                       2077 00108$:
      0006FF 8B 02            [24] 2078 	mov	ar2,r3
      000701 1B               [12] 2079 	dec	r3
      000702 EA               [12] 2080 	mov	a,r2
      000703 70 03            [24] 2081 	jnz	00140$
      000705 02r07r86         [24] 2082 	ljmp	00110$
      000708                       2083 00140$:
                                   2084 ;	src/dap.c:391: sequence_info = *req++;
      000708 8E 82            [24] 2085 	mov	dpl,r6
      00070A 8F 83            [24] 2086 	mov	dph,r7
      00070C E0               [24] 2087 	movx	a,@dptr
      00070D FA               [12] 2088 	mov	r2,a
      00070E A3               [24] 2089 	inc	dptr
      00070F AE 82            [24] 2090 	mov	r6,dpl
      000711 AF 83            [24] 2091 	mov	r7,dph
                                   2092 ;	src/dap.c:392: count = sequence_info & SWD_SEQUENCE_CLK;
      000713 74 3F            [12] 2093 	mov	a,#0x3f
      000715 5A               [12] 2094 	anl	a,r2
                                   2095 ;	src/dap.c:393: if(count == 0U) count = 64U;
      000716 F9               [12] 2096 	mov	r1,a
      000717 70 02            [24] 2097 	jnz	00102$
      000719 79 40            [12] 2098 	mov	r1,#0x40
      00071B                       2099 00102$:
                                   2100 ;	src/dap.c:394: count = (count + 7U) / 8U;
      00071B 89 00            [24] 2101 	mov	ar0,r1
      00071D 79 00            [12] 2102 	mov	r1,#0x00
      00071F 74 07            [12] 2103 	mov	a,#0x07
      000721 28               [12] 2104 	add	a,r0
      000722 F8               [12] 2105 	mov	r0,a
      000723 E4               [12] 2106 	clr	a
      000724 39               [12] 2107 	addc	a,r1
      000725 C4               [12] 2108 	swap	a
      000726 23               [12] 2109 	rl	a
      000727 C8               [12] 2110 	xch	a,r0
      000728 C4               [12] 2111 	swap	a
      000729 23               [12] 2112 	rl	a
      00072A 54 1F            [12] 2113 	anl	a,#0x1f
      00072C 68               [12] 2114 	xrl	a,r0
      00072D C8               [12] 2115 	xch	a,r0
      00072E 54 1F            [12] 2116 	anl	a,#0x1f
      000730 C8               [12] 2117 	xch	a,r0
      000731 68               [12] 2118 	xrl	a,r0
      000732 C8               [12] 2119 	xch	a,r0
                                   2120 ;	src/dap.c:395: ((sequence_info & SWD_SEQUENCE_DIN) != 0U) ? (SWD_SET(1)) : (SWD_SET(1));
                                   2121 ;	assignBit
      000733 D2 95            [12] 2122 	setb	_PP15
                                   2123 ;	src/dap.c:396: SWD_Sequence(sequence_info, req, res);
      000735 8E*04            [24] 2124 	mov	_SWD_Sequence_PARM_2,r6
      000737 8F*05            [24] 2125 	mov	(_SWD_Sequence_PARM_2 + 1),r7
      000739 85*17*06         [24] 2126 	mov	_SWD_Sequence_PARM_3,_DAP_SWD_Sequence_PARM_2
      00073C 85*18*07         [24] 2127 	mov	(_SWD_Sequence_PARM_3 + 1),(_DAP_SWD_Sequence_PARM_2 + 1)
      00073F 8A 82            [24] 2128 	mov	dpl,r2
      000741 C0 07            [24] 2129 	push	ar7
      000743 C0 06            [24] 2130 	push	ar6
      000745 C0 05            [24] 2131 	push	ar5
      000747 C0 04            [24] 2132 	push	ar4
      000749 C0 03            [24] 2133 	push	ar3
      00074B C0 02            [24] 2134 	push	ar2
      00074D C0 00            [24] 2135 	push	ar0
      00074F 12r00r59         [24] 2136 	lcall	_SWD_Sequence
      000752 D0 00            [24] 2137 	pop	ar0
      000754 D0 02            [24] 2138 	pop	ar2
      000756 D0 03            [24] 2139 	pop	ar3
      000758 D0 04            [24] 2140 	pop	ar4
      00075A D0 05            [24] 2141 	pop	ar5
      00075C D0 06            [24] 2142 	pop	ar6
      00075E D0 07            [24] 2143 	pop	ar7
                                   2144 ;	src/dap.c:397: if(sequence_count == 0U) SWD_SET(1);
      000760 EB               [12] 2145 	mov	a,r3
      000761 70 02            [24] 2146 	jnz	00104$
                                   2147 ;	assignBit
      000763 D2 95            [12] 2148 	setb	_PP15
      000765                       2149 00104$:
                                   2150 ;	src/dap.c:398: if((sequence_info & SWD_SEQUENCE_DIN) != 0U) {
      000765 EA               [12] 2151 	mov	a,r2
      000766 30 E7 10         [24] 2152 	jnb	acc.7,00106$
                                   2153 ;	src/dap.c:399: request_count++;
      000769 0D               [12] 2154 	inc	r5
                                   2155 ;	src/dap.c:400: res += count;
      00076A E8               [12] 2156 	mov	a,r0
      00076B 25*17            [12] 2157 	add	a,_DAP_SWD_Sequence_PARM_2
      00076D F5*17            [12] 2158 	mov	_DAP_SWD_Sequence_PARM_2,a
      00076F E4               [12] 2159 	clr	a
      000770 35*18            [12] 2160 	addc	a,(_DAP_SWD_Sequence_PARM_2 + 1)
      000772 F5*18            [12] 2161 	mov	(_DAP_SWD_Sequence_PARM_2 + 1),a
                                   2162 ;	src/dap.c:401: response_count += count;
      000774 E8               [12] 2163 	mov	a,r0
      000775 2C               [12] 2164 	add	a,r4
      000776 FC               [12] 2165 	mov	r4,a
      000777 80 86            [24] 2166 	sjmp	00108$
      000779                       2167 00106$:
                                   2168 ;	src/dap.c:404: req += count;
      000779 E8               [12] 2169 	mov	a,r0
      00077A 2E               [12] 2170 	add	a,r6
      00077B FE               [12] 2171 	mov	r6,a
      00077C E4               [12] 2172 	clr	a
      00077D 3F               [12] 2173 	addc	a,r7
      00077E FF               [12] 2174 	mov	r7,a
                                   2175 ;	src/dap.c:405: request_count += count + 1U;
      00077F E8               [12] 2176 	mov	a,r0
      000780 04               [12] 2177 	inc	a
      000781 2D               [12] 2178 	add	a,r5
      000782 FD               [12] 2179 	mov	r5,a
      000783 02r06rFF         [24] 2180 	ljmp	00108$
      000786                       2181 00110$:
                                   2182 ;	src/dap.c:408: return response_count;
      000786 8C 82            [24] 2183 	mov	dpl,r4
                                   2184 ;	src/dap.c:409: }
      000788 22               [24] 2185 	ret
                                   2186 ;------------------------------------------------------------
                                   2187 ;Allocation info for local variables in function 'DAP_TransferConfigure'
                                   2188 ;------------------------------------------------------------
                                   2189 ;res                       Allocated with name '_DAP_TransferConfigure_PARM_2'
                                   2190 ;req                       Allocated to registers r6 r7 
                                   2191 ;------------------------------------------------------------
                                   2192 ;	src/dap.c:419: static uint8_t DAP_TransferConfigure(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   2193 ;	-----------------------------------------
                                   2194 ;	 function DAP_TransferConfigure
                                   2195 ;	-----------------------------------------
      000789                       2196 _DAP_TransferConfigure:
                                   2197 ;	src/dap.c:420: idle_cycles = *(req + 0);
      000789 AE 82            [24] 2198 	mov	r6,dpl
      00078B AF 83            [24] 2199 	mov  r7,dph
      00078D 78r00            [12] 2200 	mov	r0,#_idle_cycles
      00078F E0               [24] 2201 	movx	a,@dptr
      000790 F6               [12] 2202 	mov	@r0,a
                                   2203 ;	src/dap.c:421: retry_count = (uint16_t) * (req + 1)
      000791 8E 82            [24] 2204 	mov	dpl,r6
      000793 8F 83            [24] 2205 	mov	dph,r7
      000795 A3               [24] 2206 	inc	dptr
      000796 E0               [24] 2207 	movx	a,@dptr
      000797 FD               [12] 2208 	mov	r5,a
      000798 7C 00            [12] 2209 	mov	r4,#0x00
                                   2210 ;	src/dap.c:422: | (uint16_t)(*(req + 2) << 8);
      00079A 8E 82            [24] 2211 	mov	dpl,r6
      00079C 8F 83            [24] 2212 	mov	dph,r7
      00079E A3               [24] 2213 	inc	dptr
      00079F A3               [24] 2214 	inc	dptr
      0007A0 E0               [24] 2215 	movx	a,@dptr
      0007A1 FA               [12] 2216 	mov	r2,a
      0007A2 E4               [12] 2217 	clr	a
      0007A3 42 05            [12] 2218 	orl	ar5,a
      0007A5 EA               [12] 2219 	mov	a,r2
      0007A6 42 04            [12] 2220 	orl	ar4,a
      0007A8 78r02            [12] 2221 	mov	r0,#_retry_count
      0007AA A6 05            [24] 2222 	mov	@r0,ar5
      0007AC 08               [12] 2223 	inc	r0
      0007AD A6 04            [24] 2224 	mov	@r0,ar4
                                   2225 ;	src/dap.c:423: match_retry = (uint16_t) * (req + 3)
      0007AF 8E 82            [24] 2226 	mov	dpl,r6
      0007B1 8F 83            [24] 2227 	mov	dph,r7
      0007B3 A3               [24] 2228 	inc	dptr
      0007B4 A3               [24] 2229 	inc	dptr
      0007B5 A3               [24] 2230 	inc	dptr
      0007B6 E0               [24] 2231 	movx	a,@dptr
      0007B7 FD               [12] 2232 	mov	r5,a
      0007B8 7C 00            [12] 2233 	mov	r4,#0x00
                                   2234 ;	src/dap.c:424: | (uint16_t)(*(req + 4) << 8);
      0007BA 8E 82            [24] 2235 	mov	dpl,r6
      0007BC 8F 83            [24] 2236 	mov	dph,r7
      0007BE A3               [24] 2237 	inc	dptr
      0007BF A3               [24] 2238 	inc	dptr
      0007C0 A3               [24] 2239 	inc	dptr
      0007C1 A3               [24] 2240 	inc	dptr
      0007C2 E0               [24] 2241 	movx	a,@dptr
      0007C3 FE               [12] 2242 	mov	r6,a
      0007C4 E4               [12] 2243 	clr	a
      0007C5 42 05            [12] 2244 	orl	ar5,a
      0007C7 EE               [12] 2245 	mov	a,r6
      0007C8 42 04            [12] 2246 	orl	ar4,a
      0007CA 78r04            [12] 2247 	mov	r0,#_match_retry
      0007CC A6 05            [24] 2248 	mov	@r0,ar5
      0007CE 08               [12] 2249 	inc	r0
      0007CF A6 04            [24] 2250 	mov	@r0,ar4
                                   2251 ;	src/dap.c:425: *res = DAP_OK;
      0007D1 85*00 82         [24] 2252 	mov	dpl,_DAP_TransferConfigure_PARM_2
      0007D4 85*01 83         [24] 2253 	mov	dph,(_DAP_TransferConfigure_PARM_2 + 1)
      0007D7 E4               [12] 2254 	clr	a
      0007D8 F0               [24] 2255 	movx	@dptr,a
                                   2256 ;	src/dap.c:426: return 1;
      0007D9 75 82 01         [24] 2257 	mov	dpl,#0x01
                                   2258 ;	src/dap.c:427: }
      0007DC 22               [24] 2259 	ret
                                   2260 ;------------------------------------------------------------
                                   2261 ;Allocation info for local variables in function 'DAP_SWD_Transfer'
                                   2262 ;------------------------------------------------------------
                                   2263 ;res                       Allocated with name '_DAP_SWD_Transfer_PARM_2'
                                   2264 ;req                       Allocated to registers r6 r7 
                                   2265 ;request_head              Allocated to registers 
                                   2266 ;response_head             Allocated with name '_DAP_SWD_Transfer_response_head_65536_140'
                                   2267 ;post_read                 Allocated with name '_DAP_SWD_Transfer_post_read_65536_140'
                                   2268 ;check_write               Allocated with name '_DAP_SWD_Transfer_check_write_65536_140'
                                   2269 ;sloc0                     Allocated with name '_DAP_SWD_Transfer_sloc0_1_0'
                                   2270 ;------------------------------------------------------------
                                   2271 ;	src/dap.c:444: static uint8_t DAP_SWD_Transfer(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   2272 ;	-----------------------------------------
                                   2273 ;	 function DAP_SWD_Transfer
                                   2274 ;	-----------------------------------------
      0007DD                       2275 _DAP_SWD_Transfer:
      0007DD AE 82            [24] 2276 	mov	r6,dpl
      0007DF AF 83            [24] 2277 	mov	r7,dph
                                   2278 ;	src/dap.c:451: response_count = 0U;
      0007E1 78r11            [12] 2279 	mov	r0,#_response_count
      0007E3 76 00            [12] 2280 	mov	@r0,#0x00
                                   2281 ;	src/dap.c:452: response_value = 0U;
      0007E5 78r12            [12] 2282 	mov	r0,#_response_value
      0007E7 76 00            [12] 2283 	mov	@r0,#0x00
                                   2284 ;	src/dap.c:453: response_head = res;
      0007E9 85*19*1B         [24] 2285 	mov	_DAP_SWD_Transfer_response_head_65536_140,_DAP_SWD_Transfer_PARM_2
      0007EC 85*1A*1C         [24] 2286 	mov	(_DAP_SWD_Transfer_response_head_65536_140 + 1),(_DAP_SWD_Transfer_PARM_2 + 1)
                                   2287 ;	src/dap.c:454: res += 2;
      0007EF 74 02            [12] 2288 	mov	a,#0x02
      0007F1 25*1B            [12] 2289 	add	a,_DAP_SWD_Transfer_response_head_65536_140
      0007F3 F5*19            [12] 2290 	mov	_DAP_SWD_Transfer_PARM_2,a
      0007F5 E4               [12] 2291 	clr	a
      0007F6 35*1C            [12] 2292 	addc	a,(_DAP_SWD_Transfer_response_head_65536_140 + 1)
      0007F8 F5*1A            [12] 2293 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2294 ;	src/dap.c:455: DAP_TransferAbort = 0U;
      0007FA 78r0E            [12] 2295 	mov	r0,#_DAP_TransferAbort
      0007FC 76 00            [12] 2296 	mov	@r0,#0x00
                                   2297 ;	src/dap.c:456: post_read = 0U;
      0007FE 75*1D 00         [24] 2298 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x00
                                   2299 ;	src/dap.c:457: check_write = 0U;
      000801 75*1E 00         [24] 2300 	mov	_DAP_SWD_Transfer_check_write_65536_140,#0x00
                                   2301 ;	src/dap.c:459: req++;                                          // ignore DAP index
      000804 0E               [12] 2302 	inc	r6
      000805 BE 00 01         [24] 2303 	cjne	r6,#0x00,00550$
      000808 0F               [12] 2304 	inc	r7
      000809                       2305 00550$:
                                   2306 ;	src/dap.c:460: request_count = *req++;
      000809 8E 82            [24] 2307 	mov	dpl,r6
      00080B 8F 83            [24] 2308 	mov	dph,r7
      00080D 78r0F            [12] 2309 	mov	r0,#_request_count
      00080F E0               [24] 2310 	movx	a,@dptr
      000810 F6               [12] 2311 	mov	@r0,a
      000811 0E               [12] 2312 	inc	r6
      000812 BE 00 01         [24] 2313 	cjne	r6,#0x00,00551$
      000815 0F               [12] 2314 	inc	r7
      000816                       2315 00551$:
      000816                       2316 00223$:
                                   2317 ;	src/dap.c:461: for(; request_count != 0U; request_count--) {
      000816 78r0F            [12] 2318 	mov	r0,#_request_count
      000818 E6               [12] 2319 	mov	a,@r0
      000819 70 03            [24] 2320 	jnz	00552$
      00081B 02r0Dr43         [24] 2321 	ljmp	00226$
      00081E                       2322 00552$:
                                   2323 ;	src/dap.c:462: request_value = *req++;
      00081E 8E 82            [24] 2324 	mov	dpl,r6
      000820 8F 83            [24] 2325 	mov	dph,r7
      000822 E0               [24] 2326 	movx	a,@dptr
      000823 F5*1F            [12] 2327 	mov	_DAP_SWD_Transfer_sloc0_1_0,a
      000825 A3               [24] 2328 	inc	dptr
      000826 AE 82            [24] 2329 	mov	r6,dpl
      000828 AF 83            [24] 2330 	mov	r7,dph
      00082A 78r10            [12] 2331 	mov	r0,#_request_value
                                   2332 ;	src/dap.c:465: if(request_value & DAP_TRANSFER_RnW) {
      00082C E5*1F            [12] 2333 	mov	a,_DAP_SWD_Transfer_sloc0_1_0
      00082E F6               [12] 2334 	mov	@r0,a
      00082F 20 E1 03         [24] 2335 	jb	acc.1,00553$
      000832 02r0BrD6         [24] 2336 	ljmp	00191$
      000835                       2337 00553$:
                                   2338 ;	src/dap.c:467: if(post_read) {
      000835 E5*1D            [12] 2339 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000837 70 03            [24] 2340 	jnz	00554$
      000839 02r09r30         [24] 2341 	ljmp	00117$
      00083C                       2342 00554$:
                                   2343 ;	src/dap.c:469: retry = retry_count;
      00083C 78r02            [12] 2344 	mov	r0,#_retry_count
      00083E 86 02            [24] 2345 	mov	ar2,@r0
      000840 08               [12] 2346 	inc	r0
      000841 86 05            [24] 2347 	mov	ar5,@r0
      000843 78r13            [12] 2348 	mov	r0,#_retry
      000845 A6 02            [24] 2349 	mov	@r0,ar2
      000847 08               [12] 2350 	inc	r0
      000848 A6 05            [24] 2351 	mov	@r0,ar5
                                   2352 ;	src/dap.c:470: if((request_value & (DAP_TRANSFER_APnDP | DAP_TRANSFER_MATCH_VALUE)) == DAP_TRANSFER_APnDP) {
      00084A AC*1F            [24] 2353 	mov	r4,_DAP_SWD_Transfer_sloc0_1_0
      00084C 53 04 11         [24] 2354 	anl	ar4,#0x11
      00084F 7D 00            [12] 2355 	mov	r5,#0x00
      000851 BC 01 3E         [24] 2356 	cjne	r4,#0x01,00108$
      000854 BD 00 3B         [24] 2357 	cjne	r5,#0x00,00108$
                                   2358 ;	src/dap.c:472: do {
      000857                       2359 00103$:
                                   2360 ;	src/dap.c:473: response_value = SWD_Transfer(request_value, data);
      000857 75*08r00         [24] 2361 	mov	_SWD_Transfer_PARM_2,#_data
      00085A 75*09s00         [24] 2362 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      00085D 78r10            [12] 2363 	mov	r0,#_request_value
      00085F 86 82            [24] 2364 	mov	dpl,@r0
      000861 C0 07            [24] 2365 	push	ar7
      000863 C0 06            [24] 2366 	push	ar6
      000865 12r01r30         [24] 2367 	lcall	_SWD_Transfer
      000868 AD 82            [24] 2368 	mov	r5,dpl
      00086A D0 06            [24] 2369 	pop	ar6
      00086C D0 07            [24] 2370 	pop	ar7
      00086E 78r12            [12] 2371 	mov	r0,#_response_value
      000870 A6 05            [24] 2372 	mov	@r0,ar5
                                   2373 ;	src/dap.c:474: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000872 BD 02 58         [24] 2374 	cjne	r5,#0x02,00113$
      000875 78r13            [12] 2375 	mov	r0,#_retry
      000877 86 04            [24] 2376 	mov	ar4,@r0
      000879 08               [12] 2377 	inc	r0
      00087A 86 05            [24] 2378 	mov	ar5,@r0
      00087C 78r13            [12] 2379 	mov	r0,#_retry
      00087E EC               [12] 2380 	mov	a,r4
      00087F 24 FF            [12] 2381 	add	a,#0xff
      000881 F6               [12] 2382 	mov	@r0,a
      000882 ED               [12] 2383 	mov	a,r5
      000883 34 FF            [12] 2384 	addc	a,#0xff
      000885 08               [12] 2385 	inc	r0
      000886 F6               [12] 2386 	mov	@r0,a
      000887 EC               [12] 2387 	mov	a,r4
      000888 4D               [12] 2388 	orl	a,r5
      000889 60 42            [24] 2389 	jz	00113$
      00088B 78r0E            [12] 2390 	mov	r0,#_DAP_TransferAbort
      00088D E6               [12] 2391 	mov	a,@r0
      00088E 60 C7            [24] 2392 	jz	00103$
                                   2393 ;	src/dap.c:478: do {
      000890 80 3B            [24] 2394 	sjmp	00113$
      000892                       2395 00108$:
                                   2396 ;	src/dap.c:479: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, data);
      000892 75*08r00         [24] 2397 	mov	_SWD_Transfer_PARM_2,#_data
      000895 75*09s00         [24] 2398 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000898 75 82 0E         [24] 2399 	mov	dpl,#0x0e
      00089B C0 07            [24] 2400 	push	ar7
      00089D C0 06            [24] 2401 	push	ar6
      00089F 12r01r30         [24] 2402 	lcall	_SWD_Transfer
      0008A2 AD 82            [24] 2403 	mov	r5,dpl
      0008A4 D0 06            [24] 2404 	pop	ar6
      0008A6 D0 07            [24] 2405 	pop	ar7
      0008A8 78r12            [12] 2406 	mov	r0,#_response_value
      0008AA A6 05            [24] 2407 	mov	@r0,ar5
                                   2408 ;	src/dap.c:480: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0008AC BD 02 1B         [24] 2409 	cjne	r5,#0x02,00110$
      0008AF 78r13            [12] 2410 	mov	r0,#_retry
      0008B1 86 04            [24] 2411 	mov	ar4,@r0
      0008B3 08               [12] 2412 	inc	r0
      0008B4 86 05            [24] 2413 	mov	ar5,@r0
      0008B6 78r13            [12] 2414 	mov	r0,#_retry
      0008B8 EC               [12] 2415 	mov	a,r4
      0008B9 24 FF            [12] 2416 	add	a,#0xff
      0008BB F6               [12] 2417 	mov	@r0,a
      0008BC ED               [12] 2418 	mov	a,r5
      0008BD 34 FF            [12] 2419 	addc	a,#0xff
      0008BF 08               [12] 2420 	inc	r0
      0008C0 F6               [12] 2421 	mov	@r0,a
      0008C1 EC               [12] 2422 	mov	a,r4
      0008C2 4D               [12] 2423 	orl	a,r5
      0008C3 60 05            [24] 2424 	jz	00110$
      0008C5 78r0E            [12] 2425 	mov	r0,#_DAP_TransferAbort
      0008C7 E6               [12] 2426 	mov	a,@r0
      0008C8 60 C8            [24] 2427 	jz	00108$
      0008CA                       2428 00110$:
                                   2429 ;	src/dap.c:481: post_read = 0U;
      0008CA 75*1D 00         [24] 2430 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x00
      0008CD                       2431 00113$:
                                   2432 ;	src/dap.c:483: if(response_value != DAP_TRANSFER_OK) break;
      0008CD 78r12            [12] 2433 	mov	r0,#_response_value
      0008CF B6 01 02         [24] 2434 	cjne	@r0,#0x01,00565$
      0008D2 80 03            [24] 2435 	sjmp	00566$
      0008D4                       2436 00565$:
      0008D4 02r0Dr43         [24] 2437 	ljmp	00226$
      0008D7                       2438 00566$:
                                   2439 ;	src/dap.c:486: *res++ = (uint8_t)data[0];
      0008D7 AC*19            [24] 2440 	mov	r4,_DAP_SWD_Transfer_PARM_2
      0008D9 AD*1A            [24] 2441 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      0008DB 90r00r00         [24] 2442 	mov	dptr,#_data
      0008DE E0               [24] 2443 	movx	a,@dptr
      0008DF 8C 82            [24] 2444 	mov	dpl,r4
      0008E1 8D 83            [24] 2445 	mov	dph,r5
      0008E3 F0               [24] 2446 	movx	@dptr,a
      0008E4 74 01            [12] 2447 	mov	a,#0x01
      0008E6 2C               [12] 2448 	add	a,r4
      0008E7 F5*19            [12] 2449 	mov	_DAP_SWD_Transfer_PARM_2,a
      0008E9 E4               [12] 2450 	clr	a
      0008EA 3D               [12] 2451 	addc	a,r5
      0008EB F5*1A            [12] 2452 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2453 ;	src/dap.c:487: *res++ = (uint8_t)data[1];
      0008ED AC*19            [24] 2454 	mov	r4,_DAP_SWD_Transfer_PARM_2
      0008EF AD*1A            [24] 2455 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      0008F1 90r00r01         [24] 2456 	mov	dptr,#(_data + 0x0001)
      0008F4 E0               [24] 2457 	movx	a,@dptr
      0008F5 8C 82            [24] 2458 	mov	dpl,r4
      0008F7 8D 83            [24] 2459 	mov	dph,r5
      0008F9 F0               [24] 2460 	movx	@dptr,a
      0008FA 74 01            [12] 2461 	mov	a,#0x01
      0008FC 2C               [12] 2462 	add	a,r4
      0008FD F5*19            [12] 2463 	mov	_DAP_SWD_Transfer_PARM_2,a
      0008FF E4               [12] 2464 	clr	a
      000900 3D               [12] 2465 	addc	a,r5
      000901 F5*1A            [12] 2466 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2467 ;	src/dap.c:488: *res++ = (uint8_t)data[2];
      000903 AC*19            [24] 2468 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000905 AD*1A            [24] 2469 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000907 90r00r02         [24] 2470 	mov	dptr,#(_data + 0x0002)
      00090A E0               [24] 2471 	movx	a,@dptr
      00090B 8C 82            [24] 2472 	mov	dpl,r4
      00090D 8D 83            [24] 2473 	mov	dph,r5
      00090F F0               [24] 2474 	movx	@dptr,a
      000910 74 01            [12] 2475 	mov	a,#0x01
      000912 2C               [12] 2476 	add	a,r4
      000913 F5*19            [12] 2477 	mov	_DAP_SWD_Transfer_PARM_2,a
      000915 E4               [12] 2478 	clr	a
      000916 3D               [12] 2479 	addc	a,r5
      000917 F5*1A            [12] 2480 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2481 ;	src/dap.c:489: *res++ = (uint8_t)data[3];
      000919 AC*19            [24] 2482 	mov	r4,_DAP_SWD_Transfer_PARM_2
      00091B AD*1A            [24] 2483 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      00091D 90r00r03         [24] 2484 	mov	dptr,#(_data + 0x0003)
      000920 E0               [24] 2485 	movx	a,@dptr
      000921 FA               [12] 2486 	mov	r2,a
      000922 8C 82            [24] 2487 	mov	dpl,r4
      000924 8D 83            [24] 2488 	mov	dph,r5
      000926 F0               [24] 2489 	movx	@dptr,a
      000927 74 01            [12] 2490 	mov	a,#0x01
      000929 2C               [12] 2491 	add	a,r4
      00092A F5*19            [12] 2492 	mov	_DAP_SWD_Transfer_PARM_2,a
      00092C E4               [12] 2493 	clr	a
      00092D 3D               [12] 2494 	addc	a,r5
      00092E F5*1A            [12] 2495 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
      000930                       2496 00117$:
                                   2497 ;	src/dap.c:491: if((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) {
      000930 78r10            [12] 2498 	mov	r0,#_request_value
      000932 E6               [12] 2499 	mov	a,@r0
      000933 FD               [12] 2500 	mov	r5,a
      000934 20 E4 03         [24] 2501 	jb	acc.4,00567$
      000937 02r0ArD7         [24] 2502 	ljmp	00169$
      00093A                       2503 00567$:
                                   2504 ;	src/dap.c:493: match_value[0] = (uint8_t)(*(req + 0));
      00093A 8E 82            [24] 2505 	mov	dpl,r6
      00093C 8F 83            [24] 2506 	mov	dph,r7
      00093E E0               [24] 2507 	movx	a,@dptr
      00093F FC               [12] 2508 	mov	r4,a
      000940 78r0A            [12] 2509 	mov	r0,#_match_value
      000942 A6 04            [24] 2510 	mov	@r0,ar4
                                   2511 ;	src/dap.c:494: match_value[1] = (uint8_t)(*(req + 1));
      000944 8E 82            [24] 2512 	mov	dpl,r6
      000946 8F 83            [24] 2513 	mov	dph,r7
      000948 A3               [24] 2514 	inc	dptr
      000949 E0               [24] 2515 	movx	a,@dptr
      00094A FC               [12] 2516 	mov	r4,a
      00094B 78r0B            [12] 2517 	mov	r0,#(_match_value + 0x0001)
      00094D A6 04            [24] 2518 	mov	@r0,ar4
                                   2519 ;	src/dap.c:495: match_value[2] = (uint8_t)(*(req + 2));
      00094F 8E 82            [24] 2520 	mov	dpl,r6
      000951 8F 83            [24] 2521 	mov	dph,r7
      000953 A3               [24] 2522 	inc	dptr
      000954 A3               [24] 2523 	inc	dptr
      000955 E0               [24] 2524 	movx	a,@dptr
      000956 FC               [12] 2525 	mov	r4,a
      000957 78r0C            [12] 2526 	mov	r0,#(_match_value + 0x0002)
      000959 A6 04            [24] 2527 	mov	@r0,ar4
                                   2528 ;	src/dap.c:496: match_value[3] = (uint8_t)(*(req + 3));
      00095B 8E 82            [24] 2529 	mov	dpl,r6
      00095D 8F 83            [24] 2530 	mov	dph,r7
      00095F A3               [24] 2531 	inc	dptr
      000960 A3               [24] 2532 	inc	dptr
      000961 A3               [24] 2533 	inc	dptr
      000962 E0               [24] 2534 	movx	a,@dptr
      000963 FC               [12] 2535 	mov	r4,a
      000964 78r0D            [12] 2536 	mov	r0,#(_match_value + 0x0003)
      000966 A6 04            [24] 2537 	mov	@r0,ar4
                                   2538 ;	src/dap.c:497: req += 4;
      000968 74 04            [12] 2539 	mov	a,#0x04
      00096A 2E               [12] 2540 	add	a,r6
      00096B FE               [12] 2541 	mov	r6,a
      00096C E4               [12] 2542 	clr	a
      00096D 3F               [12] 2543 	addc	a,r7
      00096E FF               [12] 2544 	mov	r7,a
                                   2545 ;	src/dap.c:498: match_retry = match_retry;
                                   2546 ;	src/dap.c:499: if((request_value & DAP_TRANSFER_APnDP) != 0U) {
      00096F 78r10            [12] 2547 	mov	r0,#_request_value
      000971 E6               [12] 2548 	mov	a,@r0
      000972 30 E0 4E         [24] 2549 	jnb	acc.0,00139$
                                   2550 ;	src/dap.c:501: retry = retry_count;
      000975 78r02            [12] 2551 	mov	r0,#_retry_count
      000977 86 02            [24] 2552 	mov	ar2,@r0
      000979 08               [12] 2553 	inc	r0
      00097A 86 04            [24] 2554 	mov	ar4,@r0
      00097C 78r13            [12] 2555 	mov	r0,#_retry
      00097E A6 02            [24] 2556 	mov	@r0,ar2
      000980 08               [12] 2557 	inc	r0
      000981 A6 04            [24] 2558 	mov	@r0,ar4
                                   2559 ;	src/dap.c:502: do {
      000983                       2560 00120$:
                                   2561 ;	src/dap.c:503: response_value = SWD_Transfer(request_value, NULL);
      000983 E4               [12] 2562 	clr	a
      000984 F5*08            [12] 2563 	mov	_SWD_Transfer_PARM_2,a
      000986 F5*09            [12] 2564 	mov	(_SWD_Transfer_PARM_2 + 1),a
      000988 78r10            [12] 2565 	mov	r0,#_request_value
      00098A 86 82            [24] 2566 	mov	dpl,@r0
      00098C C0 07            [24] 2567 	push	ar7
      00098E C0 06            [24] 2568 	push	ar6
      000990 12r01r30         [24] 2569 	lcall	_SWD_Transfer
      000993 AC 82            [24] 2570 	mov	r4,dpl
      000995 D0 06            [24] 2571 	pop	ar6
      000997 D0 07            [24] 2572 	pop	ar7
      000999 78r12            [12] 2573 	mov	r0,#_response_value
      00099B A6 04            [24] 2574 	mov	@r0,ar4
                                   2575 ;	src/dap.c:504: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      00099D BC 02 1B         [24] 2576 	cjne	r4,#0x02,00122$
      0009A0 78r13            [12] 2577 	mov	r0,#_retry
      0009A2 86 02            [24] 2578 	mov	ar2,@r0
      0009A4 08               [12] 2579 	inc	r0
      0009A5 86 03            [24] 2580 	mov	ar3,@r0
      0009A7 78r13            [12] 2581 	mov	r0,#_retry
      0009A9 EA               [12] 2582 	mov	a,r2
      0009AA 24 FF            [12] 2583 	add	a,#0xff
      0009AC F6               [12] 2584 	mov	@r0,a
      0009AD EB               [12] 2585 	mov	a,r3
      0009AE 34 FF            [12] 2586 	addc	a,#0xff
      0009B0 08               [12] 2587 	inc	r0
      0009B1 F6               [12] 2588 	mov	@r0,a
      0009B2 EA               [12] 2589 	mov	a,r2
      0009B3 4B               [12] 2590 	orl	a,r3
      0009B4 60 05            [24] 2591 	jz	00122$
      0009B6 78r0E            [12] 2592 	mov	r0,#_DAP_TransferAbort
      0009B8 E6               [12] 2593 	mov	a,@r0
      0009B9 60 C8            [24] 2594 	jz	00120$
      0009BB                       2595 00122$:
                                   2596 ;	src/dap.c:505: if(response_value != DAP_TRANSFER_OK) break;
      0009BB BC 01 02         [24] 2597 	cjne	r4,#0x01,00573$
      0009BE 80 03            [24] 2598 	sjmp	00574$
      0009C0                       2599 00573$:
      0009C0 02r0Dr43         [24] 2600 	ljmp	00226$
      0009C3                       2601 00574$:
                                   2602 ;	src/dap.c:507: do {
      0009C3                       2603 00139$:
                                   2604 ;	src/dap.c:509: retry = retry_count;
      0009C3 78r02            [12] 2605 	mov	r0,#_retry_count
      0009C5 86 03            [24] 2606 	mov	ar3,@r0
      0009C7 08               [12] 2607 	inc	r0
      0009C8 86 04            [24] 2608 	mov	ar4,@r0
      0009CA 78r13            [12] 2609 	mov	r0,#_retry
      0009CC A6 03            [24] 2610 	mov	@r0,ar3
      0009CE 08               [12] 2611 	inc	r0
      0009CF A6 04            [24] 2612 	mov	@r0,ar4
                                   2613 ;	src/dap.c:510: do {
      0009D1                       2614 00129$:
                                   2615 ;	src/dap.c:511: response_value = SWD_Transfer(request_value, data);
      0009D1 75*08r00         [24] 2616 	mov	_SWD_Transfer_PARM_2,#_data
      0009D4 75*09s00         [24] 2617 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      0009D7 78r10            [12] 2618 	mov	r0,#_request_value
      0009D9 86 82            [24] 2619 	mov	dpl,@r0
      0009DB C0 07            [24] 2620 	push	ar7
      0009DD C0 06            [24] 2621 	push	ar6
      0009DF 12r01r30         [24] 2622 	lcall	_SWD_Transfer
      0009E2 AC 82            [24] 2623 	mov	r4,dpl
      0009E4 D0 06            [24] 2624 	pop	ar6
      0009E6 D0 07            [24] 2625 	pop	ar7
      0009E8 78r12            [12] 2626 	mov	r0,#_response_value
      0009EA A6 04            [24] 2627 	mov	@r0,ar4
                                   2628 ;	src/dap.c:512: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0009EC BC 02 1B         [24] 2629 	cjne	r4,#0x02,00131$
      0009EF 78r13            [12] 2630 	mov	r0,#_retry
      0009F1 86 03            [24] 2631 	mov	ar3,@r0
      0009F3 08               [12] 2632 	inc	r0
      0009F4 86 04            [24] 2633 	mov	ar4,@r0
      0009F6 78r13            [12] 2634 	mov	r0,#_retry
      0009F8 EB               [12] 2635 	mov	a,r3
      0009F9 24 FF            [12] 2636 	add	a,#0xff
      0009FB F6               [12] 2637 	mov	@r0,a
      0009FC EC               [12] 2638 	mov	a,r4
      0009FD 34 FF            [12] 2639 	addc	a,#0xff
      0009FF 08               [12] 2640 	inc	r0
      000A00 F6               [12] 2641 	mov	@r0,a
      000A01 EB               [12] 2642 	mov	a,r3
      000A02 4C               [12] 2643 	orl	a,r4
      000A03 60 05            [24] 2644 	jz	00131$
      000A05 78r0E            [12] 2645 	mov	r0,#_DAP_TransferAbort
      000A07 E6               [12] 2646 	mov	a,@r0
      000A08 60 C7            [24] 2647 	jz	00129$
      000A0A                       2648 00131$:
                                   2649 ;	src/dap.c:513: if(response_value != DAP_TRANSFER_OK) break;
      000A0A 78r12            [12] 2650 	mov	r0,#_response_value
      000A0C B6 01 02         [24] 2651 	cjne	@r0,#0x01,00579$
      000A0F 80 03            [24] 2652 	sjmp	00580$
      000A11                       2653 00579$:
      000A11 02r0Ar7C         [24] 2654 	ljmp	00141$
      000A14                       2655 00580$:
                                   2656 ;	src/dap.c:515: while(((data[0] & match_mask[0]) != match_value[0] ||
      000A14 90r00r00         [24] 2657 	mov	dptr,#_data
      000A17 E0               [24] 2658 	movx	a,@dptr
      000A18 FC               [12] 2659 	mov	r4,a
      000A19 78r06            [12] 2660 	mov	r0,#_match_mask
      000A1B E6               [12] 2661 	mov	a,@r0
      000A1C 52 04            [12] 2662 	anl	ar4,a
      000A1E 78r0A            [12] 2663 	mov	r0,#_match_value
      000A20 86 03            [24] 2664 	mov	ar3,@r0
      000A22 EC               [12] 2665 	mov	a,r4
      000A23 B5 03 38         [24] 2666 	cjne	a,ar3,00137$
                                   2667 ;	src/dap.c:516: (data[1] & match_mask[1]) != match_value[1] ||
      000A26 90r00r01         [24] 2668 	mov	dptr,#(_data + 0x0001)
      000A29 E0               [24] 2669 	movx	a,@dptr
      000A2A FC               [12] 2670 	mov	r4,a
      000A2B 78r07            [12] 2671 	mov	r0,#(_match_mask + 0x0001)
      000A2D E6               [12] 2672 	mov	a,@r0
      000A2E 52 04            [12] 2673 	anl	ar4,a
      000A30 78r0B            [12] 2674 	mov	r0,#(_match_value + 0x0001)
      000A32 86 03            [24] 2675 	mov	ar3,@r0
      000A34 EC               [12] 2676 	mov	a,r4
      000A35 B5 03 26         [24] 2677 	cjne	a,ar3,00137$
                                   2678 ;	src/dap.c:517: (data[2] & match_mask[2]) != match_value[2] ||
      000A38 90r00r02         [24] 2679 	mov	dptr,#(_data + 0x0002)
      000A3B E0               [24] 2680 	movx	a,@dptr
      000A3C FC               [12] 2681 	mov	r4,a
      000A3D 78r08            [12] 2682 	mov	r0,#(_match_mask + 0x0002)
      000A3F E6               [12] 2683 	mov	a,@r0
      000A40 52 04            [12] 2684 	anl	ar4,a
      000A42 78r0C            [12] 2685 	mov	r0,#(_match_value + 0x0002)
      000A44 86 03            [24] 2686 	mov	ar3,@r0
      000A46 EC               [12] 2687 	mov	a,r4
      000A47 B5 03 14         [24] 2688 	cjne	a,ar3,00137$
                                   2689 ;	src/dap.c:518: (data[3] & match_mask[3]) != match_value[3]) &&
      000A4A 90r00r03         [24] 2690 	mov	dptr,#(_data + 0x0003)
      000A4D E0               [24] 2691 	movx	a,@dptr
      000A4E FC               [12] 2692 	mov	r4,a
      000A4F 78r09            [12] 2693 	mov	r0,#(_match_mask + 0x0003)
      000A51 E6               [12] 2694 	mov	a,@r0
      000A52 52 04            [12] 2695 	anl	ar4,a
      000A54 78r0D            [12] 2696 	mov	r0,#(_match_value + 0x0003)
      000A56 86 03            [24] 2697 	mov	ar3,@r0
      000A58 EC               [12] 2698 	mov	a,r4
      000A59 B5 03 02         [24] 2699 	cjne	a,ar3,00587$
      000A5C 80 1E            [24] 2700 	sjmp	00141$
      000A5E                       2701 00587$:
      000A5E                       2702 00137$:
                                   2703 ;	src/dap.c:519: match_retry-- && !DAP_TransferAbort);
      000A5E 78r04            [12] 2704 	mov	r0,#_match_retry
      000A60 86 03            [24] 2705 	mov	ar3,@r0
      000A62 08               [12] 2706 	inc	r0
      000A63 86 04            [24] 2707 	mov	ar4,@r0
      000A65 78r04            [12] 2708 	mov	r0,#_match_retry
      000A67 EB               [12] 2709 	mov	a,r3
      000A68 24 FF            [12] 2710 	add	a,#0xff
      000A6A F6               [12] 2711 	mov	@r0,a
      000A6B EC               [12] 2712 	mov	a,r4
      000A6C 34 FF            [12] 2713 	addc	a,#0xff
      000A6E 08               [12] 2714 	inc	r0
      000A6F F6               [12] 2715 	mov	@r0,a
      000A70 EB               [12] 2716 	mov	a,r3
      000A71 4C               [12] 2717 	orl	a,r4
      000A72 60 08            [24] 2718 	jz	00141$
      000A74 78r0E            [12] 2719 	mov	r0,#_DAP_TransferAbort
      000A76 E6               [12] 2720 	mov	a,@r0
      000A77 70 03            [24] 2721 	jnz	00589$
      000A79 02r09rC3         [24] 2722 	ljmp	00139$
      000A7C                       2723 00589$:
      000A7C                       2724 00141$:
                                   2725 ;	src/dap.c:520: if((data[0] & match_mask[0]) != match_value[0] ||
      000A7C 90r00r00         [24] 2726 	mov	dptr,#_data
      000A7F E0               [24] 2727 	movx	a,@dptr
      000A80 FC               [12] 2728 	mov	r4,a
      000A81 78r06            [12] 2729 	mov	r0,#_match_mask
      000A83 E6               [12] 2730 	mov	a,@r0
      000A84 52 04            [12] 2731 	anl	ar4,a
      000A86 78r0A            [12] 2732 	mov	r0,#_match_value
      000A88 86 03            [24] 2733 	mov	ar3,@r0
      000A8A EC               [12] 2734 	mov	a,r4
      000A8B B5 03 38         [24] 2735 	cjne	a,ar3,00142$
                                   2736 ;	src/dap.c:521: (data[1] & match_mask[1]) != match_value[1] ||
      000A8E 90r00r01         [24] 2737 	mov	dptr,#(_data + 0x0001)
      000A91 E0               [24] 2738 	movx	a,@dptr
      000A92 FC               [12] 2739 	mov	r4,a
      000A93 78r07            [12] 2740 	mov	r0,#(_match_mask + 0x0001)
      000A95 E6               [12] 2741 	mov	a,@r0
      000A96 52 04            [12] 2742 	anl	ar4,a
      000A98 78r0B            [12] 2743 	mov	r0,#(_match_value + 0x0001)
      000A9A 86 03            [24] 2744 	mov	ar3,@r0
      000A9C EC               [12] 2745 	mov	a,r4
      000A9D B5 03 26         [24] 2746 	cjne	a,ar3,00142$
                                   2747 ;	src/dap.c:522: (data[2] & match_mask[2]) != match_value[2] ||
      000AA0 90r00r02         [24] 2748 	mov	dptr,#(_data + 0x0002)
      000AA3 E0               [24] 2749 	movx	a,@dptr
      000AA4 FC               [12] 2750 	mov	r4,a
      000AA5 78r08            [12] 2751 	mov	r0,#(_match_mask + 0x0002)
      000AA7 E6               [12] 2752 	mov	a,@r0
      000AA8 52 04            [12] 2753 	anl	ar4,a
      000AAA 78r0C            [12] 2754 	mov	r0,#(_match_value + 0x0002)
      000AAC 86 03            [24] 2755 	mov	ar3,@r0
      000AAE EC               [12] 2756 	mov	a,r4
      000AAF B5 03 14         [24] 2757 	cjne	a,ar3,00142$
                                   2758 ;	src/dap.c:523: (data[3] & match_mask[3]) != match_value[3])
      000AB2 90r00r03         [24] 2759 	mov	dptr,#(_data + 0x0003)
      000AB5 E0               [24] 2760 	movx	a,@dptr
      000AB6 FC               [12] 2761 	mov	r4,a
      000AB7 78r09            [12] 2762 	mov	r0,#(_match_mask + 0x0003)
      000AB9 E6               [12] 2763 	mov	a,@r0
      000ABA 52 04            [12] 2764 	anl	ar4,a
      000ABC 78r0D            [12] 2765 	mov	r0,#(_match_value + 0x0003)
      000ABE 86 03            [24] 2766 	mov	ar3,@r0
      000AC0 EC               [12] 2767 	mov	a,r4
      000AC1 B5 03 02         [24] 2768 	cjne	a,ar3,00596$
      000AC4 80 06            [24] 2769 	sjmp	00143$
      000AC6                       2770 00596$:
      000AC6                       2771 00142$:
                                   2772 ;	src/dap.c:524: response_value |= DAP_TRANSFER_MISMATCH;
      000AC6 78r12            [12] 2773 	mov	r0,#_response_value
      000AC8 E6               [12] 2774 	mov	a,@r0
      000AC9 44 10            [12] 2775 	orl	a,#0x10
      000ACB F6               [12] 2776 	mov	@r0,a
      000ACC                       2777 00143$:
                                   2778 ;	src/dap.c:525: if(response_value != DAP_TRANSFER_OK) break;
      000ACC 78r12            [12] 2779 	mov	r0,#_response_value
      000ACE B6 01 03         [24] 2780 	cjne	@r0,#0x01,00597$
      000AD1 02r0BrD0         [24] 2781 	ljmp	00170$
      000AD4                       2782 00597$:
      000AD4 02r0Dr43         [24] 2783 	ljmp	00226$
      000AD7                       2784 00169$:
                                   2785 ;	src/dap.c:529: retry = retry_count;
      000AD7 78r02            [12] 2786 	mov	r0,#_retry_count
      000AD9 86 03            [24] 2787 	mov	ar3,@r0
      000ADB 08               [12] 2788 	inc	r0
      000ADC 86 04            [24] 2789 	mov	ar4,@r0
      000ADE 78r13            [12] 2790 	mov	r0,#_retry
      000AE0 A6 03            [24] 2791 	mov	@r0,ar3
      000AE2 08               [12] 2792 	inc	r0
      000AE3 A6 04            [24] 2793 	mov	@r0,ar4
                                   2794 ;	src/dap.c:530: if((request_value & DAP_TRANSFER_APnDP) != 0U) {
      000AE5 ED               [12] 2795 	mov	a,r5
      000AE6 30 E0 4D         [24] 2796 	jnb	acc.0,00160$
                                   2797 ;	src/dap.c:532: if(post_read == 0U) {
      000AE9 E5*1D            [12] 2798 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000AEB 60 03            [24] 2799 	jz	00599$
      000AED 02r0BrD0         [24] 2800 	ljmp	00170$
      000AF0                       2801 00599$:
                                   2802 ;	src/dap.c:534: do {
      000AF0                       2803 00151$:
                                   2804 ;	src/dap.c:535: response_value = SWD_Transfer(request_value, NULL);
      000AF0 E4               [12] 2805 	clr	a
      000AF1 F5*08            [12] 2806 	mov	_SWD_Transfer_PARM_2,a
      000AF3 F5*09            [12] 2807 	mov	(_SWD_Transfer_PARM_2 + 1),a
      000AF5 78r10            [12] 2808 	mov	r0,#_request_value
      000AF7 86 82            [24] 2809 	mov	dpl,@r0
      000AF9 C0 07            [24] 2810 	push	ar7
      000AFB C0 06            [24] 2811 	push	ar6
      000AFD 12r01r30         [24] 2812 	lcall	_SWD_Transfer
      000B00 AD 82            [24] 2813 	mov	r5,dpl
      000B02 D0 06            [24] 2814 	pop	ar6
      000B04 D0 07            [24] 2815 	pop	ar7
      000B06 78r12            [12] 2816 	mov	r0,#_response_value
      000B08 A6 05            [24] 2817 	mov	@r0,ar5
                                   2818 ;	src/dap.c:536: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000B0A BD 02 1B         [24] 2819 	cjne	r5,#0x02,00153$
      000B0D 78r13            [12] 2820 	mov	r0,#_retry
      000B0F 86 03            [24] 2821 	mov	ar3,@r0
      000B11 08               [12] 2822 	inc	r0
      000B12 86 04            [24] 2823 	mov	ar4,@r0
      000B14 78r13            [12] 2824 	mov	r0,#_retry
      000B16 EB               [12] 2825 	mov	a,r3
      000B17 24 FF            [12] 2826 	add	a,#0xff
      000B19 F6               [12] 2827 	mov	@r0,a
      000B1A EC               [12] 2828 	mov	a,r4
      000B1B 34 FF            [12] 2829 	addc	a,#0xff
      000B1D 08               [12] 2830 	inc	r0
      000B1E F6               [12] 2831 	mov	@r0,a
      000B1F EB               [12] 2832 	mov	a,r3
      000B20 4C               [12] 2833 	orl	a,r4
      000B21 60 05            [24] 2834 	jz	00153$
      000B23 78r0E            [12] 2835 	mov	r0,#_DAP_TransferAbort
      000B25 E6               [12] 2836 	mov	a,@r0
      000B26 60 C8            [24] 2837 	jz	00151$
      000B28                       2838 00153$:
                                   2839 ;	src/dap.c:537: if(response_value != DAP_TRANSFER_OK) break;
      000B28 BD 01 02         [24] 2840 	cjne	r5,#0x01,00604$
      000B2B 80 03            [24] 2841 	sjmp	00605$
      000B2D                       2842 00604$:
      000B2D 02r0Dr43         [24] 2843 	ljmp	00226$
      000B30                       2844 00605$:
                                   2845 ;	src/dap.c:538: post_read = 1U;
      000B30 75*1D 01         [24] 2846 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x01
      000B33 02r0BrD0         [24] 2847 	ljmp	00170$
                                   2848 ;	src/dap.c:543: do {
      000B36                       2849 00160$:
                                   2850 ;	src/dap.c:544: response_value = SWD_Transfer(request_value, data);
      000B36 75*08r00         [24] 2851 	mov	_SWD_Transfer_PARM_2,#_data
      000B39 75*09s00         [24] 2852 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000B3C 78r10            [12] 2853 	mov	r0,#_request_value
      000B3E 86 82            [24] 2854 	mov	dpl,@r0
      000B40 C0 07            [24] 2855 	push	ar7
      000B42 C0 06            [24] 2856 	push	ar6
      000B44 12r01r30         [24] 2857 	lcall	_SWD_Transfer
      000B47 AD 82            [24] 2858 	mov	r5,dpl
      000B49 D0 06            [24] 2859 	pop	ar6
      000B4B D0 07            [24] 2860 	pop	ar7
      000B4D 78r12            [12] 2861 	mov	r0,#_response_value
      000B4F A6 05            [24] 2862 	mov	@r0,ar5
                                   2863 ;	src/dap.c:545: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000B51 BD 02 1B         [24] 2864 	cjne	r5,#0x02,00162$
      000B54 78r13            [12] 2865 	mov	r0,#_retry
      000B56 86 03            [24] 2866 	mov	ar3,@r0
      000B58 08               [12] 2867 	inc	r0
      000B59 86 04            [24] 2868 	mov	ar4,@r0
      000B5B 78r13            [12] 2869 	mov	r0,#_retry
      000B5D EB               [12] 2870 	mov	a,r3
      000B5E 24 FF            [12] 2871 	add	a,#0xff
      000B60 F6               [12] 2872 	mov	@r0,a
      000B61 EC               [12] 2873 	mov	a,r4
      000B62 34 FF            [12] 2874 	addc	a,#0xff
      000B64 08               [12] 2875 	inc	r0
      000B65 F6               [12] 2876 	mov	@r0,a
      000B66 EB               [12] 2877 	mov	a,r3
      000B67 4C               [12] 2878 	orl	a,r4
      000B68 60 05            [24] 2879 	jz	00162$
      000B6A 78r0E            [12] 2880 	mov	r0,#_DAP_TransferAbort
      000B6C E6               [12] 2881 	mov	a,@r0
      000B6D 60 C7            [24] 2882 	jz	00160$
      000B6F                       2883 00162$:
                                   2884 ;	src/dap.c:546: if(response_value != DAP_TRANSFER_OK) break;
      000B6F BD 01 02         [24] 2885 	cjne	r5,#0x01,00610$
      000B72 80 03            [24] 2886 	sjmp	00611$
      000B74                       2887 00610$:
      000B74 02r0Dr43         [24] 2888 	ljmp	00226$
      000B77                       2889 00611$:
                                   2890 ;	src/dap.c:549: *res++ = data[0];
      000B77 AC*19            [24] 2891 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000B79 AD*1A            [24] 2892 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000B7B 90r00r00         [24] 2893 	mov	dptr,#_data
      000B7E E0               [24] 2894 	movx	a,@dptr
      000B7F 8C 82            [24] 2895 	mov	dpl,r4
      000B81 8D 83            [24] 2896 	mov	dph,r5
      000B83 F0               [24] 2897 	movx	@dptr,a
      000B84 74 01            [12] 2898 	mov	a,#0x01
      000B86 2C               [12] 2899 	add	a,r4
      000B87 F5*19            [12] 2900 	mov	_DAP_SWD_Transfer_PARM_2,a
      000B89 E4               [12] 2901 	clr	a
      000B8A 3D               [12] 2902 	addc	a,r5
      000B8B F5*1A            [12] 2903 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2904 ;	src/dap.c:550: *res++ = data[1];
      000B8D AC*19            [24] 2905 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000B8F AD*1A            [24] 2906 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000B91 90r00r01         [24] 2907 	mov	dptr,#(_data + 0x0001)
      000B94 E0               [24] 2908 	movx	a,@dptr
      000B95 8C 82            [24] 2909 	mov	dpl,r4
      000B97 8D 83            [24] 2910 	mov	dph,r5
      000B99 F0               [24] 2911 	movx	@dptr,a
      000B9A 74 01            [12] 2912 	mov	a,#0x01
      000B9C 2C               [12] 2913 	add	a,r4
      000B9D F5*19            [12] 2914 	mov	_DAP_SWD_Transfer_PARM_2,a
      000B9F E4               [12] 2915 	clr	a
      000BA0 3D               [12] 2916 	addc	a,r5
      000BA1 F5*1A            [12] 2917 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2918 ;	src/dap.c:551: *res++ = data[2];
      000BA3 AC*19            [24] 2919 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000BA5 AD*1A            [24] 2920 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000BA7 90r00r02         [24] 2921 	mov	dptr,#(_data + 0x0002)
      000BAA E0               [24] 2922 	movx	a,@dptr
      000BAB 8C 82            [24] 2923 	mov	dpl,r4
      000BAD 8D 83            [24] 2924 	mov	dph,r5
      000BAF F0               [24] 2925 	movx	@dptr,a
      000BB0 74 01            [12] 2926 	mov	a,#0x01
      000BB2 2C               [12] 2927 	add	a,r4
      000BB3 F5*19            [12] 2928 	mov	_DAP_SWD_Transfer_PARM_2,a
      000BB5 E4               [12] 2929 	clr	a
      000BB6 3D               [12] 2930 	addc	a,r5
      000BB7 F5*1A            [12] 2931 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2932 ;	src/dap.c:552: *res++ = data[3];
      000BB9 AC*19            [24] 2933 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000BBB AD*1A            [24] 2934 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000BBD 90r00r03         [24] 2935 	mov	dptr,#(_data + 0x0003)
      000BC0 E0               [24] 2936 	movx	a,@dptr
      000BC1 FB               [12] 2937 	mov	r3,a
      000BC2 8C 82            [24] 2938 	mov	dpl,r4
      000BC4 8D 83            [24] 2939 	mov	dph,r5
      000BC6 F0               [24] 2940 	movx	@dptr,a
      000BC7 74 01            [12] 2941 	mov	a,#0x01
      000BC9 2C               [12] 2942 	add	a,r4
      000BCA F5*19            [12] 2943 	mov	_DAP_SWD_Transfer_PARM_2,a
      000BCC E4               [12] 2944 	clr	a
      000BCD 3D               [12] 2945 	addc	a,r5
      000BCE F5*1A            [12] 2946 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
      000BD0                       2947 00170$:
                                   2948 ;	src/dap.c:555: check_write = 0U;
      000BD0 75*1E 00         [24] 2949 	mov	_DAP_SWD_Transfer_check_write_65536_140,#0x00
      000BD3 02r0Dr35         [24] 2950 	ljmp	00192$
      000BD6                       2951 00191$:
                                   2952 ;	src/dap.c:559: if(post_read) {
      000BD6 E5*1D            [12] 2953 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000BD8 70 03            [24] 2954 	jnz	00612$
      000BDA 02r0Cr87         [24] 2955 	ljmp	00179$
      000BDD                       2956 00612$:
                                   2957 ;	src/dap.c:561: retry = retry_count;
      000BDD 78r02            [12] 2958 	mov	r0,#_retry_count
      000BDF 86 04            [24] 2959 	mov	ar4,@r0
      000BE1 08               [12] 2960 	inc	r0
      000BE2 86 05            [24] 2961 	mov	ar5,@r0
      000BE4 78r13            [12] 2962 	mov	r0,#_retry
      000BE6 A6 04            [24] 2963 	mov	@r0,ar4
      000BE8 08               [12] 2964 	inc	r0
      000BE9 A6 05            [24] 2965 	mov	@r0,ar5
                                   2966 ;	src/dap.c:562: do {
      000BEB                       2967 00173$:
                                   2968 ;	src/dap.c:563: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, data);
      000BEB 75*08r00         [24] 2969 	mov	_SWD_Transfer_PARM_2,#_data
      000BEE 75*09s00         [24] 2970 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000BF1 75 82 0E         [24] 2971 	mov	dpl,#0x0e
      000BF4 C0 07            [24] 2972 	push	ar7
      000BF6 C0 06            [24] 2973 	push	ar6
      000BF8 12r01r30         [24] 2974 	lcall	_SWD_Transfer
      000BFB AD 82            [24] 2975 	mov	r5,dpl
      000BFD D0 06            [24] 2976 	pop	ar6
      000BFF D0 07            [24] 2977 	pop	ar7
      000C01 78r12            [12] 2978 	mov	r0,#_response_value
      000C03 A6 05            [24] 2979 	mov	@r0,ar5
                                   2980 ;	src/dap.c:564: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000C05 BD 02 1B         [24] 2981 	cjne	r5,#0x02,00175$
      000C08 78r13            [12] 2982 	mov	r0,#_retry
      000C0A 86 03            [24] 2983 	mov	ar3,@r0
      000C0C 08               [12] 2984 	inc	r0
      000C0D 86 04            [24] 2985 	mov	ar4,@r0
      000C0F 78r13            [12] 2986 	mov	r0,#_retry
      000C11 EB               [12] 2987 	mov	a,r3
      000C12 24 FF            [12] 2988 	add	a,#0xff
      000C14 F6               [12] 2989 	mov	@r0,a
      000C15 EC               [12] 2990 	mov	a,r4
      000C16 34 FF            [12] 2991 	addc	a,#0xff
      000C18 08               [12] 2992 	inc	r0
      000C19 F6               [12] 2993 	mov	@r0,a
      000C1A EB               [12] 2994 	mov	a,r3
      000C1B 4C               [12] 2995 	orl	a,r4
      000C1C 60 05            [24] 2996 	jz	00175$
      000C1E 78r0E            [12] 2997 	mov	r0,#_DAP_TransferAbort
      000C20 E6               [12] 2998 	mov	a,@r0
      000C21 60 C8            [24] 2999 	jz	00173$
      000C23                       3000 00175$:
                                   3001 ;	src/dap.c:565: if(response_value != DAP_TRANSFER_OK) break;
      000C23 BD 01 02         [24] 3002 	cjne	r5,#0x01,00617$
      000C26 80 03            [24] 3003 	sjmp	00618$
      000C28                       3004 00617$:
      000C28 02r0Dr43         [24] 3005 	ljmp	00226$
      000C2B                       3006 00618$:
                                   3007 ;	src/dap.c:568: *res++ = data[0];
      000C2B AC*19            [24] 3008 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000C2D AD*1A            [24] 3009 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000C2F 90r00r00         [24] 3010 	mov	dptr,#_data
      000C32 E0               [24] 3011 	movx	a,@dptr
      000C33 8C 82            [24] 3012 	mov	dpl,r4
      000C35 8D 83            [24] 3013 	mov	dph,r5
      000C37 F0               [24] 3014 	movx	@dptr,a
      000C38 74 01            [12] 3015 	mov	a,#0x01
      000C3A 2C               [12] 3016 	add	a,r4
      000C3B F5*19            [12] 3017 	mov	_DAP_SWD_Transfer_PARM_2,a
      000C3D E4               [12] 3018 	clr	a
      000C3E 3D               [12] 3019 	addc	a,r5
      000C3F F5*1A            [12] 3020 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3021 ;	src/dap.c:569: *res++ = data[1];
      000C41 AC*19            [24] 3022 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000C43 AD*1A            [24] 3023 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000C45 90r00r01         [24] 3024 	mov	dptr,#(_data + 0x0001)
      000C48 E0               [24] 3025 	movx	a,@dptr
      000C49 8C 82            [24] 3026 	mov	dpl,r4
      000C4B 8D 83            [24] 3027 	mov	dph,r5
      000C4D F0               [24] 3028 	movx	@dptr,a
      000C4E 74 01            [12] 3029 	mov	a,#0x01
      000C50 2C               [12] 3030 	add	a,r4
      000C51 F5*19            [12] 3031 	mov	_DAP_SWD_Transfer_PARM_2,a
      000C53 E4               [12] 3032 	clr	a
      000C54 3D               [12] 3033 	addc	a,r5
      000C55 F5*1A            [12] 3034 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3035 ;	src/dap.c:570: *res++ = data[2];
      000C57 AC*19            [24] 3036 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000C59 AD*1A            [24] 3037 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000C5B 90r00r02         [24] 3038 	mov	dptr,#(_data + 0x0002)
      000C5E E0               [24] 3039 	movx	a,@dptr
      000C5F 8C 82            [24] 3040 	mov	dpl,r4
      000C61 8D 83            [24] 3041 	mov	dph,r5
      000C63 F0               [24] 3042 	movx	@dptr,a
      000C64 74 01            [12] 3043 	mov	a,#0x01
      000C66 2C               [12] 3044 	add	a,r4
      000C67 F5*19            [12] 3045 	mov	_DAP_SWD_Transfer_PARM_2,a
      000C69 E4               [12] 3046 	clr	a
      000C6A 3D               [12] 3047 	addc	a,r5
      000C6B F5*1A            [12] 3048 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3049 ;	src/dap.c:571: *res++ = data[3];
      000C6D AC*19            [24] 3050 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000C6F AD*1A            [24] 3051 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000C71 90r00r03         [24] 3052 	mov	dptr,#(_data + 0x0003)
      000C74 E0               [24] 3053 	movx	a,@dptr
      000C75 FB               [12] 3054 	mov	r3,a
      000C76 8C 82            [24] 3055 	mov	dpl,r4
      000C78 8D 83            [24] 3056 	mov	dph,r5
      000C7A F0               [24] 3057 	movx	@dptr,a
      000C7B 74 01            [12] 3058 	mov	a,#0x01
      000C7D 2C               [12] 3059 	add	a,r4
      000C7E F5*19            [12] 3060 	mov	_DAP_SWD_Transfer_PARM_2,a
      000C80 E4               [12] 3061 	clr	a
      000C81 3D               [12] 3062 	addc	a,r5
      000C82 F5*1A            [12] 3063 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3064 ;	src/dap.c:572: post_read = 0U;
      000C84 75*1D 00         [24] 3065 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x00
      000C87                       3066 00179$:
                                   3067 ;	src/dap.c:575: data[0] = (uint8_t)(*(req + 0));
      000C87 8E 82            [24] 3068 	mov	dpl,r6
      000C89 8F 83            [24] 3069 	mov	dph,r7
      000C8B E0               [24] 3070 	movx	a,@dptr
      000C8C 90r00r00         [24] 3071 	mov	dptr,#_data
      000C8F F0               [24] 3072 	movx	@dptr,a
                                   3073 ;	src/dap.c:576: data[1] = (uint8_t)(*(req + 1));
      000C90 8E 82            [24] 3074 	mov	dpl,r6
      000C92 8F 83            [24] 3075 	mov	dph,r7
      000C94 A3               [24] 3076 	inc	dptr
      000C95 E0               [24] 3077 	movx	a,@dptr
      000C96 90r00r01         [24] 3078 	mov	dptr,#(_data + 0x0001)
      000C99 F0               [24] 3079 	movx	@dptr,a
                                   3080 ;	src/dap.c:577: data[2] = (uint8_t)(*(req + 2));
      000C9A 8E 82            [24] 3081 	mov	dpl,r6
      000C9C 8F 83            [24] 3082 	mov	dph,r7
      000C9E A3               [24] 3083 	inc	dptr
      000C9F A3               [24] 3084 	inc	dptr
      000CA0 E0               [24] 3085 	movx	a,@dptr
      000CA1 90r00r02         [24] 3086 	mov	dptr,#(_data + 0x0002)
      000CA4 F0               [24] 3087 	movx	@dptr,a
                                   3088 ;	src/dap.c:578: data[3] = (uint8_t)(*(req + 3));
      000CA5 8E 82            [24] 3089 	mov	dpl,r6
      000CA7 8F 83            [24] 3090 	mov	dph,r7
      000CA9 A3               [24] 3091 	inc	dptr
      000CAA A3               [24] 3092 	inc	dptr
      000CAB A3               [24] 3093 	inc	dptr
      000CAC E0               [24] 3094 	movx	a,@dptr
      000CAD 90r00r03         [24] 3095 	mov	dptr,#(_data + 0x0003)
      000CB0 F0               [24] 3096 	movx	@dptr,a
                                   3097 ;	src/dap.c:579: req += 4;
      000CB1 74 04            [12] 3098 	mov	a,#0x04
      000CB3 2E               [12] 3099 	add	a,r6
      000CB4 FE               [12] 3100 	mov	r6,a
      000CB5 E4               [12] 3101 	clr	a
      000CB6 3F               [12] 3102 	addc	a,r7
      000CB7 FF               [12] 3103 	mov	r7,a
                                   3104 ;	src/dap.c:580: if((request_value & DAP_TRANSFER_MATCH_MASK) != 0U) {
      000CB8 78r10            [12] 3105 	mov	r0,#_request_value
      000CBA E6               [12] 3106 	mov	a,@r0
      000CBB 30 E5 2A         [24] 3107 	jnb	acc.5,00188$
                                   3108 ;	src/dap.c:582: match_mask[0] = data[0];
      000CBE 90r00r00         [24] 3109 	mov	dptr,#_data
      000CC1 E0               [24] 3110 	movx	a,@dptr
      000CC2 FD               [12] 3111 	mov	r5,a
      000CC3 78r06            [12] 3112 	mov	r0,#_match_mask
      000CC5 A6 05            [24] 3113 	mov	@r0,ar5
                                   3114 ;	src/dap.c:583: match_mask[1] = data[1];
      000CC7 90r00r01         [24] 3115 	mov	dptr,#(_data + 0x0001)
      000CCA E0               [24] 3116 	movx	a,@dptr
      000CCB FD               [12] 3117 	mov	r5,a
      000CCC 78r07            [12] 3118 	mov	r0,#(_match_mask + 0x0001)
      000CCE A6 05            [24] 3119 	mov	@r0,ar5
                                   3120 ;	src/dap.c:584: match_mask[2] = data[2];
      000CD0 90r00r02         [24] 3121 	mov	dptr,#(_data + 0x0002)
      000CD3 E0               [24] 3122 	movx	a,@dptr
      000CD4 FD               [12] 3123 	mov	r5,a
      000CD5 78r08            [12] 3124 	mov	r0,#(_match_mask + 0x0002)
      000CD7 A6 05            [24] 3125 	mov	@r0,ar5
                                   3126 ;	src/dap.c:585: match_mask[3] = data[3];
      000CD9 90r00r03         [24] 3127 	mov	dptr,#(_data + 0x0003)
      000CDC E0               [24] 3128 	movx	a,@dptr
      000CDD FD               [12] 3129 	mov	r5,a
      000CDE 78r09            [12] 3130 	mov	r0,#(_match_mask + 0x0003)
      000CE0 A6 05            [24] 3131 	mov	@r0,ar5
                                   3132 ;	src/dap.c:586: response_value = DAP_TRANSFER_OK;
      000CE2 78r12            [12] 3133 	mov	r0,#_response_value
      000CE4 76 01            [12] 3134 	mov	@r0,#0x01
      000CE6 80 4D            [24] 3135 	sjmp	00192$
      000CE8                       3136 00188$:
                                   3137 ;	src/dap.c:590: retry = retry_count;
      000CE8 78r02            [12] 3138 	mov	r0,#_retry_count
      000CEA 86 04            [24] 3139 	mov	ar4,@r0
      000CEC 08               [12] 3140 	inc	r0
      000CED 86 05            [24] 3141 	mov	ar5,@r0
      000CEF 78r13            [12] 3142 	mov	r0,#_retry
      000CF1 A6 04            [24] 3143 	mov	@r0,ar4
      000CF3 08               [12] 3144 	inc	r0
      000CF4 A6 05            [24] 3145 	mov	@r0,ar5
                                   3146 ;	src/dap.c:591: do {
      000CF6                       3147 00182$:
                                   3148 ;	src/dap.c:592: response_value = SWD_Transfer(request_value, data);
      000CF6 75*08r00         [24] 3149 	mov	_SWD_Transfer_PARM_2,#_data
      000CF9 75*09s00         [24] 3150 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000CFC 78r10            [12] 3151 	mov	r0,#_request_value
      000CFE 86 82            [24] 3152 	mov	dpl,@r0
      000D00 C0 07            [24] 3153 	push	ar7
      000D02 C0 06            [24] 3154 	push	ar6
      000D04 12r01r30         [24] 3155 	lcall	_SWD_Transfer
      000D07 AD 82            [24] 3156 	mov	r5,dpl
      000D09 D0 06            [24] 3157 	pop	ar6
      000D0B D0 07            [24] 3158 	pop	ar7
      000D0D 78r12            [12] 3159 	mov	r0,#_response_value
      000D0F A6 05            [24] 3160 	mov	@r0,ar5
                                   3161 ;	src/dap.c:593: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000D11 BD 02 1B         [24] 3162 	cjne	r5,#0x02,00184$
      000D14 78r13            [12] 3163 	mov	r0,#_retry
      000D16 86 03            [24] 3164 	mov	ar3,@r0
      000D18 08               [12] 3165 	inc	r0
      000D19 86 04            [24] 3166 	mov	ar4,@r0
      000D1B 78r13            [12] 3167 	mov	r0,#_retry
      000D1D EB               [12] 3168 	mov	a,r3
      000D1E 24 FF            [12] 3169 	add	a,#0xff
      000D20 F6               [12] 3170 	mov	@r0,a
      000D21 EC               [12] 3171 	mov	a,r4
      000D22 34 FF            [12] 3172 	addc	a,#0xff
      000D24 08               [12] 3173 	inc	r0
      000D25 F6               [12] 3174 	mov	@r0,a
      000D26 EB               [12] 3175 	mov	a,r3
      000D27 4C               [12] 3176 	orl	a,r4
      000D28 60 05            [24] 3177 	jz	00184$
      000D2A 78r0E            [12] 3178 	mov	r0,#_DAP_TransferAbort
      000D2C E6               [12] 3179 	mov	a,@r0
      000D2D 60 C7            [24] 3180 	jz	00182$
      000D2F                       3181 00184$:
                                   3182 ;	src/dap.c:594: if(response_value != DAP_TRANSFER_OK) break;
      000D2F BD 01 11         [24] 3183 	cjne	r5,#0x01,00226$
                                   3184 ;	src/dap.c:595: check_write = 1U;
      000D32 75*1E 01         [24] 3185 	mov	_DAP_SWD_Transfer_check_write_65536_140,#0x01
      000D35                       3186 00192$:
                                   3187 ;	src/dap.c:598: response_count++;
      000D35 78r11            [12] 3188 	mov	r0,#_response_count
      000D37 06               [12] 3189 	inc	@r0
                                   3190 ;	src/dap.c:599: if(DAP_TransferAbort) break;
      000D38 78r0E            [12] 3191 	mov	r0,#_DAP_TransferAbort
      000D3A E6               [12] 3192 	mov	a,@r0
      000D3B 70 06            [24] 3193 	jnz	00226$
                                   3194 ;	src/dap.c:461: for(; request_count != 0U; request_count--) {
      000D3D 78r0F            [12] 3195 	mov	r0,#_request_count
      000D3F 16               [12] 3196 	dec	@r0
      000D40 02r08r16         [24] 3197 	ljmp	00223$
      000D43                       3198 00226$:
                                   3199 ;	src/dap.c:602: for(; request_count != 0U; request_count--) {
      000D43 78r0F            [12] 3200 	mov	r0,#_request_count
      000D45 E6               [12] 3201 	mov	a,@r0
      000D46 60 2C            [24] 3202 	jz	00201$
                                   3203 ;	src/dap.c:604: request_value = *req++;
      000D48 8E 82            [24] 3204 	mov	dpl,r6
      000D4A 8F 83            [24] 3205 	mov	dph,r7
      000D4C E0               [24] 3206 	movx	a,@dptr
      000D4D FD               [12] 3207 	mov	r5,a
      000D4E A3               [24] 3208 	inc	dptr
      000D4F AE 82            [24] 3209 	mov	r6,dpl
      000D51 AF 83            [24] 3210 	mov	r7,dph
      000D53 78r10            [12] 3211 	mov	r0,#_request_value
      000D55 A6 05            [24] 3212 	mov	@r0,ar5
                                   3213 ;	src/dap.c:605: if((request_value & DAP_TRANSFER_RnW) != 0U) {  // Read register
      000D57 ED               [12] 3214 	mov	a,r5
      000D58 30 E1 0D         [24] 3215 	jnb	acc.1,00199$
                                   3216 ;	src/dap.c:606: if((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) req += 4;
      000D5B ED               [12] 3217 	mov	a,r5
      000D5C 30 E4 10         [24] 3218 	jnb	acc.4,00227$
      000D5F 74 04            [12] 3219 	mov	a,#0x04
      000D61 2E               [12] 3220 	add	a,r6
      000D62 FE               [12] 3221 	mov	r6,a
      000D63 E4               [12] 3222 	clr	a
      000D64 3F               [12] 3223 	addc	a,r7
      000D65 FF               [12] 3224 	mov	r7,a
      000D66 80 07            [24] 3225 	sjmp	00227$
      000D68                       3226 00199$:
                                   3227 ;	src/dap.c:608: else req += 4;                                  // Write register
      000D68 74 04            [12] 3228 	mov	a,#0x04
      000D6A 2E               [12] 3229 	add	a,r6
      000D6B FE               [12] 3230 	mov	r6,a
      000D6C E4               [12] 3231 	clr	a
      000D6D 3F               [12] 3232 	addc	a,r7
      000D6E FF               [12] 3233 	mov	r7,a
      000D6F                       3234 00227$:
                                   3235 ;	src/dap.c:602: for(; request_count != 0U; request_count--) {
      000D6F 78r0F            [12] 3236 	mov	r0,#_request_count
      000D71 16               [12] 3237 	dec	@r0
      000D72 80 CF            [24] 3238 	sjmp	00226$
      000D74                       3239 00201$:
                                   3240 ;	src/dap.c:611: if(response_value == DAP_TRANSFER_OK) {
      000D74 78r12            [12] 3241 	mov	r0,#_response_value
      000D76 B6 01 02         [24] 3242 	cjne	@r0,#0x01,00630$
      000D79 80 03            [24] 3243 	sjmp	00631$
      000D7B                       3244 00630$:
      000D7B 02r0Er67         [24] 3245 	ljmp	00221$
      000D7E                       3246 00631$:
                                   3247 ;	src/dap.c:612: if(post_read) {
      000D7E E5*1D            [12] 3248 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000D80 70 03            [24] 3249 	jnz	00632$
      000D82 02r0Er26         [24] 3250 	ljmp	00217$
      000D85                       3251 00632$:
                                   3252 ;	src/dap.c:614: retry = retry_count;
      000D85 78r02            [12] 3253 	mov	r0,#_retry_count
      000D87 86 06            [24] 3254 	mov	ar6,@r0
      000D89 08               [12] 3255 	inc	r0
      000D8A 86 07            [24] 3256 	mov	ar7,@r0
      000D8C 78r13            [12] 3257 	mov	r0,#_retry
      000D8E A6 06            [24] 3258 	mov	@r0,ar6
      000D90 08               [12] 3259 	inc	r0
      000D91 A6 07            [24] 3260 	mov	@r0,ar7
                                   3261 ;	src/dap.c:615: do {
      000D93                       3262 00204$:
                                   3263 ;	src/dap.c:616: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, data);
      000D93 75*08r00         [24] 3264 	mov	_SWD_Transfer_PARM_2,#_data
      000D96 75*09s00         [24] 3265 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000D99 75 82 0E         [24] 3266 	mov	dpl,#0x0e
      000D9C 12r01r30         [24] 3267 	lcall	_SWD_Transfer
      000D9F AF 82            [24] 3268 	mov	r7,dpl
      000DA1 78r12            [12] 3269 	mov	r0,#_response_value
      000DA3 A6 07            [24] 3270 	mov	@r0,ar7
                                   3271 ;	src/dap.c:617: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000DA5 BF 02 1B         [24] 3272 	cjne	r7,#0x02,00206$
      000DA8 78r13            [12] 3273 	mov	r0,#_retry
      000DAA 86 05            [24] 3274 	mov	ar5,@r0
      000DAC 08               [12] 3275 	inc	r0
      000DAD 86 06            [24] 3276 	mov	ar6,@r0
      000DAF 78r13            [12] 3277 	mov	r0,#_retry
      000DB1 ED               [12] 3278 	mov	a,r5
      000DB2 24 FF            [12] 3279 	add	a,#0xff
      000DB4 F6               [12] 3280 	mov	@r0,a
      000DB5 EE               [12] 3281 	mov	a,r6
      000DB6 34 FF            [12] 3282 	addc	a,#0xff
      000DB8 08               [12] 3283 	inc	r0
      000DB9 F6               [12] 3284 	mov	@r0,a
      000DBA ED               [12] 3285 	mov	a,r5
      000DBB 4E               [12] 3286 	orl	a,r6
      000DBC 60 05            [24] 3287 	jz	00206$
      000DBE 78r0E            [12] 3288 	mov	r0,#_DAP_TransferAbort
      000DC0 E6               [12] 3289 	mov	a,@r0
      000DC1 60 D0            [24] 3290 	jz	00204$
      000DC3                       3291 00206$:
                                   3292 ;	src/dap.c:618: if(response_value != DAP_TRANSFER_OK) goto end;
      000DC3 BF 01 02         [24] 3293 	cjne	r7,#0x01,00637$
      000DC6 80 03            [24] 3294 	sjmp	00638$
      000DC8                       3295 00637$:
      000DC8 02r0Er67         [24] 3296 	ljmp	00221$
      000DCB                       3297 00638$:
                                   3298 ;	src/dap.c:621: *res++ = (uint8_t)data[0];
      000DCB AE*19            [24] 3299 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000DCD AF*1A            [24] 3300 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000DCF 90r00r00         [24] 3301 	mov	dptr,#_data
      000DD2 E0               [24] 3302 	movx	a,@dptr
      000DD3 8E 82            [24] 3303 	mov	dpl,r6
      000DD5 8F 83            [24] 3304 	mov	dph,r7
      000DD7 F0               [24] 3305 	movx	@dptr,a
      000DD8 74 01            [12] 3306 	mov	a,#0x01
      000DDA 2E               [12] 3307 	add	a,r6
      000DDB F5*19            [12] 3308 	mov	_DAP_SWD_Transfer_PARM_2,a
      000DDD E4               [12] 3309 	clr	a
      000DDE 3F               [12] 3310 	addc	a,r7
      000DDF F5*1A            [12] 3311 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3312 ;	src/dap.c:622: *res++ = (uint8_t)data[1];
      000DE1 AE*19            [24] 3313 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000DE3 AF*1A            [24] 3314 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000DE5 90r00r01         [24] 3315 	mov	dptr,#(_data + 0x0001)
      000DE8 E0               [24] 3316 	movx	a,@dptr
      000DE9 8E 82            [24] 3317 	mov	dpl,r6
      000DEB 8F 83            [24] 3318 	mov	dph,r7
      000DED F0               [24] 3319 	movx	@dptr,a
      000DEE 74 01            [12] 3320 	mov	a,#0x01
      000DF0 2E               [12] 3321 	add	a,r6
      000DF1 F5*19            [12] 3322 	mov	_DAP_SWD_Transfer_PARM_2,a
      000DF3 E4               [12] 3323 	clr	a
      000DF4 3F               [12] 3324 	addc	a,r7
      000DF5 F5*1A            [12] 3325 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3326 ;	src/dap.c:623: *res++ = (uint8_t)data[2];
      000DF7 AE*19            [24] 3327 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000DF9 AF*1A            [24] 3328 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000DFB 90r00r02         [24] 3329 	mov	dptr,#(_data + 0x0002)
      000DFE E0               [24] 3330 	movx	a,@dptr
      000DFF 8E 82            [24] 3331 	mov	dpl,r6
      000E01 8F 83            [24] 3332 	mov	dph,r7
      000E03 F0               [24] 3333 	movx	@dptr,a
      000E04 74 01            [12] 3334 	mov	a,#0x01
      000E06 2E               [12] 3335 	add	a,r6
      000E07 F5*19            [12] 3336 	mov	_DAP_SWD_Transfer_PARM_2,a
      000E09 E4               [12] 3337 	clr	a
      000E0A 3F               [12] 3338 	addc	a,r7
      000E0B F5*1A            [12] 3339 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3340 ;	src/dap.c:624: *res++ = (uint8_t)data[3];
      000E0D AE*19            [24] 3341 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000E0F AF*1A            [24] 3342 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000E11 90r00r03         [24] 3343 	mov	dptr,#(_data + 0x0003)
      000E14 E0               [24] 3344 	movx	a,@dptr
      000E15 FD               [12] 3345 	mov	r5,a
      000E16 8E 82            [24] 3346 	mov	dpl,r6
      000E18 8F 83            [24] 3347 	mov	dph,r7
      000E1A F0               [24] 3348 	movx	@dptr,a
      000E1B 74 01            [12] 3349 	mov	a,#0x01
      000E1D 2E               [12] 3350 	add	a,r6
      000E1E F5*19            [12] 3351 	mov	_DAP_SWD_Transfer_PARM_2,a
      000E20 E4               [12] 3352 	clr	a
      000E21 3F               [12] 3353 	addc	a,r7
      000E22 F5*1A            [12] 3354 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
      000E24 80 41            [24] 3355 	sjmp	00221$
      000E26                       3356 00217$:
                                   3357 ;	src/dap.c:626: else if(check_write) {
      000E26 E5*1E            [12] 3358 	mov	a,_DAP_SWD_Transfer_check_write_65536_140
      000E28 60 3D            [24] 3359 	jz	00221$
                                   3360 ;	src/dap.c:628: retry = retry_count;
      000E2A 78r02            [12] 3361 	mov	r0,#_retry_count
      000E2C 86 06            [24] 3362 	mov	ar6,@r0
      000E2E 08               [12] 3363 	inc	r0
      000E2F 86 07            [24] 3364 	mov	ar7,@r0
      000E31 78r13            [12] 3365 	mov	r0,#_retry
      000E33 A6 06            [24] 3366 	mov	@r0,ar6
      000E35 08               [12] 3367 	inc	r0
      000E36 A6 07            [24] 3368 	mov	@r0,ar7
                                   3369 ;	src/dap.c:629: do {
      000E38                       3370 00211$:
                                   3371 ;	src/dap.c:630: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL);
      000E38 E4               [12] 3372 	clr	a
      000E39 F5*08            [12] 3373 	mov	_SWD_Transfer_PARM_2,a
      000E3B F5*09            [12] 3374 	mov	(_SWD_Transfer_PARM_2 + 1),a
      000E3D 75 82 0E         [24] 3375 	mov	dpl,#0x0e
      000E40 12r01r30         [24] 3376 	lcall	_SWD_Transfer
      000E43 AF 82            [24] 3377 	mov	r7,dpl
      000E45 78r12            [12] 3378 	mov	r0,#_response_value
      000E47 A6 07            [24] 3379 	mov	@r0,ar7
                                   3380 ;	src/dap.c:631: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000E49 BF 02 1B         [24] 3381 	cjne	r7,#0x02,00221$
      000E4C 78r13            [12] 3382 	mov	r0,#_retry
      000E4E 86 06            [24] 3383 	mov	ar6,@r0
      000E50 08               [12] 3384 	inc	r0
      000E51 86 07            [24] 3385 	mov	ar7,@r0
      000E53 78r13            [12] 3386 	mov	r0,#_retry
      000E55 EE               [12] 3387 	mov	a,r6
      000E56 24 FF            [12] 3388 	add	a,#0xff
      000E58 F6               [12] 3389 	mov	@r0,a
      000E59 EF               [12] 3390 	mov	a,r7
      000E5A 34 FF            [12] 3391 	addc	a,#0xff
      000E5C 08               [12] 3392 	inc	r0
      000E5D F6               [12] 3393 	mov	@r0,a
      000E5E EE               [12] 3394 	mov	a,r6
      000E5F 4F               [12] 3395 	orl	a,r7
      000E60 60 05            [24] 3396 	jz	00221$
      000E62 78r0E            [12] 3397 	mov	r0,#_DAP_TransferAbort
      000E64 E6               [12] 3398 	mov	a,@r0
      000E65 60 D1            [24] 3399 	jz	00211$
                                   3400 ;	src/dap.c:635: end:
      000E67                       3401 00221$:
                                   3402 ;	src/dap.c:636: *(response_head + 0) = (uint8_t)response_count;
      000E67 85*1B 82         [24] 3403 	mov	dpl,_DAP_SWD_Transfer_response_head_65536_140
      000E6A 85*1C 83         [24] 3404 	mov	dph,(_DAP_SWD_Transfer_response_head_65536_140 + 1)
      000E6D 78r11            [12] 3405 	mov	r0,#_response_count
      000E6F E6               [12] 3406 	mov	a,@r0
      000E70 F0               [24] 3407 	movx	@dptr,a
                                   3408 ;	src/dap.c:637: *(response_head + 1) = (uint8_t)response_value;
      000E71 85*1B 82         [24] 3409 	mov	dpl,_DAP_SWD_Transfer_response_head_65536_140
      000E74 85*1C 83         [24] 3410 	mov	dph,(_DAP_SWD_Transfer_response_head_65536_140 + 1)
      000E77 A3               [24] 3411 	inc	dptr
      000E78 78r12            [12] 3412 	mov	r0,#_response_value
      000E7A E6               [12] 3413 	mov	a,@r0
      000E7B F0               [24] 3414 	movx	@dptr,a
                                   3415 ;	src/dap.c:638: return((uint8_t)(res - response_head));
      000E7C AF*19            [24] 3416 	mov	r7,_DAP_SWD_Transfer_PARM_2
      000E7E AC*1B            [24] 3417 	mov	r4,_DAP_SWD_Transfer_response_head_65536_140
      000E80 EF               [12] 3418 	mov	a,r7
      000E81 C3               [12] 3419 	clr	c
      000E82 9C               [12] 3420 	subb	a,r4
      000E83 F5 82            [12] 3421 	mov	dpl,a
                                   3422 ;	src/dap.c:639: }
      000E85 22               [24] 3423 	ret
                                   3424 ;------------------------------------------------------------
                                   3425 ;Allocation info for local variables in function 'DAP_SWD_TransferBlock'
                                   3426 ;------------------------------------------------------------
                                   3427 ;res                       Allocated with name '_DAP_SWD_TransferBlock_PARM_2'
                                   3428 ;req                       Allocated to registers r6 r7 
                                   3429 ;response_head             Allocated with name '_DAP_SWD_TransferBlock_response_head_65536_175'
                                   3430 ;------------------------------------------------------------
                                   3431 ;	src/dap.c:647: static uint8_t DAP_SWD_TransferBlock(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   3432 ;	-----------------------------------------
                                   3433 ;	 function DAP_SWD_TransferBlock
                                   3434 ;	-----------------------------------------
      000E86                       3435 _DAP_SWD_TransferBlock:
      000E86 AE 82            [24] 3436 	mov	r6,dpl
      000E88 AF 83            [24] 3437 	mov	r7,dph
                                   3438 ;	src/dap.c:649: response_count = 0U;
      000E8A 78r11            [12] 3439 	mov	r0,#_response_count
      000E8C 76 00            [12] 3440 	mov	@r0,#0x00
                                   3441 ;	src/dap.c:650: response_value = 0U;
      000E8E 78r12            [12] 3442 	mov	r0,#_response_value
      000E90 76 00            [12] 3443 	mov	@r0,#0x00
                                   3444 ;	src/dap.c:651: response_head = res;
      000E92 85*20*22         [24] 3445 	mov	_DAP_SWD_TransferBlock_response_head_65536_175,_DAP_SWD_TransferBlock_PARM_2
      000E95 85*21*23         [24] 3446 	mov	(_DAP_SWD_TransferBlock_response_head_65536_175 + 1),(_DAP_SWD_TransferBlock_PARM_2 + 1)
                                   3447 ;	src/dap.c:652: res += 3;
      000E98 74 03            [12] 3448 	mov	a,#0x03
      000E9A 25*22            [12] 3449 	add	a,_DAP_SWD_TransferBlock_response_head_65536_175
      000E9C F5*20            [12] 3450 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      000E9E E4               [12] 3451 	clr	a
      000E9F 35*23            [12] 3452 	addc	a,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      000EA1 F5*21            [12] 3453 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3454 ;	src/dap.c:653: DAP_TransferAbort = 0U;
      000EA3 78r0E            [12] 3455 	mov	r0,#_DAP_TransferAbort
      000EA5 76 00            [12] 3456 	mov	@r0,#0x00
                                   3457 ;	src/dap.c:654: req++;                                          // ignore DAP index
      000EA7 0E               [12] 3458 	inc	r6
      000EA8 BE 00 01         [24] 3459 	cjne	r6,#0x00,00261$
      000EAB 0F               [12] 3460 	inc	r7
      000EAC                       3461 00261$:
                                   3462 ;	src/dap.c:655: request_count = (uint16_t)(*(req + 0) << 0)
      000EAC 8E 82            [24] 3463 	mov	dpl,r6
      000EAE 8F 83            [24] 3464 	mov	dph,r7
      000EB0 E0               [24] 3465 	movx	a,@dptr
      000EB1 FB               [12] 3466 	mov	r3,a
                                   3467 ;	src/dap.c:656: | (uint16_t)(*(req + 1) << 8);
      000EB2 8E 82            [24] 3468 	mov	dpl,r6
      000EB4 8F 83            [24] 3469 	mov	dph,r7
      000EB6 A3               [24] 3470 	inc	dptr
      000EB7 E0               [24] 3471 	movx	a,@dptr
      000EB8 E4               [12] 3472 	clr	a
      000EB9 FA               [12] 3473 	mov	r2,a
      000EBA 4B               [12] 3474 	orl	a,r3
      000EBB 78r0F            [12] 3475 	mov	r0,#_request_count
      000EBD F6               [12] 3476 	mov	@r0,a
                                   3477 ;	src/dap.c:657: req += 2;
      000EBE 74 02            [12] 3478 	mov	a,#0x02
      000EC0 2E               [12] 3479 	add	a,r6
      000EC1 FE               [12] 3480 	mov	r6,a
      000EC2 E4               [12] 3481 	clr	a
      000EC3 3F               [12] 3482 	addc	a,r7
      000EC4 FF               [12] 3483 	mov	r7,a
                                   3484 ;	src/dap.c:658: if(request_count == 0U) goto end;
      000EC5 78r0F            [12] 3485 	mov	r0,#_request_count
      000EC7 E6               [12] 3486 	mov	a,@r0
      000EC8 70 03            [24] 3487 	jnz	00262$
      000ECA 02r10rBE         [24] 3488 	ljmp	00143$
      000ECD                       3489 00262$:
                                   3490 ;	src/dap.c:660: request_value = *req++;
      000ECD 8E 82            [24] 3491 	mov	dpl,r6
      000ECF 8F 83            [24] 3492 	mov	dph,r7
      000ED1 E0               [24] 3493 	movx	a,@dptr
      000ED2 FB               [12] 3494 	mov	r3,a
      000ED3 0E               [12] 3495 	inc	r6
      000ED4 BE 00 01         [24] 3496 	cjne	r6,#0x00,00263$
      000ED7 0F               [12] 3497 	inc	r7
      000ED8                       3498 00263$:
      000ED8 78r10            [12] 3499 	mov	r0,#_request_value
      000EDA A6 03            [24] 3500 	mov	@r0,ar3
                                   3501 ;	src/dap.c:661: if((request_value & DAP_TRANSFER_RnW) != 0U) {
      000EDC EB               [12] 3502 	mov	a,r3
      000EDD 20 E1 03         [24] 3503 	jb	acc.1,00264$
      000EE0 02r0FrF1         [24] 3504 	ljmp	00165$
      000EE3                       3505 00264$:
                                   3506 ;	src/dap.c:663: if((request_value & DAP_TRANSFER_APnDP) != 0U) {
      000EE3 EB               [12] 3507 	mov	a,r3
      000EE4 30 E0 46         [24] 3508 	jnb	acc.0,00159$
                                   3509 ;	src/dap.c:665: retry = retry_count;
      000EE7 78r02            [12] 3510 	mov	r0,#_retry_count
      000EE9 86 02            [24] 3511 	mov	ar2,@r0
      000EEB 08               [12] 3512 	inc	r0
      000EEC 86 03            [24] 3513 	mov	ar3,@r0
      000EEE 78r13            [12] 3514 	mov	r0,#_retry
      000EF0 A6 02            [24] 3515 	mov	@r0,ar2
      000EF2 08               [12] 3516 	inc	r0
      000EF3 A6 03            [24] 3517 	mov	@r0,ar3
                                   3518 ;	src/dap.c:666: do {
      000EF5                       3519 00105$:
                                   3520 ;	src/dap.c:667: response_value = SWD_Transfer(request_value, NULL);
      000EF5 E4               [12] 3521 	clr	a
      000EF6 F5*08            [12] 3522 	mov	_SWD_Transfer_PARM_2,a
      000EF8 F5*09            [12] 3523 	mov	(_SWD_Transfer_PARM_2 + 1),a
      000EFA 78r10            [12] 3524 	mov	r0,#_request_value
      000EFC 86 82            [24] 3525 	mov	dpl,@r0
      000EFE 12r01r30         [24] 3526 	lcall	_SWD_Transfer
      000F01 AB 82            [24] 3527 	mov	r3,dpl
      000F03 78r12            [12] 3528 	mov	r0,#_response_value
      000F05 A6 03            [24] 3529 	mov	@r0,ar3
                                   3530 ;	src/dap.c:668: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000F07 BB 02 1B         [24] 3531 	cjne	r3,#0x02,00107$
      000F0A 78r13            [12] 3532 	mov	r0,#_retry
      000F0C 86 02            [24] 3533 	mov	ar2,@r0
      000F0E 08               [12] 3534 	inc	r0
      000F0F 86 05            [24] 3535 	mov	ar5,@r0
      000F11 78r13            [12] 3536 	mov	r0,#_retry
      000F13 EA               [12] 3537 	mov	a,r2
      000F14 24 FF            [12] 3538 	add	a,#0xff
      000F16 F6               [12] 3539 	mov	@r0,a
      000F17 ED               [12] 3540 	mov	a,r5
      000F18 34 FF            [12] 3541 	addc	a,#0xff
      000F1A 08               [12] 3542 	inc	r0
      000F1B F6               [12] 3543 	mov	@r0,a
      000F1C EA               [12] 3544 	mov	a,r2
      000F1D 4D               [12] 3545 	orl	a,r5
      000F1E 60 05            [24] 3546 	jz	00107$
      000F20 78r0E            [12] 3547 	mov	r0,#_DAP_TransferAbort
      000F22 E6               [12] 3548 	mov	a,@r0
      000F23 60 D0            [24] 3549 	jz	00105$
      000F25                       3550 00107$:
                                   3551 ;	src/dap.c:669: if(response_value != DAP_TRANSFER_OK) goto end;
      000F25 BB 01 02         [24] 3552 	cjne	r3,#0x01,00270$
      000F28 80 03            [24] 3553 	sjmp	00271$
      000F2A                       3554 00270$:
      000F2A 02r10rBE         [24] 3555 	ljmp	00143$
      000F2D                       3556 00271$:
                                   3557 ;	src/dap.c:671: while(request_count--) {
      000F2D                       3558 00159$:
      000F2D                       3559 00122$:
      000F2D 78r0F            [12] 3560 	mov	r0,#_request_count
      000F2F 86 05            [24] 3561 	mov	ar5,@r0
      000F31 78r0F            [12] 3562 	mov	r0,#_request_count
      000F33 ED               [12] 3563 	mov	a,r5
      000F34 14               [12] 3564 	dec	a
      000F35 F6               [12] 3565 	mov	@r0,a
      000F36 ED               [12] 3566 	mov	a,r5
      000F37 70 03            [24] 3567 	jnz	00272$
      000F39 02r10rBE         [24] 3568 	ljmp	00143$
      000F3C                       3569 00272$:
                                   3570 ;	src/dap.c:673: if((request_count == 0U) && ((request_value & DAP_TRANSFER_APnDP) != 0U))
      000F3C 78r0F            [12] 3571 	mov	r0,#_request_count
      000F3E E6               [12] 3572 	mov	a,@r0
      000F3F 70 0A            [24] 3573 	jnz	00113$
      000F41 78r10            [12] 3574 	mov	r0,#_request_value
      000F43 E6               [12] 3575 	mov	a,@r0
      000F44 30 E0 04         [24] 3576 	jnb	acc.0,00113$
                                   3577 ;	src/dap.c:674: request_value = DP_RDBUFF | DAP_TRANSFER_RnW;   // Last AP read
      000F47 78r10            [12] 3578 	mov	r0,#_request_value
      000F49 76 0E            [12] 3579 	mov	@r0,#0x0e
      000F4B                       3580 00113$:
                                   3581 ;	src/dap.c:675: retry = retry_count;
      000F4B 78r02            [12] 3582 	mov	r0,#_retry_count
      000F4D 86 04            [24] 3583 	mov	ar4,@r0
      000F4F 08               [12] 3584 	inc	r0
      000F50 86 05            [24] 3585 	mov	ar5,@r0
      000F52 78r13            [12] 3586 	mov	r0,#_retry
      000F54 A6 04            [24] 3587 	mov	@r0,ar4
      000F56 08               [12] 3588 	inc	r0
      000F57 A6 05            [24] 3589 	mov	@r0,ar5
                                   3590 ;	src/dap.c:676: do {
      000F59                       3591 00117$:
                                   3592 ;	src/dap.c:677: response_value = SWD_Transfer(request_value, data);
      000F59 75*08r00         [24] 3593 	mov	_SWD_Transfer_PARM_2,#_data
      000F5C 75*09s00         [24] 3594 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000F5F 78r10            [12] 3595 	mov	r0,#_request_value
      000F61 86 82            [24] 3596 	mov	dpl,@r0
      000F63 12r01r30         [24] 3597 	lcall	_SWD_Transfer
      000F66 AD 82            [24] 3598 	mov	r5,dpl
      000F68 78r12            [12] 3599 	mov	r0,#_response_value
      000F6A A6 05            [24] 3600 	mov	@r0,ar5
                                   3601 ;	src/dap.c:678: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000F6C BD 02 1B         [24] 3602 	cjne	r5,#0x02,00119$
      000F6F 78r13            [12] 3603 	mov	r0,#_retry
      000F71 86 03            [24] 3604 	mov	ar3,@r0
      000F73 08               [12] 3605 	inc	r0
      000F74 86 04            [24] 3606 	mov	ar4,@r0
      000F76 78r13            [12] 3607 	mov	r0,#_retry
      000F78 EB               [12] 3608 	mov	a,r3
      000F79 24 FF            [12] 3609 	add	a,#0xff
      000F7B F6               [12] 3610 	mov	@r0,a
      000F7C EC               [12] 3611 	mov	a,r4
      000F7D 34 FF            [12] 3612 	addc	a,#0xff
      000F7F 08               [12] 3613 	inc	r0
      000F80 F6               [12] 3614 	mov	@r0,a
      000F81 EB               [12] 3615 	mov	a,r3
      000F82 4C               [12] 3616 	orl	a,r4
      000F83 60 05            [24] 3617 	jz	00119$
      000F85 78r0E            [12] 3618 	mov	r0,#_DAP_TransferAbort
      000F87 E6               [12] 3619 	mov	a,@r0
      000F88 60 CF            [24] 3620 	jz	00117$
      000F8A                       3621 00119$:
                                   3622 ;	src/dap.c:679: if(response_value != DAP_TRANSFER_OK) goto end;
      000F8A BD 01 02         [24] 3623 	cjne	r5,#0x01,00279$
      000F8D 80 03            [24] 3624 	sjmp	00280$
      000F8F                       3625 00279$:
      000F8F 02r10rBE         [24] 3626 	ljmp	00143$
      000F92                       3627 00280$:
                                   3628 ;	src/dap.c:682: *res++ = (uint8_t)data[0];
      000F92 AC*20            [24] 3629 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      000F94 AD*21            [24] 3630 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      000F96 90r00r00         [24] 3631 	mov	dptr,#_data
      000F99 E0               [24] 3632 	movx	a,@dptr
      000F9A 8C 82            [24] 3633 	mov	dpl,r4
      000F9C 8D 83            [24] 3634 	mov	dph,r5
      000F9E F0               [24] 3635 	movx	@dptr,a
      000F9F 74 01            [12] 3636 	mov	a,#0x01
      000FA1 2C               [12] 3637 	add	a,r4
      000FA2 F5*20            [12] 3638 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      000FA4 E4               [12] 3639 	clr	a
      000FA5 3D               [12] 3640 	addc	a,r5
      000FA6 F5*21            [12] 3641 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3642 ;	src/dap.c:683: *res++ = (uint8_t)data[1];
      000FA8 AC*20            [24] 3643 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      000FAA AD*21            [24] 3644 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      000FAC 90r00r01         [24] 3645 	mov	dptr,#(_data + 0x0001)
      000FAF E0               [24] 3646 	movx	a,@dptr
      000FB0 8C 82            [24] 3647 	mov	dpl,r4
      000FB2 8D 83            [24] 3648 	mov	dph,r5
      000FB4 F0               [24] 3649 	movx	@dptr,a
      000FB5 74 01            [12] 3650 	mov	a,#0x01
      000FB7 2C               [12] 3651 	add	a,r4
      000FB8 F5*20            [12] 3652 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      000FBA E4               [12] 3653 	clr	a
      000FBB 3D               [12] 3654 	addc	a,r5
      000FBC F5*21            [12] 3655 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3656 ;	src/dap.c:684: *res++ = (uint8_t)data[2];
      000FBE AC*20            [24] 3657 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      000FC0 AD*21            [24] 3658 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      000FC2 90r00r02         [24] 3659 	mov	dptr,#(_data + 0x0002)
      000FC5 E0               [24] 3660 	movx	a,@dptr
      000FC6 8C 82            [24] 3661 	mov	dpl,r4
      000FC8 8D 83            [24] 3662 	mov	dph,r5
      000FCA F0               [24] 3663 	movx	@dptr,a
      000FCB 74 01            [12] 3664 	mov	a,#0x01
      000FCD 2C               [12] 3665 	add	a,r4
      000FCE F5*20            [12] 3666 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      000FD0 E4               [12] 3667 	clr	a
      000FD1 3D               [12] 3668 	addc	a,r5
      000FD2 F5*21            [12] 3669 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3670 ;	src/dap.c:685: *res++ = (uint8_t)data[3];
      000FD4 AC*20            [24] 3671 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      000FD6 AD*21            [24] 3672 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      000FD8 90r00r03         [24] 3673 	mov	dptr,#(_data + 0x0003)
      000FDB E0               [24] 3674 	movx	a,@dptr
      000FDC FB               [12] 3675 	mov	r3,a
      000FDD 8C 82            [24] 3676 	mov	dpl,r4
      000FDF 8D 83            [24] 3677 	mov	dph,r5
      000FE1 F0               [24] 3678 	movx	@dptr,a
      000FE2 74 01            [12] 3679 	mov	a,#0x01
      000FE4 2C               [12] 3680 	add	a,r4
      000FE5 F5*20            [12] 3681 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      000FE7 E4               [12] 3682 	clr	a
      000FE8 3D               [12] 3683 	addc	a,r5
      000FE9 F5*21            [12] 3684 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3685 ;	src/dap.c:686: response_count++;
      000FEB 78r11            [12] 3686 	mov	r0,#_response_count
      000FED 06               [12] 3687 	inc	@r0
      000FEE 02r0Fr2D         [24] 3688 	ljmp	00122$
                                   3689 ;	src/dap.c:691: while(request_count--) {
      000FF1                       3690 00165$:
      000FF1                       3691 00132$:
      000FF1 78r0F            [12] 3692 	mov	r0,#_request_count
      000FF3 86 05            [24] 3693 	mov	ar5,@r0
      000FF5 78r0F            [12] 3694 	mov	r0,#_request_count
      000FF7 ED               [12] 3695 	mov	a,r5
      000FF8 14               [12] 3696 	dec	a
      000FF9 F6               [12] 3697 	mov	@r0,a
      000FFA ED               [12] 3698 	mov	a,r5
      000FFB 70 03            [24] 3699 	jnz	00281$
      000FFD 02r10r81         [24] 3700 	ljmp	00134$
      001000                       3701 00281$:
                                   3702 ;	src/dap.c:693: data[0] = (uint8_t)(*(req + 0));
      001000 8E 82            [24] 3703 	mov	dpl,r6
      001002 8F 83            [24] 3704 	mov	dph,r7
      001004 E0               [24] 3705 	movx	a,@dptr
      001005 90r00r00         [24] 3706 	mov	dptr,#_data
      001008 F0               [24] 3707 	movx	@dptr,a
                                   3708 ;	src/dap.c:694: data[1] = (uint8_t)(*(req + 1));
      001009 8E 82            [24] 3709 	mov	dpl,r6
      00100B 8F 83            [24] 3710 	mov	dph,r7
      00100D A3               [24] 3711 	inc	dptr
      00100E E0               [24] 3712 	movx	a,@dptr
      00100F 90r00r01         [24] 3713 	mov	dptr,#(_data + 0x0001)
      001012 F0               [24] 3714 	movx	@dptr,a
                                   3715 ;	src/dap.c:695: data[2] = (uint8_t)(*(req + 2));
      001013 8E 82            [24] 3716 	mov	dpl,r6
      001015 8F 83            [24] 3717 	mov	dph,r7
      001017 A3               [24] 3718 	inc	dptr
      001018 A3               [24] 3719 	inc	dptr
      001019 E0               [24] 3720 	movx	a,@dptr
      00101A 90r00r02         [24] 3721 	mov	dptr,#(_data + 0x0002)
      00101D F0               [24] 3722 	movx	@dptr,a
                                   3723 ;	src/dap.c:696: data[3] = (uint8_t)(*(req + 3));
      00101E 8E 82            [24] 3724 	mov	dpl,r6
      001020 8F 83            [24] 3725 	mov	dph,r7
      001022 A3               [24] 3726 	inc	dptr
      001023 A3               [24] 3727 	inc	dptr
      001024 A3               [24] 3728 	inc	dptr
      001025 E0               [24] 3729 	movx	a,@dptr
      001026 90r00r03         [24] 3730 	mov	dptr,#(_data + 0x0003)
      001029 F0               [24] 3731 	movx	@dptr,a
                                   3732 ;	src/dap.c:697: req += 4;
      00102A 74 04            [12] 3733 	mov	a,#0x04
      00102C 2E               [12] 3734 	add	a,r6
      00102D FE               [12] 3735 	mov	r6,a
      00102E E4               [12] 3736 	clr	a
      00102F 3F               [12] 3737 	addc	a,r7
      001030 FF               [12] 3738 	mov	r7,a
                                   3739 ;	src/dap.c:700: retry = retry_count;
      001031 78r02            [12] 3740 	mov	r0,#_retry_count
      001033 86 04            [24] 3741 	mov	ar4,@r0
      001035 08               [12] 3742 	inc	r0
      001036 86 05            [24] 3743 	mov	ar5,@r0
      001038 78r13            [12] 3744 	mov	r0,#_retry
      00103A A6 04            [24] 3745 	mov	@r0,ar4
      00103C 08               [12] 3746 	inc	r0
      00103D A6 05            [24] 3747 	mov	@r0,ar5
                                   3748 ;	src/dap.c:701: do {
      00103F                       3749 00127$:
                                   3750 ;	src/dap.c:702: response_value = SWD_Transfer(request_value, data);
      00103F 75*08r00         [24] 3751 	mov	_SWD_Transfer_PARM_2,#_data
      001042 75*09s00         [24] 3752 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      001045 78r10            [12] 3753 	mov	r0,#_request_value
      001047 86 82            [24] 3754 	mov	dpl,@r0
      001049 C0 07            [24] 3755 	push	ar7
      00104B C0 06            [24] 3756 	push	ar6
      00104D 12r01r30         [24] 3757 	lcall	_SWD_Transfer
      001050 AD 82            [24] 3758 	mov	r5,dpl
      001052 D0 06            [24] 3759 	pop	ar6
      001054 D0 07            [24] 3760 	pop	ar7
      001056 78r12            [12] 3761 	mov	r0,#_response_value
      001058 A6 05            [24] 3762 	mov	@r0,ar5
                                   3763 ;	src/dap.c:703: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      00105A BD 02 1B         [24] 3764 	cjne	r5,#0x02,00129$
      00105D 78r13            [12] 3765 	mov	r0,#_retry
      00105F 86 03            [24] 3766 	mov	ar3,@r0
      001061 08               [12] 3767 	inc	r0
      001062 86 04            [24] 3768 	mov	ar4,@r0
      001064 78r13            [12] 3769 	mov	r0,#_retry
      001066 EB               [12] 3770 	mov	a,r3
      001067 24 FF            [12] 3771 	add	a,#0xff
      001069 F6               [12] 3772 	mov	@r0,a
      00106A EC               [12] 3773 	mov	a,r4
      00106B 34 FF            [12] 3774 	addc	a,#0xff
      00106D 08               [12] 3775 	inc	r0
      00106E F6               [12] 3776 	mov	@r0,a
      00106F EB               [12] 3777 	mov	a,r3
      001070 4C               [12] 3778 	orl	a,r4
      001071 60 05            [24] 3779 	jz	00129$
      001073 78r0E            [12] 3780 	mov	r0,#_DAP_TransferAbort
      001075 E6               [12] 3781 	mov	a,@r0
      001076 60 C7            [24] 3782 	jz	00127$
      001078                       3783 00129$:
                                   3784 ;	src/dap.c:704: if(response_value != DAP_TRANSFER_OK) goto end;
      001078 BD 01 43         [24] 3785 	cjne	r5,#0x01,00143$
                                   3786 ;	src/dap.c:705: response_count++;
      00107B 78r11            [12] 3787 	mov	r0,#_response_count
      00107D 06               [12] 3788 	inc	@r0
      00107E 02r0FrF1         [24] 3789 	ljmp	00132$
      001081                       3790 00134$:
                                   3791 ;	src/dap.c:708: retry = retry_count;
      001081 78r02            [12] 3792 	mov	r0,#_retry_count
      001083 86 06            [24] 3793 	mov	ar6,@r0
      001085 08               [12] 3794 	inc	r0
      001086 86 07            [24] 3795 	mov	ar7,@r0
      001088 78r13            [12] 3796 	mov	r0,#_retry
      00108A A6 06            [24] 3797 	mov	@r0,ar6
      00108C 08               [12] 3798 	inc	r0
      00108D A6 07            [24] 3799 	mov	@r0,ar7
                                   3800 ;	src/dap.c:709: do {
      00108F                       3801 00137$:
                                   3802 ;	src/dap.c:710: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL);
      00108F E4               [12] 3803 	clr	a
      001090 F5*08            [12] 3804 	mov	_SWD_Transfer_PARM_2,a
      001092 F5*09            [12] 3805 	mov	(_SWD_Transfer_PARM_2 + 1),a
      001094 75 82 0E         [24] 3806 	mov	dpl,#0x0e
      001097 12r01r30         [24] 3807 	lcall	_SWD_Transfer
      00109A AF 82            [24] 3808 	mov	r7,dpl
      00109C 78r12            [12] 3809 	mov	r0,#_response_value
      00109E A6 07            [24] 3810 	mov	@r0,ar7
                                   3811 ;	src/dap.c:711: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0010A0 BF 02 1B         [24] 3812 	cjne	r7,#0x02,00143$
      0010A3 78r13            [12] 3813 	mov	r0,#_retry
      0010A5 86 06            [24] 3814 	mov	ar6,@r0
      0010A7 08               [12] 3815 	inc	r0
      0010A8 86 07            [24] 3816 	mov	ar7,@r0
      0010AA 78r13            [12] 3817 	mov	r0,#_retry
      0010AC EE               [12] 3818 	mov	a,r6
      0010AD 24 FF            [12] 3819 	add	a,#0xff
      0010AF F6               [12] 3820 	mov	@r0,a
      0010B0 EF               [12] 3821 	mov	a,r7
      0010B1 34 FF            [12] 3822 	addc	a,#0xff
      0010B3 08               [12] 3823 	inc	r0
      0010B4 F6               [12] 3824 	mov	@r0,a
      0010B5 EE               [12] 3825 	mov	a,r6
      0010B6 4F               [12] 3826 	orl	a,r7
      0010B7 60 05            [24] 3827 	jz	00143$
      0010B9 78r0E            [12] 3828 	mov	r0,#_DAP_TransferAbort
      0010BB E6               [12] 3829 	mov	a,@r0
      0010BC 60 D1            [24] 3830 	jz	00137$
                                   3831 ;	src/dap.c:714: end:
      0010BE                       3832 00143$:
                                   3833 ;	src/dap.c:715: *(response_head + 0) = response_count;
      0010BE 85*22 82         [24] 3834 	mov	dpl,_DAP_SWD_TransferBlock_response_head_65536_175
      0010C1 85*23 83         [24] 3835 	mov	dph,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      0010C4 78r11            [12] 3836 	mov	r0,#_response_count
      0010C6 E6               [12] 3837 	mov	a,@r0
      0010C7 F0               [24] 3838 	movx	@dptr,a
                                   3839 ;	src/dap.c:716: *(response_head + 1) = 0; 
      0010C8 85*22 82         [24] 3840 	mov	dpl,_DAP_SWD_TransferBlock_response_head_65536_175
      0010CB 85*23 83         [24] 3841 	mov	dph,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      0010CE A3               [24] 3842 	inc	dptr
      0010CF E4               [12] 3843 	clr	a
      0010D0 F0               [24] 3844 	movx	@dptr,a
                                   3845 ;	src/dap.c:717: *(response_head + 2) = response_value;
      0010D1 85*22 82         [24] 3846 	mov	dpl,_DAP_SWD_TransferBlock_response_head_65536_175
      0010D4 85*23 83         [24] 3847 	mov	dph,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      0010D7 A3               [24] 3848 	inc	dptr
      0010D8 A3               [24] 3849 	inc	dptr
      0010D9 78r12            [12] 3850 	mov	r0,#_response_value
      0010DB E6               [12] 3851 	mov	a,@r0
      0010DC F0               [24] 3852 	movx	@dptr,a
                                   3853 ;	src/dap.c:718: return((uint8_t)(res - response_head));
      0010DD AF*20            [24] 3854 	mov	r7,_DAP_SWD_TransferBlock_PARM_2
      0010DF AC*22            [24] 3855 	mov	r4,_DAP_SWD_TransferBlock_response_head_65536_175
      0010E1 EF               [12] 3856 	mov	a,r7
      0010E2 C3               [12] 3857 	clr	c
      0010E3 9C               [12] 3858 	subb	a,r4
      0010E4 F5 82            [12] 3859 	mov	dpl,a
                                   3860 ;	src/dap.c:719: }
      0010E6 22               [24] 3861 	ret
                                   3862 ;------------------------------------------------------------
                                   3863 ;Allocation info for local variables in function 'DAP_TransferBlock'
                                   3864 ;------------------------------------------------------------
                                   3865 ;res                       Allocated with name '_DAP_TransferBlock_PARM_2'
                                   3866 ;req                       Allocated to registers r6 r7 
                                   3867 ;num                       Allocated to registers r7 
                                   3868 ;------------------------------------------------------------
                                   3869 ;	src/dap.c:727: static uint8_t DAP_TransferBlock(const __xdata uint8_t *req, __xdata uint8_t *res) {
                                   3870 ;	-----------------------------------------
                                   3871 ;	 function DAP_TransferBlock
                                   3872 ;	-----------------------------------------
      0010E7                       3873 _DAP_TransferBlock:
      0010E7 AE 82            [24] 3874 	mov	r6,dpl
      0010E9 AF 83            [24] 3875 	mov	r7,dph
                                   3876 ;	src/dap.c:730: switch(debug_port) {
      0010EB 78r01            [12] 3877 	mov	r0,#_debug_port
      0010ED B6 01 11         [24] 3878 	cjne	@r0,#0x01,00102$
                                   3879 ;	src/dap.c:732: num = DAP_SWD_TransferBlock(req, res);
      0010F0 85*24*20         [24] 3880 	mov	_DAP_SWD_TransferBlock_PARM_2,_DAP_TransferBlock_PARM_2
      0010F3 85*25*21         [24] 3881 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),(_DAP_TransferBlock_PARM_2 + 1)
      0010F6 8E 82            [24] 3882 	mov	dpl,r6
      0010F8 8F 83            [24] 3883 	mov	dph,r7
      0010FA 12r0Er86         [24] 3884 	lcall	_DAP_SWD_TransferBlock
      0010FD AF 82            [24] 3885 	mov	r7,dpl
                                   3886 ;	src/dap.c:733: break;
                                   3887 ;	src/dap.c:734: default:
      0010FF 80 19            [24] 3888 	sjmp	00103$
      001101                       3889 00102$:
                                   3890 ;	src/dap.c:735: *(res + 0) = 0U;    // res count [7:0]
      001101 AD*24            [24] 3891 	mov	r5,_DAP_TransferBlock_PARM_2
      001103 AE*25            [24] 3892 	mov	r6,(_DAP_TransferBlock_PARM_2 + 1)
      001105 8D 82            [24] 3893 	mov	dpl,r5
      001107 8E 83            [24] 3894 	mov	dph,r6
      001109 E4               [12] 3895 	clr	a
      00110A F0               [24] 3896 	movx	@dptr,a
                                   3897 ;	src/dap.c:736: *(res + 1) = 0U;    // res count[15:8]
      00110B 8D 82            [24] 3898 	mov	dpl,r5
      00110D 8E 83            [24] 3899 	mov	dph,r6
      00110F A3               [24] 3900 	inc	dptr
      001110 F0               [24] 3901 	movx	@dptr,a
                                   3902 ;	src/dap.c:737: *(res + 2) = 0U;    // res value
      001111 8D 82            [24] 3903 	mov	dpl,r5
      001113 8E 83            [24] 3904 	mov	dph,r6
      001115 A3               [24] 3905 	inc	dptr
      001116 A3               [24] 3906 	inc	dptr
      001117 F0               [24] 3907 	movx	@dptr,a
                                   3908 ;	src/dap.c:738: num = 3U;
      001118 7F 03            [12] 3909 	mov	r7,#0x03
                                   3910 ;	src/dap.c:740: }
      00111A                       3911 00103$:
                                   3912 ;	src/dap.c:741: return num;
      00111A 8F 82            [24] 3913 	mov	dpl,r7
                                   3914 ;	src/dap.c:742: }
      00111C 22               [24] 3915 	ret
                                   3916 ;------------------------------------------------------------
                                   3917 ;Allocation info for local variables in function 'DAP_Thread'
                                   3918 ;------------------------------------------------------------
                                   3919 ;num                       Allocated to registers r6 
                                   3920 ;req                       Allocated to registers 
                                   3921 ;res                       Allocated to registers 
                                   3922 ;requested_hz              Allocated with name '_DAP_Thread_requested_hz_196608_191'
                                   3923 ;half                      Allocated to registers r3 r4 r5 r6 
                                   3924 ;sloc0                     Allocated with name '_DAP_Thread_sloc0_1_0'
                                   3925 ;------------------------------------------------------------
                                   3926 ;	src/dap.c:747: uint8_t DAP_Thread(void) {
                                   3927 ;	-----------------------------------------
                                   3928 ;	 function DAP_Thread
                                   3929 ;	-----------------------------------------
      00111D                       3930 _DAP_Thread:
                                   3931 ;	src/dap.c:749: uint8_t __xdata *req = DAP_READ_BUF_PTR;
                                   3932 ;	src/dap.c:750: uint8_t __xdata *res = DAP_WRITE_BUF_PTR;
                                   3933 ;	src/dap.c:752: *res++ = *req;
      00111D 90r00r00         [24] 3934 	mov	dptr,#_EP1_buffer
      001120 E0               [24] 3935 	movx	a,@dptr
      001121 90r00r40         [24] 3936 	mov	dptr,#(_EP1_buffer + 0x0040)
      001124 F0               [24] 3937 	movx	@dptr,a
                                   3938 ;	src/dap.c:753: switch(*req++) {
      001125 90r00r00         [24] 3939 	mov	dptr,#_EP1_buffer
      001128 E0               [24] 3940 	movx	a,@dptr
      001129 FF               [12] 3941 	mov	r7,a
      00112A 60 6B            [24] 3942 	jz	00103$
      00112C BF 01 03         [24] 3943 	cjne	r7,#0x01,00202$
      00112F 02r11rB9         [24] 3944 	ljmp	00104$
      001132                       3945 00202$:
      001132 BF 02 03         [24] 3946 	cjne	r7,#0x02,00203$
      001135 02r11rCA         [24] 3947 	ljmp	00105$
      001138                       3948 00203$:
      001138 BF 03 03         [24] 3949 	cjne	r7,#0x03,00204$
      00113B 02r11rDB         [24] 3950 	ljmp	00106$
      00113E                       3951 00204$:
      00113E BF 04 03         [24] 3952 	cjne	r7,#0x04,00205$
      001141 02r12rF7         [24] 3953 	ljmp	00117$
      001144                       3954 00205$:
      001144 BF 05 02         [24] 3955 	cjne	r7,#0x05,00206$
      001147 80 2C            [24] 3956 	sjmp	00101$
      001149                       3957 00206$:
      001149 BF 06 02         [24] 3958 	cjne	r7,#0x06,00207$
      00114C 80 38            [24] 3959 	sjmp	00102$
      00114E                       3960 00207$:
      00114E BF 08 03         [24] 3961 	cjne	r7,#0x08,00208$
      001151 02r13r07         [24] 3962 	ljmp	00118$
      001154                       3963 00208$:
      001154 BF 10 03         [24] 3964 	cjne	r7,#0x10,00209$
      001157 02r11rE6         [24] 3965 	ljmp	00107$
      00115A                       3966 00209$:
      00115A BF 11 03         [24] 3967 	cjne	r7,#0x11,00210$
      00115D 02r11rF7         [24] 3968 	ljmp	00108$
      001160                       3969 00210$:
      001160 BF 12 03         [24] 3970 	cjne	r7,#0x12,00211$
      001163 02r12rCE         [24] 3971 	ljmp	00114$
      001166                       3972 00211$:
      001166 BF 13 03         [24] 3973 	cjne	r7,#0x13,00212$
      001169 02r12rDE         [24] 3974 	ljmp	00115$
      00116C                       3975 00212$:
      00116C BF 1D 03         [24] 3976 	cjne	r7,#0x1d,00213$
      00116F 02r12rE7         [24] 3977 	ljmp	00116$
      001172                       3978 00213$:
      001172 02r13r10         [24] 3979 	ljmp	00121$
                                   3980 ;	src/dap.c:754: case ID_DAP_Transfer:
      001175                       3981 00101$:
                                   3982 ;	src/dap.c:755: num = DAP_SWD_Transfer(req, res);
      001175 75*19r41         [24] 3983 	mov	_DAP_SWD_Transfer_PARM_2,#(_EP1_buffer + 0x0041)
      001178 75*1As00         [24] 3984 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      00117B 90r00r01         [24] 3985 	mov	dptr,#(_EP1_buffer + 0x0001)
      00117E 12r07rDD         [24] 3986 	lcall	_DAP_SWD_Transfer
      001181 AF 82            [24] 3987 	mov	r7,dpl
                                   3988 ;	src/dap.c:756: break;
      001183 02r13r18         [24] 3989 	ljmp	00122$
                                   3990 ;	src/dap.c:757: case ID_DAP_TransferBlock:
      001186                       3991 00102$:
                                   3992 ;	src/dap.c:758: num = DAP_TransferBlock(req, res);
      001186 75*24r41         [24] 3993 	mov	_DAP_TransferBlock_PARM_2,#(_EP1_buffer + 0x0041)
      001189 75*25s00         [24] 3994 	mov	(_DAP_TransferBlock_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      00118C 90r00r01         [24] 3995 	mov	dptr,#(_EP1_buffer + 0x0001)
      00118F 12r10rE7         [24] 3996 	lcall	_DAP_TransferBlock
      001192 AF 82            [24] 3997 	mov	r7,dpl
                                   3998 ;	src/dap.c:759: break;
      001194 02r13r18         [24] 3999 	ljmp	00122$
                                   4000 ;	src/dap.c:760: case ID_DAP_Info:
      001197                       4001 00103$:
                                   4002 ;	src/dap.c:761: num = DAP_Info(*req, res + 1);
      001197 90r00r01         [24] 4003 	mov	dptr,#(_EP1_buffer + 0x0001)
      00119A E0               [24] 4004 	movx	a,@dptr
      00119B FE               [12] 4005 	mov	r6,a
      00119C 74 01            [12] 4006 	mov	a,#0x01
      00119E 24r41            [12] 4007 	add	a,#(_EP1_buffer + 0x0041)
      0011A0 F5*0A            [12] 4008 	mov	_DAP_Info_PARM_2,a
      0011A2 E4               [12] 4009 	clr	a
      0011A3 34s00            [12] 4010 	addc	a,#((_EP1_buffer + 0x0041) >> 8)
      0011A5 F5*0B            [12] 4011 	mov	(_DAP_Info_PARM_2 + 1),a
      0011A7 8E 82            [24] 4012 	mov	dpl,r6
      0011A9 12r04rAD         [24] 4013 	lcall	_DAP_Info
      0011AC AE 82            [24] 4014 	mov	r6,dpl
                                   4015 ;	src/dap.c:762: *res = (uint8_t)num;
      0011AE 90r00r41         [24] 4016 	mov	dptr,#(_EP1_buffer + 0x0041)
      0011B1 EE               [12] 4017 	mov	a,r6
      0011B2 F0               [24] 4018 	movx	@dptr,a
                                   4019 ;	src/dap.c:763: num++;
      0011B3 EE               [12] 4020 	mov	a,r6
      0011B4 04               [12] 4021 	inc	a
      0011B5 FF               [12] 4022 	mov	r7,a
                                   4023 ;	src/dap.c:764: break;
      0011B6 02r13r18         [24] 4024 	ljmp	00122$
                                   4025 ;	src/dap.c:765: case ID_DAP_HostStatus:
      0011B9                       4026 00104$:
                                   4027 ;	src/dap.c:766: num = DAP_HostStatus(req, res);
      0011B9 75*00r41         [24] 4028 	mov	_DAP_HostStatus_PARM_2,#(_EP1_buffer + 0x0041)
      0011BC 75*01s00         [24] 4029 	mov	(_DAP_HostStatus_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0011BF 90r00r01         [24] 4030 	mov	dptr,#(_EP1_buffer + 0x0001)
      0011C2 12r05r16         [24] 4031 	lcall	_DAP_HostStatus
      0011C5 AF 82            [24] 4032 	mov	r7,dpl
                                   4033 ;	src/dap.c:767: break;
      0011C7 02r13r18         [24] 4034 	ljmp	00122$
                                   4035 ;	src/dap.c:768: case ID_DAP_Connect:
      0011CA                       4036 00105$:
                                   4037 ;	src/dap.c:769: num = DAP_Connect(req, res);
      0011CA 75*0Cr41         [24] 4038 	mov	_DAP_Connect_PARM_2,#(_EP1_buffer + 0x0041)
      0011CD 75*0Ds00         [24] 4039 	mov	(_DAP_Connect_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0011D0 90r00r01         [24] 4040 	mov	dptr,#(_EP1_buffer + 0x0001)
      0011D3 12r05r3C         [24] 4041 	lcall	_DAP_Connect
      0011D6 AF 82            [24] 4042 	mov	r7,dpl
                                   4043 ;	src/dap.c:770: break;
      0011D8 02r13r18         [24] 4044 	ljmp	00122$
                                   4045 ;	src/dap.c:771: case ID_DAP_Disconnect:
      0011DB                       4046 00106$:
                                   4047 ;	src/dap.c:772: num = DAP_Disconnect(res);
      0011DB 90r00r41         [24] 4048 	mov	dptr,#(_EP1_buffer + 0x0041)
      0011DE 12r05r7C         [24] 4049 	lcall	_DAP_Disconnect
      0011E1 AF 82            [24] 4050 	mov	r7,dpl
                                   4051 ;	src/dap.c:773: break;
      0011E3 02r13r18         [24] 4052 	ljmp	00122$
                                   4053 ;	src/dap.c:774: case ID_DAP_SWJ_Pins:
      0011E6                       4054 00107$:
                                   4055 ;	src/dap.c:775: num = DAP_SWJ_Pins(req, res);
      0011E6 75*0Er41         [24] 4056 	mov	_DAP_SWJ_Pins_PARM_2,#(_EP1_buffer + 0x0041)
      0011E9 75*0Fs00         [24] 4057 	mov	(_DAP_SWJ_Pins_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0011EC 90r00r01         [24] 4058 	mov	dptr,#(_EP1_buffer + 0x0001)
      0011EF 12r05r9A         [24] 4059 	lcall	_DAP_SWJ_Pins
      0011F2 AF 82            [24] 4060 	mov	r7,dpl
                                   4061 ;	src/dap.c:776: break;
      0011F4 02r13r18         [24] 4062 	ljmp	00122$
                                   4063 ;	src/dap.c:777: case ID_DAP_SWJ_Clock: {
      0011F7                       4064 00108$:
                                   4065 ;	src/dap.c:778: uint32_t requested_hz = (uint32_t)req[0] | ((uint32_t)req[1]<<8)
      0011F7 90r00r01         [24] 4066 	mov	dptr,#(_EP1_buffer + 0x0001)
      0011FA E0               [24] 4067 	movx	a,@dptr
      0011FB FE               [12] 4068 	mov	r6,a
      0011FC 8E*2A            [24] 4069 	mov	_DAP_Thread_sloc0_1_0,r6
      0011FE 75*2B 00         [24] 4070 	mov	(_DAP_Thread_sloc0_1_0 + 1),#0x00
      001201 75*2C 00         [24] 4071 	mov	(_DAP_Thread_sloc0_1_0 + 2),#0x00
      001204 75*2D 00         [24] 4072 	mov	(_DAP_Thread_sloc0_1_0 + 3),#0x00
      001207 90r00r02         [24] 4073 	mov	dptr,#(_EP1_buffer + 0x0002)
      00120A E0               [24] 4074 	movx	a,@dptr
      00120B F8               [12] 4075 	mov	r0,a
      00120C 79 00            [12] 4076 	mov	r1,#0x00
      00120E 7A 00            [12] 4077 	mov	r2,#0x00
      001210 8A 06            [24] 4078 	mov	ar6,r2
      001212 89 02            [24] 4079 	mov	ar2,r1
      001214 88 01            [24] 4080 	mov	ar1,r0
      001216 E4               [12] 4081 	clr	a
      001217 42*2A            [12] 4082 	orl	_DAP_Thread_sloc0_1_0,a
      001219 E9               [12] 4083 	mov	a,r1
      00121A 42*2B            [12] 4084 	orl	(_DAP_Thread_sloc0_1_0 + 1),a
      00121C EA               [12] 4085 	mov	a,r2
      00121D 42*2C            [12] 4086 	orl	(_DAP_Thread_sloc0_1_0 + 2),a
      00121F EE               [12] 4087 	mov	a,r6
      001220 42*2D            [12] 4088 	orl	(_DAP_Thread_sloc0_1_0 + 3),a
      001222 90r00r03         [24] 4089 	mov	dptr,#(_EP1_buffer + 0x0003)
      001225 E0               [24] 4090 	movx	a,@dptr
      001226 FB               [12] 4091 	mov	r3,a
      001227 7C 00            [12] 4092 	mov	r4,#0x00
      001229 8C 06            [24] 4093 	mov	ar6,r4
      00122B 8B 05            [24] 4094 	mov	ar5,r3
      00122D E4               [12] 4095 	clr	a
      00122E FB               [12] 4096 	mov	r3,a
      00122F FC               [12] 4097 	mov	r4,a
      001230 42*2A            [12] 4098 	orl	_DAP_Thread_sloc0_1_0,a
      001232 EC               [12] 4099 	mov	a,r4
      001233 42*2B            [12] 4100 	orl	(_DAP_Thread_sloc0_1_0 + 1),a
      001235 ED               [12] 4101 	mov	a,r5
      001236 42*2C            [12] 4102 	orl	(_DAP_Thread_sloc0_1_0 + 2),a
      001238 EE               [12] 4103 	mov	a,r6
      001239 42*2D            [12] 4104 	orl	(_DAP_Thread_sloc0_1_0 + 3),a
      00123B 90r00r04         [24] 4105 	mov	dptr,#(_EP1_buffer + 0x0004)
      00123E E0               [24] 4106 	movx	a,@dptr
      00123F FE               [12] 4107 	mov	r6,a
      001240 E4               [12] 4108 	clr	a
      001241 F8               [12] 4109 	mov	r0,a
      001242 F9               [12] 4110 	mov	r1,a
      001243 FA               [12] 4111 	mov	r2,a
      001244 E8               [12] 4112 	mov	a,r0
      001245 45*2A            [12] 4113 	orl	a,_DAP_Thread_sloc0_1_0
      001247 F5*26            [12] 4114 	mov	_DAP_Thread_requested_hz_196608_191,a
      001249 E9               [12] 4115 	mov	a,r1
      00124A 45*2B            [12] 4116 	orl	a,(_DAP_Thread_sloc0_1_0 + 1)
      00124C F5*27            [12] 4117 	mov	(_DAP_Thread_requested_hz_196608_191 + 1),a
      00124E EA               [12] 4118 	mov	a,r2
      00124F 45*2C            [12] 4119 	orl	a,(_DAP_Thread_sloc0_1_0 + 2)
      001251 F5*28            [12] 4120 	mov	(_DAP_Thread_requested_hz_196608_191 + 2),a
      001253 EE               [12] 4121 	mov	a,r6
      001254 45*2D            [12] 4122 	orl	a,(_DAP_Thread_sloc0_1_0 + 3)
      001256 F5*29            [12] 4123 	mov	(_DAP_Thread_requested_hz_196608_191 + 3),a
                                   4124 ;	src/dap.c:781: if(requested_hz < 8UL) { *res = DAP_ERROR; }
      001258 C3               [12] 4125 	clr	c
      001259 E5*26            [12] 4126 	mov	a,_DAP_Thread_requested_hz_196608_191
      00125B 94 08            [12] 4127 	subb	a,#0x08
      00125D E5*27            [12] 4128 	mov	a,(_DAP_Thread_requested_hz_196608_191 + 1)
      00125F 94 00            [12] 4129 	subb	a,#0x00
      001261 E5*28            [12] 4130 	mov	a,(_DAP_Thread_requested_hz_196608_191 + 2)
      001263 94 00            [12] 4131 	subb	a,#0x00
      001265 E5*29            [12] 4132 	mov	a,(_DAP_Thread_requested_hz_196608_191 + 3)
      001267 94 00            [12] 4133 	subb	a,#0x00
      001269 50 08            [24] 4134 	jnc	00112$
      00126B 90r00r41         [24] 4135 	mov	dptr,#(_EP1_buffer + 0x0041)
      00126E 74 FF            [12] 4136 	mov	a,#0xff
      001270 F0               [24] 4137 	movx	@dptr,a
      001271 80 57            [24] 4138 	sjmp	00113$
      001273                       4139 00112$:
                                   4140 ;	src/dap.c:783: if(requested_hz > 100000UL) requested_hz = 100000UL;
      001273 C3               [12] 4141 	clr	c
      001274 74 A0            [12] 4142 	mov	a,#0xa0
      001276 95*26            [12] 4143 	subb	a,_DAP_Thread_requested_hz_196608_191
      001278 74 86            [12] 4144 	mov	a,#0x86
      00127A 95*27            [12] 4145 	subb	a,(_DAP_Thread_requested_hz_196608_191 + 1)
      00127C 74 01            [12] 4146 	mov	a,#0x01
      00127E 95*28            [12] 4147 	subb	a,(_DAP_Thread_requested_hz_196608_191 + 2)
      001280 E4               [12] 4148 	clr	a
      001281 95*29            [12] 4149 	subb	a,(_DAP_Thread_requested_hz_196608_191 + 3)
      001283 50 0C            [24] 4150 	jnc	00110$
      001285 75*26 A0         [24] 4151 	mov	_DAP_Thread_requested_hz_196608_191,#0xa0
      001288 75*27 86         [24] 4152 	mov	(_DAP_Thread_requested_hz_196608_191 + 1),#0x86
      00128B 75*28 01         [24] 4153 	mov	(_DAP_Thread_requested_hz_196608_191 + 2),#0x01
      00128E 75*29 00         [24] 4154 	mov	(_DAP_Thread_requested_hz_196608_191 + 3),#0x00
      001291                       4155 00110$:
                                   4156 ;	src/dap.c:784: half = (500000UL + requested_hz - 1UL) / requested_hz;
      001291 74 1F            [12] 4157 	mov	a,#0x1f
      001293 25*26            [12] 4158 	add	a,_DAP_Thread_requested_hz_196608_191
      001295 F8               [12] 4159 	mov	r0,a
      001296 74 A1            [12] 4160 	mov	a,#0xa1
      001298 35*27            [12] 4161 	addc	a,(_DAP_Thread_requested_hz_196608_191 + 1)
      00129A F9               [12] 4162 	mov	r1,a
      00129B 74 07            [12] 4163 	mov	a,#0x07
      00129D 35*28            [12] 4164 	addc	a,(_DAP_Thread_requested_hz_196608_191 + 2)
      00129F FA               [12] 4165 	mov	r2,a
      0012A0 E4               [12] 4166 	clr	a
      0012A1 35*29            [12] 4167 	addc	a,(_DAP_Thread_requested_hz_196608_191 + 3)
      0012A3 FE               [12] 4168 	mov	r6,a
      0012A4 85*26*00         [24] 4169 	mov	__divulong_PARM_2,_DAP_Thread_requested_hz_196608_191
      0012A7 85*27*01         [24] 4170 	mov	(__divulong_PARM_2 + 1),(_DAP_Thread_requested_hz_196608_191 + 1)
      0012AA 85*28*02         [24] 4171 	mov	(__divulong_PARM_2 + 2),(_DAP_Thread_requested_hz_196608_191 + 2)
      0012AD 85*29*03         [24] 4172 	mov	(__divulong_PARM_2 + 3),(_DAP_Thread_requested_hz_196608_191 + 3)
      0012B0 88 82            [24] 4173 	mov	dpl,r0
      0012B2 89 83            [24] 4174 	mov	dph,r1
      0012B4 8A F0            [24] 4175 	mov	b,r2
      0012B6 EE               [12] 4176 	mov	a,r6
      0012B7 12r00r00         [24] 4177 	lcall	__divulong
      0012BA AB 82            [24] 4178 	mov	r3,dpl
      0012BC AC 83            [24] 4179 	mov	r4,dph
      0012BE AD F0            [24] 4180 	mov	r5,b
      0012C0 FE               [12] 4181 	mov	r6,a
                                   4182 ;	src/dap.c:785: ring_swd_half_period_us = (uint16_t)half;
      0012C1 8B*00            [24] 4183 	mov	_ring_swd_half_period_us,r3
      0012C3 8C*01            [24] 4184 	mov	(_ring_swd_half_period_us + 1),r4
                                   4185 ;	src/dap.c:786: *res = DAP_OK;
      0012C5 90r00r41         [24] 4186 	mov	dptr,#(_EP1_buffer + 0x0041)
      0012C8 E4               [12] 4187 	clr	a
      0012C9 F0               [24] 4188 	movx	@dptr,a
      0012CA                       4189 00113$:
                                   4190 ;	src/dap.c:788: num = 1;
      0012CA 7F 01            [12] 4191 	mov	r7,#0x01
                                   4192 ;	src/dap.c:789: break;
                                   4193 ;	src/dap.c:791: case ID_DAP_SWJ_Sequence:
      0012CC 80 4A            [24] 4194 	sjmp	00122$
      0012CE                       4195 00114$:
                                   4196 ;	src/dap.c:792: num = DAP_SWJ_Sequence(req, res);
      0012CE 75*15r41         [24] 4197 	mov	_DAP_SWJ_Sequence_PARM_2,#(_EP1_buffer + 0x0041)
      0012D1 75*16s00         [24] 4198 	mov	(_DAP_SWJ_Sequence_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0012D4 90r00r01         [24] 4199 	mov	dptr,#(_EP1_buffer + 0x0001)
      0012D7 12r06rB4         [24] 4200 	lcall	_DAP_SWJ_Sequence
      0012DA AF 82            [24] 4201 	mov	r7,dpl
                                   4202 ;	src/dap.c:793: break;
                                   4203 ;	src/dap.c:794: case ID_DAP_SWD_Configure:
      0012DC 80 3A            [24] 4204 	sjmp	00122$
      0012DE                       4205 00115$:
                                   4206 ;	src/dap.c:795: *res = DAP_OK;
      0012DE 90r00r41         [24] 4207 	mov	dptr,#(_EP1_buffer + 0x0041)
      0012E1 E4               [12] 4208 	clr	a
      0012E2 F0               [24] 4209 	movx	@dptr,a
                                   4210 ;	src/dap.c:796: num = 1;
      0012E3 7F 01            [12] 4211 	mov	r7,#0x01
                                   4212 ;	src/dap.c:797: break;
                                   4213 ;	src/dap.c:798: case ID_DAP_SWD_Sequence:
      0012E5 80 31            [24] 4214 	sjmp	00122$
      0012E7                       4215 00116$:
                                   4216 ;	src/dap.c:799: num = DAP_SWD_Sequence(req, res);
      0012E7 75*17r41         [24] 4217 	mov	_DAP_SWD_Sequence_PARM_2,#(_EP1_buffer + 0x0041)
      0012EA 75*18s00         [24] 4218 	mov	(_DAP_SWD_Sequence_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0012ED 90r00r01         [24] 4219 	mov	dptr,#(_EP1_buffer + 0x0001)
      0012F0 12r06rDA         [24] 4220 	lcall	_DAP_SWD_Sequence
      0012F3 AF 82            [24] 4221 	mov	r7,dpl
                                   4222 ;	src/dap.c:800: break;
                                   4223 ;	src/dap.c:801: case ID_DAP_TransferConfigure:
      0012F5 80 21            [24] 4224 	sjmp	00122$
      0012F7                       4225 00117$:
                                   4226 ;	src/dap.c:802: num = DAP_TransferConfigure(req, res);
      0012F7 75*00r41         [24] 4227 	mov	_DAP_TransferConfigure_PARM_2,#(_EP1_buffer + 0x0041)
      0012FA 75*01s00         [24] 4228 	mov	(_DAP_TransferConfigure_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0012FD 90r00r01         [24] 4229 	mov	dptr,#(_EP1_buffer + 0x0001)
      001300 12r07r89         [24] 4230 	lcall	_DAP_TransferConfigure
      001303 AF 82            [24] 4231 	mov	r7,dpl
                                   4232 ;	src/dap.c:803: break;
                                   4233 ;	src/dap.c:804: case ID_DAP_WriteABORT:
      001305 80 11            [24] 4234 	sjmp	00122$
      001307                       4235 00118$:
                                   4236 ;	src/dap.c:805: *res = DAP_OK;
      001307 90r00r41         [24] 4237 	mov	dptr,#(_EP1_buffer + 0x0041)
      00130A E4               [12] 4238 	clr	a
      00130B F0               [24] 4239 	movx	@dptr,a
                                   4240 ;	src/dap.c:806: num = 1;
      00130C 7F 01            [12] 4241 	mov	r7,#0x01
                                   4242 ;	src/dap.c:807: break;
                                   4243 ;	src/dap.c:810: default:
      00130E 80 08            [24] 4244 	sjmp	00122$
      001310                       4245 00121$:
                                   4246 ;	src/dap.c:811: *(res - 1) = ID_DAP_Invalid;
      001310 90r00r40         [24] 4247 	mov	dptr,#(_EP1_buffer + 0x0040)
      001313 74 FF            [12] 4248 	mov	a,#0xff
      001315 F0               [24] 4249 	movx	@dptr,a
                                   4250 ;	src/dap.c:812: num = 1;
      001316 7F 01            [12] 4251 	mov	r7,#0x01
                                   4252 ;	src/dap.c:814: }
      001318                       4253 00122$:
                                   4254 ;	src/dap.c:815: return(num + 1);
      001318 EF               [12] 4255 	mov	a,r7
      001319 04               [12] 4256 	inc	a
      00131A F5 82            [12] 4257 	mov	dpl,a
                                   4258 ;	src/dap.c:816: }
      00131C 22               [24] 4259 	ret
                                   4260 	.area CSEG    (CODE)
                                   4261 	.area CONST   (CODE)
                                   4262 	.area CONST   (CODE)
      000000                       4263 __str_0:
      000000 31 2E 32 2E 31        4264 	.ascii "1.2.1"
      000005 00                    4265 	.db 0x00
                                   4266 	.area CSEG    (CODE)
                                   4267 	.area CABS    (ABS,CODE)