1 #ifndef tms5110_h 2 #define tms5110_h 3 4 5 /* TMS5110 commands */ 6 /* CTL8 CTL4 CTL2 CTL1 | PDC's */ 7 /* (MSB) (LSB) | required */ 8 #define TMS5110_CMD_RESET (0) /* 0 0 0 x | 1 */ 9 #define TMS5110_CMD_LOAD_ADDRESS (2) /* 0 0 1 x | 2 */ 10 #define TMS5110_CMD_OUTPUT (4) /* 0 1 0 x | 3 */ 11 #define TMS5110_CMD_READ_BIT (8) /* 1 0 0 x | 1 */ 12 #define TMS5110_CMD_SPEAK (10) /* 1 0 1 x | 1 */ 13 #define TMS5110_CMD_READ_BRANCH (12) /* 1 1 0 x | 1 */ 14 #define TMS5110_CMD_TEST_TALK (14) /* 1 1 1 x | 3 */ 15 16 void tms5110_init(UINT32 freq); 17 void tms5110_exit(); 18 void tms5110_reset(); 19 void tms5110_scan(INT32 nAction, INT32 *pnMin); 20 21 void tms5110_set_buffered(INT32 (*pCPUCyclesCB)(), INT32 nCpuMhz); 22 void tms5110_volume(double vol); 23 24 void tms5110_M0_callback(INT32 (*func)()); 25 INT32 tms5110_status_read(); 26 INT32 tms5110_ready_read(); 27 void tms5110_CTL_set(UINT8 data); 28 void tms5110_PDC_set(UINT8 data); 29 30 void tms5110_set_frequency(UINT32 freq); 31 void tms5110_update(INT16 *buffer, INT32 samples_len); // render samples 32 33 #endif 34