	subroutine spoint(rep)
#
# liefert den Startpunkt fuer die Analyse.
# Es wird - ggf. mehrmals - versucht, einen Punkt zu finden, dessen 3x3-
# Nachbarschaft keinen schwarzen Punkt enthaelt. Falls rep=1, findet der 
# erste Versuch in der Bildmitte statt, sonst zufaellig.
# Falls kein solcher Punkt gefunden wird, ist stx=sty=0.
#
# Verwendete externe Routinen, die nicht in FORLIB sind:
# Name		File,Bibliothek
# getpix	N		holt Pixel aus Bank 1
# irand		RANFCT		liefert Integer-Zufallszahl
#
# Version 1.1	01.04.84
#
logical	okay		# Testflag
#
byte	g		# Grauwert
byte	getpix		# function, liefert Pixelgrauwert aus Bank 1
#
integer	rep		# >1 bei Wiederholung
integer	xanz,yanz	# tatsaechl.Bildgrenzen
integer	stx,sty		# Startpunkt-Pixelkoord.
integer	repcnt,repmax	# Wiederholg'szaehler, max.Anzahl der Wiederholungen
integer ix,iy		# Punktkoord.
integer	irand		# function; liefert Integer-Zufallszahl
#
common	/bild/xanz,yanz,stx,sty
#
data	repmax/10/
#
write(1,10) 
10	format(' SPOINT')
#
repcnt=0
repeat
[	repcnt=repcnt+1
	if (rep==1 && repcnt==1)
	[	stx=int(float(xanz)/2)
		sty=int(float(yanz)/2)	# Bildmitte
	]
	else
	[	stx=irand(2,xanz-1)
		sty=irand(2,yanz-1)	# zuf.Punkt
	]
	okay=.true.
	for (iy=sty-1; iy<=sty+1; iy=iy+1)
	[	for (ix=stx-1; ix<=stx+1; ix=ix+1)
		[	g=getpix(ix,iy)		# Pixel aus Bank 1 holen
			if (g==0) okay=.false.
	]	]
] until (okay !! repcnt>=repmax)
if (.not.okay) [ stx=0 ; sty=0 ]
#
write(1,90) stx,sty,repcnt
90 format(' Startpunkt',2i5,' im',i3,'. Versuch')
return
end
