ui_main_for_music.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 717 行 · 第 1/3 页

LST
717
字号
     95          *               buf, 输出字符串指针,5 bytes
     96          *
     97          * Returns     : 成功, 输出字符串指针
     98          *
     99          * Notes       : 数字只能是 0000~9999
    100          *
    101          ********************************************************************************
    102          */
    103          char *itoa_4(WORD i, char *buf)
    104          {
   \   0090  FDE5              PUSH    IY
   \   0092  DDE5              PUSH    IX
   \   0094  C5                PUSH    BC
   \   0095  DDE1              POP     IX
   \   0097  D5                PUSH    DE
   \   0098  FDE1              POP     IY
    105          
    106              buf[0] = (i % 10000) / 1000+'0' ;
   \   009A  011027            LD      BC,10000
   \   009D  CD0000            CALL    LWRD ?US_MOD_L02
   \   00A0  01E803            LD      BC,1000
   \   00A3  CD8900            CALL    LWRD ?0044
   \   00A6  DD7700            LD      (IX+0),A
    107              buf[1] = (i % 1000) / 100+'0' ;
   \   00A9  FDE5              PUSH    IY
   \   00AB  D1                POP     DE
   \   00AC  CD7400            CALL    LWRD ?0042
   \   00AF  DD7701            LD      (IX+1),A
    108              buf[2] = (i % 100) / 10+'0' ;
   \   00B2  CD8100            CALL    LWRD ?0043
   \   00B5  DD7702            LD      (IX+2),A
    109              buf[3] = (i % 10)+'0';
   \   00B8  FDE5              PUSH    IY
   \   00BA  D1                POP     DE
   \   00BB  CD0000            CALL    LWRD ?US_MOD_L02
   \   00BE  7B                LD      A,E
   \   00BF  C630              ADD     A,48
   \   00C1  DD7703            LD      (IX+3),A
    110              buf[4] = 0;
   \   00C4  DD7004            LD      (IX+4),B
    111          
    112              return buf;
   \   00C7  C36A00            JP      LWRD ?0038
    113          }
   \   00CA            main_ResShowPic:
    114          
    115          
    116          //只有这个界面使用,为了提高效率而放在这里
    117          int main_ResShowPic(WORD id, uchar x, uchar y)
    118          {
   \   00CA  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   00CD  FCFF              DEFW    65532
    119              WORD buf[2];    //buffer for sd read
    120          
    121              //ASSERT(id <= UIID_MAX);
    122          
    123              //读entry
    124              SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
   \   00CF  DD6E02            LD      L,(IX+2)
   \   00D2  DD6603            LD      H,(IX+3)
   \   00D5  010000            LD      BC,0
   \   00D8  3E04              LD      A,4
   \   00DA  CD0000            CALL    LWRD ?L_LSH_L03
   \   00DD  C5                PUSH    BC
   \   00DE  E5                PUSH    HL
   \   00DF  0E00              LD      C,0
   \   00E1  ED5B0000          LD      DE,(res_fp)
   \   00E5  CD0000            CALL    LWRD SD_FSeek
   \   00E8  E1                POP     HL
   \   00E9  E1                POP     HL
    125              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
   \   00EA  211000            LD      HL,16
   \   00ED  E5                PUSH    HL
   \   00EE  010000            LD      BC,res_entry
   \   00F1  ED5B0000          LD      DE,(res_fp)
   \   00F5  CD0000            CALL    LWRD SD_FRead
   \   00F8  F1                POP     AF
    126              if(res_entry.type != RES_TYPE_PIC) return 0;
   \   00F9  3A0600            LD      A,(res_entry+6)
   \   00FC  3D                DEC     A
   \   00FD  2805              JR      Z,?0003
   \   00FF            ?0002:
   \   00FF  210000            LD      HL,0
    127              ASSERT(res_entry.length <= 512);
   \   0102  1857              JR      ?0004
   \   0104            ?0003:
    128          
    129              //读数据
    130              SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   0104  2A0200            LD      HL,(res_entry+2)
   \   0107  E5                PUSH    HL
   \   0108  2A0000            LD      HL,(res_entry)
   \   010B  E5                PUSH    HL
   \   010C  4F                LD      C,A
   \   010D  ED5B0000          LD      DE,(res_fp)
   \   0111  CD0000            CALL    LWRD SD_FSeek
   \   0114  E1                POP     HL
   \   0115  E1                POP     HL
    131          
    132              SD_FRead(res_fp, buf, sizeof(buf));
   \   0116  210400            LD      HL,4
   \   0119  E5                PUSH    HL
   \   011A  2B                DEC     HL
   \   011B  2B                DEC     HL
   \   011C  39                ADD     HL,SP
   \   011D  4D                LD      C,L
   \   011E  44                LD      B,H
   \   011F  ED5B0000          LD      DE,(res_fp)
   \   0123  CD0000            CALL    LWRD SD_FRead
   \   0126  F1                POP     AF
    133          
    134              res_region.width = (char)buf[0];
   \   0127  DD7EFC            LD      A,(IX-4)
   \   012A  320200            LD      (res_region+2),A
    135              res_region.height = (char)buf[1];
   \   012D  DD7EFE            LD      A,(IX-2)
   \   0130  320300            LD      (res_region+3),A
    136          
    137              //显示
    138              res_region.x = x;
   \   0133  DD7E04            LD      A,(IX+4)
   \   0136  320000            LD      (res_region),A
    139              res_region.y = y;
   \   0139  DD7E0A            LD      A,(IX+10)
   \   013C  320100            LD      (res_region+1),A
    140              PutSDImage(&res_region, res_fp->rwpointer);
   \   013F  211400            LD      HL,20
   \   0142  ED4B0000          LD      BC,(res_fp)
   \   0146  09                ADD     HL,BC
   \   0147  4E                LD      C,(HL)
   \   0148  23                INC     HL
   \   0149  46                LD      B,(HL)
   \   014A  23                INC     HL
   \   014B  5E                LD      E,(HL)
   \   014C  23                INC     HL
   \   014D  56                LD      D,(HL)
   \   014E  D5                PUSH    DE
   \   014F  C5                PUSH    BC
   \   0150  110000            LD      DE,res_region
   \   0153  CD0000            CALL    LWRD PutSDImage
   \   0156  E1                POP     HL
   \   0157  E1                POP     HL
    141              return 1;
   \   0158  210100            LD      HL,1
    142          }
   \   015B            ?0004:
   \   015B  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   015E            ui_show_a:
    143          
    144          
    145          
    146          void ui_show_a(WORD id)                  //音乐类型
    147          {
   \   015E  CD0000            CALL    LWRD ?ENT_PARM_DIRECT_L09
    148              main_ResShowPic(id, POS_TYPE, POSY_TYPE);
   \   0161  0E04              LD      C,4
   \   0163  C5                PUSH    BC
   \   0164  0E42              LD      C,66
   \   0166            ?0039:
   \   0166  CD6D01            CALL    LWRD ?0045
   \   0169  F1                POP     AF
    149          
    150          }
   \   016A  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   016D            ?0045:
   \   016D  3E00              LD      A,BYTE3 main_ResShowPic
   \   016F  21CA00            LD      HL,LWRD main_ResShowPic
   \   0172  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0175            ui_show_b:
    151          void ui_show_b(WORD id)                   //播放模式
    152          {
   \   0175  CD0000            CALL    LWRD ?ENT_PARM_DIRECT_L09
    153            main_ResShowPic(id,  142,  22);
   \   0178  0E16              LD      C,22
   \   017A  C5                PUSH    BC
   \   017B  0E8E              LD      C,142
   \   017D  C36601            JP      LWRD ?0039
    154          }
   \   0180            ui_show_c:
    155          
    156          //id =0, clear the icon
    157          void ui_show_c(WORD id)              //EQ
    158          {
   \   0180  CD0000            CALL    LWRD ?ENT_PARM_DIRECT_L09
    159              main_ResShowPic(id,POS_EQ,POSY_EQ);
   \   0183  0E06              LD      C,6
   \   0185  C5                PUSH    BC
   \   0186  0E0C              LD      C,12
   \   0188  C36601            JP      LWRD ?0039
    160          }
   \   018B            ui_show_d:
    161          
    162          
    163          
    164          void ui_show_d(const char *string, char mode)   //显示当前时间
    165          {
   \   018B  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   018E  F8FF              DEFW    65528
    166                  /*
    167                    char id;
    168              id=*string-0x30;
    169              main_ResShowPic(PRGNUM0+id,POS_SONGTIME,POSY_SONGTIME);
    170              string++;
    171              id= *string-0x30;
    172              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+24,POSY_SONGTIME);
    173              string++;
    174              id= *string-0x30;
    175              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+40,POSY_SONGTIME);
    176              string++;
    177              id= *string-0x30;
    178              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+62,POSY_SONGTIME);
    179              string++;
    180              id= *string-0x30;
    181              main_ResShowPic(PRGNUM0+id,POS_SONGTIME+78,POSY_SONGTIME);
    182              */
    183              DC  oldDC_sav;
    184              GetDCStatus(&oldDC_sav);
   \   0190  210000            LD      HL,0
   \   0193  39                ADD     HL,SP
   \   0194  EB                EX      DE,HL
   \   0195  CD0000            CALL    LWRD GetDCStatus
    185              SetPenColor(Color_BLACK_def);
   \   0198  010000            LD      BC,0
   \   019B  59                LD      E,C
   \   019C  50                LD      D,B
   \   019D  CD0000            CALL    LWRD SetPenColor
    186              SetBackgdColor(Color_MENU_def);
   \   01A0  010000            LD      BC,0
   \   01A3  11FFFF            LD      DE,65535
   \   01A6  CD0000            CALL    LWRD SetBackgdColor
    187              
    188              SetAsciiFont(FONT_TYPE_SMALL);
   \   01A9  1E00              LD      E,0
   \   01AB  CD0000            CALL    LWRD SetAsciiFont
    189              if(mode)
   \   01AE  AF                XOR     A
   \   01AF  DDB604            OR      (IX+4)
   \   01B2  0E7C              LD      C,124
   \   01B4  2804              JR      Z,?0006

⌨️ 快捷键说明

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