Annotation of hatari/src/falcon/dsp_cpu.h, revision 1.1.1.8

1.1       root        1: /*
1.1.1.2   root        2:        DSP M56001 emulation
                      3:        Instructions interpreter, execution thread
1.1       root        4: 
1.1.1.2   root        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
1.1.1.8 ! root       18:        along with this program; if not, write to the Free Software Foundation,
        !            19:        51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
1.1.1.2   root       20: */
                     21: 
                     22: #ifndef DSP_CPU_H
                     23: #define DSP_CPU_H
                     24: 
                     25: #ifdef __cplusplus
                     26: extern "C" {
                     27: #endif
1.1       root       28: 
                     29: /* Defines */
1.1.1.5   root       30: #define BITMASK(x)     ((1<<(x))-1)
                     31: 
1.1       root       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: 
1.1.1.3   root       53: #define DSP_SP_SE      0x04
                     54: #define DSP_SP_UF      0x05
                     55: 
1.1       root       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 */
1.1.1.5   root      114: extern void dsp56k_init_cpu(void);             /* Set dsp_core to use */
1.1.1.3   root      115: extern void dsp56k_execute_instruction(void);  /* Execute 1 instruction */
1.1.1.7   root      116: extern Uint16 dsp56k_execute_one_disasm_instruction(FILE *out, Uint16 pc);     /* Execute 1 instruction in disasm mode */
1.1       root      117: 
1.1.1.4   root      118: /* Interrupt relative functions */
                    119: void dsp_add_interrupt(Uint16 inter);
                    120: 
1.1.1.2   root      121: #ifdef __cplusplus
                    122: }
1.1       root      123: #endif
1.1.1.2   root      124: 
                    125: #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.