; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\usb_regs.o --depend=.\Obj\usb_regs.d --device=DARMSTM --apcs=interwork -O3 -I.\usb_library\inc -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DVECT_TAB_FLASH --omf_browse=.\Obj\usb_regs.crf usb_library\src\usb_regs.c]
                          THUMB

                          AREA ||i.ByteSwap||, CODE, READONLY, ALIGN=1

                  ByteSwap PROC
;;;738    *******************************************************************************/
;;;739    u16 ByteSwap(u16 wSwW)
000000  b2c1              UXTB     r1,r0
;;;740    {
;;;741      u8 bTemp;
;;;742      u16 wRet;
;;;743      bTemp = (u8)(wSwW & 0xff);
;;;744      wRet =  (wSwW >> 8) | ((u16)bTemp << 8);
000002  0a00              LSRS     r0,r0,#8
000004  ea402001          ORR      r0,r0,r1,LSL #8
;;;745      return(wRet);
;;;746    }
000008  4770              BX       lr
;;;747    
                          ENDP


                          AREA ||i.ClearDTOG_RX||, CODE, READONLY, ALIGN=2

                  ClearDTOG_RX PROC
;;;420    *******************************************************************************/
;;;421    void ClearDTOG_RX(u8 bEpNum)
000000  4908              LDR      r1,|L2.36|
;;;422    {
;;;423      _ClearDTOG_RX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  0449              LSLS     r1,r1,#17
00000c  d509              BPL      |L2.34|
00000e  f8d01c00          LDR      r1,[r0,#0xc00]
000012  f648728f          MOV      r2,#0x8f8f
000016  b289              UXTH     r1,r1
000018  4011              ANDS     r1,r1,r2
00001a  f4414180          ORR      r1,r1,#0x4000
00001e  f8c01c00          STR      r1,[r0,#0xc00]
                  |L2.34|
;;;424    }
000022  4770              BX       lr
;;;425    /*******************************************************************************
                          ENDP

                  |L2.36|
                          DCD      0x40005000

                          AREA ||i.ClearDTOG_TX||, CODE, READONLY, ALIGN=2

                  ClearDTOG_TX PROC
;;;431    *******************************************************************************/
;;;432    void ClearDTOG_TX(u8 bEpNum)
000000  4908              LDR      r1,|L3.36|
;;;433    {
;;;434      _ClearDTOG_TX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  0649              LSLS     r1,r1,#25
00000c  d509              BPL      |L3.34|
00000e  f8d01c00          LDR      r1,[r0,#0xc00]
000012  f648728f          MOV      r2,#0x8f8f
000016  b289              UXTH     r1,r1
000018  4011              ANDS     r1,r1,r2
00001a  f0410140          ORR      r1,r1,#0x40
00001e  f8c01c00          STR      r1,[r0,#0xc00]
                  |L3.34|
;;;435    }
000022  4770              BX       lr
;;;436    /*******************************************************************************
                          ENDP

                  |L3.36|
                          DCD      0x40005000

                          AREA ||i.ClearEPDoubleBuff||, CODE, READONLY, ALIGN=2

                  ClearEPDoubleBuff PROC
;;;343    *******************************************************************************/
;;;344    void ClearEPDoubleBuff(u8 bEpNum)
000000  4905              LDR      r1,|L4.24|
;;;345    {
;;;346      _ClearEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648628f          MOV      r2,#0x8e8f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f8c01c00          STR      r1,[r0,#0xc00]
;;;347    }
000016  4770              BX       lr
;;;348    /*******************************************************************************
                          ENDP

                  |L4.24|
                          DCD      0x40005000

                          AREA ||i.ClearEP_CTR_RX||, CODE, READONLY, ALIGN=2

                  ClearEP_CTR_RX PROC
;;;376    *******************************************************************************/
;;;377    void ClearEP_CTR_RX(u8 bEpNum)
000000  4905              LDR      r1,|L5.24|
;;;378    {
;;;379      _ClearEP_CTR_RX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f640728f          MOV      r2,#0xf8f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f8c01c00          STR      r1,[r0,#0xc00]
;;;380    }
000016  4770              BX       lr
;;;381    /*******************************************************************************
                          ENDP

                  |L5.24|
                          DCD      0x40005000

                          AREA ||i.ClearEP_CTR_TX||, CODE, READONLY, ALIGN=2

                  ClearEP_CTR_TX PROC
;;;387    *******************************************************************************/
;;;388    void ClearEP_CTR_TX(u8 bEpNum)
000000  4905              LDR      r1,|L6.24|
;;;389    {
;;;390      _ClearEP_CTR_TX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648720f          MOV      r2,#0x8f0f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f8c01c00          STR      r1,[r0,#0xc00]
;;;391    }
000016  4770              BX       lr
;;;392    /*******************************************************************************
                          ENDP

                  |L6.24|
                          DCD      0x40005000

                          AREA ||i.ClearEP_KIND||, CODE, READONLY, ALIGN=2

                  ClearEP_KIND PROC
;;;299    *******************************************************************************/
;;;300    void ClearEP_KIND(u8 bEpNum)
000000  4905              LDR      r1,|L7.24|
;;;301    {
;;;302      _ClearEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648628f          MOV      r2,#0x8e8f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f8c01c00          STR      r1,[r0,#0xc00]
;;;303    }
000016  4770              BX       lr
;;;304    /*******************************************************************************
                          ENDP

                  |L7.24|
                          DCD      0x40005000

                          AREA ||i.Clear_Status_Out||, CODE, READONLY, ALIGN=2

                  Clear_Status_Out PROC
;;;310    *******************************************************************************/
;;;311    void Clear_Status_Out(u8 bEpNum)
000000  4905              LDR      r1,|L8.24|
;;;312    {
;;;313      _ClearEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648628f          MOV      r2,#0x8e8f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f8c01c00          STR      r1,[r0,#0xc00]
;;;314    }
000016  4770              BX       lr
;;;315    /*******************************************************************************
                          ENDP

                  |L8.24|
                          DCD      0x40005000

                          AREA ||i.FreeUserBuffer||, CODE, READONLY, ALIGN=2

                  FreeUserBuffer PROC
;;;706    *******************************************************************************/
;;;707    void FreeUserBuffer(u8 bEpNum, u8 bDir)
000000  4b0c              LDR      r3,|L9.52|
;;;708    {
;;;709      if (bDir == EP_DBUF_OUT)
;;;710      { /* OUT double buffered endpoint */
;;;711        _ToggleDTOG_TX(bEpNum);
000002  f648728f          MOV      r2,#0x8f8f
000006  eb030080          ADD      r0,r3,r0,LSL #2
00000a  2901              CMP      r1,#1                 ;709
00000c  d106              BNE      |L9.28|
00000e  f8d01c00          LDR      r1,[r0,#0xc00]
000012  b289              UXTH     r1,r1
000014  4011              ANDS     r1,r1,r2
000016  f0410140          ORR      r1,r1,#0x40
00001a  e007              B        |L9.44|
                  |L9.28|
;;;712      }
;;;713      else if (bDir == EP_DBUF_IN)
00001c  2902              CMP      r1,#2
00001e  d107              BNE      |L9.48|
;;;714      { /* IN double buffered endpoint */
;;;715        _ToggleDTOG_RX(bEpNum);
000020  f8d01c00          LDR      r1,[r0,#0xc00]
000024  b289              UXTH     r1,r1
000026  4011              ANDS     r1,r1,r2
000028  f4414180          ORR      r1,r1,#0x4000
                  |L9.44|
00002c  f8c01c00          STR      r1,[r0,#0xc00]        ;711
                  |L9.48|
;;;716      }
;;;717    }
000030  4770              BX       lr
;;;718    
                          ENDP

000032  0000              DCW      0x0000
                  |L9.52|
                          DCD      0x40005000

                          AREA ||i.GetBTABLE||, CODE, READONLY, ALIGN=2

                  GetBTABLE PROC
;;;129    *******************************************************************************/
;;;130    u16 GetBTABLE(void)
000000  4801              LDR      r0,|L10.8|
;;;131    {
;;;132      return(_GetBTABLE());
000002  6800              LDR      r0,[r0,#0]
000004  b280              UXTH     r0,r0
;;;133    }
000006  4770              BX       lr
;;;134    
                          ENDP

                  |L10.8|
                          DCD      0x40005c50

                          AREA ||i.GetCNTR||, CODE, READONLY, ALIGN=2

                  GetCNTR PROC
;;;45     *******************************************************************************/
;;;46     u16 GetCNTR(void)
000000  4801              LDR      r0,|L11.8|
;;;47     {
;;;48       return(_GetCNTR());
000002  6800              LDR      r0,[r0,#0]
000004  b280              UXTH     r0,r0
;;;49     }
000006  4770              BX       lr
;;;50     
                          ENDP

                  |L11.8|
                          DCD      0x40005c40

                          AREA ||i.GetDADDR||, CODE, READONLY, ALIGN=2

                  GetDADDR PROC
;;;105    *******************************************************************************/
;;;106    u16 GetDADDR(void)
000000  4801              LDR      r0,|L12.8|
;;;107    {
;;;108      return(_GetDADDR());
000002  6800              LDR      r0,[r0,#0]
000004  b280              UXTH     r0,r0
;;;109    }
000006  4770              BX       lr
;;;110    
                          ENDP

                  |L12.8|
                          DCD      0x40005c4c

                          AREA ||i.GetENDPOINT||, CODE, READONLY, ALIGN=2

                  GetENDPOINT PROC
;;;154    *******************************************************************************/
;;;155    u16 GetENDPOINT(u8 bEpNum)
000000  4903              LDR      r1,|L13.16|
;;;156    {
;;;157      return(_GetENDPOINT(bEpNum));
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d00c00          LDR      r0,[r0,#0xc00]
00000a  b280              UXTH     r0,r0
;;;158    }
00000c  4770              BX       lr
;;;159    
                          ENDP

00000e  0000              DCW      0x0000
                  |L13.16|
                          DCD      0x40005000

                          AREA ||i.GetEPAddress||, CODE, READONLY, ALIGN=2

                  GetEPAddress PROC
;;;454    *******************************************************************************/
;;;455    u8 GetEPAddress(u8 bEpNum)
000000  4903              LDR      r1,|L14.16|
;;;456    {
;;;457      return(_GetEPAddress(bEpNum));
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d00c00          LDR      r0,[r0,#0xc00]
00000a  f3c00003          UBFX     r0,r0,#0,#4
;;;458    }
00000e  4770              BX       lr
;;;459    /*******************************************************************************
                          ENDP

                  |L14.16|
                          DCD      0x40005000

                          AREA ||i.GetEPDblBuf0Addr||, CODE, READONLY, ALIGN=2

                  GetEPDblBuf0Addr PROC
;;;606    *******************************************************************************/
;;;607    u16 GetEPDblBuf0Addr(u8 bEpNum)
000000  4904              LDR      r1,|L15.20|
;;;608    {
;;;609      return(_GetEPDblBuf0Addr(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4903              LDR      r1,|L15.24|
00000c  f8510010          LDR      r0,[r1,r0,LSL #1]
000010  b280              UXTH     r0,r0
;;;610    }
000012  4770              BX       lr
;;;611    /*******************************************************************************
                          ENDP

                  |L15.20|
                          DCD      0x40005c50
                  |L15.24|
                          DCD      0x40006000

                          AREA ||i.GetEPDblBuf0Count||, CODE, READONLY, ALIGN=2

                  GetEPDblBuf0Count PROC
;;;665    *******************************************************************************/
;;;666    u16 GetEPDblBuf0Count(u8 bEpNum)
000000  4905              LDR      r1,|L16.24|
;;;667    {
;;;668      return(_GetEPDblBuf0Count(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4904              LDR      r1,|L16.28|
00000c  eb010040          ADD      r0,r1,r0,LSL #1
000010  6840              LDR      r0,[r0,#4]
000012  f3c00009          UBFX     r0,r0,#0,#10
;;;669    }
000016  4770              BX       lr
;;;670    /*******************************************************************************
                          ENDP

                  |L16.24|
                          DCD      0x40005c50
                  |L16.28|
                          DCD      0x40006000

                          AREA ||i.GetEPDblBuf1Addr||, CODE, READONLY, ALIGN=2

                  GetEPDblBuf1Addr PROC
;;;617    *******************************************************************************/
;;;618    u16 GetEPDblBuf1Addr(u8 bEpNum)
000000  4905              LDR      r1,|L17.24|
;;;619    {
;;;620      return(_GetEPDblBuf1Addr(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4904              LDR      r1,|L17.28|
00000c  eb010040          ADD      r0,r1,r0,LSL #1
000010  6880              LDR      r0,[r0,#8]
000012  b280              UXTH     r0,r0
;;;621    }
000014  4770              BX       lr
;;;622    /*******************************************************************************
                          ENDP

000016  0000              DCW      0x0000
                  |L17.24|
                          DCD      0x40005c50
                  |L17.28|
                          DCD      0x40006000

                          AREA ||i.GetEPDblBuf1Count||, CODE, READONLY, ALIGN=2

                  GetEPDblBuf1Count PROC
;;;677    *******************************************************************************/
;;;678    u16 GetEPDblBuf1Count(u8 bEpNum)
000000  4905              LDR      r1,|L18.24|
;;;679    {
;;;680      return(_GetEPDblBuf1Count(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4904              LDR      r1,|L18.28|
00000c  eb010040          ADD      r0,r1,r0,LSL #1
000010  68c0              LDR      r0,[r0,#0xc]
000012  f3c00009          UBFX     r0,r0,#0,#10
;;;681    }
000016  4770              BX       lr
;;;682    /*******************************************************************************
                          ENDP

                  |L18.24|
                          DCD      0x40005c50
                  |L18.28|
                          DCD      0x40006000

                          AREA ||i.GetEPDblBufDir||, CODE, READONLY, ALIGN=2

                  GetEPDblBufDir PROC
;;;689    *******************************************************************************/
;;;690    EP_DBUF_DIR GetEPDblBufDir(u8 bEpNum)
000000  4a0d              LDR      r2,|L19.56|
;;;691    {
;;;692      if ((u16)(*_pEPRxCount(bEpNum) & 0xFC00) != 0)
000002  f8d23c50          LDR      r3,[r2,#0xc50]
000006  490d              LDR      r1,|L19.60|
000008  b29b              UXTH     r3,r3
00000a  eb0303c0          ADD      r3,r3,r0,LSL #3
00000e  eb010343          ADD      r3,r1,r3,LSL #1
000012  68db              LDR      r3,[r3,#0xc]
000014  f4134f7c          TST      r3,#0xfc00
000018  d001              BEQ      |L19.30|
;;;693        return(EP_DBUF_OUT);
00001a  2001              MOVS     r0,#1
                  |L19.28|
;;;694      else if (((u16)(*_pEPTxCount(bEpNum)) & 0x03FF) != 0)
;;;695        return(EP_DBUF_IN);
;;;696      else
;;;697        return(EP_DBUF_ERR);
;;;698    }
00001c  4770              BX       lr
                  |L19.30|
00001e  f8d22c50          LDR      r2,[r2,#0xc50]        ;694
000022  b292              UXTH     r2,r2                 ;694
000024  eb0200c0          ADD      r0,r2,r0,LSL #3       ;694
000028  eb010040          ADD      r0,r1,r0,LSL #1       ;694
00002c  6840              LDR      r0,[r0,#4]            ;694
00002e  0580              LSLS     r0,r0,#22             ;694
000030  d0f4              BEQ      |L19.28|
000032  2002              MOVS     r0,#2                 ;695
000034  4770              BX       lr
;;;699    /*******************************************************************************
                          ENDP

000036  0000              DCW      0x0000
                  |L19.56|
                          DCD      0x40005000
                  |L19.60|
                          DCD      0x40006000

                          AREA ||i.GetEPRxAddr||, CODE, READONLY, ALIGN=2

                  GetEPRxAddr PROC
;;;500    *******************************************************************************/
;;;501    u16 GetEPRxAddr(u8 bEpNum)
000000  4905              LDR      r1,|L20.24|
;;;502    {
;;;503      return(_GetEPRxAddr(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4904              LDR      r1,|L20.28|
00000c  eb010040          ADD      r0,r1,r0,LSL #1
000010  6880              LDR      r0,[r0,#8]
000012  b280              UXTH     r0,r0
;;;504    }
000014  4770              BX       lr
;;;505    /*******************************************************************************
                          ENDP

000016  0000              DCW      0x0000
                  |L20.24|
                          DCD      0x40005c50
                  |L20.28|
                          DCD      0x40006000

                          AREA ||i.GetEPRxCount||, CODE, READONLY, ALIGN=2

                  GetEPRxCount PROC
;;;558    *******************************************************************************/
;;;559    u16 GetEPRxCount(u8 bEpNum)
000000  4905              LDR      r1,|L21.24|
;;;560    {
;;;561      return(_GetEPRxCount(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4904              LDR      r1,|L21.28|
00000c  eb010040          ADD      r0,r1,r0,LSL #1
000010  68c0              LDR      r0,[r0,#0xc]
000012  f3c00009          UBFX     r0,r0,#0,#10
;;;562    }
000016  4770              BX       lr
;;;563    /*******************************************************************************
                          ENDP

                  |L21.24|
                          DCD      0x40005c50
                  |L21.28|
                          DCD      0x40006000

                          AREA ||i.GetEPRxStatus||, CODE, READONLY, ALIGN=2

                  GetEPRxStatus PROC
;;;251    *******************************************************************************/
;;;252    u16 GetEPRxStatus(u8 bEpNum)
000000  4904              LDR      r1,|L22.20|
;;;253    {
;;;254      return(_GetEPRxStatus(bEpNum));
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d00c00          LDR      r0,[r0,#0xc00]
00000a  f3c03001          UBFX     r0,r0,#12,#2
00000e  0300              LSLS     r0,r0,#12
;;;255    }
000010  4770              BX       lr
;;;256    
                          ENDP

000012  0000              DCW      0x0000
                  |L22.20|
                          DCD      0x40005000

                          AREA ||i.GetEPTxAddr||, CODE, READONLY, ALIGN=2

                  GetEPTxAddr PROC
;;;489    *******************************************************************************/
;;;490    u16 GetEPTxAddr(u8 bEpNum)
000000  4904              LDR      r1,|L23.20|
;;;491    {
;;;492      return(_GetEPTxAddr(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4903              LDR      r1,|L23.24|
00000c  f8510010          LDR      r0,[r1,r0,LSL #1]
000010  b280              UXTH     r0,r0
;;;493    }
000012  4770              BX       lr
;;;494    /*******************************************************************************
                          ENDP

                  |L23.20|
                          DCD      0x40005c50
                  |L23.24|
                          DCD      0x40006000

                          AREA ||i.GetEPTxCount||, CODE, READONLY, ALIGN=2

                  GetEPTxCount PROC
;;;547    *******************************************************************************/
;;;548    u16 GetEPTxCount(u8 bEpNum)
000000  4905              LDR      r1,|L24.24|
;;;549    {
;;;550      return(_GetEPTxCount(bEpNum));
000002  6809              LDR      r1,[r1,#0]
000004  b289              UXTH     r1,r1
000006  eb0100c0          ADD      r0,r1,r0,LSL #3
00000a  4904              LDR      r1,|L24.28|
00000c  eb010040          ADD      r0,r1,r0,LSL #1
000010  6840              LDR      r0,[r0,#4]
000012  f3c00009          UBFX     r0,r0,#0,#10
;;;551    }
000016  4770              BX       lr
;;;552    /*******************************************************************************
                          ENDP

                  |L24.24|
                          DCD      0x40005c50
                  |L24.28|
                          DCD      0x40006000

                          AREA ||i.GetEPTxStatus||, CODE, READONLY, ALIGN=2

                  GetEPTxStatus PROC
;;;239    *******************************************************************************/
;;;240    u16 GetEPTxStatus(u8 bEpNum)
000000  4904              LDR      r1,|L25.20|
;;;241    {
;;;242      return(_GetEPTxStatus(bEpNum));
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d00c00          LDR      r0,[r0,#0xc00]
00000a  f3c01001          UBFX     r0,r0,#4,#2
00000e  0100              LSLS     r0,r0,#4
;;;243    }
000010  4770              BX       lr
;;;244    
                          ENDP

000012  0000              DCW      0x0000
                  |L25.20|
                          DCD      0x40005000

                          AREA ||i.GetEPType||, CODE, READONLY, ALIGN=2

                  GetEPType PROC
;;;179    *******************************************************************************/
;;;180    u16 GetEPType(u8 bEpNum)
000000  4904              LDR      r1,|L26.20|
;;;181    {
;;;182      return(_GetEPType(bEpNum));
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d00c00          LDR      r0,[r0,#0xc00]
00000a  f3c02041          UBFX     r0,r0,#9,#2
00000e  0240              LSLS     r0,r0,#9
;;;183    }
000010  4770              BX       lr
;;;184    
                          ENDP

000012  0000              DCW      0x0000
                  |L26.20|
                          DCD      0x40005000

                          AREA ||i.GetFNR||, CODE, READONLY, ALIGN=2

                  GetFNR PROC
;;;81     *******************************************************************************/
;;;82     u16 GetFNR(void)
000000  4801              LDR      r0,|L27.8|
;;;83     {
;;;84       return(_GetFNR());
000002  6800              LDR      r0,[r0,#0]
000004  b280              UXTH     r0,r0
;;;85     }
000006  4770              BX       lr
;;;86     
                          ENDP

                  |L27.8|
                          DCD      0x40005c48

                          AREA ||i.GetISTR||, CODE, READONLY, ALIGN=2

                  GetISTR PROC
;;;69     *******************************************************************************/
;;;70     u16 GetISTR(void)
000000  4801              LDR      r0,|L28.8|
;;;71     {
;;;72       return(_GetISTR());
000002  6800              LDR      r0,[r0,#0]
000004  b280              UXTH     r0,r0
;;;73     }
000006  4770              BX       lr
;;;74     
                          ENDP

                  |L28.8|
                          DCD      0x40005c44

                          AREA ||i.GetRxStallStatus||, CODE, READONLY, ALIGN=2

                  GetRxStallStatus PROC
;;;365    *******************************************************************************/
;;;366    u16 GetRxStallStatus(u8 bEpNum)
000000  4905              LDR      r1,|L29.24|
;;;367    {
;;;368      return(_GetRxStallStatus(bEpNum));
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d00c00          LDR      r0,[r0,#0xc00]
00000a  f3c03001          UBFX     r0,r0,#12,#2
00000e  2801              CMP      r0,#1
000010  d000              BEQ      |L29.20|
000012  2000              MOVS     r0,#0
                  |L29.20|
;;;369    }
000014  4770              BX       lr
;;;370    /*******************************************************************************
                          ENDP

000016  0000              DCW      0x0000
                  |L29.24|
                          DCD      0x40005000

                          AREA ||i.GetTxStallStatus||, CODE, READONLY, ALIGN=2

                  GetTxStallStatus PROC
;;;354    *******************************************************************************/
;;;355    u16 GetTxStallStatus(u8 bEpNum)
000000  4905              LDR      r1,|L30.24|
;;;356    {
;;;357      return(_GetTxStallStatus(bEpNum));
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d00c00          LDR      r0,[r0,#0xc00]
00000a  f3c01001          UBFX     r0,r0,#4,#2
00000e  2801              CMP      r0,#1
000010  d000              BEQ      |L30.20|
000012  2000              MOVS     r0,#0
                  |L30.20|
;;;358    }
000014  4770              BX       lr
;;;359    /*******************************************************************************
                          ENDP

000016  0000              DCW      0x0000
                  |L30.24|
                          DCD      0x40005000

                          AREA ||i.SetBTABLE||, CODE, READONLY, ALIGN=2

                  SetBTABLE PROC
;;;117    *******************************************************************************/
;;;118    void SetBTABLE(u16 wRegValue)
000000  4902              LDR      r1,|L31.12|
;;;119    {
;;;120      _SetBTABLE(wRegValue);
000002  f0200007          BIC      r0,r0,#7
000006  6008              STR      r0,[r1,#0]
;;;121    }
000008  4770              BX       lr
;;;122    
                          ENDP

00000a  0000              DCW      0x0000
                  |L31.12|
                          DCD      0x40005c50

                          AREA ||i.SetCNTR||, CODE, READONLY, ALIGN=2

                  SetCNTR PROC
;;;33     *******************************************************************************/
;;;34     void SetCNTR(u16 wRegValue)
000000  4901              LDR      r1,|L32.8|
;;;35     {
;;;36       _SetCNTR(wRegValue);
000002  6008              STR      r0,[r1,#0]
;;;37     }
000004  4770              BX       lr
;;;38     
                          ENDP

000006  0000              DCW      0x0000
                  |L32.8|
                          DCD      0x40005c40

                          AREA ||i.SetDADDR||, CODE, READONLY, ALIGN=2

                  SetDADDR PROC
;;;93     *******************************************************************************/
;;;94     void SetDADDR(u16 wRegValue)
000000  4901              LDR      r1,|L33.8|
;;;95     {
;;;96       _SetDADDR(wRegValue);
000002  6008              STR      r0,[r1,#0]
;;;97     }
000004  4770              BX       lr
;;;98     
                          ENDP

000006  0000              DCW      0x0000
                  |L33.8|
                          DCD      0x40005c4c

                          AREA ||i.SetDouBleBuffEPStall||, CODE, READONLY, ALIGN=2

                  SetDouBleBuffEPStall PROC
;;;218    *******************************************************************************/
;;;219    void SetDouBleBuffEPStall(u8 bEpNum, u8 bDir)
000000  b500              PUSH     {lr}
;;;220    {
000002  4603              MOV      r3,r0
000004  460a              MOV      r2,r1
;;;221      u16 Endpoint_DTOG_Status;
;;;222      Endpoint_DTOG_Status = GetENDPOINT(bEpNum);
000006  f7fffffe          BL       GetENDPOINT
;;;223      if (bDir == EP_DBUF_OUT)
;;;224      { /* OUT double buffered endpoint */
;;;225        _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPRX_DTOG1);
00000a  4907              LDR      r1,|L34.40|
00000c  2a01              CMP      r2,#1                 ;223
00000e  eb010183          ADD      r1,r1,r3,LSL #2
000012  d102              BNE      |L34.26|
000014  f4205080          BIC      r0,r0,#0x1000
000018  e003              B        |L34.34|
                  |L34.26|
;;;226      }
;;;227      else if (bDir == EP_DBUF_IN)
00001a  2a02              CMP      r2,#2
00001c  d103              BNE      |L34.38|
;;;228      { /* IN double buffered endpoint */
;;;229        _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPTX_DTOG1);
00001e  f0200010          BIC      r0,r0,#0x10
                  |L34.34|
000022  f8c10c00          STR      r0,[r1,#0xc00]        ;225
                  |L34.38|
;;;230      }
;;;231    }
000026  bd00              POP      {pc}
;;;232    
                          ENDP

                  |L34.40|
                          DCD      0x40005000

                          AREA ||i.SetENDPOINT||, CODE, READONLY, ALIGN=2

                  SetENDPOINT PROC
;;;142    *******************************************************************************/
;;;143    void SetENDPOINT(u8 bEpNum, u16 wRegValue)
000000  4a02              LDR      r2,|L35.12|
;;;144    {
;;;145      _SetENDPOINT(bEpNum, wRegValue);
000002  eb020080          ADD      r0,r2,r0,LSL #2
000006  f8c01c00          STR      r1,[r0,#0xc00]
;;;146    }
00000a  4770              BX       lr
;;;147    
                          ENDP

                  |L35.12|
                          DCD      0x40005000

                          AREA ||i.SetEPAddress||, CODE, READONLY, ALIGN=2

                  SetEPAddress PROC
;;;443    *******************************************************************************/
;;;444    void SetEPAddress(u8 bEpNum, u8 bAddr)
000000  4a06              LDR      r2,|L36.28|
;;;445    {
;;;446      _SetEPAddress(bEpNum, bAddr);
000002  eb020080          ADD      r0,r2,r0,LSL #2
000006  f8d02c00          LDR      r2,[r0,#0xc00]
00000a  f648738f          MOV      r3,#0x8f8f
00000e  b292              UXTH     r2,r2
000010  401a              ANDS     r2,r2,r3
000012  430a              ORRS     r2,r2,r1
000014  f8c02c00          STR      r2,[r0,#0xc00]
;;;447    }
000018  4770              BX       lr
;;;448    /*******************************************************************************
                          ENDP

00001a  0000              DCW      0x0000
                  |L36.28|
                          DCD      0x40005000

                          AREA ||i.SetEPCountRxReg||, CODE, READONLY, ALIGN=1

                  SetEPCountRxReg PROC
;;;524    *******************************************************************************/
;;;525    void SetEPCountRxReg(u32 *pdwReg, u16 wCount)
000000  293e              CMP      r1,#0x3e
;;;526    {
;;;527      _SetEPCountRxReg(dwReg, wCount);
000002  d909              BLS      |L37.24|
000004  094a              LSRS     r2,r1,#5
000006  06c9              LSLS     r1,r1,#27
000008  d101              BNE      |L37.14|
00000a  1e52              SUBS     r2,r2,#1
00000c  b292              UXTH     r2,r2
                  |L37.14|
00000e  f44f4100          MOV      r1,#0x8000
000012  ea412182          ORR      r1,r1,r2,LSL #10
000016  e005              B        |L37.36|
                  |L37.24|
000018  084a              LSRS     r2,r1,#1
00001a  07c9              LSLS     r1,r1,#31
00001c  d001              BEQ      |L37.34|
00001e  1c52              ADDS     r2,r2,#1
000020  b292              UXTH     r2,r2
                  |L37.34|
000022  0291              LSLS     r1,r2,#10
                  |L37.36|
000024  6001              STR      r1,[r0,#0]
;;;528    }
000026  4770              BX       lr
;;;529    /*******************************************************************************
                          ENDP


                          AREA ||i.SetEPDblBuf0Addr||, CODE, READONLY, ALIGN=2

                  SetEPDblBuf0Addr PROC
;;;583    *******************************************************************************/
;;;584    void SetEPDblBuf0Addr(u8 bEpNum, u16 wBuf0Addr)
000000  4a05              LDR      r2,|L38.24|
;;;585    {
;;;586      _SetEPDblBuf0Addr(bEpNum, wBuf0Addr);
000002  f0210101          BIC      r1,r1,#1
000006  6813              LDR      r3,[r2,#0]
000008  4a04              LDR      r2,|L38.28|
00000a  b29b              UXTH     r3,r3
00000c  eb0300c0          ADD      r0,r3,r0,LSL #3
000010  f8421010          STR      r1,[r2,r0,LSL #1]
;;;587    }
000014  4770              BX       lr
;;;588    /*******************************************************************************
                          ENDP

000016  0000              DCW      0x0000
                  |L38.24|
                          DCD      0x40005c50
                  |L38.28|
                          DCD      0x40006000

                          AREA ||i.SetEPDblBuf0Count||, CODE, READONLY, ALIGN=2

                  SetEPDblBuf0Count PROC
;;;641    *******************************************************************************/
;;;642    void SetEPDblBuf0Count(u8 bEpNum, u8 bDir, u16 wCount)
000000  4b15              LDR      r3,|L39.88|
;;;643    {
;;;644      _SetEPDblBuf0Count(bEpNum, bDir, wCount);
000002  2901              CMP      r1,#1
000004  d11b              BNE      |L39.62|
000006  f8d31c50          LDR      r1,[r3,#0xc50]
00000a  4b14              LDR      r3,|L39.92|
00000c  b289              UXTH     r1,r1
00000e  eb0100c0          ADD      r0,r1,r0,LSL #3
000012  eb030140          ADD      r1,r3,r0,LSL #1
000016  2a3e              CMP      r2,#0x3e
000018  d909              BLS      |L39.46|
00001a  0950              LSRS     r0,r2,#5
00001c  06d2              LSLS     r2,r2,#27
00001e  d101              BNE      |L39.36|
000020  1e40              SUBS     r0,r0,#1
000022  b280              UXTH     r0,r0
                  |L39.36|
000024  f44f4200          MOV      r2,#0x8000
000028  ea422080          ORR      r0,r2,r0,LSL #10
00002c  e005              B        |L39.58|
                  |L39.46|
00002e  0850              LSRS     r0,r2,#1
000030  07d2              LSLS     r2,r2,#31
000032  d001              BEQ      |L39.56|
000034  1c40              ADDS     r0,r0,#1
000036  b280              UXTH     r0,r0
                  |L39.56|
000038  0280              LSLS     r0,r0,#10
                  |L39.58|
00003a  6008              STR      r0,[r1,#0]
                  |L39.60|
;;;645    }
00003c  4770              BX       lr
                  |L39.62|
00003e  2902              CMP      r1,#2                 ;644
000040  d1fc              BNE      |L39.60|
000042  f8d31c50          LDR      r1,[r3,#0xc50]        ;644
000046  4b05              LDR      r3,|L39.92|
000048  b289              UXTH     r1,r1                 ;644
00004a  1f1b              SUBS     r3,r3,#4              ;644
00004c  eb0100c0          ADD      r0,r1,r0,LSL #3       ;644
000050  eb030040          ADD      r0,r3,r0,LSL #1       ;644
000054  6042              STR      r2,[r0,#4]            ;644
000056  4770              BX       lr
;;;646    /*******************************************************************************
                          ENDP

                  |L39.88|
                          DCD      0x40005000
                  |L39.92|
                          DCD      0x40006004

                          AREA ||i.SetEPDblBuf1Addr||, CODE, READONLY, ALIGN=2

                  SetEPDblBuf1Addr PROC
;;;595    *******************************************************************************/
;;;596    void SetEPDblBuf1Addr(u8 bEpNum, u16 wBuf1Addr)
000000  4a05              LDR      r2,|L40.24|
;;;597    {
;;;598      _SetEPDblBuf1Addr(bEpNum, wBuf1Addr);
000002  f0210101          BIC      r1,r1,#1
000006  6813              LDR      r3,[r2,#0]
000008  4a04              LDR      r2,|L40.28|
00000a  b29b              UXTH     r3,r3
00000c  eb0300c0          ADD      r0,r3,r0,LSL #3
000010  eb020040          ADD      r0,r2,r0,LSL #1
;;;599    }
000014  6081              STR      r1,[r0,#8]
000016  4770              BX       lr
;;;600    /*******************************************************************************
                          ENDP

                  |L40.24|
                          DCD      0x40005c50
                  |L40.28|
                          DCD      0x40006000

                          AREA ||i.SetEPDblBuf1Count||, CODE, READONLY, ALIGN=2

                  SetEPDblBuf1Count PROC
;;;653    *******************************************************************************/
;;;654    void SetEPDblBuf1Count(u8 bEpNum, u8 bDir, u16 wCount)
000000  4b15              LDR      r3,|L41.88|
;;;655    {
;;;656      _SetEPDblBuf1Count(bEpNum, bDir, wCount);
000002  2901              CMP      r1,#1
000004  d11b              BNE      |L41.62|
000006  f8d31c50          LDR      r1,[r3,#0xc50]
00000a  4b14              LDR      r3,|L41.92|
00000c  b289              UXTH     r1,r1
00000e  eb0100c0          ADD      r0,r1,r0,LSL #3
000012  eb030140          ADD      r1,r3,r0,LSL #1
000016  2a3e              CMP      r2,#0x3e
000018  d909              BLS      |L41.46|
00001a  0950              LSRS     r0,r2,#5
00001c  06d2              LSLS     r2,r2,#27
00001e  d101              BNE      |L41.36|
000020  1e40              SUBS     r0,r0,#1
000022  b280              UXTH     r0,r0
                  |L41.36|
000024  f44f4200          MOV      r2,#0x8000
000028  ea422080          ORR      r0,r2,r0,LSL #10
00002c  e005              B        |L41.58|
                  |L41.46|
00002e  0850              LSRS     r0,r2,#1
000030  07d2              LSLS     r2,r2,#31
000032  d001              BEQ      |L41.56|
000034  1c40              ADDS     r0,r0,#1
000036  b280              UXTH     r0,r0
                  |L41.56|
000038  0280              LSLS     r0,r0,#10
                  |L41.58|
00003a  6008              STR      r0,[r1,#0]
                  |L41.60|
;;;657    }
00003c  4770              BX       lr
                  |L41.62|
00003e  2902              CMP      r1,#2                 ;656
000040  d1fc              BNE      |L41.60|
000042  f8d31c50          LDR      r1,[r3,#0xc50]        ;656
000046  4b05              LDR      r3,|L41.92|
000048  b289              UXTH     r1,r1                 ;656
00004a  3b0c              SUBS     r3,r3,#0xc            ;656
00004c  eb0100c0          ADD      r0,r1,r0,LSL #3       ;656
000050  eb030040          ADD      r0,r3,r0,LSL #1       ;656
000054  60c2              STR      r2,[r0,#0xc]          ;656
000056  4770              BX       lr
;;;658    /*******************************************************************************
                          ENDP

                  |L41.88|
                          DCD      0x40005000
                  |L41.92|
                          DCD      0x4000600c

                          AREA ||i.SetEPDblBuffAddr||, CODE, READONLY, ALIGN=2

                  SetEPDblBuffAddr PROC
;;;571    *******************************************************************************/
;;;572    void SetEPDblBuffAddr(u8 bEpNum, u16 wBuf0Addr, u16 wBuf1Addr)
000000  b530              PUSH     {r4,r5,lr}
;;;573    {
;;;574      _SetEPDblBuffAddr(bEpNum, wBuf0Addr, wBuf1Addr);
000002  4b0a              LDR      r3,|L42.44|
000004  f0210401          BIC      r4,r1,#1
000008  681d              LDR      r5,[r3,#0]
00000a  4909              LDR      r1,|L42.48|
00000c  b2ad              UXTH     r5,r5
00000e  eb0505c0          ADD      r5,r5,r0,LSL #3
000012  f8414015          STR      r4,[r1,r5,LSL #1]
000016  681b              LDR      r3,[r3,#0]
000018  f0220201          BIC      r2,r2,#1
00001c  b29b              UXTH     r3,r3
00001e  eb0300c0          ADD      r0,r3,r0,LSL #3
000022  eb010040          ADD      r0,r1,r0,LSL #1
;;;575    }
000026  6082              STR      r2,[r0,#8]
000028  bd30              POP      {r4,r5,pc}
;;;576    /*******************************************************************************
                          ENDP

00002a  0000              DCW      0x0000
                  |L42.44|
                          DCD      0x40005c50
                  |L42.48|
                          DCD      0x40006000

                          AREA ||i.SetEPDblBuffCount||, CODE, READONLY, ALIGN=2

                  SetEPDblBuffCount PROC
;;;629    *******************************************************************************/
;;;630    void SetEPDblBuffCount(u8 bEpNum, u8 bDir, u16 wCount)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;631    {
;;;632      _SetEPDblBuffCount(bEpNum, bDir, wCount);
000004  4b28              LDR      r3,|L43.168|
000006  2901              CMP      r1,#1
000008  d132              BNE      |L43.112|
00000a  4698              MOV      r8,r3
00000c  f8d33c50          LDR      r3,[r3,#0xc50]
000010  4926              LDR      r1,|L43.172|
000012  b29b              UXTH     r3,r3
000014  eb0303c0          ADD      r3,r3,r0,LSL #3
000018  eb010543          ADD      r5,r1,r3,LSL #1
00001c  13cf              ASRS     r7,r1,#15
00001e  0953              LSRS     r3,r2,#5
000020  0851              LSRS     r1,r2,#1
000022  1c4c              ADDS     r4,r1,#1
000024  f1a30e01          SUB      lr,r3,#1
000028  2a3e              CMP      r2,#0x3e
00002a  d908              BLS      |L43.62|
00002c  461e              MOV      r6,r3
00002e  ea5f6cc2          LSLS     r12,r2,#27
000032  d101              BNE      |L43.56|
000034  fa1ff68e          UXTH     r6,lr
                  |L43.56|
000038  ea472686          ORR      r6,r7,r6,LSL #10
00003c  e005              B        |L43.74|
                  |L43.62|
00003e  460e              MOV      r6,r1
000040  ea5f7cc2          LSLS     r12,r2,#31
000044  d000              BEQ      |L43.72|
000046  b2a6              UXTH     r6,r4
                  |L43.72|
000048  02b6              LSLS     r6,r6,#10
                  |L43.74|
00004a  602e              STR      r6,[r5,#0]
00004c  f8d85c50          LDR      r5,[r8,#0xc50]
000050  4e16              LDR      r6,|L43.172|
000052  b2ad              UXTH     r5,r5
000054  3608              ADDS     r6,r6,#8
000056  eb0500c0          ADD      r0,r5,r0,LSL #3
00005a  eb060040          ADD      r0,r6,r0,LSL #1
00005e  2a3e              CMP      r2,#0x3e
000060  d91c              BLS      |L43.156|
000062  06d1              LSLS     r1,r2,#27
000064  d101              BNE      |L43.106|
000066  fa1ff38e          UXTH     r3,lr
                  |L43.106|
00006a  ea472183          ORR      r1,r7,r3,LSL #10
00006e  e019              B        |L43.164|
                  |L43.112|
000070  2902              CMP      r1,#2
000072  d111              BNE      |L43.152|
000074  f8d34c50          LDR      r4,[r3,#0xc50]
000078  490c              LDR      r1,|L43.172|
00007a  b2a4              UXTH     r4,r4
00007c  1f09              SUBS     r1,r1,#4
00007e  eb0404c0          ADD      r4,r4,r0,LSL #3
000082  eb010444          ADD      r4,r1,r4,LSL #1
000086  6062              STR      r2,[r4,#4]
000088  f8d33c50          LDR      r3,[r3,#0xc50]
00008c  b29b              UXTH     r3,r3
00008e  eb0300c0          ADD      r0,r3,r0,LSL #3
000092  eb010040          ADD      r0,r1,r0,LSL #1
000096  60c2              STR      r2,[r0,#0xc]
                  |L43.152|
;;;633    }
000098  e8bd81f0          POP      {r4-r8,pc}
                  |L43.156|
00009c  07d2              LSLS     r2,r2,#31             ;632
00009e  d000              BEQ      |L43.162|
0000a0  b2a1              UXTH     r1,r4                 ;632
                  |L43.162|
0000a2  0289              LSLS     r1,r1,#10             ;632
                  |L43.164|
0000a4  6001              STR      r1,[r0,#0]            ;632
0000a6  e7f7              B        |L43.152|
;;;634    /*******************************************************************************
                          ENDP

                  |L43.168|
                          DCD      0x40005000
                  |L43.172|
                          DCD      0x40006004

                          AREA ||i.SetEPDoubleBuff||, CODE, READONLY, ALIGN=2

                  SetEPDoubleBuff PROC
;;;332    *******************************************************************************/
;;;333    void SetEPDoubleBuff(u8 bEpNum)
000000  4906              LDR      r1,|L44.28|
;;;334    {
;;;335      _SetEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648728f          MOV      r2,#0x8f8f
00000e  b289              UXTH     r1,r1
000010  f4417180          ORR      r1,r1,#0x100
000014  4011              ANDS     r1,r1,r2
000016  f8c01c00          STR      r1,[r0,#0xc00]
;;;336    }
00001a  4770              BX       lr
;;;337    /*******************************************************************************
                          ENDP

                  |L44.28|
                          DCD      0x40005000

                          AREA ||i.SetEPRxAddr||, CODE, READONLY, ALIGN=2

                  SetEPRxAddr PROC
;;;478    *******************************************************************************/
;;;479    void SetEPRxAddr(u8 bEpNum, u16 wAddr)
000000  4a05              LDR      r2,|L45.24|
;;;480    {
;;;481      _SetEPRxAddr(bEpNum, wAddr);
000002  f0210101          BIC      r1,r1,#1
000006  6813              LDR      r3,[r2,#0]
000008  4a04              LDR      r2,|L45.28|
00000a  b29b              UXTH     r3,r3
00000c  eb0300c0          ADD      r0,r3,r0,LSL #3
000010  eb020040          ADD      r0,r2,r0,LSL #1
;;;482    }
000014  6081              STR      r1,[r0,#8]
000016  4770              BX       lr
;;;483    /*******************************************************************************
                          ENDP

                  |L45.24|
                          DCD      0x40005c50
                  |L45.28|
                          DCD      0x40006000

                          AREA ||i.SetEPRxCount||, CODE, READONLY, ALIGN=2

                  SetEPRxCount PROC
;;;536    *******************************************************************************/
;;;537    void SetEPRxCount(u8 bEpNum, u16 wCount)
000000  4a0d              LDR      r2,|L46.56|
;;;538    {
;;;539      _SetEPRxCount(bEpNum, wCount);
000002  6813              LDR      r3,[r2,#0]
000004  4a0d              LDR      r2,|L46.60|
000006  b29b              UXTH     r3,r3
000008  eb0300c0          ADD      r0,r3,r0,LSL #3
00000c  eb020240          ADD      r2,r2,r0,LSL #1
000010  293e              CMP      r1,#0x3e
000012  d909              BLS      |L46.40|
000014  0948              LSRS     r0,r1,#5
000016  06c9              LSLS     r1,r1,#27
000018  d101              BNE      |L46.30|
00001a  1e40              SUBS     r0,r0,#1
00001c  b280              UXTH     r0,r0
                  |L46.30|
00001e  f44f4100          MOV      r1,#0x8000
000022  ea412080          ORR      r0,r1,r0,LSL #10
000026  e005              B        |L46.52|
                  |L46.40|
000028  0848              LSRS     r0,r1,#1
00002a  07c9              LSLS     r1,r1,#31
00002c  d001              BEQ      |L46.50|
00002e  1c40              ADDS     r0,r0,#1
000030  b280              UXTH     r0,r0
                  |L46.50|
000032  0280              LSLS     r0,r0,#10
                  |L46.52|
000034  6010              STR      r0,[r2,#0]
;;;540    }
000036  4770              BX       lr
;;;541    /*******************************************************************************
                          ENDP

                  |L46.56|
                          DCD      0x40005c50
                  |L46.60|
                          DCD      0x4000600c

                          AREA ||i.SetEPRxStatus||, CODE, READONLY, ALIGN=2

                  SetEPRxStatus PROC
;;;205    *******************************************************************************/
;;;206    void SetEPRxStatus(u8 bEpNum, u16 wState)
000000  4a0a              LDR      r2,|L47.44|
;;;207    {
000002  b510              PUSH     {r4,lr}
;;;208      _SetEPRxStatus(bEpNum, wState);
000004  eb020280          ADD      r2,r2,r0,LSL #2
000008  f8d20c00          LDR      r0,[r2,#0xc00]
00000c  f64b748f          MOV      r4,#0xbf8f
000010  b280              UXTH     r0,r0
000012  04cb              LSLS     r3,r1,#19
000014  ea000004          AND      r0,r0,r4
000018  d501              BPL      |L47.30|
00001a  f4805080          EOR      r0,r0,#0x1000
                  |L47.30|
00001e  0489              LSLS     r1,r1,#18
000020  d501              BPL      |L47.38|
000022  f4805000          EOR      r0,r0,#0x2000
                  |L47.38|
000026  f8c20c00          STR      r0,[r2,#0xc00]
;;;209    }
00002a  bd10              POP      {r4,pc}
;;;210    
                          ENDP

                  |L47.44|
                          DCD      0x40005000

                          AREA ||i.SetEPRxValid||, CODE, READONLY, ALIGN=2

                  SetEPRxValid PROC
;;;275    *******************************************************************************/
;;;276    void SetEPRxValid(u8 bEpNum)
000000  4906              LDR      r1,|L48.28|
;;;277    {
;;;278      _SetEPRxStatus(bEpNum, EP_RX_VALID);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f64b728f          MOV      r2,#0xbf8f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f4815140          EOR      r1,r1,#0x3000
000016  f8c01c00          STR      r1,[r0,#0xc00]
;;;279    }
00001a  4770              BX       lr
;;;280    
                          ENDP

                  |L48.28|
                          DCD      0x40005000

                          AREA ||i.SetEPTxAddr||, CODE, READONLY, ALIGN=2

                  SetEPTxAddr PROC
;;;466    *******************************************************************************/
;;;467    void SetEPTxAddr(u8 bEpNum, u16 wAddr)
000000  4a05              LDR      r2,|L49.24|
;;;468    {
;;;469      _SetEPTxAddr(bEpNum, wAddr);
000002  f0210101          BIC      r1,r1,#1
000006  6813              LDR      r3,[r2,#0]
000008  4a04              LDR      r2,|L49.28|
00000a  b29b              UXTH     r3,r3
00000c  eb0300c0          ADD      r0,r3,r0,LSL #3
000010  f8421010          STR      r1,[r2,r0,LSL #1]
;;;470    }
000014  4770              BX       lr
;;;471    /*******************************************************************************
                          ENDP

000016  0000              DCW      0x0000
                  |L49.24|
                          DCD      0x40005c50
                  |L49.28|
                          DCD      0x40006000

                          AREA ||i.SetEPTxCount||, CODE, READONLY, ALIGN=2

                  SetEPTxCount PROC
;;;512    *******************************************************************************/
;;;513    void SetEPTxCount(u8 bEpNum, u16 wCount)
000000  4a04              LDR      r2,|L50.20|
;;;514    {
;;;515      _SetEPTxCount(bEpNum, wCount);
000002  6813              LDR      r3,[r2,#0]
000004  4a04              LDR      r2,|L50.24|
000006  b29b              UXTH     r3,r3
000008  eb0300c0          ADD      r0,r3,r0,LSL #3
00000c  eb020040          ADD      r0,r2,r0,LSL #1
;;;516    }
000010  6041              STR      r1,[r0,#4]
000012  4770              BX       lr
;;;517    /*******************************************************************************
                          ENDP

                  |L50.20|
                          DCD      0x40005c50
                  |L50.24|
                          DCD      0x40006000

                          AREA ||i.SetEPTxStatus||, CODE, READONLY, ALIGN=2

                  SetEPTxStatus PROC
;;;192    *******************************************************************************/
;;;193    void SetEPTxStatus(u8 bEpNum, u16 wState)
000000  4a0a              LDR      r2,|L51.44|
;;;194    {
000002  b510              PUSH     {r4,lr}
;;;195      _SetEPTxStatus(bEpNum, wState);
000004  eb020280          ADD      r2,r2,r0,LSL #2
000008  f8d20c00          LDR      r0,[r2,#0xc00]
00000c  f64874bf          MOV      r4,#0x8fbf
000010  b280              UXTH     r0,r0
000012  06cb              LSLS     r3,r1,#27
000014  ea000004          AND      r0,r0,r4
000018  d501              BPL      |L51.30|
00001a  f0800010          EOR      r0,r0,#0x10
                  |L51.30|
00001e  0689              LSLS     r1,r1,#26
000020  d501              BPL      |L51.38|
000022  f0800020          EOR      r0,r0,#0x20
                  |L51.38|
000026  f8c20c00          STR      r0,[r2,#0xc00]
;;;196    }
00002a  bd10              POP      {r4,pc}
;;;197    
                          ENDP

                  |L51.44|
                          DCD      0x40005000

                          AREA ||i.SetEPTxValid||, CODE, READONLY, ALIGN=2

                  SetEPTxValid PROC
;;;263    *******************************************************************************/
;;;264    void SetEPTxValid(u8 bEpNum)
000000  4906              LDR      r1,|L52.28|
;;;265    {
;;;266      _SetEPTxStatus(bEpNum, EP_TX_VALID);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f64872bf          MOV      r2,#0x8fbf
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f0810130          EOR      r1,r1,#0x30
000016  f8c01c00          STR      r1,[r0,#0xc00]
;;;267    }
00001a  4770              BX       lr
;;;268    
                          ENDP

                  |L52.28|
                          DCD      0x40005000

                          AREA ||i.SetEPType||, CODE, READONLY, ALIGN=2

                  SetEPType PROC
;;;167    *******************************************************************************/
;;;168    void SetEPType(u8 bEpNum, u16 wType)
000000  4a06              LDR      r2,|L53.28|
;;;169    {
;;;170      _SetEPType(bEpNum, wType);
000002  eb020080          ADD      r0,r2,r0,LSL #2
000006  f8d02c00          LDR      r2,[r0,#0xc00]
00000a  f648138f          MOV      r3,#0x898f
00000e  b292              UXTH     r2,r2
000010  401a              ANDS     r2,r2,r3
000012  430a              ORRS     r2,r2,r1
000014  f8c02c00          STR      r2,[r0,#0xc00]
;;;171    }
000018  4770              BX       lr
;;;172    
                          ENDP

00001a  0000              DCW      0x0000
                  |L53.28|
                          DCD      0x40005000

                          AREA ||i.SetEP_KIND||, CODE, READONLY, ALIGN=2

                  SetEP_KIND PROC
;;;287    *******************************************************************************/
;;;288    void SetEP_KIND(u8 bEpNum)
000000  4906              LDR      r1,|L54.28|
;;;289    {
;;;290      _SetEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648728f          MOV      r2,#0x8f8f
00000e  b289              UXTH     r1,r1
000010  f4417180          ORR      r1,r1,#0x100
000014  4011              ANDS     r1,r1,r2
000016  f8c01c00          STR      r1,[r0,#0xc00]
;;;291    }
00001a  4770              BX       lr
;;;292    
                          ENDP

                  |L54.28|
                          DCD      0x40005000

                          AREA ||i.SetISTR||, CODE, READONLY, ALIGN=2

                  SetISTR PROC
;;;57     *******************************************************************************/
;;;58     void SetISTR(u16 wRegValue)
000000  4901              LDR      r1,|L55.8|
;;;59     {
;;;60       _SetISTR(wRegValue);
000002  6008              STR      r0,[r1,#0]
;;;61     }
000004  4770              BX       lr
;;;62     
                          ENDP

000006  0000              DCW      0x0000
                  |L55.8|
                          DCD      0x40005c44

                          AREA ||i.Set_Status_Out||, CODE, READONLY, ALIGN=2

                  Set_Status_Out PROC
;;;321    *******************************************************************************/
;;;322    void Set_Status_Out(u8 bEpNum)
000000  4906              LDR      r1,|L56.28|
;;;323    {
;;;324      _SetEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648728f          MOV      r2,#0x8f8f
00000e  b289              UXTH     r1,r1
000010  f4417180          ORR      r1,r1,#0x100
000014  4011              ANDS     r1,r1,r2
000016  f8c01c00          STR      r1,[r0,#0xc00]
;;;325    }
00001a  4770              BX       lr
;;;326    /*******************************************************************************
                          ENDP

                  |L56.28|
                          DCD      0x40005000

                          AREA ||i.ToWord||, CODE, READONLY, ALIGN=1

                  ToWord PROC
;;;725    *******************************************************************************/
;;;726    u16 ToWord(u8 bh, u8 bl)
000000  ea412000          ORR      r0,r1,r0,LSL #8
;;;727    {
;;;728      u16 wRet;
;;;729      wRet = (u16)bl | ((u16)bh << 8);
;;;730      return(wRet);
;;;731    }
000004  4770              BX       lr
;;;732    /*******************************************************************************
                          ENDP


                          AREA ||i.ToggleDTOG_RX||, CODE, READONLY, ALIGN=2

                  ToggleDTOG_RX PROC
;;;398    *******************************************************************************/
;;;399    void ToggleDTOG_RX(u8 bEpNum)
000000  4906              LDR      r1,|L58.28|
;;;400    {
;;;401      _ToggleDTOG_RX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648728f          MOV      r2,#0x8f8f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f4414180          ORR      r1,r1,#0x4000
000016  f8c01c00          STR      r1,[r0,#0xc00]
;;;402    }
00001a  4770              BX       lr
;;;403    /*******************************************************************************
                          ENDP

                  |L58.28|
                          DCD      0x40005000

                          AREA ||i.ToggleDTOG_TX||, CODE, READONLY, ALIGN=2

                  ToggleDTOG_TX PROC
;;;409    *******************************************************************************/
;;;410    void ToggleDTOG_TX(u8 bEpNum)
000000  4906              LDR      r1,|L59.28|
;;;411    {
;;;412      _ToggleDTOG_TX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  f8d01c00          LDR      r1,[r0,#0xc00]
00000a  f648728f          MOV      r2,#0x8f8f
00000e  b289              UXTH     r1,r1
000010  4011              ANDS     r1,r1,r2
000012  f0410140          ORR      r1,r1,#0x40
000016  f8c01c00          STR      r1,[r0,#0xc00]
;;;413    }
00001a  4770              BX       lr
;;;414    /*******************************************************************************
                          ENDP

                  |L59.28|
                          DCD      0x40005000
