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

📄 wordtest.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
字号:
;;========	复习---英译汉 初始化界面	===========
fenlei_total_word_tab:
	db  12,7,30,31,30,53,24,25,23,36,13,15,24,32,25,26,22
	db  26,30,33,16,21,37,19,23,22,15,35,22,25,13,27,24,21
	db  24,20,22,21,24,26,18,14,17,21,18,15,7,14,15,17,16
	db  48,14,23,16,32,19,35,31,40,19,32,28,35,21,34,28,21
	db  28,24,18,16,24,27,26,25,96,13,14,12,19,29,30,13,8
	db  28,28,30,26,15,16,26,25,31,43,28,29,15,27,14,19,15
	db  23,28,29,37,96,86,104,52,26,28,109

goe2cstar:
	lda	#3
	sta	ItemNo

	stz	<newflag
	lda	#<goe2cstar-1
	sta	HelpRtPrc
	lda	#>goe2cstar-1
	sta	HelpRtPrc+1
	jsr	call_goe2c_c2e_help

	stz	word_counter
	stz	temp_goe2c_flag
	stz	<textscreenno1
	jsr	get_first_word_address		;;查找第8个studyrage首单词的地址

	lda	studyrage			;;当前学习内容
	cmp	#studyragemax			;;学习内容的最大数
	beq	goe2c_star_not_fen_Next

	cmp	#fenlei_study
	bcc	goe2c_star_not_fen		;;studyrage>8为分类库,<=8非分类库

	jsr	count_fenlei_word		;;计算每组单词个数
	jsr	fenlei_address			;;找到分类库地址并显示
	llight_lcd_icon	icon_downpage
	jmp	go_to_lmain

goe2c_star_not_fen:
	jsr	get_first_word_address_0	;;查找第0-7个studyrage的首单词地址
	lda	<temp				;; putsio/temp=01
	bne	goe2c_star_not_fen_Next
	jmp	have_finish

goe2c_star_not_fen_Next:
	lcls
	stz	temp_goe2c_flag			;;第一次进入复习填空中
	stz	temp_study4			;;置有无下屏标志=1无
	lda	#>PageXaddrbuff_study		;;初始化存放屏数的buffer
	sta	<insh
	lda	#<PageXaddrbuff_study		;;保存6字节单词地址,长度未知=256?
	sta	<insl

	ldy	#255
	jsr	clearram			;;入口insh,insl,y
	stz	textpagenum_study		;;初始化存放屏数的变量

	|-----	jsr	push_inf_bak			;;保存解压前的信息
	|	jsr	unpress_english			;;
	|						;;该子程序先调用getchainLen
	|						;;function:得到链长chainlen,并把地址指向词条
	|						;;input:此单词的首地址<indxd &<bitcount
	|						;;output:<ChainLenL & ChainLenH <indxd &<bitcount
	|						;;再使用Lextract_word
	|						;;function:extract one word
;注:此段程序似乎无实际作用(但不知对分类库及生词库有无影响,未测试)
	|						;;input:大库的地址<indxd &<Drr &开始字节数bitcount
	|						;;output:结果存入cdict_result ;<bitcount ;<bitcmp
	|
	|
	|	jsr	extract_and_show_all		;;调用英汉程序解压,解压出英文放wordlocation中
	|	jsr	showEnglishandphone		;;显示英文和音标(完整)
	|	lda	<temp				;;putsio/temp=00
	|	beq	?1
	|	jmp	second_into_goe2c
	|
	|?1:	jsr	extract_and_show_all_00		;;调用英汉程序解压中文
	|	lda	<temp				;;putsio/temp=01
	|	bne	?2
	|	jmp	second_into_goe2c
	|
	|?2:	jsr	pop_inf_bak			;;复原解压前的信息
	|-----
	
	jsr	unpress_english			;;解压出英文放wordlocation中
	jsr	extract_and_show_all		;;调用英汉程序解压和显示英文音标
	jsr	showEnglishandphone		;;显示英文和音标
	jmp	go_to_lmain



goe2ckeyin:	;;复习---英译汉 键控
	ldy	#0ffh
goe2ckeyin_loop:
	iny
	lda	goe2c_key_table,y
	bmi	end_goe2ckeyin
	cmp	<KeyNo
	bne	goe2ckeyin_loop
	tya
	asl
	tay
	lda	goe2ckeyin_program+1,y
	pha
	lda	goe2ckeyin_program,y
	pha
	rts
end_goe2ckeyin:
	jmp	go_to_lmainu

goe2c_enterkey:
	stz	<newflag
	lda	temp_goe2c_flag
	beq	first_into_goe2c		;;第一次,没显示中文
	jmp	second_into_goe2c
first_into_goe2c:
	lda	#1
	sta	temp_goe2c_flag			;;此标志=1时,才会进入下一个单词

	lda	studyrage
	cmp	#studyragemax
	beq	?1
	cmp	#fenlei_study
	bcs	goe2c_fen_lei_enter

?1:	jsr	store_pageXaddr_study		;;function:保存每页的首地址
						;;input:<indxd & bitcount
						;;output:存入PageXaddrbuff 6个字节一组
	lda	screenmode
	cmp	#4
	beq	?_4
	bra	?_5
?_4:	jsr	tiao_chuji_mode4		;;从第2行开始显示
	bra	?_go_to_extract
?_5:	jsr	tiao_chuji_mode5_9		;;???可能是从第4行开始显示

?_go_to_extract:
	jsr	extract_and_show_all_00		;;调用英汉程序解压中文
						;;入口curymax_bak,curx,cury star_textbuffor end_textbuffor
						;;出口showwordlocation
	llight_lcd_icon	icon_downpage
	jsr	updatejieshiyinbiao		;;该子程序先调用lupdatescreen,再调用Show_jieshiyinbiao
						;;function:显示解释的音标里出现的汉字(适用各种模式)
						;;input: yinbiaoinfbuff & jieshiyinbiaobuff
						;;output:显示在<OX OY的位置上
	jmp	go_to_lmainu

goe2c_fen_lei_enter:
	lda	#<showwordlocation
	sta	<indl
	lda	#>showwordlocation
	sta	<indh
	jsr	restore_inf_fenlei		;;复原解压前的信息
	ldy	#2
	ldx	#0
goe2c_fen_lei_enter_0:
	jsr	indxd_to_drrhl			;;将<indxd+3,<indxd+2分别放入<drrh,<drrl
	lda	(<indxd)
	sta	(<ind)
	cmp	#0dh
	beq	goe2c_fen_lei_enter_end
	jsr	inc1_ind
	jsr	inc1_indxd
	inx					;;用来记录次数
	bra	goe2c_fen_lei_enter_0
goe2c_fen_lei_enter_end:
	cpx	#20
	beq	?1112
	dey
	cpy	#0
	beq	goe2c_fen_lei_enter_end_1
	jsr	inc1_ind
	jsr	inc1_indxd			;;<indxd++ include Drr
	bra	goe2c_fen_lei_enter_0
?1112:	dey
	cpy	#0
	beq	goe2c_fen_lei_enter_end_1
	jsr	inc1_indxd
	bra	goe2c_fen_lei_enter_0

goe2c_fen_lei_enter_end_1:
	lda	#0
	sta	(<ind)
	jsr	call_lsetscreen			;;lsetscreen 1
	lprint	showwordlocation		;;显示解释
	llight_lcd_icon	icon_downpage
	jmp	go_to_lmain

goe2c_esckey:
	jmp	studyload_0

goe2c_pgdownkey_new_word:
	jsr	current_addr_addc5
	jsr	get_new_word_address_again	;;???
	inc	word_counter
	jmp	goe2c_star_not_fen_Next

second_into_goe2c:				;;
	stz	<newflag
	stz	temp_goe2c_flag
	lda	studyrage
	cmp	#studyragemax
	bne	?1
	bra	goe2c_pgdownkey_new_word

?1:	cmp	#fenlei_study
	bcs	is_fen_lei_goe2c
	lda	word_counter
	cmp	#max_word
	bne	goe2c_not_finish

goe2c_have_finish:
	jmp	have_finish
goe2c_not_finish:
	inc	word_counter
	jsr	current_addr_addc_4	;;<indxd++,由此程序决定下一个单词的地址
	jmp	goe2c_star_not_fen

is_fen_lei_goe2c:
	lda	word_counter
	cmp	fenlei_total_word
	bne	?_not_end
	jmp	have_finish
?_not_end:
	inc	word_counter
	lda	#>showwordlocation
	sta	<indh
	lda	#<showwordlocation
	sta	<indl
	jsr	restore_inf_fenlei

	ldy	#2
?33:	jsr	indxd_to_drrhl			;;将<indxd+3,<indxd+2分别放入<drrh,<drrl
	lda	(<indxd)
	cmp	#0dh
	beq	?44
	jsr	inc1_indxd
	bra	?33
?44:	dey
	cpy	#0
	beq	?55
	jsr	inc1_indxd
	bra	?33
?55:	stz	wordlength
	jsr	inc1_indxd
	jsr	store_inf_fenlei		;;保存解压前的信息
?66:	jsr	indxd_to_drrhl			;;将<indxd+3,<indxd+2分别放入<drrh,<drrl
	lda	(<indxd)
	sta	(<ind)
	cmp	#0dh
	beq	endend
	jsr	inc1_ind
	inc	wordlength
	jsr	inc1_indxd
	bra	?66
endend:
	lda	#0
	sta	(<ind)
	jsr	call_lsetscreen			;;lsetscreen 1
	lprint	showwordlocation
	llight_lcd_icon	icon_downpage
	jmp	go_to_lmain

go_to_lmain:
	lmain

have_finish:
	lda	<gamestate_study
	cmp	#4
	bne	have_finish_00
	jmp	fill_have_finish
have_finish_00:
	jsr call_lsetscreen
	lda 	#>ds0bank
	sta 	<drrh
	lda 	#<ds0bank
	sta 	<drrl
	lda	ItemNo
	cmp 	#3
	beq 	?_e2c
	cmp 	#4
	beq 	?_c2e
	lprint not_next_word
	bra 	?all_to_here
?_e2c:
	lprint e2c_not_next_word
	bra 	?all_to_here
?_c2e:
	lprint c2e_not_next_word
?all_to_here:
	jsr	call_lupdatescreen
	jsr	delay1s
	jsr	delay1s
	jsr	delay1s
	jsr	delay1s
	jmp	studyload_0	

⌨️ 快捷键说明

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