ui_main.lst

来自「MP3 整个 SDK」· LST 代码 · 共 928 行 · 第 1/3 页

LST
928
字号
   \   0270  212100            LD      HL,33
   \   0273  CD8201            CALL    LWRD ?0093
   \   0276  F1                POP     AF
    202              main_ResShowPic(MBIT0+temp[1]-0x30,POS_BITRATE+6,POSY_BITRATE);
   \   0277  0E04              LD      C,4
   \   0279  C5                PUSH    BC
   \   027A  0E0F              LD      C,15
   \   027C  210300            LD      HL,3
   \   027F  39                ADD     HL,SP
   \   0280  5E                LD      E,(HL)
   \   0281  1600              LD      D,0
   \   0283  212100            LD      HL,33
   \   0286  CD8201            CALL    LWRD ?0093
   \   0289  F1                POP     AF
    203              main_ResShowPic(MBIT0+temp[2]-0x30,POS_BITRATE+12,POSY_BITRATE);
   \   028A  0E04              LD      C,4
   \   028C  C5                PUSH    BC
   \   028D  0E15              LD      C,21
   \   028F  210400            LD      HL,4
   \   0292  39                ADD     HL,SP
   \   0293  5E                LD      E,(HL)
   \   0294  1600              LD      D,0
   \   0296  212100            LD      HL,33
   \   0299  C34702            JP      LWRD ?0088
    204          
    205          }
   \   029C            ui_show_batt:
    206          
    207          /* event r: reset
    208           * event l: battery empty
    209           * event h: battery full
    210           * event n: nmi, auto standby
    211           * event r1: stop recording point, file < 32M
    212           * event r2: stop recording point, file > 32M
    213           *
    214           * value    voltage        碱性电池    镍氢电池    锂电池
    215           * 0         0.90        r
    216           * 1        0.94
    217           * 2        0.98        n        r
    218           * 3        1.02
    219           * 4        1.06        l,r1        n
    220           * 5        1.10        r2        l,r1
    221           * 6        1.14                r2
    222           * 7        1.18
    223           * 8        1.22
    224           * 9        1.26
    225           * 10        1.30                        n
    226           * 11        1.34                        l,r1
    227           * 12        1.38        h        h        r2
    228           * 13        1.42
    229           * 14        1.46
    230           * 15        1.50                        h
    231           */
    232          //0~15, -1 表示正在充电
    233          void ui_show_batt(int value, char batt_type, bool fmflag)
    234          {
   \   029C  DDE5              PUSH    IX
   \   029E  C5                PUSH    BC
   \   029F  D5                PUSH    DE
   \   02A0  DDE1              POP     IX
    235              static int cur_value=0;    //当前电量值
    236          
    237              //ASSERT(value == -1 || (value >= 0 && value <= 15));
    238              if((sKY_ChargeSet(0)!=0)&&(input8(0x9c)<0xe4))
   \   02A2  1E00              LD      E,0
   \   02A4  CD0000            CALL    LWRD sKY_ChargeSet
   \   02A7  B7                OR      A
   \   02A8  281F              JR      Z,?0009
   \   02AA  DB9C              IN      A,(156)
   \   02AC  FEE4              CP      228
   \   02AE  3019              JR      NC,?0009
   \   02B0            ?0011:
   \   02B0            ?0010:
   \   02B0            ?0008:
    239              {
    240                 cur_value++;
   \   02B0  2A0000            LD      HL,(?0007)
   \   02B3  23                INC     HL
   \   02B4  220000            LD      (?0007),HL
    241                  if(cur_value > 8) cur_value = 0;
   \   02B7  4D                LD      C,L
   \   02B8  44                LD      B,H
   \   02B9  210800            LD      HL,8
   \   02BC  F680              OR      128
   \   02BE  ED42              SBC     HL,BC
   \   02C0  E2C402            JP      PO,?0065
   \   02C3  AC                XOR     H
   \   02C4            ?0065:
   \   02C4  F26303            JP      P,?0040
   \   02C7            ?0012:
   \   02C7  186E              JR      ?0080
   \   02C9            ?0013:
    242              }
    243          
    244              else
   \   02C9            ?0009:
    245              {
    246                  if(batt_type == BATT_TYPE_ALKALINE)    //碱性电池
   \   02C9  AF                XOR     A
   \   02CA  B1                OR      C
   \   02CB  2028              JR      NZ,?0016
   \   02CD            ?0015:
    247                  {
    248                      if(value < 62) cur_value = 0;    //batt empty
   \   02CD  013E80            LD      BC,32830
   \   02D0  DDE5              PUSH    IX
   \   02D2  E1                POP     HL
   \   02D3  78                LD      A,B
   \   02D4  AC                XOR     H
   \   02D5  67                LD      H,A
   \   02D6  ED42              SBC     HL,BC
   \   02D8  385D              JR      C,?0080
   \   02DA            ?0017:
   \   02DA            ?0018:
    249                      else if(value > 116 ) cur_value = 8;    //batt full
   \   02DA  DDE5              PUSH    IX
   \   02DC  C1                POP     BC
   \   02DD  217400            LD      HL,116
   \   02E0  F680              OR      128
   \   02E2  ED42              SBC     HL,BC
   \   02E4  E2E802            JP      PO,?0066
   \   02E7  AC                XOR     H
   \   02E8            ?0066:
   \   02E8  FA4C03            JP      M,?0079
   \   02EB            ?0020:
   \   02EB            ?0021:
    250                      else cur_value = (value - 62) / 7;      // 116 - 62
   \   02EB  21C2FF            LD      HL,65474
   \   02EE  09                ADD     HL,BC
   \   02EF  EB                EX      DE,HL
   \   02F0  010700            LD      BC,7
   \   02F3  1867              JR      ?0073
   \   02F5            ?0022:
   \   02F5            ?0019:
   \   02F5            ?0016:
    251                  }
    252                  else if(batt_type == BATT_TYPE_NIH)    //镍氢电池
   \   02F5  41                LD      B,C
   \   02F6  05                DEC     B
   \   02F7  2028              JR      NZ,?0025
   \   02F9            ?0024:
    253                  {
    254                      if(value < 69) cur_value = 0;    //batt empty
   \   02F9  014580            LD      BC,32837
   \   02FC  DDE5              PUSH    IX
   \   02FE  E1                POP     HL
   \   02FF  78                LD      A,B
   \   0300  AC                XOR     H
   \   0301  67                LD      H,A
   \   0302  ED42              SBC     HL,BC
   \   0304  3831              JR      C,?0080
   \   0306            ?0026:
   \   0306            ?0027:
    255                      else if(value > 116 ) cur_value = 8;    //batt full
   \   0306  DDE5              PUSH    IX
   \   0308  C1                POP     BC
   \   0309  217400            LD      HL,116
   \   030C  F680              OR      128
   \   030E  ED42              SBC     HL,BC
   \   0310  E21403            JP      PO,?0067
   \   0313  AC                XOR     H
   \   0314            ?0067:
   \   0314  FA4C03            JP      M,?0079
   \   0317            ?0029:
   \   0317            ?0030:
    256                      else cur_value = (value - 69) / 6;
   \   0317  21BBFF            LD      HL,65467
   \   031A  09                ADD     HL,BC
   \   031B  EB                EX      DE,HL
   \   031C  010600            LD      BC,6
   \   031F  183B              JR      ?0073
   \   0321            ?0031:
   \   0321            ?0028:
   \   0321            ?0025:
    257                  }
    258                  else if(batt_type == BATT_TYPE_LITHIUM)    //锂电池
   \   0321  210000            LD      HL,0
   \   0324  39                ADD     HL,SP
   \   0325  46                LD      B,(HL)
   \   0326  05                DEC     B
   \   0327  05                DEC     B
   \   0328  2039              JR      NZ,?0040
   \   032A            ?0033:
    259                  {
    260                      if(value < 175) cur_value = 0;    //batt empty
   \   032A  01AF80            LD      BC,32943
   \   032D  DDE5              PUSH    IX
   \   032F  E1                POP     HL
   \   0330  78                LD      A,B
   \   0331  AC                XOR     H
   \   0332  67                LD      H,A
   \   0333  ED42              SBC     HL,BC
   \   0335  3005              JR      NC,?0036
   \   0337            ?0035:
   \   0337            ?0080:
   \   0337  210000            LD      HL,0
   \   033A  1813              JR      ?0071
   \   033C            ?0036:
    261                      else if(value > 201)cur_value = 8;
   \   033C  DDE5              PUSH    IX
   \   033E  C1                POP     BC
   \   033F  21C900            LD      HL,201
   \   0342  B5                OR      L
   \   0343  ED42              SBC     HL,BC
   \   0345  E24903            JP      PO,?0068
   \   0348  AC                XOR     H
   \   0349            ?0068:
   \   0349  F25403            JP      P,?0039
   \   034C            ?0038:
   \   034C            ?0079:
   \   034C  210800            LD      HL,8
   \   034F            ?0071:
   \   034F  220000            LD      (?0007),HL
   \   0352  180F              JR      ?0040
   \   0354            ?0039:
    262                      else cur_value = (value - 175) / 4;    //  zxs change
   \   0354  2151FF            LD      HL,65361
   \   0357  09                ADD     HL,BC
   \   0358  EB                EX      DE,HL
   \   0359  010400            LD      BC,4
   \   035C            ?0073:
   \   035C  CD0000            CALL    LWRD ?SS_DIV_L02
   \   035F  ED530000          LD      (?0007),DE
   \   0363            ?0040:
   \   0363            ?0037:
    263                  }
    264                  else ASSERT(FALSE);
   \   0363            ?0034:
   \   0363            ?0041:
   \   0363            ?0032:
   \   0363            ?0023:
   \   0363            ?0014:
    265              }
    266                if(!fmflag)
   \   0363            ?0042:
    267                 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
    268                else
   \   0363            ?0043:
    269                 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
   \   0363  0EA2              LD      C,162
   \   0365  C5                PUSH    BC
   \   0366  0EC1              LD      C,193
   \   0368  211300            LD      HL,19
   \   036B  ED5B0000          LD      DE,(?0007)
   \   036F  CD8201            CALL    LWRD ?0093
   \   0372  F1                POP     AF
   \   0373            ?0044:
    270          }
   \   0373  E1                POP     HL
   \   0374  DDE1              POP     IX
   \   0376  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0379            ui_show_lock:
    271          
    272          char ui_show_lock(char islock)
    273          {
   \   0379  C5                PUSH    BC
   \   037A  D5                PUSH    DE
    274              if(islock == 1)
   \   037B  43                LD      B,E
   \   037C  05                DEC     B
   \   037D  201E              JR      NZ,?0046
   \   037F            ?0045:
    275              {
    276                  SetBackgdColor(Color_BULE1_def);
   \   037F  48                LD      C,B
   \   0380  113E75            LD      DE,30014
   \   0383  CD0000            CALL    LWRD SetBackgdColor
    277                  ClearScreen(NULL);
   \   0386  110000            LD      DE,0
   \   0389  CD0000            CALL    LWRD ClearScreen
    278          
    279                  ResShowPic(UDLOCK_S,86,80);
   \   038C  0E50              LD      C,80
   \   038E  C5                PUSH    BC
   \   038F  0E56              LD      C,86
   \   0391  110800            LD      DE,8
   \   0394  3E00              LD      A,BYTE3 ResShowPic
   \   0396  210000            LD      HL,LWRD ResShowPic
   \   0399  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   039C  F1                POP     AF
   \   039D            ?0046:
    280              }
    281              //wait 2s
    282              return ap_sleep(4);
   \   039D  110400            LD      DE,4
   \   03A0  3E00              LD      A,BYTE3 ap_sleep
   \   03A2  210000            LD      HL,LWRD ap_sleep
   \   03A5  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    283          }
   \   03A8  F1                POP     AF
   \   03A9  C1                POP     BC
   \   03AA  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
    284          
    285          
   \   0000                    RSEG    IDATA0
   \   0000            ?0007:
   \   0002                    DEFS    2
   \   0000                    RSEG    CDATA0
   \   0000  0000              DEFW    0
   \   0002                    END

Errors: none
Warnings: none
Code size: 941
Constant size: 2
Static variable size: Data(2) Iram(0)

⌨️ 快捷键说明

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