📄 bookmark_list.s01
字号:
?0013:
; 150. {
; 151. if(n+i >= list->total) break; //处理不足LIST_NUM_ONE_PAGE个的情况
LD C,(IY+2)
LD B,(IY+3)
LD L,(IX-22)
LD H,(IX-21)
LD E,(IX-12)
LD D,(IX-11)
ADD HL,DE
OR 128
SBC HL,BC
JP PO,?0053
XOR H
?0053:
JP P,?0011
?0015:
?0016:
; 152. if(n+i==active)
LD L,(IX-22)
LD H,(IX-21)
LD C,E
LD B,D
ADD HL,BC
LD C,(IX-24)
LD B,(IX-23)
AND A
SBC HL,BC
LD HL,menu_pos_list
LD C,(IX-22)
LD B,(IX-21)
ADD HL,BC
JR NZ,?0018
?0017:
; 153. {
; 154. { ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_list[i]-4);
LD A,(HL)
ADD A,252
LD E,A
PUSH DE
CALL LWRD ?0063
POP AF
; 155. ResShowPic(DHTHK,194, menu_pos_list[i]+6);
LD HL,menu_pos_list
LD C,(IX-22)
LD B,(IX-21)
ADD HL,BC
LD A,(HL)
ADD A,6
LD E,A
PUSH DE
LD C,194
LD DE,39
CALL LWRD ?0062
POP AF
; 156. ///-ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_list[i]);
; 157. }
; 158.
; 159.
; 160. SetPenColor(Color_WHITE_def);
CALL LWRD ?0064
; 161. showString(active, list->string_id, menu_str_x_def, menu_pos_list[i]-1);
LD HL,menu_pos_list
LD C,(IX-22)
LD B,(IX-21)
ADD HL,BC
LD A,(HL)
ADD A,255
LD C,A
PUSH BC
LD C,32
PUSH BC
LD C,(IY+8)
LD E,(IX-24)
LD D,(IX-23)
LD A,BYTE3 showString
LD HL,LWRD showString
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
; 162. SetPenColor(Color_WHITE_def);
CALL LWRD ?0064
; 163.
; 164. }
; 165. else
JR ?0019
?0018:
; 166. {
; 167. ResShowPic(MENUARR1+i, menu_ptr_x_def, menu_pos_list[i]);
LD E,(HL)
PUSH DE
LD C,10
LD HL,179
LD E,(IX-22)
LD D,B
ADD HL,DE
EX DE,HL
CALL LWRD ?0062
POP AF
; 168. showString(n+i, list->string_id, menu_str_x_def, menu_pos_list[i]-3);
LD HL,menu_pos_list
LD C,(IX-22)
LD B,(IX-21)
ADD HL,BC
LD A,(HL)
ADD A,253
LD E,A
PUSH DE
LD E,32
PUSH DE
LD C,(IY+8)
LD L,(IX-22)
LD H,B
LD E,(IX-12)
LD D,(IX-11)
ADD HL,DE
EX DE,HL
LD A,BYTE3 showString
LD HL,LWRD showString
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
?0019:
INC (IX-22)
JP NZ,?0012
INC (IX-21)
JP LWRD ?0012
?0011:
; 169. }
; 170. }
; 171.
; 172. need_draw = FALSE;
LD (IX-4),0
?0010:
; 173. }//need draw
; 174. if(value_changed)
XOR A
OR (IX-2)
JR Z,?0021
?0020:
; 175. {
; 176. show_active_bklist(list,old_active,active);
LD L,(IX-24)
LD H,(IX-23)
PUSH HL
LD C,(IX-8)
LD B,(IX-7)
PUSH IY
POP DE
LD A,BYTE3 show_active_bklist
LD HL,LWRD show_active_bklist
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
; 177. value_changed=FALSE;
LD (IX-2),0
?0021:
; 178. }
; 179. key = ap_get_message();
CALL LWRD ap_get_message
; 180. //handle message
; 181. switch( key)
LD E,A
CALL LWRD ?C_V_SWITCH_L06
DEFW 7
DEFB 5
DEFB 6
DEFB 30
DEFB 33
DEFB 48
DEFB 69
DEFB 70
DEFW ?0046
DEFW ?0023
DEFW ?0032
DEFW ?0042
DEFW ?0058
DEFW ?0043
DEFW ?0023
DEFW ?0032
?0023:
; 182. {
; 183. case AP_KEY_NEXT:
; 184. case AP_KEY_NEXT | AP_KEY_HOLD:
; 185. if(active < list->total - 1)
LD C,(IY+2)
LD B,(IY+3)
DEC BC
LD L,(IX-24)
LD H,(IX-23)
OR 128
SBC HL,BC
JP PO,?0055
XOR H
?0055:
JP P,?0025
?0024:
; 186. {
; 187. active++;
INC (IX-24)
JR NZ,?0056
INC (IX-23)
?0056:
; 188. if(active/LIST_NUM_ONE_PAGE==cur_group)
LD BC,6
LD E,(IX-24)
LD D,(IX-23)
CALL LWRD ?SS_DIV_L02
LD L,(IX-10)
LD H,(IX-9)
AND A
SBC HL,DE
JR NZ,?0060
?0026:
; 189. {
; 190. old_active=active-1;
LD L,(IX-24)
LD H,(IX-23)
DEC HL
LD (IX-8),L
LD (IX-7),H
; 191. value_changed=TRUE;
LD (IX-2),1
; 192. }
; 193. else
JR ?0029
?0027:
; 194. need_draw = TRUE;
?0028:
; 195. }
; 196. else
?0025:
; 197. {
; 198. active = 0;
; 199. need_draw = TRUE;
XOR A
LD (IX-24),A
LD (IX-23),A
?0060:
LD (IX-4),1
?0029:
; 200. }
; 201. if(callback != NULL)
LD A,(IX+10)
OR (IX+11)
OR (IX+12)
JP Z,?0005
?0030:
; 202. callback(active);
JR ?0059
?0031:
; 203.
; 204. break;
?0032:
; 205.
; 206. case AP_KEY_PREV:
; 207. case AP_KEY_PREV | AP_KEY_HOLD:
; 208. if(active > 0)
LD C,(IX-24)
LD B,(IX-23)
LD HL,0
OR 128
SBC HL,BC
JP PO,?0057
XOR H
?0057:
JP P,?0034
?0033:
; 209. {
; 210. active--;
LD L,C
LD H,B
DEC HL
LD (IX-24),L
LD (IX-23),H
; 211. if(active/LIST_NUM_ONE_PAGE==cur_group)
LD BC,6
EX DE,HL
CALL LWRD ?SS_DIV_L02
LD L,(IX-10)
LD H,(IX-9)
AND A
SBC HL,DE
JR NZ,?0061
?0035:
; 212. {
; 213. old_active=active+1;
LD L,(IX-24)
LD H,(IX-23)
INC HL
LD (IX-8),L
LD (IX-7),H
; 214. value_changed=TRUE;
LD (IX-2),1
; 215. }
; 216. else
JR ?0038
?0036:
; 217. need_draw = TRUE;
?0037:
; 218. }
; 219. else
?0034:
; 220. {
; 221. active = list->total - 1;
LD L,(IY+2)
LD H,(IY+3)
DEC HL
LD (IX-24),L
LD (IX-23),H
; 222. need_draw = TRUE;
?0061:
LD (IX-4),1
?0038:
; 223. }
; 224. if(callback != NULL)
LD A,(IX+10)
OR (IX+11)
OR (IX+12)
JP Z,?0005
?0039:
; 225. callback(active);
?0059:
LD E,(IX-24)
LD D,(IX-23)
LD A,(IX+12)
LD L,(IX+10)
LD H,(IX+11)
CALL LWRD ?BANK_CALL_DIRECT_L08
?0040:
; 226.
; 227. break;
JP LWRD ?0005
?0041:
; 228.
; 229. case AP_KEY_PLAY | AP_KEY_UP: //取消退出
; 230. SetPenColor(oldDC_sav.PenColor);
; 231. SetBackgdColor(oldDC_sav.BackgdColor);
; 232. SetTextOutMode(0); //设字体不透明
; 233. return RESULT_IGNORE;
; 234.
; 235. case AP_KEY_MODE | AP_KEY_UP: //确认退出
?0042:
; 236. // FIXME::enter function menu??
; 237. list->active = active;
LD L,(IX-24)
LD (IY+4),L
LD H,(IX-23)
LD (IY+5),H
; 238. SetPenColor(oldDC_sav.PenColor);
LD C,(IX-18)
LD B,(IX-17)
LD E,(IX-20)
LD D,(IX-19)
CALL LWRD SetPenColor
; 239. SetBackgdColor(oldDC_sav.BackgdColor);
LD HL,8
ADD HL,SP
; 240. SetTextOutMode(0); //设字体不透明
CALL LWRD ?0065
; 241. return 0;
LD HL,0
; 242.
; 243. case AP_MSG_WAIT_TIMEOUT:
JR ?0052
?0043:
; 244. if(ui_auto_select)
LD A,(ui_auto_select)
OR A
JP Z,?0005
?0044:
; 245. {
; 246. SetPenColor(oldDC_sav.PenColor);
?0058:
LD C,(IX-18)
LD B,(IX-17)
LD E,(IX-20)
LD D,(IX-19)
CALL LWRD SetPenColor
; 247. SetBackgdColor(oldDC_sav.BackgdColor);
LD HL,8
ADD HL,SP
; 248. SetTextOutMode(0); //设字体不透明
CALL LWRD ?0065
; 249. return RESULT_IGNORE;
LD HL,52
; 250. }
JR ?0052
?0045:
; 251. break;
?0046:
; 252.
; 253. default:
; 254. key = ap_handle_hotkey(key);
CALL LWRD ap_handle_hotkey
LD (IX-3),A
; 255. if(key == RESULT_REDRAW) need_drawall = TRUE;
CP 50
JR NZ,?0048
?0047:
LD (IX-1),1
; 256. else
JP LWRD ?0005
?0048:
; 257. if(key != 0)
XOR A
OR (IX-3)
JP Z,?0005
?0050:
; 258. {
; 259. SetPenColor(oldDC_sav.PenColor);
LD C,(IX-18)
LD B,(IX-17)
LD E,(IX-20)
LD D,(IX-19)
CALL LWRD SetPenColor
; 260. SetBackgdColor(oldDC_sav.BackgdColor);
LD HL,8
ADD HL,SP
; 261. SetTextOutMode(0); //设字体不透明
CALL LWRD ?0065
; 262. return key;
LD L,(IX-3)
LD H,0
; 263. }
?0051:
?0049:
?0022:
; 264. }// switch(key)
; 265.
; 266. }//while(1)
; 267. SetPenColor(oldDC_sav.PenColor);
; 268. SetBackgdColor(oldDC_sav.BackgdColor);
; 269. }
?0052:
LD SP,IX
POP IX
POP IY
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0065:
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
CALL LWRD SetBackgdColor
LD E,0
JP LWRD SetTextOutMode
; 270.
; 271. #pragma function = default
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -