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

📄 main_ext.asm

📁 中文电子词典 详细 中文电子词典
💻 ASM
📖 第 1 页 / 共 2 页
字号:
; 函数功能: 闹铃检测
; 输入参数: SysF.@alarmon_bit
; 输出参数: 
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@@Alarm_Timer_Chk:
	R0 = SysF
	R1 = BTST.@alarmon_bit R0 
	JNZ	@F
	RETFF
@@:
	R0 = BCLR.@alarmon_bit R0
	R0 = BCLR.@votage_event R0	//CLR BATTLE ALARM FLAG
	SysF = R0
	;启动闹铃程序
	CALLFF	@@Play_Alarm_Sound
	RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 响应闹铃
; 输入参数: 
; 输出参数: 
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@@Play_Alarm_Sound:
	CTASK_RUN	@@P_Alarm_EVENT,@@Alarm_timer_Chk_Ret,5,0,0,0
	RETFF
@@Alarm_timer_Chk_Ret:
	X0 = @SysRambk
	RAMBK = X0
	GUI_Cls
	R0 = eflag
	R0 = BSET.bReDraw R0
	eflag = R0
	RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 放音/WAIT检测
; 输入参数: EFLAG/PF..CJP1/CJP2/CJPW4...
; 输出参数: PF
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
STPMD	EQU	2
Cpu_WAIT_Mode	MACRO
	DISGIE
	NOP
	R0 = PCR
	R0 =BCLR.STPMD	R0
	PCR = R0
	NOP
	NOP
	NOP
	GIE
	ENDM
@@PLAYEND_WAITCHK:
	R0=EFLAG
	R0=R0 AND R0
	JNZ	@@PLAYEND_WAITCHKRt
	R0=PF
	R0=R0 AND R0
	JNZ	@@PLAYEND_CHKFLAG
	;CJPW4	@@PLAYEND_WAITCHKST
	;CJP1	@@PLAYEND_WAITCHKST
	JMP	@@SYSMODE_WAIT
@@PLAYEND_CHKFLAG:
	R0 = auto_power_set		;重置关机时间
	auto_power_timer = R0
	R0=PF
	R1=BTST.@@play_w4_flag R0
	JZ	@F
	CJPW4	@@PLAYEND_WAITCHKRt
	R0=PF
	R0=BCLR.@@play_w4_flag R0
	PF=R0
@@:
	R0=R0 AND R0
	JZ	@F
	CJP1	@@PLAYEND_WAITCHKRt
	R0=0
	PF=R0
@@:
@@PLAYEND_WAITCHKST:
	PLAY_TAIL_RE
	JMP	@@SYSMODE_WAIT
@@PLAYEND_WAITCHKRt:
	RETFF
@@SYSMODE_WAIT:
	;R0 = P2_INIT
	;P2 = R0
	;;ADD/MOD EBCR(LSB) 04-11-16 9:47
	;R0=EBCR
	;PUSH	R0
	;R0=@Data_Mode_8bit	;SW TO 8BITS MODE
	;EBCR=R0
	;NOP
	;Cpu_WAIT_Mode
	;NOP
	;POP	R0
	;EBCR=R0
	RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 热键检测
; 输入参数: keyno
; 输出参数: 
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
HtKyPre	EQU	1
@@Hot_Key_Check:
	R0 = eflag
	R1 = BTST.bKdown R0
	JNZ	@F
	RETFF
@@:
	R0 = SysF1
	R1 = BTST.@votage_event R0 
	JZ @f
	retff
@@:	
IF	!HtKyPre
	CALLFF	HotKyPreChk
	R1 = R1 AND R1
	JZ	@F
	RETFF
@@:
ENDIF
	R0 = sysF1
	R1 = BTST.@HotSwitch R0			;0:Host,1:minor
	JNZ	@F
	X0 = Hot_Key_Table$h
        Ix1bkram = x0
        X0 = Hot_Key_Table$l
        Ix1 = x0
        callff      @@Keydeal_function
	RETFF
@@:
	X0 = Hot_Key_Table2$h
        Ix1bkram = x0
        X0 = Hot_Key_Table2$l
        Ix1 = x0
        callff      @@Keydeal_function
	RETFF

Hot_Key_Table:
	DW	k_ec,	Hot_Key_Ec$l,Hot_Key_Ec$h
	DW	k_ce,	Hot_Key_Ce$l,Hot_Key_Ce$h
	DW	k_rem,	Hot_Key_RemWd$l,Hot_Key_RemWd$h
	DW	k_lstn,	Hot_Key_Lstn$l,Hot_Key_Lstn$h
	DW	k_note,	Hot_Key_Note$l,Hot_Key_Note$h
	DW	k_time,	Hot_Key_Tim$l,Hot_Key_Tim$h	
	DW	k_cal,	Hot_Key_Cal$l,Hot_Key_Cal$h
	DW	k_menu,	Hot_Key_Menu$l,Hot_Key_Menu$h
	;DW	k_Rem,	SYS_TestProgram$L,SYS_TestProgram$h
	DW	k_null
Hot_Key_Table2:
	DW	k_ec,	Hot_Key_Ec$l,Hot_Key_Ec$h
	DW	k_ce,	Hot_Key_Ce$l,Hot_Key_Ce$h
	DW	k_rem,	Hot_Key_RemWd$l,Hot_Key_RemWd$h
	DW	k_lstn,	Hot_Key_Lstn$l,Hot_Key_Lstn$h
	DW	k_note,	Hot_Key_Note$l,Hot_Key_Note$h
	DW	k_time,	Hot_Key_Tim$l,Hot_Key_Tim$h	
	DW	k_cal,	Hot_Key_Cal$l,Hot_Key_Cal$h
	DW	k_menu,	Hot_Key_Menu$l,Hot_Key_Menu$h
	;DW	k_Rem,	SYS_TestProgram$L,SYS_TestProgram$h
	DW	k_null
SYS_TestProgram:
	CALLFF	SYS_TestProEntr
	RETFF
SYS_TestProEntr:
	CTASK_RUN	@@SysTstEVENT,SYS_TestProgram_Ret,16,0,0,0
	RETFF
SYS_TestProgram_Ret:
	X0 = @SysRambk
	RAMBK = X0
	GUI_Cls
	R0 = eflag
	R0 = BSET.bReDraw R0
	eflag = R0
	RETFF

Hot_Key_Menu:
	CALLFF	init_key_board
	R0 = k_null
	keyno = R0
	R0 = eflag
	R0 = BCLR.bKdown R0
	eflag = R0
	R0=key_flag
	R0=BCLR.@kSysShCut R0
	key_flag=R0
	R0 = StudyCnt
	JMP	@@Hot_Key_Check_Ret_
Hot_Key_Ec:
	CALLFF	init_key_board
	R0 = 1
	key_buf = R0
	R0 = 9	//'1'
	key_buf+2 = R0
	R0 = MenuDicCnt
	JMP	@@Hot_Key_Check_Ret
Hot_Key_Ce:
	CALLFF	init_key_board
	R0 = 1
	key_buf = R0
	R0 = 25	//'2'
	key_buf+2 = R0
	R0 = MenuDicCnt
	JMP	@@Hot_Key_Check_Ret
Hot_Key_Note:
	CALLFF	init_key_board
	R0 = 1
	key_buf = R0
	R0 = 9	//'1'
	key_buf+2 = R0
	R0 = NoteBookCnt
	JMP	@@Hot_Key_Check_Ret
Hot_Key_Cal:
	CALLFF	init_key_board
	R0 = 1
	key_buf = R0
	R0 = 25	//'2'
	key_buf+2 = R0
	R0 = CaculatorCnt
	JMP	@@Hot_Key_Check_Ret
Hot_Key_Tim:
	CALLFF	init_key_board
	R0 = 1
	key_buf = R0
	R0 = 17	//'3'
	key_buf+2 = R0
	R0 = TimeCnt
	JMP	@@Hot_Key_Check_Ret
Hot_Key_Lstn:
	CALLFF	init_key_board
	R0 = 1
	key_buf = R0
	R0 = 32	//'4'
	key_buf+2 = R0
	R0 = StudyCnt
	JMP	@@Hot_Key_Check_Ret
Hot_Key_RemWd:
	CALLFF	init_key_board
	R0 = 2
	key_buf = R0
	R0 = 9	//'1'
	key_buf+2 = R0
	R0 = 17	//'3'
	key_buf+3 = R0
	R0 = StudyCnt
	JMP	@@Hot_Key_Check_Ret
@@Hot_Key_Check_Ret:
	R1=key_flag		//SET Shortcut Entry
	R1=BSET.@kSysShCut R1
	key_flag=R1
@@Hot_Key_Check_Ret_:
	PUSH	R0
	play_tail_RE
	R0=0
	PF=R0
	CLRCURSOR
	R0=SysF1
	R0=BTOG.@HotSwitch R0
	SysF1=R0
	
	R1 = SysF
	R1 = BCLR.bit_help R1
	SysF = R1
	POP	R0
	CALLFF	@@Create_Root_Task
	CALLFF	_TASK_RunTask
	RETFF

;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 
; 输入参数: 
; 输出参数: 
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
HotKyPreChk:
IF	HtKyPre
	R1=HtKy_SAVE
	R1=X0 XOR R1
	JZ	HotKyPreChkRt
	HtKy_SAVE=X0	//SAVE HOTKEY NO
	R0=SysF1
	R0=BCLR.@HotSwitch R0
	SysF1=R0
HotKyPreChkRt:
	RETFF	
ELSE
	R0=KEYNO
	R1=HtKy_SAVE
	R1=R0 XOR R1
	JZ	HotKyPreChkRt
	R1=k_ec
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	R1=k_cc
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	R1=k_exam
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	R1=k_book
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	R1=k_note
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	R1=k_cal
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	R1=k_menu
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	R1=k_rem
	R1=R0 XOR R1
	JZ	HotKyPreChk_RESET
	JMP	HotKyPreChkRt
HotKyPreChk_RESET:
	HtKy_SAVE=R0	//SAVE HOTKEY NO
	R0=SysF1
	R0=BCLR.@HotSwitch R0
	SysF1=R0
HotKyPreChkRt:
	RETFF
ENDIF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 
; 输入参数: 
; 输出参数: 
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@@Init_All_FunCtion:
;---------初始化LCD------------
	sofeware_delay_		50	;延时200ms
	CALLFF	init_key_board		;初始化键盘
	callff	_LCDOff			;LCD Off
	sofeware_delay_		25	;延时200ms
	callff  _init_lcd_ctl		;LCD初始化
	callff	_LCDOn			;LCD ON
	PLAY_TAIL_RE
	;;;TEST
	callff	_set_lcd_
	GUI_CLR_ALL_ICON
	callff	_set_all_icon
	GUI_CLR_ALL_ICON
	GUI_Cls
	;;;TEST END
;---------初始化系统设置--------
	R0 = 0X0C41		;;初始化系统设置
	sys_set_flag = R0
	R0 = 0x0002		;;关机时间设定
	PowerOffSetFlag = R0
	R0=0X030		;6TH OPEN-PICTURE,10th OPEN-MUSIC
	PowerOnSetFlag=R0	
	R0=2
	bfont=R0
	CALLFF	_set_font_arg		;设置字体
	R0=@Auto_Off_Timer_Mid
	auto_power_set=R0
	auto_power_timer=R0
	R0=SysF
	R0=BSET.@alarmmode_bit R0
	SysF=R0
	;;;ADD Start
;---------学习设置初始化--------
	R0=1 
	StudyWhichGroup=R0	;设置组别
	R0=0011000010000000b	;初中,每组单词30,放音,自动,浏览时间3s
	StudyWordType=R0
	R0=0x1000		;SET 汇率换算默认值
	exchange_0_rate=R0
	;;;ADD End
	RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 用户初始化
; 输入参数: 
; 输出参数: 
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@@UserFunInit:
	callff	SchedUpdateChk
@@UserAppInit:
	sofeware_delay_		25	;延时200ms
	CALLFF	init_key_board		;初始化键盘
	CALLFF	_LCDOFF			;LCD Off
	sofeware_delay_		5	;延时40ms
	CALLFF  _init_lcd_ctl		;LCD初始化
	CALLFF	_LCDON			;LCD ON
	CALLFF	SysLcdConstAdjust
	CALLFF	SysVolumeSet		;SET VOLUME
	CALLFF	W_SetPassWordIcon	;SET PASS ICON
	R0=2
	bfont=R0
	CALLFF	_set_font_arg		;设置字体
	R0=auto_power_set
	auto_power_timer = R0
	;SET SYS INIT FLAG BIT
	R0=SysF				;;CLR HELP DISABLE FLAG
	R0=BCLR.bit_help R0		
	R0=BCLR.bit_poweron R0		;CLR AUTO SHUT FLAG		
	SysF=R0
	
	R0=sysf1
	R0=BCLR.@votage_event R0	;luqiang clear voltage event run flag
	SysF1= R0
	RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 用户启动界面初始化设置
