📄 ap_common2.lst
字号:
\ 00A8 E5 PUSH HL
\ 00A9 2E06 LD L,6
\ 00AB 39 ADD HL,SP
\ 00AC 4D LD C,L
\ 00AD 44 LD B,H
\ 00AE ED5B0000 LD DE,(res_fp)
\ 00B2 CD0000 CALL LWRD SD_FRead
\ 00B5 F1 POP AF
121
122 //定位到 string_id
123 p = buf;
\ 00B6 210400 LD HL,4
\ 00B9 39 ADD HL,SP
\ 00BA E5 PUSH HL
\ 00BB FDE1 POP IY
124 string_idtemp=string_id;
\ 00BD DD46FE LD B,(IX-2)
\ 00C0 DD70C8 LD (IX-56),B
\ 00C3 ?0016:
125 while(string_id)
\ 00C3 AF XOR A
\ 00C4 DDB6FE OR (IX-2)
\ 00C7 284C JR Z,?0015
\ 00C9 ?0017:
126 {
127
128 AddBuf=1;
\ 00C9 DD36C601 LD (IX-58),1
\ 00CD ?0019:
129 while(*p!=0)
\ 00CD AF XOR A
\ 00CE FDB600 OR (IY+0)
\ 00D1 2807 JR Z,?0018
\ 00D3 ?0020:
130 {
131 AddBuf++; //找到第string_id 个0
\ 00D3 DD34C6 INC (IX-58)
132 p++;
\ 00D6 FD23 INC IY
\ 00D8 18F3 JR ?0019
\ 00DA ?0018:
133 }
134 string_id--;
\ 00DA DD35FE DEC (IX-2)
135 res_entry.offset=res_entry.offset+AddBuf;
\ 00DD 210000 LD HL,res_entry
\ 00E0 DD5EC6 LD E,(IX-58)
\ 00E3 4F LD C,A
\ 00E4 51 LD D,C
\ 00E5 47 LD B,A
\ 00E6 CD0000 CALL LWRD ?L_ADDASG_L03
136 SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
\ 00E9 2A0200 LD HL,(res_entry+2)
\ 00EC E5 PUSH HL
\ 00ED 2A0000 LD HL,(res_entry)
\ 00F0 E5 PUSH HL
\ 00F1 4F LD C,A
\ 00F2 ED5B0000 LD DE,(res_fp)
\ 00F6 CD0000 CALL LWRD SD_FSeek
\ 00F9 E1 POP HL
\ 00FA E1 POP HL
137 SD_FRead(res_fp, buf, 50);
\ 00FB 213200 LD HL,50
\ 00FE E5 PUSH HL
\ 00FF 2E06 LD L,6
\ 0101 39 ADD HL,SP
\ 0102 4D LD C,L
\ 0103 44 LD B,H
\ 0104 ED5B0000 LD DE,(res_fp)
\ 0108 CD0000 CALL LWRD SD_FRead
\ 010B F1 POP AF
138 p = buf;
\ 010C 210400 LD HL,4
\ 010F 39 ADD HL,SP
\ 0110 E5 PUSH HL
\ 0111 FDE1 POP IY
\ 0113 18AE JR ?0016
\ 0115 ?0015:
139
140 }
141 string_id=string_idtemp;
142 ASSERT((WORD)(p - buf) <= res_entry.length);
143
144 StrLength=(BYTE)strlen(p);
\ 0115 CD0000 CALL LWRD ?STRLEN_L11
145 if((x == 255)&&(string_id!=1)&&(string_id<5)) //16*16字体居中显示
\ 0118 DD46C8 LD B,(IX-56)
\ 011B DD70FE LD (IX-2),B
\ 011E DD4608 LD B,(IX+8)
\ 0121 04 INC B
\ 0122 202B JR NZ,?0022
\ 0124 DD46FE LD B,(IX-2)
\ 0127 05 DEC B
\ 0128 2825 JR Z,?0022
\ 012A DD7EFE LD A,(IX-2)
\ 012D FE05 CP 5
\ 012F 301E JR NC,?0022
\ 0131 ?0024:
\ 0131 ?0023:
\ 0131 ?0021:
146 {
147 {
148 SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
\ 0131 DD4E0A LD C,(IX+10)
\ 0134 C5 PUSH BC
\ 0135 FDE5 PUSH IY
\ 0137 D1 POP DE
\ 0138 3E00 LD A,BYTE3 get_large_text_width
\ 013A 214000 LD HL,LWRD get_large_text_width
\ 013D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0140 5D LD E,L
\ 0141 1600 LD D,0
\ 0143 21DC00 LD HL,220
\ 0146 A7 AND A
\ 0147 ED52 SBC HL,DE
\ 0149 EB EX DE,HL
\ 014A 010200 LD BC,2
\ 014D 182C JR ?0053
149 PutS(p, -1);
\ 014F ?0022:
150 }
151 }
152 else if((string_id!=1)&&(string_id<5)) ////16*16字体非居中显示
\ 014F DD46FE LD B,(IX-2)
\ 0152 05 DEC B
\ 0153 280C JR Z,?0027
\ 0155 DD7EFE LD A,(IX-2)
\ 0158 FE05 CP 5
\ 015A 3005 JR NC,?0027
\ 015C ?0029:
\ 015C ?0028:
\ 015C ?0026:
153 {
154 SetTextPos(x, y);
\ 015C DD4E0A LD C,(IX+10)
\ 015F 1828 JR ?0052
155 PutS(p, -1);
156 }
157 else //6*8字体显示
\ 0161 ?0027:
158 {
159 if(x == 255)
\ 0161 DD4608 LD B,(IX+8)
\ 0164 04 INC B
\ 0165 201A JR NZ,?0032
\ 0167 ?0031:
160 {
161 SetTextPos((SCR_WIDTH - StrLength*CHAR_WIDTH) /2, y);
\ 0167 DD4E0A LD C,(IX+10)
\ 016A C5 PUSH BC
\ 016B 60 LD H,B
\ 016C 29 ADD HL,HL
\ 016D 5D LD E,L
\ 016E 54 LD D,H
\ 016F 29 ADD HL,HL
\ 0170 19 ADD HL,DE
\ 0171 EB EX DE,HL
\ 0172 21DC00 LD HL,220
\ 0175 A7 AND A
\ 0176 ED52 SBC HL,DE
\ 0178 EB EX DE,HL
\ 0179 0E02 LD C,2
\ 017B ?0053:
\ 017B CD0000 CALL LWRD ?SS_DIV_L02
\ 017E C1 POP BC
\ 017F 180B JR ?0050
162 PutS(p, -1);
\ 0181 ?0032:
163 }
164 else if(StrLength<22)
\ 0181 7D LD A,L
\ 0182 FE16 CP 22
\ 0184 DD4E0A LD C,(IX+10)
\ 0187 300D JR NC,?0035
\ 0189 ?0034:
165 {
166 SetTextPos(x, y);
\ 0189 ?0052:
\ 0189 DD5E08 LD E,(IX+8)
\ 018C ?0050:
\ 018C CD0000 CALL LWRD SetTextPos
167 PutS(p, -1);
\ 018F 0EFF LD C,255
\ 0191 FDE5 PUSH IY
\ 0193 D1 POP DE
\ 0194 1822 JR ?0042
168 }
169 else
\ 0196 ?0035:
170 {
171 SetTextPos(0, y);
\ 0196 1E00 LD E,0
\ 0198 CD0000 CALL LWRD SetTextPos
172 PutS(p, 21);
\ 019B 0E15 LD C,21
\ 019D FDE5 PUSH IY
\ 019F D1 POP DE
\ 01A0 CD0000 CALL LWRD PutS
173 SetTextPos(0, y+8);
\ 01A3 DD7E0A LD A,(IX+10)
\ 01A6 C608 ADD A,8
\ 01A8 4F LD C,A
\ 01A9 1E00 LD E,0
\ 01AB CD0000 CALL LWRD SetTextPos
174 PutS(p+21, -1);
\ 01AE 0EFF LD C,255
\ 01B0 211500 LD HL,21
\ 01B3 FDE5 PUSH IY
\ 01B5 D1 POP DE
\ 01B6 19 ADD HL,DE
\ 01B7 EB EX DE,HL
\ 01B8 ?0042:
\ 01B8 CD0000 CALL LWRD PutS
\ 01BB ?0036:
\ 01BB ?0033:
\ 01BB ?0030:
\ 01BB ?0025:
175 }
176 }
177
178 return 1;
\ 01BB 210100 LD HL,1
179 }
\ 01BE ?0037:
\ 01BE DDF9 LD SP,IX
\ 01C0 DDE1 POP IX
\ 01C2 FDE1 POP IY
\ 01C4 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
180
181
\ 0000 RSEG CONST
\ 0000 music_ext:
\ 0000 4D5033 DEFB 'MP3'
\ 0003 00 DEFB 0
\ 0004 574D41 DEFB 'WMA'
\ 0007 00 DEFB 0
\ 0008 415346 DEFB 'ASF'
\ 000B 00 DEFB 0
\ 000C 574D56 DEFB 'WMV'
\ 000F 00 DEFB 0
\ 0010 4F4747 DEFB 'OGG'
\ 0013 00 DEFB 0
\ 0014 415045 DEFB 'APE'
\ 0017 00 DEFB 0
\ 0018 voice_ext:
\ 0018 574156 DEFB 'WAV'
\ 001B 00 DEFB 0
\ 001C 414354 DEFB 'ACT'
\ 001F 00 DEFB 0
\ 0000 RSEG UDATA0
\ 0000 file_name:
\ 000C DEFS 12
\ 000C dir_name:
\ 002A DEFS 30
\ 002A END
Errors: none
Warnings: none
Code size: 455
Constant size: 32
Static variable size: Data(42) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -