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

📄 yyzd.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 2 页
字号:
; ***************************************************************************
; *     Project : Electronic Dictionary                                     *
; *        Date : 2003.9                                                    *
; *   File Name : YYZD.ASM                                                  *
; ***************************************************************************

        pw      128
        case    off
        externs on

        include ST2202.def      ; Include ST2100 I/O define.
        include Data.def        ; Data RAM define.
        include Bios.h
        include Graphics.h
        include Keydef.def
        include Graph.def
        include xyhaddr.h
        include ST2202.mac      ; Include ST2100 I/O define.

        include eedict.inc

;=============== Ram define ===============
InputLen        equ     _EE_CODE_SIZE+1
YYZDState       equ     InputLen+1
InvertItem      equ     InputLen+2
ItemNum         EQU     FData
;==========================================

;=============== CONSTANT DEFINE ==========
VIEWEXPLAINE    EQU     2
;==========================================

ds0  .section

	include	bookbmp.asm

dicenen_inputtittle:
        DB      '        英英词典',0dh
        db	'请输入英文:'
        DB      0dh,0dh,0dh
        DB      '[英]',0

EE_HELP_0:
        DB      "输入要查的英文",0DH
        DB      "[返回]返回",0

EE_HELP_1:
        DB      '上下键浏览.',0dh
        DB      '左右键浏览超过一行的单词.',0dh
        DB      '[确认]查看解释.',0dh
        DB      '[返回]返回.',0

EE_HELP_2:
        DB      '上下键浏览内容.',0dh
        DB      '翻页键浏览相邻词条.',0dh
        DB      '[返回]返回.',0

ps0d .section
bankno  equ  yy_zd_bank
       public     yy_zd_bank
       public     yy_zd_HSec
       public     yy_zd_Sec
       public     yy_zd_Min
       public     yy_zd_KeyDown
       public     yy_zd_KeyUp
       public     yy_zd_Timer
       public     yy_zd_KeyPress
       public     yy_zd_Load
       public     yy_zd_help

;       include en_en.asm

;=============== Load Function ==============
yy_zd_Load:
        jsr     KillEE_IN_BUFFER

	;startuart

	lda	#Ds0Help
	sta	<HelpOffset
        lda     #<EE_HELP_0
	sta	HelptextpL
        lda     #>EE_HELP_0
	sta	HelptextpH

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;        LSetScreen 1
;        Lprint  dicenen_inputtittle
;        lSetCur 0,2
;
;        stz	<InputLen
;        stz     <YYZDState
;LoadInit:
;        LscanF  10010100B
;
;        lda     <InputLen
;        sta     <CurX
;ExitWithUpDate:
;        jmp	jmp_LMAIN
;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        LSetScreen 1
        Lprint  dicenen_inputtittle
        jsr	CALL_LUpdateScreen

        lda     #45
        sta     <Ox
        lda	#0
        sta     <OY
        LOPrintImage    bookbmp

        stz	<InputLen
        stz     <YYZDState

        LscanF  10010100B
        lSetCur 0,2

        lda     <InputLen
        sta     <CurX

        jmp	jmp_LMAINU
LoadInit:
        LscanF  10010100B
        lda     <InputLen
        sta     <CurX
ExitWithUpDate:
        jmp	jmp_LMAIN


;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;================================================

yy_zd_KeyUp:
yy_zd_HSec:
yy_zd_Sec:
yy_zd_Min:
yy_zd_Timer:
yy_zd_help:
ExitWithoutUpDate:
        jmp	jmp_LMAINU

;================Key press ====================
PRESSFUNCKEY:
        LDA     <KEYNO
        CMP     #DOWNKEY
        BEQ     ?downkey
        cmp     #LeftKey
        beq     ?0
        cmp     #EscKey
        bne     ExitWithoutUpDate
        jsr     LJSR
        dw      fu_lu_bank
        dw      fu_lu_esckey_program-1

?0:
        lda     <CurX
        beq     ExitWithoutUpDate
        dec     <CurX
        dec     <InputLen
        bNE     ?1
	JMP	yy_zd_Load
?1:
        ldx     <CurX
        stz     EE_IN_BUFFER,x
        LSETSCREEN      3
        bra     YYZDFirstStep

?downkey:
        lda   <InputLen
        beq   ExitWithoutUpDate
        LEXITSCANF
        stz     <InvertItem
        lda     #1
        sta     <YYZDState

InvertWord:
        jsr	CALL_LUpdateScreen
        STZ     <OX
        lda     <InvertItem
        asl
        asl
        asl
        adc     #16
        sta     <OY
        LBlockInvert    159,8
        BRA     ExitWithoutUpDate

yy_zd_KeyPress:
        bbr0    <inputflag,PRESSFUNCKEY
        rmb0    <inputflag

        lda	<InputLen
        cmp     #19
        bcs     ExitWithoutUpDate

        lda     #<EE_HELP_1
	sta	HelptextpL
        lda     #>EE_HELP_1
	sta	HelptextpH

        LSETSCREEN      3

        LDY     <InputLen
        LDA     <CHARL
        STA     EE_IN_BUFFER,Y
        inc     <InputLen

YYZDFirstStep:
        LPRINT  EE_IN_BUFFER

        STZ     ItemNum

        jsr     EE_LOCATE_ADDR
        LSETCUR 0,1
        LPRINT  EE_LEMMA_BUFFER

        ;PUTSIO  #077H
        ;PUTSIO  <_EE_FAR_PTRB_3
        ;PUTSIO  <_EE_FAR_PTRB_2
        ;PUTSIO  <_EE_FAR_PTRB_1
        ;PUTSIO  <_EE_FAR_PTRB_0

        LDA     <_EE_FAR_PTRB_3
        CMP     #(END_WORD_ADDR_A>>24)
        BNE     ?GOAHEAD
        LDA     <_EE_FAR_PTRB_2
        CMP     #(END_WORD_ADDR_A>>16)
        BNE     ?GOAHEAD
        LDA     <_EE_FAR_PTRB_1
        CMP     #(END_WORD_ADDR_A>>8)
        BNE     ?GOAHEAD
        LDA     <_EE_FAR_PTRB_0
        CMP     #END_WORD_ADDR_A
        BNE     ?GOAHEAD
        JMP     ?EXIT

?GOAHEAD:
        jsr     EE_NEXT_WORD
        CLC
        ADC     ItemNum
        STA     ItemNum
        LSETCUR 0,2
        LPRINT  EE_LEMMA_BUFFER

        jsr     EE_NEXT_WORD
        CLC
        ADC     ItemNum
        STA     ItemNum
        LSETCUR 0,3
        LPRINT  EE_LEMMA_BUFFER

        jsr     EE_NEXT_WORD
        CLC
        ADC     ItemNum
        STA     ItemNum
        LSETCUR 0,4
        LPRINT  EE_LEMMA_BUFFER

        jsr     EE_NEXT_WORD
        CLC
        ADC     ItemNum
        STA     ItemNum
        LSETCUR 0,5
        LPRINT  EE_LEMMA_BUFFER

        jsr     EE_NEXT_WORD
        CLC
        ADC     ItemNum
        STA     ItemNum
        LSETCUR 0,6
        LPRINT  EE_LEMMA_BUFFER

        jsr     EE_NEXT_WORD
        CLC
        ADC     ItemNum
        STA     ItemNum
        LSETCUR 0,7
        LPRINT  EE_LEMMA_BUFFER

        jsr     EE_NEXT_WORD
        CLC
        ADC     ItemNum
        STA     ItemNum
        LSETCUR 0,8
        LPRINT  EE_LEMMA_BUFFER

?EXIT:
        stz     <CurY
        lda     <InputLen
        sta     <CurX

        jmp	jmp_LMAIN

;
;

KeyDownStateFunc:
        dw      OnlyEnterKey
        dw      ViewWordState
        dw      ViewExplainState

ViewWordState:
        lda     <KeyNo
        cmp     #UpKey
        beq     ViewWordUpKey
        cmp     #DownKey
        beq     ViewWordDownKey
        cmp     #EscKey
        ;beq     ViewWordEscKey
        bne	dfadfs
        jmp	ViewWordEscKey
dfadfs:
        cmp     #EnterKey
        beq     ?EnterKey
        jmp     ExitWithoutUpDate
?EnterKey:

        lda     #<EE_HELP_2
	sta	HelptextpL
        lda     #>EE_HELP_2
	sta	HelptextpH

        jsr     CopyDataToEEINBUFFER
        jmp	EnterToViewExp


ViewWordUpKey:
	jsr	set_icondown
        lda     <InvertItem
        bne     ?0

        INC     ItemNum

        jsr     EE_LOCATE_ADDR
        jsr     EE_PGUP_WORD
        cmp	#0
        beq	?2
        jsr     EEScreenDown
?1:
	jsr	set_iconup
        jmp     ViewWordUpKeyend
?2:
	jsr	clr_iconup
        jmp     ViewWordUpKeyend
?0:     dec     <InvertItem
	jsr	set_iconup
ViewWordUpKeyend:
         jmp     InvertWord

ViewWordDownKey:
        jsr	set_iconup
        ;putsio	<InvertItem
        ;putsio	ItemNum
        lda     <InvertItem
        CMP     ItemNum
        BCC     ?goahead
        jsr	is_have_nextpage
        bne	?goahead
?clrdownicon:
        jsr	clr_icondown
        jmp	refresh_icon
?goahead:
        lda     <InvertItem
        cmp     #7
        bne     ?0
        JSR     EE_NEXT_WORD
	beq	?clrdownicon
?VIEWIT0:
        jsr     EEScreenUp
        LSETCUR 0,8
        LPRINT  EE_LEMMA_BUFFER
        jsr     CopyTextLine1ToEEINBUFFER
	jsr	set_icondown
        jmp     ViewWordDownKeyend
?0:      inc     <InvertItem

	jsr	set_icondown
ViewWordDownKeyend:
        jmp     InvertWord



ViewWordEscKey:
        jsr     CopyTextLine0ToEEINBUFFER
        stz     <CurY
        stz     <YYZDState

⌨️ 快捷键说明

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