📄 ui_stop.s01
字号:
LD E,C
LD D,B
CALL LWRD SetPenColor
; 173. ResShowMultiString(TEXT, g_comval.langid, 255, 1);
LD C,1
PUSH BC
LD C,255
PUSH BC
LD BC,(g_comval+12)
LD DE,441
LD A,BYTE3 ResShowMultiString
LD HL,LWRD ResShowMultiString
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
; 174. SetBackgdColor(Color_MENU_def);
LD BC,0
LD DE,65535
CALL LWRD SetBackgdColor
; 175. ///-SetTextOutMode(0);
; 176. /*
; 177. ResShowPic(DHT,194,8);
; 178. ResShowPic(MDIR, explorer_pic_x_def-2, POSITION_MENU6-4);
; 179. SetTextPos(menu_str_x_def, POSITION_MENU6-2);
; 180. SetPenColor(Color_WHITE_def);
; 181. PutS(dir_name, -1);
; 182. if(g_reader_vars.location.disk=='H')
; 183. ResShowPic(CARDDISK,180,150);
; 184. */
; 185.
; 186. //show icons & text
; 187. for(i=0; i<6; i++)
LD IY,0
?0041:
LD BC,32774
PUSH IY
POP HL
LD A,B
XOR H
LD H,A
SBC HL,BC
JP NC,?0040
?0042:
; 188. {
; 189. if(top+i >= g_file_total) break; //处理不足5个的情况
PUSH IY
POP HL
LD C,(IX-10)
LD B,(IX-9)
ADD HL,BC
LD BC,(g_file_total)
OR 128
SBC HL,BC
JP PO,?0106
XOR H
?0106:
JP P,?0040
?0044:
?0045:
; 190. ///-ResShowPic(MFILE, explorer_pic_x_def, menu_pos[i]);
; 191. if(top+i==active)
PUSH IY
POP HL
LD C,(IX-10)
LD B,(IX-9)
ADD HL,BC
LD BC,(active)
AND A
SBC HL,BC
LD HL,menu_pos
PUSH IY
POP BC
ADD HL,BC
JR NZ,?0047
?0046:
; 192. {
; 193. ResShowPic(MENUBCK, 0, menu_pos[i]-1);
LD A,(HL)
ADD A,255
LD E,A
PUSH DE
LD C,0
LD DE,180
LD A,BYTE3 ResShowPic
LD HL,LWRD ResShowPic
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 194. SetPenColor(Color_WHITE_def);
LD BC,0
LD DE,65535
CALL LWRD SetPenColor
; 195. SetBackgdColor(0x00003358);
LD BC,0
LD DE,13144
CALL LWRD SetBackgdColor
; 196. reset_cur_list_bg_color_reader(i, menu_pos[i]);
LD HL,menu_pos
PUSH IY
POP BC
ADD HL,BC
LD C,(HL)
LD B,0
PUSH IY
POP DE
LD A,BYTE3 reset_cur_list_bg_color_reader
LD HL,LWRD reset_cur_list_bg_color_reader
CALL LWRD ?BANK_CALL_DIRECT_L08
; 197. }
; 198. else
JR ?0048
?0047:
; 199. {
; 200. SetTextPos(0, menu_pos[i]);
LD C,(HL)
LD E,0
CALL LWRD SetTextPos
; 201. read_idm_data_reader(fileName, i );
PUSH IY
POP BC
LD DE,fileName
LD A,BYTE3 read_idm_data_reader
LD HL,LWRD read_idm_data_reader
CALL LWRD ?BANK_CALL_DIRECT_L08
; 202. SetPenColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetPenColor
; 203. SetBackgdColor(Color_MENU_def);
LD BC,0
LD DE,65535
CALL LWRD SetBackgdColor
; 204. PutS(fileName, -1);
LD C,255
LD DE,fileName
CALL LWRD PutS
?0048:
; 205. }
; 206. output8(0x4e,input8(0x4e)|0x08); //清WATCH DOG
IN A,(78)
SET 3,A
OUT (78),A
INC IY
JP LWRD ?0041
?0040:
; 207. }
; 208.
; 209. fselSetLocation(&g_reader_vars.location);
LD DE,g_reader_vars+6
LD A,BYTE3 fselSetLocation
LD HL,LWRD fselSetLocation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 210. need_draw = FALSE;
LD (IX-18),0
?0037:
; 211.
; 212. }
; 213. if(list_change)
XOR A
OR (IX-16)
JR Z,?0050
?0049:
; 214. {
; 215. show_active_list_reader(old_active, active, top);
LD L,(IX-10)
LD H,(IX-9)
PUSH HL
LD BC,(active)
LD E,(IX-6)
LD D,(IX-5)
LD A,BYTE3 show_active_list_reader
LD HL,LWRD show_active_list_reader
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
; 216. list_change = FALSE;
LD (IX-16),0
?0050:
; 217. }
; 218.
; 219. key=ap_get_message(); // get the user message
CALL LWRD ap_get_message
LD (IX-12),A
LD B,0
; 220. if(g_from_browser)
LD A,(g_from_browser)
OR A
JR Z,?0052
?0051:
; 221. {
; 222. key = (AP_KEY_PLAY | AP_KEY_UP);
; 223. g_from_browser = FALSE;
XOR A
LD (g_from_browser),A
LD (IX-12),33
?0052:
; 224. }
; 225. switch(key)
LD E,(IX-12)
LD D,B
CALL LWRD ?S_V_SWITCH_L06
DEFW 8
DEFW 5
DEFW 6
DEFW 16
DEFW 33
DEFW 48
DEFW 55
DEFW 69
DEFW 70
DEFW ?0089
DEFW ?0064
DEFW ?0054
DEFW ?0087
DEFW ?0075
DEFW ?0084
DEFW ?0077
DEFW ?0064
DEFW ?0054
?0054:
; 226. {
; 227. case AP_KEY_PREV :
; 228. case AP_KEY_PREV | AP_KEY_HOLD:
; 229. if(active > 0)
LD BC,(active)
LD L,A
LD H,A
OR 128
SBC HL,BC
JP PO,?0107
XOR H
?0107:
JP P,?0056
?0055:
; 230. {
; 231. active--;
LD L,C
LD H,B
DEC HL
LD (active),HL
; 232. if(active/6==cur_group)
LD BC,6
EX DE,HL
CALL LWRD ?SS_DIV_L02
LD L,(IX-8)
LD H,(IX-7)
AND A
SBC HL,DE
JR NZ,?0114
?0057:
; 233. {
; 234. old_active=active+1;
LD HL,(active)
INC HL
LD (IX-6),L
LD (IX-5),H
; 235. list_change=TRUE;
LD (IX-16),1
; 236. }
; 237. else
JR ?0060
?0058:
; 238. need_draw = TRUE;
?0059:
; 239. }
; 240. else
?0056:
; 241. {
; 242. active = g_file_total - 1;
LD HL,(g_file_total)
DEC HL
LD (active),HL
; 243. need_draw = TRUE;
?0114:
LD (IX-18),1
?0060:
; 244. }
; 245. sel_prev(TRUE);
LD E,1
LD A,BYTE3 sel_prev
LD HL,LWRD sel_prev
CALL LWRD ?0117
; 246. g_reader_vars.g_txt.PrevSeek=0;
; 247. g_reader_vars.g_txt.CurrentSeek=0;
; 248. g_reader_vars.g_txt.BufSector=0;
?0062:
; 249. //清除多出的HOLD消息,防止按键停了还跳几曲
; 250. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0023
?0063:
; 251. break;
JR ?0062
?0061:
?0064:
; 252. case AP_KEY_NEXT :
; 253. case AP_KEY_NEXT | AP_KEY_HOLD:
; 254. if(active < g_file_total - 1)
LD BC,(g_file_total)
DEC BC
LD HL,(active)
OR 128
SBC HL,BC
JP PO,?0108
XOR H
?0108:
JP P,?0066
?0065:
; 255. {
; 256. active++;
LD HL,(active)
INC HL
LD (active),HL
; 257. if(active/6==cur_group)
LD BC,6
EX DE,HL
CALL LWRD ?SS_DIV_L02
LD L,(IX-8)
LD H,(IX-7)
AND A
SBC HL,DE
JR NZ,?0115
?0067:
; 258. {
; 259. old_active=active-1;
LD HL,(active)
DEC HL
LD (IX-6),L
LD (IX-5),H
; 260. list_change=TRUE;
LD (IX-16),1
; 261. }
; 262. else
JR ?0070
?0068:
; 263. need_draw = TRUE;
?0069:
; 264. }
; 265. else
?0066:
; 266. {
; 267. active = 0;
LD L,D
LD H,D
LD (active),HL
; 268. need_draw = TRUE;
?0115:
LD (IX-18),1
?0070:
; 269. }
; 270. sel_next(TRUE);
LD E,1
LD A,BYTE3 sel_next
LD HL,LWRD sel_next
CALL LWRD ?0117
; 271. g_reader_vars.g_txt.PrevSeek=0;
; 272. g_reader_vars.g_txt.CurrentSeek=0;
; 273. g_reader_vars.g_txt.BufSector=0;
?0072:
; 274. //清除多出的HOLD消息,防止按键停了还跳几曲
; 275. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0023
?0073:
; 276. break;
JR ?0072
?0071:
?0074:
; 277. case AP_KEY_MODE:
; 278. g_menu_active=1;
; 279. break;
?0075:
; 280. case AP_KEY_MODE|AP_KEY_UP:
; 281.
; 282. if(g_menu_active) // set the mode
LD A,(g_menu_active)
OR A
JR Z,?0077
?0076:
; 283. {
; 284. result=MenuInReader();
LD A,BYTE3 MenuInReader
LD HL,LWRD MenuInReader
CALL LWRD ?BANK_CALL_DIRECT_L08
; 285. if(result==RESULT_IGNORE)
LD A,52
XOR L
OR H
JR Z,?0110
?0078:
; 286. {
; 287. file_changed=TRUE;
; 288. break;
?0079:
; 289. }
; 290. else if(result==RESULT_SD_OUT)
LD A,54
XOR L
OR H
JR Z,?0112
?0080:
; 291. {
; 292. need_sel_file = TRUE;
; 293. break;
?0081:
; 294. }
; 295. else if(result==0)
LD A,L
OR H
JR NZ,?0086
?0082:
; 296. {
; 297. need_sel_file = TRUE;
JR ?0112
; 298. break;
?0083:
; 299. }
; 300. else
; 301. return result;
; 302. }
?0077:
; 303. else
; 304. g_menu_active=TRUE;
LD A,1
LD (g_menu_active),A
; 305. break;
JP LWRD ?0023
?0084:
; 306.
; 307. case AP_KEY_PLAY | AP_KEY_UP:
; 308. result=do_play();
LD A,BYTE3 do_play
LD HL,LWRD do_play
CALL LWRD ?BANK_CALL_DIRECT_L08
; 309. if(result==0)
LD A,L
OR H
JR NZ,?0086
?0085:
; 310. {
; 311. file_changed=TRUE;
?0110:
LD (IX-17),1
; 312. break;
JP LWRD ?0023
?0086:
; 313. }
; 314. else
; 315. return result;
; 316. case AP_MSG_SD_OUT:
JR ?0096
?0087:
; 317. if (g_reader_vars.location.disk == 'H')
LD A,(g_reader_vars+6)
CP 72
JR NZ,?0089
?0088:
; 318. {
; 319. g_reader_vars.location.disk = 'C';
LD A,67
LD (g_reader_vars+6),A
; 320. ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
LD BC,(g_comval+12)
LD B,D
PUSH BC
LD BC,394
LD E,C
LD D,B
LD A,BYTE3 ui_err_msg
LD HL,LWRD ui_err_msg
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 321. need_sel_file=TRUE;
?0112:
LD A,1
LD (need_sel_file),A
; 322. break;
JP LWRD ?0023
?0089:
?0090:
; 323. }
; 324.
; 325. default:
; 326. key = ap_handle_hotkey( key);
CALL LWRD ap_handle_hotkey
LD C,A
; 327. if(key == RESULT_REDRAW) need_draw = TRUE;
LD A,50
XOR C
JR NZ,?0092
?0091:
LD (IX-18),1
JP LWRD ?0023
?0092:
; 328. else if(key != 0) return key;
LD A,C
OR A
JP Z,?0023
?0094:
LD L,C
LD H,B
; 329.
; 330. }
?0095:
?0093:
?0053:
; 331.
; 332. }
; 333. return result;
; 334. }
?0096:
LD SP,IX
POP IX
POP IY
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0117:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD BC,0
LD L,C
LD H,B
LD (g_reader_vars+55),HL
LD (g_reader_vars+57),BC
LD (g_reader_vars+59),HL
LD (g_reader_vars+61),BC
LD (g_reader_vars+63),HL
RET
RSEG CSTR
?0004:
DEFB 'ROOT'
DEFB 0
?0006:
DEFB 92,0
RSEG CONST
menu_pos:
DEFB 22
DEFB '('
DEFB ':'
DEFB 'L'
DEFB '^'
DEFB 'p'
RSEG UDATA0
active:
DEFS 2
g_file_total:
DEFS 2
need_sel_file:
DEFS 1
fileName:
DEFS 50
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -