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

📄 dsp.asm

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;Copyright (C) 1997-2001 ZSNES Team ( zsknight@zsnes.com / _demo_@zsnes.com )
;
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either
;version 2 of the License, or (at your option) any later
;version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

%include "macros.mac"

EXTSYM BRRPlace0,BRRPlace1,BRRPlace2,BRRPlace3,BRRPlace4,BRRPlace5,BRRPlace6
EXTSYM BRRPlace7,Decrease,DecreaseRateExp,EchoFB,EchoRate,EchoVL,EchoVR
EXTSYM FIRTAPVal0,FIRTAPVal1,FIRTAPVal2,FIRTAPVal3,FIRTAPVal4,FIRTAPVal5
EXTSYM FIRTAPVal6,FIRTAPVal7,GlobalVL,GlobalVR,Increase,IncreaseBent
EXTSYM MaxEcho,MusicVol,NoiseInc,NoiseSpeeds,SBToSPC,Voice0End,Voice0EnvInc
EXTSYM Voice0IncNumber,Voice0Loop,Voice0Noise,Voice0Prev0,Voice0Prev1
EXTSYM Voice0Start,Voice0State,Voice0Status,Voice0Time,Voice1End,Voice1Noise
EXTSYM Voice1Prev0,Voice1Prev1,Voice1Start,Voice2End,Voice2Noise,Voice2Prev0
EXTSYM Voice2Prev1,Voice2Start,Voice3End,Voice3Noise,Voice3Prev0,Voice3Prev1
EXTSYM Voice3Start,Voice4End,Voice4Noise,Voice4Prev0,Voice4Prev1,Voice4Start
EXTSYM Voice5End,Voice5Noise,Voice5Prev0,Voice5Prev1,Voice5Start,Voice6End
EXTSYM Voice6Noise,Voice6Prev0,Voice6Prev1,Voice6Start,Voice7End,Voice7Noise
EXTSYM Voice7Prev0,Voice7Prev1,Voice7Start,VolumeConvTable,VolumeTableb,keyonsn
EXTSYM RevStereo,Voice1Status,Voice2Status,Voice3Status,Voice4Status,Voice5Status
EXTSYM Voice6Status,Voice7Status
EXTSYM GainDecBendDataPos,GainDecBendDataTime,GainDecBendDataDat
EXTSYM AdsrSustLevLoc,AdsrBlocksLeft,AdsrNextTimeDepth
EXTSYM MuteVoiceF,VoiceStarter
EXTSYM DecayRate,SustainRate,SustainValue
EXTSYM KeyOnStA,KeyOnStB,SoundTest

NEWSYM DspAsmStart

%include "betauser.mac"





;none times 256 db 0

identcode db 255,1,78,78
idcodedata db USERNAMEI
;sardcode db 234,76,80,128,65,65 ; 6
;efxcode db 17,47,62,97,26,126,98 ; 7
;zopcode db 54,39,21,0,0,8,14,12,18 ; 9
;yoshcode db 0,68,23,76,123,98,34,87,12,98,65 ; 11
;deejcode db 78,39,240,150,15,78,39,68,89,54,32,33 ; 12
;vmprcode db 127,127,127,127,255,255,255,255,0,0,0,0,1,0,1,0     ; 16
;conjcode db 32,32,25,20,78,232,242,242,0,1,4,98,98,45,13,12,99   ; 17
;wnelcode db 32,64,123,76,123,76,12,0,1,7,43,12,87,18,51,136,65,132 ; 18
;crascode db 82,48,89,26,65,10,200,26,73,84,29,120,37,213,78,89,111,23,84,13,200 ; 21 - Crashman

; Digital Sound Processor of the SPC700 By _Demo_

%macro initrevsthelp 1
    mov al,[DSPMem+01h+%1]
    mov ah,[DSPMem+00h+%1]
    mov [DSPMem+01h+%1],ah
    mov [DSPMem+00h+%1],al
%endmacro

NEWSYM initrevst
    cmp byte[RevStereo],0
;    jne .norev
    ret
.norev
    initrevsthelp 00h
    initrevsthelp 10h
    initrevsthelp 20h
    initrevsthelp 30h
    initrevsthelp 40h
    initrevsthelp 50h
    initrevsthelp 60h
    initrevsthelp 70h
    ret

ALIGN32

NEWSYM DSPMem, times 256 db 0

;Read DSP Registers functions

NEWSYM RDSPReg00       ; Voice  0  Volume Left
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+00h]
      ret
.rev
      mov al,[DSPMem+01h]
      ret

NEWSYM RDSPReg01       ; Voice  0  Volume Right
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+01h]
      ret
.rev
      mov al,[DSPMem+00h]
      ret

NEWSYM RDSPReg02       ; Voice  0  Pitch Low
      mov al,[DSPMem+02h]
      ret

NEWSYM RDSPReg03       ; Voice  0  Pitch High
      mov al,[DSPMem+03h]
      ret

NEWSYM RDSPReg04       ; Voice  0  SCRN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+04h]
      ret

NEWSYM RDSPReg05       ; Voice  0  ADSR (1)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+05h]
      ret

NEWSYM RDSPReg06       ; Voice  0  ADSR (2)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+06h]
      ret

NEWSYM RDSPReg07       ; Voice  0  GAIN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+07h]
      ret

NEWSYM RDSPReg08       ; Voice  0  ENVX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+08h]
      xor al,al
      ret

NEWSYM RDSPReg09       ; Voice  0  OUTX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+09h]
      ret

NEWSYM RDSPReg0A       ;
      mov al,[DSPMem+0Ah]
      ret

NEWSYM RDSPReg0B       ;
      mov al,[DSPMem+0Bh]
      ret

NEWSYM RDSPReg0C       ;
      mov al,[DSPMem+0Ch]
      ret

NEWSYM RDSPReg0D       ;
      mov al,[DSPMem+0Dh]
      ret

NEWSYM RDSPReg0E       ;
      mov al,[DSPMem+0Eh]
      ret

NEWSYM RDSPReg0F       ; Voice  0  Echo coefficient                                                                                                                                                                                                                                                
      mov al,[DSPMem+0Fh]
      ret

NEWSYM RDSPReg10       ; Voice  1  Volume Left                                                                                                                                                                                                                                                     
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+10h]
      ret
.rev
      mov al,[DSPMem+11h]
      ret

NEWSYM RDSPReg11       ; Voice  1  Volume Right                                                                                                                                                                                                                                                    
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+11h]
      ret
.rev
      mov al,[DSPMem+10h]
      ret

NEWSYM RDSPReg12       ; Voice  1  Pitch Low                                                                                                                                                                                                                                                       
      mov al,[DSPMem+012h]
      ret

NEWSYM RDSPReg13       ; Voice  1  Pitch High                                                                                                                                                                                                                                                      
      mov al,[DSPMem+013h]
      ret

NEWSYM RDSPReg14       ; Voice  1  SCRN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+014h]
      ret

NEWSYM RDSPReg15       ; Voice  1  ADSR (1)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+015h]
      ret

NEWSYM RDSPReg16       ; Voice  1  ADSR (2)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+016h]
      ret

NEWSYM RDSPReg17       ; Voice  1  GAIN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+017h]
      ret

NEWSYM RDSPReg18       ; Voice  1  ENVX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+018h]
      xor al,al
      ret

NEWSYM RDSPReg19       ; Voice  1  OUTX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+019h]
      ret

NEWSYM RDSPReg1A       ;
      mov al,[DSPMem+01Ah]
      ret

NEWSYM RDSPReg1B       ;
      mov al,[DSPMem+01Bh]
      ret

NEWSYM RDSPReg1C       ;
      mov al,[DSPMem+01Ch]
      ret

NEWSYM RDSPReg1D       ;
      mov al,[DSPMem+01Dh]
      ret

NEWSYM RDSPReg1E       ;
      mov al,[DSPMem+01Eh]
      ret

NEWSYM RDSPReg1F       ; Voice  1  Echo coefficient                                                                                                                                                                                                                                                
      mov al,[DSPMem+01Fh]
      ret

NEWSYM RDSPReg20       ; Voice  2  Volume Left                                                                                                                                                                                                                                                     
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+20h]
      ret
.rev
      mov al,[DSPMem+21h]
      ret

NEWSYM RDSPReg21       ; Voice  2  Volume Right                                                                                                                                                                                                                                                    
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+21h]
      ret
.rev
      mov al,[DSPMem+20h]
      ret

NEWSYM RDSPReg22       ; Voice  2  Pitch Low                                                                                                                                                                                                                                                       
      mov al,[DSPMem+022h]
      ret

NEWSYM RDSPReg23       ; Voice  2  Pitch High                                                                                                                                                                                                                                                      
      mov al,[DSPMem+023h]
      ret

NEWSYM RDSPReg24       ; Voice  2  SCRN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+024h]
      ret

NEWSYM RDSPReg25       ; Voice  2  ADSR (1)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+025h]
      ret

NEWSYM RDSPReg26       ; Voice  2  ADSR (2)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+026h]
      ret

NEWSYM RDSPReg27       ; Voice  2  GAIN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+027h]
      ret

NEWSYM RDSPReg28       ; Voice  2  ENVX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+028h]
      xor al,al
      ret

NEWSYM RDSPReg29       ; Voice  2  OUTX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+029h]
      ret

NEWSYM RDSPReg2A       ;
      mov al,[DSPMem+02Ah]
      ret

NEWSYM RDSPReg2B       ;
      mov al,[DSPMem+02Bh]
      ret

NEWSYM RDSPReg2C       ;
      mov al,[DSPMem+02Ch]
      ret

NEWSYM RDSPReg2D       ;
      mov al,[DSPMem+02Dh]
      ret

NEWSYM RDSPReg2E       ;
      mov al,[DSPMem+02Eh]
      ret

NEWSYM RDSPReg2F       ; Voice  2  Echo coefficient                                                                                                                                                                                                                                                
      mov al,[DSPMem+02Fh]
      ret

NEWSYM RDSPReg30       ; Voice  3  Volume Left                                                                                                                                                                                                                                                     
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+30h]
      ret
.rev
      mov al,[DSPMem+31h]
      ret

NEWSYM RDSPReg31       ; Voice  3  Volume Right                                                                                                                                                                                                                                                    
;      cmp byte[RevStereo],1
;      je .rev
      mov al,[DSPMem+31h]
      ret
.rev
      mov al,[DSPMem+30h]
      ret

NEWSYM RDSPReg32       ; Voice  3  Pitch Low                                                                                                                                                                                                                                                       
      mov al,[DSPMem+032h]
      ret

NEWSYM RDSPReg33       ; Voice  3  Pitch High                                                                                                                                                                                                                                                      
      mov al,[DSPMem+033h]
      ret

NEWSYM RDSPReg34       ; Voice  3  SCRN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+034h]
      ret

NEWSYM RDSPReg35       ; Voice  3  ADSR (1)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+035h]
      ret

NEWSYM RDSPReg36       ; Voice  3  ADSR (2)                                                                                                                                                                                                                                                        
      mov al,[DSPMem+036h]
      ret

NEWSYM RDSPReg37       ; Voice  3  GAIN                                                                                                                                                                                                                                                            
      mov al,[DSPMem+037h]
      ret

NEWSYM RDSPReg38       ; Voice  3  ENVX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+038h]
      xor al,al
      ret

NEWSYM RDSPReg39       ; Voice  3  OUTX                                                                                                                                                                                                                                                            
      mov al,[DSPMem+039h]
      ret

⌨️ 快捷键说明

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