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

📄 decodermenu.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	NAME	decodermenu(17)
	RSEG	CODE(0)
	RSEG	CONST(0)
	RSEG	UDATA0(0)
	EXTERN	BankSwitch
	EXTERN	DRV_DetectUD
	EXTERN	DecodeOnePage
	EXTERN	LoadData
	PUBLIC	MenuInReader
	PUBLIC	MenuStrID
	PUBLIC	MenuStrIDWithCard
	EXTERN	fselGetLocation
	EXTERN	fselInit
	EXTERN	fselSetMode
	EXTERN	g_DiskStateFlag
	EXTERN	g_comval
	EXTERN	g_menu_active
	EXTERN	g_reader_vars
	PUBLIC	list
	EXTERN	need_sel_file
	PUBLIC	play_text
	PUBLIC	slider
	PUBLIC	sub_list
	EXTERN	ui_delete
	EXTERN	ui_delete_all
	EXTERN	ui_directory
	EXTERN	ui_err_msg
	EXTERN	ui_popup_list
	EXTERN	ui_show_msg
	EXTERN	ui_slider
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?S_S_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	CODE
MenuInReader:
; 1.	/****************************************
; 2.	* File Name: DecoderMenu.c
; 3.	* Write By : Jack lee
; 4.	* Date     :2004-9-29 15:22
; 5.	*
; 6.	*
; 7.	*****************************************/
; 8.	
; 9.	
; 10.	
; 11.	
; 12.	#include   "actos.h"
; 13.	#include   "ap_common.h"
; 14.	#include   "display.h"
; 15.	#include   "ap_reader.h"
; 16.	#include "bookmark.h"
; 17.	extern void DecodeOnePage(WORD top,WORD bottom,BYTE type, BYTE string_id);
; 18.	extern bool g_menu_active;  
; 19.	extern bool need_sel_file;  
; 20.	extern BYTE g_DiskStateFlag; 
; 21.	pop_up_list_t list;
; 22.	pop_up_list_t sub_list;
; 23.	slider_t slider;
; 24.	const WORD  MenuStrID[5]={MSTOP1,JPEGSET,MSTOP3,MSTOP4,MSTOP5};//,VSTOPM4};
; 25.	const WORD  MenuStrIDWithCard[6]={MSTOP1,MSTOP2,JPEGSET,MSTOP3,MSTOP4,MSTOP5};
; 26.	const WORD play_text[2]={JPEGSET1, JPEGSET2};
; 27.	
; 28.	int MenuInReader(void)
; 29.	{
	PUSH	BC
	PUSH	DE
	PUSH	IY
	PUSH	IX
	PUSH	AF
; 30.	      int   result,active;
; 31.	      bool  g_card_ok=FALSE;
; 32.	    result = DRV_DetectUD(1);  //检查是否有卡
	LD	E,1
	CALL	LWRD DRV_DetectUD
	LD	C,A
	LD	B,0
	LD	L,B
; 33.	    if(result == 0x020)
	LD	H,B
	ADD	HL,SP
	LD	(HL),B
	LD	A,32
	XOR	C
	JR	NZ,?0003
?0002:
; 34.	        g_card_ok = TRUE;
	LD	(HL),1
?0003:
; 35.	        
; 36.	    list.active=0;     
	LD	L,B
	LD	H,B
	LD	(list+4),HL
; 37.	    list.headid = STOPMENU;
	LD	HL,395
	LD	(list+6),HL
; 38.	    if(g_card_ok)
	LD	L,B
	LD	H,B
	ADD	HL,SP
	XOR	A
	OR	(HL)
	JR	Z,?0005
?0004:
; 39.	    {
; 40.	        list.total = 6;
	LD	HL,6
	LD	(list+2),HL
; 41.	        list.strid = MenuStrIDWithCard;
	LD	HL,MenuStrIDWithCard
	JR	?0072
; 42.	    }
; 43.	    else
?0005:
; 44.	     {
; 45.	         list.total=5;
	LD	HL,5
	LD	(list+2),HL
; 46.	         list.strid=MenuStrID;
	LD	HL,MenuStrID
?0072:
	LD	(list),HL
?0006:
; 47.	     }
; 48.	         list.string_id = g_comval.langid;
	LD	A,(g_comval+12)
	LD	(list+8),A
; 49.	
; 50.	         result = ui_popup_list(&list, NULL);
	LD	C,B
	PUSH	BC
	PUSH	BC
	LD	DE,list
	LD	A,BYTE3 ui_popup_list
	LD	HL,LWRD ui_popup_list
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	PUSH	HL
	POP	IX
; 51.	
; 52.	       if (g_card_ok)
	LD	L,C
	LD	H,B
	ADD	HL,SP
	XOR	A
	OR	(HL)
	JR	Z,?0010
?0007:
; 53.	         {
; 54.	
; 55.	          if (DRV_DetectUD(1) != 0x20)
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	Z,?0010
?0009:
; 56.	           {
; 57.	             g_card_ok=FALSE;
; 58.	             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
; 59.	             g_reader_vars.location.disk = 'C';
	LD	A,67
	LD	(g_reader_vars+6),A
; 60.	             //return RESULT_SD_OUT;
; 61.	             return RESULT_SD_OUT;
	LD	HL,54
; 62.	            }
	JP	LWRD ?0056
?0010:
?0008:
; 63.	         }
; 64.	
; 65.	       if (result != 0)
	PUSH	IX
	POP	HL
	LD	A,L
	OR	H
	JP	NZ,?0033
?0011:
; 66.	            return result;
?0012:
; 67.	
; 68.	        BankSwitch((unsigned long)FSELInit >> 16);
	LD	E,BYTE3 fselInit
	CALL	LWRD BankSwitch
; 69.	        fselGetLocation(& g_reader_vars.location);
	CALL	LWRD ?0087
; 70.	
; 71.	 if(!g_card_ok)
	LD	L,B
	LD	H,B
	ADD	HL,SP
	XOR	A
	OR	(HL)
	LD	DE,(list+4)
	JP	NZ,?0014
?0013:
; 72.	    {
; 73.	      switch (list.active)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	0
	DEFW	4
	DEFW	?0055
	DEFW	?0016
	DEFW	?0019
	DEFW	?0026
	DEFW	?0029
?0016:
; 74.	        {
; 75.	            case 0:
; 76.	              if (g_reader_vars.location.disk == 'H')
	LD	A,(g_reader_vars+6)
	CP	72
	JR	NZ,?0018
?0017:
; 77.	               {
; 78.	                 g_reader_vars.location.disk = 'C';
	LD	A,67
	LD	(g_reader_vars+6),A
; 79.	                 FSELInit(FSEL_TYPE_TXT, FSEL_ALL_REPEATALL,FSEL_TYPE_COMMONDIR, g_reader_vars.location.disk);
	LD	C,A
	PUSH	BC
	LD	C,B
	PUSH	BC
	LD	C,4
	LD	E,C
	LD	A,BYTE3 fselInit
	LD	HL,LWRD fselInit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 80.	                 fselGetLocation(& g_reader_vars.location);   
	CALL	LWRD ?0087
; 81.	                 need_sel_file=TRUE;  
	LD	A,1
	LD	(need_sel_file),A
?0018:
; 82.	               }
; 83.	              BankSwitch((unsigned long)DecodeOnePage >> 16);
	LD	B,0
	LD	E,BYTE3 DecodeOnePage
	CALL	LWRD BankSwitch
; 84.	              result=ui_directory(&g_reader_vars.location, FSEL_TYPE_TXT, g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	CALL	LWRD ?0088
	POP	AF
; 85.	               FSELSetMode(FSEL_ALL_SEQUENCE);
	CALL	LWRD ?0089
; 86.	        BankSwitch((unsigned long)LoadData >> 16); 
	LD	E,BYTE3 LoadData
	CALL	LWRD BankSwitch
; 87.	
; 88.	               g_menu_active = FALSE;
	XOR	A
	LD	(g_menu_active),A
; 89.	            g_reader_vars.g_txt.PrevSeek=0;
	JP	LWRD ?0051
; 90.	            g_reader_vars.g_txt.CurrentSeek=0;
; 91.	            g_reader_vars.g_txt.BufSector=0;                       
; 92.	             break;
?0019:
; 93.	
; 94.	          case 1:
; 95.	            sub_list.strid = play_text;
	LD	HL,play_text
	LD	(sub_list),HL
; 96.	            sub_list.total = 2;
	LD	HL,2
	LD	(sub_list+2),HL
; 97.	            sub_list.active = g_reader_vars.playflag;
	LD	BC,(g_reader_vars+2)
	LD	B,H
	LD	(sub_list+4),BC
; 98.	            sub_list.string_id = g_comval.langid;
	LD	A,(g_comval+12)
	LD	(sub_list+8),A
; 99.	            sub_list.headid = MenuStrID[list.active];
	EX	DE,HL
	ADD	HL,HL
	LD	BC,MenuStrID
	ADD	HL,BC
	LD	B,(HL)
	INC	HL
	LD	H,(HL)
	LD	L,B
	LD	(sub_list+6),HL
; 100.	            result = ui_popup_list(&sub_list, NULL);
	LD	C,D
	PUSH	BC
	LD	L,C
	LD	H,C
	PUSH	HL
	LD	DE,sub_list
	LD	A,BYTE3 ui_popup_list
	LD	HL,LWRD ui_popup_list
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	PUSH	HL
	POP	IX
; 101.	            if(result!=0) return result;
	LD	A,L
	OR	H
	JP	NZ,?0033
?0020:
?0021:
; 102.	            active=sub_list.active;
	LD	HL,(sub_list+4)
; 103.	            g_reader_vars.playflag=active;
	LD	A,L
	LD	(g_reader_vars+2),A
; 104.	            if(active==1)
	LD	A,1
	XOR	L
	OR	H
	JP	NZ,?0046
?0022:
; 105.	            {
; 106.	                       slider.min = 1;
	LD	HL,1
	LD	(slider+2),HL
; 107.	                       slider.max = 10;
	LD	L,10
	LD	(slider+4),HL
; 108.	                       slider.step = 1;
	LD	L,1
	LD	(slider+8),HL
; 109.	                       slider.value = g_reader_vars.autoplaytime;
	LD	BC,(g_reader_vars+3)
	LD	B,H
	LD	(slider+6),BC
; 110.	                       slider.title = JPEGSET2;
	LD	HL,589
	LD	(slider),HL
; 111.	                       slider.string_id=g_comval.langid;
	LD	A,(g_comval+12)
	LD	(slider+10),A
; 112.	                       result = ui_slider(&slider, NULL);
	LD	C,B
	PUSH	BC
	PUSH	BC
	LD	DE,slider
	LD	A,BYTE3 ui_slider
	LD	HL,LWRD ui_slider
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	PUSH	HL
	POP	IX
; 113.	                       if(result != 0) return result;
	LD	A,L
	OR	H
	JP	Z,?0048
?0024:
	JP	LWRD ?0033
?0025:
; 114.	                       g_reader_vars.autoplaytime = (char)slider.value;
?0023:
; 115.	            }
; 116.	            return RESULT_IGNORE;
; 117.	 
; 118.	
; 119.	         case 2:
?0026:
; 120.	          result=ui_delete(&g_reader_vars.location,DELETE_FILE,g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,B
	LD	DE,g_reader_vars+6
	LD	A,BYTE3 ui_delete
	LD	HL,LWRD ui_delete
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	PUSH	HL
	POP	IX
; 121.	          if(result==RESULT_IGNORE)
	LD	A,52
	XOR	L
	OR	H
	JP	NZ,?0051
?0027:
; 122.	           result=0;
	JP	LWRD ?0085
?0028:
; 123.	            g_reader_vars.g_txt.PrevSeek=0;
; 124.	            g_reader_vars.g_txt.CurrentSeek=0;
; 125.	            g_reader_vars.g_txt.BufSector=0;                       
; 126.	          break;
?0029:
; 127.	          
; 128.	        case 3:
; 129.	            FSELSetMode(FSEL_ALL_REPEATALL);
	LD	E,4
	CALL	LWRD ?0090
; 130.	            result = ui_delete_all(&g_reader_vars.location, DELETE_TXT, g_comval.langid); 
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,4
	LD	DE,g_reader_vars+6
	LD	A,BYTE3 ui_delete_all
	LD	HL,LWRD ui_delete_all
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	PUSH	HL
	POP	IX
; 131.	           if(result==RESULT_IGNORE)result=0;   
	LD	A,52
	XOR	L
	OR	H
	JP	NZ,?0033
?0030:

⌨️ 快捷键说明

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