	subroutine sndlst
#
# sendet die Toleranzwerte, Analyseparameter und die Liste der Dreiecke 
# ueber die SIO zum WANG.
#
# Verwendete externe Routinen, die nicht in FORLIB sind:
# Name		File,Bibliothek
# wrts		WANG		wartet auf Request to send
# send		WANG		sendet ein Byte ueber die SIO
# sendq		WANG		sendet ein Byte schnell ueber die SIO
#
# Version 1.1	01.04.84
#
include	defl.rat
include	dlist.rat
#
define	NIL 0
define	BOT 1
define	EOS 5
define	EOT 6
#
integer	imin,dimax,dgmax		# Toleranzwerte fuer 'termnl'
integer dimin,dgmin			# dto. fuer 'nahsp'
integer	bog,minbog,maxgap,minabs	# Analyseparameter
#
integer	xanz,yanz	# tatsaechl.Bildgrenzen
integer	stx,sty		# Zentralpunktkoord.
integer	i		# Integer-Wert
integer	symbol		# Grammatiksymbol
integer	sel		# Index des mom. Symbolelements
integer	endl,		# mom. Ende des list-Feldes
	slist,slist$	# Anf. u.Ende der Symbolliste
integer	list(LMAX,3)	# Liste der Symbol-Elemente
integer	geod(LMAX,6)	# geom.Daten fuer Dreieck
#
real	cgx,cgy		# Real-Schwerpunktkoord.
real	schfak		# Toleranzwert fuer 'nahsp'
#
common	/tolrnc/imin,dimax,dgmax,dimin,dgmin,schfak
common	/para/bog,minbog,maxgap,minabs
common	/bild/xanz,yanz,stx,sty,cgx,cgy
common	/sylist/list,geod,endl,slist,slist$
#
write(1,10)
10 format(/' SNDLST'/'     Parameter')
#
call wrts ; call send(bog) ; call send(minbog)		# Analyseparameter und
call send(maxgap) ; call send(minabs)
call send(imin) ; call send(dimax) ; call send(dgmax)	# Toleranzen (ausser
call send(dimin) ; call send(dgmin)			# schfak)
#
for (sel=slist+1; sel<=slist$; sel=sel+1)
[	symbol=list(sel,SYM)
	if (symbol==TASYM !! symbol==TDSYM)		# nur termin. Dreiecke
	[	call wrts 
		write(1,20) symbol
		20 format('       Dreieck Typ',i2)
		call send(BOT)				# Folgt Dreieck:
		call wrts ; call send(symbol)		# Symbol und
		do i=DVX,DUY				# drei Punkte 
		[	call sendq(geod(sel,i)) ]
]	]
call wrts ; call send(EOS)
call wrts 
i=int(cgx) ; j=int(cgy)
write(1,30) i,j
30 format('       Schwerpunkt',2i4)
call send(i) ; call send(j)
call wrts ; call send(EOT)
return
end
#
	subroutine sndtre
#
# sendet den Analysebaum ueber die SIO.
#
# Verwendete externe Routinen, die nicht in FORLIB sind:
# Name		File,Bibliothek
# wrts		WANG		wartet auf Request to send
# send		WANG		sendet ein Byte ueber die SIO
# sendq		WANG		sendet ein Byte schnell ueber die SIO
#
# Version 1.0	29.03.84
#
integer	i,j		# Laufindizes
integer	sel,		# Index des mom. Symbolelements
	symbol		# mom. Grammatiksymbol
integer	endl,		# mom. Ende des list-Feldes
	slist,slist$,	# Anf. u.Ende der Symbolliste
	alist,alist$	# - der alten Liste
integer	list(LMAX,3)	# Liste der Symbol-Elemente
integer	geod(LMAX,6)	# geom.Daten fuer Dreieck
integer	stbl(8)		# Tabelle der Symbole
#
common	/sylist/list,geod,endl,slist,slist$,alist,alist$
#
data	stbl(RSYM),stbl(ASYM),stbl(BSYM)/x'52',x'41',x'42'/	# R A B
data	stbl(DSYM),stbl(GSYM),stbl(SSYM)/x'44',x'47',x'53'/	# D G S
data	stbl(TASYM),stbl(TDSYM)		/x'61',x'64'/		# a d
#
write(1,10)
10 format(' SNDTRE'/)
#
if (list(slist,SUB)<>NIL)
[	alist=list(slist,SUB) 
	repeat
	[	i=alist
		while (list(i,SUB)==NIL && i<=slist$) i=i+1
		if (i>=slist$) alist$=slist$
		else alist$=list(i,SUB)-1
		i=alist$-alist+1
		for (sel=alist; sel<=alist$; sel=sel+1)	# Sublisten zaehlen
		[	if (list(sel,SUC)==NIL) i=i+1 ]
		call wrts ; call send(i) 
		call wrts
		write(1,20) i
		20 format('+Laenge der Stufe =',i4/)
		i=0
		for (sel=alist; sel<=alist$; sel=sel+1)	# Sublisten senden
		[	j=list(sel,SYM)
			call sendq(stbl(j))
			i=i+1
			if (list(sel,SUC)==NIL) 
			[	call send(EOS)
				write(1,30) i
				30 format('+Sublist mit',i3,' El.'/)
				i=0
			]
		]
		alist=alist$+1
	] until (alist>>slist$)
]
call wrts ; call send(NIL)
return
end
