📄 dsp.asm
字号:
keyoffm 6.TestVoice7 test al,128 jz .TestVoice8 keyoffm 7.TestVoice8 mov [DSPMem+05Ch],al retNEWSYM WDSPReg5D ; Voice 5 mov [DSPMem+05Dh],al retNEWSYM WDSPReg5E ; Voice 5 mov [DSPMem+05Eh],al retNEWSYM WDSPReg5F ; Voice 5 Echo coefficient mov [DSPMem+05Fh],al push eax movsx eax,al mov [FIRTAPVal5],eax pop eax retNEWSYM WDSPReg60 ; Voice 6 Volume Left mov [DSPMem+60h],al retNEWSYM WDSPReg61 ; Voice 6 Volume Right mov [DSPMem+61h],al retNEWSYM WDSPReg62 ; Voice 6 Pitch Low mov [DSPMem+062h],al retNEWSYM WDSPReg63 ; Voice 6 Pitch High mov [DSPMem+063h],al retNEWSYM WDSPReg64 ; Voice 6 SCRN mov [DSPMem+64h],al retNEWSYM WDSPReg65 ; Voice 6 ADSR (1) VoiceAdsr 6 retNEWSYM WDSPReg66 ; Voice 6 ADSR (2) VoiceAdsr2 6 retNEWSYM WDSPReg67 ; Voice 6 GAIN VoiceGain 6 retNEWSYM WDSPReg68 ; Voice 6 ENVX mov [DSPMem+068h],al retNEWSYM WDSPReg69 ; Voice 6 OUTX mov [DSPMem+069h],al retNEWSYM WDSPReg6A ; Voice 6 mov [DSPMem+06Ah],al retNEWSYM WDSPReg6B ; Voice 6 mov [DSPMem+06Bh],al retNEWSYM WDSPReg6C ; Voice 6 mov [DSPMem+06Ch],al and byte[DSPMem+06Ch],7Fh test al,0C0h jz .NoRes2 mov byte[Voice0Status],0 mov byte[Voice1Status],0 mov byte[Voice2Status],0 mov byte[Voice3Status],0 mov byte[Voice4Status],0 mov byte[Voice5Status],0 mov byte[Voice6Status],0 mov byte[Voice7Status],0.NoRes2 push eax push ebx push ecx push edx and eax,1Fh xor edx,edx mov eax,[NoiseSpeeds+eax*4] Mul dword[dspPAdj] ShrD EAX, EDX, 17 mov [NoiseInc],eax pop edx pop ecx pop ebx pop eax retNEWSYM WDSPReg6D ; Voice 6 mov [DSPMem+06Dh],al retNEWSYM WDSPReg6E ; Voice 6 mov [DSPMem+06Eh],al retNEWSYM WDSPReg6F ; Voice 6 Echo coefficient mov [DSPMem+06Fh],al push eax movsx eax,al mov [FIRTAPVal6],eax pop eax retNEWSYM WDSPReg70 ; Voice 7 Volume Left mov [DSPMem+70h],al retNEWSYM WDSPReg71 ; Voice 7 Volume Right mov [DSPMem+71h],al retNEWSYM WDSPReg72 ; Voice 7 Pitch Low mov [DSPMem+072h],al retNEWSYM WDSPReg73 ; Voice 7 Pitch High mov [DSPMem+073h],al retNEWSYM WDSPReg74 ; Voice 7 SCRN mov [DSPMem+74h],al retNEWSYM WDSPReg75 ; Voice 7 ADSR (1) VoiceAdsr 7 retNEWSYM WDSPReg76 ; Voice 7 ADSR (2) VoiceAdsr2 7 retNEWSYM WDSPReg77 ; Voice 7 GAIN VoiceGain 7 retNEWSYM WDSPReg78 ; Voice 7 ENVX mov [DSPMem+078h],al retNEWSYM WDSPReg79 ; Voice 7 OUTX mov [DSPMem+079h],al retNEWSYM WDSPReg7A ; Voice 7 mov [DSPMem+07Ah],al retNEWSYM WDSPReg7B ; Voice 7 mov [DSPMem+07Bh],al retNEWSYM WDSPReg7C ; ENDX mov byte[DSPMem+07Ch],0 retNEWSYM WDSPReg7D ; Echo Delay mov [DSPMem+07Dh],al push ebx mov ebx,eax and ebx,0Fh mov ebx,[EchoRate+ebx*4] mov [MaxEcho],ebx pop ebx retNEWSYM WDSPReg7E ; Voice 7 mov [DSPMem+07Eh],al retNEWSYM WDSPReg7F ; Voice 7 Echo coefficient mov [DSPMem+07Fh],al push eax movsx eax,al mov [FIRTAPVal7],eax pop eax retNEWSYM WDSPReg80 ; mov [DSPMem+080h],al retNEWSYM WDSPReg81 ; mov [DSPMem+081h],al retNEWSYM WDSPReg82 ; mov [DSPMem+082h],al retNEWSYM WDSPReg83 ; mov [DSPMem+083h],al retNEWSYM WDSPReg84 ; mov [DSPMem+084h],al retNEWSYM WDSPReg85 ; mov [DSPMem+085h],al retNEWSYM WDSPReg86 ; mov [DSPMem+086h],al retNEWSYM WDSPReg87 ; mov [DSPMem+087h],al retNEWSYM WDSPReg88 ; mov [DSPMem+088h],al retNEWSYM WDSPReg89 ; mov [DSPMem+089h],al retNEWSYM WDSPReg8A ; mov [DSPMem+08Ah],al retNEWSYM WDSPReg8B ; mov [DSPMem+08Bh],al retNEWSYM WDSPReg8C ; mov [DSPMem+08Ch],al retNEWSYM WDSPReg8D ; mov [DSPMem+08Dh],al retNEWSYM WDSPReg8E ; mov [DSPMem+08Eh],al retNEWSYM WDSPReg8F ; mov [DSPMem+08Fh],al retNEWSYM WDSPReg90 ; mov [DSPMem+090h],al retNEWSYM WDSPReg91 ; mov [DSPMem+091h],al retNEWSYM WDSPReg92 ; mov [DSPMem+092h],al retNEWSYM WDSPReg93 ; mov [DSPMem+093h],al retNEWSYM WDSPReg94 ; mov [DSPMem+094h],al retNEWSYM WDSPReg95 ; mov [DSPMem+095h],al retNEWSYM WDSPReg96 ; mov [DSPMem+096h],al retNEWSYM WDSPReg97 ; mov [DSPMem+097h],al retNEWSYM WDSPReg98 ; mov [DSPMem+098h],al retNEWSYM WDSPReg99 ; mov [DSPMem+099h],al retNEWSYM WDSPReg9A ; mov [DSPMem+09Ah],al retNEWSYM WDSPReg9B ; mov [DSPMem+09Bh],al retNEWSYM WDSPReg9C ; mov [DSPMem+09Ch],al retNEWSYM WDSPReg9D ; mov [DSPMem+09Dh],al retNEWSYM WDSPReg9E ; mov [DSPMem+09Eh],al retNEWSYM WDSPReg9F ; mov [DSPMem+09Fh],al retNEWSYM WDSPRegA0 ; mov [DSPMem+0A0h],al retNEWSYM WDSPRegA1 ; mov [DSPMem+0A1h],al retNEWSYM WDSPRegA2 ; mov [DSPMem+0A2h],al retNEWSYM WDSPRegA3 ; mov [DSPMem+0A3h],al retNEWSYM WDSPRegA4 ; mov [DSPMem+0A4h],al retNEWSYM WDSPRegA5 ; mov [DSPMem+0A5h],al retNEWSYM WDSPRegA6 ; mov [DSPMem+0A6h],al retNEWSYM WDSPRegA7 ; mov [DSPMem+0A7h],al retNEWSYM WDSPRegA8 ; mov [DSPMem+0A8h],al retNEWSYM WDSPRegA9 ; mov [DSPMem+0A9h],al retNEWSYM WDSPRegAA ; mov [DSPMem+0AAh],al retNEWSYM WDSPRegAB ; mov [DSPMem+0ABh],al retNEWSYM WDSPRegAC ; mov [DSPMem+0ACh],al retNEWSYM WDSPRegAD ; mov [DSPMem+0ADh],al retNEWSYM WDSPRegAE ; mov [DSPMem+0AEh],al retNEWSYM WDSPRegAF ; mov [DSPMem+0AFh],al retNEWSYM WDSPRegB0 ; mov [DSPMem+0B0h],al retNEWSYM WDSPRegB1 ; mov [DSPMem+0B1h],al retNEWSYM WDSPRegB2 ; mov [DSPMem+0B2h],al retNEWSYM WDSPRegB3 ; mov [DSPMem+0B3h],al retNEWSYM WDSPRegB4 ; mov [DSPMem+0B4h],al retNEWSYM WDSPRegB5 ; mov [DSPMem+0B5h],al retNEWSYM WDSPRegB6 ; mov [DSPMem+0B6h],al retNEWSYM WDSPRegB7 ; mov [DSPMem+0B7h],al retNEWSYM WDSPRegB8 ; mov [DSPMem+0B8h],al retNEWSYM WDSPRegB9 ; mov [DSPMem+0B9h],al retNEWSYM WDSPRegBA ; mov [DSPMem+0BAh],al retNEWSYM WDSPRegBB ; mov [DSPMem+0BBh],al retNEWSYM WDSPRegBC ; mov [DSPMem+0BCh],al retNEWSYM WDSPRegBD ; mov [DSPMem+0BDh],al retNEWSYM WDSPRegBE ; mov [DSPMem+0BEh],al retNEWSYM WDSPRegBF ; mov [DSPMem+0BFh],al retNEWSYM WDSPRegC0 ; mov [DSPMem+0C0h],al retNEWSYM WDSPRegC1 ; mov [DSPMem+0C1h],al retNEWSYM WDSPRegC2 ; mov [DSPMem+0C2h],al retNEWSYM WDSPRegC3 ; mov [DSPMem+0C3h],al retNEWSYM WDSPRegC4 ; mov [DSPMem+0C4h],al retNEWSYM WDSPRegC5 ; mov [DSPMem+0C5h],al retNEWSYM WDSPRegC6 ; mov [DSPMem+0C6h],al retNEWSYM WDSPRegC7 ; mov [DSPMem+0C7h],al retNEWSYM WDSPRegC8 ; mov [DSPMem+0C8h],al retNEWSYM WDSPRegC9 ; mov [DSPMem+0C9h],al retNEWSYM WDSPRegCA ; mov [DSPMem+0CAh],al retNEWSYM WDSPRegCB ; mov [DSPMem+0CBh],al retNEWSYM WDSPRegCC ; mov [DSPMem+0CCh],al retNEWSYM WDSPRegCD ; mov [DSPMem+0CDh],al retNEWSYM WDSPRegCE ; mov [DSPMem+0CEh],al retNEWSYM WDSPRegCF ; mov [DSPMem+0CFh],al retNEWSYM WDSPRegD0 ; mov [DSPMem+0D0h],al retNEWSYM WDSPRegD1 ; mov [DSPMem+0D1h],al retNEWSYM WDSPRegD2 ; mov [DSPMem+0D2h],al retNEWSYM WDSPRegD3 ; mov [DSPMem+0D3h],al retNEWSYM WDSPRegD4 ; mov [DSPMem+0D4h],al retNEWSYM WDSPRegD5 ; mov [DSPMem+0D5h],al retNEWSYM WDSPRegD6 ; mov [DSPMem+0D6h],al retNEWSYM WDSPRegD7 ; mov [DSPMem+0D7h],al retNEWSYM WDSPRegD8 ; mov [DSPMem+0D8h],al retNEWSYM WDSPRegD9 ; mov [DSPMem+0D9h],al retNEWSYM WDSPRegDA ; mov [DSPMem+0DAh],al retNEWSYM WDSPRegDB ; mov [DSPMem+0DBh],al retNEWSYM WDSPRegDC ; mov [DSPMem+0DCh],al retNEWSYM WDSPRegDD ; mov [DSPMem+0DDh],al retNEWSYM WDSPRegDE ; mov [DSPMem+0DEh],al retNEWSYM WDSPRegDF ; mov [DSPMem+0DFh],al retNEWSYM WDSPRegE0 ; mov [DSPMem+0E0h],al retNEWSYM WDSPRegE1 ; mov [DSPMem+0E1h],al retNEWSYM WDSPRegE2 ; mov [DSPMem+0E2h],al retNEWSYM WDSPRegE3 ; mov [DSPMem+0E3h],al retNEWSYM WDSPRegE4 ; mov [DSPMem+0E4h],al retNEWSYM WDSPRegE5 ; mov [DSPMem+0E5h],al retNEWSYM WDSPRegE6 ; mov [DSPMem+0E6h],al retNEWSYM WDSPRegE7 ; mov [DSPMem+0E7h],al retNEWSYM WDSPRegE8 ; mov [DSPMem+0E8h],al retNEWSYM WDSPRegE9 ; mov [DSPMem+0E9h],al retNEWSYM WDSPRegEA ; mov [DSPMem+0EAh],al retNEWSYM WDSPRegEB ; mov [DSPMem+0EBh],al retNEWSYM WDSPRegEC ; mov [DSPMem+0ECh],al retNEWSYM WDSPRegED ; mov [DSPMem+0EDh],al retNEWSYM WDSPRegEE ; mov [DSPMem+0EEh],al retNEWSYM WDSPRegEF ; mov [DSPMem+0EFh],al retNEWSYM WDSPRegF0 ; mov [DSPMem+0F0h],al retNEWSYM WDSPRegF1 ; mov [DSPMem+0F1h],al retNEWSYM WDSPRegF2 ; mov [DSPMem+0F2h],al retNEWSYM WDSPRegF3 ; mov [DSPMem+0F3h],al retNEWSYM WDSPRegF4 ; mov [DSPMem+0F4h],al retNEWSYM WDSPRegF5 ; mov [DSPMem+0F5h],al retNEWSYM WDSPRegF6 ; mov [DSPMem+0F6h],al retNEWSYM WDSPRegF7 ; mov [DSPMem+0F7h],al retNEWSYM WDSPRegF8 ; mov [DSPMem+0F8h],al retNEWSYM WDSPRegF9 ; mov [DSPMem+0F9h],al retNEWSYM WDSPRegFA ; mov [DSPMem+0FAh],al retNEWSYM WDSPRegFB ; mov [DSPMem+0FBh],al retNEWSYM WDSPRegFC ; mov [DSPMem+0FCh],al retNEWSYM WDSPRegFD ; mov [DSPMem+0FDh],al retNEWSYM WDSPRegFE ; mov [DSPMem+0FEh],al retNEWSYM WDSPRegFF ; mov [DSPMem+0FFh],al ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -