'       * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

'       *     PROGRAMMA DI GESTIONE PER PKY MASTER GEN. PURPOSE       *

'       *                        VERSIONE 1.00                        *

'       * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

'	ADATTATO PER PROVE LANMAST - 28/9/91

'                       by Ing. Giovanni Becattini


#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"
	PUMALAN	= "1"
	
	INKEY	= "4"
	RAMFILE = "5"

'--------------------------------------------------------------------------
'	Storages
'--------------------------------------------------------------------------

#END

#DECLVAR
	a,b,c,i			'uso generale fuori int
	d,e,f			'uso generale dentro int
	Dest
	
'	stringhe

	FromLan			'da PumaLan
	FrP			'tempor. per precedente
	Esito			'esito trasmissione LAN
	
#END		

#CODE

	goto	Avvio

'--------------------------------------------------------------------------
'		     ROUTINES DI SERVIZIO INTERRUPT
'--------------------------------------------------------------------------

'--------------------------------------------------------------------------
'	ListenLan - servizio PumaLan
'--------------------------------------------------------------------------

#-> ListenLan
	pop FromLan$
	print "--";FromLan$
	return interrupt 2

'--------------------------------------------------------------------------
'	Avvio - inizio effettivo del programma
'--------------------------------------------------------------------------

#-> Avvio

	gosub IniSys			'inizializza sistema

	
	print "GPM 1.0"
	print "Compilazione ";VERSIONE
	
#-> UsP2
	print
	let b$=""
	let a$=""
#-> Loop
	input ldev INKEY,a$
	if a$="\" then SndStg
	if a$="!" then UsP2
	if len(a$)=0 then Loop
	let b$=concat$(b$,a$)
	goto Loop

#-> SndStg
	let a$=substr$(b$,1,2)
	
	if val(a$)=-1 then aaa 
		let Dest = val(a$)
		let i=len(b$)-2
		let b$=substr$(b$,3,i)
#-> aaa
	
	print "Invio..";b$;" a";Dest
	write ch PUMALAN, Dest, b$
	read ch PUMALAN, 0, Esito$
	print "Esito..";Esito$
	goto UsP2

	
'--------------------------------------------------------------------------
'	IniSys - inizializza sistema all'accensione
'--------------------------------------------------------------------------

#-> IniSys


'	------- dimensionamenti

	dim a$(80),b$(80),c$(80),d$(80), FromLan$(80), Esito$(20)

	reset interrupt	clear		'azzera FIFOs

'	------- apertura drivers

'---------------------------------------------------------------------------
'	CTC / baud rate generators
'---------------------------------------------------------------------------


	open osc 3,"C 0 D 164"		'baud rate generator lan
	osc 3, 1

	open osc 4,"C 2 D 166"		'real time clock per MMT
	osc 4, 40 for switch
	

'---------------------------------------------------------------------------
'	drivers vari
'---------------------------------------------------------------------------

	open ch PUMALAN, "GLANM:..", "S 1 D 170 C 171 V 171" 
	ch PUMALAN to interrupt 2	'PumaLan
	on interrupt 2 gosub ListenLan

'	break NO			'per evitare break non voluti
	autostart SI

	interrupt SI
	write ch PUMALAN, 0, "!"
	write ch PUMALAN, 2, "+"
	return
	

#END
