⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui_main_for_rec.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:09 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ui_main_for_rec.c          #
#       List file     =  d:\case_i_d90f\ap\ap_fmrecord\list\ui_main_for_rec.lst#
#       Object file   =  d:\case_i_d90f\ap\ap_fmrecord\obj\ui_main_for_rec.r01#
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\ap_fmrecord\Obj\ -e -K  #
#                        -w -gA -s9 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d90f\ap\ap_fmrecord\List\ -q -t8 -X     #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        D:\CASE_I_D90F\AP\COMMON\ui_main_for_rec.c          #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_main_for_rec(17)
   \   0000                    RSEG    COM_MAIN(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  ClearScreen
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  PutSDImage
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  SD_FRead
   \   0000                    EXTERN  SD_FSeek
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetTextPos
   \   0000                    EXTERN  UpdateScreen
   \   0000                    EXTERN  ap_sleep
   \   0000                    PUBLIC  itoa_1
   \   0000                    PUBLIC  itoa_2
   \   0000                    PUBLIC  itoa_3
   \   0000                    PUBLIC  itoa_4
   \   0000                    PUBLIC  main_ResShowPic
   \   0000                    EXTERN  res_entry
   \   0000                    EXTERN  res_fp
   \   0000                    EXTERN  res_region
   \   0000                    EXTERN  sKY_ChargeSet
   \   0000                    EXTERN  ui_auto_update
   \   0000                    PUBLIC  ui_show_a
   \   0000                    PUBLIC  ui_show_batt
   \   0000                    PUBLIC  ui_show_d
   \   0000                    PUBLIC  ui_show_d2
   \   0000                    PUBLIC  ui_show_f
   \   0000                    PUBLIC  ui_show_g
   \   0000                    PUBLIC  ui_show_lock
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?UC_DIV_L01
   \   0000                    EXTERN  ?UC_MOD_L01
   \   0000                    EXTERN  ?US_DIV_L02
   \   0000                    EXTERN  ?SS_DIV_L02
   \   0000                    EXTERN  ?US_MOD_L02
   \   0000                    EXTERN  ?L_LSH_L03
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    COM_MAIN
   \   0000            itoa_1:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        ap common lib , main ui control
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          *******************************************************************************
     10          */
     11          #pragma codeseg(COM_MAIN)
     12          
     13          #include "ap_common.h"
     14          
     15          //主界面为了不用bank切换而使用 ResShowPic()
     16          extern res_entry_t res_entry;
     17          extern region_t res_region;
     18          extern BYTE charge_flag;
     19          
     20          //bank const
     21          /*注意-以下函数必须能访问到这些常量 */
     22          #pragma memory=constseg(COM_MAIN_D)
     23          
     24          #pragma memory=default
     25          
     26          /*
     27          ********************************************************************************
     28          * Description : 数字转换成字符串
     29          *
     30          * Arguments   : i, 数字
     31          *               buf, 输出字符串指针, 3 bytes
     32          *
     33          * Returns     : 成功, 输出字符串指针
     34          *
     35          * Notes       : 数字只能是 0~9
     36          *
     37          ********************************************************************************
     38          */
     39          char *itoa_1(BYTE i, char *buf)
     40          {
   \   0000  DDE5              PUSH    IX
   \   0002  C5                PUSH    BC
   \   0003  DDE1              POP     IX
     41              
     42              buf[0] = (i % 10)+'0';
   \   0005  060A              LD      B,10
   \   0007  7B                LD      A,E
   \   0008  CD0000            CALL    LWRD ?UC_MOD_L01
   \   000B  C630              ADD     A,48
   \   000D  DD7700            LD      (IX+0),A
     43              buf[1] = 0;
   \   0010  DD360100          LD      (IX+1),0
     44              return buf;
   \   0014            ?0083:
   \   0014  DDE5              PUSH    IX
   \   0016  E1                POP     HL
     45          }
   \   0017  DDE1              POP     IX
   \   0019  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   001C            itoa_2:
     46          
     47          /*
     48          ********************************************************************************
     49          * Description : 数字转换成字符串
     50          *
     51          * Arguments   : i, 数字
     52          *               buf, 输出字符串指针, 3 bytes
     53          *
     54          * Returns     : 成功, 输出字符串指针
     55          *
     56          * Notes       : 数字只能是 00~99
     57          *
     58          ********************************************************************************
     59          */
     60          char *itoa_2(BYTE i, char *buf)
     61          {
   \   001C  DDE5              PUSH    IX
   \   001E  C5                PUSH    BC
   \   001F  DDE1              POP     IX
   \   0021  53                LD      D,E
     62             
     63               
     64              buf[0] = (i % 100) / 10+'0';
   \   0022  0664              LD      B,100
   \   0024  7B                LD      A,E
   \   0025  CD0000            CALL    LWRD ?UC_MOD_L01
   \   0028  060A              LD      B,10
   \   002A  CD0000            CALL    LWRD ?UC_DIV_L01
   \   002D  C630              ADD     A,48
   \   002F  DD7700            LD      (IX+0),A
     65              buf[1] = (i % 10)+'0';
   \   0032  7A                LD      A,D
   \   0033  CD0000            CALL    LWRD ?UC_MOD_L01
   \   0036  C630              ADD     A,48
   \   0038  DD7701            LD      (IX+1),A
     66              buf[2] = 0;
   \   003B  DD360200          LD      (IX+2),0
     67              return buf;
   \   003F  C31400            JP      LWRD ?0083
     68          }
   \   0042            itoa_3:
     69          /*
     70          ********************************************************************************
     71          * Description : 数字转换成字符串
     72          *
     73          * Arguments   : i, 数字
     74          *               buf, 输出字符串指针,4 bytes
     75          *
     76          * Returns     : 成功, 输出字符串指针
     77          *
     78          * Notes       : 数字只能是 000~999
     79          *
     80          ********************************************************************************
     81          */
     82          char *itoa_3(WORD i, char *buf)
     83          {
   \   0042  FDE5              PUSH    IY
   \   0044  DDE5              PUSH    IX
   \   0046  C5                PUSH    BC
   \   0047  DDE1              POP     IX
   \   0049  D5                PUSH    DE
   \   004A  FDE1              POP     IY
     84              
     85              buf[0] = (i % 1000) / 100+'0' ;
   \   004C  01E803            LD      BC,1000
   \   004F  CD0000            CALL    LWRD ?US_MOD_L02
   \   0052  016400            LD      BC,100
     86              buf[1] = (i % 100) / 10+'0' ;
   \   0055  CD7900            CALL    LWRD ?0087
   \   0058  0E0A              LD      C,10
   \   005A  CD0000            CALL    LWRD ?US_DIV_L02
   \   005D  7B                LD      A,E
   \   005E  C630              ADD     A,48
   \   0060  DD7701            LD      (IX+1),A
     87              buf[2] = (i % 10)+'0';
   \   0063  CD8200            CALL    LWRD ?0088
   \   0066  7B                LD      A,E
   \   0067  C630              ADD     A,48
   \   0069  DD7702            LD      (IX+2),A
     88              buf[3] = 0;
   \   006C  DD7003            LD      (IX+3),B
     89          
     90              return buf;
   \   006F            ?0084:
   \   006F  DDE5              PUSH    IX
   \   0071  E1                POP     HL
     91          }
   \   0072  DDE1              POP     IX
   \   0074  FDE1              POP     IY
   \   0076  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0079            ?0087:
   \   0079  CD0000            CALL    LWRD ?US_DIV_L02
   \   007C  7B                LD      A,E
   \   007D  C630              ADD     A,48
   \   007F  DD7700            LD      (IX+0),A
   \   0082            ?0088:
   \   0082  FDE5              PUSH    IY
   \   0084  D1                POP     DE
   \   0085  C30000            JP      LWRD ?US_MOD_L02
   \   0088            itoa_4:
     92          /*
     93          ********************************************************************************
     94          * Description : 数字转换成字符串
     95          *
     96          * Arguments   : i, 数字
     97          *               buf, 输出字符串指针,5 bytes
     98          *
     99          * Returns     : 成功, 输出字符串指针
    100          *
    101          * Notes       : 数字只能是 0000~9999
    102          *
    103          ********************************************************************************
    104          */
    105          char *itoa_4(WORD i, char *buf)
    106          {
   \   0088  FDE5              PUSH    IY
   \   008A  DDE5              PUSH    IX
   \   008C  C5                PUSH    BC
   \   008D  DDE1              POP     IX
   \   008F  D5                PUSH    DE
   \   0090  FDE1              POP     IY
    107              
    108              buf[0] = (i % 10000) / 1000+'0' ;
   \   0092  011027            LD      BC,10000
   \   0095  CD0000            CALL    LWRD ?US_MOD_L02
   \   0098  01E803            LD      BC,1000
    109              buf[1] = (i % 1000) / 100+'0' ;
   \   009B  CD7900            CALL    LWRD ?0087
   \   009E  016400            LD      BC,100
   \   00A1  CD0000            CALL    LWRD ?US_DIV_L02
   \   00A4  7B                LD      A,E
   \   00A5  C630              ADD     A,48
   \   00A7  DD7701            LD      (IX+1),A
    110              buf[2] = (i % 100) / 10+'0' ;
   \   00AA  CD8200            CALL    LWRD ?0088
   \   00AD  0E0A              LD      C,10
   \   00AF  CD0000            CALL    LWRD ?US_DIV_L02
   \   00B2  7B                LD      A,E
   \   00B3  C630              ADD     A,48
   \   00B5  DD7702            LD      (IX+2),A
    111              buf[3] = (i % 10)+'0';
   \   00B8  CD8200            CALL    LWRD ?0088
   \   00BB  7B                LD      A,E
   \   00BC  C630              ADD     A,48
   \   00BE  DD7703            LD      (IX+3),A
    112              buf[4] = 0;
   \   00C1  DD7004            LD      (IX+4),B
    113          
    114              return buf;
   \   00C4  C36F00            JP      LWRD ?0084
    115          }
   \   00C7            main_ResShowPic:
    116          
    117          
    118          //只有这个界面使用,为了提高效率而放在这里
    119          int main_ResShowPic(WORD id, uchar x, uchar y)
    120          {
   \   00C7  C5                PUSH    BC
   \   00C8  D5                PUSH    DE
   \   00C9  F5                PUSH    AF
   \   00CA  F5                PUSH    AF
    121              WORD buf[2];    //buffer for sd read
    122          
    123              ASSERT(id <= UIID_MAX);
    124          
    125              //读entry
    126              SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
   \   00CB  6B                LD      L,E
   \   00CC  62                LD      H,D
   \   00CD  010000            LD      BC,0
   \   00D0  3E04              LD      A,4
   \   00D2  CD0000            CALL    LWRD ?L_LSH_L03
   \   00D5  C5                PUSH    BC
   \   00D6  E5                PUSH    HL
   \   00D7  0E00              LD      C,0
   \   00D9  ED5B0000          LD      DE,(res_fp)
   \   00DD  CD0000            CALL    LWRD SD_FSeek

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -