; MiscCode.a
; Misc functions for use in forall
; (c) Musus Umbra 1997

	AREA C$$Code , CODE , READONLY

	EXPORT DecodeFiletype
	; os_error *DecodeFiletype( char *name, int *result )

DecodeFiletype:
	stmfd	sp!,{lr}
	mov	r3,r1		; needed later
	mov	r1,r0		; -> string
	mov	r0,#31		; reason code
	swi	"XOS_FSControl" ; do it
	movvc	r0,#0		; if OK we return NULL
	str	r2,[r3]		; store the result
	ldmfd	sp!,{pc}^	; exit



	EXPORT FiletypeName
	; os_error *FiletypeName( int number, char *result )

FiletypeName:
	stmfd	sp!,{lr}
	mov	r2,r0		; filetype
	mov	r0,#18		; reason code
	swi	"XOS_FSControl"	; do it
	movvc	r0,#0		; if it worked, we return 0
	str	r2,[r1],#4	; store first 4 chars
	str	r3,[r1],#4	; store second 4 chars
	mov	r2,#0
	strb	r2,[r1]		; terminate (just in case!)
	ldmfd	sp!,{pc}^	; exit

	EXPORT SetType
	; os_error *SetType( char *name, int type )

SetType:
	stmfd	sp!,{lr}
	mov	r2,r1
	mov	r1,r0
	mov	r0,#18
	swi	"XOS_File"
	movvc	r0,#0
	ldmfd	sp!,{pc}^
