ui_main_for_music.lst

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

LST
771
字号
   \   0092  011027            LD      BC,10000
   \   0095  CD0000            CALL    LWRD ?US_MOD_L02
   \   0098  01E803            LD      BC,1000
    117              buf[1] = (i % 1000) / 100+'0' ;
   \   009B  CD7900            CALL    LWRD ?0043
   \   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
    118              buf[2] = (i % 100) / 10+'0' ;
   \   00AA  CD8200            CALL    LWRD ?0044
   \   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
    119              buf[3] = (i % 10)+'0';
   \   00B8  CD8200            CALL    LWRD ?0044
   \   00BB  7B                LD      A,E
   \   00BC  C630              ADD     A,48
   \   00BE  DD7703            LD      (IX+3),A
    120              buf[4] = 0;
   \   00C1  DD7004            LD      (IX+4),B
    121          
    122              return buf;
   \   00C4  C36F00            JP      LWRD ?0039
    123          }
   \   00C7            main_ResShowPic:
    124          
    125          
    126          //只有这个界面使用,为了提高效率而放在这里
    127          int main_ResShowPic(WORD id, uchar x, uchar y)
    128          {
   \   00C7  C5                PUSH    BC
   \   00C8  D5                PUSH    DE
   \   00C9  F5                PUSH    AF
   \   00CA  F5                PUSH    AF
    129              WORD buf[2];    //buffer for sd read
    130          
    131              ASSERT(id <= UIID_MAX);
    132          
    133              //读entry
    134              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
   \   00E0  E1                POP     HL
   \   00E1  E1                POP     HL
    135              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
   \   00E2  211000            LD      HL,16
   \   00E5  E5                PUSH    HL
   \   00E6  010000            LD      BC,res_entry
   \   00E9  ED5B0000          LD      DE,(res_fp)
   \   00ED  CD0000            CALL    LWRD SD_FRead
   \   00F0  F1                POP     AF
    136              if(res_entry.type != RES_TYPE_PIC) return 0;
   \   00F1  3A0600            LD      A,(res_entry+6)
   \   00F4  3D                DEC     A
   \   00F5  2805              JR      Z,?0003
   \   00F7            ?0002:
   \   00F7  210000            LD      HL,0
    137              ASSERT(res_entry.length <= 512);
   \   00FA  1869              JR      ?0006
   \   00FC            ?0003:
    138          
    139              //读数据
    140              SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   00FC  2A0200            LD      HL,(res_entry+2)
   \   00FF  E5                PUSH    HL
   \   0100  2A0000            LD      HL,(res_entry)
   \   0103  E5                PUSH    HL
   \   0104  4F                LD      C,A
   \   0105  ED5B0000          LD      DE,(res_fp)
   \   0109  CD0000            CALL    LWRD SD_FSeek
   \   010C  E1                POP     HL
   \   010D  E1                POP     HL
    141          
    142              SD_FRead(res_fp, buf, sizeof(buf));
   \   010E  210400            LD      HL,4
   \   0111  E5                PUSH    HL
   \   0112  2B                DEC     HL
   \   0113  2B                DEC     HL
   \   0114  39                ADD     HL,SP
   \   0115  4D                LD      C,L
   \   0116  44                LD      B,H
   \   0117  ED5B0000          LD      DE,(res_fp)
   \   011B  CD0000            CALL    LWRD SD_FRead
   \   011E  F1                POP     AF
    143          
    144              res_region.width = (char)buf[0];
   \   011F  210000            LD      HL,0
   \   0122  39                ADD     HL,SP
   \   0123  7E                LD      A,(HL)
   \   0124  320200            LD      (res_region+2),A
    145              res_region.height = (char)buf[1];
   \   0127  23                INC     HL
   \   0128  23                INC     HL
   \   0129  7E                LD      A,(HL)
   \   012A  320300            LD      (res_region+3),A
    146          
    147              //显示
    148              res_region.x = x;
   \   012D  210600            LD      HL,6
   \   0130  39                ADD     HL,SP
   \   0131  7E                LD      A,(HL)
   \   0132  320000            LD      (res_region),A
    149              res_region.y = y;
   \   0135  210C00            LD      HL,12
   \   0138  39                ADD     HL,SP
   \   0139  7E                LD      A,(HL)
   \   013A  320100            LD      (res_region+1),A
    150              PutSDImage(&res_region, res_fp->rwpointer);
   \   013D  211400            LD      HL,20
   \   0140  ED4B0000          LD      BC,(res_fp)
   \   0144  09                ADD     HL,BC
   \   0145  4E                LD      C,(HL)
   \   0146  23                INC     HL
   \   0147  46                LD      B,(HL)
   \   0148  23                INC     HL
   \   0149  5E                LD      E,(HL)
   \   014A  23                INC     HL
   \   014B  56                LD      D,(HL)
   \   014C  D5                PUSH    DE
   \   014D  C5                PUSH    BC
   \   014E  110000            LD      DE,res_region
   \   0151  CD0000            CALL    LWRD PutSDImage
   \   0154  E1                POP     HL
   \   0155  E1                POP     HL
    151              if(ui_auto_update) UpdateScreen(&res_region);
   \   0156  3A0000            LD      A,(ui_auto_update)
   \   0159  B7                OR      A
   \   015A  2806              JR      Z,?0005
   \   015C            ?0004:
   \   015C  110000            LD      DE,res_region
   \   015F  CD0000            CALL    LWRD UpdateScreen
   \   0162            ?0005:
    152              return 1;
   \   0162  210100            LD      HL,1
    153          }
   \   0165            ?0006:
   \   0165  F1                POP     AF
   \   0166  F1                POP     AF
   \   0167  F1                POP     AF
   \   0168  F1                POP     AF
   \   0169  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   016C            ui_show_a:
    154          
    155          
    156          
    157          void ui_show_a(WORD id)                  //音乐类型
    158          {
   \   016C  C5                PUSH    BC
   \   016D  D5                PUSH    DE
    159              main_ResShowPic(id, POS_TYPE, POSY_TYPE);
   \   016E  0E04              LD      C,4
   \   0170  C5                PUSH    BC
   \   0171  0E42              LD      C,66
   \   0173            ?0040:
   \   0173  CD8401            CALL    LWRD ?0045
   \   0176  F1                POP     AF
    160          
    161          }
   \   0177  E1                POP     HL
   \   0178  C1                POP     BC
   \   0179  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   017C            ?0046:
   \   017C  5F                LD      E,A
   \   017D  1600              LD      D,0
   \   017F  21B100            LD      HL,177
   \   0182            ?0047:
   \   0182  19                ADD     HL,DE
   \   0183  EB                EX      DE,HL
   \   0184            ?0045:
   \   0184  3E00              LD      A,BYTE3 main_ResShowPic
   \   0186  21C700            LD      HL,LWRD main_ResShowPic
   \   0189  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   018C            ui_show_b:
    162          void ui_show_b(WORD id)                   //播放模式
    163          {
   \   018C  C5                PUSH    BC
   \   018D  D5                PUSH    DE
    164            main_ResShowPic(id,  POS_PALYMODE,  POSY_PALYMODE);
   \   018E  0E00              LD      C,0
   \   0190  C5                PUSH    BC
   \   0191  0E80              LD      C,128
   \   0193  C37301            JP      LWRD ?0040
    165          }
   \   0196            ui_show_c:
    166          
    167          //id =0, clear the icon
    168          void ui_show_c(WORD id)              //EQ
    169          {
   \   0196  C5                PUSH    BC
   \   0197  D5                PUSH    DE
    170              main_ResShowPic(id,POS_EQ,POSY_EQ);
   \   0198  0E04              LD      C,4
   \   019A  C5                PUSH    BC
   \   019B  0EB2              LD      C,178
   \   019D  C37301            JP      LWRD ?0040
    171          }
   \   01A0            ui_show_d:
    172          
    173          
    174          
    175          void ui_show_d(const char *string)   //显示当前时间
    176          {   char id;
   \   01A0  C5                PUSH    BC
   \   01A1  DDE5              PUSH    IX
   \   01A3  F5                PUSH    AF
   \   01A4  D5                PUSH    DE
   \   01A5  DDE1              POP     IX
    177              id=*string-0x30;
   \   01A7  1A                LD      A,(DE)
   \   01A8  C6D0              ADD     A,208
    178              main_ResShowPic(PRGNUM0+id,POS_SONGTIME,POSY_SONGTIME);
   \   01AA  0E32              LD      C,50
   \   01AC  C5                PUSH    BC
   \   01AD  0E3E              LD      C,62
   \   01AF  CD7C01            CALL    LWRD ?0046
   \   01B2  F1                POP     AF
    179              string++;
    180              id= *string-0x30;
   \   01B3  DD7E01            LD      A,(IX+1)
   \   01B6  C6D0              ADD     A,208
    181              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+24,POSY_SONGTIME);
   \   01B8  0E32              LD      C,50
   \   01BA  C5                PUSH    BC
   \   01BB  0E56              LD      C,86
   \   01BD  CD7C01            CALL    LWRD ?0046
   \   01C0  F1                POP     AF
    182              string++;
    183              id= *string-0x30;
   \   01C1  DD7E02            LD      A,(IX+2)
   \   01C4  C6D0              ADD     A,208
    184              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+40,POSY_SONGTIME);
   \   01C6  0E32              LD      C,50
   \   01C8  C5                PUSH    BC
   \   01C9  0E66              LD      C,102
   \   01CB  CD7C01            CALL    LWRD ?0046
   \   01CE  F1                POP     AF
    185              string++;
    186              id= *string-0x30;
   \   01CF  DD7E03            LD      A,(IX+3)
   \   01D2  C6D0              ADD     A,208
    187              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+62,POSY_SONGTIME);
   \   01D4  0E32              LD      C,50
   \   01D6  C5                PUSH    BC
   \   01D7  0E7C              LD      C,124
   \   01D9  CD7C01            CALL    LWRD ?0046

⌨️ 快捷键说明

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