📄 ui_directory2_scroll.lst
字号:
107 {
\ 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
108 byte status;
109 status = input8(0x05);
\ 0098 DB05 IN A,(5)
\ 009A 210000 LD HL,0
\ 009D 39 ADD HL,SP
\ 009E 77 LD (HL),A
110 output8(0x05, 0xf6);
\ 009F 3EF6 LD A,246
\ 00A1 D305 OUT (5),A
111
112 target->filetype=source_record->filetype; //文件类型 0-- 目录 1 文件
\ 00A3 0A LD A,(BC)
\ 00A4 EB EX DE,HL
\ 00A5 77 LD (HL),A
113 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
114 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
115 target->fselExtNo=source_record->fselExtNo; //当前后缀名
\ 00BF DD460C LD B,(IX+12)
\ 00C2 FD700C LD (IY+12),B
116 target->dirlayer=source_record->dirlayer; //目录层次 0--根目录
\ 00C5 DD460B LD B,(IX+11)
\ 00C8 FD700B LD (IY+11),B
117 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
118 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
119
120 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
121 }
\ 00F9 C36100 JP LWRD ?0105
\ 00FC ShowDirectory:
122
123
124 /********************************************************************************
125 * Description : show the directory.
126 *
127 * Arguments :
128 * location: get thedisk type
129 * Invpath: the "\" or name
130 * Namebuf:the string you will display
131 * type : show file kind
132 * string_id: language type
133 * Returns :
134 * other: Successful
135 * 0: Fail, detail information in fselError
136 * Notes : only display the valid directory or file
137 *
138 ********************************************************************************/
139
140 void ShowDirectory(WORD top,WORD bottom,WORD Old_active,WORD active,BYTE string_id,BYTE Disk)
141 {
\ 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 F5 PUSH AF
\ 0109 F5 PUSH AF
142 WORD i,tmp;
143 BYTE DisplayBytes;
144 region_scroll.x=explorer_str_x_def;
\ 010A 3E20 LD A,32
\ 010C 320000 LD (region_scroll),A
145 region_scroll.width=160;
\ 010F 3EA0 LD A,160
\ 0111 320200 LD (region_scroll+2),A
146 region_scroll.height=16;
\ 0114 3E10 LD A,16
\ 0116 320300 LD (region_scroll+3),A
147 if(ScrollFlag)
\ 0119 3A0000 LD A,(ScrollFlag)
\ 011C B7 OR A
\ 011D 2825 JR Z,?0006
\ 011F ?0005:
148 {
149 SetTextOutMode(0);
\ 011F 1E00 LD E,0
\ 0121 CD0000 CALL LWRD SetTextOutMode
150 SetBackgdColor(Color_BULE_Scroll_def);
\ 0124 010000 LD BC,0
\ 0127 111F00 LD DE,31
\ 012A CD0000 CALL LWRD SetBackgdColor
151 ScrollString(scroll_buf, FALSE,string_id,®ion_scroll);
\ 012D 210000 LD HL,region_scroll
\ 0130 E5 PUSH HL
\ 0131 DD6E0C LD L,(IX+12)
\ 0134 E5 PUSH HL
\ 0135 0E00 LD C,0
\ 0137 CD4E04 CALL LWRD ?0106
\ 013A E1 POP HL
\ 013B E1 POP HL
152 SetTextOutMode(1);
\ 013C 1E01 LD E,1
\ 013E CD0000 CALL LWRD SetTextOutMode
153 }
154 else
\ 0141 C34304 JP LWRD ?0045
\ 0144 ?0006:
155 {
156 SetTextOutMode(1);
\ 0144 1E01 LD E,1
\ 0146 CD0000 CALL LWRD SetTextOutMode
157 SetPenColor(Color_WHITE_def);
\ 0149 010000 LD BC,0
\ 014C 11FFFF LD DE,65535
\ 014F CD0000 CALL LWRD SetPenColor
158 if(Old_active!=active)
\ 0152 DD6E0A LD L,(IX+10)
\ 0155 DD660B LD H,(IX+11)
\ 0158 DD4E08 LD C,(IX+8)
\ 015B DD4609 LD B,(IX+9)
\ 015E A7 AND A
\ 015F ED42 SBC HL,BC
\ 0161 CAA602 JP Z,?0009
\ 0164 ?0008:
159 {
160
161 //清除旧的活动菜单项
162 tmp = Old_active%row_count_def;
\ 0164 010600 LD BC,6
\ 0167 DD5E08 LD E,(IX+8)
\ 016A DD5609 LD D,(IX+9)
\ 016D CD0000 CALL LWRD ?US_MOD_L02
\ 0170 DD73F8 LD (IX-8),E
\ 0173 DD72F9 LD (IX-7),D
163 ResShowPic(menulist_bck_pic[tmp], menu_bck_x_def, menu_pos_list[tmp]-4);
\ 0176 210000 LD HL,menu_pos_list
\ 0179 19 ADD HL,DE
\ 017A 7E LD A,(HL)
\ 017B C6FC ADD A,252
\ 017D 4F LD C,A
\ 017E C5 PUSH BC
\ 017F 0E09 LD C,9
\ 0181 EB EX DE,HL
\ 0182 29 ADD HL,HL
\ 0183 110000 LD DE,menulist_bck_pic
\ 0186 19 ADD HL,DE
\ 0187 5E LD E,(HL)
\ 0188 23 INC HL
\ 0189 56 LD D,(HL)
\ 018A CD5E04 CALL LWRD ?0108
\ 018D F1 POP AF
164 ResShowPic(DHT,194,8);
\ 018E 0E08 LD C,8
\ 0190 C5 PUSH BC
\ 0191 CD5904 CALL LWRD ?0109
\ 0194 F1 POP AF
165 //重新显示旧的活动菜单
166 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
\ 0195 014B00 LD BC,75
\ 0198 DD5EF8 LD E,(IX-8)
\ 019B DD56F9 LD D,(IX-7)
\ 019E CD6604 CALL LWRD ?0110
167 if(temp_record.filetype==TYPE_FILE)
\ 01A1 3A0000 LD A,(temp_record)
\ 01A4 3D DEC A
\ 01A5 2016 JR NZ,?0011
\ 01A7 ?0010:
168 ResShowPic(MFILE,13,menu_pos_list[tmp]-1);
\ 01A7 210000 LD HL,menu_pos_list
\ 01AA DD4EF8 LD C,(IX-8)
\ 01AD DD46F9 LD B,(IX-7)
\ 01B0 09 ADD HL,BC
\ 01B1 7E LD A,(HL)
\ 01B2 C6FF ADD A,255
\ 01B4 4F LD C,A
\ 01B5 C5 PUSH BC
\ 01B6 0E0D LD C,13
\ 01B8 11C600 LD DE,198
\ 01BB 181A JR ?0088
\ 01BD ?0011:
169 else if(temp_record.filetype==TYPE_DIR)
\ 01BD 3A0000 LD A,(temp_record)
\ 01C0 B7 OR A
\ 01C1 2018 JR NZ,?0014
\ 01C3 ?0013:
170 {
171 ResShowPic(MDIR,10,menu_pos_list[tmp]-4);
\ 01C3 210000 LD HL,menu_pos_list
\ 01C6 DD4EF8 LD C,(IX-8)
\ 01C9 DD46F9 LD B,(IX-7)
\ 01CC 09 ADD HL,BC
\ 01CD 7E LD A,(HL)
\ 01CE C6FC ADD A,252
\ 01D0 4F LD C,A
\ 01D1 C5 PUSH BC
\ 01D2 0E0A LD C,10
\ 01D4 11AF00 LD DE,175
\ 01D7 ?0088:
\ 01D7 CD5E04 CALL LWRD ?0108
\ 01DA F1 POP AF
\ 01DB ?0014:
\ 01DB ?0012:
172 }
173 //SetPenColor(Color_WHITE_def);
174 SetTextPos(explorer_str_x_def, menu_pos_list[tmp]-2);
\ 01DB 210000 LD HL,menu_pos_list
\ 01DE DD4EF8 LD C,(IX-8)
\ 01E1 DD46F9 LD B,(IX-7)
\ 01E4 CD7B04 CALL LWRD ?0111
175 DisplayBytes =Count_Byte(temp_record.longname,string_id);
176 PutS(temp_record.longname,DisplayBytes);
177
178 //显示新的活动菜单
179 tmp = active%row_count_def;
\ 01E7 010600 LD BC,6
\ 01EA DD5E0A LD E,(IX+10)
\ 01ED DD560B LD D,(IX+11)
\ 01F0 CD0000 CALL LWRD ?US_MOD_L02
\ 01F3 DD73F8 LD (IX-8),E
\ 01F6 DD72F9 LD (IX-7),D
180 TransOneRecord(&temp_record,&OnePageRecord[tmp]); //将idm中记录数据读取到temp_record中
\ 01F9 0E4B LD C,75
\ 01FB CD6604 CALL LWRD ?0110
181 ResShowPic(FILEBCK, explorer_str_x_def-1, menu_pos_list[tmp]-4);
\ 01FE 210000 LD HL,menu_pos_list
\ 0201 DD4EF8 LD C,(IX-8)
\ 0204 DD46F9 LD B,(IX-7)
\ 0207 09 ADD HL,BC
\ 0208 7E LD A,(HL)
\ 0209 C6FC ADD A,252
\ 020B 4F LD C,A
\ 020C C5 PUSH BC
\ 020D 0E1F LD C,31
\ 020F 112C00 LD DE,44
\ 0212 CD5E04 CALL LWRD ?0108
\ 0215 F1 POP AF
182 if(temp_record.filetype==TYPE_FILE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -