📄 ui_stop.lst
字号:
86 BOOL sel_prev(BOOL select_all)
87 {
\ 00D7 C5 PUSH BC
\ 00D8 D5 PUSH DE
\ 00D9 F5 PUSH AF
88 BOOL mc_result;
89 mc_result = FSELSetMode(FSEL_DIR_REPEATALL);;
\ 00DA 1E03 LD E,3
\ 00DC 3E00 LD A,BYTE3 fselSetMode
\ 00DE 210000 LD HL,LWRD fselSetMode
\ 00E1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
90
91 mc_result = fselGetPrev(g_reader_vars.location.filename);
\ 00E4 112000 LD DE,g_reader_vars+32
\ 00E7 3E00 LD A,BYTE3 fselGetPrev
\ 00E9 210000 LD HL,LWRD fselGetPrev
\ 00EC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00EF 45 LD B,L
92 if(!mc_result)
\ 00F0 AF XOR A
\ 00F1 B0 OR B
\ 00F2 200D JR NZ,?0017
\ 00F4 ?0016:
93 {
94 if(fselGetErrID() == FSEL_ERR_OUTOF) {return FALSE;}//normal end
\ 00F4 3E00 LD A,BYTE3 fselGetErrID
\ 00F6 210000 LD HL,LWRD fselGetErrID
\ 00F9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00FC 2D DEC L
\ 00FD 2014 JR NZ,?0020
\ 00FF ?0018:
\ 00FF 1812 JR ?0020
\ 0101 ?0019:
95 //else ASSERT(FALSE);
96 }
97 else //normal prev file
\ 0101 ?0017:
98 {
99 mc_result = fselGetLocation(&g_reader_vars.location);
\ 0101 CD8900 CALL LWRD ?0116
100 fselSetLocation(&g_reader_vars.location);
\ 0104 110600 LD DE,g_reader_vars+6
\ 0107 3E00 LD A,BYTE3 fselSetLocation
\ 0109 210000 LD HL,LWRD fselSetLocation
\ 010C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
101 return TRUE;
\ 010F 2E01 LD L,1
102 }
\ 0111 1801 JR ?0021
\ 0113 ?0020:
103 return FALSE;
\ 0113 68 LD L,B
104 }
\ 0114 ?0021:
\ 0114 F1 POP AF
\ 0115 F1 POP AF
\ 0116 C1 POP BC
\ 0117 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 011A show_stop:
105
106
107 /****************************************
108 *Function Name:show_stop
109 *
110 *****************************************/
111
112 int show_stop(void)
113 {
\ 011A C5 PUSH BC
\ 011B D5 PUSH DE
\ 011C FDE5 PUSH IY
\ 011E DDE5 PUSH IX
\ 0120 DD210000 LD IX,0
\ 0124 DD39 ADD IX,SP
\ 0126 21EEFF LD HL,65518
\ 0129 39 ADD HL,SP
\ 012A F9 LD SP,HL
114 bool need_draw=FALSE;
115 bool mc_result;
116 unsigned char err_id;
117 int key;
118 int result;
119 int top, bottom, old_active, tmp, i, cur_group;
120 BOOL file_changed=TRUE; //文件改变
121 bool list_change;
122 g_menu_active=TRUE;
\ 012B 3E01 LD A,1
\ 012D 320000 LD (g_menu_active),A
123 output8(0x4e,input8(0x4e)|0x8);
\ 0130 DB4E IN A,(78)
\ 0132 CBDF SET 3,A
\ 0134 D34E OUT (78),A
124 mc_result = fselInit(FSEL_TYPE_TXT, FSEL_ALL_SEQUENCE, 0,g_reader_vars.location.disk); // init the file selector
\ 0136 210600 LD HL,g_reader_vars+6
\ 0139 4E LD C,(HL)
\ 013A C5 PUSH BC
\ 013B 0E00 LD C,0
\ 013D C5 PUSH BC
\ 013E 1E04 LD E,4
\ 0140 3E00 LD A,BYTE3 fselInit
\ 0142 210000 LD HL,LWRD fselInit
\ 0145 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0148 F1 POP AF
\ 0149 F1 POP AF
125 need_sel_file = TRUE;
\ 014A 3E01 LD A,1
\ 014C 320400 LD (need_sel_file),A
126 list_change = FALSE;
\ 014F DD36EE00 LD (IX-18),0
\ 0153 DD77EF LD (IX-17),A
\ 0156 DD36F000 LD (IX-16),0
\ 015A ?0023:
127 while(1)
128 {
129 if(need_sel_file)
\ 015A 3A0400 LD A,(need_sel_file)
\ 015D B7 OR A
\ 015E 281D JR Z,?0026
\ 0160 ?0025:
130 { // 设置路径,初始化驱动器
131 // BYTE err_id;
132 if(UpdateFileSelector() == 0)
\ 0160 3E00 LD A,BYTE3 UpdateFileSelector
\ 0162 210000 LD HL,LWRD UpdateFileSelector
\ 0165 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0168 7D LD A,L
\ 0169 B4 OR H
\ 016A 2005 JR NZ,?0028
\ 016C ?0027:
133 {
134 return 0;
\ 016C 6F LD L,A
\ 016D 67 LD H,A
135 }
\ 016E C3E004 JP LWRD ?0096
\ 0171 ?0028:
136 need_sel_file = FALSE;
\ 0171 AF XOR A
\ 0172 320400 LD (need_sel_file),A
137 file_changed = TRUE;
138 need_draw = TRUE;
\ 0175 DD36EF01 LD (IX-17),1
\ 0179 DD36EE01 LD (IX-18),1
\ 017D ?0026:
139 }
140 if(file_changed)
\ 017D DDB6EF OR (IX-17)
\ 0180 284F JR Z,?0030
\ 0182 ?0029:
141 {
142 //获得序号
143 active = fselGetNo();
\ 0182 3E00 LD A,BYTE3 fselGetNo
\ 0184 210000 LD HL,LWRD fselGetNo
\ 0187 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 018A 220000 LD (active),HL
144 if(active > 0)
\ 018D 4D LD C,L
\ 018E 44 LD B,H
\ 018F 210000 LD HL,0
\ 0192 F680 OR 128
\ 0194 ED42 SBC HL,BC
\ 0196 E29A01 JP PO,?0104
\ 0199 AC XOR H
\ 019A ?0104:
\ 019A F2A301 JP P,?0032
\ 019D ?0031:
145 active--;
\ 019D 69 LD L,C
\ 019E 60 LD H,B
\ 019F 2B DEC HL
\ 01A0 220000 LD (active),HL
\ 01A3 ?0032:
146 g_file_total = fselGetTotal();
\ 01A3 3E00 LD A,BYTE3 fselGetTotal
\ 01A5 210000 LD HL,LWRD fselGetTotal
\ 01A8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01AB 220200 LD (g_file_total),HL
\ 01AE ?0034:
147 while(ap_get_message()!= AP_KEY_NULL) {;}
\ 01AE CD0000 CALL LWRD ap_get_message
\ 01B1 B7 OR A
\ 01B2 20FA JR NZ,?0034
\ 01B4 ?0035:
\ 01B4 ?0033:
148 ap_message_init(NULL);
\ 01B4 5F LD E,A
\ 01B5 57 LD D,A
\ 01B6 3E00 LD A,BYTE3 ap_message_init
\ 01B8 210000 LD HL,LWRD ap_message_init
\ 01BB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
149
150 //获得 loaction
151 fselGetLocation(&g_reader_vars.location);
\ 01BE CD8900 CALL LWRD ?0116
152 make_dirname();
\ 01C1 3E00 LD A,BYTE3 make_dirname
\ 01C3 210000 LD HL,LWRD make_dirname
\ 01C6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
153 file_changed = FALSE;
154 need_draw = TRUE;
\ 01C9 DD36EF00 LD (IX-17),0
\ 01CD DD36EE01 LD (IX-18),1
\ 01D1 ?0030:
155 }
156 output8(0x4e,input8(0x4e)|0x08);
\ 01D1 DB4E IN A,(78)
\ 01D3 CBDF SET 3,A
\ 01D5 D34E OUT (78),A
157 if(need_draw)
\ 01D7 AF XOR A
\ 01D8 DDB6EE OR (IX-18)
\ 01DB CA5003 JP Z,?0037
\ 01DE ?0036:
158 {
159 old_active=active;
\ 01DE 2A0000 LD HL,(active)
\ 01E1 DD75FA LD (IX-6),L
\ 01E4 DD74FB LD (IX-5),H
160 cur_group = active / 6;
\ 01E7 010600 LD BC,6
\ 01EA EB EX DE,HL
\ 01EB CD0000 CALL LWRD ?SS_DIV_L02
\ 01EE DD73F8 LD (IX-8),E
\ 01F1 DD72F9 LD (IX-7),D
161 top = cur_group*6;
\ 01F4 EB EX DE,HL
\ 01F5 29 ADD HL,HL
\ 01F6 4D LD C,L
\ 01F7 44 LD B,H
\ 01F8 29 ADD HL,HL
\ 01F9 09 ADD HL,BC
\ 01FA DD75F6 LD (IX-10),L
\ 01FD DD74F7 LD (IX-9),H
162 tmp = g_file_total - 1;
\ 0200 ED4B0200 LD BC,(g_file_total)
\ 0204 0B DEC BC
163 bottom = top+5;
\ 0205 110500 LD DE,5
\ 0208 19 ADD HL,DE
\ 0209 DD75FC LD (IX-4),L
\ 020C DD74FD LD (IX-3),H
164 if(bottom>tmp)bottom = tmp;
\ 020F EB EX DE,HL
\ 0210 69 LD L,C
\ 0211 60 LD H,B
\ 0212 F680 OR 128
\ 0214 ED52 SBC HL,DE
\ 0216 E21A02 JP PO,?0105
\ 0219 AC XOR H
\ 021A ?0105:
\ 021A F22502 JP P,?0039
\ 021D ?0038:
\ 021D 69 LD L,C
\ 021E 60 LD H,B
\ 021F DD75FC LD (IX-4),L
\ 0222 DD74FD LD (IX-3),H
\ 0225 ?0039:
165
166 //获得 loaction
167 fselGetLocation(&g_reader_vars.location);
\ 0225 CD8900 CALL LWRD ?0116
168 reinit_idm_buf_reader(top, bottom, 0, g_comval.langid);
\ 0228 ED4B0C00 LD BC,(g_comval+12)
\ 022C 0600 LD B,0
\ 022E C5 PUSH BC
\ 022F 68 LD L,B
\ 0230 60 LD H,B
\ 0231 E5 PUSH HL
\ 0232 DD4EFC LD C,(IX-4)
\ 0235 DD46FD LD B,(IX-3)
\ 0238 DD5EF6 LD E,(IX-10)
\ 023B DD56F7 LD D,(IX-9)
\ 023E 3E00 LD A,BYTE3 reinit_idm_buf_reader
\ 0240 210000 LD HL,LWRD reinit_idm_buf_reader
\ 0243 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0246 E1 POP HL
\ 0247 E1 POP HL
169 ResShowPic(MENUTWO1,0,0);
\ 0248 0E00 LD C,0
\ 024A C5 PUSH BC
\ 024B 11C400 LD DE,196
\ 024E 3E00 LD A,BYTE3 ResShowPic
\ 0250 210000 LD HL,LWRD ResShowPic
\ 0253 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -