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

📄 scical.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 4 页
字号:
; ***************************************************************************
; *     Project : Electronic Dictionary                                     *
; *        Date : 2003.9                                                    *
; *   File Name : SCICAL.ASM                                                *
; ***************************************************************************
        chip    W65C02S                 ; Define chip : ST2100 base on 65c02.
        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 Cal.def
        include Graph.def
	INCLUDE ST2202.MAC

        public  add_little_dot

        public  if_arg_equ_1
        public  if_fac_equ_1
        public  cuttail
        public  five_to_inc_1
        public  XeyfF
        public  memory
        public  memflag
        public  clearnum
        public  funckey
        public  numstack
        public  statusflag

        public  SciLoad
        public  SciKeyPress
        public  SciHSec
        public  SciSec
        public  SciMin
        public  SciKeyUp
        public  SciKeyDown
        public  SciTimer
        public  SciFromHelp
        public  ShowPreAns
        public  FMULTT_S
        public  fin
        public  ShiftRFac
        public  FacAddA
        public  ShowShift
        public  TranBinDec
        public  DisPlayNum
        public  SciLoad
;=====================================================
Num0K               equ      0               ;'0'
Num1K               equ      1               ;'1'
Num2K               equ      2               ;'2'
Num3K               equ      3               ;'3'
Num4K               equ      4               ;'4'
Num5K               equ      5               ;'5'
Num6K               equ      6               ;'6'
Num7K               equ      7               ;'7'
Num8K               equ      8               ;'8'
Num9K               equ      9               ;'9'
DotK                equ      10              ;'.'
Exp10K              equ      11              ;Exp10
MinusK              equ      12              ;'-'
ShiftK              equ      13              ;Shift
PiK                 equ      14              ;Pi
AngleK              equ      15              ;Angle
HypK                equ      16              ;Hyp
CK                  equ      17              ;Clear
ACK                 equ      18              ;AllClear
MRK                 equ      19              ;MR
MCK                 equ      20              ;MC
MAddK               equ      21              ;M+
MSubK               equ      22              ;M-
EQUK                equ      23              ;'='
ADDK                equ      24              ;'+'
SUBK                equ      25              ;'-'
DIVK                equ      26              ;'/'
MULK                equ      27              ;'*'
XEYK                equ      28              ;X^Y
XE1YK               equ      29              ;X^1/Y
PERK                equ      30              ;'%'
LnK                 equ      31              ;Ln
LogK                equ      32              ;Log
SQRFOTK             equ      33              ;Square Foot
INVK                equ      34              ;1/X
EXK                 equ      35              ;E^X
B10EXK              equ      36              ;10^X
XE2                 equ      37              ;X^2
XSTEP               equ      38              ;X!
SinK                equ      39              ;Sin
CosK                equ      40              ;Cos
TanK                equ      41              ;Tan
ASinK               equ      42              ;ASin
ACosK               equ      43              ;ACos
ATanK               equ      44              ;ATan
SinHK               equ      45              ;SinH
CosHK               equ      46              ;CosH
TanHK               equ      47              ;TanH
ASinHK              equ      48              ;ASinH
ACosHK              equ      49              ;ACosH
ATanHK              equ      50              ;ATanH

   public    sciodd_even
exp_flag     equ   280h
sciodd_even  equ   281h
memory_bak        equ      cal_fixram+30
MemFlag_bak       equ      cal_fixram+40  ;1

