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

📄 main.mac

📁 本程序为一语音LCD GAME
💻 MAC
字号:
;--------------------		; macro.mac

INCDLN  MACRO   MEM
        LDLN    MEM
        SED
        CLC
        ADC     #01h
        STLN    MEM
        CLD
        ENDM
INCDHN  MACRO   MEM
        LDHN    MEM
        SED
        CLC
        ADC     #01h
        STHN    MEM
        CLD
        ENDM
  
RORLN   MACRO	mem
	CLC
	ROR	mem-40h
	ENDM
	
RORHN   MACRO	mem
	CLC
	ROR	mem-20h
	ENDM	        

CPLN   	MACRO	mem
	CMP	mem-40h
	ENDM

CPHN   	MACRO	mem
	CMP	mem-20h
	ENDM

INCD    MACRO   MEM
        LDA     MEM
        SED
        CLC
        ADC     #01h
        STA     MEM
        CLD
        ENDM	

INCLN  MACRO   mem
	INC	mem-40h
        ENDM

INCHN  MACRO   mem
	INC	mem-20h
        ENDM
        
DECLN  MACRO   mem
	DEC	mem-40h
        ENDM

DECHN  MACRO   mem
	DEC	mem-20h
        ENDM        

ADCHN	MACRO	mem
	ADC	mem-20h
	ENDM

ADCLN	MACRO	mem
	ADC	mem-40h
	ENDM

LDLN	MACRO	mem
	LDA	mem-40h
	ENDM

LDHN	MACRO	mem
	LDA	mem-20h
	ENDM

STLN	MACRO	mem
	STA	mem-40h
	ENDM

STHN	MACRO	mem
	STA	mem-20h
	ENDM
;------------------------------------	
;------------------------------------

INCDA   MACRO
        SED
        CLC
        ADC     #01h
        CLD
        ENDM

INCWD   MACRO   MEM
        LDA     MEM
        SED
        CLC
        ADC     #01h
        STA     MEM
        LDA     MEM+1
        ADC     #00h
        STA     MEM+1
        CLD
        ENDM

DECD    MACRO   MEM
        LDA     MEM
        SED
        SEC
        SBC     #01h
        STA     MEM
        CLD
        ENDM

DECXD   MACRO   MEM
        LDA     MEM,X
        SED
        SEC
        SBC     #01h
        STA     MEM,X
        CLD
        ENDM

DECDA   MACRO
        SED
        SEC
        SBC     #01h
        CLD
        ENDM

DECWD   MACRO   MEM
        LDA     MEM
        SED
        SEC
        SBC     #01h
        STA     MEM
        LDA     MEM+1
        SBC     #00h
        STA     MEM+1
        CLD
        ENDM

ADCDi   MACRO   MEM,DD
        SED
        LDA     MEM
        CLC
        ADC     #DD
        STA     MEM
        CLD
        ENDM

ADCW    MACRO   MEM
        CLC
        ADC     MEM
        STA     MEM
        LDA     #00h
        ADC     MEM+1
        STA     MEM+1
        ENDM

ADCWDi  MACRO   MEM,DD
        SED
        LDA     MEM
        CLC
        ADC     #DD
        STA     MEM
        LDA     MEM+1
        ADC     #00h
        STA     MEM+1
        CLD
        ENDM

SBCDi   MACRO   MEM,DD
        SED
        LDA     MEM
        SEC
        SBC     #DD
        STA     MEM
        CLD
        ENDM

SBCWDi  MACRO   MEM,DD
        SED
        LDA     MEM
        SEC
        SBC     #DD
        STA     MEM
        LDA     MEM+1
        SBC     #00h
        STA     MEM+1
        CLD
        ENDM

ADCDm   MACRO   MEM,MEM2
        SED
        LDA     MEM
        CLC
        ADC     MEM2
        STA     MEM
        CLD
        ENDM

ADCWDm  MACRO   MEM,MEM2
        SED
        LDA     MEM
        CLC
        ADC     MEM2
        STA     MEM
        LDA     MEM+1
        ADC     MEM2+1
        STA     MEM+1
        CLD
        ENDM

SBCDm   MACRO   MEM,MEM2
        SED
        LDA     MEM
        SEC
        SBC     MEM2
        STA     MEM
        CLD
        ENDM

SBCWDm  MACRO   MEM,MEM2
        SED
        LDA     MEM
        SEC
        SBC     MEM2
        STA     MEM
        LDA     MEM+1
        SBC     MEM2+1
        STA     MEM+1
        CLD
        ENDM
;;//---------------------------------------------------------------
; angelo leung, 06-4-20 15:35
SBCWm   MACRO   MEM,MEM2
        LDA     MEM
        SEC
        SBC     MEM2
        STA     MEM
        LDA     MEM+1
        SBC     MEM2+1
        STA     MEM+1
        ENDM

ADDm    MACRO   MEM,MEM2
        LDA     MEM
        CLC
        ADC     MEM2
        STA     MEM
        LDA     MEM+1
        ADC     MEM2+1
        STA     MEM+1
        ENDM

;;//---------------------------------------------------------------
INCW    MACRO   MEM
        INC     MEM
        BNE     ?skip#
        INC     MEM+1
?skip#
        ENDM

DECW    MACRO   MEM
        PHA
        LDA     MEM
        BNE     ?skip#
        DEC     MEM+1
?skip#
        DEC     MEM
        PLA
        ENDM

HERE    MACRO
?HHH#
        WDT_RST
        JMP     ?HHH#
        ENDM

SMBx    MACRO   MEM,BIT
        LDA     #(01h<<BIT)
        ORA     MEM
        STA     MEM
        ENDM

RMBx    MACRO   MEM,BIT
        LDA     #(0FFh^(01h<<BIT))
        AND     MEM
        STA     MEM
        ENDM

XMBx    MACRO   MEM,BIT
        LDA     #(01h<<BIT)
        EOR     MEM
        STA     MEM
        ENDM


BR0     MACRO   PARA,VAR,LABLE
        BBR@<VAR> PARA,LABLE
        ENDM

BR1     MACRO   PARA,VAR,LABLE
        BBS@<VAR> PARA,LABLE
        ENDM

LBR0    MACRO   PARA,VAR,LABLE
        LDA     #(01h<<VAR)
        AND     PARA
        BEQ     LABLE
        ENDM

LBR1     MACRO   PARA,VAR,LABLE
        LDA     #(01h<<VAR)
        AND     PARA
        BNE     LABLE
        ENDM

LSETB    MACRO   PARA,VAR
        LDA     #(01h<<VAR)
        ORA     PARA
        STA     PARA
        ENDM

LCLRB    MACRO   PARA,VAR
        LDA     #(0FFh^(01h<<VAR))
        AND     PARA
        STA     PARA
        ENDM

;ZPFlagBN        EQU    Bytes
;ZPFlag          DB     ZPFlagBN
;fMelody         EQU    0

JB      MACRO   var,label
        if  ZPFlagBN>(var/8)
        BBS@<var.mod.8>  ZPFlag+var/8,label
        else
        ---FAIL--- Flag out of range
        endif
        ENDM

JNB     MACRO   var,label
        if  ZPFlagBN>(var/8)
        BBR@<var.mod.8>  ZPFlag+var/8,label
        else
        ---FAIL--- Flag out of range
        endif
        ENDM

SETB    MACRO   var
        if  ZPFlagBN>(var/8)
        SMB@<var.mod.8>  ZPFlag+var/8
        else
        ---FAIL--- Flag out of range
        endif
        ENDM

CLRB    MACRO   var
        if  ZPFlagBN>(var/8)
        RMB@<var.mod.8>  ZPFlag+var/8
        else
        ---FAIL--- Flag out of range
        endif
        ENDM

EORB    MACRO   var
        if  ZPFlagBN>(var/8)
        LDA     #(01h<<(var.mod.8))
        EOR     ZPFlag+var/8
        STA     ZPFlag+var/8
        else
        ---FAIL--- Flag out of range
        endif
        ENDM

xJB     MACRO   flag,bit,label
        BBS@<bit>  flag,label
        ENDM

xJNB    MACRO   flag,bit,label
        BBR@<bit>  flag,label
        ENDM

xSETB   MACRO   flag,bit
        SMB@<bit>  flag
        ENDM

xCLRB   MACRO   flag,bit
        RMB@<bit>  flag
        ENDM

xEORB   MACRO   flag,bit
        LDA     #(01h<<bit)
        EOR     flag
        STA     flag
        ENDM

LCD32CxSx       MACRO   Cx,Sx
                DB      32/8*Cx+Sx/8,(01h<<(Sx.mod.8))
                ENDM

LCD32CxSS       MACRO   Cx,Sx,Sxx
                DB      32/8*Cx+Sx/8,(01h<<(Sx.mod.8))+(01h<<(Sxx.mod.8))
                ENDM

LCD32CxSb       MACRO   Cx,Sx
                DB      32/8*Cx+Sx/8
                ENDM

LCD40CxSx       MACRO   Cx,Sx
                DB      40/8*Cx+Sx/8,(01h<<(Sx.mod.8))
                ENDM

LCD48CxSx       MACRO   Cx,Sx
                DB      48/8*Cx+Sx/8,(01h<<(Sx.mod.8))
                ENDM

LCD40CxSS       MACRO   Cx,Sx,Sxx
                DB      40/8*Cx+Sx/8,(01h<<(Sx.mod.8))+(01h<<(Sxx.mod.8))
                ENDM

LCD40CxSb       MACRO   Cx,Sx
                DB      40/8*Cx+Sx/8
                ENDM

LCD40CxSxb      MACRO   Cx,Sx
                DB      40/8*Cx+Sx/8,Sx.mod.8
                ENDM

LCD40Cx         MACRO   Cx
                DB      40/8*Cx
                ENDM

LCD60CxSx       MACRO   Cx,Sx
                DB      6*Cx+Sx/8,(01h<<(Sx.mod.8))
                ENDM


SHIFT_LEFT_B    MACRO   memL,memH
        LDLN    memH
        STHN    memH
        LDHN    memL
        STLN    memH
        ENDM

SHIFT_LEFT_B0   MACRO   mem
        LDLN    mem
        STHN    mem
        LDA     #00h
        STLN    mem
        ENDM

SHIFT_RIGHT_B   MACRO   memL,memH
        LDHN    memL
        STLN    memL
        LDLN    memH
        STHN    memL
        ENDM

SHIFT_RIGHT_B0  MACRO   mem
        LDHN    mem
        STLN    mem
        LDA     #00h
        STHN    mem
        ENDM

SHIFT_RIGHT_B1  MACRO   mem
        LDHN    mem
        STLN    mem
        LDA     #01h
        STHN    mem
        ENDM

SHIFT_LEFT_B1    MACRO   memL,memH
        LDHN    memL
        STLN    memH
        ENDM

SHIFT_LEFT_X    MACRO   memL,memH
        LDLN_X  memH
        STHN_X  memH
        LDHN_X  memL
        STLN_X  memH
        ENDM

SHIFT_LEFT_X0   MACRO   mem
        LDLN_X  mem
        STHN_X  mem
        LDA     #00h
        STLN_X  mem
        ENDM

SHIFT_RIGHT_X   MACRO   memL,memH
        LDHN_X  memL
        STLN_X  memL
        LDLN_X  memH
        STHN_X  memL
        ENDM

SHIFT_RIGHT_X0  MACRO   mem
        LDHN_X  mem
        STLN_X  mem
        LDA     #00h
        STHN_X  mem
        ENDM

SHIFT_RIGHT_X1  MACRO   mem
        LDHN_X  mem
        STLN_X  mem
        LDA     #01h
        STHN_X  mem
        ENDM

SHIFT_LEFT_X1    MACRO   memL,memH
        LDHN_X  memL
        STLN_X  memH
        ENDM
        
        
;------------------			; 2020.mac
;------------------------------------
TONE_VDD        MACRO
        RMB0    PADFUNC0
        ENDM
TONE_TMR0       MACRO
        SMB0    PADFUNC0
        ENDM

;------------------------------------
EN_TMR0_IRQ     MACRO
        SMB1    IER
        ENDM
EN_TMR1_IRQ     MACRO
        SMB2    IER
        ENDM
EN_KEY_IRQ      MACRO
        SMB4    IER
        ENDM
EN_LCD_IRQ      MACRO
        SMB6    IER
        ENDM

DIS_TMR0_IRQ     MACRO
        RMB1    IER
        ENDM
DIS_TMR1_IRQ     MACRO
        RMB2    IER
        ENDM
DIS_KEY_IRQ      MACRO
        RMB4    IER
        ENDM
DIS_LCD_IRQ      MACRO
        RMB6    IER
        ENDM


;------------------------------------
IF_DIV_IRQ_FLAG MACRO   LAB1
        BBS0    IFR,LAB1
        ENDM
IF_NOT_DIV_IRQ_FLAG MACRO   LAB1
        BBR0    IFR,LAB1
        ENDM
IF_TMR0_IRQ_FLAG MACRO   LAB1
        BBS1    IFR,LAB1
        ENDM
IF_NOT_TMR0_IRQ_FLAG MACRO   LAB1
        BBR1    IFR,LAB1
        ENDM
IF_TMR1_IRQ_FLAG MACRO   LAB1
        BBS2    IFR,LAB1
        ENDM
IF_KEY_IRQ_FLAG MACRO   LAB1
        BBS4    IFR,LAB1
        ENDM
IF_LCD_IRQ_FLAG MACRO   LAB1
        BBS6    IFR,LAB1
        ENDM
IF_NOT_LCD_IRQ_FLAG MACRO   LAB1
        BBR6    IFR,LAB1
        ENDM
;------------------------------------
CLR_DIV_IRQ_FLAG MACRO
        RMB0    IFR
        ENDM
CLR_TMR0_IRQ_FLAG      MACRO
        RMB1    IFR
        ENDM
CLR_TMR1_IRQ_FLAG      MACRO
        RMB2    IFR
        ENDM
CLR_KEY_IRQ_FLAG      MACRO
        RMB4    IFR
        ENDM
CLR_LCD_IRQ_FLAG       MACRO
        RMB6    IFR
        ENDM


;------------------------------------
Fext_OFF        MACRO
        RMB1    SYSCLK
        ENDM
Fext_ON         MACRO
        SMB1    SYSCLK
        ENDM

Fsub_Fext MACRO
        Fext_ON
        ENDM
Fsub_32KCLK     MACRO
        Fext_OFF
        ENDM

Fosc_OFF        MACRO
        RMB2    SYSCLK
        ENDM
Fosc_ON         MACRO
        SMB2    SYSCLK
        ENDM

Fcpu_Fext  MACRO
        SMB7    SYSCLK
        RMB2    SYSCLK
        ENDM
Fcpu_Fsys    MACRO
        SMB2    SYSCLK
        RMB7    SYSCLK
        ENDM

TMR1_S_Fsub  MACRO
	RMB2	TMCLK
	ENDM

TMR1_S_Fosc  MACRO
	SMB2	TMCLK
	ENDM
;------------------------------------
TMR0_ON MACRO
        SMB0    TMRCTL
        ENDM
TMR0_OFF MACRO
        RMB0    TMRCTL
        ENDM

TMR1_ON MACRO
        SMB1    TMRCTL
        ENDM
TMR1_OFF MACRO
        RMB1    TMRCTL
        ENDM

LCD_ON           MACRO
        SMB4    TMRCTL
        ENDM
LCD_OFF          MACRO
        RMB4    TMRCTL
        ENDM

PWM_ON  MACRO
        SMB7    TMRCTL
        ENDM
PWM_OFF MACRO
        RMB7    TMRCTL
        ENDM

IF_PWM_ON       MACRO   LAB
        BBS7    TMRCTL,LAB
        ENDM
IF_PWM_OFF      MACRO   LAB
        BBR7    TMRCTL,LAB
        ENDM

;------------------------------------
3Bias    MACRO
        SMB6    LCD_CTL
        ENDM
4Bias    MACRO
        RMB6    LCD_CTL
        ENDM        
        
;---------------------------	
;---------------------------
;--------------------------	; new.mac
CAJE	MACRO	mem1,mem2,LABEL

	LDA	mem1
	CMP	mem2
	BNE	$+5
	JMP	LABEL

	ENDM
;------------------------------------
BBR	MACRO	MEM,BIT,LABEL

        LDA     #(01h<<BIT)
	AND	MEM
	BNE	$+5
	JMP	LABEL

	ENDM	
;------------------------------------
CAJNE	MACRO	mem1,mem2,LABEL

	LDA	mem1
	CMP	mem2
	BEQ	$+5
	JMP	LABEL

	ENDM
;------------------------------------
CAJHE	MACRO	mem1,mem2,LABEL

	LDA	mem1
	CPHN	mem2
	BNE	$+5
	JMP	LABEL

	ENDM
;------------------------------------
CAJLE	MACRO	mem1,mem2,LABEL

	LDA	mem1
	CPLN	mem2
	BNE	$+5
	JMP	LABEL

	ENDM
;------------------------------------     
;;2004-12-23

_AToSP  MACRO		; set SP from A reg
	TAX		; rv9

⌨️ 快捷键说明

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