📄 ui_director2.lst
字号:
\ 009E 77 LD (HL),A
105 output8(0x05, 0xf6);
\ 009F 3EF6 LD A,246
\ 00A1 D305 OUT (5),A
106
107 target->filetype=source_record->filetype; //文件类型 0-- 目录 1 文件
\ 00A3 0A LD A,(BC)
\ 00A4 EB EX DE,HL
\ 00A5 77 LD (HL),A
108 memcpy(target->dirno,source_record->dirno,8); //目录序号
\ 00A6 010800 LD BC,8
\ 00A9 FDE5 PUSH IY
\ 00AB D1 POP DE
\ 00AC 13 INC DE
\ 00AD DDE5 PUSH IX
\ 00AF E1 POP HL
\ 00B0 23 INC HL
\ 00B1 EDB0 LDIR
109 target->fileno=source_record->fileno; //文件序号
\ 00B3 DD6E09 LD L,(IX+9)
\ 00B6 FD7509 LD (IY+9),L
\ 00B9 DD660A LD H,(IX+10)
\ 00BC FD740A LD (IY+10),H
110 target->fselExtNo=source_record->fselExtNo; //当前后缀名
\ 00BF DD460C LD B,(IX+12)
\ 00C2 FD700C LD (IY+12),B
111 target->dirlayer=source_record->dirlayer; //目录层次 0--根目录
\ 00C5 DD460B LD B,(IX+11)
\ 00C8 FD700B LD (IY+11),B
112 memcpy(target->name,source_record->name,12);
\ 00CB 210D00 LD HL,13
\ 00CE FDE5 PUSH IY
\ 00D0 D1 POP DE
\ 00D1 19 ADD HL,DE
\ 00D2 EB EX DE,HL
\ 00D3 210D00 LD HL,13
\ 00D6 DDE5 PUSH IX
\ 00D8 C1 POP BC
\ 00D9 09 ADD HL,BC
\ 00DA 010C00 LD BC,12
\ 00DD EDB0 LDIR
113 memcpy(target->longname,source_record->longname,50);
\ 00DF 211900 LD HL,25
\ 00E2 FDE5 PUSH IY
\ 00E4 D1 POP DE
\ 00E5 19 ADD HL,DE
\ 00E6 EB EX DE,HL
\ 00E7 211900 LD HL,25
\ 00EA DDE5 PUSH IX
\ 00EC C1 POP BC
\ 00ED 09 ADD HL,BC
\ 00EE 013200 LD BC,50
\ 00F1 EDB0 LDIR
114
115 output8(0x05, status);
\ 00F3 69 LD L,C
\ 00F4 60 LD H,B
\ 00F5 39 ADD HL,SP
\ 00F6 7E LD A,(HL)
\ 00F7 D305 OUT (5),A
116 }
\ 00F9 C36100 JP LWRD ?0087
\ 00FC ShowDirectory:
117
118
119 /********************************************************************************
120 * Description : show the directory.
121 *
122 * Arguments :
123 * location: get thedisk type
124 * Invpath: the "\" or name
125 * Namebuf:the string you will display
126 * type : show file kind
127 * string_id: language type
128 * Returns :
129 * other: Successful
130 * 0: Fail, detail information in fselError
131 * Notes : only display the valid directory or file
132 *
133 ********************************************************************************/
134
135 void ShowDirectory(WORD top,WORD bottom,WORD Old_active,WORD active,BYTE string_id,BYTE Disk)
136 {
\ 00FC FDE5 PUSH IY
\ 00FE DDE5 PUSH IX
\ 0100 DD210000 LD IX,0
\ 0104 DD39 ADD IX,SP
\ 0106 C5 PUSH BC
\ 0107 D5 PUSH DE
\ 0108 21F6FF LD HL,65526
\ 010B 39 ADD HL,SP
\ 010C F9 LD SP,HL
137 WORD i,tmp;
138 // region_t region;
139 DC oldDC_sav;
140 GetDCStatus(&oldDC_sav);
\ 010D 23 INC HL
\ 010E 23 INC HL
\ 010F EB EX DE,HL
\ 0110 CD0000 CALL LWRD GetDCStatus
141
142 ///-SetTextOutMode(1);
143 ///-SetPenColor(Color_BLACK_def);
144 if(Old_active!=active)
\ 0113 DD6E0A LD L,(IX+10)
\ 0116 DD660B LD H,(IX+11)
\ 0119 DD5E08 LD E,(IX+8)
\ 011C DD5609 LD D,(IX+9)
\ 011F A7 AND A
\ 0120 ED52 SBC HL,DE
\ 0122 CAFC01 JP Z,?0006
\ 0125 ?0005:
145 {
146 //清除旧的活动菜单项
147 tmp = Old_active%row_count_def;
\ 0125 010600 LD BC,6
\ 0128 CD0000 CALL LWRD ?US_MOD_L02
148 ResShowPic(FILEBCK1, 12, menu_pos_list[tmp]-1);
\ 012B 210000 LD HL,menu_pos_list
\ 012E 19 ADD HL,DE
\ 012F 7E LD A,(HL)
\ 0130 C6FF ADD A,255
\ 0132 4F LD C,A
\ 0133 C5 PUSH BC
\ 0134 0E0C LD C,12
\ 0136 112D00 LD DE,45
\ 0139 CD6B03 CALL LWRD ?0089
\ 013C F1 POP AF
149
150 //显示新的活动菜单
151 tmp = active%row_count_def;
\ 013D 010600 LD BC,6
\ 0140 DD5E0A LD E,(IX+10)
\ 0143 DD560B LD D,(IX+11)
\ 0146 CD4203 CALL LWRD ?0088
152 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
153 if(temp_record.filetype==TYPE_FILE)
\ 0149 2016 JR NZ,?0008
\ 014B ?0007:
154 ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
\ 014B 210000 LD HL,menu_pos_list
\ 014E DD4EF2 LD C,(IX-14)
\ 0151 DD46F3 LD B,(IX-13)
\ 0154 09 ADD HL,BC
\ 0155 7E LD A,(HL)
\ 0156 C602 ADD A,2
\ 0158 4F LD C,A
\ 0159 C5 PUSH BC
\ 015A 0E00 LD C,0
\ 015C 11C600 LD DE,198
\ 015F 1816 JR ?0075
\ 0161 ?0008:
155 // if(temp_record.filetype==TYPE_FILE)
156 // ResShowPic(MFILE, 0, (LCD_HEIGHT-16*(tmp+1)));
157 else if(temp_record.filetype==TYPE_DIR)
\ 0161 3A0000 LD A,(temp_record)
\ 0164 B7 OR A
\ 0165 2014 JR NZ,?0011
\ 0167 ?0010:
158 {
159 ResShowPic(MDIR,0,menu_pos_list[tmp]);
\ 0167 210000 LD HL,menu_pos_list
\ 016A DD4EF2 LD C,(IX-14)
\ 016D DD46F3 LD B,(IX-13)
\ 0170 09 ADD HL,BC
\ 0171 4E LD C,(HL)
\ 0172 C5 PUSH BC
\ 0173 4F LD C,A
\ 0174 11AF00 LD DE,175
\ 0177 ?0075:
\ 0177 CD6B03 CALL LWRD ?0089
\ 017A F1 POP AF
\ 017B ?0011:
\ 017B ?0009:
160 }
161
162 ResShowPic(FILEBCK, 12, menu_pos_list[tmp]-1);
\ 017B 210000 LD HL,menu_pos_list
\ 017E DD4EF2 LD C,(IX-14)
\ 0181 DD46F3 LD B,(IX-13)
\ 0184 09 ADD HL,BC
\ 0185 7E LD A,(HL)
\ 0186 C6FF ADD A,255
\ 0188 5F LD E,A
\ 0189 D5 PUSH DE
\ 018A CD6603 CALL LWRD ?0090
\ 018D F1 POP AF
163
164 SetTextPos(12, menu_pos_list[tmp]);
\ 018E CD7303 CALL LWRD ?0091
165 SetPenColor(Color_WHITE_def);
\ 0191 CD8303 CALL LWRD ?0093
166 SetBackgdColor(0x00003358);
\ 0194 CD0000 CALL LWRD SetBackgdColor
167 PutS(temp_record.longname,-1);
\ 0197 0EFF LD C,255
\ 0199 111900 LD DE,temp_record+25
\ 019C CD0000 CALL LWRD PutS
168
169 //重新显示旧的活动菜单
170 tmp = Old_active%row_count_def;
\ 019F 010600 LD BC,6
\ 01A2 DD5E08 LD E,(IX+8)
\ 01A5 DD5609 LD D,(IX+9)
\ 01A8 CD4203 CALL LWRD ?0088
171 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
172 if(temp_record.filetype==TYPE_FILE)
\ 01AB 2016 JR NZ,?0013
\ 01AD ?0012:
173 ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
\ 01AD 210000 LD HL,menu_pos_list
\ 01B0 DD4EF2 LD C,(IX-14)
\ 01B3 DD46F3 LD B,(IX-13)
\ 01B6 09 ADD HL,BC
\ 01B7 7E LD A,(HL)
\ 01B8 C602 ADD A,2
\ 01BA 4F LD C,A
\ 01BB C5 PUSH BC
\ 01BC 0E00 LD C,0
\ 01BE 11C600 LD DE,198
\ 01C1 1816 JR ?0076
\ 01C3 ?0013:
174 else if(temp_record.filetype==TYPE_DIR)
\ 01C3 3A0000 LD A,(temp_record)
\ 01C6 B7 OR A
\ 01C7 2014 JR NZ,?0016
\ 01C9 ?0015:
175 {
176 ResShowPic(MDIR,0,menu_pos_list[tmp]);
\ 01C9 210000 LD HL,menu_pos_list
\ 01CC DD4EF2 LD C,(IX-14)
\ 01CF DD46F3 LD B,(IX-13)
\ 01D2 09 ADD HL,BC
\ 01D3 4E LD C,(HL)
\ 01D4 C5 PUSH BC
\ 01D5 4F LD C,A
\ 01D6 11AF00 LD DE,175
\ 01D9 ?0076:
\ 01D9 CD6B03 CALL LWRD ?0089
\ 01DC F1 POP AF
\ 01DD ?0016:
\ 01DD ?0014:
177 }
178 SetPenColor(Color_BLACK_def);
\ 01DD 010000 LD BC,0
\ 01E0 59 LD E,C
\ 01E1 50 LD D,B
\ 01E2 CD0000 CALL LWRD SetPenColor
179 SetBackgdColor(Color_MENU_def);
\ 01E5 010000 LD BC,0
\ 01E8 11FFFF LD DE,65535
\ 01EB CD0000 CALL LWRD SetBackgdColor
180 SetTextPos(12, menu_pos_list[tmp]);
\ 01EE CD7303 CALL LWRD ?0091
181 PutS(temp_record.longname,-1);
\ 01F1 0EFF LD C,255
\ 01F3 111900 LD DE,temp_record+25
\ 01F6 CD0000 CALL LWRD PutS
182 }
183 else //if(Old_active==active) //新旧活动项相同表示是新的一屏数据,需要全部刷新
\ 01F9 C31C03 JP LWRD ?0021
\ 01FC ?0006:
184 {
185 //ClearScreen(NULL);
186 ///-SetTextOutMode(1);
187 SetBackgdColor(0x0000df1c);
\ 01FC 4D LD C,L
\ 01FD 44 LD B,H
\ 01FE 111CDF LD DE,57116
\ 0201 CD0000 CALL LWRD SetBackgdColor
188 ResShowPic(MENUTWO1,0,0);
\ 0204 0E00 LD C,0
\ 0206 C5 PUSH BC
\ 0207 11C400 LD DE,196
\ 020A CD6B03 CALL LWRD ?0089
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -