; a0 - str1
; a1 - str2
; d0 - length=-1

	xdef	_OStrCmpNC

_OStrCmpNC
	move.l	d2,-(a7)
	moveq	#0,d1
	moveq	#0,d2
.loop	move.b	(a1)+,d1
	move.b	(a0)+,d2
	cmp.b	#91,d1
	bgt.s	.ok1
	cmp.b	#65,d1
	blt.s	.ok1
	add.b	#32,d1
.ok1	cmp.b	#91,d2
	bgt.s	.ok2
	cmp.b	#65,d2
	blt.s	.ok2
	add.b	#32,d2
.ok2	cmp.b	d2,d1
	bne.s	.nosame
	tst.b	(-1,a0)
	beq.s	.same
	dbf.s	d0,.loop
.same	moveq	#0,d0
	move.l	(a7)+,d2
	rts
.nosame	move.b	(-1,a1),d1
	move.b	(-1,a0),d2
	cmp.b	#91,d1
	bgt.s	.ok3
	cmp.b	#65,d1
	blt.s	.ok3
	add.b	#32,d1
.ok3	cmp.b	#91,d2
	bgt.s	.ok4
	cmp.b	#65,d2
	blt.s	.ok4
	add.b	#32,d2
.ok4	cmp.b	d1,d2
	bgt.s	.higher
.lower	moveq	#1,d0
	move.l	(a7)+,d2
	rts
.higher	moveq	#-1,d0
	move.l	(a7)+,d2
	rts
