ui_main_for_music.lst

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

LST
771
字号
   \   01DC  F1                POP     AF
    188              string++;
    189              id= *string-0x30;
   \   01DD  DD7E04            LD      A,(IX+4)
   \   01E0  C6D0              ADD     A,208
    190              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+78,POSY_SONGTIME);
   \   01E2  0E32              LD      C,50
   \   01E4  C5                PUSH    BC
   \   01E5  0E8C              LD      C,140
   \   01E7  CD7C01            CALL    LWRD ?0046
   \   01EA  F1                POP     AF
    191          }
   \   01EB  E1                POP     HL
   \   01EC  DDE1              POP     IX
   \   01EE  C1                POP     BC
   \   01EF  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01F2            ui_show_f:
    192          
    193          
    194          void ui_show_f(const char *string)                //文件名/滚屏显示
    195          {
   \   01F2  C5                PUSH    BC
   \   01F3  D5                PUSH    DE
    196              SetTextPos(POS_SCROLLSTRAT, POSY_SCROLL);
   \   01F4  0E6E              LD      C,110
   \   01F6            ?0042:
   \   01F6  1E2D              LD      E,45
   \   01F8  CD0000            CALL    LWRD SetTextPos
    197              PutS(string, -1);
   \   01FB  0EFF              LD      C,255
   \   01FD  210000            LD      HL,0
   \   0200  39                ADD     HL,SP
   \   0201  5E                LD      E,(HL)
   \   0202  23                INC     HL
   \   0203  56                LD      D,(HL)
   \   0204  CD0000            CALL    LWRD PutS
    198          }
   \   0207  E1                POP     HL
   \   0208  C1                POP     BC
   \   0209  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   020C            ui_show_g:
    199          
    200          void ui_show_g(const char *string)         //文件名显示
    201          {
   \   020C  C5                PUSH    BC
   \   020D  D5                PUSH    DE
    202              SetTextPos(POS_FILENAME, POSY_FILENAME);
   \   020E  0E4F              LD      C,79
   \   0210  C3F601            JP      LWRD ?0042
    203              PutS(string, -1);
    204           }
   \   0213            ui_show_batt:
    205          
    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          {
   \   0213  DDE5              PUSH    IX
   \   0215  C5                PUSH    BC
   \   0216  D5                PUSH    DE
   \   0217  DDE1              POP     IX
    235              static int cur_value=0;    //当前电量值
    236          
    237              //ASSERT(value == -1 || (value >= 0 && value <= 15));
    238           //    if((charge_flag==1)&&((input8(0xbe)&0x10)!=0))
    239           //       value=-1;
    240          
    241              if((sKY_ChargeSet(0)!=0)&&(input8(0x9c)<0xe4))
   \   0219  1E00              LD      E,0
   \   021B  CD0000            CALL    LWRD sKY_ChargeSet
   \   021E  B7                OR      A
   \   021F  281F              JR      Z,?0009
   \   0221  DB9C              IN      A,(156)
   \   0223  FEE4              CP      228
   \   0225  3019              JR      NC,?0009
   \   0227            ?0011:
   \   0227            ?0010:
   \   0227            ?0008:
    242              {
    243                 cur_value++;
   \   0227  2A0000            LD      HL,(?0007)
   \   022A  23                INC     HL
   \   022B  220000            LD      (?0007),HL
    244                  if(cur_value > 8) cur_value = 0;
   \   022E  4D                LD      C,L
   \   022F  44                LD      B,H
   \   0230  210800            LD      HL,8
   \   0233  F680              OR      128
   \   0235  ED42              SBC     HL,BC
   \   0237  E23B02            JP      PO,?0032
   \   023A  AC                XOR     H
   \   023B            ?0032:
   \   023B  F27902            JP      P,?0020
   \   023E            ?0012:
   \   023E  180D              JR      ?0037
   \   0240            ?0013:
    245              }
    246              else
   \   0240            ?0009:
    247              {
    248                  //if(batt_type == BATT_TYPE_ALKALINE)    //碱性电池
    249                  //{
    250                  //    if(value < 62) cur_value = 0;    //batt empty
    251                  //    else if(value > 116 ) cur_value = 8;    //batt full
    252                  //    else cur_value = (value - 62) / 7;      // 116 - 62
    253                  //}
    254                  //else if(batt_type == BATT_TYPE_NIH)    //镍氢电池
    255                  //{
    256                 //     if(value < 69) cur_value = 0;    //batt empty
    257                 //     else if(value > 116 ) cur_value = 8;    //batt full
    258                 //     else cur_value = (value - 69) / 6;
    259                 // }
    260                 // else if(batt_type == BATT_TYPE_LITHIUM)    //锂电池  3.5~4.2 工作电压         //
    261                  {
    262                      if(value < 175) cur_value = 0;    //batt empty
   \   0240  01AF80            LD      BC,32943
   \   0243  DDE5              PUSH    IX
   \   0245  E1                POP     HL
   \   0246  78                LD      A,B
   \   0247  AC                XOR     H
   \   0248  67                LD      H,A
   \   0249  ED42              SBC     HL,BC
   \   024B  3005              JR      NC,?0016
   \   024D            ?0015:
   \   024D            ?0037:
   \   024D  210000            LD      HL,0
   \   0250  1813              JR      ?0034
   \   0252            ?0016:
    263                      else if(value > 201)cur_value = 8;
   \   0252  DDE5              PUSH    IX
   \   0254  C1                POP     BC
   \   0255  21C900            LD      HL,201
   \   0258  B5                OR      L
   \   0259  ED42              SBC     HL,BC
   \   025B  E25F02            JP      PO,?0033
   \   025E  AC                XOR     H
   \   025F            ?0033:
   \   025F  F26A02            JP      P,?0019
   \   0262            ?0018:
   \   0262  210800            LD      HL,8
   \   0265            ?0034:
   \   0265  220000            LD      (?0007),HL
   \   0268  180F              JR      ?0020
   \   026A            ?0019:
    264                      else cur_value = (value - 175) / 4;    //  zxs change
   \   026A  2151FF            LD      HL,65361
   \   026D  09                ADD     HL,BC
   \   026E  EB                EX      DE,HL
   \   026F  010400            LD      BC,4
   \   0272  CD0000            CALL    LWRD ?SS_DIV_L02
   \   0275  ED530000          LD      (?0007),DE
   \   0279            ?0020:
   \   0279            ?0017:
   \   0279            ?0014:
    265                  }
    266          //        else ASSERT(FALSE);
    267              }
    268                if(!fmflag)
   \   0279            ?0021:
    269                 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
    270                else
   \   0279            ?0022:
    271                 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
   \   0279  0EA2              LD      C,162
   \   027B  C5                PUSH    BC
   \   027C  0EC1              LD      C,193
   \   027E  211300            LD      HL,19
   \   0281  ED5B0000          LD      DE,(?0007)
   \   0285  CD8201            CALL    LWRD ?0047
   \   0288  F1                POP     AF
   \   0289            ?0023:
    272          }
   \   0289  E1                POP     HL
   \   028A  DDE1              POP     IX
   \   028C  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   028F            ui_show_lock:
    273          
    274          char ui_show_lock(char islock)
    275          {
   \   028F  C5                PUSH    BC
   \   0290  D5                PUSH    DE
    276              if(islock == 1)
   \   0291  43                LD      B,E
   \   0292  05                DEC     B
   \   0293  201E              JR      NZ,?0025
   \   0295            ?0024:
    277              {
    278                  SetBackgdColor(Color_BULE1_def);
   \   0295  48                LD      C,B
   \   0296  113E75            LD      DE,30014
   \   0299  CD0000            CALL    LWRD SetBackgdColor
    279                  ClearScreen(NULL);
   \   029C  110000            LD      DE,0
   \   029F  CD0000            CALL    LWRD ClearScreen
    280                  ResShowPic(UDLOCK_S,86,80);
   \   02A2  0E50              LD      C,80
   \   02A4  C5                PUSH    BC
   \   02A5  0E56              LD      C,86
   \   02A7  110800            LD      DE,8
   \   02AA  3E00              LD      A,BYTE3 ResShowPic
   \   02AC  210000            LD      HL,LWRD ResShowPic
   \   02AF  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02B2  F1                POP     AF
   \   02B3            ?0025:
    281              }
    282          
    283              //wait 2s
    284              return ap_sleep(4);
   \   02B3  110400            LD      DE,4
   \   02B6  3E00              LD      A,BYTE3 ap_sleep
   \   02B8  210000            LD      HL,LWRD ap_sleep
   \   02BB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    285          }
   \   02BE  F1                POP     AF
   \   02BF  C1                POP     BC
   \   02C0  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
    286          
    287          
   \   0000                    RSEG    IDATA0
   \   0000            ?0007:
   \   0002                    DEFS    2
   \   0000                    RSEG    CDATA0
   \   0000  0000              DEFW    0
   \   0002                    END

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

⌨️ 快捷键说明

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