;=============================================
	; put_sprite_one_color_no_transparent
	;=============================================
	; Sprite to display in INH,INL
	; Location is XPOS,YPOS
	; Note, only works if YPOS is multiple of two

	; This is a fast sprite with no transparency and assumes
	; only black/white sprite.  Can change color by setting the
	; sprite_color_smc+1 value

put_sprite:

	ldy	#0		; byte 0 is xsize			; 2
	lda	(INL),Y							; 5
	sta	CH		; xsize is in CH			; 3
	iny								; 2

	lda	(INL),Y		; byte 1 is ysize			; 5
	sta	CV		; ysize is in CV			; 3
	iny								; 2

	ldx	YPOS		; make a copy of ypos			; 3
								;===========
								;	25
put_sprite_loop:
	stx	put_sprite_loop_smc+1	; as we modify it		; 4
	lda	gr_offsets,X	; lookup low-res memory address		; 4
	clc								; 2
	adc	XPOS		; add in xpos				; 3
	sta	OUTL		; store out low byte of addy		; 3
	lda	gr_offsets+1,X	; look up high byte			; 4
	adc	DRAW_PAGE	;					; 3
	sta	OUTH		; and store it out			; 3

				; OUTH:OUTL now points at right place

	ldx	CH		; load xsize into x			; 3
								;===========
								;	28
put_sprite_pixel:
	lda	(INL),Y			; get sprite colors		; 5
	iny				; increment sprite pointer	; 2

	sty	put_sprite_pixel_smc+1	; save sprite pointer		; 4


sprite_color_smc:
	and	#$ff

;	cmp	#$00
;	beq	sprite_output

;	cmp	#$ff
;	bne	not_ff
;sprite_color_ff_smc:
;	lda	#$ff
;	jmp	sprite_output
;not_ff:
;	cmp	#$f0
;	bne	not_f0
;sprite_color_f0_smc:
;	lda	#$f0
;	jmp	sprite_output

;not_f0:
;sprite_color_0f_smc:
;	lda	#$0f

;sprite_output:

	ldy	#$0							; 2
	sta	(OUTL),Y		; and write it out		; 6
								;============
								;	  9

put_sprite_done_draw:

put_sprite_pixel_smc:
	ldy	#$d1			; restore sprite pointer	; 2

	inc	OUTL			; increment output pointer	; 5
	dex				; decrement x counter		; 2
	bne	put_sprite_pixel	; if not done, keep looping	; 2nt/3
								;==============
								;	12/13

put_sprite_loop_smc:
	ldx	#$d1							; 2
	inx				; each line has two y vars	; 2
	inx								; 2
	dec	CV			; decemenet total y count	; 5
	bne	put_sprite_loop		; loop if not done		; 2nt/3
								;==============
								;	14/15

	rts				; return			; 6