📄 ui_directory_rec.lst
字号:
\ 00EF CD0000 CALL LWRD ap_get_message
\ 00F2 B7 OR A
\ 00F3 20FA JR NZ,?0020
\ 00F5 ?0021:
\ 00F5 ?0019:
94
95 ap_message_init(NULL);
\ 00F5 5F LD E,A
\ 00F6 57 LD D,A
\ 00F7 3E00 LD A,BYTE3 ap_message_init
\ 00F9 210000 LD HL,LWRD ap_message_init
\ 00FC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00FF ?0023:
96
97 while(1)
98 {
99 //handle msg
100 key = ap_get_message();
\ 00FF CD0000 CALL LWRD ap_get_message
101 switch(key)
\ 0102 5F LD E,A
\ 0103 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 0106 0C00 DEFW 12
\ 0108 05 DEFB 5
\ 0109 06 DEFB 6
\ 010A 1E DEFB 30
\ 010B 21 DEFB 33
\ 010C 25 DEFB 37
\ 010D 26 DEFB 38
\ 010E 30 DEFB 48
\ 010F 37 DEFB 55
\ 0110 38 DEFB 56
\ 0111 45 DEFB 69
\ 0112 46 DEFB 70
\ 0113 90 DEFB 144
\ 0114 0204 DEFW ?0107
\ 0116 5F02 DEFW ?0063
\ 0118 2E01 DEFW ?0026
\ 011A D001 DEFW ?0044
\ 011C FF00 DEFW ?0023
\ 011E F103 DEFW ?0103
\ 0120 C602 DEFW ?0078
\ 0122 C701 DEFW ?0040
\ 0124 5602 DEFW ?0058
\ 0126 DE03 DEFW ?0102
\ 0128 DE03 DEFW ?0102
\ 012A 2E01 DEFW ?0026
\ 012C D001 DEFW ?0044
\ 012E ?0026:
102 {
103
104 case AP_KEY_NEXT:
105 case AP_KEY_NEXT | AP_KEY_HOLD:
106 if(list_active < list_total_num - 1)
\ 012E 21FFFF LD HL,65535
\ 0131 ED4B0000 LD BC,(list_total_num)
\ 0135 09 ADD HL,BC
\ 0136 4D LD C,L
\ 0137 44 LD B,H
\ 0138 2A0000 LD HL,(list_active)
\ 013B A7 AND A
\ 013C ED42 SBC HL,BC
\ 013E 3031 JR NC,?0028
\ 0140 ?0027:
107 {
108 list_active++;
\ 0140 2A0000 LD HL,(list_active)
\ 0143 23 INC HL
\ 0144 220000 LD (list_active),HL
109 if(list_active/GroupDefine==cur_group)
\ 0147 010600 LD BC,6
\ 014A EB EX DE,HL
\ 014B CD0000 CALL LWRD ?US_DIV_L02
\ 014E 2A0000 LD HL,(cur_group)
\ 0151 A7 AND A
\ 0152 ED52 SBC HL,DE
\ 0154 2011 JR NZ,?0030
\ 0156 ?0029:
110 {
111 ShowDirectory(top,bottom,list_active-1,list_active,string_id,DiskFlag);
\ 0156 DD6EF8 LD L,(IX-8)
\ 0159 E5 PUSH HL
\ 015A DD6E08 LD L,(IX+8)
\ 015D E5 PUSH HL
\ 015E 3A0000 LD A,(list_active)
\ 0161 4F LD C,A
\ 0162 C5 PUSH BC
\ 0163 C6FF ADD A,255
\ 0165 184E JR ?0117
112 }
113 else
\ 0167 ?0030:
114 {
115 cur_group=cur_group+1;
\ 0167 210100 LD HL,1
116
117 top=(list_active/GroupDefine)*GroupDefine; //顶的序号
\ 016A CD4204 CALL LWRD ?0126
118 bottom=top+GroupDefine-1; //底的序号
119 if(bottom>(list_total_num-1))
\ 016D 302C JR NC,?0036
\ 016F ?0032:
120 bottom=list_total_num-1;
\ 016F 181F JR ?0122
\ 0171 ?0033:
121
122 DecodeOnePage(top,bottom,type,string_id);
123 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 0171 ?0031:
124 }
125 }
126 else
\ 0171 ?0028:
127 {
128 list_active = 0;
\ 0171 210000 LD HL,0
\ 0174 220000 LD (list_active),HL
129 cur_group=0;
\ 0177 220000 LD (cur_group),HL
130 top=0; //顶的序号
131 bottom=top+GroupDefine-1; //底的序号
\ 017A FD210500 LD IY,5
132 if(bottom>(list_total_num-1))
\ 017E AF XOR A
\ 017F DD77F6 LD (IX-10),A
\ 0182 DD77F7 LD (IX-9),A
\ 0185 2B DEC HL
\ 0186 03 INC BC
\ 0187 09 ADD HL,BC
\ 0188 FDE5 PUSH IY
\ 018A C1 POP BC
\ 018B A7 AND A
\ 018C ED42 SBC HL,BC
\ 018E 300B JR NC,?0036
\ 0190 ?0035:
133 bottom=list_total_num-1;
\ 0190 ?0122:
\ 0190 21FFFF LD HL,65535
\ 0193 ED4B0000 LD BC,(list_total_num)
\ 0197 09 ADD HL,BC
\ 0198 E5 PUSH HL
\ 0199 FDE1 POP IY
\ 019B ?0036:
134 DecodeOnePage(top,bottom,type,string_id);
\ 019B DD6E08 LD L,(IX+8)
\ 019E E5 PUSH HL
\ 019F DD6EFE LD L,(IX-2)
\ 01A2 E5 PUSH HL
\ 01A3 CD2204 CALL LWRD ?0124
\ 01A6 E1 POP HL
\ 01A7 E1 POP HL
135 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 01A8 DD6EF8 LD L,(IX-8)
\ 01AB E5 PUSH HL
\ 01AC DD6E08 LD L,(IX+8)
\ 01AF E5 PUSH HL
\ 01B0 3A0000 LD A,(list_active)
\ 01B3 4F LD C,A
\ 01B4 C5 PUSH BC
\ 01B5 ?0117:
\ 01B5 4F LD C,A
\ 01B6 C5 PUSH BC
\ 01B7 CD3304 CALL LWRD ?0125
\ 01BA E1 POP HL
\ 01BB E1 POP HL
\ 01BC E1 POP HL
\ 01BD E1 POP HL
\ 01BE ?0034:
\ 01BE ?0038:
136 }
137
138 while(ap_get_message() != 0);
\ 01BE CD0000 CALL LWRD ap_get_message
\ 01C1 B7 OR A
\ 01C2 CAFF00 JP Z,?0023
\ 01C5 ?0039:
139 break;
\ 01C5 18F7 JR ?0034
\ 01C7 ?0037:
\ 01C7 ?0040:
\ 01C7 ?0042:
140
141
142 case AP_KEY_NEXT | AP_KEY_UP:
143 while(ap_get_message() != 0);
\ 01C7 CD0000 CALL LWRD ap_get_message
\ 01CA B7 OR A
\ 01CB CAFF00 JP Z,?0023
\ 01CE ?0043:
144 break;
\ 01CE 18F7 JR ?0040
\ 01D0 ?0041:
\ 01D0 ?0044:
145
146 case AP_KEY_PREV:
147 case AP_KEY_PREV | AP_KEY_HOLD :
148 if(list_active >0)
\ 01D0 2A0000 LD HL,(list_active)
\ 01D3 7D LD A,L
\ 01D4 B4 OR H
\ 01D5 282C JR Z,?0046
\ 01D7 ?0045:
149 {
150 list_active--;
\ 01D7 2B DEC HL
\ 01D8 220000 LD (list_active),HL
151 if(list_active/GroupDefine==cur_group)
\ 01DB 010600 LD BC,6
\ 01DE EB EX DE,HL
\ 01DF CD0000 CALL LWRD ?US_DIV_L02
\ 01E2 2A0000 LD HL,(cur_group)
\ 01E5 ED52 SBC HL,DE
\ 01E7 2010 JR NZ,?0048
\ 01E9 ?0047:
152 {
153 ShowDirectory(top,bottom,list_active+1,list_active,string_id,DiskFlag);
\ 01E9 DD6EF8 LD L,(IX-8)
\ 01EC E5 PUSH HL
\ 01ED DD6E08 LD L,(IX+8)
\ 01F0 E5 PUSH HL
\ 01F1 3A0000 LD A,(list_active)
\ 01F4 4F LD C,A
\ 01F5 C5 PUSH BC
\ 01F6 3C INC A
\ 01F7 184B JR ?0118
154 }
155 else
\ 01F9 ?0048:
156 {
157 cur_group=cur_group-1;
\ 01F9 21FFFF LD HL,65535
158
159 top=(list_active/GroupDefine)*GroupDefine; //顶的序号
\ 01FC CD4204 CALL LWRD ?0126
160 bottom=top+GroupDefine-1; //底的序号
161 if(bottom>(list_total_num-1))
\ 01FF 3029 JR NC,?0054
\ 0201 ?0050:
162 bottom=list_total_num-1;
\ 0201 181C JR ?0123
\ 0203 ?0051:
163
164 DecodeOnePage(top,bottom,type,string_id);
165 ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
\ 0203 ?0049:
166 }
167 }
168 else
\ 0203 ?0046:
169 {
170 list_active= list_total_num - 1;
\ 0203 21FFFF LD HL,65535
\ 0206 ED4B0000 LD BC,(list_total_num)
\ 020A 09 ADD HL,BC
\ 020B 220000 LD (list_active),HL
171 cur_group=(list_total_num - 1)/GroupDefine;
\ 020E 010600 LD BC,6
\ 0211 EB EX DE,HL
\ 0212 CD7604 CALL LWRD ?0127
172 top=(list_active/GroupDefine)*GroupDefine; //顶的序号
173 bottom=top+GroupDefine-1; //底的序号
174 if(bottom>(list_total_num-1))
\ 0215 4D LD C,L
\ 0216 44 LD B,H
\ 0217 2A0000 LD HL,(list_active)
\ 021A A7 AND A
\ 021B ED42 SBC HL,BC
\ 021D 300B JR NC,?0054
\ 021F ?0053:
175 bottom=list_total_num-1;
\ 021F ?0123:
\ 021F 21FFFF LD HL,65535
\ 0222 ED4B0000 LD BC,(list_total_num)
\ 0226 09 ADD HL,BC
\ 0227 E5 PUSH HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -