// -- AUTHOR: Filippo Spadaro
// -- PROGRAMMER: Filippo Spadaro
// -- LASTREVIEW: 12 ottobre 2002
// -- SITE URL: http://utenti.lycos.it/nienteperniente

// -- rmbr: sostituire **test.js nelle importazioni JScript dei file HTML
// ##9
path = "13test.html";
// ##9
path_fine = "13test_fine.html";

// -- definizioni array --
var t = new Array();

var txtA = new Array();
var txtB = new Array();
var txtC = new Array();
var txtD = new Array();

var r = new Array();
var esatta = new Array();
commento = new Array();



// -- NB: l'utente deve riempire solo i campi:
// -- txt*[*], t[*], r[*], p*[*]
// -- * --
txtA[0]="4";
txtB[0]="8";
txtC[0]="17";
txtD[0]="25";
t[0]="I segnali di controllo di una porta parallela tra periferica esterna e PC sono in numero di:<BR>";
esatta[0] = "A";
commento[0] = "";


// -- * --
txtA[1]="National";
txtB[1]="Motorola";
txtC[1]="Zilog";     
txtD[1]="Intel";   
t[1]="Chi è il produttore dei seguenti microprocessori: Z80, Z8, Z8000, Z8002?<BR>";
esatta[1] = "C";
commento[1] = "";

// -- * --
txtA[2]="6,4 Mbps";
txtB[2]="64 Mbps";
txtC[2]="6,4 Gbps";
txtD[2]="64 Gbps";
t[2]= "Se la velocità massima di trasferimento dei dati su un bus composto da 64 linee fosse di 100MHz, a quale velocità verrebbero trasferite le informazioni?<BR>";
esatta[2] = "C";
commento[2] = "";

// -- * --
txtA[3]="punta all'indirizzo più in alto di uno stack di memoria";
txtB[3]="punta al successivo indirizzo dello stack di memoria";   
txtC[3]="preleva il contenuto dell'ultima posizione dello stack"; 
txtD[3]="deposita il contenuto di un registro nello stack";       
t[3]= "L'istruzione pop di un microprocessore:<BR>";             
esatta[3] = "C";
commento[3] = "";

// -- * --
txtA[4]="un disco flessibile di capacità non inferiore a 1.44 Mbyte";
txtB[4]="un disco flessibile di capacità non superiore a 1.44 Mbyte";
txtC[4]="un disco flessibile contenuto in una custodia rigida di protezione";
txtD[4]="un disco rigido contenuto in una custodia flessibile di protezione";
t[4]= "Il floppy disk è:<BR>";
esatta[4] = "C";
commento[4] = "";

// -- * --
txtA[5]="sono memorie a sola lettura";
txtB[5]="sono memorie ad accesso casuale: per prelevare un dato occorre fornire un indirizzo e viene letta direttamente l'informazione corrispondente";
txtC[5]="sono memorie ad accesso casuale: per prelevare un dato viene scansita la RAM partendo da un indirizzo casuale, scorrendo tutta la memoria fino alla locazione dell'informazione";
txtD[5]="sono memorie ad accesso sequenziale: per prelevare un dato occorre scorrere tutta la memoria fino al punto nel quale l'informazione è memorizzata";
t[5]= "Le RAM:<BR>";
esatta[5] = "B";
commento[5] = "";

// -- * --
txtA[6]="n<SUP>2</SUP> = 1024"; 
txtB[6]="2<SUP>n</SUP> = 4 Giga"; 
txtC[6]="&Egrave; falso, sono processori a 16 bit; è il sistema operativo Windows che supera questo limite, permettendo un indirizzamento a 32 bit";
txtD[6]="&Egrave; falso, sono processori a 20 bit come gli Intel 8086 e 8088 da cui derivano; è il sistema operativo Windows che supera questo limite, permettendo un indirizzamento a 32 bit";
t[6]= "I processori Inter 80386, 80486 e Pentium sono processori a 32 bit che dispongono di 32 linee di indirizzo. Quante locazioni di memoria possono indirizzare?<BR>";
esatta[6] = "B";
commento[6] = "";

// -- * --
txtA[7]="...è necessaria per poter eseguire complessi calcoli in virgola mobile";
txtB[7]="...deve immagazzinare l'informazione associata a tutti i dot pitch di una schermata video";
txtC[7]="...deve immagazzinare l'informazione (risoluzione e profondità di colore) associata a tutti i pixel di una schermata video";
txtD[7]="...non è necessario che sia adeguata ad immagazzinare l'informazione associata a tutti i pixel di una schermata video, perché il SO può utilizzare anche la RAM presente su mother-board";
t[7]= "La RAM di una scheda video...<BR>";
esatta[7] = "C";
commento[7] = "";

// -- * --
txtA[8]="...una periferica richiede al microprocessore l'accesso al bus: quando è pronta ad iniziare uno scambio di dati, invia sul bus un segnale di interruzione al microprocessore";
txtB[8]="...il microprocessore prende il controllo del traferimento dei dati; periodicamente infatti interroga tutte le periferiche, per sapere se sono disponibili allo scambio di dati";
txtC[8]="...un apposito chip, detto controllore DMA, crea una connessione diretta tra la periferica interessata allo scambio dei dati e la RAM, mentre il microprocessore è virtualmente disconnesso";
txtD[8]="...si ha una connessione diretta tra una periferica e la RAM, attraverso il particolare bus EISA (Extended ISA), disconnettendo il bus PCI";
t[8]= "Mediante un interrupt...<BR>";
esatta[8] = "A";
commento[8] = "";

// -- * --
txtA[9]="...trasmette tali dati al DMA, che a sua volta li trasferisce all'interfaccia dell'hardware in questione";
txtB[9]="...trasmette tali dati all'interfaccia dell'hardware in questione";
txtC[9]="...trasmette tali dati al BIOS, che a sua volta li trasferisce all'interfaccia dell'hardware in questione";
txtD[9]="...trasmette tali dati al bus PCI, che a sua volta li trasferisce all'interfaccia dell'hardware in questione";
t[9]= "Quando il SO deve inviare dei dati verso l'hardware del PC...<BR>";
esatta[9] = "C";
commento[9] = "";


// -- funzioni --
function createTempCookie(name, value) {
  	document.cookie=name + "=" + value + ";";
}


function extractCookieValue(val) {
	if ((endOfCookie = document.cookie.indexOf(";", val)) == -1) {
		endOfCookie = document.cookie.length;
	}
  return unescape(document.cookie.substring(val,endOfCookie));
}


function ReadCookie(cookiename) {
	var numOfCookies = document.cookie.length;
	var nameOfCookie = cookiename + "=";
	var cookieLen = nameOfCookie.length;
	var x = 0;
	while (x <= numOfCookies) {
		var y = (x + cookieLen);
		if (document.cookie.substring(x, y) == nameOfCookie)
			return (extractCookieValue(y));
			x = document.cookie.indexOf(" ", x) + 1;
			if (x == 0)
				break;
  		}
	return (null);
}


function getData(i) {
	separatore = "#"
	var VecchioValore = ReadCookie("ordine");
	var NuovoValore = VecchioValore + separatore + document.forms[0].elements[i].name;
	test = parseInt(NuovoValore.charAt(0));
	if ((test > 0) && (test < 9))
	test = parseInt(NuovoValore.charAt(0)) + 1;
	else if (test == 9)
	test = 0;
	else if (test == 0)
	test = "X";
	createTempCookie("ordine", test + NuovoValore);
	//userCookie = ReadCookie("ordine");
}


function leggiDati() {
	userCookie = ReadCookie("ordine");
	var u = 1;
	var bool = 0;
	var totale = 0;
	var numero = new Array();
     	while (bool == 0) {
		if (userCookie.charAt(u) == "") 
			bool = 1;
		if (userCookie.charAt(u) == "#") {	 
			document.write("&nbsp;");
			u+=1;
		}
		if (userCookie.charAt(u) == "£") {
				u+=1;	
				totale = totale 
				+ parseInt(userCookie.charAt(u))*1000
				+ parseInt(userCookie.charAt(u+1))*100
				+ parseInt(userCookie.charAt(u+2))*10
				+ parseInt(userCookie.charAt(u+3));
		}
		u+=1;
	}
	document.write("<BR><FONT SIZE=4 FACE=\x22 courier new\x22 color=Maroon><B>Punteggio parziale: </B></FONT>" 
			+ "<FONT SIZE=5 FACE=\x22 courier new\x22 color=Navy><B>" 
			+ totale + "</B></FONT>");
}


function NuovoOrdine() {	
	createTempCookie("ordine", "1");
}

