Questo e' l'esemplare di roccia lunare donata da Nixon all'Italia all'interno del programma Goodwill Moon Rock (pietra dell'amicizia)
Dopo aver visto questa, il campione di Milano e' ridicolo, e' talmente piccolo che non si osserva nessuna struttura
venerdì 3 agosto 2018
mercoledì 1 agosto 2018
Moltiplicazioni binarie solo con addizioni e bit shift
Una delle cose che mi ha piu' spiazzato nell'imparare l'assembler per C64 e' l'assenza nel set di istruzione del 6502/6510 di un opcode per moltiplicare. anche i soli interi
La soluzione per fare una moltiplicazione con soli addizioni e bit shift e' in realta' molto semplice usando la matematica binaria
Si parte da un esempio semplice 9 (1001b) x 8 (1000b). Se si usa la regola della moltiplicazione in colonna che si impara alle elementari
1001x
1000=
------
0000
0000
0000
1001
------------
1001000 (72d)
Come si vede quando si ha un bit zero e' inutile effettuare la moltiplicazione, se si ha un bit 1 basta ripetere il valore dell'altro moltiplicando con lo shift bit di tante posizioni quanto e' il bit del primo moltiplicatore. Un algoritmo ritrovato a questo sito riporta una variante....invece di spostare l'indice del bit di test viene effettuato sempre il testo sul bit alla posizione 0 (quella piu' sinistra) ma ogni volta viene fatto un bit shift a destra per scorrete tutto il numero. Se il bit in posizione zero e' nullo si fa uno shift a sinistra dell'altro operatore ed uno shift a destra del moltiplicatore. Se il bit alla posizione zero e' 1 allora il valore viene sommato ad una variabile accumulatore
La soluzione per fare una moltiplicazione con soli addizioni e bit shift e' in realta' molto semplice usando la matematica binaria
Si parte da un esempio semplice 9 (1001b) x 8 (1000b). Se si usa la regola della moltiplicazione in colonna che si impara alle elementari
1001x
1000=
------
0000
0000
0000
1001
------------
1001000 (72d)
Come si vede quando si ha un bit zero e' inutile effettuare la moltiplicazione, se si ha un bit 1 basta ripetere il valore dell'altro moltiplicando con lo shift bit di tante posizioni quanto e' il bit del primo moltiplicatore. Un algoritmo ritrovato a questo sito riporta una variante....invece di spostare l'indice del bit di test viene effettuato sempre il testo sul bit alla posizione 0 (quella piu' sinistra) ma ogni volta viene fatto un bit shift a destra per scorrete tutto il numero. Se il bit in posizione zero e' nullo si fa uno shift a sinistra dell'altro operatore ed uno shift a destra del moltiplicatore. Se il bit alla posizione zero e' 1 allora il valore viene sommato ad una variabile accumulatore
martedì 31 luglio 2018
Troubleshooting Kim UNO
Era un po' di tempo che ci pensavo ed alla fine mi sono comprato il kit Kim Uno, un emulatore del MOS KIM-1, microcomputer del 1975 basato sul 6502
L'emulazione viene gestita da una Arduino e non e' necessario comprare il kit.....ma la sensazione d'uso di un oggetto fisico e' sostanzialmente impossibile da ripetere solo via software
Per farmi del male (ma soprattutto per costringermi ad imparare a saldare) ho comprato il kit smontato..un PCB, 24 pulsanti (96 saldature), 11 resistenze (22 saldature), 2 moduli 3461BS (20 saldature) ed una Arduino (52 saldature)
Ovviamente le cose non potevano andare bene. L'Arduino funziona e risponde in modo coerente con all'input da tastiera ma cose si vede si sono problemi sui due moduli 3461BS
La prima cosa che risulta chiara e' che lo stesso errore viene riportato su tutti led..bisogna tirare fuori il manuale. Il modulo 3461BS effettua multiplex per poter mostrare 4 numeri con un numero minimo di collegamenti. In pratica viene scritto ed illuminato il primo numero, poi si refresha con il secondo, con il terzo e quindi con il quarto ...ad una velocita' tale che l'occhio umano non se ne rende conto. Quindi se c'e' un problema per esempio sulla barra "b" (vedi schema sottostante) questo sara' presente su tutti e quattro i digiti
Il sito riporta lo schema completo di Kim Uno
In questo modo e' stato possibile risalire quali saldature erano state fatte in modo non corretto
L'emulazione viene gestita da una Arduino e non e' necessario comprare il kit.....ma la sensazione d'uso di un oggetto fisico e' sostanzialmente impossibile da ripetere solo via software
Per farmi del male (ma soprattutto per costringermi ad imparare a saldare) ho comprato il kit smontato..un PCB, 24 pulsanti (96 saldature), 11 resistenze (22 saldature), 2 moduli 3461BS (20 saldature) ed una Arduino (52 saldature)
Test 1 |
Test 2. Come si vede risolto un problema ho fatto un danno in un altro posto |
Ovviamente le cose non potevano andare bene. L'Arduino funziona e risponde in modo coerente con all'input da tastiera ma cose si vede si sono problemi sui due moduli 3461BS
La prima cosa che risulta chiara e' che lo stesso errore viene riportato su tutti led..bisogna tirare fuori il manuale. Il modulo 3461BS effettua multiplex per poter mostrare 4 numeri con un numero minimo di collegamenti. In pratica viene scritto ed illuminato il primo numero, poi si refresha con il secondo, con il terzo e quindi con il quarto ...ad una velocita' tale che l'occhio umano non se ne rende conto. Quindi se c'e' un problema per esempio sulla barra "b" (vedi schema sottostante) questo sara' presente su tutti e quattro i digiti
Il sito riporta lo schema completo di Kim Uno
In questo modo e' stato possibile risalire quali saldature erano state fatte in modo non corretto
lunedì 30 luglio 2018
Iscriviti a:
Post (Atom)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...