;=====================================================
;       >>> Data RAM define
;FunctionNo equ  CData+1
;=====================================================
;       Event vector table.
DS0     .SECTION                ; Data ROM location 10000h(Bank#2)

       include	caclbmp.asm
;=====================================================
KeyNum:
        db      QuesKey         ;'0'            0
        db      BKey            ;'1'            1
        db      NKey            ;'2'            2
        db      MKey            ;'3'            3
        db      GKey            ;'4'            4
        db      HKey            ;'5'            5
        db      JKey            ;'6'            6
        db      TKey            ;'7'            7
        db      YKey            ;'8'            8
        db      UKey            ;'9'            9
        db      pointkey       ;Dot -->':'     10
        db      FKey            ;Minus          11
        db      ShiftKey        ;Shift          12
        db      VKey            ;C              13
        db      ACKey          ;AC             14
        db      KKey        ;MR             15
        db      IKey            ;MC             16
        db      LKey        ;M+             17
        db      OKEY          ;M-             18
        db      spaceKey        ;'='            19 EnterKey
        db      UPKey         ;'+'            20
        db      DOWNKey           ;'-'            21
        db      RIGHTKey            ;'/'            22
        db      LEFTKey            ;'*'            23
        db      RKey            ;%              24
        db      SKey            ;Ln             25
        db      AKey            ;Log            26
        db      DKey            ;Square root    27
        db      ZKey            ;X^y            28
        db      XKey            ;1/x, X!        29
        db      CKey            ;exp            30
;       db      SpaceKey        ;Square root    31
        db      QKey            ;Sin Sin-1      32
        db      WKey            ;Cos Cos-1      33
        db      EKey            ;Tan Tan-1      34
;Sin-1 30
;Cos-1 31
;Tan-1 29

KeyParity1:
        db      0               ;'0'
        db      1               ;'1'
        db      2               ;'2'
        db      3               ;'3'
        db      4               ;'4'
        db      5               ;'5'
        db      6               ;'6'
        db      7               ;'7'
        db      8               ;'8'
        db      9               ;'9'
        db      10              ;Dot
        db      12              ;Minus
        db      13              ;Shift
        db      17              ;C
        db      18              ;AC
        db      19              ;MR
        db      20              ;MC
        db      21              ;M+
        db      22              ;M-
        db      23              ;'='
        db      24              ;'+'
        db      25              ;'-'
        db      26              ;'/'
        db      27              ;'*'
        db      30              ;%
        db      31              ;Ln
        db      32              ;Log
        db      33              ;square foot
        db      28              ;X^Y
        db      34              ;1/X
        db      11              ;Exp10
;       db      15              ;angle select
        db      39              ;Sin Sin-1
        db      40              ;Cos Cos-1
        db      41              ;Tan Tan-1
KeyParity2:
        db      0               ;'0'
        db      1               ;'1'
        db      2               ;'2'
        db      3               ;'3'
        db      4               ;'4'
        db      5               ;'5'
        db      6               ;'6'
        db      7               ;'7'
        db      8               ;'8'
        db      9               ;'9'
        db      10              ;Dot
        db      15              ;Minus
        db      13              ;Shift
        db      17              ;C
        db      18              ;AC
        db      19              ;MR
        db      20              ;MC
        db      21              ;M+
        db      22              ;M-
        db      23              ;'='
        db      24              ;'+'
        db      25              ;'-'
        db      26              ;'/'
        db      27              ;'*'
        db      16              ;Hyp
        db      35              ;eX
        db      36              ;10^X
        db      37              ;X^2
        db      29              ;X^1/Y
        db      38              ;X!
        db      14              ;Pi
;       db      15              ;Angle select
        db      42              ;Sin-1
        db      43              ;Cos-1
        db      44              ;Tan-1
FONTDOT:
        db      7,12
        db      00000000b
        db      00000000b
        db      00000000b
        db      00000000b
        db      00000000b
        db      00000000b
        db      00000000b
        db      00000000b
        db      00000000b
        db      11000001b
        db      10000000b

FontMinus:
        db      7,9
        db      00000000b
        db      00000000b
        db      00000000b
        db      00000111b
        db      11000000b
        db      00000000b
        db      00000000b
        db      00000000b
FontMinuss:
        db      5,7
        db      00000000b
        db      00000001b
        db      11110000b
        db      00000000b
        db      00000000b

FontMul:
        db      7,9
        db      00000001b
        db      00000111b
        db      00011011b
        db      01100011b
        db      10000111b
        db      00011011b
        db      01100011b
        db      10000010b

FontM:
        db      7,9
        db      11000111b
        db      10001111b
        db      10111111b
        db      11111101b
        db      01111010b
        db      11110001b
        db      11100011b
        db      11000110b

FontK:  db      7,9
        db      11000111b
        db      10011011b
        db      01100111b
        db      10001110b
        db      00011110b
        db      00110110b
        db      01100110b
        db      11000110b

FontDeg:
        db      21,11
        db      11111111b               ;#####################
        db      11111111b               ;#...................#
        db      11111100b               ;#.####..#####..###..#
        db      00000000b               ;#..#..#.#.....#...#.#
        db      00000000b               ;#..#..#.#.....#.....#
        db      01101111b               ;#..#..#.####..#..##.#
        db      00111110b               ;#..#..#.#.....#...#.#
        db      01110011b               ;#..#..#.#.....#...#.#
        db      00100101b               ;#.####..#####..###..#
        db      00000100b               ;#...................#
        db      01011001b               ;#####################
        db      00101000b
        db      00100000b
        db      11001001b
        db      01111001b
        db      00110110b
        db      01001010b
        db      00001000b
        db      10110010b
        db      01010000b
        db      01000101b
        db      10111100b
        db      11111001b
        db      11001100b
        db      00000000b
        db      00000000b
        db      01111111b
        db      11111111b
        db      11111110b
FontRad:
        db      21,11
        db      11111111b               ;#####################
        db      11111111b               ;#...................#
        db      11111100b               ;#.####...###..####..#
        db      00000000b               ;#.#...#.#...#..#..#.#
        db      00000000b               ;#.#...#.#...#..#..#.#
        db      01101111b               ;#.####..#####..#..#.#
        db      00011100b               ;#.#.#...#...#..#..#.#
        db      11110011b               ;#.#..#..#...#..#..#.#
        db      01000101b               ;#.#...#.#...#.####..#
        db      00010010b               ;#...................#
        db      01011010b               ;#####################
        db      00101000b
        db      10010010b
        db      11011110b
        db      01111100b
        db      10010110b
        db      10100010b
        db      00100100b
        db      10110100b
        db      10010001b
        db      00100101b
        db      10100010b
        db      10001011b
        db      11001100b
        db      00000000b
        db      00000000b
        db      01111111b
        db      11111111b
        db      11111110b

FontAdd:
        db      8,8
        db      00011000b
        db      00011000b
        db      00011000b
        db      11111111b
        db      11111111b
        db      00011000b
        db      00011000b
        db      00011000b
FontSub:
        db      8,8
        db      00000000b
        db      00000000b
        db      00000000b
        db      11111111b
        db      11111111b
        db      00000000b
        db      00000000b
        db      00000000b
FontMulK;
        db      8,8
        db      00000000b
        db      01100011b
        db      00110110b
        db      00011100b
        db      00011100b
        db      00110110b
        db      01100011b
        db      00000000b
FontDiv:
        db      8,8
        db      00011000b
        db      00011000b
        db      00000000b
        db      11111111b
        db      11111111b
        db      00000000b
        db      00011000b
        db      00011000b

FontXey1:
        db      9,8
        db      10101111b
        db      10100100b
        db      00100010b
        db      00000001b
        db      00000000b
        db      10000001b
        db      01000000b
        db      01100000b
        db      00010000b

FontXeY:
        db      9,7
        db      00000010b
        db      11000100b
        db      10010100b
        db      10000100b
        db      00000010b
        db      00000010b
        db      10000010b
        db      00100000b

FONTHYP:
        db      20,9
        db      11001101b
        db      10011011b
        db      11101100b
        db      11011001b
        db      10110011b
        db      11001101b
        db      10011011b
        db      00111100b
        db      11001111b
        db      00110011b
        db      11111100b
        db      01100011b
        db      11101100b
        db      11000110b
        db      00110000b
        db      11001100b
        db      01100011b
        db      00001100b
        db      11000110b
        db      00110000b
        db      11001100b
        db      01100011b
        db      00000000b

Function:
        dw      Exp10F-1        ;11     10Exp
        dw      MinusF-1        ;12     '-'
        dw      ShiftF-1        ;13     Shift
        dw      PiF-1           ;14     Pi
        dw      AngleF-1        ;15     Angle
        dw      HypF-1          ;16     Hyp
        dw      ClearF-1        ;17     Clear
        dw      AClearF-1       ;18     AllClear
        dw      MRF-1           ;19     MR
        dw      MCF-1           ;20     MC
        dw      MAddF-1         ;21     M+
        dw      MSubF-1         ;22     M-
        dw      EqualF-1        ;23     '='
        dw      ADDF-1          ;24     '+'
        dw      SUBF-1          ;25     '-'
        dw      DIVF-1          ;26     '/'
        dw      MULF-1          ;27     '*'
        dw      XEYF-1          ;28     X^Y
        dw      XE1YF-1         ;29     X^1/Y
        dw      PERF-1          ;30     '%'
        dw      LnF-1           ;31     Ln
        dw      LogF-1          ;32     Log
        dw      SQRFOTF-1       ;33     Square Foot
        dw      INVF-1          ;34     1/X
        dw      EXF-1           ;35     E^X
        dw      B10EXF-1        ;36     10^X
        dw      XE2f-1          ;37     X^2
        dw      XSTEPf-1        ;38     X!
        dw      SinF-1          ;39     Sin
        dw      CosF-1          ;40     Cos
        dw      TanF-1          ;41     Tan
        dw      ASinF-1         ;42     ASin
        dw      ACosF-1         ;43     ACos
        dw      ATanF-1         ;44     ATan
        dw      SinHF-1         ;45     SinH
        dw      CosHF-1         ;46     CosH
        dw      TanHF-1         ;47     TanH
        dw      ASinHF-1        ;48     ASinH
        dw      ACosHF-1        ;49     ACosH
        dw      ATanHF-1        ;50     ATanH

OutRangeTitle:
OverFlowTitle:
ZeroTitle:
        db      '      范围超过',0
;       db      '        溢位',0
;       db      '      除数为零',0
ErrorTitle:
        db      '     ===错误===',0

Functable:
        dw      shownofun-1
        dw      showadd-1
        dw      showsub-1
        dw      showdiv-1
        dw      showmul-1
        dw      showxey-1
        dw      showxe1y-1

ShowFunction:
        lda     Funckey
        asl     ;acc 左移一位,从右边补0
        tax
        lda     FuncTable+1,x
        pha
        lda     Functable,x
        pha
        rts

        public SciBank
;=====================================================
PS6     .SECTION
BankNo  equ     SciBank
;=====================================================
;       Return from help.
SciFromHelp:
SciTimer:
        jmp	jmp_LMAINU
;====================================================
;       进入此MODE事件处理程式.
;====================================================
SciLoad:        ;helpdat.asm中有定义
        ;startuart
        ;PUTSIO  #'a'
        smb0    <Float_Stat    ;
SciLoadx:
        lda     #ds0bank
        sta     <drr

        stz     <ExpMinFlag
        stz     DecText+1
        stz     DecText
        stz     decexp
        stz     exp_flag
;====================================
        ldx     #6
?1:                            ;memory 7个字节 清除
        stz     Fac_Exp,x      ;Fac_Exp7个字节 清除
        dex
        bpl     ?1
        stz     StatusFlag     ;指向科学计算器的帮助讯息首地址.
SciLoad1:
        stz     NumStack
SciStart:
        LSetScreen      0      ; Set screen mode #1.
        stz     funckey        ;功能键清零
        jsr     ClearNum

        jmp     jmplmainu

;====================================================
;       Key press  事件处理程式.
;====================================================
SciKeyPress:
jmp_LMAINU:
        LMAINU

;====================================================
;       "半秒钟"事件处理程式.
;====================================================
SciHSec:
SciSec:
SciMin:

⌨️ 快捷键说明

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