📄 dsp1proc.asm
字号:
mov [Op0CY1],ax pushad call DSPOp0C popad mov ax,[Op0CX2] mov [DSP1RET],ax mov ax,[Op0CY2] mov [DSP1RET+2],ax mov byte[DSP1RLeft],2 pop eax retDSP1_1C: ; 3D Coordinate Rotation push eax mov ax,[DSP1VARS] mov [Op1CZ],ax mov ax,[DSP1VARS+2] mov [Op1CY],ax mov ax,[DSP1VARS+4] mov [Op1CX],ax mov ax,[DSP1VARS+6] mov [Op1CXBR],ax mov ax,[DSP1VARS+8] mov [Op1CYBR],ax mov ax,[DSP1VARS+10] mov [Op1CZBR],ax pushad call DSPOp1C popad mov ax,[Op1CXAR] mov [DSP1RET],ax mov ax,[Op1CYAR] mov [DSP1RET+2],ax mov ax,[Op1CZAR] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax retDSP1_02: ; Vector Size or byte[DSPDet],10h push eax mov ax,[DSP1VARS] mov [Op02FX],ax mov ax,[DSP1VARS+2] mov [Op02FY],ax mov ax,[DSP1VARS+4] mov [Op02FZ],ax mov ax,[DSP1VARS+6] mov [Op02LFE],ax mov ax,[DSP1VARS+8] mov [Op02LES],ax mov ax,[DSP1VARS+10] mov [Op02AAS],ax mov ax,[DSP1VARS+12] mov [Op02AZS],ax pushad call DSPOp02 popad mov ax,[Op02VOF] mov [DSP1RET],ax mov ax,[Op02VVA] mov [DSP1RET+2],ax mov ax,[Op02CX] mov [DSP1RET+4],ax mov ax,[Op02CY] mov [DSP1RET+6],ax mov byte[DSP1RLeft],4 pop eax ret mov eax,dsp1array add eax,[dsp1ptr] push ebx mov byte[eax],02h mov bx,[Op02FX] mov [eax+1],bx mov bx,[Op02FY] mov [eax+3],bx mov bx,[Op02FZ] mov [eax+5],bx mov bx,[Op02LFE] mov [eax+7],bx mov bx,[Op02LES] mov [eax+9],bx mov bx,[Op02AAS] mov [eax+11],bx mov bx,[Op02AZS] mov [eax+13],bx mov bx,[Op02VOF] mov [eax+15],bx mov bx,[Op02VVA] mov [eax+17],bx mov bx,[Op02CX] mov [eax+19],bx mov bx,[Op02CY] mov [eax+21],bx pop ebx add dword[dsp1ptr],23DSP1_0A: ; Raster Data Calculation via DMA mov byte[DSP1COp],0Ah or byte[DSPDet],20h push eax mov ax,[DSP1VARS] mov [Op0AVS],ax pushad call DSPOp0A popad mov ax,[Op0AA] mov [DSP1RET],ax mov ax,[Op0AB] mov [DSP1RET+2],ax mov ax,[Op0AC] mov [DSP1RET+4],ax mov ax,[Op0AD] mov [DSP1RET+6],ax mov byte[DSP1RLeft],4 pop eax retDSP1_06: ; Object Projection Calculation or byte[DSPDet],40h push eax mov ax,[DSP1VARS] mov [Op06X],ax mov ax,[DSP1VARS+2] mov [Op06Y],ax mov ax,[DSP1VARS+4] mov [Op06Z],ax pushad call DSPOp06 popad mov ax,[Op06H] mov [DSP1RET],ax mov ax,[Op06V] mov [DSP1RET+2],ax mov ax,[Op06M] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax ret mov eax,dsp1array add eax,[dsp1ptr] push ebx mov byte[eax],06h mov bx,[Op06X] mov [eax+1],bx mov bx,[Op06Y] mov [eax+3],bx mov bx,[Op06Z] mov [eax+5],bx mov bx,[Op06H] mov [eax+7],bx mov bx,[Op06V] mov [eax+9],bx mov bx,[Op06M] mov [eax+11],bx pop ebx add dword[dsp1ptr],13DSP1_0E: ; Coordinate Calculation of a point onscreen push eax mov ax,[DSP1VARS] mov [Op0EH],ax mov ax,[DSP1VARS+2] mov [Op0EV],ax pushad call DSPOp0E popad mov ax,[Op0EX] mov [DSP1RET],ax mov ax,[Op0EY] mov [DSP1RET+2],ax mov byte[DSP1RLeft],2 pop eax retDSP1_01: ; Set Attitude Matrix A push eax mov ax,[DSP1VARS] mov [Op01m],ax mov ax,[DSP1VARS+2] mov [Op01Zr],ax mov ax,[DSP1VARS+4] mov [Op01Yr],ax mov ax,[DSP1VARS+6] mov [Op01Xr],ax pushad call DSPOp01 popad pop eax retDSP1_11: ; Set Attitude Matrix B push eax mov ax,[DSP1VARS] mov [Op11m],ax mov ax,[DSP1VARS+2] mov [Op11Zr],ax mov ax,[DSP1VARS+4] mov [Op11Yr],ax mov ax,[DSP1VARS+6] mov [Op11Xr],ax pushad call DSPOp11 popad pop eax retDSP1_21: ; Set Attitude Matrix C push eax mov ax,[DSP1VARS] mov [Op21m],ax mov ax,[DSP1VARS+2] mov [Op21Zr],ax mov ax,[DSP1VARS+4] mov [Op21Yr],ax mov ax,[DSP1VARS+6] mov [Op21Xr],ax pushad call DSPOp21 popad pop eax retDSP1_0D: ; Convert from global to object coords Matrix A push eax mov ax,[DSP1VARS] mov [Op0DX],ax mov ax,[DSP1VARS+2] mov [Op0DY],ax mov ax,[DSP1VARS+4] mov [Op0DZ],ax pushad call DSPOp0D popad mov ax,[Op0DF] mov [DSP1RET],ax mov ax,[Op0DL] mov [DSP1RET+2],ax mov ax,[Op0DU] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax retDSP1_0F: ; DSP RAM Test push eax mov ax,[DSP1VARS] pushad call DSPOp0F popad mov ax,[Op0FPass] mov [DSP1RET],ax mov byte[DSP1RLeft],1 pop eax retDSP1_1D: ; Convert from global to object coords Matrix B push eax mov ax,[DSP1VARS] mov [Op1DX],ax mov ax,[DSP1VARS+2] mov [Op1DY],ax mov ax,[DSP1VARS+4] mov [Op1DZ],ax pushad call DSPOp1D popad mov ax,[Op1DF] mov [DSP1RET],ax mov ax,[Op1DL] mov [DSP1RET+2],ax mov ax,[Op1DU] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax retDSP1_2D: ; Convert from global to object coords Matrix C push eax mov ax,[DSP1VARS] mov [Op2DX],ax mov ax,[DSP1VARS+2] mov [Op2DY],ax mov ax,[DSP1VARS+4] mov [Op2DZ],ax pushad call DSPOp2D popad mov ax,[Op2DF] mov [DSP1RET],ax mov ax,[Op2DL] mov [DSP1RET+2],ax mov ax,[Op2DU] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax retDSP1_03: ; Convert from object to global coords Matrix A push eax mov ax,[DSP1VARS] mov [Op03F],ax mov ax,[DSP1VARS+2] mov [Op03L],ax mov ax,[DSP1VARS+4] mov [Op03U],ax pushad call DSPOp03 popad mov ax,[Op03X] mov [DSP1RET],ax mov ax,[Op03Y] mov [DSP1RET+2],ax mov ax,[Op03Z] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax retDSP1_13: ; Convert from object to global coords Matrix B push eax mov ax,[DSP1VARS] mov [Op13F],ax mov ax,[DSP1VARS+2] mov [Op13L],ax mov ax,[DSP1VARS+4] mov [Op13U],ax pushad call DSPOp13 popad mov ax,[Op13X] mov [DSP1RET],ax mov ax,[Op13Y] mov [DSP1RET+2],ax mov ax,[Op13Z] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax retDSP1_23: ; Convert from object to global coords Matrix C push eax mov ax,[DSP1VARS] mov [Op23F],ax mov ax,[DSP1VARS+2] mov [Op23L],ax mov ax,[DSP1VARS+4] mov [Op23U],ax pushad call DSPOp23 popad mov ax,[Op23X] mov [DSP1RET],ax mov ax,[Op23Y] mov [DSP1RET+2],ax mov ax,[Op23Z] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax retDSP1_0B: ; Calculation of inner product Matrix A push eax mov ax,[DSP1VARS] mov [Op0BX],ax mov ax,[DSP1VARS+2] mov [Op0BY],ax mov ax,[DSP1VARS+4] mov [Op0BZ],ax pushad call DSPOp0B popad mov ax,[Op0BS] mov [DSP1RET],ax mov byte[DSP1RLeft],1 pop eax retDSP1_1B: ; Calculation of inner product Matrix B push eax mov ax,[DSP1VARS] mov [Op1BX],ax mov ax,[DSP1VARS+2] mov [Op1BY],ax mov ax,[DSP1VARS+4] mov [Op1BZ],ax pushad call DSPOp1B popad mov ax,[Op1BS] mov [DSP1RET],ax mov byte[DSP1RLeft],1 pop eax retDSP1_2B: ; Calculation of inner product Matrix C push eax mov ax,[DSP1VARS] mov [Op2BX],ax mov ax,[DSP1VARS+2] mov [Op2BY],ax mov ax,[DSP1VARS+4] mov [Op2BZ],ax pushad call DSPOp2B popad mov ax,[Op2BS] mov [DSP1RET],ax mov byte[DSP1RLeft],1 pop eax retDSP1_14: ; 3D angle rotation push eax mov ax,[DSP1VARS] mov [Op14Zr],ax mov ax,[DSP1VARS+2] mov [Op14Xr],ax mov ax,[DSP1VARS+4] mov [Op14Yr],ax mov ax,[DSP1VARS+6] mov [Op14U],ax mov ax,[DSP1VARS+8] mov [Op14F],ax mov ax,[DSP1VARS+10] mov [Op14L],ax pushad call DSPOp14 popad mov ax,[Op14Zrr] mov [DSP1RET],ax mov ax,[Op14Xrr] mov [DSP1RET+2],ax mov ax,[Op14Yrr] mov [DSP1RET+4],ax mov byte[DSP1RLeft],3 pop eax ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -