Annotation of previous_trunk/src/dsp/dsp_cpu.h, revision 1.1

1.1     ! root        1: /*
        !             2:        DSP M56001 emulation
        !             3:        Instructions interpreter, execution thread
        !             4: 
        !             5:        (C) 2003-2008 ARAnyM developer team
        !             6: 
        !             7:        This program is free software; you can redistribute it and/or modify
        !             8:        it under the terms of the GNU General Public License as published by
        !             9:        the Free Software Foundation; either version 2 of the License, or
        !            10:        (at your option) any later version.
        !            11: 
        !            12:        This program is distributed in the hope that it will be useful,
        !            13:        but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            14:        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            15:        GNU General Public License for more details.
        !            16: 
        !            17:        You should have received a copy of the GNU General Public License
        !            18:        along with this program; if not, write to the Free Software
        !            19:        Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        !            20: */
        !            21: 
        !            22: #ifndef DSP_CPU_H
        !            23: #define DSP_CPU_H
        !            24: 
        !            25: #ifdef __cplusplus
        !            26: extern "C" {
        !            27: #endif
        !            28: 
        !            29: /* Defines */
        !            30: #define BITMASK(x)     ((1<<(x))-1)
        !            31: 
        !            32: #define DSP_OMR_MA     0x00
        !            33: #define DSP_OMR_MB     0x01
        !            34: #define DSP_OMR_DE     0x02
        !            35: #define DSP_OMR_SD     0x06
        !            36: #define DSP_OMR_EA     0x07
        !            37: 
        !            38: #define DSP_SR_C       0x00
        !            39: #define DSP_SR_V       0x01
        !            40: #define DSP_SR_Z       0x02
        !            41: #define DSP_SR_N       0x03
        !            42: #define DSP_SR_U       0x04
        !            43: #define DSP_SR_E       0x05
        !            44: #define DSP_SR_L       0x06
        !            45: 
        !            46: #define DSP_SR_I0      0x08
        !            47: #define DSP_SR_I1      0x09
        !            48: #define DSP_SR_S0      0x0a
        !            49: #define DSP_SR_S1      0x0b
        !            50: #define DSP_SR_T       0x0d
        !            51: #define DSP_SR_LF      0x0f
        !            52: 
        !            53: #define DSP_SP_SE      0x04
        !            54: #define DSP_SP_UF      0x05
        !            55: 
        !            56: /* Registers numbers in dsp.registers[] */
        !            57: #define DSP_REG_X0     0x04
        !            58: #define DSP_REG_X1     0x05
        !            59: #define DSP_REG_Y0     0x06
        !            60: #define DSP_REG_Y1     0x07
        !            61: #define DSP_REG_A0     0x08
        !            62: #define DSP_REG_B0     0x09
        !            63: #define DSP_REG_A2     0x0a
        !            64: #define DSP_REG_B2     0x0b
        !            65: #define DSP_REG_A1     0x0c
        !            66: #define DSP_REG_B1     0x0d
        !            67: #define DSP_REG_A      0x0e
        !            68: #define DSP_REG_B      0x0f
        !            69: 
        !            70: #define DSP_REG_R0     0x10
        !            71: #define DSP_REG_R1     0x11
        !            72: #define DSP_REG_R2     0x12
        !            73: #define DSP_REG_R3     0x13
        !            74: #define DSP_REG_R4     0x14
        !            75: #define DSP_REG_R5     0x15
        !            76: #define DSP_REG_R6     0x16
        !            77: #define DSP_REG_R7     0x17
        !            78: 
        !            79: #define DSP_REG_N0     0x18
        !            80: #define DSP_REG_N1     0x19
        !            81: #define DSP_REG_N2     0x1a
        !            82: #define DSP_REG_N3     0x1b
        !            83: #define DSP_REG_N4     0x1c
        !            84: #define DSP_REG_N5     0x1d
        !            85: #define DSP_REG_N6     0x1e
        !            86: #define DSP_REG_N7     0x1f
        !            87: 
        !            88: #define DSP_REG_M0     0x20
        !            89: #define DSP_REG_M1     0x21
        !            90: #define DSP_REG_M2     0x22
        !            91: #define DSP_REG_M3     0x23
        !            92: #define DSP_REG_M4     0x24
        !            93: #define DSP_REG_M5     0x25
        !            94: #define DSP_REG_M6     0x26
        !            95: #define DSP_REG_M7     0x27
        !            96: 
        !            97: #define DSP_REG_SR     0x39
        !            98: #define DSP_REG_OMR    0x3a
        !            99: #define DSP_REG_SP     0x3b
        !           100: #define DSP_REG_SSH    0x3c
        !           101: #define DSP_REG_SSL    0x3d
        !           102: #define DSP_REG_LA     0x3e
        !           103: #define DSP_REG_LC     0x3f
        !           104: 
        !           105: #define DSP_REG_NULL   0x00
        !           106: #define DSP_REG_LCSAVE 0x30
        !           107: 
        !           108: /* Memory spaces for dsp.ram[], dsp.rom[] */
        !           109: #define DSP_SPACE_X    0x00
        !           110: #define DSP_SPACE_Y    0x01
        !           111: #define DSP_SPACE_P    0x02
        !           112: 
        !           113: /* Functions */
        !           114: extern void dsp56k_init_cpu(void);             /* Set dsp_core to use */
        !           115: extern void dsp56k_execute_instruction(void);  /* Execute 1 instruction */
        !           116: extern Uint16 dsp56k_execute_one_disasm_instruction(FILE *out, Uint16 pc);     /* Execute 1 instruction in disasm mode */
        !           117: 
        !           118: /* Interrupt relative functions */
        !           119: void dsp_set_interrupt(Uint32 intr, Uint32 set);
        !           120: void dsp_set_interrupt_mask(Uint32 intr, Uint32 set);
        !           121:        
        !           122: #ifdef __cplusplus
        !           123: }
        !           124: #endif
        !           125: 
        !           126: #endif /* DSP_CPU_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.