basal_dsc_dec.lst
来自「MP3 整个 SDK」· LST 代码 · 共 501 行 · 第 1/2 页
LST
501 行
\ 00AA CD0000 CALL LWRD PicViewExit
102 if(PicViewOrder==0xff)
\ 00AD 3A0000 LD A,(PicViewOrder)
\ 00B0 3C INC A
\ 00B1 2802 JR Z,?0024
\ 00B3 ?0022:
103 return 0;
104 else
\ 00B3 ?0023:
105 return 1;
\ 00B3 3E01 LD A,1
106 }
\ 00B5 ?0024:
\ 00B5 E1 POP HL
\ 00B6 DDE1 POP IX
\ 00B8 C9 RET
\ 00B9 ?0056:
\ 00B9 1E02 LD E,2
\ 00BB CD0000 CALL LWRD SetDrawMode
\ 00BE 110000 LD DE,JpegRegion
\ 00C1 CD0000 CALL LWRD SetWindow
\ 00C4 CD0000 CALL LWRD SetStartLine
\ 00C7 C9 RET
\ 00C8 GifDec_Play:
107 //prev,55;next,56;play,57
108
109
110 non_banked char GifDec_Play(ColorLcmInfor *PicInfor,handle fp,char Playtype)
111 {
\ 00C8 FDE5 PUSH IY
\ 00CA DDE5 PUSH IX
\ 00CC DD210000 LD IX,0
\ 00D0 DD39 ADD IX,SP
\ 00D2 C5 PUSH BC
\ 00D3 D5 PUSH DE
\ 00D4 F5 PUSH AF
112
113 int key,result;
114 ui_run_realtime=TRUE; //实时模式,不显示锁图标
\ 00D5 3E01 LD A,1
\ 00D7 320000 LD (ui_run_realtime),A
115 PicViewInit(fp); // init the decoder
\ 00DA 59 LD E,C
\ 00DB 50 LD D,B
\ 00DC CD0000 CALL LWRD PicViewInit
116 DSCPicSetParament(PicInfor); // set the decoder infor
\ 00DF DD5EFC LD E,(IX-4)
\ 00E2 DD56FD LD D,(IX-3)
\ 00E5 CD0000 CALL LWRD DSCPicSetParament
117 StartDsp(12); // set the dsp mips and start 36,mip
\ 00E8 1E0C LD E,12
\ 00EA CD0000 CALL LWRD StartDsp
\ 00ED ?0026:
118
119 while(PicViewOrder!=0xf3) // if the deoceder don't compelet,it keep going
\ 00ED 3A0000 LD A,(PicViewOrder)
\ 00F0 FEF3 CP 243
\ 00F2 CA8F01 JP Z,?0025
\ 00F5 ?0027:
120 {
121
122 output8(0x4e,input8(0x4e)|0x8);
\ 00F5 DB4E IN A,(78)
\ 00F7 CBDF SET 3,A
\ 00F9 D34E OUT (78),A
123
124 if(PicViewOrder==0xf5)
\ 00FB 3A0000 LD A,(PicViewOrder)
\ 00FE FEF5 CP 245
\ 0100 200B JR NZ,?0029
\ 0102 ?0028:
125 {
126 PicViewOrder=0;
\ 0102 AF XOR A
\ 0103 320000 LD (PicViewOrder),A
127 SetDrawMode(DrawModeHPic_def);
\ 0106 CDB900 CALL LWRD ?0056
128 SetWindow(&JpegRegion);
129 ///////////////////////////////////////// for LG 1.8'OLED JPEG DisPlay zxs added 2006.03.17
130 SetStartLine();
131 output8(0x35,0xe5);
\ 0109 3EE5 LD A,229
\ 010B D335 OUT (53),A
\ 010D ?0029:
132 }
133
134 if(PicViewOrder==0xff)break;
\ 010D 3A0000 LD A,(PicViewOrder)
\ 0110 3C INC A
\ 0111 287C JR Z,?0025
\ 0113 ?0030:
\ 0113 ?0031:
135 result=0;
\ 0113 FD210000 LD IY,0
136 if(PicViewOrder==0xf8)
\ 0117 3A0000 LD A,(PicViewOrder)
\ 011A FEF8 CP 248
\ 011C 2014 JR NZ,?0035
\ 011E ?0032:
137 {
138 PicViewOrder=0;
\ 011E AF XOR A
\ 011F 320000 LD (PicViewOrder),A
139 output8(0x35,0xe8);
\ 0122 3EE8 LD A,232
\ 0124 D335 OUT (53),A
140 if(Playtype==1)
\ 0126 DD4606 LD B,(IX+6)
\ 0129 05 DEC B
\ 012A 2006 JR NZ,?0035
\ 012C ?0034:
141 {
142 result=56;
\ 012C FD213800 LD IY,56
143 break;
\ 0130 185D JR ?0025
\ 0132 ?0035:
\ 0132 ?0033:
144 }
145 }
146
147 key=ap_get_message(); // get the user message
\ 0132 CD0000 CALL LWRD ap_get_message
\ 0135 4F LD C,A
\ 0136 59 LD E,C
\ 0137 0600 LD B,0
\ 0139 50 LD D,B
148 switch(key)
\ 013A CD0000 CALL LWRD ?S_V_SWITCH_L06
\ 013D 0800 DEFW 8
\ 013F 0500 DEFW 5
\ 0141 0600 DEFW 6
\ 0143 1B00 DEFW 27
\ 0145 1C00 DEFW 28
\ 0147 1D00 DEFW 29
\ 0149 2100 DEFW 33
\ 014B 4500 DEFW 69
\ 014D 4600 DEFW 70
\ 014F 7F01 DEFW ?0046
\ 0151 7301 DEFW ?0043
\ 0153 6701 DEFW ?0040
\ 0155 6101 DEFW ?0039
\ 0157 8701 DEFW ?0036
\ 0159 8701 DEFW ?0036
\ 015B 8701 DEFW ?0036
\ 015D 7301 DEFW ?0043
\ 015F 6701 DEFW ?0040
\ 0161 ?0037:
149 {
150 case AP_MSG_STANDBY:
151 //if(Playtype==0)result=RESULT_STANDBY;
152 break;
\ 0161 ?0038:
153 case AP_MSG_RTC:
154 case AP_MSG_CHARGING:
155 break;
\ 0161 ?0039:
156 case AP_KEY_PLAY | AP_KEY_UP:
157 result=57;
\ 0161 FD213900 LD IY,57
158 break;
\ 0165 1820 JR ?0036
\ 0167 ?0040:
159 case AP_KEY_PREV :
160 case AP_KEY_PREV | AP_KEY_HOLD:
161 if(Playtype==0)result=55;
\ 0167 AF XOR A
\ 0168 DDB606 OR (IX+6)
\ 016B 201A JR NZ,?0036
\ 016D ?0041:
\ 016D FD213700 LD IY,55
\ 0171 ?0042:
162 break;
\ 0171 1814 JR ?0036
\ 0173 ?0043:
163 case AP_KEY_NEXT :
164 case AP_KEY_NEXT | AP_KEY_HOLD:
165 if(Playtype==0)result=56;
\ 0173 AF XOR A
\ 0174 DDB606 OR (IX+6)
\ 0177 200E JR NZ,?0036
\ 0179 ?0044:
\ 0179 FD213800 LD IY,56
\ 017D ?0045:
166 break;
\ 017D 1808 JR ?0036
\ 017F ?0046:
167 default:
168 key = ap_handle_hotkey(key);
\ 017F 59 LD E,C
\ 0180 CD0000 CALL LWRD ap_handle_hotkey
\ 0183 4F LD C,A
169 result=key;
\ 0184 C5 PUSH BC
\ 0185 FDE1 POP IY
\ 0187 ?0036:
170 }
171 if(result!=0)break;
\ 0187 FDE5 PUSH IY
\ 0189 E1 POP HL
\ 018A 7D LD A,L
\ 018B B4 OR H
\ 018C CAED00 JP Z,?0026
\ 018F ?0047:
\ 018F ?0048:
\ 018F ?0025:
172
173 }
174 ui_run_realtime=FALSE; //实时模式,不显示锁图标
\ 018F AF XOR A
\ 0190 320000 LD (ui_run_realtime),A
175 StopDsp();
\ 0193 CD0000 CALL LWRD StopDsp
176 PicViewExit();
\ 0196 CD0000 CALL LWRD PicViewExit
177 if(PicViewOrder==0xff)
\ 0199 3A0000 LD A,(PicViewOrder)
\ 019C 3C INC A
\ 019D 2804 JR Z,?0051
\ 019F ?0049:
178 return 0;
179 else
\ 019F ?0050:
180 return result;
\ 019F FDE5 PUSH IY
\ 01A1 E1 POP HL
\ 01A2 7D LD A,L
181 }
\ 01A3 ?0051:
\ 01A3 DDF9 LD SP,IX
\ 01A5 DDE1 POP IX
\ 01A7 FDE1 POP IY
\ 01A9 C9 RET
182
183
184
185
186
\ 0000 RSEG UDATA0
\ 0000 TmpReg:
\ 0004 DEFS 4
\ 0004 END
Errors: none
Warnings: none
Code size: 426
Constant size: 0
Static variable size: Data(4) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?