📄 ui_menu.lst
字号:
\ 010B D5 PUSH DE
\ 010C FDE1 POP IY
77 int i,active,old_active;
78 char key;
79 BOOL need_draw=TRUE;
80 bool value_changed=FALSE;
81 int cur_group; //menu->active / MENU_NUM_ONE_PAGE
82 int n; //the item to show
83 // DC oldDC_sav;
84
85 active = menu->active;
\ 010E 13 INC DE
\ 010F 13 INC DE
\ 0110 1A LD A,(DE)
\ 0111 DD77F2 LD (IX-14),A
\ 0114 13 INC DE
\ 0115 1A LD A,(DE)
\ 0116 DD77F3 LD (IX-13),A
86 // GetDCStatus(&oldDC_sav);
87 SetPenColor(Color_WHITE_def);
\ 0119 CDF200 CALL LWRD ?0065
88 SetTextOutMode(1); //设字体透明
\ 011C 1E01 LD E,1
\ 011E CD0000 CALL LWRD SetTextOutMode
\ 0121 DD36FC01 LD (IX-4),1
\ 0125 DD36FE00 LD (IX-2),0
\ 0129 ?0003:
89
90 while(1)
91 {
92 if(need_draw)
\ 0129 AF XOR A
\ 012A DDB6FC OR (IX-4)
\ 012D CA6302 JP Z,?0006
\ 0130 ?0005:
93 {
94 output8(0x4e,input8(0x4e)|0x8); //zxs add
\ 0130 DB4E IN A,(78)
\ 0132 CBDF SET 3,A
\ 0134 D34E OUT (78),A
95 ResShowPic(MENUTWO,0,0);
\ 0136 0E00 LD C,0
\ 0138 C5 PUSH BC
\ 0139 11C400 LD DE,196
\ 013C CDEA00 CALL LWRD ?0063
\ 013F F1 POP AF
96 //ResShowPic(DHT,126,0);
97 ResShowPic(DHT,194,8);
\ 0140 0E08 LD C,8
\ 0142 C5 PUSH BC
\ 0143 0EC2 LD C,194
\ 0145 112700 LD DE,39
\ 0148 CDEA00 CALL LWRD ?0063
\ 014B F1 POP AF
98 old_active=active;
99 cur_group = active / MENU_NUM_ONE_PAGE;
\ 014C 010600 LD BC,6
\ 014F DD5EF2 LD E,(IX-14)
\ 0152 DD56F3 LD D,(IX-13)
\ 0155 CD0000 CALL LWRD ?SS_DIV_L02
\ 0158 DD73F8 LD (IX-8),E
\ 015B DD72F9 LD (IX-7),D
100 n = cur_group*MENU_NUM_ONE_PAGE;
\ 015E EB EX DE,HL
\ 015F 29 ADD HL,HL
\ 0160 4D LD C,L
\ 0161 44 LD B,H
\ 0162 29 ADD HL,HL
\ 0163 09 ADD HL,BC
\ 0164 DD75F6 LD (IX-10),L
\ 0167 DD74F7 LD (IX-9),H
101 SetPenColor(Color_WHITE_def);
\ 016A CDF200 CALL LWRD ?0065
102 //show icons & text
103 for(i=0; i<MENU_NUM_ONE_PAGE; i++)
\ 016D DD6EF2 LD L,(IX-14)
\ 0170 DD66F3 LD H,(IX-13)
\ 0173 DD75FA LD (IX-6),L
\ 0176 DD74FB LD (IX-5),H
\ 0179 AF XOR A
\ 017A DD77F4 LD (IX-12),A
\ 017D DD77F5 LD (IX-11),A
\ 0180 ?0008:
\ 0180 010680 LD BC,32774
\ 0183 DD6EF4 LD L,(IX-12)
\ 0186 DD66F5 LD H,(IX-11)
\ 0189 78 LD A,B
\ 018A AC XOR H
\ 018B 67 LD H,A
\ 018C ED42 SBC HL,BC
\ 018E D25F02 JP NC,?0007
\ 0191 ?0009:
104 {
105 if(n+i >= menu->total) break; //处理不足MENU_NUM_ONE_PAGE个的情况
\ 0191 FD4E00 LD C,(IY+0)
\ 0194 FD4601 LD B,(IY+1)
\ 0197 DD6EF4 LD L,(IX-12)
\ 019A DD66F5 LD H,(IX-11)
\ 019D DD5EF6 LD E,(IX-10)
\ 01A0 DD56F7 LD D,(IX-9)
\ 01A3 19 ADD HL,DE
\ 01A4 F680 OR 128
\ 01A6 ED42 SBC HL,BC
\ 01A8 E2AC01 JP PO,?0055
\ 01AB AC XOR H
\ 01AC ?0055:
\ 01AC F25F02 JP P,?0007
\ 01AF ?0011:
\ 01AF ?0012:
106 if(n+i==active)
\ 01AF DD6EF4 LD L,(IX-12)
\ 01B2 DD66F5 LD H,(IX-11)
\ 01B5 4B LD C,E
\ 01B6 42 LD B,D
\ 01B7 09 ADD HL,BC
\ 01B8 DD4EF2 LD C,(IX-14)
\ 01BB DD46F3 LD B,(IX-13)
\ 01BE A7 AND A
\ 01BF ED42 SBC HL,BC
\ 01C1 210000 LD HL,menu_pos_menu
\ 01C4 DD4EF4 LD C,(IX-12)
\ 01C7 DD46F5 LD B,(IX-11)
\ 01CA 09 ADD HL,BC
\ 01CB 7E LD A,(HL)
\ 01CC 205B JR NZ,?0014
\ 01CE ?0013:
107 {
108 {
109 ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_menu[i]-4);
\ 01CE C6FC ADD A,252
\ 01D0 5F LD E,A
\ 01D1 D5 PUSH DE
\ 01D2 CDE500 CALL LWRD ?0064
\ 01D5 F1 POP AF
110 //ResShowPic(DHTHK,122, menu_pos_menu[i]-2);
111 ResShowPic(DHTHK,194, menu_pos_menu[i]+6);
\ 01D6 210000 LD HL,menu_pos_menu
\ 01D9 DD4EF4 LD C,(IX-12)
\ 01DC DD46F5 LD B,(IX-11)
\ 01DF 09 ADD HL,BC
\ 01E0 7E LD A,(HL)
\ 01E1 C606 ADD A,6
\ 01E3 5F LD E,A
\ 01E4 D5 PUSH DE
\ 01E5 0EC2 LD C,194
\ 01E7 112800 LD DE,40
\ 01EA CDEA00 CALL LWRD ?0063
\ 01ED F1 POP AF
112 ///-ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_menu[i]);
113 }
114 SetPenColor(Color_WHITE_def);
\ 01EE CDF200 CALL LWRD ?0065
115 ResShowMultiString(menu->title[active], menu->string_id,
116 menu_str_x_def, menu_pos_menu[i]-3);
\ 01F1 210000 LD HL,menu_pos_menu
\ 01F4 DD4EF4 LD C,(IX-12)
\ 01F7 DD46F5 LD B,(IX-11)
\ 01FA 09 ADD HL,BC
\ 01FB 7E LD A,(HL)
\ 01FC C6FD ADD A,253
\ 01FE 4F LD C,A
\ 01FF C5 PUSH BC
\ 0200 0E20 LD C,32
\ 0202 C5 PUSH BC
\ 0203 FD4E09 LD C,(IY+9)
\ 0206 FD6E04 LD L,(IY+4)
\ 0209 FD6605 LD H,(IY+5)
\ 020C E5 PUSH HL
\ 020D DD6EF2 LD L,(IX-14)
\ 0210 DD66F3 LD H,(IX-13)
\ 0213 29 ADD HL,HL
\ 0214 EB EX DE,HL
\ 0215 E1 POP HL
\ 0216 19 ADD HL,DE
\ 0217 5E LD E,(HL)
\ 0218 23 INC HL
\ 0219 56 LD D,(HL)
\ 021A 3E00 LD A,BYTE3 ResShowMultiString
\ 021C 210000 LD HL,LWRD ResShowMultiString
\ 021F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0222 F1 POP AF
\ 0223 F1 POP AF
117 SetPenColor(Color_WHITE_def);
\ 0224 CDF200 CALL LWRD ?0065
118 }
119 else
\ 0227 182A JR ?0015
\ 0229 ?0014:
120 {
121 ///-ResShowPic(MENUARR1+i, menu_ptr_x_def, menu_pos_menu[i]);
122 ResShowMultiString(menu->title[n+i], menu->string_id,
123 menu_str_x_def, menu_pos_menu[i]-3);
\ 0229 C6FD ADD A,253
\ 022B 5F LD E,A
\ 022C D5 PUSH DE
\ 022D 1E20 LD E,32
\ 022F D5 PUSH DE
\ 0230 FD4E09 LD C,(IY+9)
\ 0233 FD6E04 LD L,(IY+4)
\ 0236 FD6605 LD H,(IY+5)
\ 0239 E5 PUSH HL
\ 023A DD6EF4 LD L,(IX-12)
\ 023D 60 LD H,B
\ 023E DD5EF6 LD E,(IX-10)
\ 0241 19 ADD HL,DE
\ 0242 29 ADD HL,HL
\ 0243 EB EX DE,HL
\ 0244 E1 POP HL
\ 0245 19 ADD HL,DE
\ 0246 5E LD E,(HL)
\ 0247 23 INC HL
\ 0248 56 LD D,(HL)
\ 0249 3E00 LD A,BYTE3 ResShowMultiString
\ 024B 210000 LD HL,LWRD ResShowMultiString
\ 024E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0251 F1 POP AF
\ 0252 F1 POP AF
\ 0253 ?0015:
\ 0253 DD34F4 INC (IX-12)
\ 0256 C28001 JP NZ,?0008
\ 0259 DD34F5 INC (IX-11)
\ 025C C38001 JP LWRD ?0008
\ 025F ?0007:
124 }
125 }
126
127 need_draw = FALSE;
\ 025F DD36FC00 LD (IX-4),0
\ 0263 ?0006:
128 }//need draw
129
130 if(value_changed)
\ 0263 AF XOR A
\ 0264 DDB6FE OR (IX-2)
\ 0267 281D JR Z,?0017
\ 0269 ?0016:
131 {
132 show_active_menu(menu,old_active,active);
\ 0269 DD6EF2 LD L,(IX-14)
\ 026C DD66F3 LD H,(IX-13)
\ 026F E5 PUSH HL
\ 0270 DD4EFA LD C,(IX-6)
\ 0273 DD46FB LD B,(IX-5)
\ 0276 FDE5 PUSH IY
\ 0278 D1 POP DE
\ 0279 3E00 LD A,BYTE3 show_active_menu
\ 027B 210000 LD HL,LWRD show_active_menu
\ 027E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0281 E1 POP HL
133 value_changed=FALSE;
\ 0282 DD36FE00 LD (IX-2),0
\ 0286 ?0017:
134 }
135 key = ap_get_message();
\ 0286 CD0000 CALL LWRD ap_get_message
136 //handle message
137 switch( key)
\ 0289 5F LD E,A
\ 028A CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 028D 0700 DEFW 7
\ 028F 05 DEFB 5
\ 0290 06 DEFB 6
\ 0291 1E DEFB 30
\ 0292 21 DEFB 33
\ 0293 30 DEFB 48
\ 0294 45 DEFB 69
\ 0295 46 DEFB 70
\ 0296 B703 DEFW ?0048
\ 0298 A602 DEFW ?0019
\ 029A 2103 DEFW ?0031
\ 029C 9A03 DEFW ?0044
\ 029E B203 DEFW ?0060
\ 02A0 AB03 DEFW ?0045
\ 02A2 A602 DEFW ?0019
\ 02A4 2103 DEFW ?0031
\ 02A6 ?0019:
138 {
139 case AP_KEY_NEXT:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -