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

📄 svgen_dq.asm

📁 变频器程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;--------------------------------------------------------------------------------
;Sector calculations ("case statement")
;--------------------------------------------------------------------------------
                LACC    *+      ; Load sector #.
                                ; ARP=AR3. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                ADD     #SECTOR_TABLE_BASE
;--------------------------------------------------------------------------------
                TBLR    *       ; FR3 = Sector subroutine address.
                                ; ARP=AR3. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                LACC    *,AR0   ; ACC = Sector subroutine address.
                                ; ARP=AR0. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                BACC            ; ARP=AR0. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
; Sector 0: this is special case for (Ualfa,Ubeta) = (0,0) 
;--------------------------------------------------------------------------------
SECTOR_SR0:   	MAR     *,AR2   ; ARP=AR2. AR0->FR2, AR2->ta, AR3->FR3.
;--------------------------------------------------------------------------------
		SPLK	#0,*+   ; ta = 0
 				; ARP=AR2. AR0->FR2, AR2->tb, AR3->FR3.
;--------------------------------------------------------------------------------
		SPLK	#0,*+   ; tb = 0
 				; ARP=AR2. AR0->FR2, AR2->tc, AR3->FR3.
;--------------------------------------------------------------------------------
		SPLK	#0,*-   ; tc = 0
 				; ARP=AR2. AR0->FR2, AR2->tb, AR3->FR3.
;--------------------------------------------------------------------------------
		MAR     *-,AR0  ; ARP=AR0. AR0->FR2, AR2->ta, AR3->FR3.		
;--------------------------------------------------------------------------------
		B	DUMMY   ; ARP=AR0. AR0->FR2, AR2->ta, AR3->FR3.                         
;--------------------------------------------------------------------------------
; Sector Subroutine #1. On arrival : 
;                                 ARP=AR0. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
SECTOR_SR1:     LACC    *-,AR3  ; ACC = Z
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SACL    *+,AR0  ; Store t1 = Z. ( FR3 = t1.)
                                ; ARP=AR0. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                LACC    *,AR3   ; ACC = Y.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *-      ; Store t2 = Y. ( FR4 = t2.)
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                LACC    #7fffh  ; ACCL= 1 (Q15).
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SUB     *+      ; ACC = 1-t1.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SUB     *-,AR2  ; ACC = 1-t1=t2.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SFR             ; ACC = (1-t1=t2)/2.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                MAR     *+      ; AR2++. Now AR2 -> tb
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR3.
;--------------------------------------------------------------------------------
                SACL    *-,AR3  ; Store tb
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                ADD     *+,AR2  ; ACC = tb + t1.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *,AR3   ; Store ta = tb + t1.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                ADD     *,AR2   ; ACC = tb + t2.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                ADRK    #2      ; Point AR2 to tc.
                                ; ARP=AR2. AR0->FR1 AR2->tc AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *-      ; Store tc.
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------
                B       SV_POST_PROCESS
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------
; Sector Subroutine #2. On arrival : 
;                                 ARP=AR0. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
SECTOR_SR2:     MAR     *-      ; ARP=AR0. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                LACC    *-,AR3  ; ACC = Y
                                ; ARP=AR3. AR0->FR0 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SACL    *+,AR0  ; Store t1 = Y. ( FR3 = t1.)
                                ; ARP=AR0. AR0->FR0 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                LACC    *+,AR3  ; ACC = X.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                NEG             ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *-      ; Store t2 = -X. ( FR4 = t2.)
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                LACC    #7fffh  ; ACCL= 1 (Q15).
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SUB     *+      ; ACC = 1-t1.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SUB     *-,AR2  ; ACC = 1-t1-t2.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SFR             ; ACC = (1-t1-t2)/2.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SACL    *,AR3  ; Store ta
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                ADD     *+,AR2  ; ACC = ta + t1.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                ADRK    #2      ; ARP=AR2. AR0->FR1 AR2->tc AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *-,AR3  ; Store tc = ta + t1.
                                ; ARP=AR3. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------
                ADD     *,AR2   ; ACC = tc + t2.
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *       ; Store tb.
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------
                B       SV_POST_PROCESS
;--------------------------------------------------------------------------------
; Sector Subroutine #3. On arrival : 
;                                 ARP=AR0. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
SECTOR_SR3:     LACC    *-,AR3  ; ACC = Z
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                NEG             ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SACL    *+,AR0  ; Store t1 = -Z. ( FR3 = t1.)
                                ; ARP=AR0. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                MAR     *-      ; ARP=AR0. AR0->FR0 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------

                LACC    *+,AR3  ; ACC = X.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *-      ; Store t2 = X. ( FR4 = t2.)
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                LACC    #7fffh  ; ACCL= 1 (Q15).
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SUB     *+      ; ACC = 1-t1.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SUB     *-,AR2  ; ACC = 1-t1=t2.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SFR             ; ACC = (1-t1=t2)/2.
                                ; ARP=AR2. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SACL    *+,AR3  ; Store ta
                                ; ARP=AR3. AR0->FR1 AR2->tb AR3->FR3.
;--------------------------------------------------------------------------------
                ADD     *+,AR2  ; ACC = ta + t1
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *+,AR3   ; Store tb = ta + t1.
                                ; ARP=AR3. AR0->FR1 AR2->tc AR3->FR4.
;--------------------------------------------------------------------------------
                ADD     *,AR2   ; ACC = tb + t2.
                                ; ARP=AR2. AR0->FR1 AR2->tc AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *-      ; Store tc.
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------
                B       SV_POST_PROCESS
                                ; ARP=AR2. AR0->FR1 AR2->tb AR3->FR4.
;--------------------------------------------------------------------------------

;--------------------------------------------------------------------------------
; Sector Subroutine #4. On arrival : 
;                                 ARP=AR0. AR0->FR2 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
SECTOR_SR4:     SBRK    #2      ; ARP=AR0. AR0->FR0 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                LACC    *+,AR3  ; ACC = X
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                NEG             ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                SACL    *+,AR0  ; Store t1 = -X. ( FR3 = t1.)
                                ; ARP=AR0. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                MAR     *+      ; ARP=AR0. AR0->FR2 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                LACC    *-,AR3  ; ACC = Z.
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR4.
;--------------------------------------------------------------------------------
                SACL    *-      ; Store t2 = Y. ( FR4 = t2.)
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------
                LACC    #7fffh  ; ACCL= 1 (Q15).
                                ; ARP=AR3. AR0->FR1 AR2->ta AR3->FR3.
;--------------------------------------------------------------------------------

⌨️ 快捷键说明

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