basal_dsc_dec.lst
来自「MP3 整个 SDK」· LST 代码 · 共 501 行 · 第 1/2 页
LST
501 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 16:59:36 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_dsc2x_dec\basal_dsc_dec.c #
# List file = d:\case_i_d90f\ap\ap_dsc2x_dec\list\basal_dsc_dec.lst#
# Object file = d:\case_i_d90f\ap\ap_dsc2x_dec\obj\basal_dsc_dec.r01#
# Command line = -v0 -mb -OD:\case_i_d90f\ap\Ap_DSC2X_DEC\Obj\ -e #
# -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT #
# -LD:\case_i_d90f\ap\Ap_DSC2X_DEC\List\ -q -t8 #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# D:\CASE_I_D90F\AP\AP_DSC2X_DEC\basal_dsc_dec.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME basal_dsc_dec(17)
\ 0000 RSEG DSCDecPM(0)
\ 0000 RSEG UDATA0(0)
\ 0000 EXTERN DSCPicSetParament
\ 0000 PUBLIC GifDec_Play
\ 0000 PUBLIC JpegDec
\ 0000 EXTERN JpegRegion
\ 0000 EXTERN PicViewExit
\ 0000 EXTERN PicViewInit
\ 0000 EXTERN PicViewOrder
\ 0000 EXTERN SetDrawMode
\ 0000 EXTERN SetStartLine
\ 0000 EXTERN SetWindow
\ 0000 EXTERN StartDsp
\ 0000 EXTERN StopDsp
\ 0000 PUBLIC TmpReg
\ 0000 EXTERN WindowModeH2V
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ui_run_realtime
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_V_SWITCH_L06
\ 0000 RSEG DSCDecPM
\ 0000 JpegDec:
1 /************************************
2 *FILE Name: JpegDec.c
3 *Write by : Jack lee
4 *Date :2004-8-3 9:56
5 *BugList :
6 *
7 *
8 *
9 **********************************/
10 #include "DSCDec.h"
11 #include "device.h"
12 #include "actos.h"
13 #include "display.h"
14 #include "ap_common.h"
15 #define S16
16 #pragma codeseg(DSCDecPM)
17
18 /**********************
19 *function name :JpegDec
20 *Write by : jack lee
21 *Date :2004-8-4 10:03
22 *
23 ************************/
24
25
26 extern bool ui_run_realtime;
27 extern region_t JpegRegion;
28 extern unsigned char PicViewOrder;
29 #ifdef S16
30 extern unsigned char WindowModeH2V;
31 region_t TmpReg;
32 #endif
33 non_banked void SetStartLine();
34 non_banked char GifDec_Play(ColorLcmInfor *PicInfor,handle fp,char Playtype);
35
36 non_banked char JpegDec(ColorLcmInfor *PicInfor,char type,handle fp,char Playtype)
37 {
\ 0000 DDE5 PUSH IX
\ 0002 C5 PUSH BC
\ 0003 D5 PUSH DE
\ 0004 DDE1 POP IX
38 output8(0x4e,input8(0x4e)|0x8);
\ 0006 DB4E IN A,(78)
\ 0008 CBDF SET 3,A
\ 000A D34E OUT (78),A
39 if(type==Pic_GIF)return GifDec_Play(PicInfor,fp,Playtype);
\ 000C 41 LD B,C
\ 000D 05 DEC B
\ 000E 05 DEC B
\ 000F 2012 JR NZ,?0003
\ 0011 ?0002:
\ 0011 210800 LD HL,8
\ 0014 39 ADD HL,SP
\ 0015 4E LD C,(HL)
\ 0016 C5 PUSH BC
\ 0017 2B DEC HL
\ 0018 2B DEC HL
\ 0019 4E LD C,(HL)
\ 001A 23 INC HL
\ 001B 46 LD B,(HL)
\ 001C CDC800 CALL LWRD GifDec_Play
\ 001F E1 POP HL
\ 0020 C3B500 JP LWRD ?0024
\ 0023 ?0003:
40
41 PicViewInit(fp); // init the decoder
\ 0023 210600 LD HL,6
\ 0026 39 ADD HL,SP
\ 0027 5E LD E,(HL)
\ 0028 23 INC HL
\ 0029 56 LD D,(HL)
\ 002A CD0000 CALL LWRD PicViewInit
42 DSCPicSetParament(PicInfor); // set the decoder infor
\ 002D DDE5 PUSH IX
\ 002F D1 POP DE
\ 0030 CD0000 CALL LWRD DSCPicSetParament
43 // SetDspMips(2);
44 StartDsp(16); // set the dsp mips and start 36,mip
\ 0033 1E10 LD E,16
\ 0035 CD0000 CALL LWRD StartDsp
\ 0038 ?0005:
45
46 while(PicViewOrder!=0xf3) // if the deoceder don't compelet,it keep going
\ 0038 3A0000 LD A,(PicViewOrder)
\ 003B FEF3 CP 243
\ 003D 2868 JR Z,?0020
\ 003F ?0006:
47 {
48
49 // DscDecoderMsg();
50 output8(0x4e,input8(0x4e)|0x8);
\ 003F DB4E IN A,(78)
\ 0041 CBDF SET 3,A
\ 0043 D34E OUT (78),A
51 if(PicViewOrder==0xf5)
\ 0045 3A0000 LD A,(PicViewOrder)
\ 0048 FEF5 CP 245
\ 004A 204E JR NZ,?0008
\ 004C ?0007:
52 {
53 PicViewOrder=0;
\ 004C AF XOR A
\ 004D 320000 LD (PicViewOrder),A
54 if(WindowModeH2V==0xff)
\ 0050 3A0000 LD A,(WindowModeH2V)
\ 0053 3C INC A
\ 0054 210000 LD HL,0
\ 0057 39 ADD HL,SP
\ 0058 46 LD B,(HL)
\ 0059 2029 JR NZ,?0010
\ 005B ?0009:
55 {
56 if(type==Pic_BMP)SetDrawMode(DrawModeVPic_def);
\ 005B 05 DEC B
\ 005C 2004 JR NZ,?0012
\ 005E ?0011:
\ 005E 1E03 LD E,3
\ 0060 1802 JR ?0054
57 else
\ 0062 ?0012:
58 SetDrawMode(DrawModeV_def);
\ 0062 1E01 LD E,1
\ 0064 ?0054:
\ 0064 CD0000 CALL LWRD SetDrawMode
\ 0067 ?0013:
59 TmpReg.x=JpegRegion.y;
\ 0067 3A0100 LD A,(JpegRegion+1)
\ 006A 320000 LD (TmpReg),A
60 TmpReg.y=JpegRegion.x;
\ 006D 3A0000 LD A,(JpegRegion)
\ 0070 320100 LD (TmpReg+1),A
61 TmpReg.width=JpegRegion.height;
\ 0073 3A0300 LD A,(JpegRegion+3)
\ 0076 320200 LD (TmpReg+2),A
62 TmpReg.height=JpegRegion.width;
\ 0079 3A0200 LD A,(JpegRegion+2)
\ 007C 320300 LD (TmpReg+3),A
63 SetWindow(&TmpReg);
\ 007F 110000 LD DE,TmpReg
\ 0082 180A JR ?0055
64 }
65 else
\ 0084 ?0010:
66
67 {
68 if(type==Pic_BMP)
\ 0084 05 DEC B
\ 0085 200C JR NZ,?0016
\ 0087 ?0015:
69 {
70 SetDrawMode(DrawModeH_def);
\ 0087 58 LD E,B
\ 0088 CD0000 CALL LWRD SetDrawMode
71 SetWindow(&JpegRegion);
\ 008B 110000 LD DE,JpegRegion
\ 008E ?0055:
\ 008E CD0000 CALL LWRD SetWindow
72 }
73 else
\ 0091 1803 JR ?0017
\ 0093 ?0016:
74 {
75 SetDrawMode(DrawModeHPic_def);
\ 0093 CDB900 CALL LWRD ?0056
76 SetWindow(&JpegRegion);
77 ///////////////////////////////////////// for LG 1.8'OLED JPEG DisPlay zxs added 2006.03.17
78 SetStartLine();
\ 0096 ?0017:
\ 0096 ?0014:
79 }
80
81 }
82 output8(0x35,0xe5);
\ 0096 3EE5 LD A,229
\ 0098 D335 OUT (53),A
\ 009A ?0008:
83 }
84
85
86
87 if(PicViewOrder==0xff||PicViewOrder==0xf8)
\ 009A 3A0000 LD A,(PicViewOrder)
\ 009D 3C INC A
\ 009E 2807 JR Z,?0020
\ 00A0 3A0000 LD A,(PicViewOrder)
\ 00A3 FEF8 CP 248
\ 00A5 2091 JR NZ,?0005
\ 00A7 ?0020:
\ 00A7 ?0021:
\ 00A7 ?0018:
88 { //PicViewOrder=0;
89 //ClearScreen(NULL);
90 //SetTextPos(CSTNPixelWidth/8, CSTNPixelHeight/2);
91 //PutS("Jpeg Format Error ", -1);
92 break;
\ 00A7 ?0019:
\ 00A7 ?0004:
93 }
94
95 }
96
97
98
99
100 StopDsp();
\ 00A7 CD0000 CALL LWRD StopDsp
101 PicViewExit();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?