📄 ap_common.lst
字号:
\ 0092 211000 LD HL,16
\ 0095 E5 PUSH HL
\ 0096 011200 LD BC,res_entry
\ 0099 ED5B0000 LD DE,(res_fp)
\ 009D CD0000 CALL LWRD SD_FRead
\ 00A0 F1 POP AF
123 if(res_entry.type != RES_TYPE_PIC) return 0;
\ 00A1 3A1800 LD A,(res_entry+6)
\ 00A4 3D DEC A
\ 00A5 2805 JR Z,?0010
\ 00A7 ?0009:
\ 00A7 210000 LD HL,0
124 ASSERT(res_entry.length <= 512);
\ 00AA 1869 JR ?0013
\ 00AC ?0010:
125
126 //读数据
127 SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
\ 00AC 2A1400 LD HL,(res_entry+2)
\ 00AF E5 PUSH HL
\ 00B0 2A1200 LD HL,(res_entry)
\ 00B3 E5 PUSH HL
\ 00B4 0E00 LD C,0
\ 00B6 ED5B0000 LD DE,(res_fp)
\ 00BA CD0000 CALL LWRD SD_FSeek
\ 00BD E1 POP HL
\ 00BE E1 POP HL
128
129 SD_FRead(res_fp, buf, sizeof(buf));
\ 00BF 210400 LD HL,4
\ 00C2 E5 PUSH HL
\ 00C3 210200 LD HL,2
\ 00C6 39 ADD HL,SP
\ 00C7 4D LD C,L
\ 00C8 44 LD B,H
\ 00C9 ED5B0000 LD DE,(res_fp)
\ 00CD CD0000 CALL LWRD SD_FRead
\ 00D0 F1 POP AF
130
131 res_region.width = (char)buf[0];
\ 00D1 DD46F8 LD B,(IX-8)
\ 00D4 78 LD A,B
\ 00D5 322400 LD (res_region+2),A
132 res_region.height = (char)buf[1];
\ 00D8 DD46FA LD B,(IX-6)
\ 00DB 78 LD A,B
\ 00DC 322500 LD (res_region+3),A
133
134 //显示
135 res_region.x = x;
\ 00DF DD46FE LD B,(IX-2)
\ 00E2 78 LD A,B
\ 00E3 322200 LD (res_region),A
136 res_region.y = y;
\ 00E6 DD4606 LD B,(IX+6)
\ 00E9 78 LD A,B
\ 00EA 322300 LD (res_region+1),A
137 PutSDImage(&res_region, res_fp->rwpointer);
\ 00ED 211400 LD HL,20
\ 00F0 ED4B0000 LD BC,(res_fp)
\ 00F4 09 ADD HL,BC
\ 00F5 4E LD C,(HL)
\ 00F6 23 INC HL
\ 00F7 46 LD B,(HL)
\ 00F8 23 INC HL
\ 00F9 5E LD E,(HL)
\ 00FA 23 INC HL
\ 00FB 56 LD D,(HL)
\ 00FC D5 PUSH DE
\ 00FD C5 PUSH BC
\ 00FE 112200 LD DE,res_region
\ 0101 CD0000 CALL LWRD PutSDImage
\ 0104 E1 POP HL
\ 0105 E1 POP HL
138 if(ui_auto_update) UpdateScreen(&res_region);
\ 0106 3A0000 LD A,(ui_auto_update)
\ 0109 B7 OR A
\ 010A 2806 JR Z,?0012
\ 010C ?0011:
\ 010C 112200 LD DE,res_region
\ 010F CD0000 CALL LWRD UpdateScreen
\ 0112 ?0012:
139 return 1;
\ 0112 210100 LD HL,1
140 }
\ 0115 ?0013:
\ 0115 DDF9 LD SP,IX
\ 0117 DDE1 POP IX
\ 0119 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 011C ResInvertShowPic:
141 #ifdef InvertFlag
142 int ResInvertShowPic(WORD id, uchar x, uchar y)
143 {
\ 011C DDE5 PUSH IX
\ 011E DD210000 LD IX,0
\ 0122 DD39 ADD IX,SP
\ 0124 C5 PUSH BC
\ 0125 D5 PUSH DE
\ 0126 F5 PUSH AF
\ 0127 F5 PUSH AF
144 WORD buf[2]; //buffer for sd read
145
146 ASSERT(id <= UIID_MAX);
147
148 //读entry
149 SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
\ 0128 EB EX DE,HL
\ 0129 010000 LD BC,0
\ 012C 3E04 LD A,4
\ 012E CD0000 CALL LWRD ?L_LSH_L03
\ 0131 C5 PUSH BC
\ 0132 E5 PUSH HL
\ 0133 0E00 LD C,0
\ 0135 ED5B0000 LD DE,(res_fp)
\ 0139 CD0000 CALL LWRD SD_FSeek
\ 013C E1 POP HL
\ 013D E1 POP HL
150 SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
\ 013E 211000 LD HL,16
\ 0141 E5 PUSH HL
\ 0142 011200 LD BC,res_entry
\ 0145 ED5B0000 LD DE,(res_fp)
\ 0149 CD0000 CALL LWRD SD_FRead
\ 014C F1 POP AF
151 if(res_entry.type != RES_TYPE_PIC) return 0;
\ 014D 3A1800 LD A,(res_entry+6)
\ 0150 3D DEC A
\ 0151 2805 JR Z,?0015
\ 0153 ?0014:
\ 0153 210000 LD HL,0
152 ASSERT(res_entry.length <= 512);
\ 0156 186F JR ?0018
\ 0158 ?0015:
153
154 //读数据
155 SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
\ 0158 2A1400 LD HL,(res_entry+2)
\ 015B E5 PUSH HL
\ 015C 2A1200 LD HL,(res_entry)
\ 015F E5 PUSH HL
\ 0160 0E00 LD C,0
\ 0162 ED5B0000 LD DE,(res_fp)
\ 0166 CD0000 CALL LWRD SD_FSeek
\ 0169 E1 POP HL
\ 016A E1 POP HL
156
157 SD_FRead(res_fp, buf, sizeof(buf));
\ 016B 210400 LD HL,4
\ 016E E5 PUSH HL
\ 016F 210200 LD HL,2
\ 0172 39 ADD HL,SP
\ 0173 4D LD C,L
\ 0174 44 LD B,H
\ 0175 ED5B0000 LD DE,(res_fp)
\ 0179 CD0000 CALL LWRD SD_FRead
\ 017C F1 POP AF
158
159 res_region.width = (char)buf[0];
\ 017D DD46F8 LD B,(IX-8)
\ 0180 78 LD A,B
\ 0181 322400 LD (res_region+2),A
160 res_region.height = (char)buf[1];
\ 0184 DD46FA LD B,(IX-6)
\ 0187 78 LD A,B
\ 0188 322500 LD (res_region+3),A
161
162 //显示
163 res_region.x = x;
\ 018B DD46FE LD B,(IX-2)
\ 018E 78 LD A,B
\ 018F 322200 LD (res_region),A
164 res_region.y = y;
\ 0192 DD4606 LD B,(IX+6)
\ 0195 78 LD A,B
\ 0196 322300 LD (res_region+1),A
165 PutSDImage(&res_region, res_fp->rwpointer);
\ 0199 211400 LD HL,20
\ 019C ED4B0000 LD BC,(res_fp)
\ 01A0 09 ADD HL,BC
\ 01A1 4E LD C,(HL)
\ 01A2 23 INC HL
\ 01A3 46 LD B,(HL)
\ 01A4 23 INC HL
\ 01A5 5E LD E,(HL)
\ 01A6 23 INC HL
\ 01A7 56 LD D,(HL)
\ 01A8 D5 PUSH DE
\ 01A9 C5 PUSH BC
\ 01AA 112200 LD DE,res_region
\ 01AD CD0000 CALL LWRD PutSDImage
\ 01B0 E1 POP HL
\ 01B1 E1 POP HL
166 InvertRegion(&res_region);
\ 01B2 112200 LD DE,res_region
\ 01B5 CD0000 CALL LWRD InvertRegion
167 if(ui_auto_update) UpdateScreen(&res_region);
\ 01B8 3A0000 LD A,(ui_auto_update)
\ 01BB B7 OR A
\ 01BC 2806 JR Z,?0017
\ 01BE ?0016:
\ 01BE 112200 LD DE,res_region
\ 01C1 CD0000 CALL LWRD UpdateScreen
\ 01C4 ?0017:
168 return 1;
\ 01C4 210100 LD HL,1
169 }
\ 01C7 ?0018:
\ 01C7 DDF9 LD SP,IX
\ 01C9 DDE1 POP IX
\ 01CB C30000 JP LWRD ?BANK_FAST_LEAVE_L08
170 #endif
171 #pragma function=default
172
173
\ 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
\ 0026 str_pt:
\ 0028 DEFS 2
\ 0028 strhead_pt:
\ 002A DEFS 2
\ 002A scroll_cnt:
\ 002B DEFS 1
\ 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: 462
Constant size: 3
Static variable size: Data(46) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -