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

📄 dsp1proc.asm

📁 linux下的任天堂模拟器代码。供大家参考。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
    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 + -