'       * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

'       *     PROGRAMMA DI GESTIONE PER SLAVE GEN. PURPOSE       *

'       *                        VERSIONE 1.00                        *

'       * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

'	PER PROVE LANMAST - 28/9/91

'                       by Ing. Giovanni Becattini

'	28.10.95 - customizzato per C.E.T.


#DECLCONST

'--------------------------------------------------------------------------
'	Costanti varie
'--------------------------------------------------------------------------

	VERSIONE $ "STAMP"	'STAMP e' parola riservata per ora e data

	SI	= "1"
	NO	= "0"

	FOROUT 	= "0"

	FIFO	= "10"		'usata in info()

	TESTN	= "0"

'--------------------------------------------------------------------------
'	Canali
'--------------------------------------------------------------------------

	CONSOLE	= "0"
	GLAN	= "1"

	INKEY	= "4"
	RAMFILE = "5"

'--------------------------------------------------------------------------
'	Storages
'--------------------------------------------------------------------------

#END

#DECLVAR

	tempCurr		'temperatura correntemente rilevata dalle sonde
	umidCurr		'umidita'correntemente rilevata dalle sonde

	Stato			'stato della macchina correntemente esaminata
				'composto per ora da temperatura e umidita' misurate


	a,b,c,i			'uso generale fuori int
	d,e,f			'uso generale dentro int
	Dest

'	stringhe

	FromLan			'da GLAN
	FrP			'tempor. per precedente
	Esito			'esito trasmissione LAN


#END

#CODE
	rem " "
	goto	Avvio

'--------------------------------------------------------------------------
'		     ROUTINES DI SERVIZIO INTERRUPT
'--------------------------------------------------------------------------

'--------------------------------------------------------------------------
'	ListenLan - servizio GLAN
'--------------------------------------------------------------------------

#-> ListenLan
	pop FromLan$
	print "(";FromLan$;")";

	let FrP$=substr$(FromLan$,1,1)

	on instr("sbcdefghijklmn",FrP$) goto Ms,Mv


#-> LanExi
	return interrupt 2


'--------------------------------------------------------------------------
'	'S'tato -
'--------------------------------------------------------------------------

#-> Ms

	' Le seguenti inzializzazioni servono solo per provare la
	' comunicazione


	prints Stato$,"s--";tempCurr;umidCurr;

	write ch GLAN, 0,Stato$
	read ch GLAN, 0, Esito$
	print Esito$;
'	print Stato$;

	return interrupt 2

'--------------------------------------------------------------------------
'	'b' -
'--------------------------------------------------------------------------

#-> Mv

	return interrupt 2

'--------------------------------------------------------------------------
'	'c' -
'--------------------------------------------------------------------------

#-> Mc
	return interrupt 2

'--------------------------------------------------------------------------
'	Avvio - inizio effettivo del programma
'--------------------------------------------------------------------------

#-> Avvio

	gosub IniSys			'inizializza sistema


	write ch GLAN,40, "X"	'set relax value
	write ch GLAN, 2, "+"
	print "GPS 1.0"
	print "Compilazione ";VERSIONE

'#-> UsP2
'	print
#-> Loop
'	for i=1 to 600
'	next
'	write ch GLAN, 0, "a--ABCDEF"
'	read ch GLAN, 0, Esito$
'	print Esito$;
	goto Loop
'
'--------------------------------------------------------------------------
'	IniSys - inizializza sistema all'accensione
'--------------------------------------------------------------------------

#-> IniSys

	let tempCurr = 20
	let umidCurr = 55

'	------- dimensionamenti

	dim Stato$(20),a$(50),b$(50),c$(50),FrP$(20), FromLan$(50), Esito$(20)

	reset interrupt	clear		'azzera FIFOs

'	------- apertura drivers

'---------------------------------------------------------------------------
'	CTC / baud rate generators
'---------------------------------------------------------------------------


	open osc 3, "C 1 D 101"			'baud rate generator lan
	osc 3, 1

    open osc 2, "C 3 D 103"			'real time clock per MMT
	osc 2, 40 for switch



'---------------------------------------------------------------------------
'	drivers vari
'---------------------------------------------------------------------------

	open ch GLAN, "GLANS:..","S 1 D 106 C 107 V 107"
	ch GLAN to interrupt 2
	on interrupt 2 gosub ListenLan

	autostart SI

	interrupt SI
	return


#END
