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.rst

                                      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)
      000022                        556 _ring_swd_half_period_us::
      000022                        557 	.ds 2
      000024                        558 _SWJ_Sequence_PARM_2:
      000024                        559 	.ds 2
      000026                        560 _SWD_Sequence_PARM_2:
      000026                        561 	.ds 2
      000028                        562 _SWD_Sequence_PARM_3:
      000028                        563 	.ds 2
      00002A                        564 _SWD_Transfer_PARM_2:
      00002A                        565 	.ds 2
      00002C                        566 _DAP_Info_PARM_2:
      00002C                        567 	.ds 2
      00002E                        568 _DAP_Connect_PARM_2:
      00002E                        569 	.ds 2
      000030                        570 _DAP_SWJ_Pins_PARM_2:
      000030                        571 	.ds 2
      000032                        572 _DAP_SWJ_Pins_sloc0_1_0:
      000032                        573 	.ds 1
      000033                        574 _DAP_SWJ_Pins_sloc1_1_0:
      000033                        575 	.ds 1
      000034                        576 _DAP_SWJ_Pins_sloc2_1_0:
      000034                        577 	.ds 2
      000036                        578 _DAP_SWJ_Pins_sloc4_1_0:
      000036                        579 	.ds 1
      000037                        580 _DAP_SWJ_Sequence_PARM_2:
      000037                        581 	.ds 2
      000039                        582 _DAP_SWD_Sequence_PARM_2:
      000039                        583 	.ds 2
      00003B                        584 _DAP_SWD_Transfer_PARM_2:
      00003B                        585 	.ds 2
      00003D                        586 _DAP_SWD_Transfer_response_head_65536_140:
      00003D                        587 	.ds 2
      00003F                        588 _DAP_SWD_Transfer_post_read_65536_140:
      00003F                        589 	.ds 1
      000040                        590 _DAP_SWD_Transfer_check_write_65536_140:
      000040                        591 	.ds 1
      000041                        592 _DAP_SWD_Transfer_sloc0_1_0:
      000041                        593 	.ds 1
      000042                        594 _DAP_SWD_TransferBlock_PARM_2:
      000042                        595 	.ds 2
      000044                        596 _DAP_SWD_TransferBlock_response_head_65536_175:
      000044                        597 	.ds 2
      000046                        598 _DAP_TransferBlock_PARM_2:
      000046                        599 	.ds 2
      000048                        600 _DAP_Thread_requested_hz_196608_191:
      000048                        601 	.ds 4
      00004C                        602 _DAP_Thread_sloc0_1_0:
      00004C                        603 	.ds 4
                                    604 ;--------------------------------------------------------
                                    605 ; overlayable items in internal ram
                                    606 ;--------------------------------------------------------
                                    607 	.area	OSEG    (OVR,DATA)
      000010                        608 _DAP_HostStatus_PARM_2:
      000010                        609 	.ds 2
                                    610 	.area	OSEG    (OVR,DATA)
      000010                        611 _DAP_TransferConfigure_PARM_2:
      000010                        612 	.ds 2
                                    613 ;--------------------------------------------------------
                                    614 ; indirectly addressable internal ram data
                                    615 ;--------------------------------------------------------
                                    616 	.area ISEG    (DATA)
      000050                        617 _idle_cycles::
      000050                        618 	.ds 1
      000051                        619 _debug_port::
      000051                        620 	.ds 1
      000052                        621 _retry_count::
      000052                        622 	.ds 2
      000054                        623 _match_retry::
      000054                        624 	.ds 2
      000056                        625 _match_mask::
      000056                        626 	.ds 4
      00005A                        627 _match_value::
      00005A                        628 	.ds 4
      00005E                        629 _DAP_TransferAbort::
      00005E                        630 	.ds 1
      00005F                        631 _request_count::
      00005F                        632 	.ds 1
      000060                        633 _request_value::
      000060                        634 	.ds 1
      000061                        635 _response_count::
      000061                        636 	.ds 1
      000062                        637 _response_value::
      000062                        638 	.ds 1
      000063                        639 _retry::
      000063                        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)
      000100                        660 _data::
      000100                        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;
      00005C 75 22 05         [24]  687 	mov	_ring_swd_half_period_us,#0x05
      00005F 75 23 00         [24]  688 	mov	(_ring_swd_half_period_us + 1),#0x00
                                    689 ;	src/dap.c:438: __idata uint8_t DAP_TransferAbort = 0U;
      000062 78 5E            [12]  690 	mov	r0,#_DAP_TransferAbort
      000064 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 ;	-----------------------------------------
      000151                        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
      000151 AF 82            [24]  722 	mov	r7,dpl
                                    723 ;	src/dap.c:49: val = 0U;
      000153 7E 00            [12]  724 	mov	r6,#0x00
                                    725 ;	src/dap.c:50: n   = 0U;
      000155 7D 00            [12]  726 	mov	r5,#0x00
                                    727 ;	src/dap.c:51: while(count--) {
      000157 AB 24            [24]  728 	mov	r3,_SWJ_Sequence_PARM_2
      000159 AC 25            [24]  729 	mov	r4,(_SWJ_Sequence_PARM_2 + 1)
      00015B                        730 00103$:
      00015B 8F 02            [24]  731 	mov	ar2,r7
      00015D 1F               [12]  732 	dec	r7
      00015E EA               [12]  733 	mov	a,r2
      00015F 60 48            [24]  734 	jz	00106$
                                    735 ;	src/dap.c:52: if(n == 0U) {
      000161 ED               [12]  736 	mov	a,r5
      000162 70 0D            [24]  737 	jnz	00102$
                                    738 ;	src/dap.c:53: val = *data++;
      000164 8B 82            [24]  739 	mov	dpl,r3
      000166 8C 83            [24]  740 	mov	dph,r4
      000168 E0               [24]  741 	movx	a,@dptr
      000169 FE               [12]  742 	mov	r6,a
      00016A A3               [24]  743 	inc	dptr
      00016B AB 82            [24]  744 	mov	r3,dpl
      00016D AC 83            [24]  745 	mov	r4,dph
                                    746 ;	src/dap.c:54: n   = 8U;
      00016F 7D 08            [12]  747 	mov	r5,#0x08
      000171                        748 00102$:
                                    749 ;	src/dap.c:57: SWD_WRITE_BIT(val);
      000171 EE               [12]  750 	mov	a,r6
      000172 54 01            [12]  751 	anl	a,#0x01
                                    752 ;	assignBit
      000174 24 FF            [12]  753 	add	a,#0xff
      000176 92 95            [24]  754 	mov	_PP15,c
      000178 85 22 82         [24]  755 	mov	dpl,_ring_swd_half_period_us
      00017B 85 23 83         [24]  756 	mov	dph,(_ring_swd_half_period_us + 1)
      00017E C0 07            [24]  757 	push	ar7
      000180 C0 06            [24]  758 	push	ar6
      000182 C0 05            [24]  759 	push	ar5
      000184 C0 04            [24]  760 	push	ar4
      000186 C0 03            [24]  761 	push	ar3
      000188 12 14 6E         [24]  762 	lcall	_DLY_us
                                    763 ;	assignBit
      00018B D2 96            [12]  764 	setb	_PP16
      00018D 85 22 82         [24]  765 	mov	dpl,_ring_swd_half_period_us
      000190 85 23 83         [24]  766 	mov	dph,(_ring_swd_half_period_us + 1)
      000193 12 14 6E         [24]  767 	lcall	_DLY_us
      000196 D0 03            [24]  768 	pop	ar3
      000198 D0 04            [24]  769 	pop	ar4
      00019A D0 05            [24]  770 	pop	ar5
      00019C D0 06            [24]  771 	pop	ar6
      00019E D0 07            [24]  772 	pop	ar7
                                    773 ;	assignBit
      0001A0 C2 96            [12]  774 	clr	_PP16
                                    775 ;	src/dap.c:58: val >>= 1;
      0001A2 EE               [12]  776 	mov	a,r6
      0001A3 C3               [12]  777 	clr	c
      0001A4 13               [12]  778 	rrc	a
      0001A5 FE               [12]  779 	mov	r6,a
                                    780 ;	src/dap.c:59: n--;
      0001A6 1D               [12]  781 	dec	r5
      0001A7 80 B2            [24]  782 	sjmp	00103$
      0001A9                        783 00106$:
                                    784 ;	src/dap.c:61: }
      0001A9 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 ;	-----------------------------------------
      0001AA                        801 _SWD_Sequence:
      0001AA AF 82            [24]  802 	mov	r7,dpl
                                    803 ;	src/dap.c:75: n = info & SWD_SEQUENCE_CLK;
      0001AC 74 3F            [12]  804 	mov	a,#0x3f
      0001AE 5F               [12]  805 	anl	a,r7
                                    806 ;	src/dap.c:76: if(n == 0U) n = 64U;
      0001AF FE               [12]  807 	mov	r6,a
      0001B0 70 02            [24]  808 	jnz	00102$
      0001B2 7E 40            [12]  809 	mov	r6,#0x40
      0001B4                        810 00102$:
                                    811 ;	src/dap.c:78: if(info & SWD_SEQUENCE_DIN) {
      0001B4 EF               [12]  812 	mov	a,r7
      0001B5 30 E7 71         [24]  813 	jnb	acc.7,00131$
                                    814 ;	src/dap.c:79: while(n) {
      0001B8 AD 28            [24]  815 	mov	r5,_SWD_Sequence_PARM_3
      0001BA AF 29            [24]  816 	mov	r7,(_SWD_Sequence_PARM_3 + 1)
      0001BC                        817 00104$:
      0001BC EE               [12]  818 	mov	a,r6
      0001BD 70 01            [24]  819 	jnz	00188$
      0001BF 22               [24]  820 	ret
      0001C0                        821 00188$:
                                    822 ;	src/dap.c:80: val = 0U;
      0001C0 7C 00            [12]  823 	mov	r4,#0x00
                                    824 ;	src/dap.c:81: for (k = 8U; k && n; k--, n--) {
      0001C2 7B 08            [12]  825 	mov	r3,#0x08
      0001C4 8E 02            [24]  826 	mov	ar2,r6
      0001C6                        827 00116$:
      0001C6 EB               [12]  828 	mov	a,r3
      0001C7 60 45            [24]  829 	jz	00135$
      0001C9 EA               [12]  830 	mov	a,r2
      0001CA 60 42            [24]  831 	jz	00135$
                                    832 ;	src/dap.c:82: SWD_READ_BIT(bits);
      0001CC A2 95            [12]  833 	mov	c,_PP15
      0001CE E4               [12]  834 	clr	a
      0001CF 33               [12]  835 	rlc	a
      0001D0 F9               [12]  836 	mov	r1,a
      0001D1 85 22 82         [24]  837 	mov	dpl,_ring_swd_half_period_us
      0001D4 85 23 83         [24]  838 	mov	dph,(_ring_swd_half_period_us + 1)
      0001D7 C0 07            [24]  839 	push	ar7
      0001D9 C0 05            [24]  840 	push	ar5
      0001DB C0 04            [24]  841 	push	ar4
      0001DD C0 03            [24]  842 	push	ar3
      0001DF C0 02            [24]  843 	push	ar2
      0001E1 C0 01            [24]  844 	push	ar1
      0001E3 12 14 6E         [24]  845 	lcall	_DLY_us
                                    846 ;	assignBit
      0001E6 D2 96            [12]  847 	setb	_PP16
      0001E8 85 22 82         [24]  848 	mov	dpl,_ring_swd_half_period_us
      0001EB 85 23 83         [24]  849 	mov	dph,(_ring_swd_half_period_us + 1)
      0001EE 12 14 6E         [24]  850 	lcall	_DLY_us
      0001F1 D0 01            [24]  851 	pop	ar1
      0001F3 D0 02            [24]  852 	pop	ar2
      0001F5 D0 03            [24]  853 	pop	ar3
      0001F7 D0 04            [24]  854 	pop	ar4
      0001F9 D0 05            [24]  855 	pop	ar5
      0001FB D0 07            [24]  856 	pop	ar7
                                    857 ;	assignBit
      0001FD C2 96            [12]  858 	clr	_PP16
                                    859 ;	src/dap.c:83: val >>= 1;
      0001FF EC               [12]  860 	mov	a,r4
      000200 C3               [12]  861 	clr	c
      000201 13               [12]  862 	rrc	a
      000202 F8               [12]  863 	mov	r0,a
                                    864 ;	src/dap.c:84: val |= bits << 7;
      000203 E9               [12]  865 	mov	a,r1
      000204 03               [12]  866 	rr	a
      000205 54 80            [12]  867 	anl	a,#0x80
      000207 F9               [12]  868 	mov	r1,a
      000208 48               [12]  869 	orl	a,r0
      000209 FC               [12]  870 	mov	r4,a
                                    871 ;	src/dap.c:81: for (k = 8U; k && n; k--, n--) {
      00020A 1B               [12]  872 	dec	r3
      00020B 1A               [12]  873 	dec	r2
      00020C 80 B8            [24]  874 	sjmp	00116$
      00020E                        875 00135$:
      00020E 8A 06            [24]  876 	mov	ar6,r2
                                    877 ;	src/dap.c:86: val >>= k;
      000210 8B F0            [24]  878 	mov	b,r3
      000212 05 F0            [12]  879 	inc	b
      000214 EC               [12]  880 	mov	a,r4
      000215 80 02            [24]  881 	sjmp	00192$
      000217                        882 00191$:
      000217 C3               [12]  883 	clr	c
      000218 13               [12]  884 	rrc	a
      000219                        885 00192$:
      000219 D5 F0 FB         [24]  886 	djnz	b,00191$
                                    887 ;	src/dap.c:87: *swdi++ = (uint8_t)val;
      00021C FB               [12]  888 	mov	r3,a
      00021D 8D 82            [24]  889 	mov	dpl,r5
      00021F 8F 83            [24]  890 	mov	dph,r7
      000221 F0               [24]  891 	movx	@dptr,a
      000222 A3               [24]  892 	inc	dptr
      000223 AD 82            [24]  893 	mov	r5,dpl
      000225 AF 83            [24]  894 	mov	r7,dph
                                    895 ;	src/dap.c:91: while(n) {
      000227 80 93            [24]  896 	sjmp	00104$
      000229                        897 00131$:
      000229 AD 26            [24]  898 	mov	r5,_SWD_Sequence_PARM_2
      00022B AF 27            [24]  899 	mov	r7,(_SWD_Sequence_PARM_2 + 1)
      00022D                        900 00108$:
      00022D EE               [12]  901 	mov	a,r6
      00022E 60 50            [24]  902 	jz	00122$
                                    903 ;	src/dap.c:92: val = *swdo++;
      000230 8D 82            [24]  904 	mov	dpl,r5
      000232 8F 83            [24]  905 	mov	dph,r7
      000234 E0               [24]  906 	movx	a,@dptr
      000235 FC               [12]  907 	mov	r4,a
      000236 A3               [24]  908 	inc	dptr
      000237 AD 82            [24]  909 	mov	r5,dpl
      000239 AF 83            [24]  910 	mov	r7,dph
                                    911 ;	src/dap.c:93: for(k = 8U; k && n; k--, n--) {
      00023B 7B 08            [12]  912 	mov	r3,#0x08
      00023D 8E 02            [24]  913 	mov	ar2,r6
      00023F                        914 00120$:
      00023F EB               [12]  915 	mov	a,r3
      000240 60 EB            [24]  916 	jz	00108$
      000242 EA               [12]  917 	mov	a,r2
      000243 60 E8            [24]  918 	jz	00108$
                                    919 ;	src/dap.c:94: SWD_WRITE_BIT(val);
      000245 EC               [12]  920 	mov	a,r4
      000246 54 01            [12]  921 	anl	a,#0x01
                                    922 ;	assignBit
      000248 24 FF            [12]  923 	add	a,#0xff
      00024A 92 95            [24]  924 	mov	_PP15,c
      00024C 85 22 82         [24]  925 	mov	dpl,_ring_swd_half_period_us
      00024F 85 23 83         [24]  926 	mov	dph,(_ring_swd_half_period_us + 1)
      000252 C0 07            [24]  927 	push	ar7
      000254 C0 05            [24]  928 	push	ar5
      000256 C0 04            [24]  929 	push	ar4
      000258 C0 03            [24]  930 	push	ar3
      00025A C0 02            [24]  931 	push	ar2
      00025C 12 14 6E         [24]  932 	lcall	_DLY_us
                                    933 ;	assignBit
      00025F D2 96            [12]  934 	setb	_PP16
      000261 85 22 82         [24]  935 	mov	dpl,_ring_swd_half_period_us
      000264 85 23 83         [24]  936 	mov	dph,(_ring_swd_half_period_us + 1)
      000267 12 14 6E         [24]  937 	lcall	_DLY_us
      00026A D0 02            [24]  938 	pop	ar2
      00026C D0 03            [24]  939 	pop	ar3
      00026E D0 04            [24]  940 	pop	ar4
      000270 D0 05            [24]  941 	pop	ar5
      000272 D0 07            [24]  942 	pop	ar7
                                    943 ;	assignBit
      000274 C2 96            [12]  944 	clr	_PP16
                                    945 ;	src/dap.c:95: val >>= 1;
      000276 EC               [12]  946 	mov	a,r4
      000277 C3               [12]  947 	clr	c
      000278 13               [12]  948 	rrc	a
      000279 FC               [12]  949 	mov	r4,a
                                    950 ;	src/dap.c:93: for(k = 8U; k && n; k--, n--) {
      00027A 1B               [12]  951 	dec	r3
      00027B 1A               [12]  952 	dec	r2
      00027C 8A 06            [24]  953 	mov	ar6,r2
      00027E 80 BF            [24]  954 	sjmp	00120$
      000280                        955 00122$:
                                    956 ;	src/dap.c:99: }
      000280 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 ;	-----------------------------------------
      000281                        974 _SWD_Transfer:
      000281 AF 82            [24]  975 	mov	r7,dpl
                                    976 ;	src/dap.c:117: SWD_WRITE_BIT(1U);              // start bit
                                    977 ;	assignBit
      000283 D2 95            [12]  978 	setb	_PP15
      000285 85 22 82         [24]  979 	mov	dpl,_ring_swd_half_period_us
      000288 85 23 83         [24]  980 	mov	dph,(_ring_swd_half_period_us + 1)
      00028B C0 07            [24]  981 	push	ar7
      00028D 12 14 6E         [24]  982 	lcall	_DLY_us
                                    983 ;	assignBit
      000290 D2 96            [12]  984 	setb	_PP16
      000292 85 22 82         [24]  985 	mov	dpl,_ring_swd_half_period_us
      000295 85 23 83         [24]  986 	mov	dph,(_ring_swd_half_period_us + 1)
      000298 12 14 6E         [24]  987 	lcall	_DLY_us
      00029B D0 07            [24]  988 	pop	ar7
                                    989 ;	assignBit
      00029D C2 96            [12]  990 	clr	_PP16
                                    991 ;	src/dap.c:118: SWD_WRITE_BIT(bits);            // APnDP bit
      00029F EF               [12]  992 	mov	a,r7
      0002A0 54 01            [12]  993 	anl	a,#0x01
                                    994 ;	assignBit
      0002A2 24 FF            [12]  995 	add	a,#0xff
      0002A4 92 95            [24]  996 	mov	_PP15,c
      0002A6 85 22 82         [24]  997 	mov	dpl,_ring_swd_half_period_us
      0002A9 85 23 83         [24]  998 	mov	dph,(_ring_swd_half_period_us + 1)
      0002AC C0 07            [24]  999 	push	ar7
      0002AE 12 14 6E         [24] 1000 	lcall	_DLY_us
                                   1001 ;	assignBit
      0002B1 D2 96            [12] 1002 	setb	_PP16
      0002B3 85 22 82         [24] 1003 	mov	dpl,_ring_swd_half_period_us
      0002B6 85 23 83         [24] 1004 	mov	dph,(_ring_swd_half_period_us + 1)
      0002B9 12 14 6E         [24] 1005 	lcall	_DLY_us
      0002BC D0 07            [24] 1006 	pop	ar7
                                   1007 ;	assignBit
      0002BE C2 96            [12] 1008 	clr	_PP16
                                   1009 ;	src/dap.c:120: bits >>= 1;
      0002C0 EF               [12] 1010 	mov	a,r7
      0002C1 C3               [12] 1011 	clr	c
      0002C2 13               [12] 1012 	rrc	a
                                   1013 ;	src/dap.c:121: SWD_WRITE_BIT(bits);            // RnW bit
      0002C3 FE               [12] 1014 	mov	r6,a
      0002C4 54 01            [12] 1015 	anl	a,#0x01
                                   1016 ;	assignBit
      0002C6 24 FF            [12] 1017 	add	a,#0xff
      0002C8 92 95            [24] 1018 	mov	_PP15,c
      0002CA 85 22 82         [24] 1019 	mov	dpl,_ring_swd_half_period_us
      0002CD 85 23 83         [24] 1020 	mov	dph,(_ring_swd_half_period_us + 1)
      0002D0 C0 07            [24] 1021 	push	ar7
      0002D2 C0 06            [24] 1022 	push	ar6
      0002D4 12 14 6E         [24] 1023 	lcall	_DLY_us
                                   1024 ;	assignBit
      0002D7 D2 96            [12] 1025 	setb	_PP16
      0002D9 85 22 82         [24] 1026 	mov	dpl,_ring_swd_half_period_us
      0002DC 85 23 83         [24] 1027 	mov	dph,(_ring_swd_half_period_us + 1)
      0002DF 12 14 6E         [24] 1028 	lcall	_DLY_us
      0002E2 D0 06            [24] 1029 	pop	ar6
      0002E4 D0 07            [24] 1030 	pop	ar7
                                   1031 ;	assignBit
      0002E6 C2 96            [12] 1032 	clr	_PP16
                                   1033 ;	src/dap.c:122: parity += bits;
      0002E8 EE               [12] 1034 	mov	a,r6
      0002E9 2F               [12] 1035 	add	a,r7
      0002EA FD               [12] 1036 	mov	r5,a
                                   1037 ;	src/dap.c:123: bits >>= 1;
      0002EB EE               [12] 1038 	mov	a,r6
      0002EC C3               [12] 1039 	clr	c
      0002ED 13               [12] 1040 	rrc	a
                                   1041 ;	src/dap.c:124: SWD_WRITE_BIT(bits);            // A2 bit
      0002EE FE               [12] 1042 	mov	r6,a
      0002EF 54 01            [12] 1043 	anl	a,#0x01
                                   1044 ;	assignBit
      0002F1 24 FF            [12] 1045 	add	a,#0xff
      0002F3 92 95            [24] 1046 	mov	_PP15,c
      0002F5 85 22 82         [24] 1047 	mov	dpl,_ring_swd_half_period_us
      0002F8 85 23 83         [24] 1048 	mov	dph,(_ring_swd_half_period_us + 1)
      0002FB C0 07            [24] 1049 	push	ar7
      0002FD C0 06            [24] 1050 	push	ar6
      0002FF C0 05            [24] 1051 	push	ar5
      000301 12 14 6E         [24] 1052 	lcall	_DLY_us
                                   1053 ;	assignBit
      000304 D2 96            [12] 1054 	setb	_PP16
      000306 85 22 82         [24] 1055 	mov	dpl,_ring_swd_half_period_us
      000309 85 23 83         [24] 1056 	mov	dph,(_ring_swd_half_period_us + 1)
      00030C 12 14 6E         [24] 1057 	lcall	_DLY_us
      00030F D0 05            [24] 1058 	pop	ar5
      000311 D0 06            [24] 1059 	pop	ar6
                                   1060 ;	assignBit
      000313 C2 96            [12] 1061 	clr	_PP16
                                   1062 ;	src/dap.c:125: parity += bits;
      000315 EE               [12] 1063 	mov	a,r6
      000316 2D               [12] 1064 	add	a,r5
      000317 FD               [12] 1065 	mov	r5,a
                                   1066 ;	src/dap.c:126: bits >>= 1;
      000318 EE               [12] 1067 	mov	a,r6
      000319 C3               [12] 1068 	clr	c
      00031A 13               [12] 1069 	rrc	a
                                   1070 ;	src/dap.c:127: SWD_WRITE_BIT(bits);            // A3 bit
      00031B FE               [12] 1071 	mov	r6,a
      00031C 54 01            [12] 1072 	anl	a,#0x01
                                   1073 ;	assignBit
      00031E 24 FF            [12] 1074 	add	a,#0xff
      000320 92 95            [24] 1075 	mov	_PP15,c
      000322 85 22 82         [24] 1076 	mov	dpl,_ring_swd_half_period_us
      000325 85 23 83         [24] 1077 	mov	dph,(_ring_swd_half_period_us + 1)
      000328 C0 06            [24] 1078 	push	ar6
      00032A C0 05            [24] 1079 	push	ar5
      00032C 12 14 6E         [24] 1080 	lcall	_DLY_us
                                   1081 ;	assignBit
      00032F D2 96            [12] 1082 	setb	_PP16
      000331 85 22 82         [24] 1083 	mov	dpl,_ring_swd_half_period_us
      000334 85 23 83         [24] 1084 	mov	dph,(_ring_swd_half_period_us + 1)
      000337 12 14 6E         [24] 1085 	lcall	_DLY_us
      00033A D0 05            [24] 1086 	pop	ar5
      00033C D0 06            [24] 1087 	pop	ar6
                                   1088 ;	assignBit
      00033E C2 96            [12] 1089 	clr	_PP16
                                   1090 ;	src/dap.c:128: parity += bits;
      000340 EE               [12] 1091 	mov	a,r6
      000341 2D               [12] 1092 	add	a,r5
                                   1093 ;	src/dap.c:129: SWD_WRITE_BIT(parity);          // parity bit
      000342 54 01            [12] 1094 	anl	a,#0x01
                                   1095 ;	assignBit
      000344 24 FF            [12] 1096 	add	a,#0xff
      000346 92 95            [24] 1097 	mov	_PP15,c
      000348 85 22 82         [24] 1098 	mov	dpl,_ring_swd_half_period_us
      00034B 85 23 83         [24] 1099 	mov	dph,(_ring_swd_half_period_us + 1)
      00034E 12 14 6E         [24] 1100 	lcall	_DLY_us
                                   1101 ;	assignBit
      000351 D2 96            [12] 1102 	setb	_PP16
      000353 85 22 82         [24] 1103 	mov	dpl,_ring_swd_half_period_us
      000356 85 23 83         [24] 1104 	mov	dph,(_ring_swd_half_period_us + 1)
      000359 12 14 6E         [24] 1105 	lcall	_DLY_us
                                   1106 ;	assignBit
      00035C C2 96            [12] 1107 	clr	_PP16
                                   1108 ;	src/dap.c:130: SWD_WRITE_BIT(0U);              // stop bit
                                   1109 ;	assignBit
      00035E C2 95            [12] 1110 	clr	_PP15
      000360 85 22 82         [24] 1111 	mov	dpl,_ring_swd_half_period_us
      000363 85 23 83         [24] 1112 	mov	dph,(_ring_swd_half_period_us + 1)
      000366 12 14 6E         [24] 1113 	lcall	_DLY_us
                                   1114 ;	assignBit
      000369 D2 96            [12] 1115 	setb	_PP16
      00036B 85 22 82         [24] 1116 	mov	dpl,_ring_swd_half_period_us
      00036E 85 23 83         [24] 1117 	mov	dph,(_ring_swd_half_period_us + 1)
      000371 12 14 6E         [24] 1118 	lcall	_DLY_us
                                   1119 ;	assignBit
      000374 C2 96            [12] 1120 	clr	_PP16
                                   1121 ;	src/dap.c:131: SWD_WRITE_BIT(1U);              // park bit
                                   1122 ;	assignBit
      000376 D2 95            [12] 1123 	setb	_PP15
      000378 85 22 82         [24] 1124 	mov	dpl,_ring_swd_half_period_us
      00037B 85 23 83         [24] 1125 	mov	dph,(_ring_swd_half_period_us + 1)
      00037E 12 14 6E         [24] 1126 	lcall	_DLY_us
                                   1127 ;	assignBit
      000381 D2 96            [12] 1128 	setb	_PP16
      000383 85 22 82         [24] 1129 	mov	dpl,_ring_swd_half_period_us
      000386 85 23 83         [24] 1130 	mov	dph,(_ring_swd_half_period_us + 1)
      000389 12 14 6E         [24] 1131 	lcall	_DLY_us
                                   1132 ;	assignBit
      00038C C2 96            [12] 1133 	clr	_PP16
                                   1134 ;	src/dap.c:134: SWD_OUT_DISABLE();
      00038E 53 93 DF         [24] 1135 	anl	_P1_DIR_PU,#0xdf
      000391 53 92 DF         [24] 1136 	anl	_P1_MOD_OC,#0xdf
                                   1137 ;	src/dap.c:135: SWD_CLOCK_CYCLE();
      000394 85 22 82         [24] 1138 	mov	dpl,_ring_swd_half_period_us
      000397 85 23 83         [24] 1139 	mov	dph,(_ring_swd_half_period_us + 1)
      00039A 12 14 6E         [24] 1140 	lcall	_DLY_us
                                   1141 ;	assignBit
      00039D D2 96            [12] 1142 	setb	_PP16
      00039F 85 22 82         [24] 1143 	mov	dpl,_ring_swd_half_period_us
      0003A2 85 23 83         [24] 1144 	mov	dph,(_ring_swd_half_period_us + 1)
      0003A5 12 14 6E         [24] 1145 	lcall	_DLY_us
                                   1146 ;	assignBit
      0003A8 C2 96            [12] 1147 	clr	_PP16
                                   1148 ;	src/dap.c:138: SWD_READ_BIT(bits);
      0003AA A2 95            [12] 1149 	mov	c,_PP15
      0003AC E4               [12] 1150 	clr	a
      0003AD 33               [12] 1151 	rlc	a
      0003AE FE               [12] 1152 	mov	r6,a
      0003AF 85 22 82         [24] 1153 	mov	dpl,_ring_swd_half_period_us
      0003B2 85 23 83         [24] 1154 	mov	dph,(_ring_swd_half_period_us + 1)
      0003B5 C0 06            [24] 1155 	push	ar6
      0003B7 12 14 6E         [24] 1156 	lcall	_DLY_us
                                   1157 ;	assignBit
      0003BA D2 96            [12] 1158 	setb	_PP16
      0003BC 85 22 82         [24] 1159 	mov	dpl,_ring_swd_half_period_us
      0003BF 85 23 83         [24] 1160 	mov	dph,(_ring_swd_half_period_us + 1)
      0003C2 12 14 6E         [24] 1161 	lcall	_DLY_us
                                   1162 ;	assignBit
      0003C5 C2 96            [12] 1163 	clr	_PP16
                                   1164 ;	src/dap.c:139: ack = bits << 0;
                                   1165 ;	src/dap.c:140: SWD_READ_BIT(bits);
      0003C7 A2 95            [12] 1166 	mov	c,_PP15
      0003C9 E4               [12] 1167 	clr	a
      0003CA 33               [12] 1168 	rlc	a
      0003CB FD               [12] 1169 	mov	r5,a
      0003CC 85 22 82         [24] 1170 	mov	dpl,_ring_swd_half_period_us
      0003CF 85 23 83         [24] 1171 	mov	dph,(_ring_swd_half_period_us + 1)
      0003D2 C0 05            [24] 1172 	push	ar5
      0003D4 12 14 6E         [24] 1173 	lcall	_DLY_us
                                   1174 ;	assignBit
      0003D7 D2 96            [12] 1175 	setb	_PP16
      0003D9 85 22 82         [24] 1176 	mov	dpl,_ring_swd_half_period_us
      0003DC 85 23 83         [24] 1177 	mov	dph,(_ring_swd_half_period_us + 1)
      0003DF 12 14 6E         [24] 1178 	lcall	_DLY_us
      0003E2 D0 05            [24] 1179 	pop	ar5
      0003E4 D0 06            [24] 1180 	pop	ar6
                                   1181 ;	assignBit
      0003E6 C2 96            [12] 1182 	clr	_PP16
                                   1183 ;	src/dap.c:141: ack |= bits << 1;
      0003E8 ED               [12] 1184 	mov	a,r5
      0003E9 2D               [12] 1185 	add	a,r5
      0003EA FD               [12] 1186 	mov	r5,a
      0003EB EE               [12] 1187 	mov	a,r6
      0003EC 42 05            [12] 1188 	orl	ar5,a
                                   1189 ;	src/dap.c:142: SWD_READ_BIT(bits);
      0003EE A2 95            [12] 1190 	mov	c,_PP15
      0003F0 E4               [12] 1191 	clr	a
      0003F1 33               [12] 1192 	rlc	a
      0003F2 FE               [12] 1193 	mov	r6,a
      0003F3 85 22 82         [24] 1194 	mov	dpl,_ring_swd_half_period_us
      0003F6 85 23 83         [24] 1195 	mov	dph,(_ring_swd_half_period_us + 1)
      0003F9 C0 06            [24] 1196 	push	ar6
      0003FB C0 05            [24] 1197 	push	ar5
      0003FD 12 14 6E         [24] 1198 	lcall	_DLY_us
                                   1199 ;	assignBit
      000400 D2 96            [12] 1200 	setb	_PP16
      000402 85 22 82         [24] 1201 	mov	dpl,_ring_swd_half_period_us
      000405 85 23 83         [24] 1202 	mov	dph,(_ring_swd_half_period_us + 1)
      000408 12 14 6E         [24] 1203 	lcall	_DLY_us
      00040B D0 05            [24] 1204 	pop	ar5
      00040D D0 06            [24] 1205 	pop	ar6
      00040F D0 07            [24] 1206 	pop	ar7
                                   1207 ;	assignBit
      000411 C2 96            [12] 1208 	clr	_PP16
                                   1209 ;	src/dap.c:143: ack |= bits << 2;
      000413 EE               [12] 1210 	mov	a,r6
      000414 2E               [12] 1211 	add	a,r6
      000415 25 E0            [12] 1212 	add	a,acc
      000417 FE               [12] 1213 	mov	r6,a
      000418 ED               [12] 1214 	mov	a,r5
      000419 42 06            [12] 1215 	orl	ar6,a
                                   1216 ;	src/dap.c:145: if(ack == DAP_TRANSFER_OK) {
      00041B BE 01 02         [24] 1217 	cjne	r6,#0x01,00245$
      00041E 80 03            [24] 1218 	sjmp	00246$
      000420                       1219 00245$:
      000420 02 05 A4         [24] 1220 	ljmp	00120$
      000423                       1221 00246$:
                                   1222 ;	src/dap.c:148: if(req & DAP_TRANSFER_RnW) {  // read data
      000423 EF               [12] 1223 	mov	a,r7
      000424 20 E1 03         [24] 1224 	jb	acc.1,00247$
      000427 02 04 DD         [24] 1225 	ljmp	00114$
      00042A                       1226 00247$:
                                   1227 ;	src/dap.c:149: val = 0U;
      00042A 7F 00            [12] 1228 	mov	r7,#0x00
                                   1229 ;	src/dap.c:150: parity = 0U;
      00042C 7D 00            [12] 1230 	mov	r5,#0x00
                                   1231 ;	src/dap.c:151: for(m = 0; m < 4; m++) {
      00042E 7C 00            [12] 1232 	mov	r4,#0x00
                                   1233 ;	src/dap.c:152: for(n = 8U; n; n--) {
      000430                       1234 00143$:
      000430 7B 08            [12] 1235 	mov	r3,#0x08
      000432                       1236 00127$:
                                   1237 ;	src/dap.c:153: SWD_READ_BIT(bits);     // read RDATA[0:31]
      000432 A2 95            [12] 1238 	mov	c,_PP15
      000434 E4               [12] 1239 	clr	a
      000435 33               [12] 1240 	rlc	a
      000436 FA               [12] 1241 	mov	r2,a
      000437 85 22 82         [24] 1242 	mov	dpl,_ring_swd_half_period_us
      00043A 85 23 83         [24] 1243 	mov	dph,(_ring_swd_half_period_us + 1)
      00043D C0 07            [24] 1244 	push	ar7
      00043F C0 06            [24] 1245 	push	ar6
      000441 C0 05            [24] 1246 	push	ar5
      000443 C0 04            [24] 1247 	push	ar4
      000445 C0 03            [24] 1248 	push	ar3
      000447 C0 02            [24] 1249 	push	ar2
      000449 12 14 6E         [24] 1250 	lcall	_DLY_us
                                   1251 ;	assignBit
      00044C D2 96            [12] 1252 	setb	_PP16
      00044E 85 22 82         [24] 1253 	mov	dpl,_ring_swd_half_period_us
      000451 85 23 83         [24] 1254 	mov	dph,(_ring_swd_half_period_us + 1)
      000454 12 14 6E         [24] 1255 	lcall	_DLY_us
      000457 D0 02            [24] 1256 	pop	ar2
      000459 D0 03            [24] 1257 	pop	ar3
      00045B D0 04            [24] 1258 	pop	ar4
      00045D D0 05            [24] 1259 	pop	ar5
      00045F D0 06            [24] 1260 	pop	ar6
      000461 D0 07            [24] 1261 	pop	ar7
                                   1262 ;	assignBit
      000463 C2 96            [12] 1263 	clr	_PP16
                                   1264 ;	src/dap.c:154: parity += bits;
      000465 EA               [12] 1265 	mov	a,r2
      000466 2D               [12] 1266 	add	a,r5
      000467 FD               [12] 1267 	mov	r5,a
                                   1268 ;	src/dap.c:155: val >>= 1;
      000468 EF               [12] 1269 	mov	a,r7
      000469 C3               [12] 1270 	clr	c
      00046A 13               [12] 1271 	rrc	a
      00046B FF               [12] 1272 	mov	r7,a
                                   1273 ;	src/dap.c:156: if(bits) val |= 0x80;
      00046C EA               [12] 1274 	mov	a,r2
      00046D 60 03            [24] 1275 	jz	00128$
      00046F 43 07 80         [24] 1276 	orl	ar7,#0x80
      000472                       1277 00128$:
                                   1278 ;	src/dap.c:152: for(n = 8U; n; n--) {
      000472 DB BE            [24] 1279 	djnz	r3,00127$
                                   1280 ;	src/dap.c:158: if(data) data[m] = val;
      000474 E5 2A            [12] 1281 	mov	a,_SWD_Transfer_PARM_2
      000476 45 2B            [12] 1282 	orl	a,(_SWD_Transfer_PARM_2 + 1)
      000478 60 0C            [24] 1283 	jz	00130$
      00047A EC               [12] 1284 	mov	a,r4
      00047B 25 2A            [12] 1285 	add	a,_SWD_Transfer_PARM_2
      00047D F5 82            [12] 1286 	mov	dpl,a
      00047F E4               [12] 1287 	clr	a
      000480 35 2B            [12] 1288 	addc	a,(_SWD_Transfer_PARM_2 + 1)
      000482 F5 83            [12] 1289 	mov	dph,a
      000484 EF               [12] 1290 	mov	a,r7
      000485 F0               [24] 1291 	movx	@dptr,a
      000486                       1292 00130$:
                                   1293 ;	src/dap.c:151: for(m = 0; m < 4; m++) {
      000486 0C               [12] 1294 	inc	r4
      000487 BC 04 00         [24] 1295 	cjne	r4,#0x04,00251$
      00048A                       1296 00251$:
      00048A 40 A4            [24] 1297 	jc	00143$
                                   1298 ;	src/dap.c:160: SWD_READ_BIT(bits);         // read parity
      00048C A2 95            [12] 1299 	mov	c,_PP15
      00048E E4               [12] 1300 	clr	a
      00048F 33               [12] 1301 	rlc	a
      000490 FF               [12] 1302 	mov	r7,a
      000491 85 22 82         [24] 1303 	mov	dpl,_ring_swd_half_period_us
      000494 85 23 83         [24] 1304 	mov	dph,(_ring_swd_half_period_us + 1)
      000497 C0 07            [24] 1305 	push	ar7
      000499 C0 06            [24] 1306 	push	ar6
      00049B C0 05            [24] 1307 	push	ar5
      00049D 12 14 6E         [24] 1308 	lcall	_DLY_us
                                   1309 ;	assignBit
      0004A0 D2 96            [12] 1310 	setb	_PP16
      0004A2 85 22 82         [24] 1311 	mov	dpl,_ring_swd_half_period_us
      0004A5 85 23 83         [24] 1312 	mov	dph,(_ring_swd_half_period_us + 1)
      0004A8 12 14 6E         [24] 1313 	lcall	_DLY_us
      0004AB D0 05            [24] 1314 	pop	ar5
      0004AD D0 06            [24] 1315 	pop	ar6
      0004AF D0 07            [24] 1316 	pop	ar7
                                   1317 ;	assignBit
      0004B1 C2 96            [12] 1318 	clr	_PP16
                                   1319 ;	src/dap.c:161: if((parity ^ bits) & 1U)
      0004B3 EF               [12] 1320 	mov	a,r7
      0004B4 6D               [12] 1321 	xrl	a,r5
      0004B5 30 E0 02         [24] 1322 	jnb	acc.0,00108$
                                   1323 ;	src/dap.c:162: ack = DAP_TRANSFER_ERROR;
      0004B8 7E 08            [12] 1324 	mov	r6,#0x08
      0004BA                       1325 00108$:
                                   1326 ;	src/dap.c:165: SWD_CLOCK_CYCLE();
      0004BA 85 22 82         [24] 1327 	mov	dpl,_ring_swd_half_period_us
      0004BD 85 23 83         [24] 1328 	mov	dph,(_ring_swd_half_period_us + 1)
      0004C0 C0 06            [24] 1329 	push	ar6
      0004C2 12 14 6E         [24] 1330 	lcall	_DLY_us
                                   1331 ;	assignBit
      0004C5 D2 96            [12] 1332 	setb	_PP16
      0004C7 85 22 82         [24] 1333 	mov	dpl,_ring_swd_half_period_us
      0004CA 85 23 83         [24] 1334 	mov	dph,(_ring_swd_half_period_us + 1)
      0004CD 12 14 6E         [24] 1335 	lcall	_DLY_us
      0004D0 D0 06            [24] 1336 	pop	ar6
                                   1337 ;	assignBit
      0004D2 C2 96            [12] 1338 	clr	_PP16
                                   1339 ;	src/dap.c:166: SWD_OUT_ENABLE();
      0004D4 43 92 20         [24] 1340 	orl	_P1_MOD_OC,#0x20
      0004D7 53 93 DF         [24] 1341 	anl	_P1_DIR_PU,#0xdf
      0004DA 02 05 73         [24] 1342 	ljmp	00115$
      0004DD                       1343 00114$:
                                   1344 ;	src/dap.c:170: SWD_CLOCK_CYCLE();
      0004DD 85 22 82         [24] 1345 	mov	dpl,_ring_swd_half_period_us
      0004E0 85 23 83         [24] 1346 	mov	dph,(_ring_swd_half_period_us + 1)
      0004E3 C0 06            [24] 1347 	push	ar6
      0004E5 12 14 6E         [24] 1348 	lcall	_DLY_us
                                   1349 ;	assignBit
      0004E8 D2 96            [12] 1350 	setb	_PP16
      0004EA 85 22 82         [24] 1351 	mov	dpl,_ring_swd_half_period_us
      0004ED 85 23 83         [24] 1352 	mov	dph,(_ring_swd_half_period_us + 1)
      0004F0 12 14 6E         [24] 1353 	lcall	_DLY_us
      0004F3 D0 06            [24] 1354 	pop	ar6
                                   1355 ;	assignBit
      0004F5 C2 96            [12] 1356 	clr	_PP16
                                   1357 ;	src/dap.c:171: SWD_OUT_ENABLE();
      0004F7 43 92 20         [24] 1358 	orl	_P1_MOD_OC,#0x20
      0004FA 53 93 DF         [24] 1359 	anl	_P1_DIR_PU,#0xdf
                                   1360 ;	src/dap.c:175: for(m = 0; m < 4; m++) {
      0004FD 7F 00            [12] 1361 	mov	r7,#0x00
      0004FF 7D 00            [12] 1362 	mov	r5,#0x00
      000501                       1363 00133$:
                                   1364 ;	src/dap.c:176: val = data[m];
      000501 ED               [12] 1365 	mov	a,r5
      000502 25 2A            [12] 1366 	add	a,_SWD_Transfer_PARM_2
      000504 F5 82            [12] 1367 	mov	dpl,a
      000506 E4               [12] 1368 	clr	a
      000507 35 2B            [12] 1369 	addc	a,(_SWD_Transfer_PARM_2 + 1)
      000509 F5 83            [12] 1370 	mov	dph,a
      00050B E0               [24] 1371 	movx	a,@dptr
      00050C FC               [12] 1372 	mov	r4,a
                                   1373 ;	src/dap.c:177: ACC = val;
      00050D 8C E0            [24] 1374 	mov	_ACC,r4
                                   1375 ;	src/dap.c:178: if(P) parity++;
      00050F 30 D0 01         [24] 1376 	jnb	_P,00150$
      000512 0F               [12] 1377 	inc	r7
                                   1378 ;	src/dap.c:179: for(n = 8U; n; n--) {
      000513                       1379 00150$:
      000513 7B 08            [12] 1380 	mov	r3,#0x08
      000515                       1381 00131$:
                                   1382 ;	src/dap.c:180: SWD_WRITE_BIT(val);
      000515 EC               [12] 1383 	mov	a,r4
      000516 54 01            [12] 1384 	anl	a,#0x01
                                   1385 ;	assignBit
      000518 24 FF            [12] 1386 	add	a,#0xff
      00051A 92 95            [24] 1387 	mov	_PP15,c
      00051C 85 22 82         [24] 1388 	mov	dpl,_ring_swd_half_period_us
      00051F 85 23 83         [24] 1389 	mov	dph,(_ring_swd_half_period_us + 1)
      000522 C0 07            [24] 1390 	push	ar7
      000524 C0 06            [24] 1391 	push	ar6
      000526 C0 05            [24] 1392 	push	ar5
      000528 C0 04            [24] 1393 	push	ar4
      00052A C0 03            [24] 1394 	push	ar3
      00052C 12 14 6E         [24] 1395 	lcall	_DLY_us
                                   1396 ;	assignBit
      00052F D2 96            [12] 1397 	setb	_PP16
      000531 85 22 82         [24] 1398 	mov	dpl,_ring_swd_half_period_us
      000534 85 23 83         [24] 1399 	mov	dph,(_ring_swd_half_period_us + 1)
      000537 12 14 6E         [24] 1400 	lcall	_DLY_us
      00053A D0 03            [24] 1401 	pop	ar3
      00053C D0 04            [24] 1402 	pop	ar4
      00053E D0 05            [24] 1403 	pop	ar5
      000540 D0 06            [24] 1404 	pop	ar6
      000542 D0 07            [24] 1405 	pop	ar7
                                   1406 ;	assignBit
      000544 C2 96            [12] 1407 	clr	_PP16
                                   1408 ;	src/dap.c:181: val >>= 1;
      000546 EC               [12] 1409 	mov	a,r4
      000547 C3               [12] 1410 	clr	c
      000548 13               [12] 1411 	rrc	a
      000549 FC               [12] 1412 	mov	r4,a
                                   1413 ;	src/dap.c:179: for(n = 8U; n; n--) {
      00054A DB C9            [24] 1414 	djnz	r3,00131$
                                   1415 ;	src/dap.c:175: for(m = 0; m < 4; m++) {
      00054C 0D               [12] 1416 	inc	r5
      00054D BD 04 00         [24] 1417 	cjne	r5,#0x04,00256$
      000550                       1418 00256$:
      000550 40 AF            [24] 1419 	jc	00133$
                                   1420 ;	src/dap.c:184: SWD_WRITE_BIT(parity);      // write parity bit
      000552 EF               [12] 1421 	mov	a,r7
      000553 54 01            [12] 1422 	anl	a,#0x01
                                   1423 ;	assignBit
      000555 24 FF            [12] 1424 	add	a,#0xff
      000557 92 95            [24] 1425 	mov	_PP15,c
      000559 85 22 82         [24] 1426 	mov	dpl,_ring_swd_half_period_us
      00055C 85 23 83         [24] 1427 	mov	dph,(_ring_swd_half_period_us + 1)
      00055F C0 06            [24] 1428 	push	ar6
      000561 12 14 6E         [24] 1429 	lcall	_DLY_us
                                   1430 ;	assignBit
      000564 D2 96            [12] 1431 	setb	_PP16
      000566 85 22 82         [24] 1432 	mov	dpl,_ring_swd_half_period_us
      000569 85 23 83         [24] 1433 	mov	dph,(_ring_swd_half_period_us + 1)
      00056C 12 14 6E         [24] 1434 	lcall	_DLY_us
      00056F D0 06            [24] 1435 	pop	ar6
                                   1436 ;	assignBit
      000571 C2 96            [12] 1437 	clr	_PP16
      000573                       1438 00115$:
                                   1439 ;	src/dap.c:187: SWD_SET(0);
                                   1440 ;	assignBit
      000573 C2 95            [12] 1441 	clr	_PP15
                                   1442 ;	src/dap.c:188: n = idle_cycles;
      000575 78 50            [12] 1443 	mov	r0,#_idle_cycles
                                   1444 ;	src/dap.c:189: if(n) {
      000577 E6               [12] 1445 	mov	a,@r0
      000578 FF               [12] 1446 	mov	r7,a
      000579 60 24            [24] 1447 	jz	00118$
                                   1448 ;	src/dap.c:190: for(; n; n--) SWD_CLOCK_CYCLE();
      00057B                       1449 00136$:
      00057B EF               [12] 1450 	mov	a,r7
      00057C 60 21            [24] 1451 	jz	00118$
      00057E 85 22 82         [24] 1452 	mov	dpl,_ring_swd_half_period_us
      000581 85 23 83         [24] 1453 	mov	dph,(_ring_swd_half_period_us + 1)
      000584 C0 07            [24] 1454 	push	ar7
      000586 C0 06            [24] 1455 	push	ar6
      000588 12 14 6E         [24] 1456 	lcall	_DLY_us
                                   1457 ;	assignBit
      00058B D2 96            [12] 1458 	setb	_PP16
      00058D 85 22 82         [24] 1459 	mov	dpl,_ring_swd_half_period_us
      000590 85 23 83         [24] 1460 	mov	dph,(_ring_swd_half_period_us + 1)
      000593 12 14 6E         [24] 1461 	lcall	_DLY_us
      000596 D0 06            [24] 1462 	pop	ar6
      000598 D0 07            [24] 1463 	pop	ar7
                                   1464 ;	assignBit
      00059A C2 96            [12] 1465 	clr	_PP16
      00059C 1F               [12] 1466 	dec	r7
      00059D 80 DC            [24] 1467 	sjmp	00136$
      00059F                       1468 00118$:
                                   1469 ;	src/dap.c:192: SWD_SET(1);
                                   1470 ;	assignBit
      00059F D2 95            [12] 1471 	setb	_PP15
                                   1472 ;	src/dap.c:193: return(ack);
      0005A1 8E 82            [24] 1473 	mov	dpl,r6
      0005A3 22               [24] 1474 	ret
      0005A4                       1475 00120$:
                                   1476 ;	src/dap.c:196: if((ack == DAP_TRANSFER_WAIT) || (ack == DAP_TRANSFER_FAULT)) {
      0005A4 BE 02 02         [24] 1477 	cjne	r6,#0x02,00260$
      0005A7 80 03            [24] 1478 	sjmp	00121$
      0005A9                       1479 00260$:
      0005A9 BE 04 25         [24] 1480 	cjne	r6,#0x04,00157$
      0005AC                       1481 00121$:
                                   1482 ;	src/dap.c:198: SWD_CLOCK_CYCLE();
      0005AC 85 22 82         [24] 1483 	mov	dpl,_ring_swd_half_period_us
      0005AF 85 23 83         [24] 1484 	mov	dph,(_ring_swd_half_period_us + 1)
      0005B2 C0 06            [24] 1485 	push	ar6
      0005B4 12 14 6E         [24] 1486 	lcall	_DLY_us
                                   1487 ;	assignBit
      0005B7 D2 96            [12] 1488 	setb	_PP16
      0005B9 85 22 82         [24] 1489 	mov	dpl,_ring_swd_half_period_us
      0005BC 85 23 83         [24] 1490 	mov	dph,(_ring_swd_half_period_us + 1)
      0005BF 12 14 6E         [24] 1491 	lcall	_DLY_us
      0005C2 D0 06            [24] 1492 	pop	ar6
                                   1493 ;	assignBit
      0005C4 C2 96            [12] 1494 	clr	_PP16
                                   1495 ;	src/dap.c:199: SWD_OUT_ENABLE();
      0005C6 43 92 20         [24] 1496 	orl	_P1_MOD_OC,#0x20
      0005C9 53 93 DF         [24] 1497 	anl	_P1_DIR_PU,#0xdf
                                   1498 ;	src/dap.c:200: SWD_SET(1);
                                   1499 ;	assignBit
      0005CC D2 95            [12] 1500 	setb	_PP15
                                   1501 ;	src/dap.c:201: return(ack);
      0005CE 8E 82            [24] 1502 	mov	dpl,r6
                                   1503 ;	src/dap.c:206: do {
      0005D0 22               [24] 1504 	ret
      0005D1                       1505 00157$:
      0005D1 7F 22            [12] 1506 	mov	r7,#0x22
      0005D3                       1507 00124$:
                                   1508 ;	src/dap.c:207: SWD_CLOCK_CYCLE();            // back off data phase
      0005D3 85 22 82         [24] 1509 	mov	dpl,_ring_swd_half_period_us
      0005D6 85 23 83         [24] 1510 	mov	dph,(_ring_swd_half_period_us + 1)
      0005D9 C0 07            [24] 1511 	push	ar7
      0005DB C0 06            [24] 1512 	push	ar6
      0005DD 12 14 6E         [24] 1513 	lcall	_DLY_us
                                   1514 ;	assignBit
      0005E0 D2 96            [12] 1515 	setb	_PP16
      0005E2 85 22 82         [24] 1516 	mov	dpl,_ring_swd_half_period_us
      0005E5 85 23 83         [24] 1517 	mov	dph,(_ring_swd_half_period_us + 1)
      0005E8 12 14 6E         [24] 1518 	lcall	_DLY_us
      0005EB D0 06            [24] 1519 	pop	ar6
      0005ED D0 07            [24] 1520 	pop	ar7
                                   1521 ;	assignBit
      0005EF C2 96            [12] 1522 	clr	_PP16
                                   1523 ;	src/dap.c:208: } while(--n);
      0005F1 DF E0            [24] 1524 	djnz	r7,00124$
                                   1525 ;	src/dap.c:210: SWD_OUT_ENABLE();
      0005F3 43 92 20         [24] 1526 	orl	_P1_MOD_OC,#0x20
      0005F6 53 93 DF         [24] 1527 	anl	_P1_DIR_PU,#0xdf
                                   1528 ;	src/dap.c:211: SWD_SET(1);
                                   1529 ;	assignBit
      0005F9 D2 95            [12] 1530 	setb	_PP15
                                   1531 ;	src/dap.c:212: return(ack);
      0005FB 8E 82            [24] 1532 	mov	dpl,r6
                                   1533 ;	src/dap.c:213: }
      0005FD 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 ;	-----------------------------------------
      0005FE                       1546 _DAP_Info:
      0005FE AF 82            [24] 1547 	mov	r7,dpl
                                   1548 ;	src/dap.c:222: uint8_t length = 0U;
      000600 7E 00            [12] 1549 	mov	r6,#0x00
                                   1550 ;	src/dap.c:223: switch(id) {
      000602 BF 04 02         [24] 1551 	cjne	r7,#0x04,00125$
      000605 80 0F            [24] 1552 	sjmp	00101$
      000607                       1553 00125$:
      000607 BF F0 02         [24] 1554 	cjne	r7,#0xf0,00126$
      00060A 80 2A            [24] 1555 	sjmp	00102$
      00060C                       1556 00126$:
      00060C BF FE 02         [24] 1557 	cjne	r7,#0xfe,00127$
      00060F 80 48            [24] 1558 	sjmp	00104$
      000611                       1559 00127$:
                                   1560 ;	src/dap.c:224: case DAP_ID_FW_VER:
      000611 BF FF 50         [24] 1561 	cjne	r7,#0xff,00106$
      000614 80 2D            [24] 1562 	sjmp	00103$
      000616                       1563 00101$:
                                   1564 ;	src/dap.c:225: length = (uint8_t)sizeof(DAP_FW_VER);
      000616 7E 06            [12] 1565 	mov	r6,#0x06
                                   1566 ;	src/dap.c:226: strcpy(info, DAP_FW_VER );
      000618 AC 2C            [24] 1567 	mov	r4,_DAP_Info_PARM_2
      00061A AD 2D            [24] 1568 	mov	r5,(_DAP_Info_PARM_2 + 1)
      00061C 7F 00            [12] 1569 	mov	r7,#0x00
      00061E 75 10 42         [24] 1570 	mov	_strcpy_PARM_2,#__str_0
      000621 75 11 19         [24] 1571 	mov	(_strcpy_PARM_2 + 1),#(__str_0 >> 8)
      000624 75 12 80         [24] 1572 	mov	(_strcpy_PARM_2 + 2),#0x80
      000627 8C 82            [24] 1573 	mov	dpl,r4
      000629 8D 83            [24] 1574 	mov	dph,r5
      00062B 8F F0            [24] 1575 	mov	b,r7
      00062D C0 06            [24] 1576 	push	ar6
      00062F 12 18 62         [24] 1577 	lcall	_strcpy
      000632 D0 06            [24] 1578 	pop	ar6
                                   1579 ;	src/dap.c:227: break;
                                   1580 ;	src/dap.c:228: case DAP_ID_CAPABILITIES:
      000634 80 2E            [24] 1581 	sjmp	00106$
      000636                       1582 00102$:
                                   1583 ;	src/dap.c:229: info[0] = DAP_PORT_SWD;
      000636 85 2C 82         [24] 1584 	mov	dpl,_DAP_Info_PARM_2
      000639 85 2D 83         [24] 1585 	mov	dph,(_DAP_Info_PARM_2 + 1)
      00063C 74 01            [12] 1586 	mov	a,#0x01
      00063E F0               [24] 1587 	movx	@dptr,a
                                   1588 ;	src/dap.c:230: length = 1U;
      00063F 7E 01            [12] 1589 	mov	r6,#0x01
                                   1590 ;	src/dap.c:231: break;
                                   1591 ;	src/dap.c:232: case DAP_ID_PACKET_SIZE:
      000641 80 21            [24] 1592 	sjmp	00106$
      000643                       1593 00103$:
                                   1594 ;	src/dap.c:233: info[0] = DAP_PACKET_SIZE;
      000643 AD 2C            [24] 1595 	mov	r5,_DAP_Info_PARM_2
      000645 AF 2D            [24] 1596 	mov	r7,(_DAP_Info_PARM_2 + 1)
      000647 8D 82            [24] 1597 	mov	dpl,r5
      000649 8F 83            [24] 1598 	mov	dph,r7
      00064B 74 40            [12] 1599 	mov	a,#0x40
      00064D F0               [24] 1600 	movx	@dptr,a
                                   1601 ;	src/dap.c:234: info[1] = 0;
      00064E 8D 82            [24] 1602 	mov	dpl,r5
      000650 8F 83            [24] 1603 	mov	dph,r7
      000652 A3               [24] 1604 	inc	dptr
      000653 E4               [12] 1605 	clr	a
      000654 F0               [24] 1606 	movx	@dptr,a
                                   1607 ;	src/dap.c:235: length = 2U;
      000655 7E 02            [12] 1608 	mov	r6,#0x02
                                   1609 ;	src/dap.c:236: break;
                                   1610 ;	src/dap.c:237: case DAP_ID_PACKET_COUNT:
      000657 80 0B            [24] 1611 	sjmp	00106$
      000659                       1612 00104$:
                                   1613 ;	src/dap.c:238: info[0] = DAP_PACKET_COUNT;
      000659 85 2C 82         [24] 1614 	mov	dpl,_DAP_Info_PARM_2
      00065C 85 2D 83         [24] 1615 	mov	dph,(_DAP_Info_PARM_2 + 1)
      00065F 74 01            [12] 1616 	mov	a,#0x01
      000661 F0               [24] 1617 	movx	@dptr,a
                                   1618 ;	src/dap.c:239: length = 1U;
      000662 7E 01            [12] 1619 	mov	r6,#0x01
                                   1620 ;	src/dap.c:243: }
      000664                       1621 00106$:
                                   1622 ;	src/dap.c:244: return length;
      000664 8E 82            [24] 1623 	mov	dpl,r6
                                   1624 ;	src/dap.c:245: }
      000666 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 ;	-----------------------------------------
      000667                       1636 _DAP_HostStatus:
      000667 AE 82            [24] 1637 	mov	r6,dpl
      000669 AF 83            [24] 1638 	mov	r7,dph
                                   1639 ;	src/dap.c:254: *res = DAP_OK;
      00066B AC 10            [24] 1640 	mov	r4,_DAP_HostStatus_PARM_2
      00066D AD 11            [24] 1641 	mov	r5,(_DAP_HostStatus_PARM_2 + 1)
      00066F 8C 82            [24] 1642 	mov	dpl,r4
      000671 8D 83            [24] 1643 	mov	dph,r5
      000673 E4               [12] 1644 	clr	a
      000674 F0               [24] 1645 	movx	@dptr,a
                                   1646 ;	src/dap.c:255: switch(*req) {
      000675 8E 82            [24] 1647 	mov	dpl,r6
      000677 8F 83            [24] 1648 	mov	dph,r7
      000679 E0               [24] 1649 	movx	a,@dptr
      00067A FF               [12] 1650 	mov	r7,a
      00067B 60 0C            [24] 1651 	jz	00104$
      00067D BF 01 02         [24] 1652 	cjne	r7,#0x01,00116$
      000680 80 07            [24] 1653 	sjmp	00104$
      000682                       1654 00116$:
                                   1655 ;	src/dap.c:263: *res = DAP_ERROR;
      000682 8C 82            [24] 1656 	mov	dpl,r4
      000684 8D 83            [24] 1657 	mov	dph,r5
      000686 74 FF            [12] 1658 	mov	a,#0xff
      000688 F0               [24] 1659 	movx	@dptr,a
                                   1660 ;	src/dap.c:264: }
      000689                       1661 00104$:
                                   1662 ;	src/dap.c:265: return 1;
      000689 75 82 01         [24] 1663 	mov	dpl,#0x01
                                   1664 ;	src/dap.c:266: }
      00068C 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 ;	-----------------------------------------
      00068D                       1677 _DAP_Connect:
                                   1678 ;	src/dap.c:277: if(*req == DAP_PORT_AUTODETECT) port = DAP_DEFAULT_PORT;
      00068D E0               [24] 1679 	movx	a,@dptr
      00068E FF               [12] 1680 	mov	r7,a
      00068F 70 04            [24] 1681 	jnz	00102$
      000691 7E 01            [12] 1682 	mov	r6,#0x01
      000693 80 02            [24] 1683 	sjmp	00103$
      000695                       1684 00102$:
                                   1685 ;	src/dap.c:278: else port = *req;
      000695 8F 06            [24] 1686 	mov	ar6,r7
      000697                       1687 00103$:
                                   1688 ;	src/dap.c:280: switch(port) {
      000697 BE 01 25         [24] 1689 	cjne	r6,#0x01,00108$
                                   1690 ;	src/dap.c:282: debug_port = DAP_PORT_SWD;
      00069A 78 51            [12] 1691 	mov	r0,#_debug_port
      00069C 76 01            [12] 1692 	mov	@r0,#0x01
                                   1693 ;	src/dap.c:283: PORT_SWD_CONNECT();
                                   1694 ;	assignBit
      00069E C2 94            [12] 1695 	clr	_PP14
      0006A0 75 82 01         [24] 1696 	mov	dpl,#0x01
      0006A3 C0 06            [24] 1697 	push	ar6
      0006A5 12 00 84         [24] 1698 	lcall	_ring_probe_reset
                                   1699 ;	assignBit
      0006A8 D2 95            [12] 1700 	setb	_PP15
      0006AA 43 92 20         [24] 1701 	orl	_P1_MOD_OC,#0x20
      0006AD 53 93 DF         [24] 1702 	anl	_P1_DIR_PU,#0xdf
                                   1703 ;	assignBit
      0006B0 C2 96            [12] 1704 	clr	_PP16
      0006B2 53 92 BF         [24] 1705 	anl	_P1_MOD_OC,#0xbf
      0006B5 43 93 40         [24] 1706 	orl	_P1_DIR_PU,#0x40
      0006B8 12 00 69         [24] 1707 	lcall	_ring_probe_enable
      0006BB D0 06            [24] 1708 	pop	ar6
                                   1709 ;	src/dap.c:284: break;
                                   1710 ;	src/dap.c:285: default:
      0006BD 80 02            [24] 1711 	sjmp	00109$
      0006BF                       1712 00108$:
                                   1713 ;	src/dap.c:286: port = DAP_PORT_DISABLED;
      0006BF 7E 00            [12] 1714 	mov	r6,#0x00
                                   1715 ;	src/dap.c:288: }
      0006C1                       1716 00109$:
                                   1717 ;	src/dap.c:290: *res = port;
      0006C1 85 2E 82         [24] 1718 	mov	dpl,_DAP_Connect_PARM_2
      0006C4 85 2F 83         [24] 1719 	mov	dph,(_DAP_Connect_PARM_2 + 1)
      0006C7 EE               [12] 1720 	mov	a,r6
      0006C8 F0               [24] 1721 	movx	@dptr,a
                                   1722 ;	src/dap.c:291: return 1;
      0006C9 75 82 01         [24] 1723 	mov	dpl,#0x01
                                   1724 ;	src/dap.c:292: }
      0006CC 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 ;	-----------------------------------------
      0006CD                       1735 _DAP_Disconnect:
                                   1736 ;	src/dap.c:300: *res = DAP_OK;
      0006CD E4               [12] 1737 	clr	a
      0006CE F0               [24] 1738 	movx	@dptr,a
                                   1739 ;	src/dap.c:301: debug_port = DAP_PORT_DISABLED;
      0006CF 78 51            [12] 1740 	mov	r0,#_debug_port
      0006D1 76 00            [12] 1741 	mov	@r0,#0x00
                                   1742 ;	src/dap.c:302: PORT_SWD_DISCONNECT();
                                   1743 ;	assignBit
      0006D3 C2 94            [12] 1744 	clr	_PP14
      0006D5 75 82 01         [24] 1745 	mov	dpl,#0x01
      0006D8 12 00 84         [24] 1746 	lcall	_ring_probe_reset
      0006DB 53 93 DF         [24] 1747 	anl	_P1_DIR_PU,#0xdf
      0006DE 53 92 DF         [24] 1748 	anl	_P1_MOD_OC,#0xdf
      0006E1 53 93 BF         [24] 1749 	anl	_P1_DIR_PU,#0xbf
      0006E4 53 92 BF         [24] 1750 	anl	_P1_MOD_OC,#0xbf
                                   1751 ;	src/dap.c:303: return 1;
      0006E7 75 82 01         [24] 1752 	mov	dpl,#0x01
                                   1753 ;	src/dap.c:304: }
      0006EA 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 ;	-----------------------------------------
      0006EB                       1772 _DAP_SWJ_Pins:
                                   1773 ;	src/dap.c:317: value = * (req + 0);
      0006EB AE 82            [24] 1774 	mov	r6,dpl
      0006ED AF 83            [24] 1775 	mov  r7,dph
      0006EF E0               [24] 1776 	movx	a,@dptr
      0006F0 FD               [12] 1777 	mov	r5,a
                                   1778 ;	src/dap.c:318: select = (uint8_t) * (req + 1);
      0006F1 8E 82            [24] 1779 	mov	dpl,r6
      0006F3 8F 83            [24] 1780 	mov	dph,r7
      0006F5 A3               [24] 1781 	inc	dptr
      0006F6 E0               [24] 1782 	movx	a,@dptr
      0006F7 FC               [12] 1783 	mov	r4,a
                                   1784 ;	src/dap.c:319: wait = (uint16_t)(*(req + 2) << 0) | (uint16_t)(*(req + 3) << 8);
      0006F8 8E 82            [24] 1785 	mov	dpl,r6
      0006FA 8F 83            [24] 1786 	mov	dph,r7
      0006FC A3               [24] 1787 	inc	dptr
      0006FD A3               [24] 1788 	inc	dptr
      0006FE E0               [24] 1789 	movx	a,@dptr
      0006FF FB               [12] 1790 	mov	r3,a
      000700 7A 00            [12] 1791 	mov	r2,#0x00
      000702 8E 82            [24] 1792 	mov	dpl,r6
      000704 8F 83            [24] 1793 	mov	dph,r7
      000706 A3               [24] 1794 	inc	dptr
      000707 A3               [24] 1795 	inc	dptr
      000708 A3               [24] 1796 	inc	dptr
      000709 E0               [24] 1797 	movx	a,@dptr
      00070A F9               [12] 1798 	mov	r1,a
      00070B E4               [12] 1799 	clr	a
      00070C 42 03            [12] 1800 	orl	ar3,a
      00070E E9               [12] 1801 	mov	a,r1
      00070F 42 02            [12] 1802 	orl	ar2,a
                                   1803 ;	src/dap.c:320: if((uint8_t)(*(req + 4)) || (uint8_t)(*(req + 5))) wait |= 0x8000;
      000711 74 04            [12] 1804 	mov	a,#0x04
      000713 2E               [12] 1805 	add	a,r6
      000714 F8               [12] 1806 	mov	r0,a
      000715 E4               [12] 1807 	clr	a
      000716 3F               [12] 1808 	addc	a,r7
      000717 F9               [12] 1809 	mov	r1,a
      000718 88 82            [24] 1810 	mov	dpl,r0
      00071A 89 83            [24] 1811 	mov	dph,r1
      00071C E0               [24] 1812 	movx	a,@dptr
      00071D 70 0E            [24] 1813 	jnz	00101$
      00071F 74 05            [12] 1814 	mov	a,#0x05
      000721 2E               [12] 1815 	add	a,r6
      000722 FE               [12] 1816 	mov	r6,a
      000723 E4               [12] 1817 	clr	a
      000724 3F               [12] 1818 	addc	a,r7
      000725 FF               [12] 1819 	mov	r7,a
      000726 8E 82            [24] 1820 	mov	dpl,r6
      000728 8F 83            [24] 1821 	mov	dph,r7
      00072A E0               [24] 1822 	movx	a,@dptr
      00072B 60 0B            [24] 1823 	jz	00102$
      00072D                       1824 00101$:
      00072D 8B 06            [24] 1825 	mov	ar6,r3
      00072F 8A 07            [24] 1826 	mov	ar7,r2
      000731 43 07 80         [24] 1827 	orl	ar7,#0x80
      000734 8E 03            [24] 1828 	mov	ar3,r6
      000736 8F 02            [24] 1829 	mov	ar2,r7
      000738                       1830 00102$:
                                   1831 ;	src/dap.c:322: if((select & DAP_SWJ_SWCLK_TCK_BIT) != 0U) {
      000738 EC               [12] 1832 	mov	a,r4
      000739 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));
      00073C 8D 06            [24] 1835 	mov	ar6,r5
      00073E 7F 00            [12] 1836 	mov	r7,#0x00
      000740 EE               [12] 1837 	mov	a,r6
      000741 30 E0 06         [24] 1838 	jnb	acc.0,00129$
                                   1839 ;	assignBit
      000744 D2 96            [12] 1840 	setb	_PP16
      000746 A2 96            [12] 1841 	mov	c,_PP16
      000748 80 04            [24] 1842 	sjmp	00105$
      00074A                       1843 00129$:
                                   1844 ;	assignBit
      00074A C2 96            [12] 1845 	clr	_PP16
      00074C A2 96            [12] 1846 	mov	c,_PP16
      00074E                       1847 00105$:
                                   1848 ;	src/dap.c:325: if((select & DAP_SWJ_SWDIO_TMS_BIT) != 0U) {
      00074E EC               [12] 1849 	mov	a,r4
      00074F 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));
      000752 8D 06            [24] 1852 	mov	ar6,r5
      000754 7F 00            [12] 1853 	mov	r7,#0x00
      000756 EE               [12] 1854 	mov	a,r6
      000757 30 E1 06         [24] 1855 	jnb	acc.1,00131$
                                   1856 ;	assignBit
      00075A D2 95            [12] 1857 	setb	_PP15
      00075C A2 95            [12] 1858 	mov	c,_PP15
      00075E 80 04            [24] 1859 	sjmp	00107$
      000760                       1860 00131$:
                                   1861 ;	assignBit
      000760 C2 95            [12] 1862 	clr	_PP15
      000762 A2 95            [12] 1863 	mov	c,_PP15
      000764                       1864 00107$:
                                   1865 ;	src/dap.c:328: if((select & DAP_SWJ_nRESET_BIT) != 0U) {
      000764 EC               [12] 1866 	mov	a,r4
      000765 30 E7 19         [24] 1867 	jnb	acc.7,00109$
                                   1868 ;	src/dap.c:329: RST_SET(value >> DAP_SWJ_nRESET);
      000768 ED               [12] 1869 	mov	a,r5
      000769 23               [12] 1870 	rl	a
      00076A 54 01            [12] 1871 	anl	a,#0x01
      00076C F5 82            [12] 1872 	mov	dpl,a
      00076E C0 05            [24] 1873 	push	ar5
      000770 C0 04            [24] 1874 	push	ar4
      000772 C0 03            [24] 1875 	push	ar3
      000774 C0 02            [24] 1876 	push	ar2
      000776 12 00 84         [24] 1877 	lcall	_ring_probe_reset
      000779 D0 02            [24] 1878 	pop	ar2
      00077B D0 03            [24] 1879 	pop	ar3
      00077D D0 04            [24] 1880 	pop	ar4
      00077F D0 05            [24] 1881 	pop	ar5
      000781                       1882 00109$:
                                   1883 ;	src/dap.c:332: if(wait != 0U) {
      000781 EB               [12] 1884 	mov	a,r3
      000782 4A               [12] 1885 	orl	a,r2
      000783 60 5B            [24] 1886 	jz	00126$
                                   1887 ;	src/dap.c:333: do {
      000785 74 02            [12] 1888 	mov	a,#0x02
      000787 5C               [12] 1889 	anl	a,r4
      000788 FE               [12] 1890 	mov	r6,a
      000789 7F 00            [12] 1891 	mov	r7,#0x00
      00078B 74 80            [12] 1892 	mov	a,#0x80
      00078D 5C               [12] 1893 	anl	a,r4
      00078E F8               [12] 1894 	mov	r0,a
      00078F 79 00            [12] 1895 	mov	r1,#0x00
      000791 ED               [12] 1896 	mov	a,r5
      000792 23               [12] 1897 	rl	a
      000793 54 01            [12] 1898 	anl	a,#0x01
      000795 F5 32            [12] 1899 	mov	_DAP_SWJ_Pins_sloc0_1_0,a
      000797 ED               [12] 1900 	mov	a,r5
      000798 C3               [12] 1901 	clr	c
      000799 13               [12] 1902 	rrc	a
      00079A F5 33            [12] 1903 	mov	_DAP_SWJ_Pins_sloc1_1_0,a
      00079C 8D 36            [24] 1904 	mov	_DAP_SWJ_Pins_sloc4_1_0,r5
      00079E 74 01            [12] 1905 	mov	a,#0x01
      0007A0 5C               [12] 1906 	anl	a,r4
      0007A1 F5 34            [12] 1907 	mov	_DAP_SWJ_Pins_sloc2_1_0,a
                                   1908 ;	1-genFromRTrack replaced	mov	(_DAP_SWJ_Pins_sloc2_1_0 + 1),#0x00
      0007A3 8F 35            [24] 1909 	mov	(_DAP_SWJ_Pins_sloc2_1_0 + 1),r7
      0007A5 8A 04            [24] 1910 	mov	ar4,r2
      0007A7                       1911 00122$:
                                   1912 ;	src/dap.c:334: if((select & DAP_SWJ_SWCLK_TCK_BIT) != 0U) {
      0007A7 E5 34            [12] 1913 	mov	a,_DAP_SWJ_Pins_sloc2_1_0
      0007A9 45 35            [12] 1914 	orl	a,(_DAP_SWJ_Pins_sloc2_1_0 + 1)
      0007AB 60 09            [24] 1915 	jz	00113$
                                   1916 ;	src/dap.c:335: if((value >> DAP_SWJ_SWCLK_TCK) ^ (SWK_GET())) continue;
      0007AD A2 96            [12] 1917 	mov	c,_PP16
      0007AF E4               [12] 1918 	clr	a
      0007B0 33               [12] 1919 	rlc	a
      0007B1 FA               [12] 1920 	mov	r2,a
      0007B2 65 36            [12] 1921 	xrl	a,_DAP_SWJ_Pins_sloc4_1_0
      0007B4 70 1D            [24] 1922 	jnz	00123$
      0007B6                       1923 00113$:
                                   1924 ;	src/dap.c:337: if((select & DAP_SWJ_SWDIO_TMS_BIT) != 0U) {
      0007B6 EE               [12] 1925 	mov	a,r6
      0007B7 4F               [12] 1926 	orl	a,r7
      0007B8 60 09            [24] 1927 	jz	00117$
                                   1928 ;	src/dap.c:338: if((value >> DAP_SWJ_SWDIO_TMS) ^ (SWD_GET())) continue;
      0007BA A2 95            [12] 1929 	mov	c,_PP15
      0007BC E4               [12] 1930 	clr	a
      0007BD 33               [12] 1931 	rlc	a
      0007BE FA               [12] 1932 	mov	r2,a
      0007BF 65 33            [12] 1933 	xrl	a,_DAP_SWJ_Pins_sloc1_1_0
      0007C1 70 10            [24] 1934 	jnz	00123$
      0007C3                       1935 00117$:
                                   1936 ;	src/dap.c:340: if((select & DAP_SWJ_nRESET_BIT) != 0U) {
      0007C3 E8               [12] 1937 	mov	a,r0
      0007C4 49               [12] 1938 	orl	a,r1
      0007C5 60 19            [24] 1939 	jz	00126$
                                   1940 ;	src/dap.c:341: if((value >> DAP_SWJ_nRESET) ^ (RST_GET())) continue;
      0007C7 A2 97            [12] 1941 	mov	c,_PP17
      0007C9 B3               [12] 1942 	cpl	c
      0007CA 92 00            [24] 1943 	mov  _DAP_SWJ_Pins_sloc3_1_0,c
      0007CC E4               [12] 1944 	clr	a
      0007CD 33               [12] 1945 	rlc	a
      0007CE FA               [12] 1946 	mov	r2,a
      0007CF 65 32            [12] 1947 	xrl	a,_DAP_SWJ_Pins_sloc0_1_0
      0007D1 60 0D            [24] 1948 	jz	00126$
                                   1949 ;	src/dap.c:343: break;
      0007D3                       1950 00123$:
                                   1951 ;	src/dap.c:344: } while(wait--);
      0007D3 8B 02            [24] 1952 	mov	ar2,r3
      0007D5 8C 05            [24] 1953 	mov	ar5,r4
      0007D7 1B               [12] 1954 	dec	r3
      0007D8 BB FF 01         [24] 1955 	cjne	r3,#0xff,00202$
      0007DB 1C               [12] 1956 	dec	r4
      0007DC                       1957 00202$:
      0007DC EA               [12] 1958 	mov	a,r2
      0007DD 4D               [12] 1959 	orl	a,r5
      0007DE 70 C7            [24] 1960 	jnz	00122$
      0007E0                       1961 00126$:
                                   1962 ;	src/dap.c:347: value = ((uint8_t)SWK_GET() << DAP_SWJ_SWCLK_TCK)
      0007E0 A2 96            [12] 1963 	mov	c,_PP16
      0007E2 E4               [12] 1964 	clr	a
      0007E3 33               [12] 1965 	rlc	a
      0007E4 FF               [12] 1966 	mov	r7,a
                                   1967 ;	src/dap.c:348: | ((uint8_t)SWD_GET() << DAP_SWJ_SWDIO_TMS)
      0007E5 A2 95            [12] 1968 	mov	c,_PP15
      0007E7 E4               [12] 1969 	clr	a
      0007E8 33               [12] 1970 	rlc	a
      0007E9 25 E0            [12] 1971 	add	a,acc
      0007EB 42 07            [12] 1972 	orl	ar7,a
                                   1973 ;	src/dap.c:352: | ((uint8_t)RST_GET() << DAP_SWJ_nRESET);
      0007ED A2 97            [12] 1974 	mov	c,_PP17
      0007EF B3               [12] 1975 	cpl	c
      0007F0 92 00            [24] 1976 	mov  _DAP_SWJ_Pins_sloc3_1_0,c
      0007F2 E4               [12] 1977 	clr	a
      0007F3 33               [12] 1978 	rlc	a
      0007F4 03               [12] 1979 	rr	a
      0007F5 54 80            [12] 1980 	anl	a,#0x80
      0007F7 42 07            [12] 1981 	orl	ar7,a
                                   1982 ;	src/dap.c:353: *res = value;
      0007F9 85 30 82         [24] 1983 	mov	dpl,_DAP_SWJ_Pins_PARM_2
      0007FC 85 31 83         [24] 1984 	mov	dph,(_DAP_SWJ_Pins_PARM_2 + 1)
      0007FF EF               [12] 1985 	mov	a,r7
      000800 F0               [24] 1986 	movx	@dptr,a
                                   1987 ;	src/dap.c:354: return 1;
      000801 75 82 01         [24] 1988 	mov	dpl,#0x01
                                   1989 ;	src/dap.c:355: }
      000804 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 ;	-----------------------------------------
      000805                       2002 _DAP_SWJ_Sequence:
                                   2003 ;	src/dap.c:365: count = *req++;
      000805 AE 82            [24] 2004 	mov	r6,dpl
      000807 AF 83            [24] 2005 	mov  r7,dph
      000809 E0               [24] 2006 	movx	a,@dptr
      00080A FD               [12] 2007 	mov	r5,a
      00080B 0E               [12] 2008 	inc	r6
      00080C BE 00 01         [24] 2009 	cjne	r6,#0x00,00110$
      00080F 0F               [12] 2010 	inc	r7
      000810                       2011 00110$:
                                   2012 ;	src/dap.c:366: if(count == 0U) count = 255U;
      000810 ED               [12] 2013 	mov	a,r5
      000811 FC               [12] 2014 	mov	r4,a
      000812 70 02            [24] 2015 	jnz	00102$
      000814 7C FF            [12] 2016 	mov	r4,#0xff
      000816                       2017 00102$:
                                   2018 ;	src/dap.c:367: SWJ_Sequence(count, req);
      000816 8E 24            [24] 2019 	mov	_SWJ_Sequence_PARM_2,r6
      000818 8F 25            [24] 2020 	mov	(_SWJ_Sequence_PARM_2 + 1),r7
      00081A 8C 82            [24] 2021 	mov	dpl,r4
      00081C 12 01 51         [24] 2022 	lcall	_SWJ_Sequence
                                   2023 ;	src/dap.c:368: *res = DAP_OK;
      00081F 85 37 82         [24] 2024 	mov	dpl,_DAP_SWJ_Sequence_PARM_2
      000822 85 38 83         [24] 2025 	mov	dph,(_DAP_SWJ_Sequence_PARM_2 + 1)
      000825 E4               [12] 2026 	clr	a
      000826 F0               [24] 2027 	movx	@dptr,a
                                   2028 ;	src/dap.c:369: return 1;
      000827 75 82 01         [24] 2029 	mov	dpl,#0x01
                                   2030 ;	src/dap.c:370: }
      00082A 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 ;	-----------------------------------------
      00082B                       2047 _DAP_SWD_Sequence:
      00082B AE 82            [24] 2048 	mov	r6,dpl
      00082D AF 83            [24] 2049 	mov	r7,dph
                                   2050 ;	src/dap.c:385: *res++ = DAP_OK;
      00082F AC 39            [24] 2051 	mov	r4,_DAP_SWD_Sequence_PARM_2
      000831 AD 3A            [24] 2052 	mov	r5,(_DAP_SWD_Sequence_PARM_2 + 1)
      000833 8C 82            [24] 2053 	mov	dpl,r4
      000835 8D 83            [24] 2054 	mov	dph,r5
      000837 E4               [12] 2055 	clr	a
      000838 F0               [24] 2056 	movx	@dptr,a
      000839 04               [12] 2057 	inc	a
      00083A 2C               [12] 2058 	add	a,r4
      00083B F5 39            [12] 2059 	mov	_DAP_SWD_Sequence_PARM_2,a
      00083D E4               [12] 2060 	clr	a
      00083E 3D               [12] 2061 	addc	a,r5
      00083F F5 3A            [12] 2062 	mov	(_DAP_SWD_Sequence_PARM_2 + 1),a
                                   2063 ;	src/dap.c:386: request_count = 1U;
      000841 7D 01            [12] 2064 	mov	r5,#0x01
                                   2065 ;	src/dap.c:387: response_count = 1U;
      000843 7C 01            [12] 2066 	mov	r4,#0x01
                                   2067 ;	src/dap.c:388: sequence_count = *req++;
      000845 8E 82            [24] 2068 	mov	dpl,r6
      000847 8F 83            [24] 2069 	mov	dph,r7
      000849 E0               [24] 2070 	movx	a,@dptr
      00084A FB               [12] 2071 	mov	r3,a
      00084B 0E               [12] 2072 	inc	r6
      00084C BE 00 01         [24] 2073 	cjne	r6,#0x00,00139$
      00084F 0F               [12] 2074 	inc	r7
      000850                       2075 00139$:
                                   2076 ;	src/dap.c:390: while(sequence_count--) {
      000850                       2077 00108$:
      000850 8B 02            [24] 2078 	mov	ar2,r3
      000852 1B               [12] 2079 	dec	r3
      000853 EA               [12] 2080 	mov	a,r2
      000854 70 03            [24] 2081 	jnz	00140$
      000856 02 08 D7         [24] 2082 	ljmp	00110$
      000859                       2083 00140$:
                                   2084 ;	src/dap.c:391: sequence_info = *req++;
      000859 8E 82            [24] 2085 	mov	dpl,r6
      00085B 8F 83            [24] 2086 	mov	dph,r7
      00085D E0               [24] 2087 	movx	a,@dptr
      00085E FA               [12] 2088 	mov	r2,a
      00085F A3               [24] 2089 	inc	dptr
      000860 AE 82            [24] 2090 	mov	r6,dpl
      000862 AF 83            [24] 2091 	mov	r7,dph
                                   2092 ;	src/dap.c:392: count = sequence_info & SWD_SEQUENCE_CLK;
      000864 74 3F            [12] 2093 	mov	a,#0x3f
      000866 5A               [12] 2094 	anl	a,r2
                                   2095 ;	src/dap.c:393: if(count == 0U) count = 64U;
      000867 F9               [12] 2096 	mov	r1,a
      000868 70 02            [24] 2097 	jnz	00102$
      00086A 79 40            [12] 2098 	mov	r1,#0x40
      00086C                       2099 00102$:
                                   2100 ;	src/dap.c:394: count = (count + 7U) / 8U;
      00086C 89 00            [24] 2101 	mov	ar0,r1
      00086E 79 00            [12] 2102 	mov	r1,#0x00
      000870 74 07            [12] 2103 	mov	a,#0x07
      000872 28               [12] 2104 	add	a,r0
      000873 F8               [12] 2105 	mov	r0,a
      000874 E4               [12] 2106 	clr	a
      000875 39               [12] 2107 	addc	a,r1
      000876 C4               [12] 2108 	swap	a
      000877 23               [12] 2109 	rl	a
      000878 C8               [12] 2110 	xch	a,r0
      000879 C4               [12] 2111 	swap	a
      00087A 23               [12] 2112 	rl	a
      00087B 54 1F            [12] 2113 	anl	a,#0x1f
      00087D 68               [12] 2114 	xrl	a,r0
      00087E C8               [12] 2115 	xch	a,r0
      00087F 54 1F            [12] 2116 	anl	a,#0x1f
      000881 C8               [12] 2117 	xch	a,r0
      000882 68               [12] 2118 	xrl	a,r0
      000883 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
      000884 D2 95            [12] 2122 	setb	_PP15
                                   2123 ;	src/dap.c:396: SWD_Sequence(sequence_info, req, res);
      000886 8E 26            [24] 2124 	mov	_SWD_Sequence_PARM_2,r6
      000888 8F 27            [24] 2125 	mov	(_SWD_Sequence_PARM_2 + 1),r7
      00088A 85 39 28         [24] 2126 	mov	_SWD_Sequence_PARM_3,_DAP_SWD_Sequence_PARM_2
      00088D 85 3A 29         [24] 2127 	mov	(_SWD_Sequence_PARM_3 + 1),(_DAP_SWD_Sequence_PARM_2 + 1)
      000890 8A 82            [24] 2128 	mov	dpl,r2
      000892 C0 07            [24] 2129 	push	ar7
      000894 C0 06            [24] 2130 	push	ar6
      000896 C0 05            [24] 2131 	push	ar5
      000898 C0 04            [24] 2132 	push	ar4
      00089A C0 03            [24] 2133 	push	ar3
      00089C C0 02            [24] 2134 	push	ar2
      00089E C0 00            [24] 2135 	push	ar0
      0008A0 12 01 AA         [24] 2136 	lcall	_SWD_Sequence
      0008A3 D0 00            [24] 2137 	pop	ar0
      0008A5 D0 02            [24] 2138 	pop	ar2
      0008A7 D0 03            [24] 2139 	pop	ar3
      0008A9 D0 04            [24] 2140 	pop	ar4
      0008AB D0 05            [24] 2141 	pop	ar5
      0008AD D0 06            [24] 2142 	pop	ar6
      0008AF D0 07            [24] 2143 	pop	ar7
                                   2144 ;	src/dap.c:397: if(sequence_count == 0U) SWD_SET(1);
      0008B1 EB               [12] 2145 	mov	a,r3
      0008B2 70 02            [24] 2146 	jnz	00104$
                                   2147 ;	assignBit
      0008B4 D2 95            [12] 2148 	setb	_PP15
      0008B6                       2149 00104$:
                                   2150 ;	src/dap.c:398: if((sequence_info & SWD_SEQUENCE_DIN) != 0U) {
      0008B6 EA               [12] 2151 	mov	a,r2
      0008B7 30 E7 10         [24] 2152 	jnb	acc.7,00106$
                                   2153 ;	src/dap.c:399: request_count++;
      0008BA 0D               [12] 2154 	inc	r5
                                   2155 ;	src/dap.c:400: res += count;
      0008BB E8               [12] 2156 	mov	a,r0
      0008BC 25 39            [12] 2157 	add	a,_DAP_SWD_Sequence_PARM_2
      0008BE F5 39            [12] 2158 	mov	_DAP_SWD_Sequence_PARM_2,a
      0008C0 E4               [12] 2159 	clr	a
      0008C1 35 3A            [12] 2160 	addc	a,(_DAP_SWD_Sequence_PARM_2 + 1)
      0008C3 F5 3A            [12] 2161 	mov	(_DAP_SWD_Sequence_PARM_2 + 1),a
                                   2162 ;	src/dap.c:401: response_count += count;
      0008C5 E8               [12] 2163 	mov	a,r0
      0008C6 2C               [12] 2164 	add	a,r4
      0008C7 FC               [12] 2165 	mov	r4,a
      0008C8 80 86            [24] 2166 	sjmp	00108$
      0008CA                       2167 00106$:
                                   2168 ;	src/dap.c:404: req += count;
      0008CA E8               [12] 2169 	mov	a,r0
      0008CB 2E               [12] 2170 	add	a,r6
      0008CC FE               [12] 2171 	mov	r6,a
      0008CD E4               [12] 2172 	clr	a
      0008CE 3F               [12] 2173 	addc	a,r7
      0008CF FF               [12] 2174 	mov	r7,a
                                   2175 ;	src/dap.c:405: request_count += count + 1U;
      0008D0 E8               [12] 2176 	mov	a,r0
      0008D1 04               [12] 2177 	inc	a
      0008D2 2D               [12] 2178 	add	a,r5
      0008D3 FD               [12] 2179 	mov	r5,a
      0008D4 02 08 50         [24] 2180 	ljmp	00108$
      0008D7                       2181 00110$:
                                   2182 ;	src/dap.c:408: return response_count;
      0008D7 8C 82            [24] 2183 	mov	dpl,r4
                                   2184 ;	src/dap.c:409: }
      0008D9 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 ;	-----------------------------------------
      0008DA                       2196 _DAP_TransferConfigure:
                                   2197 ;	src/dap.c:420: idle_cycles = *(req + 0);
      0008DA AE 82            [24] 2198 	mov	r6,dpl
      0008DC AF 83            [24] 2199 	mov  r7,dph
      0008DE 78 50            [12] 2200 	mov	r0,#_idle_cycles
      0008E0 E0               [24] 2201 	movx	a,@dptr
      0008E1 F6               [12] 2202 	mov	@r0,a
                                   2203 ;	src/dap.c:421: retry_count = (uint16_t) * (req + 1)
      0008E2 8E 82            [24] 2204 	mov	dpl,r6
      0008E4 8F 83            [24] 2205 	mov	dph,r7
      0008E6 A3               [24] 2206 	inc	dptr
      0008E7 E0               [24] 2207 	movx	a,@dptr
      0008E8 FD               [12] 2208 	mov	r5,a
      0008E9 7C 00            [12] 2209 	mov	r4,#0x00
                                   2210 ;	src/dap.c:422: | (uint16_t)(*(req + 2) << 8);
      0008EB 8E 82            [24] 2211 	mov	dpl,r6
      0008ED 8F 83            [24] 2212 	mov	dph,r7
      0008EF A3               [24] 2213 	inc	dptr
      0008F0 A3               [24] 2214 	inc	dptr
      0008F1 E0               [24] 2215 	movx	a,@dptr
      0008F2 FA               [12] 2216 	mov	r2,a
      0008F3 E4               [12] 2217 	clr	a
      0008F4 42 05            [12] 2218 	orl	ar5,a
      0008F6 EA               [12] 2219 	mov	a,r2
      0008F7 42 04            [12] 2220 	orl	ar4,a
      0008F9 78 52            [12] 2221 	mov	r0,#_retry_count
      0008FB A6 05            [24] 2222 	mov	@r0,ar5
      0008FD 08               [12] 2223 	inc	r0
      0008FE A6 04            [24] 2224 	mov	@r0,ar4
                                   2225 ;	src/dap.c:423: match_retry = (uint16_t) * (req + 3)
      000900 8E 82            [24] 2226 	mov	dpl,r6
      000902 8F 83            [24] 2227 	mov	dph,r7
      000904 A3               [24] 2228 	inc	dptr
      000905 A3               [24] 2229 	inc	dptr
      000906 A3               [24] 2230 	inc	dptr
      000907 E0               [24] 2231 	movx	a,@dptr
      000908 FD               [12] 2232 	mov	r5,a
      000909 7C 00            [12] 2233 	mov	r4,#0x00
                                   2234 ;	src/dap.c:424: | (uint16_t)(*(req + 4) << 8);
      00090B 8E 82            [24] 2235 	mov	dpl,r6
      00090D 8F 83            [24] 2236 	mov	dph,r7
      00090F A3               [24] 2237 	inc	dptr
      000910 A3               [24] 2238 	inc	dptr
      000911 A3               [24] 2239 	inc	dptr
      000912 A3               [24] 2240 	inc	dptr
      000913 E0               [24] 2241 	movx	a,@dptr
      000914 FE               [12] 2242 	mov	r6,a
      000915 E4               [12] 2243 	clr	a
      000916 42 05            [12] 2244 	orl	ar5,a
      000918 EE               [12] 2245 	mov	a,r6
      000919 42 04            [12] 2246 	orl	ar4,a
      00091B 78 54            [12] 2247 	mov	r0,#_match_retry
      00091D A6 05            [24] 2248 	mov	@r0,ar5
      00091F 08               [12] 2249 	inc	r0
      000920 A6 04            [24] 2250 	mov	@r0,ar4
                                   2251 ;	src/dap.c:425: *res = DAP_OK;
      000922 85 10 82         [24] 2252 	mov	dpl,_DAP_TransferConfigure_PARM_2
      000925 85 11 83         [24] 2253 	mov	dph,(_DAP_TransferConfigure_PARM_2 + 1)
      000928 E4               [12] 2254 	clr	a
      000929 F0               [24] 2255 	movx	@dptr,a
                                   2256 ;	src/dap.c:426: return 1;
      00092A 75 82 01         [24] 2257 	mov	dpl,#0x01
                                   2258 ;	src/dap.c:427: }
      00092D 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 ;	-----------------------------------------
      00092E                       2275 _DAP_SWD_Transfer:
      00092E AE 82            [24] 2276 	mov	r6,dpl
      000930 AF 83            [24] 2277 	mov	r7,dph
                                   2278 ;	src/dap.c:451: response_count = 0U;
      000932 78 61            [12] 2279 	mov	r0,#_response_count
      000934 76 00            [12] 2280 	mov	@r0,#0x00
                                   2281 ;	src/dap.c:452: response_value = 0U;
      000936 78 62            [12] 2282 	mov	r0,#_response_value
      000938 76 00            [12] 2283 	mov	@r0,#0x00
                                   2284 ;	src/dap.c:453: response_head = res;
      00093A 85 3B 3D         [24] 2285 	mov	_DAP_SWD_Transfer_response_head_65536_140,_DAP_SWD_Transfer_PARM_2
      00093D 85 3C 3E         [24] 2286 	mov	(_DAP_SWD_Transfer_response_head_65536_140 + 1),(_DAP_SWD_Transfer_PARM_2 + 1)
                                   2287 ;	src/dap.c:454: res += 2;
      000940 74 02            [12] 2288 	mov	a,#0x02
      000942 25 3D            [12] 2289 	add	a,_DAP_SWD_Transfer_response_head_65536_140
      000944 F5 3B            [12] 2290 	mov	_DAP_SWD_Transfer_PARM_2,a
      000946 E4               [12] 2291 	clr	a
      000947 35 3E            [12] 2292 	addc	a,(_DAP_SWD_Transfer_response_head_65536_140 + 1)
      000949 F5 3C            [12] 2293 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2294 ;	src/dap.c:455: DAP_TransferAbort = 0U;
      00094B 78 5E            [12] 2295 	mov	r0,#_DAP_TransferAbort
      00094D 76 00            [12] 2296 	mov	@r0,#0x00
                                   2297 ;	src/dap.c:456: post_read = 0U;
      00094F 75 3F 00         [24] 2298 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x00
                                   2299 ;	src/dap.c:457: check_write = 0U;
      000952 75 40 00         [24] 2300 	mov	_DAP_SWD_Transfer_check_write_65536_140,#0x00
                                   2301 ;	src/dap.c:459: req++;                                          // ignore DAP index
      000955 0E               [12] 2302 	inc	r6
      000956 BE 00 01         [24] 2303 	cjne	r6,#0x00,00550$
      000959 0F               [12] 2304 	inc	r7
      00095A                       2305 00550$:
                                   2306 ;	src/dap.c:460: request_count = *req++;
      00095A 8E 82            [24] 2307 	mov	dpl,r6
      00095C 8F 83            [24] 2308 	mov	dph,r7
      00095E 78 5F            [12] 2309 	mov	r0,#_request_count
      000960 E0               [24] 2310 	movx	a,@dptr
      000961 F6               [12] 2311 	mov	@r0,a
      000962 0E               [12] 2312 	inc	r6
      000963 BE 00 01         [24] 2313 	cjne	r6,#0x00,00551$
      000966 0F               [12] 2314 	inc	r7
      000967                       2315 00551$:
      000967                       2316 00223$:
                                   2317 ;	src/dap.c:461: for(; request_count != 0U; request_count--) {
      000967 78 5F            [12] 2318 	mov	r0,#_request_count
      000969 E6               [12] 2319 	mov	a,@r0
      00096A 70 03            [24] 2320 	jnz	00552$
      00096C 02 0E 94         [24] 2321 	ljmp	00226$
      00096F                       2322 00552$:
                                   2323 ;	src/dap.c:462: request_value = *req++;
      00096F 8E 82            [24] 2324 	mov	dpl,r6
      000971 8F 83            [24] 2325 	mov	dph,r7
      000973 E0               [24] 2326 	movx	a,@dptr
      000974 F5 41            [12] 2327 	mov	_DAP_SWD_Transfer_sloc0_1_0,a
      000976 A3               [24] 2328 	inc	dptr
      000977 AE 82            [24] 2329 	mov	r6,dpl
      000979 AF 83            [24] 2330 	mov	r7,dph
      00097B 78 60            [12] 2331 	mov	r0,#_request_value
                                   2332 ;	src/dap.c:465: if(request_value & DAP_TRANSFER_RnW) {
      00097D E5 41            [12] 2333 	mov	a,_DAP_SWD_Transfer_sloc0_1_0
      00097F F6               [12] 2334 	mov	@r0,a
      000980 20 E1 03         [24] 2335 	jb	acc.1,00553$
      000983 02 0D 27         [24] 2336 	ljmp	00191$
      000986                       2337 00553$:
                                   2338 ;	src/dap.c:467: if(post_read) {
      000986 E5 3F            [12] 2339 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000988 70 03            [24] 2340 	jnz	00554$
      00098A 02 0A 81         [24] 2341 	ljmp	00117$
      00098D                       2342 00554$:
                                   2343 ;	src/dap.c:469: retry = retry_count;
      00098D 78 52            [12] 2344 	mov	r0,#_retry_count
      00098F 86 02            [24] 2345 	mov	ar2,@r0
      000991 08               [12] 2346 	inc	r0
      000992 86 05            [24] 2347 	mov	ar5,@r0
      000994 78 63            [12] 2348 	mov	r0,#_retry
      000996 A6 02            [24] 2349 	mov	@r0,ar2
      000998 08               [12] 2350 	inc	r0
      000999 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) {
      00099B AC 41            [24] 2353 	mov	r4,_DAP_SWD_Transfer_sloc0_1_0
      00099D 53 04 11         [24] 2354 	anl	ar4,#0x11
      0009A0 7D 00            [12] 2355 	mov	r5,#0x00
      0009A2 BC 01 3E         [24] 2356 	cjne	r4,#0x01,00108$
      0009A5 BD 00 3B         [24] 2357 	cjne	r5,#0x00,00108$
                                   2358 ;	src/dap.c:472: do {
      0009A8                       2359 00103$:
                                   2360 ;	src/dap.c:473: response_value = SWD_Transfer(request_value, data);
      0009A8 75 2A 00         [24] 2361 	mov	_SWD_Transfer_PARM_2,#_data
      0009AB 75 2B 01         [24] 2362 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      0009AE 78 60            [12] 2363 	mov	r0,#_request_value
      0009B0 86 82            [24] 2364 	mov	dpl,@r0
      0009B2 C0 07            [24] 2365 	push	ar7
      0009B4 C0 06            [24] 2366 	push	ar6
      0009B6 12 02 81         [24] 2367 	lcall	_SWD_Transfer
      0009B9 AD 82            [24] 2368 	mov	r5,dpl
      0009BB D0 06            [24] 2369 	pop	ar6
      0009BD D0 07            [24] 2370 	pop	ar7
      0009BF 78 62            [12] 2371 	mov	r0,#_response_value
      0009C1 A6 05            [24] 2372 	mov	@r0,ar5
                                   2373 ;	src/dap.c:474: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0009C3 BD 02 58         [24] 2374 	cjne	r5,#0x02,00113$
      0009C6 78 63            [12] 2375 	mov	r0,#_retry
      0009C8 86 04            [24] 2376 	mov	ar4,@r0
      0009CA 08               [12] 2377 	inc	r0
      0009CB 86 05            [24] 2378 	mov	ar5,@r0
      0009CD 78 63            [12] 2379 	mov	r0,#_retry
      0009CF EC               [12] 2380 	mov	a,r4
      0009D0 24 FF            [12] 2381 	add	a,#0xff
      0009D2 F6               [12] 2382 	mov	@r0,a
      0009D3 ED               [12] 2383 	mov	a,r5
      0009D4 34 FF            [12] 2384 	addc	a,#0xff
      0009D6 08               [12] 2385 	inc	r0
      0009D7 F6               [12] 2386 	mov	@r0,a
      0009D8 EC               [12] 2387 	mov	a,r4
      0009D9 4D               [12] 2388 	orl	a,r5
      0009DA 60 42            [24] 2389 	jz	00113$
      0009DC 78 5E            [12] 2390 	mov	r0,#_DAP_TransferAbort
      0009DE E6               [12] 2391 	mov	a,@r0
      0009DF 60 C7            [24] 2392 	jz	00103$
                                   2393 ;	src/dap.c:478: do {
      0009E1 80 3B            [24] 2394 	sjmp	00113$
      0009E3                       2395 00108$:
                                   2396 ;	src/dap.c:479: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, data);
      0009E3 75 2A 00         [24] 2397 	mov	_SWD_Transfer_PARM_2,#_data
      0009E6 75 2B 01         [24] 2398 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      0009E9 75 82 0E         [24] 2399 	mov	dpl,#0x0e
      0009EC C0 07            [24] 2400 	push	ar7
      0009EE C0 06            [24] 2401 	push	ar6
      0009F0 12 02 81         [24] 2402 	lcall	_SWD_Transfer
      0009F3 AD 82            [24] 2403 	mov	r5,dpl
      0009F5 D0 06            [24] 2404 	pop	ar6
      0009F7 D0 07            [24] 2405 	pop	ar7
      0009F9 78 62            [12] 2406 	mov	r0,#_response_value
      0009FB A6 05            [24] 2407 	mov	@r0,ar5
                                   2408 ;	src/dap.c:480: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0009FD BD 02 1B         [24] 2409 	cjne	r5,#0x02,00110$
      000A00 78 63            [12] 2410 	mov	r0,#_retry
      000A02 86 04            [24] 2411 	mov	ar4,@r0
      000A04 08               [12] 2412 	inc	r0
      000A05 86 05            [24] 2413 	mov	ar5,@r0
      000A07 78 63            [12] 2414 	mov	r0,#_retry
      000A09 EC               [12] 2415 	mov	a,r4
      000A0A 24 FF            [12] 2416 	add	a,#0xff
      000A0C F6               [12] 2417 	mov	@r0,a
      000A0D ED               [12] 2418 	mov	a,r5
      000A0E 34 FF            [12] 2419 	addc	a,#0xff
      000A10 08               [12] 2420 	inc	r0
      000A11 F6               [12] 2421 	mov	@r0,a
      000A12 EC               [12] 2422 	mov	a,r4
      000A13 4D               [12] 2423 	orl	a,r5
      000A14 60 05            [24] 2424 	jz	00110$
      000A16 78 5E            [12] 2425 	mov	r0,#_DAP_TransferAbort
      000A18 E6               [12] 2426 	mov	a,@r0
      000A19 60 C8            [24] 2427 	jz	00108$
      000A1B                       2428 00110$:
                                   2429 ;	src/dap.c:481: post_read = 0U;
      000A1B 75 3F 00         [24] 2430 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x00
      000A1E                       2431 00113$:
                                   2432 ;	src/dap.c:483: if(response_value != DAP_TRANSFER_OK) break;
      000A1E 78 62            [12] 2433 	mov	r0,#_response_value
      000A20 B6 01 02         [24] 2434 	cjne	@r0,#0x01,00565$
      000A23 80 03            [24] 2435 	sjmp	00566$
      000A25                       2436 00565$:
      000A25 02 0E 94         [24] 2437 	ljmp	00226$
      000A28                       2438 00566$:
                                   2439 ;	src/dap.c:486: *res++ = (uint8_t)data[0];
      000A28 AC 3B            [24] 2440 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000A2A AD 3C            [24] 2441 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000A2C 90 01 00         [24] 2442 	mov	dptr,#_data
      000A2F E0               [24] 2443 	movx	a,@dptr
      000A30 8C 82            [24] 2444 	mov	dpl,r4
      000A32 8D 83            [24] 2445 	mov	dph,r5
      000A34 F0               [24] 2446 	movx	@dptr,a
      000A35 74 01            [12] 2447 	mov	a,#0x01
      000A37 2C               [12] 2448 	add	a,r4
      000A38 F5 3B            [12] 2449 	mov	_DAP_SWD_Transfer_PARM_2,a
      000A3A E4               [12] 2450 	clr	a
      000A3B 3D               [12] 2451 	addc	a,r5
      000A3C F5 3C            [12] 2452 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2453 ;	src/dap.c:487: *res++ = (uint8_t)data[1];
      000A3E AC 3B            [24] 2454 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000A40 AD 3C            [24] 2455 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000A42 90 01 01         [24] 2456 	mov	dptr,#(_data + 0x0001)
      000A45 E0               [24] 2457 	movx	a,@dptr
      000A46 8C 82            [24] 2458 	mov	dpl,r4
      000A48 8D 83            [24] 2459 	mov	dph,r5
      000A4A F0               [24] 2460 	movx	@dptr,a
      000A4B 74 01            [12] 2461 	mov	a,#0x01
      000A4D 2C               [12] 2462 	add	a,r4
      000A4E F5 3B            [12] 2463 	mov	_DAP_SWD_Transfer_PARM_2,a
      000A50 E4               [12] 2464 	clr	a
      000A51 3D               [12] 2465 	addc	a,r5
      000A52 F5 3C            [12] 2466 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2467 ;	src/dap.c:488: *res++ = (uint8_t)data[2];
      000A54 AC 3B            [24] 2468 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000A56 AD 3C            [24] 2469 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000A58 90 01 02         [24] 2470 	mov	dptr,#(_data + 0x0002)
      000A5B E0               [24] 2471 	movx	a,@dptr
      000A5C 8C 82            [24] 2472 	mov	dpl,r4
      000A5E 8D 83            [24] 2473 	mov	dph,r5
      000A60 F0               [24] 2474 	movx	@dptr,a
      000A61 74 01            [12] 2475 	mov	a,#0x01
      000A63 2C               [12] 2476 	add	a,r4
      000A64 F5 3B            [12] 2477 	mov	_DAP_SWD_Transfer_PARM_2,a
      000A66 E4               [12] 2478 	clr	a
      000A67 3D               [12] 2479 	addc	a,r5
      000A68 F5 3C            [12] 2480 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2481 ;	src/dap.c:489: *res++ = (uint8_t)data[3];
      000A6A AC 3B            [24] 2482 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000A6C AD 3C            [24] 2483 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000A6E 90 01 03         [24] 2484 	mov	dptr,#(_data + 0x0003)
      000A71 E0               [24] 2485 	movx	a,@dptr
      000A72 FA               [12] 2486 	mov	r2,a
      000A73 8C 82            [24] 2487 	mov	dpl,r4
      000A75 8D 83            [24] 2488 	mov	dph,r5
      000A77 F0               [24] 2489 	movx	@dptr,a
      000A78 74 01            [12] 2490 	mov	a,#0x01
      000A7A 2C               [12] 2491 	add	a,r4
      000A7B F5 3B            [12] 2492 	mov	_DAP_SWD_Transfer_PARM_2,a
      000A7D E4               [12] 2493 	clr	a
      000A7E 3D               [12] 2494 	addc	a,r5
      000A7F F5 3C            [12] 2495 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
      000A81                       2496 00117$:
                                   2497 ;	src/dap.c:491: if((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) {
      000A81 78 60            [12] 2498 	mov	r0,#_request_value
      000A83 E6               [12] 2499 	mov	a,@r0
      000A84 FD               [12] 2500 	mov	r5,a
      000A85 20 E4 03         [24] 2501 	jb	acc.4,00567$
      000A88 02 0C 28         [24] 2502 	ljmp	00169$
      000A8B                       2503 00567$:
                                   2504 ;	src/dap.c:493: match_value[0] = (uint8_t)(*(req + 0));
      000A8B 8E 82            [24] 2505 	mov	dpl,r6
      000A8D 8F 83            [24] 2506 	mov	dph,r7
      000A8F E0               [24] 2507 	movx	a,@dptr
      000A90 FC               [12] 2508 	mov	r4,a
      000A91 78 5A            [12] 2509 	mov	r0,#_match_value
      000A93 A6 04            [24] 2510 	mov	@r0,ar4
                                   2511 ;	src/dap.c:494: match_value[1] = (uint8_t)(*(req + 1));
      000A95 8E 82            [24] 2512 	mov	dpl,r6
      000A97 8F 83            [24] 2513 	mov	dph,r7
      000A99 A3               [24] 2514 	inc	dptr
      000A9A E0               [24] 2515 	movx	a,@dptr
      000A9B FC               [12] 2516 	mov	r4,a
      000A9C 78 5B            [12] 2517 	mov	r0,#(_match_value + 0x0001)
      000A9E A6 04            [24] 2518 	mov	@r0,ar4
                                   2519 ;	src/dap.c:495: match_value[2] = (uint8_t)(*(req + 2));
      000AA0 8E 82            [24] 2520 	mov	dpl,r6
      000AA2 8F 83            [24] 2521 	mov	dph,r7
      000AA4 A3               [24] 2522 	inc	dptr
      000AA5 A3               [24] 2523 	inc	dptr
      000AA6 E0               [24] 2524 	movx	a,@dptr
      000AA7 FC               [12] 2525 	mov	r4,a
      000AA8 78 5C            [12] 2526 	mov	r0,#(_match_value + 0x0002)
      000AAA A6 04            [24] 2527 	mov	@r0,ar4
                                   2528 ;	src/dap.c:496: match_value[3] = (uint8_t)(*(req + 3));
      000AAC 8E 82            [24] 2529 	mov	dpl,r6
      000AAE 8F 83            [24] 2530 	mov	dph,r7
      000AB0 A3               [24] 2531 	inc	dptr
      000AB1 A3               [24] 2532 	inc	dptr
      000AB2 A3               [24] 2533 	inc	dptr
      000AB3 E0               [24] 2534 	movx	a,@dptr
      000AB4 FC               [12] 2535 	mov	r4,a
      000AB5 78 5D            [12] 2536 	mov	r0,#(_match_value + 0x0003)
      000AB7 A6 04            [24] 2537 	mov	@r0,ar4
                                   2538 ;	src/dap.c:497: req += 4;
      000AB9 74 04            [12] 2539 	mov	a,#0x04
      000ABB 2E               [12] 2540 	add	a,r6
      000ABC FE               [12] 2541 	mov	r6,a
      000ABD E4               [12] 2542 	clr	a
      000ABE 3F               [12] 2543 	addc	a,r7
      000ABF 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) {
      000AC0 78 60            [12] 2547 	mov	r0,#_request_value
      000AC2 E6               [12] 2548 	mov	a,@r0
      000AC3 30 E0 4E         [24] 2549 	jnb	acc.0,00139$
                                   2550 ;	src/dap.c:501: retry = retry_count;
      000AC6 78 52            [12] 2551 	mov	r0,#_retry_count
      000AC8 86 02            [24] 2552 	mov	ar2,@r0
      000ACA 08               [12] 2553 	inc	r0
      000ACB 86 04            [24] 2554 	mov	ar4,@r0
      000ACD 78 63            [12] 2555 	mov	r0,#_retry
      000ACF A6 02            [24] 2556 	mov	@r0,ar2
      000AD1 08               [12] 2557 	inc	r0
      000AD2 A6 04            [24] 2558 	mov	@r0,ar4
                                   2559 ;	src/dap.c:502: do {
      000AD4                       2560 00120$:
                                   2561 ;	src/dap.c:503: response_value = SWD_Transfer(request_value, NULL);
      000AD4 E4               [12] 2562 	clr	a
      000AD5 F5 2A            [12] 2563 	mov	_SWD_Transfer_PARM_2,a
      000AD7 F5 2B            [12] 2564 	mov	(_SWD_Transfer_PARM_2 + 1),a
      000AD9 78 60            [12] 2565 	mov	r0,#_request_value
      000ADB 86 82            [24] 2566 	mov	dpl,@r0
      000ADD C0 07            [24] 2567 	push	ar7
      000ADF C0 06            [24] 2568 	push	ar6
      000AE1 12 02 81         [24] 2569 	lcall	_SWD_Transfer
      000AE4 AC 82            [24] 2570 	mov	r4,dpl
      000AE6 D0 06            [24] 2571 	pop	ar6
      000AE8 D0 07            [24] 2572 	pop	ar7
      000AEA 78 62            [12] 2573 	mov	r0,#_response_value
      000AEC A6 04            [24] 2574 	mov	@r0,ar4
                                   2575 ;	src/dap.c:504: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000AEE BC 02 1B         [24] 2576 	cjne	r4,#0x02,00122$
      000AF1 78 63            [12] 2577 	mov	r0,#_retry
      000AF3 86 02            [24] 2578 	mov	ar2,@r0
      000AF5 08               [12] 2579 	inc	r0
      000AF6 86 03            [24] 2580 	mov	ar3,@r0
      000AF8 78 63            [12] 2581 	mov	r0,#_retry
      000AFA EA               [12] 2582 	mov	a,r2
      000AFB 24 FF            [12] 2583 	add	a,#0xff
      000AFD F6               [12] 2584 	mov	@r0,a
      000AFE EB               [12] 2585 	mov	a,r3
      000AFF 34 FF            [12] 2586 	addc	a,#0xff
      000B01 08               [12] 2587 	inc	r0
      000B02 F6               [12] 2588 	mov	@r0,a
      000B03 EA               [12] 2589 	mov	a,r2
      000B04 4B               [12] 2590 	orl	a,r3
      000B05 60 05            [24] 2591 	jz	00122$
      000B07 78 5E            [12] 2592 	mov	r0,#_DAP_TransferAbort
      000B09 E6               [12] 2593 	mov	a,@r0
      000B0A 60 C8            [24] 2594 	jz	00120$
      000B0C                       2595 00122$:
                                   2596 ;	src/dap.c:505: if(response_value != DAP_TRANSFER_OK) break;
      000B0C BC 01 02         [24] 2597 	cjne	r4,#0x01,00573$
      000B0F 80 03            [24] 2598 	sjmp	00574$
      000B11                       2599 00573$:
      000B11 02 0E 94         [24] 2600 	ljmp	00226$
      000B14                       2601 00574$:
                                   2602 ;	src/dap.c:507: do {
      000B14                       2603 00139$:
                                   2604 ;	src/dap.c:509: retry = retry_count;
      000B14 78 52            [12] 2605 	mov	r0,#_retry_count
      000B16 86 03            [24] 2606 	mov	ar3,@r0
      000B18 08               [12] 2607 	inc	r0
      000B19 86 04            [24] 2608 	mov	ar4,@r0
      000B1B 78 63            [12] 2609 	mov	r0,#_retry
      000B1D A6 03            [24] 2610 	mov	@r0,ar3
      000B1F 08               [12] 2611 	inc	r0
      000B20 A6 04            [24] 2612 	mov	@r0,ar4
                                   2613 ;	src/dap.c:510: do {
      000B22                       2614 00129$:
                                   2615 ;	src/dap.c:511: response_value = SWD_Transfer(request_value, data);
      000B22 75 2A 00         [24] 2616 	mov	_SWD_Transfer_PARM_2,#_data
      000B25 75 2B 01         [24] 2617 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000B28 78 60            [12] 2618 	mov	r0,#_request_value
      000B2A 86 82            [24] 2619 	mov	dpl,@r0
      000B2C C0 07            [24] 2620 	push	ar7
      000B2E C0 06            [24] 2621 	push	ar6
      000B30 12 02 81         [24] 2622 	lcall	_SWD_Transfer
      000B33 AC 82            [24] 2623 	mov	r4,dpl
      000B35 D0 06            [24] 2624 	pop	ar6
      000B37 D0 07            [24] 2625 	pop	ar7
      000B39 78 62            [12] 2626 	mov	r0,#_response_value
      000B3B A6 04            [24] 2627 	mov	@r0,ar4
                                   2628 ;	src/dap.c:512: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000B3D BC 02 1B         [24] 2629 	cjne	r4,#0x02,00131$
      000B40 78 63            [12] 2630 	mov	r0,#_retry
      000B42 86 03            [24] 2631 	mov	ar3,@r0
      000B44 08               [12] 2632 	inc	r0
      000B45 86 04            [24] 2633 	mov	ar4,@r0
      000B47 78 63            [12] 2634 	mov	r0,#_retry
      000B49 EB               [12] 2635 	mov	a,r3
      000B4A 24 FF            [12] 2636 	add	a,#0xff
      000B4C F6               [12] 2637 	mov	@r0,a
      000B4D EC               [12] 2638 	mov	a,r4
      000B4E 34 FF            [12] 2639 	addc	a,#0xff
      000B50 08               [12] 2640 	inc	r0
      000B51 F6               [12] 2641 	mov	@r0,a
      000B52 EB               [12] 2642 	mov	a,r3
      000B53 4C               [12] 2643 	orl	a,r4
      000B54 60 05            [24] 2644 	jz	00131$
      000B56 78 5E            [12] 2645 	mov	r0,#_DAP_TransferAbort
      000B58 E6               [12] 2646 	mov	a,@r0
      000B59 60 C7            [24] 2647 	jz	00129$
      000B5B                       2648 00131$:
                                   2649 ;	src/dap.c:513: if(response_value != DAP_TRANSFER_OK) break;
      000B5B 78 62            [12] 2650 	mov	r0,#_response_value
      000B5D B6 01 02         [24] 2651 	cjne	@r0,#0x01,00579$
      000B60 80 03            [24] 2652 	sjmp	00580$
      000B62                       2653 00579$:
      000B62 02 0B CD         [24] 2654 	ljmp	00141$
      000B65                       2655 00580$:
                                   2656 ;	src/dap.c:515: while(((data[0] & match_mask[0]) != match_value[0] ||
      000B65 90 01 00         [24] 2657 	mov	dptr,#_data
      000B68 E0               [24] 2658 	movx	a,@dptr
      000B69 FC               [12] 2659 	mov	r4,a
      000B6A 78 56            [12] 2660 	mov	r0,#_match_mask
      000B6C E6               [12] 2661 	mov	a,@r0
      000B6D 52 04            [12] 2662 	anl	ar4,a
      000B6F 78 5A            [12] 2663 	mov	r0,#_match_value
      000B71 86 03            [24] 2664 	mov	ar3,@r0
      000B73 EC               [12] 2665 	mov	a,r4
      000B74 B5 03 38         [24] 2666 	cjne	a,ar3,00137$
                                   2667 ;	src/dap.c:516: (data[1] & match_mask[1]) != match_value[1] ||
      000B77 90 01 01         [24] 2668 	mov	dptr,#(_data + 0x0001)
      000B7A E0               [24] 2669 	movx	a,@dptr
      000B7B FC               [12] 2670 	mov	r4,a
      000B7C 78 57            [12] 2671 	mov	r0,#(_match_mask + 0x0001)
      000B7E E6               [12] 2672 	mov	a,@r0
      000B7F 52 04            [12] 2673 	anl	ar4,a
      000B81 78 5B            [12] 2674 	mov	r0,#(_match_value + 0x0001)
      000B83 86 03            [24] 2675 	mov	ar3,@r0
      000B85 EC               [12] 2676 	mov	a,r4
      000B86 B5 03 26         [24] 2677 	cjne	a,ar3,00137$
                                   2678 ;	src/dap.c:517: (data[2] & match_mask[2]) != match_value[2] ||
      000B89 90 01 02         [24] 2679 	mov	dptr,#(_data + 0x0002)
      000B8C E0               [24] 2680 	movx	a,@dptr
      000B8D FC               [12] 2681 	mov	r4,a
      000B8E 78 58            [12] 2682 	mov	r0,#(_match_mask + 0x0002)
      000B90 E6               [12] 2683 	mov	a,@r0
      000B91 52 04            [12] 2684 	anl	ar4,a
      000B93 78 5C            [12] 2685 	mov	r0,#(_match_value + 0x0002)
      000B95 86 03            [24] 2686 	mov	ar3,@r0
      000B97 EC               [12] 2687 	mov	a,r4
      000B98 B5 03 14         [24] 2688 	cjne	a,ar3,00137$
                                   2689 ;	src/dap.c:518: (data[3] & match_mask[3]) != match_value[3]) &&
      000B9B 90 01 03         [24] 2690 	mov	dptr,#(_data + 0x0003)
      000B9E E0               [24] 2691 	movx	a,@dptr
      000B9F FC               [12] 2692 	mov	r4,a
      000BA0 78 59            [12] 2693 	mov	r0,#(_match_mask + 0x0003)
      000BA2 E6               [12] 2694 	mov	a,@r0
      000BA3 52 04            [12] 2695 	anl	ar4,a
      000BA5 78 5D            [12] 2696 	mov	r0,#(_match_value + 0x0003)
      000BA7 86 03            [24] 2697 	mov	ar3,@r0
      000BA9 EC               [12] 2698 	mov	a,r4
      000BAA B5 03 02         [24] 2699 	cjne	a,ar3,00587$
      000BAD 80 1E            [24] 2700 	sjmp	00141$
      000BAF                       2701 00587$:
      000BAF                       2702 00137$:
                                   2703 ;	src/dap.c:519: match_retry-- && !DAP_TransferAbort);
      000BAF 78 54            [12] 2704 	mov	r0,#_match_retry
      000BB1 86 03            [24] 2705 	mov	ar3,@r0
      000BB3 08               [12] 2706 	inc	r0
      000BB4 86 04            [24] 2707 	mov	ar4,@r0
      000BB6 78 54            [12] 2708 	mov	r0,#_match_retry
      000BB8 EB               [12] 2709 	mov	a,r3
      000BB9 24 FF            [12] 2710 	add	a,#0xff
      000BBB F6               [12] 2711 	mov	@r0,a
      000BBC EC               [12] 2712 	mov	a,r4
      000BBD 34 FF            [12] 2713 	addc	a,#0xff
      000BBF 08               [12] 2714 	inc	r0
      000BC0 F6               [12] 2715 	mov	@r0,a
      000BC1 EB               [12] 2716 	mov	a,r3
      000BC2 4C               [12] 2717 	orl	a,r4
      000BC3 60 08            [24] 2718 	jz	00141$
      000BC5 78 5E            [12] 2719 	mov	r0,#_DAP_TransferAbort
      000BC7 E6               [12] 2720 	mov	a,@r0
      000BC8 70 03            [24] 2721 	jnz	00589$
      000BCA 02 0B 14         [24] 2722 	ljmp	00139$
      000BCD                       2723 00589$:
      000BCD                       2724 00141$:
                                   2725 ;	src/dap.c:520: if((data[0] & match_mask[0]) != match_value[0] ||
      000BCD 90 01 00         [24] 2726 	mov	dptr,#_data
      000BD0 E0               [24] 2727 	movx	a,@dptr
      000BD1 FC               [12] 2728 	mov	r4,a
      000BD2 78 56            [12] 2729 	mov	r0,#_match_mask
      000BD4 E6               [12] 2730 	mov	a,@r0
      000BD5 52 04            [12] 2731 	anl	ar4,a
      000BD7 78 5A            [12] 2732 	mov	r0,#_match_value
      000BD9 86 03            [24] 2733 	mov	ar3,@r0
      000BDB EC               [12] 2734 	mov	a,r4
      000BDC B5 03 38         [24] 2735 	cjne	a,ar3,00142$
                                   2736 ;	src/dap.c:521: (data[1] & match_mask[1]) != match_value[1] ||
      000BDF 90 01 01         [24] 2737 	mov	dptr,#(_data + 0x0001)
      000BE2 E0               [24] 2738 	movx	a,@dptr
      000BE3 FC               [12] 2739 	mov	r4,a
      000BE4 78 57            [12] 2740 	mov	r0,#(_match_mask + 0x0001)
      000BE6 E6               [12] 2741 	mov	a,@r0
      000BE7 52 04            [12] 2742 	anl	ar4,a
      000BE9 78 5B            [12] 2743 	mov	r0,#(_match_value + 0x0001)
      000BEB 86 03            [24] 2744 	mov	ar3,@r0
      000BED EC               [12] 2745 	mov	a,r4
      000BEE B5 03 26         [24] 2746 	cjne	a,ar3,00142$
                                   2747 ;	src/dap.c:522: (data[2] & match_mask[2]) != match_value[2] ||
      000BF1 90 01 02         [24] 2748 	mov	dptr,#(_data + 0x0002)
      000BF4 E0               [24] 2749 	movx	a,@dptr
      000BF5 FC               [12] 2750 	mov	r4,a
      000BF6 78 58            [12] 2751 	mov	r0,#(_match_mask + 0x0002)
      000BF8 E6               [12] 2752 	mov	a,@r0
      000BF9 52 04            [12] 2753 	anl	ar4,a
      000BFB 78 5C            [12] 2754 	mov	r0,#(_match_value + 0x0002)
      000BFD 86 03            [24] 2755 	mov	ar3,@r0
      000BFF EC               [12] 2756 	mov	a,r4
      000C00 B5 03 14         [24] 2757 	cjne	a,ar3,00142$
                                   2758 ;	src/dap.c:523: (data[3] & match_mask[3]) != match_value[3])
      000C03 90 01 03         [24] 2759 	mov	dptr,#(_data + 0x0003)
      000C06 E0               [24] 2760 	movx	a,@dptr
      000C07 FC               [12] 2761 	mov	r4,a
      000C08 78 59            [12] 2762 	mov	r0,#(_match_mask + 0x0003)
      000C0A E6               [12] 2763 	mov	a,@r0
      000C0B 52 04            [12] 2764 	anl	ar4,a
      000C0D 78 5D            [12] 2765 	mov	r0,#(_match_value + 0x0003)
      000C0F 86 03            [24] 2766 	mov	ar3,@r0
      000C11 EC               [12] 2767 	mov	a,r4
      000C12 B5 03 02         [24] 2768 	cjne	a,ar3,00596$
      000C15 80 06            [24] 2769 	sjmp	00143$
      000C17                       2770 00596$:
      000C17                       2771 00142$:
                                   2772 ;	src/dap.c:524: response_value |= DAP_TRANSFER_MISMATCH;
      000C17 78 62            [12] 2773 	mov	r0,#_response_value
      000C19 E6               [12] 2774 	mov	a,@r0
      000C1A 44 10            [12] 2775 	orl	a,#0x10
      000C1C F6               [12] 2776 	mov	@r0,a
      000C1D                       2777 00143$:
                                   2778 ;	src/dap.c:525: if(response_value != DAP_TRANSFER_OK) break;
      000C1D 78 62            [12] 2779 	mov	r0,#_response_value
      000C1F B6 01 03         [24] 2780 	cjne	@r0,#0x01,00597$
      000C22 02 0D 21         [24] 2781 	ljmp	00170$
      000C25                       2782 00597$:
      000C25 02 0E 94         [24] 2783 	ljmp	00226$
      000C28                       2784 00169$:
                                   2785 ;	src/dap.c:529: retry = retry_count;
      000C28 78 52            [12] 2786 	mov	r0,#_retry_count
      000C2A 86 03            [24] 2787 	mov	ar3,@r0
      000C2C 08               [12] 2788 	inc	r0
      000C2D 86 04            [24] 2789 	mov	ar4,@r0
      000C2F 78 63            [12] 2790 	mov	r0,#_retry
      000C31 A6 03            [24] 2791 	mov	@r0,ar3
      000C33 08               [12] 2792 	inc	r0
      000C34 A6 04            [24] 2793 	mov	@r0,ar4
                                   2794 ;	src/dap.c:530: if((request_value & DAP_TRANSFER_APnDP) != 0U) {
      000C36 ED               [12] 2795 	mov	a,r5
      000C37 30 E0 4D         [24] 2796 	jnb	acc.0,00160$
                                   2797 ;	src/dap.c:532: if(post_read == 0U) {
      000C3A E5 3F            [12] 2798 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000C3C 60 03            [24] 2799 	jz	00599$
      000C3E 02 0D 21         [24] 2800 	ljmp	00170$
      000C41                       2801 00599$:
                                   2802 ;	src/dap.c:534: do {
      000C41                       2803 00151$:
                                   2804 ;	src/dap.c:535: response_value = SWD_Transfer(request_value, NULL);
      000C41 E4               [12] 2805 	clr	a
      000C42 F5 2A            [12] 2806 	mov	_SWD_Transfer_PARM_2,a
      000C44 F5 2B            [12] 2807 	mov	(_SWD_Transfer_PARM_2 + 1),a
      000C46 78 60            [12] 2808 	mov	r0,#_request_value
      000C48 86 82            [24] 2809 	mov	dpl,@r0
      000C4A C0 07            [24] 2810 	push	ar7
      000C4C C0 06            [24] 2811 	push	ar6
      000C4E 12 02 81         [24] 2812 	lcall	_SWD_Transfer
      000C51 AD 82            [24] 2813 	mov	r5,dpl
      000C53 D0 06            [24] 2814 	pop	ar6
      000C55 D0 07            [24] 2815 	pop	ar7
      000C57 78 62            [12] 2816 	mov	r0,#_response_value
      000C59 A6 05            [24] 2817 	mov	@r0,ar5
                                   2818 ;	src/dap.c:536: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000C5B BD 02 1B         [24] 2819 	cjne	r5,#0x02,00153$
      000C5E 78 63            [12] 2820 	mov	r0,#_retry
      000C60 86 03            [24] 2821 	mov	ar3,@r0
      000C62 08               [12] 2822 	inc	r0
      000C63 86 04            [24] 2823 	mov	ar4,@r0
      000C65 78 63            [12] 2824 	mov	r0,#_retry
      000C67 EB               [12] 2825 	mov	a,r3
      000C68 24 FF            [12] 2826 	add	a,#0xff
      000C6A F6               [12] 2827 	mov	@r0,a
      000C6B EC               [12] 2828 	mov	a,r4
      000C6C 34 FF            [12] 2829 	addc	a,#0xff
      000C6E 08               [12] 2830 	inc	r0
      000C6F F6               [12] 2831 	mov	@r0,a
      000C70 EB               [12] 2832 	mov	a,r3
      000C71 4C               [12] 2833 	orl	a,r4
      000C72 60 05            [24] 2834 	jz	00153$
      000C74 78 5E            [12] 2835 	mov	r0,#_DAP_TransferAbort
      000C76 E6               [12] 2836 	mov	a,@r0
      000C77 60 C8            [24] 2837 	jz	00151$
      000C79                       2838 00153$:
                                   2839 ;	src/dap.c:537: if(response_value != DAP_TRANSFER_OK) break;
      000C79 BD 01 02         [24] 2840 	cjne	r5,#0x01,00604$
      000C7C 80 03            [24] 2841 	sjmp	00605$
      000C7E                       2842 00604$:
      000C7E 02 0E 94         [24] 2843 	ljmp	00226$
      000C81                       2844 00605$:
                                   2845 ;	src/dap.c:538: post_read = 1U;
      000C81 75 3F 01         [24] 2846 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x01
      000C84 02 0D 21         [24] 2847 	ljmp	00170$
                                   2848 ;	src/dap.c:543: do {
      000C87                       2849 00160$:
                                   2850 ;	src/dap.c:544: response_value = SWD_Transfer(request_value, data);
      000C87 75 2A 00         [24] 2851 	mov	_SWD_Transfer_PARM_2,#_data
      000C8A 75 2B 01         [24] 2852 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000C8D 78 60            [12] 2853 	mov	r0,#_request_value
      000C8F 86 82            [24] 2854 	mov	dpl,@r0
      000C91 C0 07            [24] 2855 	push	ar7
      000C93 C0 06            [24] 2856 	push	ar6
      000C95 12 02 81         [24] 2857 	lcall	_SWD_Transfer
      000C98 AD 82            [24] 2858 	mov	r5,dpl
      000C9A D0 06            [24] 2859 	pop	ar6
      000C9C D0 07            [24] 2860 	pop	ar7
      000C9E 78 62            [12] 2861 	mov	r0,#_response_value
      000CA0 A6 05            [24] 2862 	mov	@r0,ar5
                                   2863 ;	src/dap.c:545: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000CA2 BD 02 1B         [24] 2864 	cjne	r5,#0x02,00162$
      000CA5 78 63            [12] 2865 	mov	r0,#_retry
      000CA7 86 03            [24] 2866 	mov	ar3,@r0
      000CA9 08               [12] 2867 	inc	r0
      000CAA 86 04            [24] 2868 	mov	ar4,@r0
      000CAC 78 63            [12] 2869 	mov	r0,#_retry
      000CAE EB               [12] 2870 	mov	a,r3
      000CAF 24 FF            [12] 2871 	add	a,#0xff
      000CB1 F6               [12] 2872 	mov	@r0,a
      000CB2 EC               [12] 2873 	mov	a,r4
      000CB3 34 FF            [12] 2874 	addc	a,#0xff
      000CB5 08               [12] 2875 	inc	r0
      000CB6 F6               [12] 2876 	mov	@r0,a
      000CB7 EB               [12] 2877 	mov	a,r3
      000CB8 4C               [12] 2878 	orl	a,r4
      000CB9 60 05            [24] 2879 	jz	00162$
      000CBB 78 5E            [12] 2880 	mov	r0,#_DAP_TransferAbort
      000CBD E6               [12] 2881 	mov	a,@r0
      000CBE 60 C7            [24] 2882 	jz	00160$
      000CC0                       2883 00162$:
                                   2884 ;	src/dap.c:546: if(response_value != DAP_TRANSFER_OK) break;
      000CC0 BD 01 02         [24] 2885 	cjne	r5,#0x01,00610$
      000CC3 80 03            [24] 2886 	sjmp	00611$
      000CC5                       2887 00610$:
      000CC5 02 0E 94         [24] 2888 	ljmp	00226$
      000CC8                       2889 00611$:
                                   2890 ;	src/dap.c:549: *res++ = data[0];
      000CC8 AC 3B            [24] 2891 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000CCA AD 3C            [24] 2892 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000CCC 90 01 00         [24] 2893 	mov	dptr,#_data
      000CCF E0               [24] 2894 	movx	a,@dptr
      000CD0 8C 82            [24] 2895 	mov	dpl,r4
      000CD2 8D 83            [24] 2896 	mov	dph,r5
      000CD4 F0               [24] 2897 	movx	@dptr,a
      000CD5 74 01            [12] 2898 	mov	a,#0x01
      000CD7 2C               [12] 2899 	add	a,r4
      000CD8 F5 3B            [12] 2900 	mov	_DAP_SWD_Transfer_PARM_2,a
      000CDA E4               [12] 2901 	clr	a
      000CDB 3D               [12] 2902 	addc	a,r5
      000CDC F5 3C            [12] 2903 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2904 ;	src/dap.c:550: *res++ = data[1];
      000CDE AC 3B            [24] 2905 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000CE0 AD 3C            [24] 2906 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000CE2 90 01 01         [24] 2907 	mov	dptr,#(_data + 0x0001)
      000CE5 E0               [24] 2908 	movx	a,@dptr
      000CE6 8C 82            [24] 2909 	mov	dpl,r4
      000CE8 8D 83            [24] 2910 	mov	dph,r5
      000CEA F0               [24] 2911 	movx	@dptr,a
      000CEB 74 01            [12] 2912 	mov	a,#0x01
      000CED 2C               [12] 2913 	add	a,r4
      000CEE F5 3B            [12] 2914 	mov	_DAP_SWD_Transfer_PARM_2,a
      000CF0 E4               [12] 2915 	clr	a
      000CF1 3D               [12] 2916 	addc	a,r5
      000CF2 F5 3C            [12] 2917 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2918 ;	src/dap.c:551: *res++ = data[2];
      000CF4 AC 3B            [24] 2919 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000CF6 AD 3C            [24] 2920 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000CF8 90 01 02         [24] 2921 	mov	dptr,#(_data + 0x0002)
      000CFB E0               [24] 2922 	movx	a,@dptr
      000CFC 8C 82            [24] 2923 	mov	dpl,r4
      000CFE 8D 83            [24] 2924 	mov	dph,r5
      000D00 F0               [24] 2925 	movx	@dptr,a
      000D01 74 01            [12] 2926 	mov	a,#0x01
      000D03 2C               [12] 2927 	add	a,r4
      000D04 F5 3B            [12] 2928 	mov	_DAP_SWD_Transfer_PARM_2,a
      000D06 E4               [12] 2929 	clr	a
      000D07 3D               [12] 2930 	addc	a,r5
      000D08 F5 3C            [12] 2931 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   2932 ;	src/dap.c:552: *res++ = data[3];
      000D0A AC 3B            [24] 2933 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000D0C AD 3C            [24] 2934 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000D0E 90 01 03         [24] 2935 	mov	dptr,#(_data + 0x0003)
      000D11 E0               [24] 2936 	movx	a,@dptr
      000D12 FB               [12] 2937 	mov	r3,a
      000D13 8C 82            [24] 2938 	mov	dpl,r4
      000D15 8D 83            [24] 2939 	mov	dph,r5
      000D17 F0               [24] 2940 	movx	@dptr,a
      000D18 74 01            [12] 2941 	mov	a,#0x01
      000D1A 2C               [12] 2942 	add	a,r4
      000D1B F5 3B            [12] 2943 	mov	_DAP_SWD_Transfer_PARM_2,a
      000D1D E4               [12] 2944 	clr	a
      000D1E 3D               [12] 2945 	addc	a,r5
      000D1F F5 3C            [12] 2946 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
      000D21                       2947 00170$:
                                   2948 ;	src/dap.c:555: check_write = 0U;
      000D21 75 40 00         [24] 2949 	mov	_DAP_SWD_Transfer_check_write_65536_140,#0x00
      000D24 02 0E 86         [24] 2950 	ljmp	00192$
      000D27                       2951 00191$:
                                   2952 ;	src/dap.c:559: if(post_read) {
      000D27 E5 3F            [12] 2953 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000D29 70 03            [24] 2954 	jnz	00612$
      000D2B 02 0D D8         [24] 2955 	ljmp	00179$
      000D2E                       2956 00612$:
                                   2957 ;	src/dap.c:561: retry = retry_count;
      000D2E 78 52            [12] 2958 	mov	r0,#_retry_count
      000D30 86 04            [24] 2959 	mov	ar4,@r0
      000D32 08               [12] 2960 	inc	r0
      000D33 86 05            [24] 2961 	mov	ar5,@r0
      000D35 78 63            [12] 2962 	mov	r0,#_retry
      000D37 A6 04            [24] 2963 	mov	@r0,ar4
      000D39 08               [12] 2964 	inc	r0
      000D3A A6 05            [24] 2965 	mov	@r0,ar5
                                   2966 ;	src/dap.c:562: do {
      000D3C                       2967 00173$:
                                   2968 ;	src/dap.c:563: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, data);
      000D3C 75 2A 00         [24] 2969 	mov	_SWD_Transfer_PARM_2,#_data
      000D3F 75 2B 01         [24] 2970 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000D42 75 82 0E         [24] 2971 	mov	dpl,#0x0e
      000D45 C0 07            [24] 2972 	push	ar7
      000D47 C0 06            [24] 2973 	push	ar6
      000D49 12 02 81         [24] 2974 	lcall	_SWD_Transfer
      000D4C AD 82            [24] 2975 	mov	r5,dpl
      000D4E D0 06            [24] 2976 	pop	ar6
      000D50 D0 07            [24] 2977 	pop	ar7
      000D52 78 62            [12] 2978 	mov	r0,#_response_value
      000D54 A6 05            [24] 2979 	mov	@r0,ar5
                                   2980 ;	src/dap.c:564: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000D56 BD 02 1B         [24] 2981 	cjne	r5,#0x02,00175$
      000D59 78 63            [12] 2982 	mov	r0,#_retry
      000D5B 86 03            [24] 2983 	mov	ar3,@r0
      000D5D 08               [12] 2984 	inc	r0
      000D5E 86 04            [24] 2985 	mov	ar4,@r0
      000D60 78 63            [12] 2986 	mov	r0,#_retry
      000D62 EB               [12] 2987 	mov	a,r3
      000D63 24 FF            [12] 2988 	add	a,#0xff
      000D65 F6               [12] 2989 	mov	@r0,a
      000D66 EC               [12] 2990 	mov	a,r4
      000D67 34 FF            [12] 2991 	addc	a,#0xff
      000D69 08               [12] 2992 	inc	r0
      000D6A F6               [12] 2993 	mov	@r0,a
      000D6B EB               [12] 2994 	mov	a,r3
      000D6C 4C               [12] 2995 	orl	a,r4
      000D6D 60 05            [24] 2996 	jz	00175$
      000D6F 78 5E            [12] 2997 	mov	r0,#_DAP_TransferAbort
      000D71 E6               [12] 2998 	mov	a,@r0
      000D72 60 C8            [24] 2999 	jz	00173$
      000D74                       3000 00175$:
                                   3001 ;	src/dap.c:565: if(response_value != DAP_TRANSFER_OK) break;
      000D74 BD 01 02         [24] 3002 	cjne	r5,#0x01,00617$
      000D77 80 03            [24] 3003 	sjmp	00618$
      000D79                       3004 00617$:
      000D79 02 0E 94         [24] 3005 	ljmp	00226$
      000D7C                       3006 00618$:
                                   3007 ;	src/dap.c:568: *res++ = data[0];
      000D7C AC 3B            [24] 3008 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000D7E AD 3C            [24] 3009 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000D80 90 01 00         [24] 3010 	mov	dptr,#_data
      000D83 E0               [24] 3011 	movx	a,@dptr
      000D84 8C 82            [24] 3012 	mov	dpl,r4
      000D86 8D 83            [24] 3013 	mov	dph,r5
      000D88 F0               [24] 3014 	movx	@dptr,a
      000D89 74 01            [12] 3015 	mov	a,#0x01
      000D8B 2C               [12] 3016 	add	a,r4
      000D8C F5 3B            [12] 3017 	mov	_DAP_SWD_Transfer_PARM_2,a
      000D8E E4               [12] 3018 	clr	a
      000D8F 3D               [12] 3019 	addc	a,r5
      000D90 F5 3C            [12] 3020 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3021 ;	src/dap.c:569: *res++ = data[1];
      000D92 AC 3B            [24] 3022 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000D94 AD 3C            [24] 3023 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000D96 90 01 01         [24] 3024 	mov	dptr,#(_data + 0x0001)
      000D99 E0               [24] 3025 	movx	a,@dptr
      000D9A 8C 82            [24] 3026 	mov	dpl,r4
      000D9C 8D 83            [24] 3027 	mov	dph,r5
      000D9E F0               [24] 3028 	movx	@dptr,a
      000D9F 74 01            [12] 3029 	mov	a,#0x01
      000DA1 2C               [12] 3030 	add	a,r4
      000DA2 F5 3B            [12] 3031 	mov	_DAP_SWD_Transfer_PARM_2,a
      000DA4 E4               [12] 3032 	clr	a
      000DA5 3D               [12] 3033 	addc	a,r5
      000DA6 F5 3C            [12] 3034 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3035 ;	src/dap.c:570: *res++ = data[2];
      000DA8 AC 3B            [24] 3036 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000DAA AD 3C            [24] 3037 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000DAC 90 01 02         [24] 3038 	mov	dptr,#(_data + 0x0002)
      000DAF E0               [24] 3039 	movx	a,@dptr
      000DB0 8C 82            [24] 3040 	mov	dpl,r4
      000DB2 8D 83            [24] 3041 	mov	dph,r5
      000DB4 F0               [24] 3042 	movx	@dptr,a
      000DB5 74 01            [12] 3043 	mov	a,#0x01
      000DB7 2C               [12] 3044 	add	a,r4
      000DB8 F5 3B            [12] 3045 	mov	_DAP_SWD_Transfer_PARM_2,a
      000DBA E4               [12] 3046 	clr	a
      000DBB 3D               [12] 3047 	addc	a,r5
      000DBC F5 3C            [12] 3048 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3049 ;	src/dap.c:571: *res++ = data[3];
      000DBE AC 3B            [24] 3050 	mov	r4,_DAP_SWD_Transfer_PARM_2
      000DC0 AD 3C            [24] 3051 	mov	r5,(_DAP_SWD_Transfer_PARM_2 + 1)
      000DC2 90 01 03         [24] 3052 	mov	dptr,#(_data + 0x0003)
      000DC5 E0               [24] 3053 	movx	a,@dptr
      000DC6 FB               [12] 3054 	mov	r3,a
      000DC7 8C 82            [24] 3055 	mov	dpl,r4
      000DC9 8D 83            [24] 3056 	mov	dph,r5
      000DCB F0               [24] 3057 	movx	@dptr,a
      000DCC 74 01            [12] 3058 	mov	a,#0x01
      000DCE 2C               [12] 3059 	add	a,r4
      000DCF F5 3B            [12] 3060 	mov	_DAP_SWD_Transfer_PARM_2,a
      000DD1 E4               [12] 3061 	clr	a
      000DD2 3D               [12] 3062 	addc	a,r5
      000DD3 F5 3C            [12] 3063 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3064 ;	src/dap.c:572: post_read = 0U;
      000DD5 75 3F 00         [24] 3065 	mov	_DAP_SWD_Transfer_post_read_65536_140,#0x00
      000DD8                       3066 00179$:
                                   3067 ;	src/dap.c:575: data[0] = (uint8_t)(*(req + 0));
      000DD8 8E 82            [24] 3068 	mov	dpl,r6
      000DDA 8F 83            [24] 3069 	mov	dph,r7
      000DDC E0               [24] 3070 	movx	a,@dptr
      000DDD 90 01 00         [24] 3071 	mov	dptr,#_data
      000DE0 F0               [24] 3072 	movx	@dptr,a
                                   3073 ;	src/dap.c:576: data[1] = (uint8_t)(*(req + 1));
      000DE1 8E 82            [24] 3074 	mov	dpl,r6
      000DE3 8F 83            [24] 3075 	mov	dph,r7
      000DE5 A3               [24] 3076 	inc	dptr
      000DE6 E0               [24] 3077 	movx	a,@dptr
      000DE7 90 01 01         [24] 3078 	mov	dptr,#(_data + 0x0001)
      000DEA F0               [24] 3079 	movx	@dptr,a
                                   3080 ;	src/dap.c:577: data[2] = (uint8_t)(*(req + 2));
      000DEB 8E 82            [24] 3081 	mov	dpl,r6
      000DED 8F 83            [24] 3082 	mov	dph,r7
      000DEF A3               [24] 3083 	inc	dptr
      000DF0 A3               [24] 3084 	inc	dptr
      000DF1 E0               [24] 3085 	movx	a,@dptr
      000DF2 90 01 02         [24] 3086 	mov	dptr,#(_data + 0x0002)
      000DF5 F0               [24] 3087 	movx	@dptr,a
                                   3088 ;	src/dap.c:578: data[3] = (uint8_t)(*(req + 3));
      000DF6 8E 82            [24] 3089 	mov	dpl,r6
      000DF8 8F 83            [24] 3090 	mov	dph,r7
      000DFA A3               [24] 3091 	inc	dptr
      000DFB A3               [24] 3092 	inc	dptr
      000DFC A3               [24] 3093 	inc	dptr
      000DFD E0               [24] 3094 	movx	a,@dptr
      000DFE 90 01 03         [24] 3095 	mov	dptr,#(_data + 0x0003)
      000E01 F0               [24] 3096 	movx	@dptr,a
                                   3097 ;	src/dap.c:579: req += 4;
      000E02 74 04            [12] 3098 	mov	a,#0x04
      000E04 2E               [12] 3099 	add	a,r6
      000E05 FE               [12] 3100 	mov	r6,a
      000E06 E4               [12] 3101 	clr	a
      000E07 3F               [12] 3102 	addc	a,r7
      000E08 FF               [12] 3103 	mov	r7,a
                                   3104 ;	src/dap.c:580: if((request_value & DAP_TRANSFER_MATCH_MASK) != 0U) {
      000E09 78 60            [12] 3105 	mov	r0,#_request_value
      000E0B E6               [12] 3106 	mov	a,@r0
      000E0C 30 E5 2A         [24] 3107 	jnb	acc.5,00188$
                                   3108 ;	src/dap.c:582: match_mask[0] = data[0];
      000E0F 90 01 00         [24] 3109 	mov	dptr,#_data
      000E12 E0               [24] 3110 	movx	a,@dptr
      000E13 FD               [12] 3111 	mov	r5,a
      000E14 78 56            [12] 3112 	mov	r0,#_match_mask
      000E16 A6 05            [24] 3113 	mov	@r0,ar5
                                   3114 ;	src/dap.c:583: match_mask[1] = data[1];
      000E18 90 01 01         [24] 3115 	mov	dptr,#(_data + 0x0001)
      000E1B E0               [24] 3116 	movx	a,@dptr
      000E1C FD               [12] 3117 	mov	r5,a
      000E1D 78 57            [12] 3118 	mov	r0,#(_match_mask + 0x0001)
      000E1F A6 05            [24] 3119 	mov	@r0,ar5
                                   3120 ;	src/dap.c:584: match_mask[2] = data[2];
      000E21 90 01 02         [24] 3121 	mov	dptr,#(_data + 0x0002)
      000E24 E0               [24] 3122 	movx	a,@dptr
      000E25 FD               [12] 3123 	mov	r5,a
      000E26 78 58            [12] 3124 	mov	r0,#(_match_mask + 0x0002)
      000E28 A6 05            [24] 3125 	mov	@r0,ar5
                                   3126 ;	src/dap.c:585: match_mask[3] = data[3];
      000E2A 90 01 03         [24] 3127 	mov	dptr,#(_data + 0x0003)
      000E2D E0               [24] 3128 	movx	a,@dptr
      000E2E FD               [12] 3129 	mov	r5,a
      000E2F 78 59            [12] 3130 	mov	r0,#(_match_mask + 0x0003)
      000E31 A6 05            [24] 3131 	mov	@r0,ar5
                                   3132 ;	src/dap.c:586: response_value = DAP_TRANSFER_OK;
      000E33 78 62            [12] 3133 	mov	r0,#_response_value
      000E35 76 01            [12] 3134 	mov	@r0,#0x01
      000E37 80 4D            [24] 3135 	sjmp	00192$
      000E39                       3136 00188$:
                                   3137 ;	src/dap.c:590: retry = retry_count;
      000E39 78 52            [12] 3138 	mov	r0,#_retry_count
      000E3B 86 04            [24] 3139 	mov	ar4,@r0
      000E3D 08               [12] 3140 	inc	r0
      000E3E 86 05            [24] 3141 	mov	ar5,@r0
      000E40 78 63            [12] 3142 	mov	r0,#_retry
      000E42 A6 04            [24] 3143 	mov	@r0,ar4
      000E44 08               [12] 3144 	inc	r0
      000E45 A6 05            [24] 3145 	mov	@r0,ar5
                                   3146 ;	src/dap.c:591: do {
      000E47                       3147 00182$:
                                   3148 ;	src/dap.c:592: response_value = SWD_Transfer(request_value, data);
      000E47 75 2A 00         [24] 3149 	mov	_SWD_Transfer_PARM_2,#_data
      000E4A 75 2B 01         [24] 3150 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000E4D 78 60            [12] 3151 	mov	r0,#_request_value
      000E4F 86 82            [24] 3152 	mov	dpl,@r0
      000E51 C0 07            [24] 3153 	push	ar7
      000E53 C0 06            [24] 3154 	push	ar6
      000E55 12 02 81         [24] 3155 	lcall	_SWD_Transfer
      000E58 AD 82            [24] 3156 	mov	r5,dpl
      000E5A D0 06            [24] 3157 	pop	ar6
      000E5C D0 07            [24] 3158 	pop	ar7
      000E5E 78 62            [12] 3159 	mov	r0,#_response_value
      000E60 A6 05            [24] 3160 	mov	@r0,ar5
                                   3161 ;	src/dap.c:593: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000E62 BD 02 1B         [24] 3162 	cjne	r5,#0x02,00184$
      000E65 78 63            [12] 3163 	mov	r0,#_retry
      000E67 86 03            [24] 3164 	mov	ar3,@r0
      000E69 08               [12] 3165 	inc	r0
      000E6A 86 04            [24] 3166 	mov	ar4,@r0
      000E6C 78 63            [12] 3167 	mov	r0,#_retry
      000E6E EB               [12] 3168 	mov	a,r3
      000E6F 24 FF            [12] 3169 	add	a,#0xff
      000E71 F6               [12] 3170 	mov	@r0,a
      000E72 EC               [12] 3171 	mov	a,r4
      000E73 34 FF            [12] 3172 	addc	a,#0xff
      000E75 08               [12] 3173 	inc	r0
      000E76 F6               [12] 3174 	mov	@r0,a
      000E77 EB               [12] 3175 	mov	a,r3
      000E78 4C               [12] 3176 	orl	a,r4
      000E79 60 05            [24] 3177 	jz	00184$
      000E7B 78 5E            [12] 3178 	mov	r0,#_DAP_TransferAbort
      000E7D E6               [12] 3179 	mov	a,@r0
      000E7E 60 C7            [24] 3180 	jz	00182$
      000E80                       3181 00184$:
                                   3182 ;	src/dap.c:594: if(response_value != DAP_TRANSFER_OK) break;
      000E80 BD 01 11         [24] 3183 	cjne	r5,#0x01,00226$
                                   3184 ;	src/dap.c:595: check_write = 1U;
      000E83 75 40 01         [24] 3185 	mov	_DAP_SWD_Transfer_check_write_65536_140,#0x01
      000E86                       3186 00192$:
                                   3187 ;	src/dap.c:598: response_count++;
      000E86 78 61            [12] 3188 	mov	r0,#_response_count
      000E88 06               [12] 3189 	inc	@r0
                                   3190 ;	src/dap.c:599: if(DAP_TransferAbort) break;
      000E89 78 5E            [12] 3191 	mov	r0,#_DAP_TransferAbort
      000E8B E6               [12] 3192 	mov	a,@r0
      000E8C 70 06            [24] 3193 	jnz	00226$
                                   3194 ;	src/dap.c:461: for(; request_count != 0U; request_count--) {
      000E8E 78 5F            [12] 3195 	mov	r0,#_request_count
      000E90 16               [12] 3196 	dec	@r0
      000E91 02 09 67         [24] 3197 	ljmp	00223$
      000E94                       3198 00226$:
                                   3199 ;	src/dap.c:602: for(; request_count != 0U; request_count--) {
      000E94 78 5F            [12] 3200 	mov	r0,#_request_count
      000E96 E6               [12] 3201 	mov	a,@r0
      000E97 60 2C            [24] 3202 	jz	00201$
                                   3203 ;	src/dap.c:604: request_value = *req++;
      000E99 8E 82            [24] 3204 	mov	dpl,r6
      000E9B 8F 83            [24] 3205 	mov	dph,r7
      000E9D E0               [24] 3206 	movx	a,@dptr
      000E9E FD               [12] 3207 	mov	r5,a
      000E9F A3               [24] 3208 	inc	dptr
      000EA0 AE 82            [24] 3209 	mov	r6,dpl
      000EA2 AF 83            [24] 3210 	mov	r7,dph
      000EA4 78 60            [12] 3211 	mov	r0,#_request_value
      000EA6 A6 05            [24] 3212 	mov	@r0,ar5
                                   3213 ;	src/dap.c:605: if((request_value & DAP_TRANSFER_RnW) != 0U) {  // Read register
      000EA8 ED               [12] 3214 	mov	a,r5
      000EA9 30 E1 0D         [24] 3215 	jnb	acc.1,00199$
                                   3216 ;	src/dap.c:606: if((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) req += 4;
      000EAC ED               [12] 3217 	mov	a,r5
      000EAD 30 E4 10         [24] 3218 	jnb	acc.4,00227$
      000EB0 74 04            [12] 3219 	mov	a,#0x04
      000EB2 2E               [12] 3220 	add	a,r6
      000EB3 FE               [12] 3221 	mov	r6,a
      000EB4 E4               [12] 3222 	clr	a
      000EB5 3F               [12] 3223 	addc	a,r7
      000EB6 FF               [12] 3224 	mov	r7,a
      000EB7 80 07            [24] 3225 	sjmp	00227$
      000EB9                       3226 00199$:
                                   3227 ;	src/dap.c:608: else req += 4;                                  // Write register
      000EB9 74 04            [12] 3228 	mov	a,#0x04
      000EBB 2E               [12] 3229 	add	a,r6
      000EBC FE               [12] 3230 	mov	r6,a
      000EBD E4               [12] 3231 	clr	a
      000EBE 3F               [12] 3232 	addc	a,r7
      000EBF FF               [12] 3233 	mov	r7,a
      000EC0                       3234 00227$:
                                   3235 ;	src/dap.c:602: for(; request_count != 0U; request_count--) {
      000EC0 78 5F            [12] 3236 	mov	r0,#_request_count
      000EC2 16               [12] 3237 	dec	@r0
      000EC3 80 CF            [24] 3238 	sjmp	00226$
      000EC5                       3239 00201$:
                                   3240 ;	src/dap.c:611: if(response_value == DAP_TRANSFER_OK) {
      000EC5 78 62            [12] 3241 	mov	r0,#_response_value
      000EC7 B6 01 02         [24] 3242 	cjne	@r0,#0x01,00630$
      000ECA 80 03            [24] 3243 	sjmp	00631$
      000ECC                       3244 00630$:
      000ECC 02 0F B8         [24] 3245 	ljmp	00221$
      000ECF                       3246 00631$:
                                   3247 ;	src/dap.c:612: if(post_read) {
      000ECF E5 3F            [12] 3248 	mov	a,_DAP_SWD_Transfer_post_read_65536_140
      000ED1 70 03            [24] 3249 	jnz	00632$
      000ED3 02 0F 77         [24] 3250 	ljmp	00217$
      000ED6                       3251 00632$:
                                   3252 ;	src/dap.c:614: retry = retry_count;
      000ED6 78 52            [12] 3253 	mov	r0,#_retry_count
      000ED8 86 06            [24] 3254 	mov	ar6,@r0
      000EDA 08               [12] 3255 	inc	r0
      000EDB 86 07            [24] 3256 	mov	ar7,@r0
      000EDD 78 63            [12] 3257 	mov	r0,#_retry
      000EDF A6 06            [24] 3258 	mov	@r0,ar6
      000EE1 08               [12] 3259 	inc	r0
      000EE2 A6 07            [24] 3260 	mov	@r0,ar7
                                   3261 ;	src/dap.c:615: do {
      000EE4                       3262 00204$:
                                   3263 ;	src/dap.c:616: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, data);
      000EE4 75 2A 00         [24] 3264 	mov	_SWD_Transfer_PARM_2,#_data
      000EE7 75 2B 01         [24] 3265 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      000EEA 75 82 0E         [24] 3266 	mov	dpl,#0x0e
      000EED 12 02 81         [24] 3267 	lcall	_SWD_Transfer
      000EF0 AF 82            [24] 3268 	mov	r7,dpl
      000EF2 78 62            [12] 3269 	mov	r0,#_response_value
      000EF4 A6 07            [24] 3270 	mov	@r0,ar7
                                   3271 ;	src/dap.c:617: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000EF6 BF 02 1B         [24] 3272 	cjne	r7,#0x02,00206$
      000EF9 78 63            [12] 3273 	mov	r0,#_retry
      000EFB 86 05            [24] 3274 	mov	ar5,@r0
      000EFD 08               [12] 3275 	inc	r0
      000EFE 86 06            [24] 3276 	mov	ar6,@r0
      000F00 78 63            [12] 3277 	mov	r0,#_retry
      000F02 ED               [12] 3278 	mov	a,r5
      000F03 24 FF            [12] 3279 	add	a,#0xff
      000F05 F6               [12] 3280 	mov	@r0,a
      000F06 EE               [12] 3281 	mov	a,r6
      000F07 34 FF            [12] 3282 	addc	a,#0xff
      000F09 08               [12] 3283 	inc	r0
      000F0A F6               [12] 3284 	mov	@r0,a
      000F0B ED               [12] 3285 	mov	a,r5
      000F0C 4E               [12] 3286 	orl	a,r6
      000F0D 60 05            [24] 3287 	jz	00206$
      000F0F 78 5E            [12] 3288 	mov	r0,#_DAP_TransferAbort
      000F11 E6               [12] 3289 	mov	a,@r0
      000F12 60 D0            [24] 3290 	jz	00204$
      000F14                       3291 00206$:
                                   3292 ;	src/dap.c:618: if(response_value != DAP_TRANSFER_OK) goto end;
      000F14 BF 01 02         [24] 3293 	cjne	r7,#0x01,00637$
      000F17 80 03            [24] 3294 	sjmp	00638$
      000F19                       3295 00637$:
      000F19 02 0F B8         [24] 3296 	ljmp	00221$
      000F1C                       3297 00638$:
                                   3298 ;	src/dap.c:621: *res++ = (uint8_t)data[0];
      000F1C AE 3B            [24] 3299 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000F1E AF 3C            [24] 3300 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000F20 90 01 00         [24] 3301 	mov	dptr,#_data
      000F23 E0               [24] 3302 	movx	a,@dptr
      000F24 8E 82            [24] 3303 	mov	dpl,r6
      000F26 8F 83            [24] 3304 	mov	dph,r7
      000F28 F0               [24] 3305 	movx	@dptr,a
      000F29 74 01            [12] 3306 	mov	a,#0x01
      000F2B 2E               [12] 3307 	add	a,r6
      000F2C F5 3B            [12] 3308 	mov	_DAP_SWD_Transfer_PARM_2,a
      000F2E E4               [12] 3309 	clr	a
      000F2F 3F               [12] 3310 	addc	a,r7
      000F30 F5 3C            [12] 3311 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3312 ;	src/dap.c:622: *res++ = (uint8_t)data[1];
      000F32 AE 3B            [24] 3313 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000F34 AF 3C            [24] 3314 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000F36 90 01 01         [24] 3315 	mov	dptr,#(_data + 0x0001)
      000F39 E0               [24] 3316 	movx	a,@dptr
      000F3A 8E 82            [24] 3317 	mov	dpl,r6
      000F3C 8F 83            [24] 3318 	mov	dph,r7
      000F3E F0               [24] 3319 	movx	@dptr,a
      000F3F 74 01            [12] 3320 	mov	a,#0x01
      000F41 2E               [12] 3321 	add	a,r6
      000F42 F5 3B            [12] 3322 	mov	_DAP_SWD_Transfer_PARM_2,a
      000F44 E4               [12] 3323 	clr	a
      000F45 3F               [12] 3324 	addc	a,r7
      000F46 F5 3C            [12] 3325 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3326 ;	src/dap.c:623: *res++ = (uint8_t)data[2];
      000F48 AE 3B            [24] 3327 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000F4A AF 3C            [24] 3328 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000F4C 90 01 02         [24] 3329 	mov	dptr,#(_data + 0x0002)
      000F4F E0               [24] 3330 	movx	a,@dptr
      000F50 8E 82            [24] 3331 	mov	dpl,r6
      000F52 8F 83            [24] 3332 	mov	dph,r7
      000F54 F0               [24] 3333 	movx	@dptr,a
      000F55 74 01            [12] 3334 	mov	a,#0x01
      000F57 2E               [12] 3335 	add	a,r6
      000F58 F5 3B            [12] 3336 	mov	_DAP_SWD_Transfer_PARM_2,a
      000F5A E4               [12] 3337 	clr	a
      000F5B 3F               [12] 3338 	addc	a,r7
      000F5C F5 3C            [12] 3339 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
                                   3340 ;	src/dap.c:624: *res++ = (uint8_t)data[3];
      000F5E AE 3B            [24] 3341 	mov	r6,_DAP_SWD_Transfer_PARM_2
      000F60 AF 3C            [24] 3342 	mov	r7,(_DAP_SWD_Transfer_PARM_2 + 1)
      000F62 90 01 03         [24] 3343 	mov	dptr,#(_data + 0x0003)
      000F65 E0               [24] 3344 	movx	a,@dptr
      000F66 FD               [12] 3345 	mov	r5,a
      000F67 8E 82            [24] 3346 	mov	dpl,r6
      000F69 8F 83            [24] 3347 	mov	dph,r7
      000F6B F0               [24] 3348 	movx	@dptr,a
      000F6C 74 01            [12] 3349 	mov	a,#0x01
      000F6E 2E               [12] 3350 	add	a,r6
      000F6F F5 3B            [12] 3351 	mov	_DAP_SWD_Transfer_PARM_2,a
      000F71 E4               [12] 3352 	clr	a
      000F72 3F               [12] 3353 	addc	a,r7
      000F73 F5 3C            [12] 3354 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),a
      000F75 80 41            [24] 3355 	sjmp	00221$
      000F77                       3356 00217$:
                                   3357 ;	src/dap.c:626: else if(check_write) {
      000F77 E5 40            [12] 3358 	mov	a,_DAP_SWD_Transfer_check_write_65536_140
      000F79 60 3D            [24] 3359 	jz	00221$
                                   3360 ;	src/dap.c:628: retry = retry_count;
      000F7B 78 52            [12] 3361 	mov	r0,#_retry_count
      000F7D 86 06            [24] 3362 	mov	ar6,@r0
      000F7F 08               [12] 3363 	inc	r0
      000F80 86 07            [24] 3364 	mov	ar7,@r0
      000F82 78 63            [12] 3365 	mov	r0,#_retry
      000F84 A6 06            [24] 3366 	mov	@r0,ar6
      000F86 08               [12] 3367 	inc	r0
      000F87 A6 07            [24] 3368 	mov	@r0,ar7
                                   3369 ;	src/dap.c:629: do {
      000F89                       3370 00211$:
                                   3371 ;	src/dap.c:630: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL);
      000F89 E4               [12] 3372 	clr	a
      000F8A F5 2A            [12] 3373 	mov	_SWD_Transfer_PARM_2,a
      000F8C F5 2B            [12] 3374 	mov	(_SWD_Transfer_PARM_2 + 1),a
      000F8E 75 82 0E         [24] 3375 	mov	dpl,#0x0e
      000F91 12 02 81         [24] 3376 	lcall	_SWD_Transfer
      000F94 AF 82            [24] 3377 	mov	r7,dpl
      000F96 78 62            [12] 3378 	mov	r0,#_response_value
      000F98 A6 07            [24] 3379 	mov	@r0,ar7
                                   3380 ;	src/dap.c:631: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      000F9A BF 02 1B         [24] 3381 	cjne	r7,#0x02,00221$
      000F9D 78 63            [12] 3382 	mov	r0,#_retry
      000F9F 86 06            [24] 3383 	mov	ar6,@r0
      000FA1 08               [12] 3384 	inc	r0
      000FA2 86 07            [24] 3385 	mov	ar7,@r0
      000FA4 78 63            [12] 3386 	mov	r0,#_retry
      000FA6 EE               [12] 3387 	mov	a,r6
      000FA7 24 FF            [12] 3388 	add	a,#0xff
      000FA9 F6               [12] 3389 	mov	@r0,a
      000FAA EF               [12] 3390 	mov	a,r7
      000FAB 34 FF            [12] 3391 	addc	a,#0xff
      000FAD 08               [12] 3392 	inc	r0
      000FAE F6               [12] 3393 	mov	@r0,a
      000FAF EE               [12] 3394 	mov	a,r6
      000FB0 4F               [12] 3395 	orl	a,r7
      000FB1 60 05            [24] 3396 	jz	00221$
      000FB3 78 5E            [12] 3397 	mov	r0,#_DAP_TransferAbort
      000FB5 E6               [12] 3398 	mov	a,@r0
      000FB6 60 D1            [24] 3399 	jz	00211$
                                   3400 ;	src/dap.c:635: end:
      000FB8                       3401 00221$:
                                   3402 ;	src/dap.c:636: *(response_head + 0) = (uint8_t)response_count;
      000FB8 85 3D 82         [24] 3403 	mov	dpl,_DAP_SWD_Transfer_response_head_65536_140
      000FBB 85 3E 83         [24] 3404 	mov	dph,(_DAP_SWD_Transfer_response_head_65536_140 + 1)
      000FBE 78 61            [12] 3405 	mov	r0,#_response_count
      000FC0 E6               [12] 3406 	mov	a,@r0
      000FC1 F0               [24] 3407 	movx	@dptr,a
                                   3408 ;	src/dap.c:637: *(response_head + 1) = (uint8_t)response_value;
      000FC2 85 3D 82         [24] 3409 	mov	dpl,_DAP_SWD_Transfer_response_head_65536_140
      000FC5 85 3E 83         [24] 3410 	mov	dph,(_DAP_SWD_Transfer_response_head_65536_140 + 1)
      000FC8 A3               [24] 3411 	inc	dptr
      000FC9 78 62            [12] 3412 	mov	r0,#_response_value
      000FCB E6               [12] 3413 	mov	a,@r0
      000FCC F0               [24] 3414 	movx	@dptr,a
                                   3415 ;	src/dap.c:638: return((uint8_t)(res - response_head));
      000FCD AF 3B            [24] 3416 	mov	r7,_DAP_SWD_Transfer_PARM_2
      000FCF AC 3D            [24] 3417 	mov	r4,_DAP_SWD_Transfer_response_head_65536_140
      000FD1 EF               [12] 3418 	mov	a,r7
      000FD2 C3               [12] 3419 	clr	c
      000FD3 9C               [12] 3420 	subb	a,r4
      000FD4 F5 82            [12] 3421 	mov	dpl,a
                                   3422 ;	src/dap.c:639: }
      000FD6 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 ;	-----------------------------------------
      000FD7                       3435 _DAP_SWD_TransferBlock:
      000FD7 AE 82            [24] 3436 	mov	r6,dpl
      000FD9 AF 83            [24] 3437 	mov	r7,dph
                                   3438 ;	src/dap.c:649: response_count = 0U;
      000FDB 78 61            [12] 3439 	mov	r0,#_response_count
      000FDD 76 00            [12] 3440 	mov	@r0,#0x00
                                   3441 ;	src/dap.c:650: response_value = 0U;
      000FDF 78 62            [12] 3442 	mov	r0,#_response_value
      000FE1 76 00            [12] 3443 	mov	@r0,#0x00
                                   3444 ;	src/dap.c:651: response_head = res;
      000FE3 85 42 44         [24] 3445 	mov	_DAP_SWD_TransferBlock_response_head_65536_175,_DAP_SWD_TransferBlock_PARM_2
      000FE6 85 43 45         [24] 3446 	mov	(_DAP_SWD_TransferBlock_response_head_65536_175 + 1),(_DAP_SWD_TransferBlock_PARM_2 + 1)
                                   3447 ;	src/dap.c:652: res += 3;
      000FE9 74 03            [12] 3448 	mov	a,#0x03
      000FEB 25 44            [12] 3449 	add	a,_DAP_SWD_TransferBlock_response_head_65536_175
      000FED F5 42            [12] 3450 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      000FEF E4               [12] 3451 	clr	a
      000FF0 35 45            [12] 3452 	addc	a,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      000FF2 F5 43            [12] 3453 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3454 ;	src/dap.c:653: DAP_TransferAbort = 0U;
      000FF4 78 5E            [12] 3455 	mov	r0,#_DAP_TransferAbort
      000FF6 76 00            [12] 3456 	mov	@r0,#0x00
                                   3457 ;	src/dap.c:654: req++;                                          // ignore DAP index
      000FF8 0E               [12] 3458 	inc	r6
      000FF9 BE 00 01         [24] 3459 	cjne	r6,#0x00,00261$
      000FFC 0F               [12] 3460 	inc	r7
      000FFD                       3461 00261$:
                                   3462 ;	src/dap.c:655: request_count = (uint16_t)(*(req + 0) << 0)
      000FFD 8E 82            [24] 3463 	mov	dpl,r6
      000FFF 8F 83            [24] 3464 	mov	dph,r7
      001001 E0               [24] 3465 	movx	a,@dptr
      001002 FB               [12] 3466 	mov	r3,a
                                   3467 ;	src/dap.c:656: | (uint16_t)(*(req + 1) << 8);
      001003 8E 82            [24] 3468 	mov	dpl,r6
      001005 8F 83            [24] 3469 	mov	dph,r7
      001007 A3               [24] 3470 	inc	dptr
      001008 E0               [24] 3471 	movx	a,@dptr
      001009 E4               [12] 3472 	clr	a
      00100A FA               [12] 3473 	mov	r2,a
      00100B 4B               [12] 3474 	orl	a,r3
      00100C 78 5F            [12] 3475 	mov	r0,#_request_count
      00100E F6               [12] 3476 	mov	@r0,a
                                   3477 ;	src/dap.c:657: req += 2;
      00100F 74 02            [12] 3478 	mov	a,#0x02
      001011 2E               [12] 3479 	add	a,r6
      001012 FE               [12] 3480 	mov	r6,a
      001013 E4               [12] 3481 	clr	a
      001014 3F               [12] 3482 	addc	a,r7
      001015 FF               [12] 3483 	mov	r7,a
                                   3484 ;	src/dap.c:658: if(request_count == 0U) goto end;
      001016 78 5F            [12] 3485 	mov	r0,#_request_count
      001018 E6               [12] 3486 	mov	a,@r0
      001019 70 03            [24] 3487 	jnz	00262$
      00101B 02 12 0F         [24] 3488 	ljmp	00143$
      00101E                       3489 00262$:
                                   3490 ;	src/dap.c:660: request_value = *req++;
      00101E 8E 82            [24] 3491 	mov	dpl,r6
      001020 8F 83            [24] 3492 	mov	dph,r7
      001022 E0               [24] 3493 	movx	a,@dptr
      001023 FB               [12] 3494 	mov	r3,a
      001024 0E               [12] 3495 	inc	r6
      001025 BE 00 01         [24] 3496 	cjne	r6,#0x00,00263$
      001028 0F               [12] 3497 	inc	r7
      001029                       3498 00263$:
      001029 78 60            [12] 3499 	mov	r0,#_request_value
      00102B A6 03            [24] 3500 	mov	@r0,ar3
                                   3501 ;	src/dap.c:661: if((request_value & DAP_TRANSFER_RnW) != 0U) {
      00102D EB               [12] 3502 	mov	a,r3
      00102E 20 E1 03         [24] 3503 	jb	acc.1,00264$
      001031 02 11 42         [24] 3504 	ljmp	00165$
      001034                       3505 00264$:
                                   3506 ;	src/dap.c:663: if((request_value & DAP_TRANSFER_APnDP) != 0U) {
      001034 EB               [12] 3507 	mov	a,r3
      001035 30 E0 46         [24] 3508 	jnb	acc.0,00159$
                                   3509 ;	src/dap.c:665: retry = retry_count;
      001038 78 52            [12] 3510 	mov	r0,#_retry_count
      00103A 86 02            [24] 3511 	mov	ar2,@r0
      00103C 08               [12] 3512 	inc	r0
      00103D 86 03            [24] 3513 	mov	ar3,@r0
      00103F 78 63            [12] 3514 	mov	r0,#_retry
      001041 A6 02            [24] 3515 	mov	@r0,ar2
      001043 08               [12] 3516 	inc	r0
      001044 A6 03            [24] 3517 	mov	@r0,ar3
                                   3518 ;	src/dap.c:666: do {
      001046                       3519 00105$:
                                   3520 ;	src/dap.c:667: response_value = SWD_Transfer(request_value, NULL);
      001046 E4               [12] 3521 	clr	a
      001047 F5 2A            [12] 3522 	mov	_SWD_Transfer_PARM_2,a
      001049 F5 2B            [12] 3523 	mov	(_SWD_Transfer_PARM_2 + 1),a
      00104B 78 60            [12] 3524 	mov	r0,#_request_value
      00104D 86 82            [24] 3525 	mov	dpl,@r0
      00104F 12 02 81         [24] 3526 	lcall	_SWD_Transfer
      001052 AB 82            [24] 3527 	mov	r3,dpl
      001054 78 62            [12] 3528 	mov	r0,#_response_value
      001056 A6 03            [24] 3529 	mov	@r0,ar3
                                   3530 ;	src/dap.c:668: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      001058 BB 02 1B         [24] 3531 	cjne	r3,#0x02,00107$
      00105B 78 63            [12] 3532 	mov	r0,#_retry
      00105D 86 02            [24] 3533 	mov	ar2,@r0
      00105F 08               [12] 3534 	inc	r0
      001060 86 05            [24] 3535 	mov	ar5,@r0
      001062 78 63            [12] 3536 	mov	r0,#_retry
      001064 EA               [12] 3537 	mov	a,r2
      001065 24 FF            [12] 3538 	add	a,#0xff
      001067 F6               [12] 3539 	mov	@r0,a
      001068 ED               [12] 3540 	mov	a,r5
      001069 34 FF            [12] 3541 	addc	a,#0xff
      00106B 08               [12] 3542 	inc	r0
      00106C F6               [12] 3543 	mov	@r0,a
      00106D EA               [12] 3544 	mov	a,r2
      00106E 4D               [12] 3545 	orl	a,r5
      00106F 60 05            [24] 3546 	jz	00107$
      001071 78 5E            [12] 3547 	mov	r0,#_DAP_TransferAbort
      001073 E6               [12] 3548 	mov	a,@r0
      001074 60 D0            [24] 3549 	jz	00105$
      001076                       3550 00107$:
                                   3551 ;	src/dap.c:669: if(response_value != DAP_TRANSFER_OK) goto end;
      001076 BB 01 02         [24] 3552 	cjne	r3,#0x01,00270$
      001079 80 03            [24] 3553 	sjmp	00271$
      00107B                       3554 00270$:
      00107B 02 12 0F         [24] 3555 	ljmp	00143$
      00107E                       3556 00271$:
                                   3557 ;	src/dap.c:671: while(request_count--) {
      00107E                       3558 00159$:
      00107E                       3559 00122$:
      00107E 78 5F            [12] 3560 	mov	r0,#_request_count
      001080 86 05            [24] 3561 	mov	ar5,@r0
      001082 78 5F            [12] 3562 	mov	r0,#_request_count
      001084 ED               [12] 3563 	mov	a,r5
      001085 14               [12] 3564 	dec	a
      001086 F6               [12] 3565 	mov	@r0,a
      001087 ED               [12] 3566 	mov	a,r5
      001088 70 03            [24] 3567 	jnz	00272$
      00108A 02 12 0F         [24] 3568 	ljmp	00143$
      00108D                       3569 00272$:
                                   3570 ;	src/dap.c:673: if((request_count == 0U) && ((request_value & DAP_TRANSFER_APnDP) != 0U))
      00108D 78 5F            [12] 3571 	mov	r0,#_request_count
      00108F E6               [12] 3572 	mov	a,@r0
      001090 70 0A            [24] 3573 	jnz	00113$
      001092 78 60            [12] 3574 	mov	r0,#_request_value
      001094 E6               [12] 3575 	mov	a,@r0
      001095 30 E0 04         [24] 3576 	jnb	acc.0,00113$
                                   3577 ;	src/dap.c:674: request_value = DP_RDBUFF | DAP_TRANSFER_RnW;   // Last AP read
      001098 78 60            [12] 3578 	mov	r0,#_request_value
      00109A 76 0E            [12] 3579 	mov	@r0,#0x0e
      00109C                       3580 00113$:
                                   3581 ;	src/dap.c:675: retry = retry_count;
      00109C 78 52            [12] 3582 	mov	r0,#_retry_count
      00109E 86 04            [24] 3583 	mov	ar4,@r0
      0010A0 08               [12] 3584 	inc	r0
      0010A1 86 05            [24] 3585 	mov	ar5,@r0
      0010A3 78 63            [12] 3586 	mov	r0,#_retry
      0010A5 A6 04            [24] 3587 	mov	@r0,ar4
      0010A7 08               [12] 3588 	inc	r0
      0010A8 A6 05            [24] 3589 	mov	@r0,ar5
                                   3590 ;	src/dap.c:676: do {
      0010AA                       3591 00117$:
                                   3592 ;	src/dap.c:677: response_value = SWD_Transfer(request_value, data);
      0010AA 75 2A 00         [24] 3593 	mov	_SWD_Transfer_PARM_2,#_data
      0010AD 75 2B 01         [24] 3594 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      0010B0 78 60            [12] 3595 	mov	r0,#_request_value
      0010B2 86 82            [24] 3596 	mov	dpl,@r0
      0010B4 12 02 81         [24] 3597 	lcall	_SWD_Transfer
      0010B7 AD 82            [24] 3598 	mov	r5,dpl
      0010B9 78 62            [12] 3599 	mov	r0,#_response_value
      0010BB A6 05            [24] 3600 	mov	@r0,ar5
                                   3601 ;	src/dap.c:678: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0010BD BD 02 1B         [24] 3602 	cjne	r5,#0x02,00119$
      0010C0 78 63            [12] 3603 	mov	r0,#_retry
      0010C2 86 03            [24] 3604 	mov	ar3,@r0
      0010C4 08               [12] 3605 	inc	r0
      0010C5 86 04            [24] 3606 	mov	ar4,@r0
      0010C7 78 63            [12] 3607 	mov	r0,#_retry
      0010C9 EB               [12] 3608 	mov	a,r3
      0010CA 24 FF            [12] 3609 	add	a,#0xff
      0010CC F6               [12] 3610 	mov	@r0,a
      0010CD EC               [12] 3611 	mov	a,r4
      0010CE 34 FF            [12] 3612 	addc	a,#0xff
      0010D0 08               [12] 3613 	inc	r0
      0010D1 F6               [12] 3614 	mov	@r0,a
      0010D2 EB               [12] 3615 	mov	a,r3
      0010D3 4C               [12] 3616 	orl	a,r4
      0010D4 60 05            [24] 3617 	jz	00119$
      0010D6 78 5E            [12] 3618 	mov	r0,#_DAP_TransferAbort
      0010D8 E6               [12] 3619 	mov	a,@r0
      0010D9 60 CF            [24] 3620 	jz	00117$
      0010DB                       3621 00119$:
                                   3622 ;	src/dap.c:679: if(response_value != DAP_TRANSFER_OK) goto end;
      0010DB BD 01 02         [24] 3623 	cjne	r5,#0x01,00279$
      0010DE 80 03            [24] 3624 	sjmp	00280$
      0010E0                       3625 00279$:
      0010E0 02 12 0F         [24] 3626 	ljmp	00143$
      0010E3                       3627 00280$:
                                   3628 ;	src/dap.c:682: *res++ = (uint8_t)data[0];
      0010E3 AC 42            [24] 3629 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      0010E5 AD 43            [24] 3630 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      0010E7 90 01 00         [24] 3631 	mov	dptr,#_data
      0010EA E0               [24] 3632 	movx	a,@dptr
      0010EB 8C 82            [24] 3633 	mov	dpl,r4
      0010ED 8D 83            [24] 3634 	mov	dph,r5
      0010EF F0               [24] 3635 	movx	@dptr,a
      0010F0 74 01            [12] 3636 	mov	a,#0x01
      0010F2 2C               [12] 3637 	add	a,r4
      0010F3 F5 42            [12] 3638 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      0010F5 E4               [12] 3639 	clr	a
      0010F6 3D               [12] 3640 	addc	a,r5
      0010F7 F5 43            [12] 3641 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3642 ;	src/dap.c:683: *res++ = (uint8_t)data[1];
      0010F9 AC 42            [24] 3643 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      0010FB AD 43            [24] 3644 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      0010FD 90 01 01         [24] 3645 	mov	dptr,#(_data + 0x0001)
      001100 E0               [24] 3646 	movx	a,@dptr
      001101 8C 82            [24] 3647 	mov	dpl,r4
      001103 8D 83            [24] 3648 	mov	dph,r5
      001105 F0               [24] 3649 	movx	@dptr,a
      001106 74 01            [12] 3650 	mov	a,#0x01
      001108 2C               [12] 3651 	add	a,r4
      001109 F5 42            [12] 3652 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      00110B E4               [12] 3653 	clr	a
      00110C 3D               [12] 3654 	addc	a,r5
      00110D F5 43            [12] 3655 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3656 ;	src/dap.c:684: *res++ = (uint8_t)data[2];
      00110F AC 42            [24] 3657 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      001111 AD 43            [24] 3658 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      001113 90 01 02         [24] 3659 	mov	dptr,#(_data + 0x0002)
      001116 E0               [24] 3660 	movx	a,@dptr
      001117 8C 82            [24] 3661 	mov	dpl,r4
      001119 8D 83            [24] 3662 	mov	dph,r5
      00111B F0               [24] 3663 	movx	@dptr,a
      00111C 74 01            [12] 3664 	mov	a,#0x01
      00111E 2C               [12] 3665 	add	a,r4
      00111F F5 42            [12] 3666 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      001121 E4               [12] 3667 	clr	a
      001122 3D               [12] 3668 	addc	a,r5
      001123 F5 43            [12] 3669 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3670 ;	src/dap.c:685: *res++ = (uint8_t)data[3];
      001125 AC 42            [24] 3671 	mov	r4,_DAP_SWD_TransferBlock_PARM_2
      001127 AD 43            [24] 3672 	mov	r5,(_DAP_SWD_TransferBlock_PARM_2 + 1)
      001129 90 01 03         [24] 3673 	mov	dptr,#(_data + 0x0003)
      00112C E0               [24] 3674 	movx	a,@dptr
      00112D FB               [12] 3675 	mov	r3,a
      00112E 8C 82            [24] 3676 	mov	dpl,r4
      001130 8D 83            [24] 3677 	mov	dph,r5
      001132 F0               [24] 3678 	movx	@dptr,a
      001133 74 01            [12] 3679 	mov	a,#0x01
      001135 2C               [12] 3680 	add	a,r4
      001136 F5 42            [12] 3681 	mov	_DAP_SWD_TransferBlock_PARM_2,a
      001138 E4               [12] 3682 	clr	a
      001139 3D               [12] 3683 	addc	a,r5
      00113A F5 43            [12] 3684 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),a
                                   3685 ;	src/dap.c:686: response_count++;
      00113C 78 61            [12] 3686 	mov	r0,#_response_count
      00113E 06               [12] 3687 	inc	@r0
      00113F 02 10 7E         [24] 3688 	ljmp	00122$
                                   3689 ;	src/dap.c:691: while(request_count--) {
      001142                       3690 00165$:
      001142                       3691 00132$:
      001142 78 5F            [12] 3692 	mov	r0,#_request_count
      001144 86 05            [24] 3693 	mov	ar5,@r0
      001146 78 5F            [12] 3694 	mov	r0,#_request_count
      001148 ED               [12] 3695 	mov	a,r5
      001149 14               [12] 3696 	dec	a
      00114A F6               [12] 3697 	mov	@r0,a
      00114B ED               [12] 3698 	mov	a,r5
      00114C 70 03            [24] 3699 	jnz	00281$
      00114E 02 11 D2         [24] 3700 	ljmp	00134$
      001151                       3701 00281$:
                                   3702 ;	src/dap.c:693: data[0] = (uint8_t)(*(req + 0));
      001151 8E 82            [24] 3703 	mov	dpl,r6
      001153 8F 83            [24] 3704 	mov	dph,r7
      001155 E0               [24] 3705 	movx	a,@dptr
      001156 90 01 00         [24] 3706 	mov	dptr,#_data
      001159 F0               [24] 3707 	movx	@dptr,a
                                   3708 ;	src/dap.c:694: data[1] = (uint8_t)(*(req + 1));
      00115A 8E 82            [24] 3709 	mov	dpl,r6
      00115C 8F 83            [24] 3710 	mov	dph,r7
      00115E A3               [24] 3711 	inc	dptr
      00115F E0               [24] 3712 	movx	a,@dptr
      001160 90 01 01         [24] 3713 	mov	dptr,#(_data + 0x0001)
      001163 F0               [24] 3714 	movx	@dptr,a
                                   3715 ;	src/dap.c:695: data[2] = (uint8_t)(*(req + 2));
      001164 8E 82            [24] 3716 	mov	dpl,r6
      001166 8F 83            [24] 3717 	mov	dph,r7
      001168 A3               [24] 3718 	inc	dptr
      001169 A3               [24] 3719 	inc	dptr
      00116A E0               [24] 3720 	movx	a,@dptr
      00116B 90 01 02         [24] 3721 	mov	dptr,#(_data + 0x0002)
      00116E F0               [24] 3722 	movx	@dptr,a
                                   3723 ;	src/dap.c:696: data[3] = (uint8_t)(*(req + 3));
      00116F 8E 82            [24] 3724 	mov	dpl,r6
      001171 8F 83            [24] 3725 	mov	dph,r7
      001173 A3               [24] 3726 	inc	dptr
      001174 A3               [24] 3727 	inc	dptr
      001175 A3               [24] 3728 	inc	dptr
      001176 E0               [24] 3729 	movx	a,@dptr
      001177 90 01 03         [24] 3730 	mov	dptr,#(_data + 0x0003)
      00117A F0               [24] 3731 	movx	@dptr,a
                                   3732 ;	src/dap.c:697: req += 4;
      00117B 74 04            [12] 3733 	mov	a,#0x04
      00117D 2E               [12] 3734 	add	a,r6
      00117E FE               [12] 3735 	mov	r6,a
      00117F E4               [12] 3736 	clr	a
      001180 3F               [12] 3737 	addc	a,r7
      001181 FF               [12] 3738 	mov	r7,a
                                   3739 ;	src/dap.c:700: retry = retry_count;
      001182 78 52            [12] 3740 	mov	r0,#_retry_count
      001184 86 04            [24] 3741 	mov	ar4,@r0
      001186 08               [12] 3742 	inc	r0
      001187 86 05            [24] 3743 	mov	ar5,@r0
      001189 78 63            [12] 3744 	mov	r0,#_retry
      00118B A6 04            [24] 3745 	mov	@r0,ar4
      00118D 08               [12] 3746 	inc	r0
      00118E A6 05            [24] 3747 	mov	@r0,ar5
                                   3748 ;	src/dap.c:701: do {
      001190                       3749 00127$:
                                   3750 ;	src/dap.c:702: response_value = SWD_Transfer(request_value, data);
      001190 75 2A 00         [24] 3751 	mov	_SWD_Transfer_PARM_2,#_data
      001193 75 2B 01         [24] 3752 	mov	(_SWD_Transfer_PARM_2 + 1),#(_data >> 8)
      001196 78 60            [12] 3753 	mov	r0,#_request_value
      001198 86 82            [24] 3754 	mov	dpl,@r0
      00119A C0 07            [24] 3755 	push	ar7
      00119C C0 06            [24] 3756 	push	ar6
      00119E 12 02 81         [24] 3757 	lcall	_SWD_Transfer
      0011A1 AD 82            [24] 3758 	mov	r5,dpl
      0011A3 D0 06            [24] 3759 	pop	ar6
      0011A5 D0 07            [24] 3760 	pop	ar7
      0011A7 78 62            [12] 3761 	mov	r0,#_response_value
      0011A9 A6 05            [24] 3762 	mov	@r0,ar5
                                   3763 ;	src/dap.c:703: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0011AB BD 02 1B         [24] 3764 	cjne	r5,#0x02,00129$
      0011AE 78 63            [12] 3765 	mov	r0,#_retry
      0011B0 86 03            [24] 3766 	mov	ar3,@r0
      0011B2 08               [12] 3767 	inc	r0
      0011B3 86 04            [24] 3768 	mov	ar4,@r0
      0011B5 78 63            [12] 3769 	mov	r0,#_retry
      0011B7 EB               [12] 3770 	mov	a,r3
      0011B8 24 FF            [12] 3771 	add	a,#0xff
      0011BA F6               [12] 3772 	mov	@r0,a
      0011BB EC               [12] 3773 	mov	a,r4
      0011BC 34 FF            [12] 3774 	addc	a,#0xff
      0011BE 08               [12] 3775 	inc	r0
      0011BF F6               [12] 3776 	mov	@r0,a
      0011C0 EB               [12] 3777 	mov	a,r3
      0011C1 4C               [12] 3778 	orl	a,r4
      0011C2 60 05            [24] 3779 	jz	00129$
      0011C4 78 5E            [12] 3780 	mov	r0,#_DAP_TransferAbort
      0011C6 E6               [12] 3781 	mov	a,@r0
      0011C7 60 C7            [24] 3782 	jz	00127$
      0011C9                       3783 00129$:
                                   3784 ;	src/dap.c:704: if(response_value != DAP_TRANSFER_OK) goto end;
      0011C9 BD 01 43         [24] 3785 	cjne	r5,#0x01,00143$
                                   3786 ;	src/dap.c:705: response_count++;
      0011CC 78 61            [12] 3787 	mov	r0,#_response_count
      0011CE 06               [12] 3788 	inc	@r0
      0011CF 02 11 42         [24] 3789 	ljmp	00132$
      0011D2                       3790 00134$:
                                   3791 ;	src/dap.c:708: retry = retry_count;
      0011D2 78 52            [12] 3792 	mov	r0,#_retry_count
      0011D4 86 06            [24] 3793 	mov	ar6,@r0
      0011D6 08               [12] 3794 	inc	r0
      0011D7 86 07            [24] 3795 	mov	ar7,@r0
      0011D9 78 63            [12] 3796 	mov	r0,#_retry
      0011DB A6 06            [24] 3797 	mov	@r0,ar6
      0011DD 08               [12] 3798 	inc	r0
      0011DE A6 07            [24] 3799 	mov	@r0,ar7
                                   3800 ;	src/dap.c:709: do {
      0011E0                       3801 00137$:
                                   3802 ;	src/dap.c:710: response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL);
      0011E0 E4               [12] 3803 	clr	a
      0011E1 F5 2A            [12] 3804 	mov	_SWD_Transfer_PARM_2,a
      0011E3 F5 2B            [12] 3805 	mov	(_SWD_Transfer_PARM_2 + 1),a
      0011E5 75 82 0E         [24] 3806 	mov	dpl,#0x0e
      0011E8 12 02 81         [24] 3807 	lcall	_SWD_Transfer
      0011EB AF 82            [24] 3808 	mov	r7,dpl
      0011ED 78 62            [12] 3809 	mov	r0,#_response_value
      0011EF A6 07            [24] 3810 	mov	@r0,ar7
                                   3811 ;	src/dap.c:711: } while((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort);
      0011F1 BF 02 1B         [24] 3812 	cjne	r7,#0x02,00143$
      0011F4 78 63            [12] 3813 	mov	r0,#_retry
      0011F6 86 06            [24] 3814 	mov	ar6,@r0
      0011F8 08               [12] 3815 	inc	r0
      0011F9 86 07            [24] 3816 	mov	ar7,@r0
      0011FB 78 63            [12] 3817 	mov	r0,#_retry
      0011FD EE               [12] 3818 	mov	a,r6
      0011FE 24 FF            [12] 3819 	add	a,#0xff
      001200 F6               [12] 3820 	mov	@r0,a
      001201 EF               [12] 3821 	mov	a,r7
      001202 34 FF            [12] 3822 	addc	a,#0xff
      001204 08               [12] 3823 	inc	r0
      001205 F6               [12] 3824 	mov	@r0,a
      001206 EE               [12] 3825 	mov	a,r6
      001207 4F               [12] 3826 	orl	a,r7
      001208 60 05            [24] 3827 	jz	00143$
      00120A 78 5E            [12] 3828 	mov	r0,#_DAP_TransferAbort
      00120C E6               [12] 3829 	mov	a,@r0
      00120D 60 D1            [24] 3830 	jz	00137$
                                   3831 ;	src/dap.c:714: end:
      00120F                       3832 00143$:
                                   3833 ;	src/dap.c:715: *(response_head + 0) = response_count;
      00120F 85 44 82         [24] 3834 	mov	dpl,_DAP_SWD_TransferBlock_response_head_65536_175
      001212 85 45 83         [24] 3835 	mov	dph,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      001215 78 61            [12] 3836 	mov	r0,#_response_count
      001217 E6               [12] 3837 	mov	a,@r0
      001218 F0               [24] 3838 	movx	@dptr,a
                                   3839 ;	src/dap.c:716: *(response_head + 1) = 0; 
      001219 85 44 82         [24] 3840 	mov	dpl,_DAP_SWD_TransferBlock_response_head_65536_175
      00121C 85 45 83         [24] 3841 	mov	dph,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      00121F A3               [24] 3842 	inc	dptr
      001220 E4               [12] 3843 	clr	a
      001221 F0               [24] 3844 	movx	@dptr,a
                                   3845 ;	src/dap.c:717: *(response_head + 2) = response_value;
      001222 85 44 82         [24] 3846 	mov	dpl,_DAP_SWD_TransferBlock_response_head_65536_175
      001225 85 45 83         [24] 3847 	mov	dph,(_DAP_SWD_TransferBlock_response_head_65536_175 + 1)
      001228 A3               [24] 3848 	inc	dptr
      001229 A3               [24] 3849 	inc	dptr
      00122A 78 62            [12] 3850 	mov	r0,#_response_value
      00122C E6               [12] 3851 	mov	a,@r0
      00122D F0               [24] 3852 	movx	@dptr,a
                                   3853 ;	src/dap.c:718: return((uint8_t)(res - response_head));
      00122E AF 42            [24] 3854 	mov	r7,_DAP_SWD_TransferBlock_PARM_2
      001230 AC 44            [24] 3855 	mov	r4,_DAP_SWD_TransferBlock_response_head_65536_175
      001232 EF               [12] 3856 	mov	a,r7
      001233 C3               [12] 3857 	clr	c
      001234 9C               [12] 3858 	subb	a,r4
      001235 F5 82            [12] 3859 	mov	dpl,a
                                   3860 ;	src/dap.c:719: }
      001237 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 ;	-----------------------------------------
      001238                       3873 _DAP_TransferBlock:
      001238 AE 82            [24] 3874 	mov	r6,dpl
      00123A AF 83            [24] 3875 	mov	r7,dph
                                   3876 ;	src/dap.c:730: switch(debug_port) {
      00123C 78 51            [12] 3877 	mov	r0,#_debug_port
      00123E B6 01 11         [24] 3878 	cjne	@r0,#0x01,00102$
                                   3879 ;	src/dap.c:732: num = DAP_SWD_TransferBlock(req, res);
      001241 85 46 42         [24] 3880 	mov	_DAP_SWD_TransferBlock_PARM_2,_DAP_TransferBlock_PARM_2
      001244 85 47 43         [24] 3881 	mov	(_DAP_SWD_TransferBlock_PARM_2 + 1),(_DAP_TransferBlock_PARM_2 + 1)
      001247 8E 82            [24] 3882 	mov	dpl,r6
      001249 8F 83            [24] 3883 	mov	dph,r7
      00124B 12 0F D7         [24] 3884 	lcall	_DAP_SWD_TransferBlock
      00124E AF 82            [24] 3885 	mov	r7,dpl
                                   3886 ;	src/dap.c:733: break;
                                   3887 ;	src/dap.c:734: default:
      001250 80 19            [24] 3888 	sjmp	00103$
      001252                       3889 00102$:
                                   3890 ;	src/dap.c:735: *(res + 0) = 0U;    // res count [7:0]
      001252 AD 46            [24] 3891 	mov	r5,_DAP_TransferBlock_PARM_2
      001254 AE 47            [24] 3892 	mov	r6,(_DAP_TransferBlock_PARM_2 + 1)
      001256 8D 82            [24] 3893 	mov	dpl,r5
      001258 8E 83            [24] 3894 	mov	dph,r6
      00125A E4               [12] 3895 	clr	a
      00125B F0               [24] 3896 	movx	@dptr,a
                                   3897 ;	src/dap.c:736: *(res + 1) = 0U;    // res count[15:8]
      00125C 8D 82            [24] 3898 	mov	dpl,r5
      00125E 8E 83            [24] 3899 	mov	dph,r6
      001260 A3               [24] 3900 	inc	dptr
      001261 F0               [24] 3901 	movx	@dptr,a
                                   3902 ;	src/dap.c:737: *(res + 2) = 0U;    // res value
      001262 8D 82            [24] 3903 	mov	dpl,r5
      001264 8E 83            [24] 3904 	mov	dph,r6
      001266 A3               [24] 3905 	inc	dptr
      001267 A3               [24] 3906 	inc	dptr
      001268 F0               [24] 3907 	movx	@dptr,a
                                   3908 ;	src/dap.c:738: num = 3U;
      001269 7F 03            [12] 3909 	mov	r7,#0x03
                                   3910 ;	src/dap.c:740: }
      00126B                       3911 00103$:
                                   3912 ;	src/dap.c:741: return num;
      00126B 8F 82            [24] 3913 	mov	dpl,r7
                                   3914 ;	src/dap.c:742: }
      00126D 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 ;	-----------------------------------------
      00126E                       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;
      00126E 90 00 0A         [24] 3934 	mov	dptr,#_EP1_buffer
      001271 E0               [24] 3935 	movx	a,@dptr
      001272 90 00 4A         [24] 3936 	mov	dptr,#(_EP1_buffer + 0x0040)
      001275 F0               [24] 3937 	movx	@dptr,a
                                   3938 ;	src/dap.c:753: switch(*req++) {
      001276 90 00 0A         [24] 3939 	mov	dptr,#_EP1_buffer
      001279 E0               [24] 3940 	movx	a,@dptr
      00127A FF               [12] 3941 	mov	r7,a
      00127B 60 6B            [24] 3942 	jz	00103$
      00127D BF 01 03         [24] 3943 	cjne	r7,#0x01,00202$
      001280 02 13 0A         [24] 3944 	ljmp	00104$
      001283                       3945 00202$:
      001283 BF 02 03         [24] 3946 	cjne	r7,#0x02,00203$
      001286 02 13 1B         [24] 3947 	ljmp	00105$
      001289                       3948 00203$:
      001289 BF 03 03         [24] 3949 	cjne	r7,#0x03,00204$
      00128C 02 13 2C         [24] 3950 	ljmp	00106$
      00128F                       3951 00204$:
      00128F BF 04 03         [24] 3952 	cjne	r7,#0x04,00205$
      001292 02 14 48         [24] 3953 	ljmp	00117$
      001295                       3954 00205$:
      001295 BF 05 02         [24] 3955 	cjne	r7,#0x05,00206$
      001298 80 2C            [24] 3956 	sjmp	00101$
      00129A                       3957 00206$:
      00129A BF 06 02         [24] 3958 	cjne	r7,#0x06,00207$
      00129D 80 38            [24] 3959 	sjmp	00102$
      00129F                       3960 00207$:
      00129F BF 08 03         [24] 3961 	cjne	r7,#0x08,00208$
      0012A2 02 14 58         [24] 3962 	ljmp	00118$
      0012A5                       3963 00208$:
      0012A5 BF 10 03         [24] 3964 	cjne	r7,#0x10,00209$
      0012A8 02 13 37         [24] 3965 	ljmp	00107$
      0012AB                       3966 00209$:
      0012AB BF 11 03         [24] 3967 	cjne	r7,#0x11,00210$
      0012AE 02 13 48         [24] 3968 	ljmp	00108$
      0012B1                       3969 00210$:
      0012B1 BF 12 03         [24] 3970 	cjne	r7,#0x12,00211$
      0012B4 02 14 1F         [24] 3971 	ljmp	00114$
      0012B7                       3972 00211$:
      0012B7 BF 13 03         [24] 3973 	cjne	r7,#0x13,00212$
      0012BA 02 14 2F         [24] 3974 	ljmp	00115$
      0012BD                       3975 00212$:
      0012BD BF 1D 03         [24] 3976 	cjne	r7,#0x1d,00213$
      0012C0 02 14 38         [24] 3977 	ljmp	00116$
      0012C3                       3978 00213$:
      0012C3 02 14 61         [24] 3979 	ljmp	00121$
                                   3980 ;	src/dap.c:754: case ID_DAP_Transfer:
      0012C6                       3981 00101$:
                                   3982 ;	src/dap.c:755: num = DAP_SWD_Transfer(req, res);
      0012C6 75 3B 4B         [24] 3983 	mov	_DAP_SWD_Transfer_PARM_2,#(_EP1_buffer + 0x0041)
      0012C9 75 3C 00         [24] 3984 	mov	(_DAP_SWD_Transfer_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0012CC 90 00 0B         [24] 3985 	mov	dptr,#(_EP1_buffer + 0x0001)
      0012CF 12 09 2E         [24] 3986 	lcall	_DAP_SWD_Transfer
      0012D2 AF 82            [24] 3987 	mov	r7,dpl
                                   3988 ;	src/dap.c:756: break;
      0012D4 02 14 69         [24] 3989 	ljmp	00122$
                                   3990 ;	src/dap.c:757: case ID_DAP_TransferBlock:
      0012D7                       3991 00102$:
                                   3992 ;	src/dap.c:758: num = DAP_TransferBlock(req, res);
      0012D7 75 46 4B         [24] 3993 	mov	_DAP_TransferBlock_PARM_2,#(_EP1_buffer + 0x0041)
      0012DA 75 47 00         [24] 3994 	mov	(_DAP_TransferBlock_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      0012DD 90 00 0B         [24] 3995 	mov	dptr,#(_EP1_buffer + 0x0001)
      0012E0 12 12 38         [24] 3996 	lcall	_DAP_TransferBlock
      0012E3 AF 82            [24] 3997 	mov	r7,dpl
                                   3998 ;	src/dap.c:759: break;
      0012E5 02 14 69         [24] 3999 	ljmp	00122$
                                   4000 ;	src/dap.c:760: case ID_DAP_Info:
      0012E8                       4001 00103$:
                                   4002 ;	src/dap.c:761: num = DAP_Info(*req, res + 1);
      0012E8 90 00 0B         [24] 4003 	mov	dptr,#(_EP1_buffer + 0x0001)
      0012EB E0               [24] 4004 	movx	a,@dptr
      0012EC FE               [12] 4005 	mov	r6,a
      0012ED 74 01            [12] 4006 	mov	a,#0x01
      0012EF 24 4B            [12] 4007 	add	a,#(_EP1_buffer + 0x0041)
      0012F1 F5 2C            [12] 4008 	mov	_DAP_Info_PARM_2,a
      0012F3 E4               [12] 4009 	clr	a
      0012F4 34 00            [12] 4010 	addc	a,#((_EP1_buffer + 0x0041) >> 8)
      0012F6 F5 2D            [12] 4011 	mov	(_DAP_Info_PARM_2 + 1),a
      0012F8 8E 82            [24] 4012 	mov	dpl,r6
      0012FA 12 05 FE         [24] 4013 	lcall	_DAP_Info
      0012FD AE 82            [24] 4014 	mov	r6,dpl
                                   4015 ;	src/dap.c:762: *res = (uint8_t)num;
      0012FF 90 00 4B         [24] 4016 	mov	dptr,#(_EP1_buffer + 0x0041)
      001302 EE               [12] 4017 	mov	a,r6
      001303 F0               [24] 4018 	movx	@dptr,a
                                   4019 ;	src/dap.c:763: num++;
      001304 EE               [12] 4020 	mov	a,r6
      001305 04               [12] 4021 	inc	a
      001306 FF               [12] 4022 	mov	r7,a
                                   4023 ;	src/dap.c:764: break;
      001307 02 14 69         [24] 4024 	ljmp	00122$
                                   4025 ;	src/dap.c:765: case ID_DAP_HostStatus:
      00130A                       4026 00104$:
                                   4027 ;	src/dap.c:766: num = DAP_HostStatus(req, res);
      00130A 75 10 4B         [24] 4028 	mov	_DAP_HostStatus_PARM_2,#(_EP1_buffer + 0x0041)
      00130D 75 11 00         [24] 4029 	mov	(_DAP_HostStatus_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      001310 90 00 0B         [24] 4030 	mov	dptr,#(_EP1_buffer + 0x0001)
      001313 12 06 67         [24] 4031 	lcall	_DAP_HostStatus
      001316 AF 82            [24] 4032 	mov	r7,dpl
                                   4033 ;	src/dap.c:767: break;
      001318 02 14 69         [24] 4034 	ljmp	00122$
                                   4035 ;	src/dap.c:768: case ID_DAP_Connect:
      00131B                       4036 00105$:
                                   4037 ;	src/dap.c:769: num = DAP_Connect(req, res);
      00131B 75 2E 4B         [24] 4038 	mov	_DAP_Connect_PARM_2,#(_EP1_buffer + 0x0041)
      00131E 75 2F 00         [24] 4039 	mov	(_DAP_Connect_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      001321 90 00 0B         [24] 4040 	mov	dptr,#(_EP1_buffer + 0x0001)
      001324 12 06 8D         [24] 4041 	lcall	_DAP_Connect
      001327 AF 82            [24] 4042 	mov	r7,dpl
                                   4043 ;	src/dap.c:770: break;
      001329 02 14 69         [24] 4044 	ljmp	00122$
                                   4045 ;	src/dap.c:771: case ID_DAP_Disconnect:
      00132C                       4046 00106$:
                                   4047 ;	src/dap.c:772: num = DAP_Disconnect(res);
      00132C 90 00 4B         [24] 4048 	mov	dptr,#(_EP1_buffer + 0x0041)
      00132F 12 06 CD         [24] 4049 	lcall	_DAP_Disconnect
      001332 AF 82            [24] 4050 	mov	r7,dpl
                                   4051 ;	src/dap.c:773: break;
      001334 02 14 69         [24] 4052 	ljmp	00122$
                                   4053 ;	src/dap.c:774: case ID_DAP_SWJ_Pins:
      001337                       4054 00107$:
                                   4055 ;	src/dap.c:775: num = DAP_SWJ_Pins(req, res);
      001337 75 30 4B         [24] 4056 	mov	_DAP_SWJ_Pins_PARM_2,#(_EP1_buffer + 0x0041)
      00133A 75 31 00         [24] 4057 	mov	(_DAP_SWJ_Pins_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      00133D 90 00 0B         [24] 4058 	mov	dptr,#(_EP1_buffer + 0x0001)
      001340 12 06 EB         [24] 4059 	lcall	_DAP_SWJ_Pins
      001343 AF 82            [24] 4060 	mov	r7,dpl
                                   4061 ;	src/dap.c:776: break;
      001345 02 14 69         [24] 4062 	ljmp	00122$
                                   4063 ;	src/dap.c:777: case ID_DAP_SWJ_Clock: {
      001348                       4064 00108$:
                                   4065 ;	src/dap.c:778: uint32_t requested_hz = (uint32_t)req[0] | ((uint32_t)req[1]<<8)
      001348 90 00 0B         [24] 4066 	mov	dptr,#(_EP1_buffer + 0x0001)
      00134B E0               [24] 4067 	movx	a,@dptr
      00134C FE               [12] 4068 	mov	r6,a
      00134D 8E 4C            [24] 4069 	mov	_DAP_Thread_sloc0_1_0,r6
      00134F 75 4D 00         [24] 4070 	mov	(_DAP_Thread_sloc0_1_0 + 1),#0x00
      001352 75 4E 00         [24] 4071 	mov	(_DAP_Thread_sloc0_1_0 + 2),#0x00
      001355 75 4F 00         [24] 4072 	mov	(_DAP_Thread_sloc0_1_0 + 3),#0x00
      001358 90 00 0C         [24] 4073 	mov	dptr,#(_EP1_buffer + 0x0002)
      00135B E0               [24] 4074 	movx	a,@dptr
      00135C F8               [12] 4075 	mov	r0,a
      00135D 79 00            [12] 4076 	mov	r1,#0x00
      00135F 7A 00            [12] 4077 	mov	r2,#0x00
      001361 8A 06            [24] 4078 	mov	ar6,r2
      001363 89 02            [24] 4079 	mov	ar2,r1
      001365 88 01            [24] 4080 	mov	ar1,r0
      001367 E4               [12] 4081 	clr	a
      001368 42 4C            [12] 4082 	orl	_DAP_Thread_sloc0_1_0,a
      00136A E9               [12] 4083 	mov	a,r1
      00136B 42 4D            [12] 4084 	orl	(_DAP_Thread_sloc0_1_0 + 1),a
      00136D EA               [12] 4085 	mov	a,r2
      00136E 42 4E            [12] 4086 	orl	(_DAP_Thread_sloc0_1_0 + 2),a
      001370 EE               [12] 4087 	mov	a,r6
      001371 42 4F            [12] 4088 	orl	(_DAP_Thread_sloc0_1_0 + 3),a
      001373 90 00 0D         [24] 4089 	mov	dptr,#(_EP1_buffer + 0x0003)
      001376 E0               [24] 4090 	movx	a,@dptr
      001377 FB               [12] 4091 	mov	r3,a
      001378 7C 00            [12] 4092 	mov	r4,#0x00
      00137A 8C 06            [24] 4093 	mov	ar6,r4
      00137C 8B 05            [24] 4094 	mov	ar5,r3
      00137E E4               [12] 4095 	clr	a
      00137F FB               [12] 4096 	mov	r3,a
      001380 FC               [12] 4097 	mov	r4,a
      001381 42 4C            [12] 4098 	orl	_DAP_Thread_sloc0_1_0,a
      001383 EC               [12] 4099 	mov	a,r4
      001384 42 4D            [12] 4100 	orl	(_DAP_Thread_sloc0_1_0 + 1),a
      001386 ED               [12] 4101 	mov	a,r5
      001387 42 4E            [12] 4102 	orl	(_DAP_Thread_sloc0_1_0 + 2),a
      001389 EE               [12] 4103 	mov	a,r6
      00138A 42 4F            [12] 4104 	orl	(_DAP_Thread_sloc0_1_0 + 3),a
      00138C 90 00 0E         [24] 4105 	mov	dptr,#(_EP1_buffer + 0x0004)
      00138F E0               [24] 4106 	movx	a,@dptr
      001390 FE               [12] 4107 	mov	r6,a
      001391 E4               [12] 4108 	clr	a
      001392 F8               [12] 4109 	mov	r0,a
      001393 F9               [12] 4110 	mov	r1,a
      001394 FA               [12] 4111 	mov	r2,a
      001395 E8               [12] 4112 	mov	a,r0
      001396 45 4C            [12] 4113 	orl	a,_DAP_Thread_sloc0_1_0
      001398 F5 48            [12] 4114 	mov	_DAP_Thread_requested_hz_196608_191,a
      00139A E9               [12] 4115 	mov	a,r1
      00139B 45 4D            [12] 4116 	orl	a,(_DAP_Thread_sloc0_1_0 + 1)
      00139D F5 49            [12] 4117 	mov	(_DAP_Thread_requested_hz_196608_191 + 1),a
      00139F EA               [12] 4118 	mov	a,r2
      0013A0 45 4E            [12] 4119 	orl	a,(_DAP_Thread_sloc0_1_0 + 2)
      0013A2 F5 4A            [12] 4120 	mov	(_DAP_Thread_requested_hz_196608_191 + 2),a
      0013A4 EE               [12] 4121 	mov	a,r6
      0013A5 45 4F            [12] 4122 	orl	a,(_DAP_Thread_sloc0_1_0 + 3)
      0013A7 F5 4B            [12] 4123 	mov	(_DAP_Thread_requested_hz_196608_191 + 3),a
                                   4124 ;	src/dap.c:781: if(requested_hz < 8UL) { *res = DAP_ERROR; }
      0013A9 C3               [12] 4125 	clr	c
      0013AA E5 48            [12] 4126 	mov	a,_DAP_Thread_requested_hz_196608_191
      0013AC 94 08            [12] 4127 	subb	a,#0x08
      0013AE E5 49            [12] 4128 	mov	a,(_DAP_Thread_requested_hz_196608_191 + 1)
      0013B0 94 00            [12] 4129 	subb	a,#0x00
      0013B2 E5 4A            [12] 4130 	mov	a,(_DAP_Thread_requested_hz_196608_191 + 2)
      0013B4 94 00            [12] 4131 	subb	a,#0x00
      0013B6 E5 4B            [12] 4132 	mov	a,(_DAP_Thread_requested_hz_196608_191 + 3)
      0013B8 94 00            [12] 4133 	subb	a,#0x00
      0013BA 50 08            [24] 4134 	jnc	00112$
      0013BC 90 00 4B         [24] 4135 	mov	dptr,#(_EP1_buffer + 0x0041)
      0013BF 74 FF            [12] 4136 	mov	a,#0xff
      0013C1 F0               [24] 4137 	movx	@dptr,a
      0013C2 80 57            [24] 4138 	sjmp	00113$
      0013C4                       4139 00112$:
                                   4140 ;	src/dap.c:783: if(requested_hz > 100000UL) requested_hz = 100000UL;
      0013C4 C3               [12] 4141 	clr	c
      0013C5 74 A0            [12] 4142 	mov	a,#0xa0
      0013C7 95 48            [12] 4143 	subb	a,_DAP_Thread_requested_hz_196608_191
      0013C9 74 86            [12] 4144 	mov	a,#0x86
      0013CB 95 49            [12] 4145 	subb	a,(_DAP_Thread_requested_hz_196608_191 + 1)
      0013CD 74 01            [12] 4146 	mov	a,#0x01
      0013CF 95 4A            [12] 4147 	subb	a,(_DAP_Thread_requested_hz_196608_191 + 2)
      0013D1 E4               [12] 4148 	clr	a
      0013D2 95 4B            [12] 4149 	subb	a,(_DAP_Thread_requested_hz_196608_191 + 3)
      0013D4 50 0C            [24] 4150 	jnc	00110$
      0013D6 75 48 A0         [24] 4151 	mov	_DAP_Thread_requested_hz_196608_191,#0xa0
      0013D9 75 49 86         [24] 4152 	mov	(_DAP_Thread_requested_hz_196608_191 + 1),#0x86
      0013DC 75 4A 01         [24] 4153 	mov	(_DAP_Thread_requested_hz_196608_191 + 2),#0x01
      0013DF 75 4B 00         [24] 4154 	mov	(_DAP_Thread_requested_hz_196608_191 + 3),#0x00
      0013E2                       4155 00110$:
                                   4156 ;	src/dap.c:784: half = (500000UL + requested_hz - 1UL) / requested_hz;
      0013E2 74 1F            [12] 4157 	mov	a,#0x1f
      0013E4 25 48            [12] 4158 	add	a,_DAP_Thread_requested_hz_196608_191
      0013E6 F8               [12] 4159 	mov	r0,a
      0013E7 74 A1            [12] 4160 	mov	a,#0xa1
      0013E9 35 49            [12] 4161 	addc	a,(_DAP_Thread_requested_hz_196608_191 + 1)
      0013EB F9               [12] 4162 	mov	r1,a
      0013EC 74 07            [12] 4163 	mov	a,#0x07
      0013EE 35 4A            [12] 4164 	addc	a,(_DAP_Thread_requested_hz_196608_191 + 2)
      0013F0 FA               [12] 4165 	mov	r2,a
      0013F1 E4               [12] 4166 	clr	a
      0013F2 35 4B            [12] 4167 	addc	a,(_DAP_Thread_requested_hz_196608_191 + 3)
      0013F4 FE               [12] 4168 	mov	r6,a
      0013F5 85 48 10         [24] 4169 	mov	__divulong_PARM_2,_DAP_Thread_requested_hz_196608_191
      0013F8 85 49 11         [24] 4170 	mov	(__divulong_PARM_2 + 1),(_DAP_Thread_requested_hz_196608_191 + 1)
      0013FB 85 4A 12         [24] 4171 	mov	(__divulong_PARM_2 + 2),(_DAP_Thread_requested_hz_196608_191 + 2)
      0013FE 85 4B 13         [24] 4172 	mov	(__divulong_PARM_2 + 3),(_DAP_Thread_requested_hz_196608_191 + 3)
      001401 88 82            [24] 4173 	mov	dpl,r0
      001403 89 83            [24] 4174 	mov	dph,r1
      001405 8A F0            [24] 4175 	mov	b,r2
      001407 EE               [12] 4176 	mov	a,r6
      001408 12 18 A2         [24] 4177 	lcall	__divulong
      00140B AB 82            [24] 4178 	mov	r3,dpl
      00140D AC 83            [24] 4179 	mov	r4,dph
      00140F AD F0            [24] 4180 	mov	r5,b
      001411 FE               [12] 4181 	mov	r6,a
                                   4182 ;	src/dap.c:785: ring_swd_half_period_us = (uint16_t)half;
      001412 8B 22            [24] 4183 	mov	_ring_swd_half_period_us,r3
      001414 8C 23            [24] 4184 	mov	(_ring_swd_half_period_us + 1),r4
                                   4185 ;	src/dap.c:786: *res = DAP_OK;
      001416 90 00 4B         [24] 4186 	mov	dptr,#(_EP1_buffer + 0x0041)
      001419 E4               [12] 4187 	clr	a
      00141A F0               [24] 4188 	movx	@dptr,a
      00141B                       4189 00113$:
                                   4190 ;	src/dap.c:788: num = 1;
      00141B 7F 01            [12] 4191 	mov	r7,#0x01
                                   4192 ;	src/dap.c:789: break;
                                   4193 ;	src/dap.c:791: case ID_DAP_SWJ_Sequence:
      00141D 80 4A            [24] 4194 	sjmp	00122$
      00141F                       4195 00114$:
                                   4196 ;	src/dap.c:792: num = DAP_SWJ_Sequence(req, res);
      00141F 75 37 4B         [24] 4197 	mov	_DAP_SWJ_Sequence_PARM_2,#(_EP1_buffer + 0x0041)
      001422 75 38 00         [24] 4198 	mov	(_DAP_SWJ_Sequence_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      001425 90 00 0B         [24] 4199 	mov	dptr,#(_EP1_buffer + 0x0001)
      001428 12 08 05         [24] 4200 	lcall	_DAP_SWJ_Sequence
      00142B AF 82            [24] 4201 	mov	r7,dpl
                                   4202 ;	src/dap.c:793: break;
                                   4203 ;	src/dap.c:794: case ID_DAP_SWD_Configure:
      00142D 80 3A            [24] 4204 	sjmp	00122$
      00142F                       4205 00115$:
                                   4206 ;	src/dap.c:795: *res = DAP_OK;
      00142F 90 00 4B         [24] 4207 	mov	dptr,#(_EP1_buffer + 0x0041)
      001432 E4               [12] 4208 	clr	a
      001433 F0               [24] 4209 	movx	@dptr,a
                                   4210 ;	src/dap.c:796: num = 1;
      001434 7F 01            [12] 4211 	mov	r7,#0x01
                                   4212 ;	src/dap.c:797: break;
                                   4213 ;	src/dap.c:798: case ID_DAP_SWD_Sequence:
      001436 80 31            [24] 4214 	sjmp	00122$
      001438                       4215 00116$:
                                   4216 ;	src/dap.c:799: num = DAP_SWD_Sequence(req, res);
      001438 75 39 4B         [24] 4217 	mov	_DAP_SWD_Sequence_PARM_2,#(_EP1_buffer + 0x0041)
      00143B 75 3A 00         [24] 4218 	mov	(_DAP_SWD_Sequence_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      00143E 90 00 0B         [24] 4219 	mov	dptr,#(_EP1_buffer + 0x0001)
      001441 12 08 2B         [24] 4220 	lcall	_DAP_SWD_Sequence
      001444 AF 82            [24] 4221 	mov	r7,dpl
                                   4222 ;	src/dap.c:800: break;
                                   4223 ;	src/dap.c:801: case ID_DAP_TransferConfigure:
      001446 80 21            [24] 4224 	sjmp	00122$
      001448                       4225 00117$:
                                   4226 ;	src/dap.c:802: num = DAP_TransferConfigure(req, res);
      001448 75 10 4B         [24] 4227 	mov	_DAP_TransferConfigure_PARM_2,#(_EP1_buffer + 0x0041)
      00144B 75 11 00         [24] 4228 	mov	(_DAP_TransferConfigure_PARM_2 + 1),#((_EP1_buffer + 0x0041) >> 8)
      00144E 90 00 0B         [24] 4229 	mov	dptr,#(_EP1_buffer + 0x0001)
      001451 12 08 DA         [24] 4230 	lcall	_DAP_TransferConfigure
      001454 AF 82            [24] 4231 	mov	r7,dpl
                                   4232 ;	src/dap.c:803: break;
                                   4233 ;	src/dap.c:804: case ID_DAP_WriteABORT:
      001456 80 11            [24] 4234 	sjmp	00122$
      001458                       4235 00118$:
                                   4236 ;	src/dap.c:805: *res = DAP_OK;
      001458 90 00 4B         [24] 4237 	mov	dptr,#(_EP1_buffer + 0x0041)
      00145B E4               [12] 4238 	clr	a
      00145C F0               [24] 4239 	movx	@dptr,a
                                   4240 ;	src/dap.c:806: num = 1;
      00145D 7F 01            [12] 4241 	mov	r7,#0x01
                                   4242 ;	src/dap.c:807: break;
                                   4243 ;	src/dap.c:810: default:
      00145F 80 08            [24] 4244 	sjmp	00122$
      001461                       4245 00121$:
                                   4246 ;	src/dap.c:811: *(res - 1) = ID_DAP_Invalid;
      001461 90 00 4A         [24] 4247 	mov	dptr,#(_EP1_buffer + 0x0040)
      001464 74 FF            [12] 4248 	mov	a,#0xff
      001466 F0               [24] 4249 	movx	@dptr,a
                                   4250 ;	src/dap.c:812: num = 1;
      001467 7F 01            [12] 4251 	mov	r7,#0x01
                                   4252 ;	src/dap.c:814: }
      001469                       4253 00122$:
                                   4254 ;	src/dap.c:815: return(num + 1);
      001469 EF               [12] 4255 	mov	a,r7
      00146A 04               [12] 4256 	inc	a
      00146B F5 82            [12] 4257 	mov	dpl,a
                                   4258 ;	src/dap.c:816: }
      00146D 22               [24] 4259 	ret
                                   4260 	.area CSEG    (CODE)
                                   4261 	.area CONST   (CODE)
                                   4262 	.area CONST   (CODE)
      001942                       4263 __str_0:
      001942 31 2E 32 2E 31        4264 	.ascii "1.2.1"
      001947 00                    4265 	.db 0x00
                                   4266 	.area CSEG    (CODE)
                                   4267 	.area CABS    (ABS,CODE)