; 输入参数: sys_set_flag
; 输出参数: R0:INIT MENU INDEX
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
SUI_Init:
	CALLFF	SysVolumeSet		;RESET VOLUME
	CALLFF	init_key_board
	R0=sys_set_flag
	R1=0x0c
	R0=R0 AND R1
	JZ	@@SUI_MainMenu
	R1=0x04
	R1=R0-R1
	JZ	@@SUI_NativeClock	;本地时间	
	R1=0x0c
	R1=R0-R1
	JZ	@@SUI_MainMenu	;总目录	
@@SUI_ECDICT:		;英汉词典
	R0 = 1	;1
	key_buf = R0
	R0 = 9	//'1'
	key_buf+2 = R0
	R0=key_flag
	R0=BSET.@kSysShCut R0
	key_flag=R0
	R0 = MenuDicCnt		//dictionary Menu
	JMP	SUI_Init_EXIT
@@SUI_NativeClock:
	R0 = 1	;1
	key_buf = R0
	R0 = 17	//'3'
	key_buf+2 = R0
	R0=key_flag
	R0=BSET.@kSysShCut R0
	key_flag=R0
	R0 = TimeCnt		//CLOCK Menu
	JMP	SUI_Init_EXIT
@@SUI_MainMenu:
	R0=key_flag
	R0=BCLR.@kSysShCut R0
	key_flag=R0
	R0 = 0		//INIT MENU
SUI_Init_EXIT:
	RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 通用键值处理函数
; 输入参数: Ix1,Ix1bkram,keyno
; 输出参数: 执行对应键值程序,返回
; 占用资源: 
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@@Keydeal_function:
	PUSH	RAMBK
	X0 = @SysRambk
	RAMBK = X0
	X0 = keyno
	POP	RAMBK
	R1 = EBCR
	PUSH	R1
	R0 = @Data_Mode_16bit		;16 bit mode,0xFFFF
	EBCR = R0
	Y0 = 0xFF
@@:
	R0 = RAM(Ix1)
	R1 = R0-Y0
	Jz	@@Keydeal_function_ret
	R0 = R0 -X0
	JZ	@F
	R0 = Ix1
	R1 = 3
	R0 = R0+R1
	Ix1 = R0
	R0 = Ix1BkRam
	R1 = 0
	R0 = R0+R1+C
	Ix1BkRam = R0
	JMP	@B
@@:
	ram_ix1_to_r1
	ram_ix1_to_x0
	Y0 = RAM(Ix1)
	POP	R1
	EBCR = R1
	PUSH	X0
	PUSH	Y0
	RETFF
@@Keydeal_function_ret:
	POP	R1
	EBCR = R1
	RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 函数功能: 延时R1毫秒函数子程序
; 输入参数: R1,延时毫秒数
; 输出参数: 
; 占用资源: R0,R1
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
@Delay_XX_mSec:
        R0=0x200
@@:
        R0=R0-1
        JFGT    @B
	R1 = R1-1
	JFGT	@Delay_XX_mSec
        RETFF
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
;
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
include		Menu\test.asm
include		bios\SysTest.asm
include		GenFun\sst\initial_flash.asm
include 	bios\bios.asm
include		menu\menu.asm
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 通用函数库-输入法、文件管理、通用编辑、GUI接口
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
include		GenFun\genfun.h
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 菜单结构-时间、网络、计算、游戏、系统设置、名片、记事、行程
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
include		menu\mdir.h
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 字库
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
include 	GenFun\gui\font.h
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 帮助文件夹
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
include		help\help.asm
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 资料文件夹
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
MAIN_EXTDATA:
include         ziliao\ziliao.asm

;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 	MRC data file area
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
MAIN_EXTDATA1:
include   	include\ins\insdata.h
include		Menu\xuekedata.asm
include		Menu\Audition\AuditData.asm
include		Menu\game\piano\pianoData.asm
include		Menu\SampleEng\SampleEngData.asm
include		Menu\talkScene\TalkSceneData.asm
MAIN_EXTDATA2:
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
; 	dictionary data file area
;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
include		Menu\dict\include\encode.asm
include		Menu\dict\include\data_tab.asm
MAIN_EXTEND:

⌨️ 快捷键说明

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