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 + -
显示快捷键?