main.lst
来自「MP3 整个 SDK」· LST 代码 · 共 536 行 · 第 1/2 页
LST
536 行
111
112 ActiveDriveOK = DRV_ActiveDrive('C', MODE_SLOW); //04-2-28 16:29
\ 00CD 0E01 LD C,1
\ 00CF 1E43 LD E,67
\ 00D1 CD0000 CALL LWRD DRV_ActiveDrive
\ 00D4 324F00 LD (ActiveDriveOK),A
113 if (!ActiveDriveOK)
\ 00D7 B7 OR A
\ 00D8 202A JR NZ,?0011
\ 00DA ?0010:
114 {
115 ui_show_msg (MREADERR, MREADERR, g_comval.langid); //temp ybfu
\ 00DA ED4B0C00 LD BC,(g_comval+12)
\ 00DE 47 LD B,A
\ 00DF C5 PUSH BC
\ 00E0 018901 LD BC,393
\ 00E3 59 LD E,C
\ 00E4 50 LD D,B
\ 00E5 3E00 LD A,BYTE3 ui_show_msg
\ 00E7 210000 LD HL,LWRD ui_show_msg
\ 00EA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00ED F1 POP AF
\ 00EE ?0013:
116 while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
\ 00EE CD0000 CALL LWRD ap_get_message
\ 00F1 B7 OR A
\ 00F2 20FA JR NZ,?0013
\ 00F4 ?0014:
\ 00F4 ?0012:
117 ap_sleep(4);
\ 00F4 110400 LD DE,4
\ 00F7 3E00 LD A,BYTE3 ap_sleep
\ 00F9 210000 LD HL,LWRD ap_sleep
\ 00FC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
118 g_viewpic_vars.location.disk='H'; //磁盘出错 从卡上读文件 zxs add
\ 00FF 3E48 LD A,72
\ 0101 322400 LD (g_viewpic_vars+4),A
\ 0104 ?0011:
119
120 }
121 g_DiskStateFlag |= SetDiskOKFlag_def;//标志 flash 已格式化
\ 0104 210000 LD HL,g_DiskStateFlag
\ 0107 CBFE SET 7,(HL)
122
123 if (DRV_DetectUD(1) == 0x20)
\ 0109 1E01 LD E,1
\ 010B CD0000 CALL LWRD DRV_DetectUD
\ 010E FE20 CP 32
\ 0110 2049 JR NZ,?0016
\ 0112 ?0015:
124 { //有卡
125 DRV_ActiveUD(1,MODE_SLOW);
\ 0112 0E01 LD C,1
\ 0114 59 LD E,C
\ 0115 CD0000 CALL LWRD DRV_ActiveUD
126 if (!DRV_ActiveDrive('H', MODE_SLOW))
\ 0118 0E01 LD C,1
\ 011A 1E48 LD E,72
\ 011C CD0000 CALL LWRD DRV_ActiveDrive
\ 011F B7 OR A
\ 0120 2032 JR NZ,?0018
\ 0122 ?0017:
127 {
128 ui_show_msg (CREADERR, CREADERR, g_comval.langid); //temp ybfu
\ 0122 ED4B0C00 LD BC,(g_comval+12)
\ 0126 47 LD B,A
\ 0127 C5 PUSH BC
\ 0128 019401 LD BC,404
\ 012B 59 LD E,C
\ 012C 50 LD D,B
\ 012D 3E00 LD A,BYTE3 ui_show_msg
\ 012F 210000 LD HL,LWRD ui_show_msg
\ 0132 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0135 F1 POP AF
\ 0136 ?0020:
129 while( ap_get_message() != NULL ); //清空消息池,确保DELAY时间准确
\ 0136 CD0000 CALL LWRD ap_get_message
\ 0139 B7 OR A
\ 013A 20FA JR NZ,?0020
\ 013C ?0021:
\ 013C ?0019:
130 ap_sleep(4);
\ 013C 110400 LD DE,4
\ 013F 3E00 LD A,BYTE3 ap_sleep
\ 0141 210000 LD HL,LWRD ap_sleep
\ 0144 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
131 g_viewpic_vars.location.disk='C'; //卡出错从Flash磁盘读文件
\ 0147 3E43 LD A,67
\ 0149 322400 LD (g_viewpic_vars+4),A
132 if (!ActiveDriveOK)
\ 014C 3A4F00 LD A,(ActiveDriveOK)
\ 014F B7 OR A
\ 0150 2026 JR NZ,?0027
\ 0152 ?0022:
133 {
134 ResClose(res_fp);
\ 0152 1812 JR ?0032
135 return 0;
136 }
\ 0154 ?0023:
137 }
138 else
\ 0154 ?0018:
139 g_DiskStateFlag |= SetCardOKFlag_def;//标志 卡 已格式化
\ 0154 210000 LD HL,g_DiskStateFlag
\ 0157 CBDE SET 3,(HL)
\ 0159 ?0024:
140 }
141 else
\ 0159 181D JR ?0027
\ 015B ?0016:
142 { //没卡
143 g_viewpic_vars.location.disk='C'; //卡出错从Flash磁盘读文件
\ 015B 3E43 LD A,67
\ 015D 322400 LD (g_viewpic_vars+4),A
144 if (!ActiveDriveOK)
\ 0160 3A4F00 LD A,(ActiveDriveOK)
\ 0163 B7 OR A
\ 0164 2012 JR NZ,?0027
\ 0166 ?0026:
145 {
146 ResClose(res_fp);
\ 0166 ?0032:
\ 0166 ED5B0000 LD DE,(res_fp)
\ 016A 3E00 LD A,BYTE3 ResClose
\ 016C 210000 LD HL,LWRD ResClose
\ 016F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
147 return 0;
\ 0172 210000 LD HL,0
148 }
\ 0175 C30D02 JP LWRD ?0030
\ 0178 ?0027:
\ 0178 ?0025:
149 }
150 SetPenColor(Color_WHITE_def);
\ 0178 010000 LD BC,0
\ 017B 11FFFF LD DE,65535
\ 017E CD0000 CALL LWRD SetPenColor
151 SetBackgdColor(Color_BLACK_def);
\ 0181 010000 LD BC,0
\ 0184 59 LD E,C
\ 0185 50 LD D,B
\ 0186 CD0000 CALL LWRD SetBackgdColor
152 //show initializing...
153 ClearScreen(NULL);
\ 0189 110000 LD DE,0
\ 018C CD0000 CALL LWRD ClearScreen
154 ResShowMultiString(WAITPASS, g_comval.langid, 255, 80);
\ 018F 0E50 LD C,80
\ 0191 C5 PUSH BC
\ 0192 0EFF LD C,255
\ 0194 C5 PUSH BC
\ 0195 ED4B0C00 LD BC,(g_comval+12)
\ 0199 11B501 LD DE,437
\ 019C 3E00 LD A,BYTE3 ResShowMultiString
\ 019E 210000 LD HL,LWRD ResShowMultiString
\ 01A1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01A4 F1 POP AF
\ 01A5 F1 POP AF
155 result = InitFileSelector();
\ 01A6 3E00 LD A,BYTE3 InitFileSelector
\ 01A8 210000 LD HL,LWRD InitFileSelector
\ 01AB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01AE E5 PUSH HL
\ 01AF DDE1 POP IX
156 if(result!=0)
\ 01B1 7D LD A,L
\ 01B2 B4 OR H
\ 01B3 280B JR Z,?0029
\ 01B5 ?0028:
157 {
158 result=show_stop();
\ 01B5 3E00 LD A,BYTE3 show_stop
\ 01B7 210000 LD HL,LWRD show_stop
\ 01BA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01BD E5 PUSH HL
\ 01BE DDE1 POP IX
\ 01C0 ?0029:
159 }
160
161 output8(0x05,status); //解决进U盘提示格式化的问题 zxs add
\ 01C0 210000 LD HL,0
\ 01C3 39 ADD HL,SP
\ 01C4 7E LD A,(HL)
\ 01C5 D305 OUT (5),A
162 ap_sleep(4);
\ 01C7 110400 LD DE,4
\ 01CA 3E00 LD A,BYTE3 ap_sleep
\ 01CC 210000 LD HL,LWRD ap_sleep
\ 01CF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
163 output8(0x4e,input8(0x4e)|0x8) ; //modified by jmzhang
\ 01D2 DB4E IN A,(78)
\ 01D4 CBDF SET 3,A
\ 01D6 D34E OUT (78),A
164 ResClose(res_fp);
\ 01D8 ED5B0000 LD DE,(res_fp)
\ 01DC 3E00 LD A,BYTE3 ResClose
\ 01DE 210000 LD HL,LWRD ResClose
\ 01E1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
165 fselGetLocation(& g_viewpic_vars.location);
\ 01E4 112400 LD DE,g_viewpic_vars+4
\ 01E7 3E00 LD A,BYTE3 fselGetLocation
\ 01E9 210000 LD HL,LWRD fselGetLocation
\ 01EC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
166 VMWrite(&g_viewpic_vars, VM_AP_View);
\ 01EF 010040 LD BC,16384
\ 01F2 112000 LD DE,g_viewpic_vars
\ 01F5 CD0000 CALL LWRD VMWrite
167 //////////////////////////// zxs add for card
168 output8(0x2f,input8(0x2f)|0x04); //CE3 change to GIOA3
\ 01F8 DB2F IN A,(47)
\ 01FA CBD7 SET 2,A
\ 01FC D32F OUT (47),A
169 output8(0xee,input8(0xee)&0xf7);
\ 01FE DBEE IN A,(238)
\ 0200 CB9F RES 3,A
\ 0202 D3EE OUT (238),A
170 output8(0xf7,input8(0xf7)|0x01); // PowerOff
\ 0204 DBF7 IN A,(247)
\ 0206 CBC7 SET 0,A
\ 0208 D3F7 OUT (247),A
171 //////////////////////////// zxs add for card
172 return result;
\ 020A DDE5 PUSH IX
\ 020C E1 POP HL
173 }
\ 020D ?0030:
\ 020D F1 POP AF
\ 020E F1 POP AF
\ 020F DDE1 POP IX
\ 0211 C1 POP BC
\ 0212 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
174
175
176
\ 0000 RSEG CSTR
\ 0000 ?0006:
\ 0000 3A DEFB ':'
\ 0001 00 DEFB 0
\ 0002 ?0007:
\ 0002 75693330 DEFB 'ui30.res'
\ 0006 2E726573
\ 000A 00 DEFB 0
\ 0000 RSEG UDATA0
\ 0000 g_comval:
\ 0020 DEFS 32
\ 0020 g_viewpic_vars:
\ 004D DEFS 45
\ 004D test:
\ 004E DEFS 1
\ 004E g_menu_active:
\ 004F DEFS 1
\ 004F ActiveDriveOK:
\ 0050 DEFS 1
\ 0000 RSEG IDATA0
\ 0000 g_DiskStateFlag:
\ 0001 DEFS 1
\ 0000 RSEG CDATA0
\ 0000 00 DEFB 0
\ 0001 END
Errors: none
Warnings: none
Code size: 533
Constant size: 12
Static variable size: Data(81) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?