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

📄 bios.h

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

        argchk  off

WriteByte_X	MACRO
        if biosbank=BANKNO
        JSR     WriteFlashByte+30
        ELSE
        jsr     LJSR
        DW      biosbank
        DW      WriteFlashByte+29
        ENDM

;        if updatesc_bank=BANKNO
;        jsr     WriteFlashByte_Bug
;        else
;        jsr     LJSR
;        dw      updatesc_bank
;        dw      WriteFlashByte_Bug-1
;        endif
;        ENDM

LReadSecretCodeToBuff   MACRO
        if toolbank=BANKNO
        jsr     ReadSecretCodeToBuff	;;zl.把FLASH里的密码读进RAM的FDATA里 define in tool.asm
        else
        jsr     LJSR
        dw      ToolBank		;;程式bank define in data.def zl.
        dw      ReadSecretCodeToBuff-1
        endif
        ENDM
;[M]-----------------------------------------------[M]
;       Wait timer.
;
;        Function : 等待设定的 Timer时间到达.
;     Description : 下了此Macro後,程式将强制停止,直到
;                   Timer 的时间到达.
;                   下此Macro时一定要先设定Timer的时间,
;                   否则此Macro将等不到Timer到达时间
;                   而形成无穷回圈.
;  Input argument : 无.
; Output argument : 无.
;
;[M]-----------------------------------------------[M]
WaitTimer macro

        db      05Fh            ; bbr5 op code.
        db      <EFlag          ; RAM.
        db      0fdh            ; Branch location.
        rmb5    <EFlag          ; Clear timer event.

        endm

;[M]-----------------------------------------------[M]
;       Adjust OSC.
;        Function : 根据本机状况调整主振状况.
;     Description :
;  Input argument : 无.
; Output argument : 无.
;[M]-----------------------------------------------[M]
LAdjOSC macro
        if       BiosBank=BankNo
          jsr     AdjOSC
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      AdjOSC-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       Set timer
;        Function : Set interval time.
;     Description :
;  Input argument : x : 设定Timer的间隔时间.
;                   interval time  = X * 7.8125 mS.
;                   if X==0 then stop this timer.
; Output argument : 无.
;[M]-----------------------------------------------[M]
LSetTimer macro _ntime
        ifma    1
          ldx     #_ntime
        endif

        if       BiosBank=BankNo
          jsr     SetTimer
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      SetTimer-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       (x)++ , if (x) == 60 then (x)=0
;
;        Function : (x)++
;     Description : x所指的RAM(Zero page)加一(十进制),
;                   如果(x) == 60 则 (x)=0
;  Input argument : x
; Output argument : if ++(x) == 60 then
;                      Zero flag=1
;                   else
;                      Zero flag=0
;
;                   x++
;[M]-----------------------------------------------[M]
LAdc60  macro
        if       BiosBank=BankNo
          jsr     Adc60
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      Adc60-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       (0,x) ++ , if ==24 then (0,x)=0
;        Function : (x)++
;     Description : x所指的RAM(Zero page)加一(十进制),
;                   如果(x) == 24 则 (x)=0
;  Input argument : x
; Output argument : if ++(x) == 24 then
;                      Zero flag=1
;                   else
;                      Zero flag=0
;[M]-----------------------------------------------[M]
LAdc24  macro
        if       BiosBank=BankNo
          jsr     Adc24
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      Adc24-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       Date ++.
;
;        Function : (x)++ [Day]
;     Description : x所指的RAM(Zero page)加一(十进制),
;                   如果(x)超过[当月日数]则(x)=0
;  Input argument : x : Index to date buffer in zero page.(Day)
; Output argument : if ++(x) == (当月日数) then
;                      Zero flag=1
;                   else
;                      Zero flag=0
;
;                   x++
;[M]-----------------------------------------------[M]
LIncDate macro
        if       BiosBank=BankNo
          jsr     IncDate
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      IncDate-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       Month ++.
;
;        Function : (x)++ [Month]
;     Description : x所指的RAM(Zero page)加一(十进制),
;                   如果(x) == 12 则 (x)=0
;  Input argument : x : Index to date buffer in zero page.[Month]
; Output argument : if ++(x) == 12 then
;                      Zero flag=1
;                   else
;                      Zero flag=0
;
;                   x++
;[M]-----------------------------------------------[M]
LIncMonth macro
        if       BiosBank=BankNo
          jsr     IncMonth
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      IncMonth-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       (x) ++.
;
;        Function : (x) ++
;     Description : x所指的RAM(Zero page)加一(十进制),
;                   如果(x) == (a) 则 (x)=0
;  Input argument : x : Index to date buffer in zero page.
;                   a : 目的值.
; Output argument : if (x)++ == (a) then
;                      Zero flag=1
;                   else
;                      Zero flag=0
;
;                   x++
;[M]-----------------------------------------------[M]
LNxAdc  macro
        if       BiosBank=BankNo
          jsr     NxAdc
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      NxAdc-1
        endif
        endm

;[M]-----------------------------------------------[M]
;
;        Function : (x) += (Carry flag)
;     Description : (x) += (Carry flag)
;  Input argument : x : Index to date buffer in zero page.
; Output argument : x++
;
;[M]-----------------------------------------------[M]
LNxAdc1 macro
        if       BiosBank=BankNo
          jsr     NxAdc1
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      NxAdc1-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       INS ++.
;        Function : (INS+1 , INS)++
;     Description : (INS+1 , INS)++
;  Input argument : INS+1 , INS
; Output argument :
;
;[M]-----------------------------------------------[M]
LNxINS  macro
        if       BiosBank=BankNo
          jsr     NxIns
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      NxIns-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       Seed of random increment.
;        Function : (Seed+1 , Seed) increment (random)
;     Description : Seed+1 , Seed 为一组乱数值,
;                   执行本Subroutine後将会产生下一组乱数值,
;  Input argument : Seed+1 , Seed.
; Output argument : 无.
;[M]-----------------------------------------------[M]
LNxSeed macro
        if       BiosBank=BankNo
          jsr     NxSeed
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      NxSeed-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       Set mode.
;        Function : 强制设定整个系统的Mode.
;     Description : 正常状况下Mode是由系统自动调配Mode,
;                   此Macro则由提供模组强制设定整个系统的Mode.
;  Input argument : a : Mode 值.
;                   Mode 值请叁阅 Data.def 中 MODE 定义说明.
; Output argument : 无.
;[M]-----------------------------------------------[M]
LSetMode macro
        if       BiosBank=BankNo
          jsr     SetMode
        else
          jsr     LJSR
          dw      BiosBank        ; Banck No.
          dw      SetMode-1
        endif
        endm

;[M]-----------------------------------------------[M]
;       Entry function menu select mode.
;
;        Function : 到总目录选单.
;     Description :

⌨️ 快捷键说明

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