![]() |
Jo Engine 2026.11.1
Jo Sega Saturn Engine
|
SCU DSP: the third processor of the Saturn (about 14 MHz, one 32 x 32 bits multiply and accumulate per cycle). More...
Go to the source code of this file.
Macros | |
| #define | JO_DSP_BANK_SIZE |
| Words of a data RAM bank. | |
| #define | JO_DSP_PROGRAM_SIZE |
| Words of the program RAM. | |
| #define | JO_DSP_PPAF |
| Program control port (PPAF). | |
| #define | JO_DSP_PPD |
| Program RAM data port. | |
| #define | JO_DSP_PDA |
| Data RAM address port. | |
| #define | JO_DSP_PDD |
| Data RAM data port. | |
| #define | JO_DSP_PPAF_EXECUTE |
| PPAF: execute (write: start, read: running). | |
| #define | JO_DSP_PPAF_LOAD |
| PPAF: program counter load (the low 8 bits). | |
| #define | JO_DSP_PPAF_DMA |
| PPAF: a DMA of the DSP is in progress. | |
Functions | |
| void | jo_dsp_load_program (const unsigned int *const program, const unsigned int count) |
| Stop the DSP and load a program. | |
| void | jo_dsp_write_data (const unsigned int bank, const unsigned int address, const unsigned int *const data, const unsigned int count) |
| Write the data RAM (the DSP must be stopped). | |
| void | jo_dsp_read_data (const unsigned int bank, const unsigned int address, unsigned int *const data, const unsigned int count) |
| Read the data RAM (the DSP must be stopped). | |
| static __jo_force_inline void | jo_dsp_start (const unsigned int pc) |
| Start the program loaded by jo_dsp_load_program(). | |
| static __jo_force_inline bool | jo_dsp_is_running (void) |
| Check if the DSP is running. | |
| static __jo_force_inline void | jo_dsp_wait (void) |
| Wait for the end of the program started by jo_dsp_start(). | |
SCU DSP: the third processor of the Saturn (about 14 MHz, one 32 x 32 bits multiply and accumulate per cycle).
| #define JO_DSP_BANK_SIZE |
Words of a data RAM bank.
| #define JO_DSP_PDA |
Data RAM address port.
| #define JO_DSP_PDD |
Data RAM data port.
| #define JO_DSP_PPAF |
Program control port (PPAF).
| #define JO_DSP_PPAF_DMA |
PPAF: a DMA of the DSP is in progress.
| #define JO_DSP_PPAF_EXECUTE |
PPAF: execute (write: start, read: running).
| #define JO_DSP_PPAF_LOAD |
PPAF: program counter load (the low 8 bits).
| #define JO_DSP_PPD |
Program RAM data port.
| #define JO_DSP_PROGRAM_SIZE |
Words of the program RAM.
|
static |
Check if the DSP is running.
| void jo_dsp_load_program | ( | const unsigned int *const | program, |
| const unsigned int | count ) |
Stop the DSP and load a program.
| program | Instructions |
| count | Instruction count (256 at most) |
| void jo_dsp_read_data | ( | const unsigned int | bank, |
| const unsigned int | address, | ||
| unsigned int *const | data, | ||
| const unsigned int | count ) |
Read the data RAM (the DSP must be stopped).
| bank | Bank (0 to 3) |
| address | First word (0 to 63) |
| data | Words (output) |
| count | Word count |
|
static |
Start the program loaded by jo_dsp_load_program().
| pc | First instruction |
|
static |
Wait for the end of the program started by jo_dsp_start().
| void jo_dsp_write_data | ( | const unsigned int | bank, |
| const unsigned int | address, | ||
| const unsigned int *const | data, | ||
| const unsigned int | count ) |
Write the data RAM (the DSP must be stopped).
| bank | Bank (0 to 3) |
| address | First word (0 to 63) |
| data | Words |
| count | Word count |