home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.7z / ftp.whtech.com / emulators / v9t9 / linux / sources / V9t9 / source / speech.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-10-19  |  2.1 KB  |  96 lines

  1.  
  2. /*
  3.  
  4.  
  5. */
  6.  
  7. #ifndef __SPEECH_H__
  8. #define __SPEECH_H__
  9.  
  10. #include "16bit.h"
  11. #include "command.h"
  12.  
  13. #include "centry.h"
  14.  
  15. extern    char    speechromfilename[64];
  16.  
  17. extern     void    speech_memory_init(void);
  18.  
  19. extern     u16        speech_mmio_get_addr(void);
  20. extern     void    speech_mmio_set_addr(u16 addr);
  21. extern    bool     speech_mmio_addr_is_complete(void);
  22.  
  23. extern    void    speech_mmio_write(u8 val);
  24. extern    s8        speech_mmio_read(void);
  25.  
  26. struct    tms5200
  27. {
  28.     u8    status;        /* as returned via read-status */
  29. #define    SS_TS    0x80    /* talk status */
  30. #define SS_BL    0x40    /* buffer low */
  31. #define    SS_BE    0x20    /* buffer empty */
  32. #define SS_SPEAKING 1    /* internal */
  33.  
  34.     u8    gate;        /* how do we route Writes and Reads? */
  35. #define GT_WCMD    0x1        /* write -> command */
  36. #define GT_WDAT    0x2        /* write -> speech external data */
  37. #define    GT_RSTAT 0x4    /* read -> status */
  38. #define GT_RDAT    0x8        /* read -> data */    
  39.  
  40.     u32    addr;        /* address -- 20 bits */
  41.  
  42.     u8    fifo[16];    /* fifo buffer */
  43.     u8    out,in;        /* ptrs.  out==in --> empty */
  44.     u8    len;        /* # bytes in buffer */
  45.     
  46.     u8    bit;        /* bit offset of whatever we're reading */
  47.     u8    bits;        /* # bits read */
  48.     
  49.     u8    command;    /* last command */
  50.     u8    data;        /* data register for reading */    
  51.     
  52.     u8    timeout;    
  53.  
  54.     int addr_pos;    /* for debugger: position of address (0=complete) */
  55.  
  56. };
  57.  
  58. /*    One equation uses this struct  */
  59. struct    LPC
  60. {
  61.     int        rpt;                /* repeat */
  62.     int        pnv,env;            /* pitch, energy new value */
  63.     int        pbf,ebf;            /* pitch, energy buffer */
  64.     int        knv[12],kbf[12];    /* K new values, buffer */
  65.  
  66.     u8        decode;            /* speech flags */
  67. #define FL_unvoiced 1        /* unvoiced? */
  68. #define FL_nointerp 2        /* no interpolation */
  69. #define FL_first    4        /* first frame? */
  70. #define FL_last        8        /* stop frame seen */
  71.  
  72.     int        b[12],y[12];    /* lattice filter */
  73.     u32        ns1,ns2;        /* unvoiced hiss registers */
  74.     int        ppctr;            /* pitch counter */
  75. };
  76.  
  77. //extern    u8    *speechrom;
  78. //extern    u32    *spchaddr;
  79.  
  80. #define SPEECHABLE (FE_SPEECH|FE_PLAYSPEECH)
  81. #define PLAYSPEECH ((features&SPEECHABLE)==SPEECHABLE)
  82.  
  83. int    speech_preconfiginit(void);
  84. int    speech_postconfiginit(void);
  85. int speech_restart(void);
  86. void speech_restop(void);
  87. void speech_shutdown(void);
  88.  
  89. void    speech_intr(void);
  90.  
  91. DECL_SYMBOL_ACTION(speech_machine_state);
  92.  
  93. #include "cexit.h"
  94.  
  95. #endif
  96.