📄 ap_common.lst
字号:
108 // //读entry
109 // SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
110 // SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
111 // if(res_entry.type != RES_TYPE_LOGO) return 0;
112 // ASSERT(res_entry.length <= 512);
113 //
114 // //读数据
115 // SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
116 // res_region.width = SCR_WIDTH;
117 // res_region.height = SCR_HEIGHT;
118 //
119 // //显示logo
120 // res_region.x = 0;
121 // res_region.y = 0;
122 // PutSDImage(&res_region, res_fp->rwpointer);
123 // if(ui_auto_update) UpdateScreen(&res_region);
124 // return 1;
125 //}
126
127 /*
128 ********************************************************************************
129 * Description : 在指定位置显示图形
130 *
131 * Arguments : id, 资源代号
132 x,y, 屏幕坐标
133 *
134 * Returns : 成功, 1
135 失败, 0
136 *
137 * Notes :
138 *
139 ********************************************************************************
140 */
141 int ResShowPic(WORD id, uchar x, uchar y)
142 {
\ 0055 C5 PUSH BC
\ 0056 D5 PUSH DE
\ 0057 F5 PUSH AF
\ 0058 F5 PUSH AF
143 WORD buf[2]; //buffer for sd read
144
145 ASSERT(id <= UIID_MAX);
146
147 //读entry
148 SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
\ 0059 6B LD L,E
\ 005A 62 LD H,D
\ 005B 010000 LD BC,0
\ 005E 3E04 LD A,4
\ 0060 CD0000 CALL LWRD ?L_LSH_L03
\ 0063 C5 PUSH BC
\ 0064 E5 PUSH HL
\ 0065 0E00 LD C,0
\ 0067 ED5B0000 LD DE,(res_fp)
\ 006B CD0000 CALL LWRD SD_FSeek
\ 006E E1 POP HL
\ 006F E1 POP HL
149 SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
\ 0070 211000 LD HL,16
\ 0073 E5 PUSH HL
\ 0074 011200 LD BC,res_entry
\ 0077 ED5B0000 LD DE,(res_fp)
\ 007B CD0000 CALL LWRD SD_FRead
\ 007E F1 POP AF
150 if(res_entry.type != RES_TYPE_PIC) return 0;
\ 007F 3A1800 LD A,(res_entry+6)
\ 0082 3D DEC A
\ 0083 2805 JR Z,?0010
\ 0085 ?0009:
\ 0085 210000 LD HL,0
151 ASSERT(res_entry.length <= 512);
\ 0088 1869 JR ?0013
\ 008A ?0010:
152
153 //读数据
154 SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
\ 008A 2A1400 LD HL,(res_entry+2)
\ 008D E5 PUSH HL
\ 008E 2A1200 LD HL,(res_entry)
\ 0091 E5 PUSH HL
\ 0092 4F LD C,A
\ 0093 ED5B0000 LD DE,(res_fp)
\ 0097 CD0000 CALL LWRD SD_FSeek
\ 009A E1 POP HL
\ 009B E1 POP HL
155 //SD_FRead(res_fp, &(res_region.width), 2);
156 //SD_FRead(res_fp, &(res_region.height), 2);
157 SD_FRead(res_fp, buf, sizeof(buf));
\ 009C 210400 LD HL,4
\ 009F E5 PUSH HL
\ 00A0 2B DEC HL
\ 00A1 2B DEC HL
\ 00A2 39 ADD HL,SP
\ 00A3 4D LD C,L
\ 00A4 44 LD B,H
\ 00A5 ED5B0000 LD DE,(res_fp)
\ 00A9 CD0000 CALL LWRD SD_FRead
\ 00AC F1 POP AF
158 //ASSERT(buf[0] <= 128);
159 //ASSERT(buf[1] <= 32);
160 res_region.width = (char)buf[0];
\ 00AD 210000 LD HL,0
\ 00B0 39 ADD HL,SP
\ 00B1 7E LD A,(HL)
\ 00B2 322400 LD (res_region+2),A
161 res_region.height = (char)buf[1];
\ 00B5 23 INC HL
\ 00B6 23 INC HL
\ 00B7 7E LD A,(HL)
\ 00B8 322500 LD (res_region+3),A
162
163 //显示
164 res_region.x = x;
\ 00BB 210600 LD HL,6
\ 00BE 39 ADD HL,SP
\ 00BF 7E LD A,(HL)
\ 00C0 322200 LD (res_region),A
165 res_region.y = y;
\ 00C3 210C00 LD HL,12
\ 00C6 39 ADD HL,SP
\ 00C7 7E LD A,(HL)
\ 00C8 322300 LD (res_region+1),A
166 PutSDImage(&res_region, res_fp->rwpointer);
\ 00CB 211400 LD HL,20
\ 00CE ED4B0000 LD BC,(res_fp)
\ 00D2 09 ADD HL,BC
\ 00D3 4E LD C,(HL)
\ 00D4 23 INC HL
\ 00D5 46 LD B,(HL)
\ 00D6 23 INC HL
\ 00D7 5E LD E,(HL)
\ 00D8 23 INC HL
\ 00D9 56 LD D,(HL)
\ 00DA D5 PUSH DE
\ 00DB C5 PUSH BC
\ 00DC 112200 LD DE,res_region
\ 00DF CD0000 CALL LWRD PutSDImage
\ 00E2 E1 POP HL
\ 00E3 E1 POP HL
167 if(ui_auto_update) UpdateScreen(&res_region);
\ 00E4 3A0000 LD A,(ui_auto_update)
\ 00E7 B7 OR A
\ 00E8 2806 JR Z,?0012
\ 00EA ?0011:
\ 00EA 112200 LD DE,res_region
\ 00ED CD0000 CALL LWRD UpdateScreen
\ 00F0 ?0012:
168 return 1;
\ 00F0 210100 LD HL,1
169 }
\ 00F3 ?0013:
\ 00F3 F1 POP AF
\ 00F4 F1 POP AF
\ 00F5 F1 POP AF
\ 00F6 F1 POP AF
\ 00F7 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
170
171 /*
172 bool SDCardPullOutSign(char CurDisk)
173 {
174 //送出已拔出标志
175 if (CurDisk == 'H')
176 {
177 if (DRV_DetectUD(1) != 0x20)
178 {
179 return TRUE; //卡已不在,送出拔出标志
180 }
181 }
182 return FALSE;
183 }
184
185 */
186 #pragma function=default
187
\ 0000 RSEG UDATA0
\ 0000 res_fp:
\ 0002 DEFS 2
\ 0002 res_head:
\ 0012 DEFS 16
\ 0012 res_entry:
\ 0022 DEFS 16
\ 0022 res_region:
\ 0026 DEFS 4
\ 0000 RSEG IDATA0
\ 0000 ui_auto_update:
\ 0001 DEFS 1
\ 0001 ui_auto_select:
\ 0002 DEFS 1
\ 0002 ui_run_realtime:
\ 0003 DEFS 1
\ 0000 RSEG CDATA0
\ 0000 01 DEFB 1
\ 0001 01 DEFB 1
\ 0002 00 DEFB 0
\ 0003 END
Errors: none
Warnings: none
Code size: 250
Constant size: 3
Static variable size: Data(41) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -