ui_director2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,325 行 · 第 1/5 页
LST
1,325 行
\ 008D FDE5 PUSH IY
\ 008F DDE5 PUSH IX
\ 0091 F5 PUSH AF
\ 0092 C5 PUSH BC
\ 0093 DDE1 POP IX
\ 0095 D5 PUSH DE
\ 0096 FDE1 POP IY
103 byte status;
104 status = input8(0x05);
\ 0098 DB05 IN A,(5)
\ 009A 210000 LD HL,0
\ 009D 39 ADD HL,SP
\ 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 ?0088
\ 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 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 00FF F6FF DEFW -10
\ 0101 FDE5 PUSH IY
137 WORD i,tmp;
138 // region_t region;
139 DC oldDC_sav;
140 GetDCStatus(&oldDC_sav);
\ 0103 210400 LD HL,4
\ 0106 39 ADD HL,SP
\ 0107 EB EX DE,HL
\ 0108 CD0000 CALL LWRD GetDCStatus
141
142 ///-SetTextOutMode(1);
143 ///-SetPenColor(Color_BLACK_def);
144 if(Old_active!=active)
\ 010B DD6E0C LD L,(IX+12)
\ 010E DD660D LD H,(IX+13)
\ 0111 DD5E0A LD E,(IX+10)
\ 0114 DD560B LD D,(IX+11)
\ 0117 A7 AND A
\ 0118 ED52 SBC HL,DE
\ 011A CAED01 JP Z,?0006
\ 011D ?0005:
145 {
146 //清除旧的活动菜单项
147 tmp = Old_active%row_count_def;
\ 011D 010600 LD BC,6
\ 0120 CD0000 CALL LWRD ?US_MOD_L02
148 ResShowPic(FILEBCK1, 12, menu_pos_list[tmp]-1);
\ 0123 210000 LD HL,menu_pos_list
\ 0126 19 ADD HL,DE
\ 0127 7E LD A,(HL)
\ 0128 C6FF ADD A,255
\ 012A 4F LD C,A
\ 012B C5 PUSH BC
\ 012C 0E0C LD C,12
\ 012E 112D00 LD DE,45
\ 0131 CD6003 CALL LWRD ?0090
\ 0134 F1 POP AF
149
150 //显示新的活动菜单
151 tmp = active%row_count_def;
\ 0135 010600 LD BC,6
\ 0138 DD5E0C LD E,(IX+12)
\ 013B DD560D LD D,(IX+13)
\ 013E CD3A03 CALL LWRD ?0089
152 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
153 if(temp_record.filetype==TYPE_FILE)
\ 0141 2013 JR NZ,?0008
\ 0143 ?0007:
154 ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
\ 0143 210000 LD HL,menu_pos_list
\ 0146 FDE5 PUSH IY
\ 0148 C1 POP BC
\ 0149 09 ADD HL,BC
\ 014A 7E LD A,(HL)
\ 014B C602 ADD A,2
\ 014D 4F LD C,A
\ 014E C5 PUSH BC
\ 014F 0E00 LD C,0
\ 0151 11C600 LD DE,198
\ 0154 1813 JR ?0076
\ 0156 ?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)
\ 0156 3A0000 LD A,(temp_record)
\ 0159 B7 OR A
\ 015A 2011 JR NZ,?0011
\ 015C ?0010:
158 {
159 ResShowPic(MDIR,0,menu_pos_list[tmp]);
\ 015C 210000 LD HL,menu_pos_list
\ 015F FDE5 PUSH IY
\ 0161 C1 POP BC
\ 0162 09 ADD HL,BC
\ 0163 4E LD C,(HL)
\ 0164 C5 PUSH BC
\ 0165 4F LD C,A
\ 0166 11AF00 LD DE,175
\ 0169 ?0076:
\ 0169 CD6003 CALL LWRD ?0090
\ 016C F1 POP AF
\ 016D ?0011:
\ 016D ?0009:
160 }
161
162 ResShowPic(FILEBCK, 12, menu_pos_list[tmp]-1);
\ 016D 210000 LD HL,menu_pos_list
\ 0170 FDE5 PUSH IY
\ 0172 C1 POP BC
\ 0173 09 ADD HL,BC
\ 0174 7E LD A,(HL)
\ 0175 C6FF ADD A,255
\ 0177 5F LD E,A
\ 0178 D5 PUSH DE
\ 0179 CD5B03 CALL LWRD ?0091
\ 017C F1 POP AF
163
164 SetTextPos(12, menu_pos_list[tmp]);
\ 017D 210000 LD HL,menu_pos_list
\ 0180 FDE5 PUSH IY
\ 0182 C1 POP BC
\ 0183 09 ADD HL,BC
\ 0184 4E LD C,(HL)
\ 0185 1E0C LD E,12
\ 0187 CD0000 CALL LWRD SetTextPos
165 SetPenColor(Color_WHITE_def);
\ 018A CD7803 CALL LWRD ?0093
166 SetBackgdColor(0x00003358);
\ 018D CD0000 CALL LWRD SetBackgdColor
167 PutS(temp_record.longname,-1);
\ 0190 0EFF LD C,255
\ 0192 111900 LD DE,temp_record+25
\ 0195 CD0000 CALL LWRD PutS
168
169 //重新显示旧的活动菜单
170 tmp = Old_active%row_count_def;
\ 0198 010600 LD BC,6
\ 019B DD5E0A LD E,(IX+10)
\ 019E DD560B LD D,(IX+11)
\ 01A1 CD3A03 CALL LWRD ?0089
171 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
172 if(temp_record.filetype==TYPE_FILE)
\ 01A4 2013 JR NZ,?0013
\ 01A6 ?0012:
173 ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
\ 01A6 210000 LD HL,menu_pos_list
\ 01A9 FDE5 PUSH IY
\ 01AB C1 POP BC
\ 01AC 09 ADD HL,BC
\ 01AD 7E LD A,(HL)
\ 01AE C602 ADD A,2
\ 01B0 4F LD C,A
\ 01B1 C5 PUSH BC
\ 01B2 0E00 LD C,0
\ 01B4 11C600 LD DE,198
\ 01B7 1813 JR ?0077
\ 01B9 ?0013:
174 else if(temp_record.filetype==TYPE_DIR)
\ 01B9 3A0000 LD A,(temp_record)
\ 01BC B7 OR A
\ 01BD 2011 JR NZ,?0016
\ 01BF ?0015:
175 {
176 ResShowPic(MDIR,0,menu_pos_list[tmp]);
\ 01BF 210000 LD HL,menu_pos_list
\ 01C2 FDE5 PUSH IY
\ 01C4 C1 POP BC
\ 01C5 09 ADD HL,BC
\ 01C6 4E LD C,(HL)
\ 01C7 C5 PUSH BC
\ 01C8 4F LD C,A
\ 01C9 11AF00 LD DE,175
\ 01CC ?0077:
\ 01CC CD6003 CALL LWRD ?0090
\ 01CF F1 POP AF
\ 01D0 ?0016:
\ 01D0 ?0014:
177 }
178 SetPenColor(Color_BLACK_def);
\ 01D0 010000 LD BC,0
\ 01D3 59 LD E,C
\ 01D4 50 LD D,B
\ 01D5 CD0000 CALL LWRD SetPenColor
179 SetBackgdColor(Color_MENU_def);
\ 01D8 010000 LD BC,0
\ 01DB 11FFFF LD DE,65535
\ 01DE CD0000 CALL LWRD SetBackgdColor
180 SetTextPos(12, menu_pos_list[tmp]);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?