📄 ui_menu.lst
字号:
\ 0149 D5 PUSH DE
\ 014A FDE1 POP IY
78 int i,active,old_active;
79 char key;
80 BOOL need_draw=TRUE;
81 bool value_changed=FALSE;
82 int cur_group; //menu->active / MENU_NUM_ONE_PAGE
83 int n; //the item to show
84 // DC oldDC_sav;
85
86 active = menu->active;
\ 014C 13 INC DE
\ 014D 13 INC DE
\ 014E 1A LD A,(DE)
\ 014F DD77F2 LD (IX-14),A
\ 0152 13 INC DE
\ 0153 1A LD A,(DE)
\ 0154 DD77F3 LD (IX-13),A
87 // GetDCStatus(&oldDC_sav);
88 SetPenColor(Color_WHITE_def);
\ 0157 CD3001 CALL LWRD ?0065
89 SetTextOutMode(1); //设字体透明
\ 015A 1E01 LD E,1
\ 015C CD0000 CALL LWRD SetTextOutMode
\ 015F DD36FC01 LD (IX-4),1
\ 0163 DD36FE00 LD (IX-2),0
\ 0167 ?0003:
90
91 while(1)
92 {
93 if(need_draw)
\ 0167 AF XOR A
\ 0168 DDB6FC OR (IX-4)
\ 016B CAD502 JP Z,?0006
\ 016E ?0005:
94 {
95 output8(0x4e,input8(0x4e)|0x8); //zxs add
\ 016E DB4E IN A,(78)
\ 0170 CBDF SET 3,A
\ 0172 D34E OUT (78),A
96 ResShowPic(MENUTWO,0,0);
\ 0174 0E00 LD C,0
\ 0176 C5 PUSH BC
\ 0177 116D00 LD DE,109
\ 017A CD2801 CALL LWRD ?0063
\ 017D F1 POP AF
97 //ResShowPic(DHT,126,0);
98 ResShowPic(DHT,194,8);
\ 017E 0E08 LD C,8
\ 0180 C5 PUSH BC
\ 0181 0EC2 LD C,194
\ 0183 112D00 LD DE,45
\ 0186 CD2801 CALL LWRD ?0063
\ 0189 F1 POP AF
99 old_active=active;
100 cur_group = active / MENU_NUM_ONE_PAGE;
\ 018A 010600 LD BC,6
\ 018D DD5EF2 LD E,(IX-14)
\ 0190 DD56F3 LD D,(IX-13)
\ 0193 CD0000 CALL LWRD ?SS_DIV_L02
\ 0196 DD73F8 LD (IX-8),E
\ 0199 DD72F9 LD (IX-7),D
101 n = cur_group*MENU_NUM_ONE_PAGE;
\ 019C EB EX DE,HL
\ 019D 29 ADD HL,HL
\ 019E 4D LD C,L
\ 019F 44 LD B,H
\ 01A0 29 ADD HL,HL
\ 01A1 09 ADD HL,BC
\ 01A2 DD75F6 LD (IX-10),L
\ 01A5 DD74F7 LD (IX-9),H
102 SetPenColor(Color_WHITE_def);
\ 01A8 CD3001 CALL LWRD ?0065
103 //show icons & text
104 for(i=0; i<MENU_NUM_ONE_PAGE; i++)
\ 01AB DD6EF2 LD L,(IX-14)
\ 01AE DD66F3 LD H,(IX-13)
\ 01B1 DD75FA LD (IX-6),L
\ 01B4 DD74FB LD (IX-5),H
\ 01B7 AF XOR A
\ 01B8 DD77F4 LD (IX-12),A
\ 01BB DD77F5 LD (IX-11),A
\ 01BE ?0008:
\ 01BE 010680 LD BC,32774
\ 01C1 DD6EF4 LD L,(IX-12)
\ 01C4 DD66F5 LD H,(IX-11)
\ 01C7 78 LD A,B
\ 01C8 AC XOR H
\ 01C9 67 LD H,A
\ 01CA ED42 SBC HL,BC
\ 01CC D2D102 JP NC,?0007
\ 01CF ?0009:
105 {
106 if(n+i >= menu->total) break; //处理不足MENU_NUM_ONE_PAGE个的情况
\ 01CF FD4E00 LD C,(IY+0)
\ 01D2 FD4601 LD B,(IY+1)
\ 01D5 DD6EF4 LD L,(IX-12)
\ 01D8 DD66F5 LD H,(IX-11)
\ 01DB DD5EF6 LD E,(IX-10)
\ 01DE DD56F7 LD D,(IX-9)
\ 01E1 19 ADD HL,DE
\ 01E2 F680 OR 128
\ 01E4 ED42 SBC HL,BC
\ 01E6 E2EA01 JP PO,?0055
\ 01E9 AC XOR H
\ 01EA ?0055:
\ 01EA F2D102 JP P,?0007
\ 01ED ?0011:
\ 01ED ?0012:
107 if(n+i==active)
\ 01ED DD6EF4 LD L,(IX-12)
\ 01F0 DD66F5 LD H,(IX-11)
\ 01F3 4B LD C,E
\ 01F4 42 LD B,D
\ 01F5 09 ADD HL,BC
\ 01F6 DD4EF2 LD C,(IX-14)
\ 01F9 DD46F3 LD B,(IX-13)
\ 01FC A7 AND A
\ 01FD ED42 SBC HL,BC
\ 01FF 210000 LD HL,menu_pos_menu
\ 0202 DD4EF4 LD C,(IX-12)
\ 0205 DD46F5 LD B,(IX-11)
\ 0208 09 ADD HL,BC
\ 0209 2071 JR NZ,?0014
\ 020B ?0013:
108 {
109 {
110 ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_menu[i]-4);
\ 020B 7E LD A,(HL)
\ 020C C6FC ADD A,252
\ 020E 5F LD E,A
\ 020F D5 PUSH DE
\ 0210 CD2301 CALL LWRD ?0064
\ 0213 F1 POP AF
111 //ResShowPic(DHTHK,122, menu_pos_menu[i]-2);
112 ResShowPic(DHTHK,194, menu_pos_menu[i]+6);
\ 0214 210000 LD HL,menu_pos_menu
\ 0217 DD4EF4 LD C,(IX-12)
\ 021A DD46F5 LD B,(IX-11)
\ 021D 09 ADD HL,BC
\ 021E 7E LD A,(HL)
\ 021F C606 ADD A,6
\ 0221 5F LD E,A
\ 0222 D5 PUSH DE
\ 0223 0EC2 LD C,194
\ 0225 112E00 LD DE,46
\ 0228 CD2801 CALL LWRD ?0063
\ 022B F1 POP AF
113 ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_menu[i]);
\ 022C 210000 LD HL,menu_pos_menu
\ 022F DD4EF4 LD C,(IX-12)
\ 0232 DD46F5 LD B,(IX-11)
\ 0235 09 ADD HL,BC
\ 0236 5E LD E,(HL)
\ 0237 D5 PUSH DE
\ 0238 0E0A LD C,10
\ 023A 116C00 LD DE,108
\ 023D CD2801 CALL LWRD ?0063
\ 0240 F1 POP AF
114 }
115 SetPenColor(Color_WHITE_def);
\ 0241 CD3001 CALL LWRD ?0065
116 ResShowMultiString(menu->title[active], menu->string_id,
117 menu_str_x_def, menu_pos_menu[i]-3);
\ 0244 210000 LD HL,menu_pos_menu
\ 0247 DD4EF4 LD C,(IX-12)
\ 024A DD46F5 LD B,(IX-11)
\ 024D 09 ADD HL,BC
\ 024E 7E LD A,(HL)
\ 024F C6FD ADD A,253
\ 0251 4F LD C,A
\ 0252 C5 PUSH BC
\ 0253 0E20 LD C,32
\ 0255 C5 PUSH BC
\ 0256 FD4E09 LD C,(IY+9)
\ 0259 FD6E04 LD L,(IY+4)
\ 025C FD6605 LD H,(IY+5)
\ 025F E5 PUSH HL
\ 0260 DD6EF2 LD L,(IX-14)
\ 0263 DD66F3 LD H,(IX-13)
\ 0266 29 ADD HL,HL
\ 0267 EB EX DE,HL
\ 0268 E1 POP HL
\ 0269 19 ADD HL,DE
\ 026A 5E LD E,(HL)
\ 026B 23 INC HL
\ 026C 56 LD D,(HL)
\ 026D 3E00 LD A,BYTE3 ResShowMultiString
\ 026F 210000 LD HL,LWRD ResShowMultiString
\ 0272 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0275 F1 POP AF
\ 0276 F1 POP AF
118 SetPenColor(Color_WHITE_def);
\ 0277 CD3001 CALL LWRD ?0065
119 }
120 else
\ 027A 1849 JR ?0015
\ 027C ?0014:
121 {
122 ResShowPic(MENUARR1+i, menu_ptr_x_def, menu_pos_menu[i]);
\ 027C 5E LD E,(HL)
\ 027D D5 PUSH DE
\ 027E 0E0A LD C,10
\ 0280 215E00 LD HL,94
\ 0283 DD5EF4 LD E,(IX-12)
\ 0286 50 LD D,B
\ 0287 19 ADD HL,DE
\ 0288 EB EX DE,HL
\ 0289 CD2801 CALL LWRD ?0063
\ 028C F1 POP AF
123 ResShowMultiString(menu->title[n+i], menu->string_id,
124 menu_str_x_def, menu_pos_menu[i]-3);
\ 028D 210000 LD HL,menu_pos_menu
\ 0290 DD4EF4 LD C,(IX-12)
\ 0293 DD46F5 LD B,(IX-11)
\ 0296 09 ADD HL,BC
\ 0297 7E LD A,(HL)
\ 0298 C6FD ADD A,253
\ 029A 5F LD E,A
\ 029B D5 PUSH DE
\ 029C 1E20 LD E,32
\ 029E D5 PUSH DE
\ 029F FD4E09 LD C,(IY+9)
\ 02A2 FD6E04 LD L,(IY+4)
\ 02A5 FD6605 LD H,(IY+5)
\ 02A8 E5 PUSH HL
\ 02A9 DD6EF4 LD L,(IX-12)
\ 02AC 60 LD H,B
\ 02AD DD5EF6 LD E,(IX-10)
\ 02B0 DD56F7 LD D,(IX-9)
\ 02B3 19 ADD HL,DE
\ 02B4 29 ADD HL,HL
\ 02B5 EB EX DE,HL
\ 02B6 E1 POP HL
\ 02B7 19 ADD HL,DE
\ 02B8 5E LD E,(HL)
\ 02B9 23 INC HL
\ 02BA 56 LD D,(HL)
\ 02BB 3E00 LD A,BYTE3 ResShowMultiString
\ 02BD 210000 LD HL,LWRD ResShowMultiString
\ 02C0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02C3 F1 POP AF
\ 02C4 F1 POP AF
\ 02C5 ?0015:
\ 02C5 DD34F4 INC (IX-12)
\ 02C8 C2BE01 JP NZ,?0008
\ 02CB DD34F5 INC (IX-11)
\ 02CE C3BE01 JP LWRD ?0008
\ 02D1 ?0007:
125 }
126 }
127
128 need_draw = FALSE;
\ 02D1 DD36FC00 LD (IX-4),0
\ 02D5 ?0006:
129 }//need draw
130
131 if(value_changed)
\ 02D5 AF XOR A
\ 02D6 DDB6FE OR (IX-2)
\ 02D9 281D JR Z,?0017
\ 02DB ?0016:
132 {
133 show_active_menu(menu,old_active,active);
\ 02DB DD6EF2 LD L,(IX-14)
\ 02DE DD66F3 LD H,(IX-13)
\ 02E1 E5 PUSH HL
\ 02E2 DD4EFA LD C,(IX-6)
\ 02E5 DD46FB LD B,(IX-5)
\ 02E8 FDE5 PUSH IY
\ 02EA D1 POP DE
\ 02EB 3E00 LD A,BYTE3 show_active_menu
\ 02ED 210000 LD HL,LWRD show_active_menu
\ 02F0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02F3 E1 POP HL
134 value_changed=FALSE;
\ 02F4 DD36FE00 LD (IX-2),0
\ 02F8 ?0017:
135 }
136 key = ap_get_message();
\ 02F8 CD0000 CALL LWRD ap_get_message
137 //handle message
138 switch( key)
\ 02FB 5F LD E,A
\ 02FC CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 02FF 0700 DEFW 7
\ 0301 05 DEFB 5
\ 0302 06 DEFB 6
\ 0303 1E DEFB 30
\ 0304 21 DEFB 33
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -