📄 ui_slider.lst
字号:
\ 026C ?0028:
\ 026C ?0025:
\ 026C ?0022:
136 }
137 *p++ = '>';
\ 026C DD6EE2 LD L,(IX-30)
\ 026F DD66E3 LD H,(IX-29)
\ 0272 363E LD (HL),62
138 *p++ = '>';
\ 0274 23 INC HL
\ 0275 23 INC HL
\ 0276 DD75E2 LD (IX-30),L
\ 0279 DD74E3 LD (IX-29),H
\ 027C 2B DEC HL
\ 027D 363E LD (HL),62
139 *p = 0;
\ 027F DD6EE2 LD L,(IX-30)
\ 0282 DD66E3 LD H,(IX-29)
\ 0285 3600 LD (HL),0
140
141 //show text <-xxxx>
142 SetTextPos((SCR_WIDTH - (BYTE)get_text_width(buf)) / 2, 8);
\ 0287 0E08 LD C,8
\ 0289 C5 PUSH BC
\ 028A 211600 LD HL,22
\ 028D 39 ADD HL,SP
\ 028E EB EX DE,HL
\ 028F 3E00 LD A,BYTE3 get_text_width
\ 0291 210000 LD HL,LWRD get_text_width
\ 0294 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0297 5D LD E,L
\ 0298 1600 LD D,0
\ 029A 218000 LD HL,128
\ 029D A7 AND A
\ 029E ED52 SBC HL,DE
\ 02A0 EB EX DE,HL
\ 02A1 010200 LD BC,2
\ 02A4 CD0000 CALL LWRD ?SS_DIV_L02
\ 02A7 C1 POP BC
\ 02A8 CD0000 CALL LWRD SetTextPos
143 ClearScreen(&num_region);
\ 02AB 210600 LD HL,6
\ 02AE 39 ADD HL,SP
\ 02AF EB EX DE,HL
\ 02B0 CD0000 CALL LWRD ClearScreen
144 PutS(buf, -1);
\ 02B3 0EFF LD C,255
\ 02B5 211400 LD HL,20
\ 02B8 39 ADD HL,SP
\ 02B9 EB EX DE,HL
\ 02BA CD0000 CALL LWRD PutS
145 if(ui_auto_update) UpdateScreen(&num_region);
\ 02BD 3A0000 LD A,(ui_auto_update)
\ 02C0 B7 OR A
\ 02C1 2808 JR Z,?0030
\ 02C3 ?0029:
\ 02C3 210600 LD HL,6
\ 02C6 39 ADD HL,SP
\ 02C7 EB EX DE,HL
\ 02C8 CD0000 CALL LWRD UpdateScreen
\ 02CB ?0030:
146
147 //check if auto_update
148 if(!ui_auto_update) UpdateScreen(NULL);
\ 02CB 3A0000 LD A,(ui_auto_update)
\ 02CE B7 OR A
\ 02CF 2005 JR NZ,?0032
\ 02D1 ?0031:
\ 02D1 5F LD E,A
\ 02D2 57 LD D,A
\ 02D3 CD0000 CALL LWRD UpdateScreen
\ 02D6 ?0032:
149
150 need_draw = FALSE;
\ 02D6 DD36F500 LD (IX-11),0
\ 02DA ?0013:
151
152 }//need draw
153
154 //handle message
155 key = ap_get_message();
\ 02DA CD0000 CALL LWRD ap_get_message
\ 02DD DD77F2 LD (IX-14),A
156 switch( key)
\ 02E0 5F LD E,A
\ 02E1 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 02E4 0F00 DEFW 15
\ 02E6 03 DEFB 3
\ 02E7 04 DEFB 4
\ 02E8 05 DEFB 5
\ 02E9 06 DEFB 6
\ 02EA 1E DEFB 30
\ 02EB 21 DEFB 33
\ 02EC 23 DEFB 35
\ 02ED 24 DEFB 36
\ 02EE 25 DEFB 37
\ 02EF 26 DEFB 38
\ 02F0 30 DEFB 48
\ 02F1 43 DEFB 67
\ 02F2 44 DEFB 68
\ 02F3 45 DEFB 69
\ 02F4 46 DEFB 70
\ 02F5 BB03 DEFW ?0051
\ 02F7 8D03 DEFW ?0040
\ 02F9 9903 DEFW ?0043
\ 02FB 8D03 DEFW ?0040
\ 02FD 9903 DEFW ?0043
\ 02FF C503 DEFW ?0093
\ 0301 A503 DEFW ?0046
\ 0303 A503 DEFW ?0046
\ 0305 A503 DEFW ?0046
\ 0307 A503 DEFW ?0046
\ 0309 C503 DEFW ?0093
\ 030B AF03 DEFW ?0048
\ 030D 1503 DEFW ?0034
\ 030F 5103 DEFW ?0037
\ 0311 1503 DEFW ?0034
\ 0313 5103 DEFW ?0037
\ 0315 ?0034:
157 {
158 case AP_KEY_NEXT:
159 case AP_KEY_VOLADD:
160 if((slider->value + slider->step) <= slider->max)
\ 0315 FD6E06 LD L,(IY+6)
\ 0318 FD6607 LD H,(IY+7)
\ 031B FD4E04 LD C,(IY+4)
\ 031E FD4605 LD B,(IY+5)
\ 0321 09 ADD HL,BC
\ 0322 4D LD C,L
\ 0323 44 LD B,H
\ 0324 FD6E02 LD L,(IY+2)
\ 0327 FD6603 LD H,(IY+3)
\ 032A F680 OR 128
\ 032C ED42 SBC HL,BC
\ 032E E23203 JP PO,?0085
\ 0331 AC XOR H
\ 0332 ?0085:
\ 0332 FADD03 JP M,?0055
\ 0335 ?0035:
161 {
162 slider->value += slider->step;
\ 0335 210400 LD HL,4
\ 0338 FDE5 PUSH IY
\ 033A C1 POP BC
\ 033B 09 ADD HL,BC
\ 033C 7E LD A,(HL)
\ 033D FD8606 ADD A,(IY+6)
\ 0340 77 LD (HL),A
\ 0341 23 INC HL
\ 0342 7E LD A,(HL)
\ 0343 FD8E07 ADC A,(IY+7)
\ 0346 183A JR ?0097
163 value_changed = TRUE;
164 need_draw = TRUE;
\ 0348 DD36F401 LD (IX-12),1
\ 034C 1839 JR ?0098
\ 034E ?0036:
165 }
166
167 break;
\ 034E C3DD03 JP LWRD ?0055
\ 0351 ?0037:
168
169
170 case AP_KEY_PREV:
171 case AP_KEY_VOLSUB:
172 if((slider->value - slider->step) >= slider->min)
\ 0351 FD4E00 LD C,(IY+0)
\ 0354 FD4601 LD B,(IY+1)
\ 0357 FD5E06 LD E,(IY+6)
\ 035A FD5607 LD D,(IY+7)
\ 035D FD6E04 LD L,(IY+4)
\ 0360 FD6605 LD H,(IY+5)
\ 0363 A7 AND A
\ 0364 ED52 SBC HL,DE
\ 0366 F680 OR 128
\ 0368 ED42 SBC HL,BC
\ 036A E26E03 JP PO,?0086
\ 036D AC XOR H
\ 036E ?0086:
\ 036E FADD03 JP M,?0055
\ 0371 ?0038:
173 {
174 slider->value -= slider->step;
\ 0371 210400 LD HL,4
\ 0374 FDE5 PUSH IY
\ 0376 C1 POP BC
\ 0377 09 ADD HL,BC
\ 0378 7E LD A,(HL)
\ 0379 FD9606 SUB (IY+6)
\ 037C 77 LD (HL),A
\ 037D 23 INC HL
\ 037E 7E LD A,(HL)
\ 037F FD9E07 SBC A,(IY+7)
\ 0382 ?0097:
\ 0382 77 LD (HL),A
175 value_changed = TRUE;
176 need_draw = TRUE;
\ 0383 DD36F401 LD (IX-12),1
\ 0387 ?0098:
\ 0387 DD36F501 LD (IX-11),1
\ 038B ?0039:
177 }
178
179 break;
\ 038B 1850 JR ?0055
\ 038D ?0040:
180
181 //hold 用来控制加速开关
182 case AP_KEY_NEXT | AP_KEY_HOLD:
183 case AP_KEY_VOLADD | AP_KEY_HOLD:
184 if(hold_state == 0) hold_state = 1;
\ 038D AF XOR A
\ 038E DDB6F3 OR (IX-13)
\ 0391 204A JR NZ,?0055
\ 0393 ?0041:
\ 0393 DD36F301 LD (IX-13),1
\ 0397 ?0042:
185
186 break;
\ 0397 1844 JR ?0055
\ 0399 ?0043:
187
188
189 case AP_KEY_PREV | AP_KEY_HOLD:
190 case AP_KEY_VOLSUB | AP_KEY_HOLD:
191 if(hold_state == 0) hold_state = 2;
\ 0399 AF XOR A
\ 039A DDB6F3 OR (IX-13)
\ 039D 203E JR NZ,?0055
\ 039F ?0044:
\ 039F DD36F302 LD (IX-13),2
\ 03A3 ?0045:
192
193 break;
\ 03A3 1838 JR ?0055
\ 03A5 ?0046:
194
195
196 case AP_KEY_NEXT | AP_KEY_UP:
197 case AP_KEY_VOLADD | AP_KEY_UP:
198 case AP_KEY_PREV | AP_KEY_UP:
199 case AP_KEY_VOLSUB | AP_KEY_UP:
200 hold_state = 0;
\ 03A5 DD36F300 LD (IX-13),0
201
202 break;
\ 03A9 1832 JR ?0055
\ 03AB ?0047:
203
204
205 case AP_KEY_MODE | AP_KEY_UP:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -