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

📄 scical.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 4 页
字号:
?2:
        ora     #'0'
        tax
?3:
        lda     <ox
        pha
        LDrawChar12
        pla
        sec
        sbc     #8
        sta     <ox
        lda     #72-8-8
        sta     <oy
?31:
        plx
        dex
        bpl     ?0
        ldx     #' '
        bbr6    <MinusFlag,?1
        ldx     #'-'
?1:     lda     <ox
        pha
        LDrawChar12
        pla
?4:
        sec
        sbc     #16
        bcc     ?5
        sta     <ox
        pha
        ldx     #' '
        LDrawChar12
        pla
        bra     ?4
?5:
        rts
;[E]==============================================[E]
;===========================================
turnexp_hex_to_dec:           ;先将DecExp 转换成dec形式放在:TextBuf,8 ~TextBuf,11.  如:1.23E+12
        jsr     ljsr
        dw      sci_addbank
        dw      turnexp_hex_to_dec_shift-1
        rts

ShowDecExp:
        lda     #112+32-2 ;#112+32-6
        sta     <ox
        lda     #30+4 ;#30+4
        sta     <oy

        lda     DecExp
        bpl     ?1
        eor     #ffh
        ina
?1:     pha
        lsr
        lsr
        lsr
        lsr
        tax             ;将高半四位移出放 ---> x
        pla
        and     #0fh    ;低半字节处理.
        cmp     #0ah
        bcc     ?11
        adc     #5    ;a=a+6

?11:
        sed
?2:
        dex
        bmi     ?3

        clc
        adc     #16h
        bra     ?2
?3:
        cld
        pha
        and     #0fh    ;先显示低位
        tax

        LDrawNums  ;J.A.

        sec
        lda     <ox
        sbc     #6
        sta     <ox
        pla             ;再显示高位
        lsr
        lsr
        lsr
        lsr

        tax
        LDrawNums ;J.A.

        sec
        lda     <ox
        sbc     #6
        sta     <ox
?4:
        lda     DecExp
        bpl     ?5
;       bbs7    <DecExp,?5  ;指数符号显示
        LoPrintImage     FontMinuss

?5:
       lda     #80-38-3
       sta     <oy
       lda     #144-16
       sta     <ox
       ldx     #'0'
       LDrawChar12
       clc
       lda     <ox
       sbc     #8
       sta     <ox
       ldx     #'1'     ;;*10
       LDrawChar12
       clc
       lda     #45
       sta     <oy
       lda     #104
       sta     <ox
       LoPrintImage     FontMul
        rts

ShiftF:
        lda     <ShiftFlag
        eor     #00100000b
        sta     <ShiftFlag
        jsr     ShowShift5
        jmp    jmplmainu

ShowShift:
         bbs5    <Shiftflag,?21
         loff_lcd_icon  IconShift
	jmp	ShowShift1
?21:
        Llight_lcd_icon  IconShift
ShowShift1:
        lupdate_all_icon

        lda     <OX
        BEQ	?22
        sta     <Ox
        lda	#0
        sta     <OY
        LOPrintImage    caclbmp
?22:
        rts


ShowShift5:
         bbs5    <Shiftflag,?21
         loff_lcd_icon  IconShift
	jmp	ShowShift6
?21:
        Llight_lcd_icon  IconShift
ShowShift6:
        lupdate_all_icon
        rts

new_digit_ClearNum:
        ldx     #11
        lda     #0ffh
?1:     sta     TextBuf+1,x
        dex
        bpl     ?1

        stz     TextBuf

        ldx     #5
?2:     stz     Fac_Exp,x
        dex
        bpl     ?2

        stz     CharNum

        stz     StatusFlag
        stz     DecExp
        stz     DecText
        stz     DecText+1

        LCls
        rts
ClearNum:
        ldx     #11
        lda     #0ffh
?1:     sta     TextBuf+1,x
        dex
        bpl     ?1

        stz     TextBuf

        ldx     #5
?2:     stz     Fac_Exp,x
        dex
        bpl     ?2

        stz     CharNum

        stz     StatusFlag
        stz     DecExp
        stz     DecText
        stz     DecText+1

        LCls
        jsr     ListNum
;       jsr     List_input_digit
        rts

ClearF:
        jsr     ClearNum
        jmp    jmplmainu

AClearF:
        jmp     SciLoadx
;       jmp     SciLoad1
;       jmp     SciLoad
;       jsr     ClearNum
;       stz     Text4Index
;       jmp    jmplmainu

