📄 ui_directory_scroll.lst
字号:
\ 00DE DD6EEA LD L,(IX-22)
\ 00E1 E5 PUSH HL
\ 00E2 DD6E08 LD L,(IX+8)
\ 00E5 E5 PUSH HL
\ 00E6 2A0000 LD HL,(list_active)
\ 00E9 E5 PUSH HL
\ 00EA E5 PUSH HL
\ 00EB CD3804 CALL LWRD ?0126
\ 00EE E1 POP HL
\ 00EF E1 POP HL
\ 00F0 E1 POP HL
\ 00F1 E1 POP HL
\ 00F2 ?0022:
101
102 while(ap_get_message()!=0) {;}
\ 00F2 CD0000 CALL LWRD ap_get_message
\ 00F5 B7 OR A
\ 00F6 20FA JR NZ,?0022
\ 00F8 ?0023:
\ 00F8 ?0021:
103
104 ap_message_init(NULL);
\ 00F8 5F LD E,A
\ 00F9 57 LD D,A
\ 00FA 3E00 LD A,BYTE3 ap_message_init
\ 00FC 210000 LD HL,LWRD ap_message_init
\ 00FF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
105 ScrollFlag = 0; //初始化为不滚屏
\ 0102 AF XOR A
\ 0103 320000 LD (ScrollFlag),A
\ 0106 ?0025:
106 while(1)
107 {
108 //handle msg
109 key = ap_get_message();
\ 0106 CD0000 CALL LWRD ap_get_message
110 switch(key)
\ 0109 5F LD E,A
\ 010A CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 010D 0A00 DEFW 10
\ 010F 05 DEFB 5
\ 0110 06 DEFB 6
\ 0111 1E DEFB 30
\ 0112 21 DEFB 33
\ 0113 30 DEFB 48
\ 0114 37 DEFB 55
\ 0115 38 DEFB 56
\ 0116 45 DEFB 69
\ 0117 46 DEFB 70
\ 0118 90 DEFB 144
\ 0119 FD03 DEFW ?0103
\ 011B 5D02 DEFW ?0057
\ 011D 2F01 DEFW ?0028
\ 011F D301 DEFW ?0042
\ 0121 0601 DEFW ?0025
\ 0123 EC03 DEFW ?0099
\ 0125 CE02 DEFW ?0075
\ 0127 D903 DEFW ?0114
\ 0129 CE03 DEFW ?0096
\ 012B 2F01 DEFW ?0028
\ 012D D301 DEFW ?0042
\ 012F ?0028:
111 {
112
113 case AP_KEY_NEXT:
114 case AP_KEY_NEXT | AP_KEY_HOLD:
115 if(list_active < list_total_num - 1)
\ 012F 21FFFF LD HL,65535
\ 0132 ED4B0000 LD BC,(list_total_num)
\ 0136 09 ADD HL,BC
\ 0137 4D LD C,L
\ 0138 44 LD B,H
\ 0139 2A0000 LD HL,(list_active)
\ 013C A7 AND A
\ 013D ED42 SBC HL,BC
\ 013F 303A JR NC,?0030
\ 0141 ?0029:
116 {
117 list_active++;
\ 0141 2A0000 LD HL,(list_active)
\ 0144 23 INC HL
\ 0145 220000 LD (list_active),HL
118 if(list_active/GroupDefine==cur_group)
\ 0148 010600 LD BC,6
\ 014B EB EX DE,HL
\ 014C CD0000 CALL LWRD ?US_DIV_L02
\ 014F 2A0000 LD HL,(cur_group)
\ 0152 A7 AND A
\ 0153 ED52 SBC HL,DE
\ 0155 201A JR NZ,?0032
\ 0157 ?0031:
119 {
120 ScrollFlag = 0; //初始化为不滚屏
\ 0157 AF XOR A
\ 0158 320000 LD (ScrollFlag),A
121 ShowDirectory(top,bottom,list_active-1,list_active,string_id,DiskFlag); //zxs change
\ 015B DD6EEA LD L,(IX-22)
\ 015E E5 PUSH HL
\ 015F DD6E08 LD L,(IX+8)
\ 0162 E5 PUSH HL
\ 0163 2A0000 LD HL,(list_active)
\ 0166 E5 PUSH HL
\ 0167 21FFFF LD HL,65535
\ 016A ED4B0000 LD BC,(list_active)
\ 016E 09 ADD HL,BC
\ 016F 1851 JR ?0115
122 }
123 else
\ 0171 ?0032:
124 {
125 cur_group=cur_group+1;
\ 0171 210100 LD HL,1
126
127 top=(list_active/GroupDefine)*GroupDefine; //顶的序号
\ 0174 CD5A04 CALL LWRD ?0129
128 bottom=top+GroupDefine-1; //底的序号
129 if(bottom>(list_total_num-1))
\ 0177 302C JR NC,?0038
\ 0179 ?0034:
130 bottom=list_total_num-1;
\ 0179 181F JR ?0124
\ 017B ?0035:
131
132 DecodeOnePage(top,bottom,type,string_id);
133 ScrollFlag = 0;
134 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 017B ?0033:
135 }
136 }
137 else
\ 017B ?0030:
138 {
139 list_active = 0;
\ 017B 210000 LD HL,0
\ 017E 220000 LD (list_active),HL
140 cur_group=0;
\ 0181 220000 LD (cur_group),HL
141 top=0; //顶的序号
142 bottom=top+GroupDefine-1; //底的序号
\ 0184 FD210500 LD IY,5
143 if(bottom>(list_total_num-1))
\ 0188 AF XOR A
\ 0189 DD77E8 LD (IX-24),A
\ 018C DD77E9 LD (IX-23),A
\ 018F 2B DEC HL
\ 0190 03 INC BC
\ 0191 09 ADD HL,BC
\ 0192 FDE5 PUSH IY
\ 0194 C1 POP BC
\ 0195 A7 AND A
\ 0196 ED42 SBC HL,BC
\ 0198 300B JR NC,?0038
\ 019A ?0037:
144 bottom=list_total_num-1;
\ 019A ?0124:
\ 019A 21FFFF LD HL,65535
\ 019D ED4B0000 LD BC,(list_total_num)
\ 01A1 09 ADD HL,BC
\ 01A2 E5 PUSH HL
\ 01A3 FDE1 POP IY
\ 01A5 ?0038:
145 DecodeOnePage(top,bottom,type,string_id);
\ 01A5 DD6E08 LD L,(IX+8)
\ 01A8 E5 PUSH HL
\ 01A9 DD6EFE LD L,(IX-2)
\ 01AC E5 PUSH HL
\ 01AD CD4904 CALL LWRD ?0128
\ 01B0 E1 POP HL
\ 01B1 E1 POP HL
146 ScrollFlag = 0;
\ 01B2 AF XOR A
\ 01B3 320000 LD (ScrollFlag),A
147 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 01B6 DD6EEA LD L,(IX-22)
\ 01B9 E5 PUSH HL
\ 01BA DD6E08 LD L,(IX+8)
\ 01BD E5 PUSH HL
\ 01BE 2A0000 LD HL,(list_active)
\ 01C1 E5 PUSH HL
\ 01C2 ?0115:
\ 01C2 E5 PUSH HL
\ 01C3 CD3804 CALL LWRD ?0126
\ 01C6 E1 POP HL
\ 01C7 E1 POP HL
\ 01C8 E1 POP HL
\ 01C9 E1 POP HL
\ 01CA ?0036:
\ 01CA ?0040:
148 }
149 while(ap_get_message() != 0);
\ 01CA CD0000 CALL LWRD ap_get_message
\ 01CD B7 OR A
\ 01CE CA0601 JP Z,?0025
\ 01D1 ?0041:
150 break;
\ 01D1 18F7 JR ?0036
\ 01D3 ?0039:
\ 01D3 ?0042:
151
152 case AP_KEY_PREV:
153 case AP_KEY_PREV | AP_KEY_HOLD :
154 if(list_active >0)
\ 01D3 2A0000 LD HL,(list_active)
\ 01D6 7D LD A,L
\ 01D7 B4 OR H
\ 01D8 282F JR Z,?0044
\ 01DA ?0043:
155 {
156 list_active--;
\ 01DA 2B DEC HL
\ 01DB 220000 LD (list_active),HL
157 if(list_active/GroupDefine==cur_group)
\ 01DE 010600 LD BC,6
\ 01E1 EB EX DE,HL
\ 01E2 CD0000 CALL LWRD ?US_DIV_L02
\ 01E5 2A0000 LD HL,(cur_group)
\ 01E8 ED52 SBC HL,DE
\ 01EA 2013 JR NZ,?0046
\ 01EC ?0045:
158 {
159 ScrollFlag = 0;
\ 01EC AF XOR A
\ 01ED 320000 LD (ScrollFlag),A
160 ShowDirectory(top,bottom,list_active+1,list_active,string_id,DiskFlag);
\ 01F0 DD6EEA LD L,(IX-22)
\ 01F3 E5 PUSH HL
\ 01F4 DD6E08 LD L,(IX+8)
\ 01F7 E5 PUSH HL
\ 01F8 2A0000 LD HL,(list_active)
\ 01FB E5 PUSH HL
\ 01FC 23 INC HL
\ 01FD 184D JR ?0116
161 }
162 else
\ 01FF ?0046:
163 {
164 cur_group=cur_group-1;
\ 01FF 21FFFF LD HL,65535
165
166 top=(list_active/GroupDefine)*GroupDefine; //顶的序号
\ 0202 CD5A04 CALL LWRD ?0129
167 bottom=top+GroupDefine-1; //底的序号
168 if(bottom>(list_total_num-1))
\ 0205 3028 JR NC,?0052
\ 0207 ?0048:
169 bottom=list_total_num-1;
\ 0207 181B JR ?0125
\ 0209 ?0049:
170
171 DecodeOnePage(top,bottom,type,string_id);
172 ScrollFlag = 0;
173 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 0209 ?0047:
174 }
175 }
176 else
\ 0209 ?0044:
177 {
178 list_active= list_total_num - 1;
\ 0209 21FFFF LD HL,65535
\ 020C ED4B0000 LD BC,(list_total_num)
\ 0210 09 ADD HL,BC
\ 0211 220000 LD (list_active),HL
179 cur_group=(list_total_num - 1)/GroupDefine;
\ 0214 010600 LD BC,6
\ 0217 CD8E04 CALL LWRD ?0130
180 top=(list_active/GroupDefine)*GroupDefine; //顶的序号
181 bottom=top+GroupDefine-1; //底的序号
182 if(bottom>(list_total_num-1))
\ 021A 4D LD C,L
\ 021B 44 LD B,H
\ 021C 2A0000 LD HL,(list_active)
\ 021F A7 AND A
\ 0220 ED42 SBC HL,BC
\ 0222 300B JR NC,?0052
\ 0224 ?0051:
183 bottom=list_total_num-1;
\ 0224 ?0125:
\ 0224 21FFFF LD HL,65535
\ 0227 ED4B0000 LD BC,(list_total_num)
\ 022B 09 ADD HL,BC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -