📄 sdrv_draw3drect.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/May/107 10:54:37 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = large #
# Source file = d:\case_i_d913f\drv\ui_ssd1332\sdrv\sdrv_draw3drect.c#
# List file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_r\list\sdrv_draw3drect.lst#
# Object file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_r\obj\sdrv_draw3drect.r01#
# ASM file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_r\list\sdrv_draw3drect.s01#
# Command line = -v0 -ml -uu #
# -OD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_R\Obj\ #
# -e -K -w -gA -s9 -RCODE -r0 -DIC3951 -DNAPDEBUG #
# -LD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_R\List\ #
# -q -t8 #
# -AD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_R\List\ #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# -Id:\case_i_d913f\drv\ui_ssd1332\inc\ #
# d:\case_i_d913f\DRV\UI_SSD1332\SDRV\Sdrv_Draw3DRect.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sdrv_draw3drect(16)
\ 0000 RSEG BAC_DW2(0)
\ 0000 EXTERN BAPI_DrawRectFrame
\ 0000 EXTERN BAPI_FillRect
\ 0000 PUBLIC Sdrv_Draw3DRect
\ 0000 EXTERN dc
\ 0000 EXTERN region
\ 0000 EXTERN ?CLZ80L_4_04_L00
\ 0000 RSEG BAC_DW2
\ 0000 Sdrv_Draw3DRect:
1 /*
2 ********************************************************************************
3 * ACTOS
4 * ui dirver show picture
5 *
6 * (c) Copyright 2002-2003, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * File : UI_Draw3DRect.c
10 * By : Rcmai
11 * Version: 1> v1.00 first version 10/17/2003 10:46PM
12 ********************************************************************************
13 */
14 #include "display.h"
15 #include "Drv_S6B33B0A.h"
16
17 #pragma memory=constseg(BAS_DW2)
18 #pragma memory=default
19
20 #pragma memory=dataseg(BAD_DW2)
21 //SD_RW sdrw;
22 //extern unsigned char BufPage;
23 #pragma memory=default
24
25 #pragma codeseg(BAC_DW2)
26
27 ////*******************************************************************************/
28 ///* 把指定区域填充成画笔颜色
29 //** FUNCTION: Draw3DRect
30 //**
31 //** Description:
32 //**
33 //** input
34 //** region_t * D3region: 要画3D区域的区域大小
35 //**
36 //** output
37 //** none
38 //********************************************************************************/
39
40 void Sdrv_Draw3DRect (region_t * D3region, unsigned char type)
41 {
\ 0000 DDE5 PUSH IX
\ 0002 C5 PUSH BC
\ 0003 F5 PUSH AF
\ 0004 F5 PUSH AF
\ 0005 D5 PUSH DE
\ 0006 DDE1 POP IX
42 COLORREF PenColor_bak;
43
44 PenColor_bak = dc.PenColor;//保存当前画笔颜色
\ 0008 210000 LD HL,0
\ 000B 39 ADD HL,SP
\ 000C ED4B0200 LD BC,(dc+2)
\ 0010 ED5B0000 LD DE,(dc)
\ 0014 73 LD (HL),E
\ 0015 23 INC HL
\ 0016 72 LD (HL),D
\ 0017 23 INC HL
\ 0018 71 LD (HL),C
\ 0019 23 INC HL
\ 001A 70 LD (HL),B
45
46 switch (type)
\ 001B 23 INC HL
\ 001C 7E LD A,(HL)
\ 001D FE00 CP 0
\ 001F 2014 JR NZ,?0002
\ 0021 ?0001:
47 {
48 case D3Normalframe_def://加选中框
49 dc.PenColor = SelectedColor_def;
\ 0021 010000 LD BC,0
\ 0024 ED430000 LD (dc),BC
\ 0028 ED430200 LD (dc+2),BC
50 BAPI_DrawRectFrame(D3region);
\ 002C DDE5 PUSH IX
\ 002E D1 POP DE
\ 002F CD0000 CALL BAPI_DrawRectFrame
51 break;
\ 0032 C3BA00 JP ?0004
\ 0035 ?0002:
\ 0035 FE01 CP 1
\ 0037 203F JR NZ,?0003
52
53 case D3KeyUp_def://加突出效果
54 //先画两条背光边
55 dc.PenColor = BackLightColor_def;
\ 0039 010000 LD BC,0
\ 003C 211084 LD HL,33808
\ 003F 220000 LD (dc),HL
\ 0042 ED430200 LD (dc+2),BC
56 region = *D3region;
\ 0046 110000 LD DE,region
\ 0049 DDE5 PUSH IX
\ 004B E1 POP HL
\ 004C 0E04 LD C,4
\ 004E EDB0 LDIR
57 region.height = 1;
58 region.y = D3region->y + D3region->height;
59 BAPI_FillRect(®ion);
\ 0050 CDEE00 CALL ?0008
60
61 region = *D3region;
62 region.width = 1;
\ 0053 3E01 LD A,1
\ 0055 320200 LD (region+2),A
63 region.x = D3region->x + D3region->width;
\ 0058 DD7E02 LD A,(IX+2)
\ 005B DD8600 ADD A,(IX+0)
\ 005E 320000 LD (region),A
64 BAPI_FillRect(®ion);
\ 0061 CDD300 CALL ?0007
65
66 //再画两条向光边
67 dc.PenColor = FaceLightColor_def;
68 region = *D3region;
69 region.height = 1;
\ 0064 3E01 LD A,1
\ 0066 320300 LD (region+3),A
70 BAPI_FillRect(®ion);
\ 0069 CDFC00 CALL ?0009
71
72 region = *D3region;
73 region.width = 1;
\ 006C 3E01 LD A,1
\ 006E 320200 LD (region+2),A
74 BAPI_FillRect(®ion);
\ 0071 1841 JR ?0006
\ 0073 CD0000 CALL BAPI_FillRect
75 break;
\ 0076 1842 JR ?0004
\ 0078 ?0003:
\ 0078 FE02 CP 2
\ 007A 203E JR NZ,?0004
76
77 case D3KeyDown_def://加凹进效果
78 //先画两条背光边
79 dc.PenColor = BackLightColor_def;
\ 007C 010000 LD BC,0
\ 007F 211084 LD HL,33808
\ 0082 220000 LD (dc),HL
\ 0085 ED430200 LD (dc+2),BC
80 region = *D3region;
\ 0089 110000 LD DE,region
\ 008C DDE5 PUSH IX
\ 008E E1 POP HL
\ 008F 0E04 LD C,4
\ 0091 EDB0 LDIR
81 region.height = 1;
\ 0093 3E01 LD A,1
\ 0095 320300 LD (region+3),A
82 BAPI_FillRect(®ion);
\ 0098 CDFC00 CALL ?0009
83
84 region = *D3region;
85 region.width = 1;
\ 009B 3E01 LD A,1
\ 009D 320200 LD (region+2),A
86 BAPI_FillRect(®ion);
\ 00A0 CDD300 CALL ?0007
87
88 //再画两条向光边
89 dc.PenColor = FaceLightColor_def;
90 region = *D3region;
91 region.height = 1;
92 region.y = D3region->y + D3region->height;
93 BAPI_FillRect(®ion);
\ 00A3 CDEE00 CALL ?0008
94
95 region = *D3region;
96 region.width = 1;
\ 00A6 3E01 LD A,1
\ 00A8 320200 LD (region+2),A
97 region.x = D3region->x + D3region->width;
\ 00AB DD7E02 LD A,(IX+2)
\ 00AE DD8600 ADD A,(IX+0)
\ 00B1 320000 LD (region),A
98 BAPI_FillRect(®ion);
\ 00B4 ?0006:
\ 00B4 110000 LD DE,region
\ 00B7 CD0000 CALL BAPI_FillRect
99 break;
\ 00BA ?0004:
100
101 default:
102 break;
\ 00BA ?0000:
103 }
104
105 dc.PenColor = PenColor_bak;//恢复画笔颜色
\ 00BA 210000 LD HL,0
\ 00BD 39 ADD HL,SP
\ 00BE 5E LD E,(HL)
\ 00BF 23 INC HL
\ 00C0 56 LD D,(HL)
\ 00C1 23 INC HL
\ 00C2 4E LD C,(HL)
\ 00C3 23 INC HL
\ 00C4 46 LD B,(HL)
\ 00C5 EB EX DE,HL
\ 00C6 220000 LD (dc),HL
\ 00C9 ED430200 LD (dc+2),BC
106 return;
107 }
\ 00CD E1 POP HL
\ 00CE E1 POP HL
\ 00CF E1 POP HL
\ 00D0 DDE1 POP IX
\ 00D2 C9 RET
\ 00D3 ?0007:
\ 00D3 110000 LD DE,region
\ 00D6 CD0000 CALL BAPI_FillRect
\ 00D9 2118C6 LD HL,50712
\ 00DC 220000 LD (dc),HL
\ 00DF ED430200 LD (dc+2),BC
\ 00E3 110000 LD DE,region
\ 00E6 DDE5 PUSH IX
\ 00E8 E1 POP HL
\ 00E9 0E04 LD C,4
\ 00EB EDB0 LDIR
\ 00ED C9 RET
\ 00EE ?0008:
\ 00EE 3E01 LD A,1
\ 00F0 320300 LD (region+3),A
\ 00F3 DD7E03 LD A,(IX+3)
\ 00F6 DD8601 ADD A,(IX+1)
\ 00F9 320100 LD (region+1),A
\ 00FC ?0009:
\ 00FC 110000 LD DE,region
\ 00FF CD0000 CALL BAPI_FillRect
\ 0102 110000 LD DE,region
\ 0105 DDE5 PUSH IX
\ 0107 E1 POP HL
\ 0108 0E04 LD C,4
\ 010A EDB0 LDIR
\ 010C C9 RET
\ 010D END
Errors: none
Warnings: none
Code size: 269
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -