; generated by ARM C/C++ Compiler, 4.1 [Build 713]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\Obj\usb_regs.o --asm_dir=.\List\ --list_dir=.\List\ --depend=.\Obj\usb_regs.d --cpu=Cortex-M3 --apcs=interwork -O3 -I.\usb_library\inc -IC:\Keil\ARM\CMSIS\Include -IC:\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  4907              LDR      r1,|L2.32|
;;;422    {
;;;423      _ClearDTOG_RX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  6801              LDR      r1,[r0,#0]
000008  0449              LSLS     r1,r1,#17
00000a  d507              BPL      |L2.28|
00000c  6801              LDR      r1,[r0,#0]
00000e  f648728f          MOV      r2,#0x8f8f
000012  b289              UXTH     r1,r1
000014  4011              ANDS     r1,r1,r2
000016  f4414180          ORR      r1,r1,#0x4000
00001a  6001              STR      r1,[r0,#0]
                  |L2.28|
;;;424    }
00001c  4770              BX       lr
;;;425    /*******************************************************************************
                          ENDP

00001e  0000              DCW      0x0000
                  |L2.32|
                          DCD      0x40005c00

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

                  ClearDTOG_TX PROC
;;;431    *******************************************************************************/
;;;432    void ClearDTOG_TX(u8 bEpNum)
000000  4907              LDR      r1,|L3.32|
;;;433    {
;;;434      _ClearDTOG_TX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  6801              LDR      r1,[r0,#0]
000008  0649              LSLS     r1,r1,#25
00000a  d507              BPL      |L3.28|
00000c  6801              LDR      r1,[r0,#0]
00000e  f648728f          MOV      r2,#0x8f8f
000012  b289              UXTH     r1,r1
000014  4011              ANDS     r1,r1,r2
000016  f0410140          ORR      r1,r1,#0x40
00001a  6001              STR      r1,[r0,#0]
                  |L3.28|
;;;435    }
00001c  4770              BX       lr
;;;436    /*******************************************************************************
                          ENDP

00001e  0000              DCW      0x0000
                  |L3.32|
                          DCD      0x40005c00

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

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

                  |L4.20|
                          DCD      0x40005c00

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

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

                  |L5.20|
                          DCD      0x40005c00

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

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

                  |L6.20|
                          DCD      0x40005c00

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

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

                  |L7.20|
                          DCD      0x40005c00

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

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

                  |L8.20|
                          DCD      0x40005c00

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

                  FreeUserBuffer PROC
;;;706    *******************************************************************************/
;;;707    void FreeUserBuffer(u8 bEpNum, u8 bDir)
000000  4b0a              LDR      r3,|L9.44|
;;;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  d008              BEQ      |L9.32|
;;;712      }
;;;713      else if (bDir == EP_DBUF_IN)
00000e  2902              CMP      r1,#2
000010  d105              BNE      |L9.30|
;;;714      { /* IN double buffered endpoint */
;;;715        _ToggleDTOG_RX(bEpNum);
000012  6801              LDR      r1,[r0,#0]
000014  b289              UXTH     r1,r1
000016  4011              ANDS     r1,r1,r2
000018  f4414180          ORR      r1,r1,#0x4000
                  |L9.28|
00001c  6001              STR      r1,[r0,#0]            ;711
                  |L9.30|
;;;716      }
;;;717    }
00001e  4770              BX       lr
                  |L9.32|
000020  6801              LDR      r1,[r0,#0]            ;711
000022  b289              UXTH     r1,r1                 ;711
000024  4011              ANDS     r1,r1,r2              ;711
000026  f0410140          ORR      r1,r1,#0x40           ;711
00002a  e7f7              B        |L9.28|
;;;718    
                          ENDP

                  |L9.44|
                          DCD      0x40005c00

                          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  4902              LDR      r1,|L13.12|
;;;156    {
;;;157      return(_GetENDPOINT(bEpNum));
000002  f8510020          LDR      r0,[r1,r0,LSL #2]
000006  b280              UXTH     r0,r0
;;;158    }
000008  4770              BX       lr
;;;159    
                          ENDP

00000a  0000              DCW      0x0000
                  |L13.12|
                          DCD      0x40005c00

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

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

                  |L14.12|
                          DCD      0x40005c00

                          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  490c              LDR      r1,|L19.52|
;;;691    {
;;;692      if ((u16)(*_pEPRxCount(bEpNum) & 0xFC00) != 0)
000002  680a              LDR      r2,[r1,#0]
000004  b292              UXTH     r2,r2
000006  eb0203c0          ADD      r3,r2,r0,LSL #3
00000a  4a0b              LDR      r2,|L19.56|
00000c  eb020343          ADD      r3,r2,r3,LSL #1
000010  68db              LDR      r3,[r3,#0xc]
000012  f4134f7c          TST      r3,#0xfc00
000016  d001              BEQ      |L19.28|
;;;693        return(EP_DBUF_OUT);
000018  2001              MOVS     r0,#1
                  |L19.26|
;;;694      else if (((u16)(*_pEPTxCount(bEpNum)) & 0x03FF) != 0)
;;;695        return(EP_DBUF_IN);
;;;696      else
;;;697        return(EP_DBUF_ERR);
;;;698    }
00001a  4770              BX       lr
                  |L19.28|
00001c  6809              LDR      r1,[r1,#0]            ;694
00001e  b289              UXTH     r1,r1                 ;694
000020  eb0100c0          ADD      r0,r1,r0,LSL #3       ;694
000024  eb020040          ADD      r0,r2,r0,LSL #1       ;694
000028  6840              LDR      r0,[r0,#4]            ;694
00002a  0580              LSLS     r0,r0,#22             ;694
00002c  d0f5              BEQ      |L19.26|
00002e  2002              MOVS     r0,#2                 ;695
000030  4770              BX       lr
;;;699    /*******************************************************************************
                          ENDP

000032  0000              DCW      0x0000
                  |L19.52|
                          DCD      0x40005c50
                  |L19.56|
                          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  4903              LDR      r1,|L22.16|
;;;253    {
;;;254      return(_GetEPRxStatus(bEpNum));
000002  f8510020          LDR      r0,[r1,r0,LSL #2]
000006  f3c03001          UBFX     r0,r0,#12,#2
00000a  0300              LSLS     r0,r0,#12
;;;255    }
00000c  4770              BX       lr
;;;256    
                          ENDP

00000e  0000              DCW      0x0000
                  |L22.16|
                          DCD      0x40005c00

                          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  4903              LDR      r1,|L25.16|
;;;241    {
;;;242      return(_GetEPTxStatus(bEpNum));
000002  f8510020          LDR      r0,[r1,r0,LSL #2]
000006  f3c01001          UBFX     r0,r0,#4,#2
00000a  0100              LSLS     r0,r0,#4
;;;243    }
00000c  4770              BX       lr
;;;244    
                          ENDP

00000e  0000              DCW      0x0000
                  |L25.16|
                          DCD      0x40005c00

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

                  GetEPType PROC
;;;179    *******************************************************************************/
;;;180    u16 GetEPType(u8 bEpNum)
000000  4903              LDR      r1,|L26.16|
;;;181    {
;;;182      return(_GetEPType(bEpNum));
000002  f8510020          LDR      r0,[r1,r0,LSL #2]
000006  f3c02041          UBFX     r0,r0,#9,#2
00000a  0240              LSLS     r0,r0,#9
;;;183    }
00000c  4770              BX       lr
;;;184    
                          ENDP

00000e  0000              DCW      0x0000
                  |L26.16|
                          DCD      0x40005c00

                          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  4904              LDR      r1,|L29.20|
;;;367    {
;;;368      return(_GetRxStallStatus(bEpNum));
000002  f8510020          LDR      r0,[r1,r0,LSL #2]
000006  f3c03001          UBFX     r0,r0,#12,#2
00000a  2801              CMP      r0,#1
00000c  d000              BEQ      |L29.16|
00000e  2000              MOVS     r0,#0
                  |L29.16|
;;;369    }
000010  4770              BX       lr
;;;370    /*******************************************************************************
                          ENDP

000012  0000              DCW      0x0000
                  |L29.20|
                          DCD      0x40005c00

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

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

000012  0000              DCW      0x0000
                  |L30.20|
                          DCD      0x40005c00

                          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  460a              MOV      r2,r1
000004  4603              MOV      r3,r0
;;;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  d005              BEQ      |L34.32|
;;;226      }
;;;227      else if (bDir == EP_DBUF_IN)
000014  2a02              CMP      r2,#2
000016  d102              BNE      |L34.30|
;;;228      { /* IN double buffered endpoint */
;;;229        _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPTX_DTOG1);
000018  f0200010          BIC      r0,r0,#0x10
                  |L34.28|
00001c  6008              STR      r0,[r1,#0]            ;225
                  |L34.30|
;;;230      }
;;;231    }
00001e  bd00              POP      {pc}
                  |L34.32|
000020  f4205080          BIC      r0,r0,#0x1000         ;225
000024  e7fa              B        |L34.28|
;;;232    
                          ENDP

000026  0000              DCW      0x0000
                  |L34.40|
                          DCD      0x40005c00

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

                  SetENDPOINT PROC
;;;142    *******************************************************************************/
;;;143    void SetENDPOINT(u8 bEpNum, u16 wRegValue)
000000  4a01              LDR      r2,|L35.8|
;;;144    {
;;;145      _SetENDPOINT(bEpNum, wRegValue);
000002  f8421020          STR      r1,[r2,r0,LSL #2]
;;;146    }
000006  4770              BX       lr
;;;147    
                          ENDP

                  |L35.8|
                          DCD      0x40005c00

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

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

000016  0000              DCW      0x0000
                  |L36.24|
                          DCD      0x40005c00

                          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  6812              LDR      r2,[r2,#0]
000008  b292              UXTH     r2,r2
00000a  eb0200c0          ADD      r0,r2,r0,LSL #3
00000e  4a03              LDR      r2,|L38.28|
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  4b14              LDR      r3,|L39.84|
;;;643    {
;;;644      _SetEPDblBuf0Count(bEpNum, bDir, wCount);
000002  2901              CMP      r1,#1
000004  d00a              BEQ      |L39.28|
000006  2902              CMP      r1,#2
000008  d107              BNE      |L39.26|
00000a  6819              LDR      r1,[r3,#0]
00000c  b289              UXTH     r1,r1
00000e  eb0100c0          ADD      r0,r1,r0,LSL #3
000012  4911              LDR      r1,|L39.88|
000014  eb010040          ADD      r0,r1,r0,LSL #1
000018  6042              STR      r2,[r0,#4]
                  |L39.26|
;;;645    }
00001a  4770              BX       lr
                  |L39.28|
00001c  6819              LDR      r1,[r3,#0]            ;644
00001e  b289              UXTH     r1,r1                 ;644
000020  eb0100c0          ADD      r0,r1,r0,LSL #3       ;644
000024  490c              LDR      r1,|L39.88|
000026  1d09              ADDS     r1,r1,#4              ;644
000028  eb010140          ADD      r1,r1,r0,LSL #1       ;644
00002c  2a3e              CMP      r2,#0x3e              ;644
00002e  d909              BLS      |L39.68|
000030  0950              LSRS     r0,r2,#5              ;644
000032  06d2              LSLS     r2,r2,#27             ;644
000034  d101              BNE      |L39.58|
000036  1e40              SUBS     r0,r0,#1              ;644
000038  b280              UXTH     r0,r0                 ;644
                  |L39.58|
00003a  f44f4200          MOV      r2,#0x8000            ;644
00003e  ea422080          ORR      r0,r2,r0,LSL #10      ;644
000042  e005              B        |L39.80|
                  |L39.68|
000044  0850              LSRS     r0,r2,#1              ;644
000046  07d2              LSLS     r2,r2,#31             ;644
000048  d001              BEQ      |L39.78|
00004a  1c40              ADDS     r0,r0,#1              ;644
00004c  b280              UXTH     r0,r0                 ;644
                  |L39.78|
00004e  0280              LSLS     r0,r0,#10             ;644
                  |L39.80|
000050  6008              STR      r0,[r1,#0]            ;644
000052  4770              BX       lr
;;;646    /*******************************************************************************
                          ENDP

                  |L39.84|
                          DCD      0x40005c50
                  |L39.88|
                          DCD      0x40006000

                          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  6812              LDR      r2,[r2,#0]
000008  b292              UXTH     r2,r2
00000a  eb0200c0          ADD      r0,r2,r0,LSL #3
00000e  4a03              LDR      r2,|L40.28|
000010  eb020040          ADD      r0,r2,r0,LSL #1
000014  6081              STR      r1,[r0,#8]
;;;599    }
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  4b14              LDR      r3,|L41.84|
;;;655    {
;;;656      _SetEPDblBuf1Count(bEpNum, bDir, wCount);
000002  2901              CMP      r1,#1
000004  d00a              BEQ      |L41.28|
000006  2902              CMP      r1,#2
000008  d107              BNE      |L41.26|
00000a  6819              LDR      r1,[r3,#0]
00000c  b289              UXTH     r1,r1
00000e  eb0100c0          ADD      r0,r1,r0,LSL #3
000012  4911              LDR      r1,|L41.88|
000014  eb010040          ADD      r0,r1,r0,LSL #1
000018  60c2              STR      r2,[r0,#0xc]
                  |L41.26|
;;;657    }
00001a  4770              BX       lr
                  |L41.28|
00001c  6819              LDR      r1,[r3,#0]            ;656
00001e  b289              UXTH     r1,r1                 ;656
000020  eb0100c0          ADD      r0,r1,r0,LSL #3       ;656
000024  490c              LDR      r1,|L41.88|
000026  310c              ADDS     r1,r1,#0xc            ;656
000028  eb010140          ADD      r1,r1,r0,LSL #1       ;656
00002c  2a3e              CMP      r2,#0x3e              ;656
00002e  d909              BLS      |L41.68|
000030  0950              LSRS     r0,r2,#5              ;656
000032  06d2              LSLS     r2,r2,#27             ;656
000034  d101              BNE      |L41.58|
000036  1e40              SUBS     r0,r0,#1              ;656
000038  b280              UXTH     r0,r0                 ;656
                  |L41.58|
00003a  f44f4200          MOV      r2,#0x8000            ;656
00003e  ea422080          ORR      r0,r2,r0,LSL #10      ;656
000042  e005              B        |L41.80|
                  |L41.68|
000044  0850              LSRS     r0,r2,#1              ;656
000046  07d2              LSLS     r2,r2,#31             ;656
000048  d001              BEQ      |L41.78|
00004a  1c40              ADDS     r0,r0,#1              ;656
00004c  b280              UXTH     r0,r0                 ;656
                  |L41.78|
00004e  0280              LSLS     r0,r0,#10             ;656
                  |L41.80|
000050  6008              STR      r0,[r1,#0]            ;656
000052  4770              BX       lr
;;;658    /*******************************************************************************
                          ENDP

                  |L41.84|
                          DCD      0x40005c50
                  |L41.88|
                          DCD      0x40006000

                          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  f0210401          BIC      r4,r1,#1
000006  4909              LDR      r1,|L42.44|
000008  680b              LDR      r3,[r1,#0]
00000a  f0220201          BIC      r2,r2,#1
00000e  b29b              UXTH     r3,r3
000010  eb0305c0          ADD      r5,r3,r0,LSL #3
000014  4b06              LDR      r3,|L42.48|
000016  f8434015          STR      r4,[r3,r5,LSL #1]
00001a  6809              LDR      r1,[r1,#0]
00001c  b289              UXTH     r1,r1
00001e  eb0100c0          ADD      r0,r1,r0,LSL #3
000022  eb030040          ADD      r0,r3,r0,LSL #1
000026  6082              STR      r2,[r0,#8]
;;;575    }
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  e92d43f0          PUSH     {r4-r9,lr}
;;;631    {
;;;632      _SetEPDblBuffCount(bEpNum, bDir, wCount);
000004  4b27              LDR      r3,|L43.164|
000006  2901              CMP      r1,#1
000008  d012              BEQ      |L43.48|
00000a  2902              CMP      r1,#2
00000c  d10e              BNE      |L43.44|
00000e  6819              LDR      r1,[r3,#0]
000010  b289              UXTH     r1,r1
000012  eb0104c0          ADD      r4,r1,r0,LSL #3
000016  4924              LDR      r1,|L43.168|
000018  eb010444          ADD      r4,r1,r4,LSL #1
00001c  6062              STR      r2,[r4,#4]
00001e  681b              LDR      r3,[r3,#0]
000020  b29b              UXTH     r3,r3
000022  eb0300c0          ADD      r0,r3,r0,LSL #3
000026  eb010040          ADD      r0,r1,r0,LSL #1
00002a  60c2              STR      r2,[r0,#0xc]
                  |L43.44|
;;;633    }
00002c  e8bd83f0          POP      {r4-r9,pc}
                  |L43.48|
000030  6819              LDR      r1,[r3,#0]            ;632
000032  4699              MOV      r9,r3                 ;632
000034  4b1c              LDR      r3,|L43.168|
000036  b289              UXTH     r1,r1                 ;632
000038  eb0101c0          ADD      r1,r1,r0,LSL #3       ;632
00003c  1d1b              ADDS     r3,r3,#4              ;632
00003e  eb030641          ADD      r6,r3,r1,LSL #1       ;632
000042  0953              LSRS     r3,r2,#5              ;632
000044  0851              LSRS     r1,r2,#1              ;632
000046  1e5c              SUBS     r4,r3,#1              ;632
000048  f44f4700          MOV      r7,#0x8000            ;632
00004c  f1010801          ADD      r8,r1,#1              ;632
000050  2a3e              CMP      r2,#0x3e              ;632
000052  d907              BLS      |L43.100|
000054  461d              MOV      r5,r3                 ;632
000056  ea5f6cc2          LSLS     r12,r2,#27            ;632
00005a  d100              BNE      |L43.94|
00005c  b2a5              UXTH     r5,r4                 ;632
                  |L43.94|
00005e  ea472585          ORR      r5,r7,r5,LSL #10      ;632
000062  e006              B        |L43.114|
                  |L43.100|
000064  07d5              LSLS     r5,r2,#31             ;632
000066  d003              BEQ      |L43.112|
000068  ea4f4508          LSL      r5,r8,#16             ;632
00006c  09ad              LSRS     r5,r5,#6              ;632
00006e  e000              B        |L43.114|
                  |L43.112|
000070  028d              LSLS     r5,r1,#10             ;632
                  |L43.114|
000072  6035              STR      r5,[r6,#0]            ;632
000074  f8d95000          LDR      r5,[r9,#0]            ;632
000078  b2ad              UXTH     r5,r5                 ;632
00007a  eb0500c0          ADD      r0,r5,r0,LSL #3       ;632
00007e  4d0a              LDR      r5,|L43.168|
000080  350c              ADDS     r5,r5,#0xc            ;632
000082  eb050040          ADD      r0,r5,r0,LSL #1       ;632
000086  2a3e              CMP      r2,#0x3e              ;632
000088  d905              BLS      |L43.150|
00008a  06d1              LSLS     r1,r2,#27             ;632
00008c  d100              BNE      |L43.144|
00008e  b2a3              UXTH     r3,r4                 ;632
                  |L43.144|
000090  ea472183          ORR      r1,r7,r3,LSL #10      ;632
000094  e004              B        |L43.160|
                  |L43.150|
000096  07d2              LSLS     r2,r2,#31             ;632
000098  d001              BEQ      |L43.158|
00009a  fa1ff188          UXTH     r1,r8                 ;632
                  |L43.158|
00009e  0289              LSLS     r1,r1,#10             ;632
                  |L43.160|
0000a0  6001              STR      r1,[r0,#0]            ;632
0000a2  e7c3              B        |L43.44|
;;;634    /*******************************************************************************
                          ENDP

                  |L43.164|
                          DCD      0x40005c50
                  |L43.168|
                          DCD      0x40006000

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

                  SetEPDoubleBuff PROC
;;;332    *******************************************************************************/
;;;333    void SetEPDoubleBuff(u8 bEpNum)
000000  4905              LDR      r1,|L44.24|
;;;334    {
;;;335      _SetEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  6801              LDR      r1,[r0,#0]
000008  f648728f          MOV      r2,#0x8f8f
00000c  b289              UXTH     r1,r1
00000e  f4417180          ORR      r1,r1,#0x100
000012  4011              ANDS     r1,r1,r2
000014  6001              STR      r1,[r0,#0]
;;;336    }
000016  4770              BX       lr
;;;337    /*******************************************************************************
                          ENDP

                  |L44.24|
                          DCD      0x40005c00

                          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  6812              LDR      r2,[r2,#0]
000008  b292              UXTH     r2,r2
00000a  eb0200c0          ADD      r0,r2,r0,LSL #3
00000e  4a03              LDR      r2,|L45.28|
000010  eb020040          ADD      r0,r2,r0,LSL #1
000014  6081              STR      r1,[r0,#8]
;;;482    }
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  6812              LDR      r2,[r2,#0]
000004  293e              CMP      r1,#0x3e
000006  b292              UXTH     r2,r2
000008  eb0200c0          ADD      r0,r2,r0,LSL #3
00000c  4a0b              LDR      r2,|L46.60|
00000e  eb020240          ADD      r2,r2,r0,LSL #1
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  4a09              LDR      r2,|L47.40|
;;;207    {
;;;208      _SetEPRxStatus(bEpNum, wState);
000002  eb020280          ADD      r2,r2,r0,LSL #2
000006  6810              LDR      r0,[r2,#0]
000008  f64b738f          MOV      r3,#0xbf8f
00000c  b280              UXTH     r0,r0
00000e  ea000003          AND      r0,r0,r3
000012  04cb              LSLS     r3,r1,#19
000014  d501              BPL      |L47.26|
000016  f4805080          EOR      r0,r0,#0x1000
                  |L47.26|
00001a  0489              LSLS     r1,r1,#18
00001c  d501              BPL      |L47.34|
00001e  f4805000          EOR      r0,r0,#0x2000
                  |L47.34|
000022  6010              STR      r0,[r2,#0]
;;;209    }
000024  4770              BX       lr
;;;210    
                          ENDP

000026  0000              DCW      0x0000
                  |L47.40|
                          DCD      0x40005c00

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

                  SetEPRxValid PROC
;;;275    *******************************************************************************/
;;;276    void SetEPRxValid(u8 bEpNum)
000000  4905              LDR      r1,|L48.24|
;;;277    {
;;;278      _SetEPRxStatus(bEpNum, EP_RX_VALID);
000002  eb010180          ADD      r1,r1,r0,LSL #2
000006  6808              LDR      r0,[r1,#0]
000008  f64b728f          MOV      r2,#0xbf8f
00000c  b280              UXTH     r0,r0
00000e  4010              ANDS     r0,r0,r2
000010  f4805040          EOR      r0,r0,#0x3000
000014  6008              STR      r0,[r1,#0]
;;;279    }
000016  4770              BX       lr
;;;280    
                          ENDP

                  |L48.24|
                          DCD      0x40005c00

                          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  6812              LDR      r2,[r2,#0]
000008  b292              UXTH     r2,r2
00000a  eb0200c0          ADD      r0,r2,r0,LSL #3
00000e  4a03              LDR      r2,|L49.28|
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  6812              LDR      r2,[r2,#0]
000004  b292              UXTH     r2,r2
000006  eb0200c0          ADD      r0,r2,r0,LSL #3
00000a  4a03              LDR      r2,|L50.24|
00000c  eb020040          ADD      r0,r2,r0,LSL #1
000010  6041              STR      r1,[r0,#4]
;;;516    }
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  4a09              LDR      r2,|L51.40|
;;;194    {
;;;195      _SetEPTxStatus(bEpNum, wState);
000002  eb020280          ADD      r2,r2,r0,LSL #2
000006  6810              LDR      r0,[r2,#0]
000008  f64873bf          MOV      r3,#0x8fbf
00000c  b280              UXTH     r0,r0
00000e  ea000003          AND      r0,r0,r3
000012  06cb              LSLS     r3,r1,#27
000014  d501              BPL      |L51.26|
000016  f0800010          EOR      r0,r0,#0x10
                  |L51.26|
00001a  0689              LSLS     r1,r1,#26
00001c  d501              BPL      |L51.34|
00001e  f0800020          EOR      r0,r0,#0x20
                  |L51.34|
000022  6010              STR      r0,[r2,#0]
;;;196    }
000024  4770              BX       lr
;;;197    
                          ENDP

000026  0000              DCW      0x0000
                  |L51.40|
                          DCD      0x40005c00

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

                  SetEPTxValid PROC
;;;263    *******************************************************************************/
;;;264    void SetEPTxValid(u8 bEpNum)
000000  4905              LDR      r1,|L52.24|
;;;265    {
;;;266      _SetEPTxStatus(bEpNum, EP_TX_VALID);
000002  eb010180          ADD      r1,r1,r0,LSL #2
000006  6808              LDR      r0,[r1,#0]
000008  f64872bf          MOV      r2,#0x8fbf
00000c  b280              UXTH     r0,r0
00000e  4010              ANDS     r0,r0,r2
000010  f0800030          EOR      r0,r0,#0x30
000014  6008              STR      r0,[r1,#0]
;;;267    }
000016  4770              BX       lr
;;;268    
                          ENDP

                  |L52.24|
                          DCD      0x40005c00

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

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

000016  0000              DCW      0x0000
                  |L53.24|
                          DCD      0x40005c00

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

                  SetEP_KIND PROC
;;;287    *******************************************************************************/
;;;288    void SetEP_KIND(u8 bEpNum)
000000  4905              LDR      r1,|L54.24|
;;;289    {
;;;290      _SetEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  6801              LDR      r1,[r0,#0]
000008  f648728f          MOV      r2,#0x8f8f
00000c  b289              UXTH     r1,r1
00000e  f4417180          ORR      r1,r1,#0x100
000012  4011              ANDS     r1,r1,r2
000014  6001              STR      r1,[r0,#0]
;;;291    }
000016  4770              BX       lr
;;;292    
                          ENDP

                  |L54.24|
                          DCD      0x40005c00

                          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  4905              LDR      r1,|L56.24|
;;;323    {
;;;324      _SetEP_KIND(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  6801              LDR      r1,[r0,#0]
000008  f648728f          MOV      r2,#0x8f8f
00000c  b289              UXTH     r1,r1
00000e  f4417180          ORR      r1,r1,#0x100
000012  4011              ANDS     r1,r1,r2
000014  6001              STR      r1,[r0,#0]
;;;325    }
000016  4770              BX       lr
;;;326    /*******************************************************************************
                          ENDP

                  |L56.24|
                          DCD      0x40005c00

                          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  4905              LDR      r1,|L58.24|
;;;400    {
;;;401      _ToggleDTOG_RX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  6801              LDR      r1,[r0,#0]
000008  f648728f          MOV      r2,#0x8f8f
00000c  b289              UXTH     r1,r1
00000e  4011              ANDS     r1,r1,r2
000010  f4414180          ORR      r1,r1,#0x4000
000014  6001              STR      r1,[r0,#0]
;;;402    }
000016  4770              BX       lr
;;;403    /*******************************************************************************
                          ENDP

                  |L58.24|
                          DCD      0x40005c00

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

                  ToggleDTOG_TX PROC
;;;409    *******************************************************************************/
;;;410    void ToggleDTOG_TX(u8 bEpNum)
000000  4905              LDR      r1,|L59.24|
;;;411    {
;;;412      _ToggleDTOG_TX(bEpNum);
000002  eb010080          ADD      r0,r1,r0,LSL #2
000006  6801              LDR      r1,[r0,#0]
000008  f648728f          MOV      r2,#0x8f8f
00000c  b289              UXTH     r1,r1
00000e  4011              ANDS     r1,r1,r2
000010  f0410140          ORR      r1,r1,#0x40
000014  6001              STR      r1,[r0,#0]
;;;413    }
000016  4770              BX       lr
;;;414    /*******************************************************************************
                          ENDP

                  |L59.24|
                          DCD      0x40005c00
