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

📄 eeunzip.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        JMP     ?UNZIP_EN_ALPHABET_00X  ;
?UNZIP_EN_ALPHABET_001:                 ;
        STA     <_EE_ZIP_CODE_NUM       ; _EE_ZIP_CODE_NUM = A;

        LDA     UNZIPEE_b_TO_B,Y        ;
        STA     <_EE_CODE_SIZE          ;

        LDA     <_EE_BIT_SIZE           ;
        ASL     A                       ;
        TAY                             ;
        LDA     en_entab,Y              ;
        STA     <_EE_CODE_PTR_L         ;
        LDA     en_entab+1,Y            ; _CODE_PTR = en_entab[_EE_BIT_SIZE];
        STA     <_EE_CODE_PTR_H         ;

        LDA     <_EE_CODE_SIZE          ;
        SEC                             ;
        SBC     #2                      ;
        ASL     A                       ;
        TAX                             ;
        JMP     (?UNZIP_EN_ALPHABET_CMP_PROC,X)
?UNZIP_EN_ALPHABET_CMP_PROC:
        DW      ?UNZIP_EN_ALPHABET_CMP_1B
        DW      ?UNZIP_EN_ALPHABET_CMP_2B
        DW      ?UNZIP_EN_ALPHABET_CMP_3B

?UNZIP_EN_ALPHABET_CMP_1B:
        LDA     <_EE_ZIPPED_CODE_L
        CMP     (_EE_CODE_PTR_L)
        BEQ     ?UNZIP_EN_ALPHABET_CMP_1BY
        WORD_ADD_BYTE <_EE_CODE_PTR_L,<_EE_CODE_SIZE
        DEC     <_EE_ZIP_CODE_NUM
        BNE     ?UNZIP_EN_ALPHABET_CMP_1B
        JMP     ?UNZIP_EN_ALPHABET_00X
?UNZIP_EN_ALPHABET_CMP_1BY:
        LDY     #1
        LDA     (_EE_CODE_PTR_L),Y
        RTS

?UNZIP_EN_ALPHABET_CMP_2B:
        LDA     <_EE_ZIPPED_CODE_M
        CMP     (_EE_CODE_PTR_L)
        BNE     ?UNZIP_EN_ALPHABET_CMP_2B1
        LDY     #1
        LDA     <_EE_ZIPPED_CODE_L
        CMP     (_EE_CODE_PTR_L),Y
        BEQ     ?UNZIP_EN_ALPHABET_CMP_2BY
?UNZIP_EN_ALPHABET_CMP_2B1:
        WORD_ADD_BYTE <_EE_CODE_PTR_L,<_EE_CODE_SIZE
        DEC     <_EE_ZIP_CODE_NUM
        BNE     ?UNZIP_EN_ALPHABET_CMP_2B
        JMP     ?UNZIP_EN_ALPHABET_00X
?UNZIP_EN_ALPHABET_CMP_2BY:
        LDY     #2
        LDA     (_EE_CODE_PTR_L),Y
        RTS

?UNZIP_EN_ALPHABET_CMP_3B:
        LDA     <_EE_ZIPPED_CODE_H
        CMP     (_EE_CODE_PTR_L)
        BNE     ?UNZIP_EN_ALPHABET_CMP_3B1
        LDY     #1
        LDA     <_EE_ZIPPED_CODE_M
        CMP     (_EE_CODE_PTR_L),Y
        BNE     ?UNZIP_EN_ALPHABET_CMP_3B1
        INY
        LDA     <_EE_ZIPPED_CODE_L
        CMP     (_EE_CODE_PTR_L),Y
        BEQ     ?UNZIP_EN_ALPHABET_CMP_3BY
?UNZIP_EN_ALPHABET_CMP_3B1:
        WORD_ADD_BYTE <_EE_CODE_PTR_L,<_EE_CODE_SIZE
        DEC     <_EE_ZIP_CODE_NUM
        BNE     ?UNZIP_EN_ALPHABET_CMP_3B
        JMP     ?UNZIP_EN_ALPHABET_00X
?UNZIP_EN_ALPHABET_CMP_3BY:
        LDY     #3
        LDA     (_EE_CODE_PTR_L),Y
        RTS

?UNZIP_EN_ALPHABET_00X:
        DEC     <_EE_UNZIP_LOOP
        LDA     <_EE_UNZIP_LOOP
        BEQ     ?UNZIP_EN_ALPHABET_00Y
        JMP     ?UNZIP_EN_ALPHABET_000

?UNZIP_EN_ALPHABET_00Y:
        DEC_WORD <_EE_LINK_SIZE_0
        LDA     <_EE_LINK_SIZE_0
        ORA     <_EE_LINK_SIZE_1
        BEQ     ?UNZIP_EN_ALPHABET_0X
        JMP     ?UNZIP_EN_ALPHABET_0

?UNZIP_EN_ALPHABET_0X:
        LDA     #0
        RTS

; ***************************************************************************
        JMP     ?UNZIP_EN_ALPHABET_00X
UNZIP_N_EN_ALPHABET:
        STZ     <_EE_BIT_SIZE
        STZ     <_EE_ZIPPED_CODE_L
        STZ     <_EE_ZIPPED_CODE_M
        STZ     <_EE_ZIPPED_CODE_H
        BRA     UNZIP_N_EN_ALPHABET-3

; ***************************************************************************
UNZIP_EN_LEMMA:
        JSR     UNZIP_A_EN_ALPHABET
        STA     EE_LEMMA_BUFFER
        LDX     #1
        CMP     #$09
        BEQ     ?UNZIP_EN_LEMMAX
?UNZIP_EN_LEMMA0:
        PHX
        JSR     UNZIP_N_EN_ALPHABET
        PLX
        STA     EE_LEMMA_BUFFER,X
        CMP     #$09
        BEQ     ?UNZIP_EN_LEMMAX
        INX
        BRA     ?UNZIP_EN_LEMMA0
?UNZIP_EN_LEMMAX:
        STZ     EE_LEMMA_BUFFER,X
        RTS

; ***************************************************************************
EE_LEMMA_STRCMP:                        ;EE_LEMMA_STRCMP:
        LDX     #0                      ;  X=0;
?EE_LEMMA_STRCMP0:                      ;?EE_LEMMA_STRCMP0:
        LDA     EE_IN_BUFFER,X          ;  A = EE_IN_BUFFER[X];
        TAY                             ;  Y = A;
        JSR     EE_UPPER_CASE           ;
        STA     EE_IN_BUFFER,X          ;  EE_IN_BUFFER[X] = UPPER_CASE(A);
        LDA     EE_LEMMA_BUFFER,X       ;  A = EE_LEMMA_BUFFER[X];
        JSR     EE_UPPER_CASE           ;  A = UPPER_CASE(A);
        CMP     EE_IN_BUFFER,X          ;
        BNE     ?EE_LEMMA_STRCMP1       ;  if (A!=EE_IN_BUFFER[X]) return;
        CMP     #0                      ;
        BEQ     ?EE_LEMMA_STRCMPX       ;  if (A==0) return 0;
        TYA                             ;  A = Y;
        STA     EE_IN_BUFFER,X          ;  EE_IN_BUFFER[X] = A;
        INX                             ;  X++;
        BRA     ?EE_LEMMA_STRCMP0       ;  goto ?EE_LEMMA_STRCMP0;
?EE_LEMMA_STRCMP1:                      ;
?EE_LEMMA_STRCMPX:                      ;
        PHP                             ;
        TYA                             ;
        STA     EE_IN_BUFFER,X          ;
        PLP                             ;
        RTS                             ;

; ***************************************************************************
EE_FIRST_PAGE:                          ;
        JSR     CLR_TEXTBUFFER          ;

        STZ     EE_COL_IDX              ;
        STZ     EE_ROW_IDX              ;
        STZ     EE_PAGE_END             ;
        STZ     EE_LAST_BYTE            ;

        JSR     UNZIP_A_EN_ALPHABET     ;
        STA     EE_LAST_WORD            ;

        LDA     #1
        STA     EE_WORD_IDX             ;

?EE_FIRST_PAGE0:                        ;
        JSR     UNZIP_N_EN_ALPHABET     ;
        BEQ     ?EE_FIRST_PAGE00        ;
        LDX     EE_WORD_IDX             ;
        INC     EE_WORD_IDX             ;
        STA     EE_LAST_WORD,X          ;
        JSR     EE_CHECK_CHAR           ;
        CPY     #1                      ;
        BEQ     ?EE_FIRST_PAGE0         ;
        BRA     ?EE_FIRST_PAGE01        ;
?EE_FIRST_PAGE00:                       ;
        LDA     #1                      ;
        STA     EE_PAGE_END             ;
?EE_FIRST_PAGE01:                       ;
        LDA     EE_LAST_BYTE            ;
        CMP     #$09                    ;
        BNE     ?EE_NEXT_PAGE_IN        ;
        LDA     EE_COL_IDX              ;
        CMP     #2                      ;
        BCS     ?EE_FIRST_PAGE02        ;
        STZ     EE_COL_IDX              ;

?EE_NEXT_PAGE_IN:                       ;
        LDA     EE_WORD_IDX
        BNE     ?EE_NEXT_PAGE_IN0
        JMP     ?EE_FIRST_PAGEX
?EE_NEXT_PAGE_IN0:

        CLC                             ;
        LDA     EE_WORD_IDX             ;
        ADC     EE_COL_IDX              ;
        CMP     #21                     ;
        BCC     ?EE_FIRST_PAGE1         ;
        BNE     ?EE_FIRST_PAGE02        ;
        LDA     EE_LAST_WORD,X          ;
        CMP     #' '                    ;
        BNE     ?EE_FIRST_PAGE02        ;
        DEX     EE_WORD_IDX             ;
        BNE     ?EE_FIRST_PAGE1         ;
        JMP     ?EE_FIRST_PAGEX         ;
?EE_FIRST_PAGE02:                       ;
        CLC                             ;
        LDA     EE_ROW_IDX              ;
        ADC     #20                     ;
        CMP     #100                    ;
        BCC     ?EE_FIRST_PAGE03        ;
        STZ     EE_PAGE_END             ;
        JMP     ?EE_FIRST_PAGEX         ;
?EE_FIRST_PAGE03:                       ;
        STA     EE_ROW_IDX              ;
        STZ     EE_COL_IDX              ;
?EE_FIRST_PAGE1:                        ;
        CLC                             ;
        LDA     EE_ROW_IDX              ;
        ADC     EE_COL_IDX              ;
        TAX                             ;
        LDY     #0                      ;
?EE_FIRST_PAGE10:                       ;
        LDA     EE_LAST_WORD,Y          ;
        STA     TEXTBUFFOR,X            ;
        INX                             ;
        INY                             ;
        DEC     EE_WORD_IDX             ;
        BNE     ?EE_FIRST_PAGE10        ;
        STA     EE_LAST_BYTE            ;
        TXA                             ;
        SEC                             ;
        SBC     EE_ROW_IDX              ;
        STA     EE_COL_IDX              ;

        LDA     EE_PAGE_END             ;
        BNE     ?EE_FIRST_PAGEX         ;

        STZ     EE_WORD_IDX             ;

;        LUPDATESCREEN
;        WAIT_ANY_KEY


        JMP     ?EE_FIRST_PAGE0         ;

?EE_FIRST_PAGEX:                        ;
        RTS

; ***************************************************************************
        JMP     ?EE_NEXT_PAGE_IN
EE_NEXT_PAGE:
        LDA     <_EE_FAR_PTRB_2
        STA     <_DRRL
        LDA     <_EE_FAR_PTRB_3
        STA     <_DRRH
        JSR     CLR_TEXTBUFFER          ;
        STZ     EE_COL_IDX              ;
        STZ     EE_ROW_IDX              ;
        BRA     EE_NEXT_PAGE-3          ;

; ***************************************************************************
        PUBLIC  EE_NEXT_WORD0
EE_NEXT_WORD:
        STZ     EE_LEMMA_BUFFER         ; J.A.  2003-5-12

        ;PUTSIO  #0FFH
        ;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_B>>24)
        BNE     EE_NEXT_WORD0
        LDA     <_EE_FAR_PTRB_2
        CMP     #(END_WORD_ADDR_B>>16)
        BNE     EE_NEXT_WORD0
        LDA     <_EE_FAR_PTRB_1
        CMP     #(END_WORD_ADDR_B>>8)
        BNE     EE_NEXT_WORD0
        LDA     <_EE_FAR_PTRB_0
        CMP     #END_WORD_ADDR_B
        BNE     EE_NEXT_WORD0
        LDA     #0
        RTS

EE_NEXT_WORD0:
        JSR     EE_INIT_N_ADDR
        JSR     UNZIP_EN_LEMMA
        JSR     EE_INIT_R_ADDR
        LDA     #1
        RTS

; ***************************************************************************
EE_PGUP_WORD:
        LDA     BK_FAR_PTRB_0
        CMP     #<EELib
        BNE     ?EE_PGUP_WORD0
        LDA     BK_FAR_PTRB_1
        CMP     #>EELib
        BNE     ?EE_PGUP_WORD0
        LDA     BK_FAR_PTRB_2
        CMP     #<(EELib/10000H)
        BNE     ?EE_PGUP_WORD0
        LDA     BK_FAR_PTRB_3
        CMP     #<(EELib/1000000H)
        BNE     ?EE_PGUP_WORD0
        LDA     #0
        RTS

?EE_PGUP_WORD0:
        JSR     LOAD_PTRA
        JSR     EE_INIT_0_ADDR

        LDA     <_EE_FAR_PTRB_0
        CMP     BK_FAR_PTRB_0
        BNE     ?EE_PGUP_WORD00
        LDA     <_EE_FAR_PTRB_1
        CMP     BK_FAR_PTRB_1
        BNE     ?EE_PGUP_WORD00
        LDA     <_EE_FAR_PTRB_2
        CMP     BK_FAR_PTRB_2
        BNE     ?EE_PGUP_WORD00
        LDA     <_EE_FAR_PTRB_3
        CMP     BK_FAR_PTRB_3
        BNE     ?EE_PGUP_WORD00   ;
        JMP     ?EE_PGUP_WORD50   ;

?EE_PGUP_WORD00:
        LDA     <_EE_FAR_PTRB_0
        CMP     BK_FAR_PTRB_0
        BNE     ?EE_PGUP_WORD20
        LDA     <_EE_FAR_PTRB_1
        CMP     BK_FAR_PTRB_1
        BNE     ?EE_PGUP_WORD20
        LDA     <_EE_FAR_PTRB_2
        CMP     BK_FAR_PTRB_2
        BNE     ?EE_PGUP_WORD20
        LDA     <_EE_FAR_PTRB_3
        CMP     BK_FAR_PTRB_3
        BEQ     ?EE_PGUP_WORD30
?EE_PGUP_WORD20:
        JSR     SAVE_PTRB0
        LONG_2_DDR_REG <_EE_FAR_PTRB_0
        LDA     <_EE_FAR_PTRB_2
        STA     <_DRRL
        LDA     <_EE_FAR_PTRB_3
        STA     <_DRRH
        JSR     GET_F_PTRB_BYTE
        STA     <_EE_LINK_SIZE_0
        JSR     GET_F_PTRB_BYTE
        STA     <_EE_LINK_SIZE_1
        JSR     LOAD_PTRB0
        LONG_ADD_WORD <_EE_FAR_PTRB_0,<_EE_LINK_SIZE_0
        LONG_ADD_CONST <_EE_FAR_PTRB_0,2
        JMP     ?EE_PGUP_WORD00

?EE_PGUP_WORD30:
        JSR     LOAD_PTRB0
        JSR     EE_INIT__ADDR
        JSR     UNZIP_EN_LEMMA
        JSR     EE_INIT_R_ADDR
        LDA     #1
        RTS

?EE_PGUP_WORD50:
        JSR     LOAD_PTRA
        LONG_SUB_CONST <_EE_FAR_PTRA_0,3
        JSR     SAVE_PTRA
        JSR     EE_INIT_0_ADDR

        LDA     #63
        STA     EE_TEMP0
?EE_PGUP_WORD51:
        JSR     SAVE_PTRB0
        LONG_2_DDR_REG <_EE_FAR_PTRB_0
        LDA     <_EE_FAR_PTRB_2
        STA     <_DRRL
        LDA     <_EE_FAR_PTRB_3
        STA     <_DRRH
        JSR     GET_F_PTRB_BYTE
        STA     <_EE_LINK_SIZE_0
        JSR     GET_F_PTRB_BYTE
        STA     <_EE_LINK_SIZE_1
        JSR     LOAD_PTRB0
        LONG_ADD_WORD <_EE_FAR_PTRB_0,<_EE_LINK_SIZE_0
        LONG_ADD_CONST <_EE_FAR_PTRB_0,2
        DEC     EE_TEMP0
        BNE     ?EE_PGUP_WORD51
        JSR     LOAD_PTRB0
        JSR     EE_INIT__ADDR
        JSR     UNZIP_EN_LEMMA
        JSR     EE_INIT_R_ADDR
        LDA     #1
        RTS

; ***************************************************************************
;        .IFDEF DEBUGGING
PUTSIOX:
	macro
	jsr     LJSR
	dw      BiosBank
	dw      SendByte-1
	endm


DUMP_LEMMA_BUF:
        LDX     #0
?DUMP_LEMMA_BUF0:
        LDA     EE_LEMMA_BUFFER,X
        BEQ     ?DUMP_LEMMA_BUFX
        PHX
        TAX
        PUTSIOX
        PLX
        INX
        BRA     ?DUMP_LEMMA_BUF0
?DUMP_LEMMA_BUFX:
        ;PUTSIO  #$0D
        ;PUTSIO  #$0A
        RTS
;        .ENDIF

; ***************************************************************************
        ENDS
; ***************************************************************************

⌨️ 快捷键说明

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