//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION   08/Aug/2010  00:10:34 /
// Copyright 1999-2005 IAR Systems. All rights reserved.                     /
//                                                                           /
//    Cpu mode        =  interwork                                           /
//    Endian          =  little                                              /
//    Stack alignment =  4                                                   /
//    Source file     =  C:\Documents and Settings\loquat\桌面\SuDoKu\MemCon /
//                       trol\blockseek.c                                    /
//    Command line    =  "C:\Documents and Settings\loquat\桌面\SuDoKu\MemCo /
//                       ntrol\blockseek.c" -D SL65sw53 -lCN "C:\Documents   /
//                       and Settings\loquat\桌面\SuDoKu\MemControl\Other\SL /
//                       65v53\List\" -lb "C:\Documents and                  /
//                       Settings\loquat\桌面\SuDoKu\MemControl\Other\SL65v5 /
//                       3\List\" -o "C:\Documents and                       /
//                       Settings\loquat\桌面\SuDoKu\MemControl\Other\SL65v5 /
//                       3\Obj\" -s9 --no_unroll --no_clustering --cpu_mode  /
//                       thumb --endian little --cpu ARM926EJ-S              /
//                       --stack_align 4 --interwork -e --fpu None -I        /
//                       "F:\software\Embedded Workbench 4.0                 /
//                       Evaluation\ARM\INC\" --inline_threshold=2           /
//    List file       =  C:\Documents and Settings\loquat\桌面\SuDoKu\MemCon /
//                       trol\Other\SL65v53\List\blockseek.s79               /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME blockseek

        RSEG CSTACK:DATA:NOROOT(2)

        MULTWEAK ??FindEEFULLBlock??rA
        MULTWEAK ??SeekBlock??rA
        PUBLIC FindEEFULLBlock
        PUBLIC SeekBlock

FindEEFULLBlock     SYMBOL "FindEEFULLBlock"
??FindEEFULLBlock??rA SYMBOL "??rA", FindEEFULLBlock
SeekBlock           SYMBOL "SeekBlock"
??SeekBlock??rA     SYMBOL "??rA", SeekBlock


        RSEG CODE:CODE:NOROOT(2)
        ARM
??FindEEFULLBlock??rA:
        ADD      R12,PC,#+1
        BX       R12
        REQUIRE FindEEFULLBlock

        RSEG CODE:CODE:NOROOT(2)
        THUMB
FindEEFULLBlock:
        PUSH     {R4,R5}
        MOVS     R0,#+0
        LDR      R4,??FindEEFULLBlock_0  ;; 0xffffffffa023fff0
        MOVS     R1,#+0
        MVNS     R1,R1
        MOVS     R2,#+152
        LSLS     R2,R2,#+1
        B        ??FindEEFULLBlock_1
??FindEEFULLBlock_2:
        SUBS     R4,R4,#+16
??FindEEFULLBlock_1:
        LDR      R5,[R4, #+4]
        MOVS     R3,#+63
        MVNS     R3,R3
        CMP      R5,R1
        BEQ      ??FindEEFULLBlock_3
        LDR      R5,[R4, #+0]
        CMP      R5,R3
        BNE      ??FindEEFULLBlock_2
        LDR      R3,[R4, #+4]
        CMP      R3,R2
        BNE      ??FindEEFULLBlock_2
        LDR      R0,[R4, #+12]
        LDR      R1,??FindEEFULLBlock_0+0x4  ;; 0xffffffffa0220001
        ADDS     R0,R0,R1
        POP      {R4,R5}
        BX       LR
??FindEEFULLBlock_3:
        LDR      R4,??FindEEFULLBlock_0+0x8  ;; 0xffffffffa025fff0
        B        ??FindEEFULLBlock_4
??FindEEFULLBlock_5:
        SUBS     R4,R4,#+16
??FindEEFULLBlock_4:
        LDR      R5,[R4, #+4]
        CMP      R5,R1
        BEQ      ??FindEEFULLBlock_6
        LDR      R5,[R4, #+0]
        CMP      R5,R3
        BNE      ??FindEEFULLBlock_5
        LDR      R5,[R4, #+4]
        CMP      R5,R2
        BNE      ??FindEEFULLBlock_5
        LDR      R0,[R4, #+12]
        LDR      R1,??FindEEFULLBlock_0+0xC  ;; 0xffffffffa0240001
        ADDS     R0,R0,R1
??FindEEFULLBlock_6:
        POP      {R4,R5}
        BX       LR
        DATA
??FindEEFULLBlock_0:
        DC32     0xffffffffa023fff0
        DC32     0xffffffffa0220001
        DC32     0xffffffffa025fff0
        DC32     0xffffffffa0240001

        RSEG CODE:CODE:NOROOT(2)
        ARM
??SeekBlock??rA:
        ADD      R12,PC,#+1
        BX       R12
        REQUIRE SeekBlock

        RSEG CODE:CODE:NOROOT(2)
        THUMB
SeekBlock:
        PUSH     {LR}
        BL       FindEEFULLBlock
        LDR      R1,??SeekBlock_0  ;; 0xffffffffa876fd0c
        ADDS     R0,R0,#+61
        STR      R0,[R1, #+0]
        POP      {PC}             ;; return
        Nop      
        DATA
??SeekBlock_0:
        DC32     0xffffffffa876fd0c

        END
// 
// 136 bytes in segment CODE
// 
// 120 bytes of CODE memory (+ 16 bytes shared)
//
//Errors: none
//Warnings: none
