1 /**********************************************************************
2 
3     SP0256 Narrator Speech Processor emulation
4 
5     Copyright MESS Team.
6     Visit http://mamedev.org for licensing and usage restrictions.
7 
8 **********************************************************************
9                             _____   _____
10                    Vss   1 |*    \_/     | 28  OSC 2
11                 _RESET   2 |             | 27  OSC 1
12            ROM DISABLE   3 |             | 26  ROM CLOCK
13                     C1   4 |             | 25  _SBY RESET
14                     C2   5 |             | 24  DIGITAL OUT
15                     C3   6 |             | 23  Vdi
16                    Vdd   7 |    SP0256   | 22  TEST
17                    SBY   8 |             | 21  SER IN
18                   _LRQ   9 |             | 20  _ALD
19                     A8  10 |             | 19  SE
20                     A7  11 |             | 18  A1
21                SER OUT  12 |             | 17  A2
22                     A6  13 |             | 16  A3
23                     A5  14 |_____________| 15  A4
24 
25 **********************************************************************/
26 
27 /*
28    GI SP0256 Narrator Speech Processor
29 
30    By Joe Zbiciak. Ported to MESS by tim lindner.
31 
32  Copyright Joseph Zbiciak, all rights reserved.
33  Copyright tim lindner, all rights reserved.
34 
35  - This source code is released as freeware for non-commercial purposes.
36  - You are free to use and redistribute this code in modified or
37    unmodified form, provided you list us in the credits.
38  - If you modify this source code, you must add a notice to each
39    modified source file that it has been changed.  If you're a nice
40    person, you will clearly mark each change too.  :)
41  - If you wish to use this for commercial purposes, please contact us at
42    intvnut@gmail.com (Joe Zbiciak), tlindner@macmess.org (tim lindner)
43  - This entire notice must remain in the source code.
44 
45 */
46 
47 void sp0256_reset();
48 void sp0256_init(UINT8 *rom, INT32 clock);
49 void sp0256_set_drq_cb(void (*cb)(UINT8));
50 void sp0256_set_sby_cb(void (*cb)(UINT8));
51 void sp0256_set_clock(INT32 clock);
52 void sp0256_exit();
53 void sp0256_scan(INT32 nAction, INT32* pnMin);
54 
55 void sp0256_ald_write(UINT8 data);
56 UINT8 sp0256_lrq_read();
57 UINT8 sp0256_sby_read();
58 UINT16 sp0256_spb640_read();
59 void sp0256_spb640_write(UINT16 offset, UINT16 data);
60 void sp0256_set_clock(INT32 clock);
61 
62 void sp0256_update(INT16 *sndbuff, INT32 samples);
63