;144 pow(x,1/y) -
AddF:
SubF:
Subf1:
        bbr0    <Perflag,?0
        rmb0    <PerFlag
        lda     PKeyCode
        cmp     #DivK
        bcc     ?0
        lda     KeyCode
        sta     TextBuf4+6

        lda     #EquK
        sta     keyCode

        lda     #7
        sta     NumStack
        rmb4    <RefreshFlag
        jmp     EqualF

?0:     ldx     NumStack
        bne     ?111
        rmb1    <KFlag
?1:
        jsr     pushFac
        LCls

    jsr  copy_fac_to_data_bak
        jsr     TranBinDec
        jsr     DisPlayNum
    jsr  copy_data_bak_to_fac
        jsr     ShowKFlag

        smb4    <RefreshFlag
        rmb3    <FuncFlag

        jmp    jmplmainu

?111:
        lda     KeyCode
        bbr4    <RefreshFlag,?01
        rmb4    <RefreshFlag
        bbs3    <FuncFlag,?02
        pha
        jsr     PopArg
        pla
        cmp     KeyCode
        bne     ?112
        jsr     MovFA
        jsr     PushKMem
;       bra     SubF
        bra     ?1
?112:
        sta     KeyCode
        jsr     MovFA
        bra     SubF1
?02:
        rmb3    <FuncFlag

?01:    rmb1    <KFlag
        pha
        jsr     PopArg
        lda     KeyCode
        cmp     #AddK
        beq     ?addf
        cmp     #SubK
        beq     ?subf
        cmp     #MulK
        beq     ?mulf
        cmp     #DivK
        beq     ?divf
        cmp     #XeyK
        beq     ?XeyF
        cmp     #Xe1YK
        beq     ?Xe1YF
        pla
        LDrawText       ErrorTitle
        jmp    jmplmainu
?addf:
        jsr     FAddt_S
        bra     ?ok
?subf:  jsr     FSubt_s
        bra     ?ok
?mulf:  jsr     FMultt_s
        bra     ?ok
?divf:
        jsr     FDivt_s
        bra     ?ok
?XeYf:
;       jsr     FPWRT_S
        jsr     XeyfF
        bra     ?ok
?Xe1YF:
        jsr     SQR_X_Y
?ok:
        pla
        sta     KeyCode
        lda     Err_Flag
;        beq     SubF
        beq     ?Subf1
        jmp     ShowErr
?Subf1: jmp     SubF1

PushFac:
        ldx     NumStack
        lda     Fac_Exp
        sta     TextBuf4,x
        inx
        lda     Fac_Ho
        sta     TextBuf4,x
        inx
        lda     Fac_Moh
        sta     TextBuf4,x
        inx
        lda     Fac_Mo
        sta     TextBuf4,x
        inx
        lda     Fac_Lo
        sta     Textbuf4,x
        inx
        lda     Fac_Sgn
        sta     TextBuf4,x
        inx
        lda     KeyCode
        sta     TextBuf4,x
        inx
        stx     NumStack
        smb4    <RefreshFlag
        rts
PopArg:
        ldx     NumStack
        dex
        lda     TextBuf4,x
        sta     KeyCode
        dex
        lda     TextBuf4,x
        sta     Arg_Sgn
        dex
        lda     TextBuf4,x
        sta     Arg_Lo
        dex
        lda     TextBuf4,x
        sta     Arg_Mo
        dex
        lda     TextBuf4,x
        sta     Arg_Moh
        dex
        lda     Textbuf4,x
        sta     Arg_Ho
        dex
        lda     TextBuf4,x
        sta     Arg_Exp
        stx     NumStack
        rts

DivF:
MulF:
MulF1:
        rmb0    <PerFlag
        ldx     NumStack
        beq     ?savefac
        dex
        bbr4    <RefreshFlag,?001
        bbs3    <Funcflag,?001
        lda     KeyCode
        cmp     TextBuf4,x
        bne     ?Mu1
        cpx     #6
        bne     ?Mu1
        jsr     pushKmem
        jsr     ShowKFlag
        jsr     ShowFunction
        jmp    jmplmainu
?Mu1:   rmb1    <KFlag
        sta     Textbuf4,x
        jsr     ShowKFlag
        jsr     Showfunction
        jmp    jmplmainu
?001:   rmb1    <KFlag
        rmb3    <FuncFlag
        lda     TextBuf4,x
        cmp     #DivK
        bcs     ?operate
?savefac:
        rmb1    <KFlag
        rmb3    <FuncFlag
        jsr     PushFac
        LCls
    jsr  copy_fac_to_data_bak
        jsr     TranBinDec
        jsr     DisPlayNum
    jsr  copy_data_bak_to_fac
        smb4    <RefreshFlag
        jmp    jmplmainu
?operate:
        lda     KeyCode
        pha
        jsr     PopArg
        lda     KeyCode
        cmp     #MulK
        beq     ?mulf
        cmp     #DivK
        beq     ?divf
        cmp     #XeYK
        beq     ?Xeyf
        cmp     #Xe1YK
        beq     ?Xe1Yf
        pla
        LdrawText       Errortitle
        jmp    jmplmainu
?mulf:
        jsr     FMultt_S
        bra     ?ok
?divf:
        jsr     FDivt_s
        bra     ?ok

?XeYf:
;       jsr     FPwrt_s
        jsr     XeyfF
        bra     ?ok

?Xe1yf: jsr     sqr_X_Y

?ok:    pla
        sta     KeyCode
        lda     Err_Flag
;        beq     MulF
        beq     ?MulF1
        jmp     ShowErr
?MulF1: jmp     MulF1

atanhf:
        jsr     ATanh_S
        jmp     ShowPreAns
acoshf:
        jsr     ACosh_s
        jmp     ShowPreAns
asinhf:
        jsr     ASinh_s
        jmp     ShowPreAns
tanhf:
        jsr     Tanh_s
        jmp     ShowPreAns
coshf:
        jsr     Cosh_s
        jmp     ShowPreAns
sinhf:
        jsr     Sinh_s
        jmp     ShowPreAns
Xe2f:   jsr     Pwr_x_2
        jmp     ShowPreans
b10exf:
        jsr     Pwr_10_X
        jmp     ShowPreAns
exf:
        jsr     Exp_s
        jmp     ShowPreAns
sqrfotf:
        lda     fac_exp
        bne     ?fdsfd
        stz     fac_sgn
?fdsfd:
        jsr     Sqr_S
        jmp     ShowPreAns
xeyf:
        jsr     ShowXey
        bra     Xe1y1
xe1yf:
        jsr     ShowXe1y
Xe1y1:
        rmb0    <PerFlag
        ldx     NumStack
        beq     ?savefac
        dex
        bbr4    <RefreshFlag,?001
        bbs3    <Funcflag,?001
;===========================
        lda     KeyCode
        cmp     TextBuf4,x
        bne     ?XEY
        cpx     #6
        bne     ?XEY
        jsr     pushKmem
        jsr     ShowKFlag
        jsr     Showfunction
;===========================
        jmp    jmplmainu
?XEY:   rmb1    <KFlag
        sta     Textbuf4,x
        jsr     ShowKFlag
        jsr     Showfunction
        jmp    jmplmainu
?001:   rmb1    <KFlag
        rmb3    <FuncFlag
        lda     TextBuf4,x
        cmp     #XeYK
        bcs     ?operate
?savefac:
        rmb1    <KFlag
        rmb3    <FuncFlag
        jsr     PushFac
        LCls
    jsr  copy_fac_to_data_bak
        jsr     TranBinDec
        jsr     DisPlayNum
    jsr  copy_data_bak_to_fac
        smb4    <RefreshFlag
        jsr     showfunction
        jmp    jmplmainu
?operate:
        lda     KeyCode
        pha
        jsr     PopArg
        lda     KeyCode
        cmp     #XeYK
        beq     ?XeyF
        cmp     #Xe1YK
        beq     ?Xe1YF
        pla
        LdrawText       Errortitle
        jmp    jmplmainu
?XeYF:
;       jsr     FPWRT_S
        jsr     XeyfF
        bra     ?ok
?Xe1YF:
        jsr     SQR_X_Y
?ok:    pla
        sta     KeyCode
        lda     Err_Flag
;        beq     MulF
        beq     ?XEYF1
        jmp     ShowErr
?XEYF1: jmp     Xeyf

hypf:
        lda  #ds0bank
        sta  <drr
        lda     #00100000b
        eor     <Hypflag
        sta     <HypFlag
        jsr     Showhyp

        rmb5    <ShiftFlag
        jsr     ShowShift5
        jmp    jmplmainu
anglef:

⌨️ 快捷键说明

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