| c_speak.s (alcyon version, circa 18 sept 1990)
|
| $Log: c_speak.s,v $
| Revision 2.1  1991/09/14  21:13:34  rosenkra
| clean up for release to atari.archive.
|
| Revision 2.0  1991/09/14  15:52:28  rosenkra
| port to GNU C. assembler still needed, though it could be inlined.
| it won't be portable anyway and this is just as easy. this is for
| the GAS assembler.
|
| Revision 1.0  1991/09/14  01:51:22  rosenkra
| Initial revision
|
|
| this is the inline assembler from talk.c which calls speak.tos in 2 passes
| the first is to translate the ascii string into phonemes and the second
| actually does the talking. i found it much easier to get this to work with
| a seperate .s file rather than trying to figure out inline assembler.
|
| note the registers MUST be saved. i am not sure which so i save them all.
|
| compile this with gas (GNU).
|

	.text

rcsid_c_speak_s:
	.ascii	"$Id: c_speak.s,v 2.1 1991/09/14 21:13:34 rosenkra Exp $\0"

	.even

.globl	_c_speak			| this module
.globl	_program			| -> to speak.tos start

_c_speak:
	moveml	a0-a6/d0-d7,sp@-	| save all registers. speak kills 'em

	movel	#50,d0			| set up first jump..
	addl	_program,d0
	movel	d0,a2
	jbsr	a2@			| go!

	movel	#136,d0			| set up second jump...
	addl	_program,d0
	movel	d0,a2
	jbsr	a2@			| now speak


	moveml	sp@+,a0-a6/d0-d7	| restore registers

	rts

