Divisore binario, versione 1.0 Note di rilascio del divisore binario, versione 1.0
Note d'installazione. Guida utente.Note di rilascio.
Il "Divisore binario", realizzato in javascript / jQuery, è utilizzabile anche su smartphone (Responsive) ed è composto dalle seguenti funzioni:
$( document ).ready() | Tutte le istruzioni presenti all'interno di questa funzione verranno eseguite solo al completo caricamento della pagina. |
| - Al caricamento del DOM, vengono attivati i listener keyup, click e keypress. | |
$("#input").keyup() | Gestisce l'input degli input "Dividendo" e "Divisore"; Controlla progressivamente i caratteri inseriti, evidenziando in rosso il margine dell'input testuale in caso di errori riguardandi il range dell'input; Aggiorna il registro "Dividendo" e/o "Divisore" nella rappresentazione grafica del circuito con i dati forniti dall'utente; |
$(".button").click | Ha il compito di gestire l'evento click sui bottoni, identificati dall'attributo name. Name="start" viene eseguita la funzione checkDiv() e se il check è positivo viene eseguita la funzione startDiv(). Name="reset" viene eseguita la funzione resetDiv(). Name="restore" esegue il cambio di modalità "Con ripristino"/ "Senza Ripristino. Name="not-restore" esegue il cambio di bottone "Senza Ripristino"/ "Con ripristino". Name="next" viene eseguita la funzione stepWithRestore() o stepWithoutRestore() (dipende dalla modalità usata). Name="new-operation" viene eseguita la funzione resetDiv() per poter iniziare una nuova operazione. |
$(document).keypress | Imposta le hotkey per l'esecuzione rapida. "INIZIA" Tasto Rapido = INIVIO. "SUCCESSIVO" Tasto Rapido = INIVIO. "AZZERA" Tasto Rapido = r/R. "Modalità" Tasto Rapido = s/S. |
| - Come descritto, gli eventi chiamano a loro volta le seguenti funzioni: | |
checkDiv(dividend, divisor) | Presi i dati degli input "Dividendo" e "Divisore" controlla la presenza di errori. Restituisce "vero" se i dati sono corretti, "falso" se invece è presente uno o più erorri. |
startDiv() | Inizializza tutti i registri e le variabili usate dal Divisore binario. |
resetDiv() | Azzera i valori di tutti i campi e registri. |
stepWithRestore(operation) | Esegue un passo computazionale della modalità "Con Ripristino", se non vi sono più operazioni da eseguire viene mostrato un messaggio di avviso. |
stepWithoutRestore(operation) | Esegue un passo computazionale della modalità "Senza Ripristino", se non vi sono più operazioni da eseguire viene mostrato un messaggio di avviso. |
restoreRest() | Ripristina il valore del resto contenuto nel registro A se il resto è negativo. (Nella modalità "Senza ripristino") |
updateImage() | Aggiorna i valori nei campi (celle) dell'immagine ad ogni operazione. |
shifting() | Esegue lo shift a sinistra dei registri A e Q. |
setDividend() | Controlla il segno del registro A e setta il valore di Q0 a 0/1. |
complement(positive) | Esegue il complemento a due del numero (positivo) passato come parametro. |
add(first, second) | Esegue la somma di due numeri binari. |
sub(first, second) | Esegue la sottrazione di due numeri binari. |
normalize(number, n) | Aggiorna il numero passato per parametro in codifica a n bit (se n non è specificato codifica a 4 bit). |
info() | Mostra un messaggio con le informazioni e le caratteristiche del progetto. |
| - Infine il link "Aiuto" chiama a sua volta la funzione | |
help() | Mostra un messaggio con dei suggerimenti riguardanti l'utilizzo del programma e delle hotkeys. |
Compilazione:
Il seguente progetto, essendo Browser-based non richiede alcuna compilazione, è il browser stesso che interpreta il programma.
Sviluppi e collaudi:
Text editor: Sublime Text.
Framework: Twitter Bootstrap 3, jQuery
Testato e funzionante su windows/linux con browser compatibili (vedi Note di installazione).
Idee per gli sviluppatori:
Estensione bit della divisione (attualmente è a 4 bit).
Data: 23 Luglio 2014
Simulatori di Architettura degli elaboratori (2013-2014, U. Catania, DMI)