📄 ui_director2.lst
字号:
\ 008F DDE5 PUSH IX
\ 0091 F5 PUSH AF
\ 0092 C5 PUSH BC
\ 0093 DDE1 POP IX
\ 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 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 00FF F6FF DEFW 65526
141 BYTE i,tmp;
142 // region_t region;
143 DC oldDC_sav;
144 GetDCStatus(&oldDC_sav);
\ 0101 210200 LD HL,2
\ 0104 39 ADD HL,SP
\ 0105 EB EX DE,HL
\ 0106 CD0000 CALL LWRD GetDCStatus
145
146 SetTextOutMode(1);
\ 0109 1E01 LD E,1
\ 010B CD0000 CALL LWRD SetTextOutMode
147 SetPenColor(Color_WHITE_def);
\ 010E CD3403 CALL LWRD ?0088
148 if(Old_active!=active)
\ 0111 DD7E0A LD A,(IX+10)
\ 0114 DDBE0C CP (IX+12)
\ 0117 CA1702 JP Z,?0006
\ 011A ?0005:
149 {
150
151 //清除旧的活动菜单项
152 tmp = Old_active%row_count_def;
\ 011A 0606 LD B,6
\ 011C CD0000 CALL LWRD ?UC_MOD_L01
\ 011F DD77F6 LD (IX-10),A
153 ResShowPic(file_bck_pic[tmp], menu_bck_x_def, file_pos[tmp]-4);
\ 0122 4F LD C,A
\ 0123 0600 LD B,0
\ 0125 210000 LD HL,file_pos
\ 0128 09 ADD HL,BC
\ 0129 7E LD A,(HL)
\ 012A C6FC ADD A,252
\ 012C 4F LD C,A
\ 012D C5 PUSH BC
\ 012E 0E09 LD C,9
\ 0130 DD6EF6 LD L,(IX-10)
\ 0133 60 LD H,B
\ 0134 29 ADD HL,HL
\ 0135 110600 LD DE,file_bck_pic
\ 0138 19 ADD HL,DE
\ 0139 5E LD E,(HL)
\ 013A 23 INC HL
\ 013B 56 LD D,(HL)
\ 013C CD6703 CALL LWRD ?0090
\ 013F F1 POP AF
154 //ResShowPic(DHT,126,0);
155 ResShowPic(DHT,194,8);
\ 0140 0E08 LD C,8
\ 0142 C5 PUSH BC
\ 0143 0EC2 LD C,194
\ 0145 112D00 LD DE,45
\ 0148 CD6703 CALL LWRD ?0090
\ 014B F1 POP AF
156
157 //显示新的活动菜单
158 tmp = active%row_count_def;
\ 014C 0606 LD B,6
\ 014E DD7E0C LD A,(IX+12)
\ 0151 CD3D03 CALL LWRD ?0089
159 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
160 if(temp_record.filetype==TYPE_FILE)
\ 0154 2014 JR NZ,?0008
\ 0156 ?0007:
161 ResShowPic(MFILE,13,file_pos[tmp]-1);
\ 0156 DD4EF6 LD C,(IX-10)
\ 0159 47 LD B,A
\ 015A 210000 LD HL,file_pos
\ 015D 09 ADD HL,BC
\ 015E 7E LD A,(HL)
\ 015F C6FF ADD A,255
\ 0161 4F LD C,A
\ 0162 C5 PUSH BC
\ 0163 0E0D LD C,13
\ 0165 117900 LD DE,121
\ 0168 1818 JR ?0075
\ 016A ?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)
\ 016A 3A0000 LD A,(temp_record)
\ 016D B7 OR A
\ 016E 2016 JR NZ,?0011
\ 0170 ?0010:
165 {
166 ResShowPic(MDIR,10,file_pos[tmp]-4);
\ 0170 DD4EF6 LD C,(IX-10)
\ 0173 47 LD B,A
\ 0174 210000 LD HL,file_pos
\ 0177 09 ADD HL,BC
\ 0178 7E LD A,(HL)
\ 0179 C6FC ADD A,252
\ 017B 4F LD C,A
\ 017C C5 PUSH BC
\ 017D 0E0A LD C,10
\ 017F 115B00 LD DE,91
\ 0182 ?0075:
\ 0182 CD6703 CALL LWRD ?0090
\ 0185 F1 POP AF
\ 0186 ?0011:
\ 0186 ?0009:
167 }
168
169 ResShowPic(FILEBCK, explorer_str_x_def-1, file_pos[tmp]-4);
\ 0186 DD4EF6 LD C,(IX-10)
\ 0189 0600 LD B,0
\ 018B 210000 LD HL,file_pos
\ 018E 09 ADD HL,BC
\ 018F 7E LD A,(HL)
\ 0190 C6FC ADD A,252
\ 0192 4F LD C,A
\ 0193 C5 PUSH BC
\ 0194 CD6203 CALL LWRD ?0091
\ 0197 F1 POP AF
170 //ResShowPic(DHTHK,122, file_pos[tmp]-2);
171 ResShowPic(DHTHK,194, file_pos[tmp]+5);
\ 0198 DD4EF6 LD C,(IX-10)
\ 019B 0600 LD B,0
\ 019D 210000 LD HL,file_pos
\ 01A0 09 ADD HL,BC
\ 01A1 7E LD A,(HL)
\ 01A2 C605 ADD A,5
\ 01A4 4F LD C,A
\ 01A5 C5 PUSH BC
\ 01A6 0EC2 LD C,194
\ 01A8 112E00 LD DE,46
\ 01AB CD6703 CALL LWRD ?0090
\ 01AE F1 POP AF
172
173 SetTextPos(explorer_str_x_def, file_pos[tmp]-2);
\ 01AF DD4EF6 LD C,(IX-10)
\ 01B2 0600 LD B,0
\ 01B4 210000 LD HL,file_pos
\ 01B7 09 ADD HL,BC
\ 01B8 7E LD A,(HL)
\ 01B9 C6FE ADD A,254
\ 01BB 4F LD C,A
\ 01BC 1E20 LD E,32
\ 01BE CD0000 CALL LWRD SetTextPos
174 SetPenColor(Color_WHITE_def);
\ 01C1 CD3403 CALL LWRD ?0088
175 PutS(temp_record.longname,-1);
\ 01C4 0EFF LD C,255
\ 01C6 111900 LD DE,temp_record+25
\ 01C9 CD0000 CALL LWRD PutS
176
177 //重新显示旧的活动菜单
178 tmp = Old_active%row_count_def;
\ 01CC 0606 LD B,6
\ 01CE DD7E0A LD A,(IX+10)
\ 01D1 CD3D03 CALL LWRD ?0089
179 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
180 if(temp_record.filetype==TYPE_FILE)
\ 01D4 2014 JR NZ,?0013
\ 01D6 ?0012:
181 ResShowPic(MFILE,13,file_pos[tmp]-1);
\ 01D6 DD4EF6 LD C,(IX-10)
\ 01D9 47 LD B,A
\ 01DA 210000 LD HL,file_pos
\ 01DD 09 ADD HL,BC
\ 01DE 7E LD A,(HL)
\ 01DF C6FF ADD A,255
\ 01E1 4F LD C,A
\ 01E2 C5 PUSH BC
\ 01E3 0E0D LD C,13
\ 01E5 117900 LD DE,121
\ 01E8 1818 JR ?0076
\ 01EA ?0013:
182 else if(temp_record.filetype==TYPE_DIR)
\ 01EA 3A0000 LD A,(temp_record)
\ 01ED B7 OR A
\ 01EE 2016 JR NZ,?0016
\ 01F0 ?0015:
183 {
184 {
185 ResShowPic(MDIR,10,file_pos[tmp]-4);
\ 01F0 DD4EF6 LD C,(IX-10)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -