
	assume	cs:prog,ds:prog

prog	segment	word	public	use16

ff81	equ	-7fh

	public	_put_spr

_put_spr	proc	far
	push	bp
	mov	bp,sp
	push	si
	push	di
	push	ds
	push	es

	mov	di,[bp+6]
	les	si,[bp+8]

	mov	ax,0c000h
	mov	ds,ax

	mov	ch,16
	even
loopy:
	mov	cl,4
	even
loopx:
	mov	ax,es:[si]
	add	si,2
	rept	4
		add	ax,ax
		rcr	dh,1
		sar	dh,1
		add	ax,ax
		rcr	dl,1
		sar	dl,1
		add	ax,ax
		rcr	bh,1
		sar	bh,1
		add	ax,ax
		rcr	bl,1
		sar	bl,1
	endm
	mov	byte ptr ds:[ff81],1
	mov	[di],bl
	mov	[di+80],bl
	mov	byte ptr ds:[ff81],2
	mov	[di],bh
	mov	[di+80],bh
	mov	byte ptr ds:[ff81],4
	mov	[di],dl
	mov	[di+80],dl
	mov	byte ptr ds:[ff81],8
	mov	[di],dh
	mov	[di+80],dh
	inc	di
	dec	cl
	jz	breakx
	jmp	loopx

breakx:
	add	di,160-4
	dec	ch
	jz	breaky
	jmp	loopy

breaky:
	pop	es
	pop	ds
	pop	di
	pop	si
	pop	bp
	ret

_put_spr	endp

	public	_clr_spr

_clr_spr	proc	far
	push	bp
	mov	bp,sp
	push	di
	push	es

	mov	di,[bp+6]

	mov	ax,0c000h
	mov	es,ax

	mov	byte ptr es:[ff81],0fh

	mov	cx,16
	even
clrloop:
	stosb
	stosb
	stosb
	stosb
	add	di,160-4
	loop	clrloop

	pop	es
	pop	di
	pop	bp
	ret

_clr_spr	endp

prog	ends

	end
