
.set getchar,0x20040044
.set output_one_char,0x20040058

	.globl	_v_getc
	.globl	_v_putc
	.globl	_v_getct
	.globl	_cpu
	.globl	_sid_ext

	.text
	.globl _sm_init
_sm_init:
	.word	0
	clrl	r0
	cmpl	$8,_cpu
	bneq	1f
	cmpl	$4,_sid_ext
	bneq	1f
	movl	$_smgetc,r0
	movl	r0,_v_getc
	movl	$_smputc,r0
	movl	r0,_v_putc
	movl	$_smgetct,r0
	movl	r0,_v_getct
	movb	$1,r0
1:	ret

	.globl _smputc
_smputc:
	.word	0
	movb	4(ap),r2
	jsb	output_one_char
	ret

	.globl _smgetc
_smgetc:
	.word	0
1:	clrl	r0
	jsb	getchar
	tstl	r0
	beql	1b
	movb	r1,r0
	ret

	.globl	_smgetct
_smgetct:
	.word	0
	ashl	$-1,4(ap),r0
	jsb	getchar
	tstl	r0
	beql	1f
	movb	r1,r0
	ret
1:	movl	$-1,r0
	ret
