⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui_play.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
?0019:
; 127.	            case MSG_RTC2HZ:        //rtc
; 128.	            case AP_MSG_RTC:
; 129.	                if(!g_reader_vars.playflag) break; 
	LD	A,(g_reader_vars+2)
	OR	A
	JP	Z,?0073
?0020:
?0021:
; 130.	                if( AutoPlayTimeSet == 0 ) break;
	LD	A,(IX-24)
	OR	(IX-23)
	JP	Z,?0073
?0022:
?0023:
; 131.	                ap_message_init(NULL);  // 清除屏保
	LD	DE,0
	LD	A,BYTE3 ap_message_init
	LD	HL,LWRD ap_message_init
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 132.	                if( -- AutoPlayTime != 0 )
	LD	L,(IX-26)
	LD	H,(IX-25)
	DEC	HL
	LD	(IX-26),L
	LD	(IX-25),H
	LD	A,L
	OR	H
	JP	NZ,?0073
?0024:
; 133.	                    break;
?0025:
; 134.	            AutoPlayTime=AutoPlayTimeSet*2;                   
	LD	L,(IX-24)
	LD	H,(IX-23)
	ADD	HL,HL
	LD	(IX-26),L
	LD	(IX-25),H
?0026:
; 135.	                //跳至AP_KEY_NEXT处理
; 136.	            case AP_KEY_NEXT:
; 137.	            case AP_KEY_NEXT| AP_KEY_HOLD:
; 138.	                // 先试翻屏, 如果到结尾, 回到先前位置, 用于RESULT_REDRAW的消息重画
; 139.	                if( SCR_ROW == nDrawRow && bPageDownFlag)
	LD	A,(IX-20)
	CP	7
	JR	NZ,?0028
	XOR	A
	OR	(IX-16)
	JR	Z,?0028
?0030:
?0029:
?0027:
; 140.	                {    
; 141.	                     byte    ret_page, Next_page;
; 142.	                    ret_page = view_page_down(&g_reader_vars.g_txt, 1,NULL);
	LD	HL,0
	PUSH	HL
	LD	C,1
	LD	DE,g_reader_vars+49
	LD	A,BYTE3 view_page_down
	LD	HL,LWRD view_page_down
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(IX-3),L
; 143.	                    if(0xff !=  ret_page)
	INC	L
	JR	Z,?0038
?0031:
; 144.	                    {                      
; 145.	                        bRedraw = TRUE;
	LD	(IX-21),1
; 146.	//                        nCurPage++;
; 147.	
; 148.	                        if(ret_page == SCR_ROW)
	LD	A,(IX-3)
	CP	7
	JR	NZ,?0034
?0033:
; 149.	                        {
; 150.	                            Next_page = view_page_down(&g_reader_vars.g_txt, 2,NULL);
	LD	HL,0
	PUSH	HL
	LD	C,2
	LD	DE,g_reader_vars+49
	LD	A,BYTE3 view_page_down
	LD	HL,LWRD view_page_down
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 151.	                            if(Next_page != 0xff)
	INC	L
	JR	Z,?0036
?0035:
; 152.	                            {
; 153.	                                bPageDownFlag = TRUE;
	LD	(IX-16),1
; 154.	                            }
; 155.	                            else
	JR	?0038
?0036:
; 156.	                                bPageDownFlag = FALSE;
	LD	(IX-16),L
?0037:
; 157.	                        }
; 158.	                        else
	JR	?0038
?0034:
; 159.	                            bPageDownFlag = FALSE;
	LD	(IX-16),0
?0038:
?0032:
; 160.	                        
; 161.	                         
; 162.	                    }
; 163.	                    ToPrevScreenPosition(&g_reader_vars.g_txt);   // 返回前一屏的位置  
	CALL	LWRD ?0084
; 164.	                }
; 165.	                else
	JR	?0039
?0028:
; 166.	                {  
; 167.	                    g_reader_vars.g_txt.PrevSeek=0;
	LD	BC,0
	LD	L,C
	LD	H,B
	LD	(g_reader_vars+55),HL
	LD	(g_reader_vars+57),BC
; 168.	                    g_reader_vars.g_txt.CurrentSeek=0;
	LD	(g_reader_vars+59),HL
	LD	(g_reader_vars+61),BC
; 169.	                    g_reader_vars.g_txt.BufSector=0;
	LD	(g_reader_vars+63),HL
?0041:
; 170.	                    while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	Z,?0082
?0042:
	JR	?0041
?0040:
; 171.	                    return 0;
; 172.	                }
?0039:
?0044:
; 173.	                    while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JP	Z,?0073
?0045:
; 174.	                break;
	JR	?0039
?0043:
?0046:
; 175.	            case AP_KEY_PREV:
; 176.	            case AP_KEY_PREV| AP_KEY_HOLD:
; 177.	                {
; 178.	                    bRedraw = ( 0 != view_page_up(&g_reader_vars.g_txt,NULL) );
	LD	BC,0
	LD	DE,g_reader_vars+49
	LD	A,BYTE3 view_page_up
	LD	HL,LWRD view_page_up
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	Z,?0079
	LD	A,1
	JR	?0080
?0079:
	XOR	A
?0080:
	LD	(IX-21),A
; 179.	                    if(bRedraw)   
	OR	A
	JR	Z,?0048
?0047:
; 180.	                    {
; 181.	                        bPageDownFlag = TRUE;
	LD	(IX-16),1
?0048:
?0050:
; 182.	                    }
; 183.	                }
; 184.	                while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JP	Z,?0073
?0051:
; 185.	               break;
	JR	?0048
?0049:
?0052:
; 186.	               case AP_MSG_SD_OUT:
; 187.	               if (g_reader_vars.location.disk == 'H')
	LD	A,(g_reader_vars+6)
	CP	72
	JR	NZ,?0054
?0053:
; 188.	                {
; 189.	                    g_reader_vars.location.disk = 'C';
	LD	A,67
	LD	(g_reader_vars+6),A
; 190.	                    ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
	LD	BC,(g_comval+12)
	LD	B,0
	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
; 191.	                    need_sel_file=TRUE;
	LD	A,1
	LD	(need_sel_file),A
; 192.	                    return 0;
?0082:
	LD	HL,0
; 193.	                }   
	JP	LWRD ?0077
?0054:
?0056:
; 194.	                while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JP	Z,?0073
?0057:
; 195.	                break;                            
	JR	?0054
?0055:
?0058:
; 196.	             
; 197.	              case  AP_KEY_MODE|AP_KEY_UP:
; 198.	              BankSwitch((unsigned long)LoadData >> 16);  
	LD	E,BYTE3 LoadData
	CALL	LWRD BankSwitch
; 199.	             // ToPrevScreenPosition(&g_reader_vars.g_txt);       //回上一屏        
; 200.	               result=bookmark_op();     
	LD	A,BYTE3 bookmark_op
	LD	HL,LWRD bookmark_op
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 201.	               if(result==0)
	LD	A,L
	OR	H
	JR	Z,?0083
?0059:
; 202.	                {
; 203.	                 bRedraw = TRUE;
; 204.	                 break; 
?0060:
; 205.	                   
; 206.	                }
; 207.	               if(result!=RESULT_IGNORE)
	LD	A,52
	XOR	L
	OR	H
	JR	NZ,?0077
?0061:
; 208.	                 {
; 209.	                  return result;                 
; 210.	                 }    
?0062:
; 211.	                if(result==RESULT_IGNORE)  
	LD	A,52
	XOR	L
	OR	H
	JR	NZ,?0064
?0063:
; 212.	                ToPrevScreenPosition(&g_reader_vars.g_txt);       //回上一屏 
	CALL	LWRD ?0084
?0064:
; 213.	                bRedraw = TRUE; //重画
	LD	(IX-21),1
?0066:
; 214.	                while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	Z,?0073
?0067:
; 215.	                break;
	JR	?0066
?0065:
?0068:
; 216.	                
; 217.	            default:
; 218.	                key = ap_handle_hotkey( key );
	CALL	LWRD ap_handle_hotkey
	LD	(IX-17),A
; 219.	                if(key == RESULT_REDRAW)
	CP	50
	JR	NZ,?0070
?0069:
; 220.	                {
; 221.	                    ToPrevScreenPosition(&g_reader_vars.g_txt);
	CALL	LWRD ?0084
; 222.	                    bRedraw = TRUE; //重画
?0083:
	LD	(IX-21),1
	JR	?0073
?0070:
; 223.	                }
; 224.	                else if(key != 0)
	XOR	A
	OR	(IX-17)
	JR	Z,?0073
?0072:
; 225.	                {
; 226.	                    FileLengthLeft= g_reader_vars.g_txt.FileLengthBytes - g_reader_vars.g_txt.CurrentSeek;
	LD	HL,(g_reader_vars+51)
	LD	BC,(g_reader_vars+59)
	SBC	HL,BC
	EX	DE,HL
	LD	HL,(g_reader_vars+53)
	LD	BC,(g_reader_vars+61)
	SBC	HL,BC
	LD	C,L
	LD	B,H
	EX	DE,HL
; 227.	                    if(FileLengthLeft<=0)
	PUSH	BC
	PUSH	HL
	LD	BC,0
	LD	L,C
	LD	H,B
	CALL	LWRD ?SL_CMP_L03
	JR	C,?0075
?0074:
; 228.	                    { 
; 229.	                        g_reader_vars.g_txt.PrevSeek=0;
	LD	(g_reader_vars+55),HL
	LD	(g_reader_vars+57),BC
; 230.	                        g_reader_vars.g_txt.CurrentSeek=0;
	LD	(g_reader_vars+59),HL
	LD	(g_reader_vars+61),BC
; 231.	                        g_reader_vars.g_txt.BufSector=0;   
	LD	(g_reader_vars+63),HL
; 232.	                    }     
; 233.	                    else
	JR	?0076
?0075:
; 234.	                    { 
; 235.	                     ToPrevScreenPosition(&g_reader_vars.g_txt);       //回上一屏              
	CALL	LWRD ?0084
?0076:
; 236.	                    }     
; 237.	                   
; 238.	                    return key;
	LD	L,(IX-17)
	LD	H,B
; 239.	                }
?0077:
	LD	SP,IX
	POP	IX
	POP	IY
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0073:
?0071:
?0014:
; 240.	        } 
; 241.	        //恢复保存设备状态
; 242.	        SetPenColor(oldDC_sav.PenColor);
	LD	C,(IX-9)
	LD	B,(IX-8)
	LD	E,(IX-11)
	LD	D,(IX-10)
	CALL	LWRD SetPenColor
; 243.	        SetBackgdColor(oldDC_sav.BackgdColor);     
	LD	HL,19
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	LWRD SetBackgdColor
; 244.	    }
; 245.	}
	JP	LWRD ?0008
?0084:
	LD	DE,g_reader_vars+49
	LD	A,BYTE3 ToPrevScreenPosition
	LD	HL,LWRD ToPrevScreenPosition
	JP	LWRD ?BANK_CALL_DIRECT_L08
	RSEG	UDATA0
Stop_display:
	DEFS	1
count_autoplay:
	DEFS	1
Delaytime:
	DEFS	1
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -