📄 ui_director_rec2.lst
字号:
\ 00B3 EDB0 LDIR
114 temp_record.fileno=fselFileNo; //文件序号
\ 00B5 2A0000 LD HL,(fselFileNo)
\ 00B8 220900 LD (temp_record+9),HL
115 temp_record.fselExtNo=fselExtNo; //当前后缀名
\ 00BB 3A0000 LD A,(fselExtNo)
\ 00BE 320C00 LD (temp_record+12),A
116 temp_record.dirlayer=fselDirLayer; //目录层次 0--根目录
\ 00C1 3A0000 LD A,(fselDirLayer)
\ 00C4 320B00 LD (temp_record+11),A
117 }
\ 00C7 D1 POP DE
\ 00C8 C1 POP BC
\ 00C9 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00CC TransOneRecord:
118
119 /********************************************************************************
120 * Description :用于从idm读记录或写入记录到idm
121 *
122 ** Arguments :
123 *
124 * Returns :
125 *
126 * Notes :
127 *
128 ********************************************************************************/
129 void TransOneRecord(file_record *target,file_record *source_record)
130 {
\ 00CC FDE5 PUSH IY
\ 00CE DDE5 PUSH IX
\ 00D0 F5 PUSH AF
\ 00D1 C5 PUSH BC
\ 00D2 DDE1 POP IX
\ 00D4 D5 PUSH DE
\ 00D5 FDE1 POP IY
131 byte status;
132 status = input8(0x05);
\ 00D7 DB05 IN A,(5)
\ 00D9 210000 LD HL,0
\ 00DC 39 ADD HL,SP
\ 00DD 77 LD (HL),A
133 output8(0x05, 0xf6);
\ 00DE 3EF6 LD A,246
\ 00E0 D305 OUT (5),A
134
135 target->filetype=source_record->filetype; //文件类型 0-- 目录 1 文件
\ 00E2 0A LD A,(BC)
\ 00E3 EB EX DE,HL
\ 00E4 77 LD (HL),A
136 memcpy(target->dirno,source_record->dirno,8); //目录序号
\ 00E5 010800 LD BC,8
\ 00E8 FDE5 PUSH IY
\ 00EA D1 POP DE
\ 00EB 13 INC DE
\ 00EC DDE5 PUSH IX
\ 00EE E1 POP HL
\ 00EF 23 INC HL
\ 00F0 EDB0 LDIR
137 target->fileno=source_record->fileno; //文件序号
\ 00F2 DD6E09 LD L,(IX+9)
\ 00F5 FD7509 LD (IY+9),L
\ 00F8 DD660A LD H,(IX+10)
\ 00FB FD740A LD (IY+10),H
138 target->fselExtNo=source_record->fselExtNo; //当前后缀名
\ 00FE DD460C LD B,(IX+12)
\ 0101 FD700C LD (IY+12),B
139 target->dirlayer=source_record->dirlayer; //目录层次 0--根目录
\ 0104 DD460B LD B,(IX+11)
\ 0107 FD700B LD (IY+11),B
140 memcpy(target->name,source_record->name,12);
\ 010A 210D00 LD HL,13
\ 010D FDE5 PUSH IY
\ 010F D1 POP DE
\ 0110 19 ADD HL,DE
\ 0111 EB EX DE,HL
\ 0112 210D00 LD HL,13
\ 0115 DDE5 PUSH IX
\ 0117 C1 POP BC
\ 0118 09 ADD HL,BC
\ 0119 010C00 LD BC,12
\ 011C EDB0 LDIR
141 memcpy(target->longname,source_record->longname,50);
\ 011E 211900 LD HL,25
\ 0121 FDE5 PUSH IY
\ 0123 D1 POP DE
\ 0124 19 ADD HL,DE
\ 0125 EB EX DE,HL
\ 0126 211900 LD HL,25
\ 0129 DDE5 PUSH IX
\ 012B C1 POP BC
\ 012C 09 ADD HL,BC
\ 012D 013200 LD BC,50
\ 0130 EDB0 LDIR
142
143 output8(0x05, status);
\ 0132 69 LD L,C
\ 0133 60 LD H,B
\ 0134 39 ADD HL,SP
\ 0135 7E LD A,(HL)
\ 0136 D305 OUT (5),A
144 }
\ 0138 C3A000 JP LWRD ?0066
\ 013B ShowDirectory:
145
146
147 /********************************************************************************
148 * Description : show the directory.
149 *
150 * Arguments :
151 * location: get thedisk type
152 * Invpath: the "\" or name
153 * Namebuf:the string you will display
154 * type : show file kind
155 * string_id: language type
156 * Returns :
157 * other: Successful
158 * 0: Fail, detail information in fselError
159 * Notes : only display the valid directory or file
160 *
161 ********************************************************************************/
162 void ShowDirectory(BYTE top,BYTE bottom,BYTE Old_active,BYTE active,BYTE string_id,BYTE Disk)
163 {
\ 013B DDE5 PUSH IX
\ 013D DD210000 LD IX,0
\ 0141 DD39 ADD IX,SP
\ 0143 C5 PUSH BC
\ 0144 D5 PUSH DE
\ 0145 F5 PUSH AF
164 BYTE i,tmp;
165
166 ///-SetTextOutMode(1);
167 ///-SetPenColor(Color_BLACK_def);
168 if(Old_active!=active)
\ 0146 DD7E06 LD A,(IX+6)
\ 0149 DDBE08 CP (IX+8)
\ 014C CA1C02 JP Z,?0011
\ 014F ?0010:
169 {
170
171 //清除旧的活动菜单项
172 tmp = Old_active%row_count_def;
\ 014F 0606 LD B,6
\ 0151 CD0000 CALL LWRD ?UC_MOD_L01
173 ResShowPic(FILEBCK1, 12, menu_pos[tmp]-1); //分段刷新背景
\ 0154 4F LD C,A
\ 0155 0600 LD B,0
\ 0157 210000 LD HL,menu_pos
\ 015A 09 ADD HL,BC
\ 015B 7E LD A,(HL)
\ 015C C6FF ADD A,255
\ 015E 4F LD C,A
\ 015F C5 PUSH BC
\ 0160 0E0C LD C,12
\ 0162 112D00 LD DE,45
\ 0165 CD6003 CALL LWRD ?0068
\ 0168 F1 POP AF
174
175 //显示新的活动菜单
176 tmp = active%row_count_def;
\ 0169 0606 LD B,6
\ 016B DD7E08 LD A,(IX+8)
\ 016E CD3603 CALL LWRD ?0067
177 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
178 if(temp_record.filetype==TYPE_FILE)
\ 0171 2013 JR NZ,?0013
\ 0173 ?0012:
179 ResShowPic(MFILE,0,menu_pos[tmp]+2);
\ 0173 DD4EFA LD C,(IX-6)
\ 0176 47 LD B,A
\ 0177 210000 LD HL,menu_pos
\ 017A 09 ADD HL,BC
\ 017B 7E LD A,(HL)
\ 017C C602 ADD A,2
\ 017E 4F LD C,A
\ 017F C5 PUSH BC
\ 0180 48 LD C,B
\ 0181 11C600 LD DE,198
\ 0184 1814 JR ?0058
\ 0186 ?0013:
180 else if(temp_record.filetype==TYPE_DIR)
\ 0186 3A0000 LD A,(temp_record)
\ 0189 B7 OR A
\ 018A 2012 JR NZ,?0016
\ 018C ?0015:
181 {
182 ResShowPic(MDIR,0,menu_pos[tmp]);
\ 018C DD4EFA LD C,(IX-6)
\ 018F 47 LD B,A
\ 0190 210000 LD HL,menu_pos
\ 0193 09 ADD HL,BC
\ 0194 4E LD C,(HL)
\ 0195 C5 PUSH BC
\ 0196 48 LD C,B
\ 0197 11AF00 LD DE,175
\ 019A ?0058:
\ 019A CD6003 CALL LWRD ?0068
\ 019D F1 POP AF
\ 019E ?0016:
\ 019E ?0014:
183 }
184
185 ResShowPic(FILEBCK, 12, menu_pos[tmp]-1);
\ 019E DD4EFA LD C,(IX-6)
\ 01A1 0600 LD B,0
\ 01A3 210000 LD HL,menu_pos
\ 01A6 09 ADD HL,BC
\ 01A7 7E LD A,(HL)
\ 01A8 C6FF ADD A,255
\ 01AA 4F LD C,A
\ 01AB C5 PUSH BC
\ 01AC CD5B03 CALL LWRD ?0069
\ 01AF F1 POP AF
186
187 SetTextPos(12, menu_pos[tmp]);
\ 01B0 DD4EFA LD C,(IX-6)
\ 01B3 0600 LD B,0
\ 01B5 210000 LD HL,menu_pos
\ 01B8 09 ADD HL,BC
\ 01B9 4E LD C,(HL)
\ 01BA 1E0C LD E,12
\ 01BC CD0000 CALL LWRD SetTextPos
188 SetPenColor(Color_WHITE_def);
\ 01BF CD6803 CALL LWRD ?0070
189 SetBackgdColor(0x00003358);
\ 01C2 CD0000 CALL LWRD SetBackgdColor
190 PutS(temp_record.longname,-1);
\ 01C5 CD7F03 CALL LWRD ?0071
191
192 //重新显示旧的活动菜单
193 tmp = Old_active%row_count_def;
\ 01C8 0606 LD B,6
\ 01CA DD7E06 LD A,(IX+6)
\ 01CD CD3603 CALL LWRD ?0067
194 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
195 if(temp_record.filetype==TYPE_FILE)
\ 01D0 2013 JR NZ,?0018
\ 01D2 ?0017:
196 ResShowPic(MFILE,0,menu_pos[tmp]+2);
\ 01D2 DD4EFA LD C,(IX-6)
\ 01D5 47 LD B,A
\ 01D6 210000 LD HL,menu_pos
\ 01D9 09 ADD HL,BC
\ 01DA 7E LD A,(HL)
\ 01DB C602 ADD A,2
\ 01DD 4F LD C,A
\ 01DE C5 PUSH BC
\ 01DF 48 LD C,B
\ 01E0 11C600 LD DE,198
\ 01E3 1814 JR ?0059
\ 01E5 ?0018:
197 else if(temp_record.filetype==TYPE_DIR)
\ 01E5 3A0000 LD A,(temp_record)
\ 01E8 B7 OR A
\ 01E9 2012 JR NZ,?0021
\ 01EB ?0020:
198 {
199 ResShowPic(MDIR,0,menu_pos[tmp]);
\ 01EB DD4EFA LD C,(IX-6)
\ 01EE 47 LD B,A
\ 01EF 210000 LD HL,menu_pos
\ 01F2 09 ADD HL,BC
\ 01F3 4E LD C,(HL)
\ 01F4 C5 PUSH BC
\ 01F5 48 LD C,B
\ 01F6 11AF00 LD DE,175
\ 01F9 ?0059:
\ 01F9 CD6003 CALL LWRD ?0068
\ 01FC F1 POP AF
\ 01FD ?0021:
\ 01FD ?0019:
200 }
201 SetPenColor(Color_BLACK_def);
\ 01FD 010000 LD BC,0
\ 0200 59 LD E,C
\ 0201 50 LD D,B
\ 0202 CD0000 CALL LWRD SetPenColor
202 SetBackgdColor(Color_MENU_def);
\ 0205 010000 LD BC,0
\ 0208 11FFFF LD DE,65535
\ 020B CD0000 CALL LWRD SetBackgdColor
203 SetTextPos(12, menu_pos[tmp]);
\ 020E DD4EFA LD C,(IX-6)
\ 0211 0600 LD B,0
\ 0213 210000 LD HL,menu_pos
204 PutS(temp_record.longname,-1);
\ 0216 CD7803 CALL LWRD ?0072
205 }
206 else //if(Old_active==active) //新旧活动项相同表示是新的一屏数据,需要全部刷新
\ 0219 C32703 JP LWRD ?0026
\ 021C ?0011:
207 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -