	AREA |SWI$$Code|, CODE, READONLY

	EXPORT xspch_ready[LEAF]

xspch_ready
	STMFD	R13!,{LR}
	MOV	R12,R0
	SWI	&62B80
	LDMVSFD	R13!,{PC}^
	TEQS	R12,#0
	STRNE	R0,[R12]
	MOV	R0,#0
	LDMFD	R13!,{PC}^

	EXPORT	spch_oldchannel[LEAF]
spch_oldchannel
	SWI	&42B81
	MOVS	PC,LR

	EXPORT	spch_say[LEAF]
spch_say
	SWI	&42B83
	MOVS	PC,LR

	EXPORT	spch_sayw[LEAF]
spch_sayw
	SWI	&42B84
	MOVS	PC,LR

	EXPORT	spch_reset[LEAF]
spch_reset
	SWI	&42B8C
	MOVS	PC,LR

	EXPORT	datavox_type[LEAF]
datavox_type
	SWI	&44380
	MOVS	PC,LR

	EXPORT	datavox_timed[LEAF]
datavox_timed
	SWI	&44381
	MOVS	PC,LR

	EXPORT	datavox_set_memory[LEAF]
datavox_set_memory
	SWI	&44386
	MOVS	PC,LR

	EXPORT	datavox_read_address[LEAF]
datavox_read_address
	SWI	&44388
	MOV	R0,R1
	MOVS	PC,LR

	EXPORT	datavox_sample_to_pitch[LEAF]
datavox_sample_to_pitch
	SWI	&4438E
	MOVS	PC,LR

	EXPORT	datavox_unset[LEAF]
datavox_unset
	SWI	&44390
	MOVS	PC,LR

	EXPORT	datavox_deallocate_channel[LEAF]
datavox_deallocate_channel
	SWI	&44394
	MOVS	PC,LR

	EXPORT	datavox_request_channel[LEAF]
datavox_request_channel
	SWI	&44395
	MOVS	PC,LR

;
; font_find_field is broken in OSLib 5.1 (puts first param in R0, not R1)
;
	EXPORT font_find_field[LEAF]

font_find_field
	STMFD	R13!,{R2}
	MOV	R2,R1
	MOV	R1,R0
	SWI	&400A6
	LDR	R12,[R13,#0]
	TEQS	R12,#0
	STRNE	R1,[R12]
	MOV	R0,R2
	ADD	R13,R13,#4
	MOVS	PC,LR

;
; font_apply_fields is broken as of Font Manager 3.36 - it corrupts R5-R7
;
	EXPORT font_apply_fields[LEAF]

font_apply_fields
	STMFD	R13!,{R5-R7}
	SWI	&400A7
	MOV	R0,R3
	LDMFD   R13!,{R5-R7}
	MOVS	PC,LR

	EXPORT xfont_apply_fields[LEAF]

xfont_apply_fields
	STMFD	R13!,{R5-R7}
        MOV     R12,R14
	SWI	&600A7
        BVS     %FT01
        LDR     R14,[R13,#12]
        TEQ     R14,#0
        STRNE   R3,[R14]
        MOV     R0,#0
01	LDMFD   R13!,{R5-R7}
	MOVS	PC,R12

	END
