📄 ui_director2.lst
字号:
\ 0095 D5 PUSH DE
\ 0096 FDE1 POP IY
107 byte status;
108 status = input8(0x05);
\ 0098 DB05 IN A,(5)
\ 009A 210000 LD HL,0
\ 009D 39 ADD HL,SP
\ 009E 77 LD (HL),A
109 output8(0x05, 0xf6);
\ 009F 3EF6 LD A,246
\ 00A1 D305 OUT (5),A
110
111 target->filetype=source_record->filetype; //文件类型 0-- 目录 1 文件
\ 00A3 0A LD A,(BC)
\ 00A4 EB EX DE,HL
\ 00A5 77 LD (HL),A
112 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
113 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
114 target->fselExtNo=source_record->fselExtNo; //当前后缀名
\ 00BF DD460C LD B,(IX+12)
\ 00C2 FD700C LD (IY+12),B
115 target->dirlayer=source_record->dirlayer; //目录层次 0--根目录
\ 00C5 DD460B LD B,(IX+11)
\ 00C8 FD700B LD (IY+11),B
116 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
117 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
118
119 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
120 }
\ 00F9 C36100 JP LWRD ?0087
\ 00FC ShowDirectory:
121
122
123 /********************************************************************************
124 * Description : show the directory.
125 *
126 * Arguments :
127 * location: get thedisk type
128 * Invpath: the "\" or name
129 * Namebuf:the string you will display
130 * type : show file kind
131 * string_id: language type
132 * Returns :
133 * other: Successful
134 * 0: Fail, detail information in fselError
135 * Notes : only display the valid directory or file
136 *
137 ********************************************************************************/
138
139 void ShowDirectory(BYTE top,BYTE bottom,BYTE Old_active,BYTE active,BYTE string_id,BYTE Disk)
140 {
\ 00FC DDE5 PUSH IX
\ 00FE DD210000 LD IX,0
\ 0102 DD39 ADD IX,SP
\ 0104 C5 PUSH BC
\ 0105 D5 PUSH DE
\ 0106 21F6FF LD HL,65526
\ 0109 39 ADD HL,SP
\ 010A F9 LD SP,HL
141 BYTE i,tmp;
142 // region_t region;
143 DC oldDC_sav;
144 GetDCStatus(&oldDC_sav);
\ 010B 23 INC HL
\ 010C 23 INC HL
\ 010D EB EX DE,HL
\ 010E CD0000 CALL LWRD GetDCStatus
145
146 SetTextOutMode(1);
\ 0111 1E01 LD E,1
\ 0113 CD0000 CALL LWRD SetTextOutMode
147 SetPenColor(Color_WHITE_def);
\ 0116 CD4103 CALL LWRD ?0088
148 if(Old_active!=active)
\ 0119 DD7E06 LD A,(IX+6)
\ 011C DDBE08 CP (IX+8)
\ 011F CA1002 JP Z,?0006
\ 0122 ?0005:
149 {
150
151 //清除旧的活动菜单项
152 tmp = Old_active%row_count_def;
\ 0122 0606 LD B,6
\ 0124 CD0000 CALL LWRD ?UC_MOD_L01
\ 0127 DD77F2 LD (IX-14),A
153 ResShowPic(file_bck_pic[tmp], menu_bck_x_def, file_pos[tmp]-4);
\ 012A 4F LD C,A
\ 012B 0600 LD B,0
\ 012D 210000 LD HL,file_pos
\ 0130 09 ADD HL,BC
\ 0131 7E LD A,(HL)
\ 0132 C6FC ADD A,252
\ 0134 4F LD C,A
\ 0135 C5 PUSH BC
\ 0136 0E09 LD C,9
\ 0138 DD6EF2 LD L,(IX-14)
\ 013B 60 LD H,B
\ 013C 29 ADD HL,HL
\ 013D 110600 LD DE,file_bck_pic
\ 0140 19 ADD HL,DE
\ 0141 5E LD E,(HL)
\ 0142 23 INC HL
\ 0143 56 LD D,(HL)
\ 0144 CD7403 CALL LWRD ?0090
\ 0147 F1 POP AF
154 //ResShowPic(DHT,126,0);
155 ResShowPic(DHT,194,8);
\ 0148 0E08 LD C,8
\ 014A C5 PUSH BC
\ 014B 0EC2 LD C,194
\ 014D 112D00 LD DE,45
\ 0150 CD7403 CALL LWRD ?0090
\ 0153 F1 POP AF
156
157 //显示新的活动菜单
158 tmp = active%row_count_def;
\ 0154 0606 LD B,6
\ 0156 DD7E08 LD A,(IX+8)
\ 0159 CD4A03 CALL LWRD ?0089
159 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
160 if(temp_record.filetype==TYPE_FILE)
\ 015C 2014 JR NZ,?0008
\ 015E ?0007:
161 ResShowPic(MFILE,13,file_pos[tmp]-1);
\ 015E DD4EF2 LD C,(IX-14)
\ 0161 47 LD B,A
\ 0162 210000 LD HL,file_pos
\ 0165 09 ADD HL,BC
\ 0166 7E LD A,(HL)
\ 0167 C6FF ADD A,255
\ 0169 4F LD C,A
\ 016A C5 PUSH BC
\ 016B 0E0D LD C,13
\ 016D 117900 LD DE,121
\ 0170 1818 JR ?0075
\ 0172 ?0008:
162 // if(temp_record.filetype==TYPE_FILE)
163 // ResShowPic(MFILE, 0, (LCD_HEIGHT-16*(tmp+1)));
164 else if(temp_record.filetype==TYPE_DIR)
\ 0172 3A0000 LD A,(temp_record)
\ 0175 B7 OR A
\ 0176 2016 JR NZ,?0011
\ 0178 ?0010:
165 {
166 ResShowPic(MDIR,10,file_pos[tmp]-4);
\ 0178 DD4EF2 LD C,(IX-14)
\ 017B 47 LD B,A
\ 017C 210000 LD HL,file_pos
\ 017F 09 ADD HL,BC
\ 0180 7E LD A,(HL)
\ 0181 C6FC ADD A,252
\ 0183 4F LD C,A
\ 0184 C5 PUSH BC
\ 0185 0E0A LD C,10
\ 0187 115B00 LD DE,91
\ 018A ?0075:
\ 018A CD7403 CALL LWRD ?0090
\ 018D F1 POP AF
\ 018E ?0011:
\ 018E ?0009:
167 }
168
169 ResShowPic(FILEBCK, explorer_str_x_def-1, file_pos[tmp]-4);
\ 018E DD4EF2 LD C,(IX-14)
\ 0191 0600 LD B,0
\ 0193 210000 LD HL,file_pos
\ 0196 09 ADD HL,BC
\ 0197 7E LD A,(HL)
\ 0198 C6FC ADD A,252
\ 019A 4F LD C,A
\ 019B C5 PUSH BC
\ 019C CD6F03 CALL LWRD ?0091
\ 019F F1 POP AF
170 //ResShowPic(DHTHK,122, file_pos[tmp]-2);
171 ResShowPic(DHTHK,194, file_pos[tmp]+5);
\ 01A0 DD4EF2 LD C,(IX-14)
\ 01A3 0600 LD B,0
\ 01A5 210000 LD HL,file_pos
\ 01A8 09 ADD HL,BC
\ 01A9 7E LD A,(HL)
\ 01AA C605 ADD A,5
\ 01AC 4F LD C,A
\ 01AD C5 PUSH BC
\ 01AE 0EC2 LD C,194
\ 01B0 112E00 LD DE,46
\ 01B3 CD7403 CALL LWRD ?0090
\ 01B6 F1 POP AF
172
173 SetTextPos(explorer_str_x_def, file_pos[tmp]-2);
\ 01B7 CD7C03 CALL LWRD ?0092
174 SetPenColor(Color_WHITE_def);
\ 01BA CD4103 CALL LWRD ?0088
175 PutS(temp_record.longname,-1);
\ 01BD 0EFF LD C,255
\ 01BF 111900 LD DE,temp_record+25
\ 01C2 CD0000 CALL LWRD PutS
176
177 //重新显示旧的活动菜单
178 tmp = Old_active%row_count_def;
\ 01C5 0606 LD B,6
\ 01C7 DD7E06 LD A,(IX+6)
\ 01CA CD4A03 CALL LWRD ?0089
179 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
180 if(temp_record.filetype==TYPE_FILE)
\ 01CD 2014 JR NZ,?0013
\ 01CF ?0012:
181 ResShowPic(MFILE,13,file_pos[tmp]-1);
\ 01CF DD4EF2 LD C,(IX-14)
\ 01D2 47 LD B,A
\ 01D3 210000 LD HL,file_pos
\ 01D6 09 ADD HL,BC
\ 01D7 7E LD A,(HL)
\ 01D8 C6FF ADD A,255
\ 01DA 4F LD C,A
\ 01DB C5 PUSH BC
\ 01DC 0E0D LD C,13
\ 01DE 117900 LD DE,121
\ 01E1 1818 JR ?0076
\ 01E3 ?0013:
182 else if(temp_record.filetype==TYPE_DIR)
\ 01E3 3A0000 LD A,(temp_record)
\ 01E6 B7 OR A
\ 01E7 2016 JR NZ,?0016
\ 01E9 ?0015:
183 {
184 {
185 ResShowPic(MDIR,10,file_pos[tmp]-4);
\ 01E9 DD4EF2 LD C,(IX-14)
\ 01EC 47 LD B,A
\ 01ED 210000 LD HL,file_pos
\ 01F0 09 ADD HL,BC
\ 01F1 7E LD A,(HL)
\ 01F2 C6FC ADD A,252
\ 01F4 4F LD C,A
\ 01F5 C5 PUSH BC
\ 01F6 0E0A LD C,10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -