Creata una CPU a 16 bit funzionante dentro Microsoft Excel

Creata una CPU a 16 bit funzionante dentro Microsoft Excel

Una CPU a 16 bit completamente funzionante è stata riprodotta in Excel da uno youtuber che ha illustrato il tutto in un video. Capace di lavorare a 3 Hz, il processore include 128 KB di RAM, un display a 16 colori ed è accompagnato da un linguaggio assembly custom.

di pubblicata il , alle 10:01 nel canale Processori
MicrosoftExcel
 
21 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
zappy30 Gennaio 2024, 19:16 #11
Originariamente inviato da: Saturn
L'ho sempre detto, cosa non si riesce a fare sotto Excel, a saperlo usare !


the e pasticcini per tutti?
HW202130 Gennaio 2024, 20:36 #12
In Excel sono riuscito a creare del codice Windows in modo nativo appoggiandomi totalmente all'SDK di Windows stesso e fregandomi totalmente degli user form e dei vari controlli disponibili in Excel per la programmazione di macro con Visual Basic for Application.

Ho però trovato non molte magagne in Excel, la più clamorosa sono gli indici delle colonne dei fogli di calcolo che sono normalmente rappresentate con le lettere dell'alfabeto ma che sotto il cofano vengono tradotti negli indici numerici 1,2,3,4 ... (la colonna A ha indice 1 e non zero).

La codifica tra le etichette e gli indici numerici è banalmente il sistema di numerazione posizionale a base 26, solo che invece di utilizzare anche le usuali cifre numeriche (come accade per la rappresentazione esadecimale dei numeri) utilizza solo ed esclusivamente le lettere dell'alfabeto secondo la corrispondenza A=1, B=2, C=3, ..., X=24, y=25, Z=26, AA=27, AB=28 ecc. ecc..

Ora non è molto difficile comprendere che la conversione tra la rappresentazione letterale delle colonne e quella numerica e viceversa si opera esattamente come si opera per esempio nel convertire un numero decimale a binario e viceversa tenendo conto che appunto A=1, B=2, C=3, ... Y=25, Z=26

Ricorrendo alle funzioni nascoste di Excel presenti in delle dll che mi convertono le le etichette delle colonne nei rispettivi indici e viceversa, queste mi restituiscono un errore con Z, AZ, ... insomma con quelle colonne i cui indici sono congrui a 26 modulo zero

Per quello che mi serviva nel codice che ho realizzato mi sono dovuto scrivere io due funzioni che convertono le lettere delle colonne in indici delle colonne e viceversa
frankie30 Gennaio 2024, 21:18 #13
Tutto bene, ma poi non riesce a leggere correttamente i csv....
dav1deser30 Gennaio 2024, 21:23 #14
Originariamente inviato da: HW2021
In Excel sono riuscito a creare del codice Windows in modo nativo appoggiandomi totalmente all'SDK di Windows stesso e fregandomi totalmente degli user form e dei vari controlli disponibili in Excel per la programmazione di macro con Visual Basic for Application.

Ho però trovato non molte magagne in Excel, la più clamorosa sono gli indici delle colonne dei fogli di calcolo che sono normalmente rappresentate con le lettere dell'alfabeto ma che sotto il cofano vengono tradotti negli indici numerici 1,2,3,4 ... (la colonna A ha indice 1 e non zero).

La codifica tra le etichette e gli indici numerici è banalmente il sistema di numerazione posizionale a base 26, solo che invece di utilizzare anche le usuali cifre numeriche (come accade per la rappresentazione esadecimale dei numeri) utilizza solo ed esclusivamente le lettere dell'alfabeto secondo la corrispondenza A=1, B=2, C=3, ..., X=24, y=25, Z=26, AA=27, AB=28 ecc. ecc..

Ora non è molto difficile comprendere che la conversione tra la rappresentazione letterale delle colonne e quella numerica e viceversa si opera esattamente come si opera per esempio nel convertire un numero decimale a binario e viceversa tenendo conto che appunto A=1, B=2, C=3, ... Y=25, Z=26

Ricorrendo alle funzioni nascoste di Excel presenti in delle dll che mi convertono le le etichette delle colonne nei rispettivi indici e viceversa, queste mi restituiscono un errore con Z, AZ, ... insomma con quelle colonne i cui indici sono congrui a 26 modulo zero

Per quello che mi serviva nel codice che ho realizzato mi sono dovuto scrivere io due funzioni che convertono le lettere delle colonne in indici delle colonne e viceversa


In VBA potevi fare riferimento ad una cella sia usando gli indici riga colonna, che usando il nome della cella es Cells(1,1) = Range("A1", io mi sono abituato quasi subito ad usare solo gli indici perchè estremamente più comodi, se devi spostarti di 10 colonne per esempio è facilissimo fare Cells(1+10,1) piuttosto che calcolarsi A+10. Tra l'altro nelle opzioni di visualizzazione dell'interfaccia puoi anche passare dalle colonne "alfabetiche" a quelle "numeriche" e quindi non hai proprio più questo problema di conversione. Questo per dire che questa per me non è una magagna di excel, ma semplicemente una sua caratteristica (capisco però che possa dare qualche noia).
TriGiamp30 Gennaio 2024, 22:41 #15
Il problema di excel è che è semplicissimo usarlo male.
!fazz31 Gennaio 2024, 00:05 #16
Originariamente inviato da: HW2021
In Excel sono riuscito a creare del codice Windows in modo nativo appoggiandomi totalmente all'SDK di Windows stesso e fregandomi totalmente degli user form e dei vari controlli disponibili in Excel per la programmazione di macro con Visual Basic for Application.

Ho però trovato non molte magagne in Excel, la più clamorosa sono gli indici delle colonne dei fogli di calcolo che sono normalmente rappresentate con le lettere dell'alfabeto ma che sotto il cofano vengono tradotti negli indici numerici 1,2,3,4 ... (la colonna A ha indice 1 e non zero).

La codifica tra le etichette e gli indici numerici è banalmente il sistema di numerazione posizionale a base 26, solo che invece di utilizzare anche le usuali cifre numeriche (come accade per la rappresentazione esadecimale dei numeri) utilizza solo ed esclusivamente le lettere dell'alfabeto secondo la corrispondenza A=1, B=2, C=3, ..., X=24, y=25, Z=26, AA=27, AB=28 ecc. ecc..

Ora non è molto difficile comprendere che la conversione tra la rappresentazione letterale delle colonne e quella numerica e viceversa si opera esattamente come si opera per esempio nel convertire un numero decimale a binario e viceversa tenendo conto che appunto A=1, B=2, C=3, ... Y=25, Z=26

Ricorrendo alle funzioni nascoste di Excel presenti in delle dll che mi convertono le le etichette delle colonne nei rispettivi indici e viceversa, queste mi restituiscono un errore con Z, AZ, ... insomma con quelle colonne i cui indici sono congrui a 26 modulo zero

Per quello che mi serviva nel codice che ho realizzato mi sono dovuto scrivere io due funzioni che convertono le lettere delle colonne in indici delle colonne e viceversa


welcome to basic
zappy31 Gennaio 2024, 19:13 #17
Originariamente inviato da: dav1deser
In VBA potevi fare riferimento ad una cella sia usando gli indici riga colonna, che usando il nome della cella es Cells(1,1) = Range("A1", io mi sono abituato quasi subito ad usare solo gli indici perchè estremamente più comodi, se devi spostarti di 10 colonne per esempio è facilissimo fare Cells(1+10,1) piuttosto che calcolarsi A+10. Tra l'altro nelle opzioni di visualizzazione dell'interfaccia puoi anche passare dalle colonne "alfabetiche" a quelle "numeriche" e quindi non hai proprio più questo problema di conversione. Questo per dire che questa per me non è una magagna di excel, ma semplicemente una sua caratteristica (capisco però che possa dare qualche noia).

Offset(10,0).

o (0,10), non ricordo
Peppe197031 Gennaio 2024, 20:37 #18
Originariamente inviato da: Redazione di Hardware Upgrade
Link alla notizia: https://www.hwupgrade.it/news/cpu/c...cel_123859.html

Una CPU a 16 bit completamente funzionante è stata riprodotta in Excel da uno youtuber che ha illustrato il tutto in un video. Capace di lavorare a 3 Hz, il processore include 128 KB di RAM, un display a 16 colori ed è accompagnato da un linguaggio assembly custom.
[/b]


Lo youtuber soffrirà sicuramente della sindrome di Lovelace
HW202102 Febbraio 2024, 12:28 #19
@dav1deser

Scusa conosci il codice che ho scritto per stabilire se è vero o non è vero che Excel ha delle magagne sugli indice delle colonne? Ribadisco senza se e senza ma ... Excel ha problemi con le colonne i cui indici sono congrui a 26 modulo zero. Punto!

Studiati le congruenze e prova a scrivere del codice ...
giovanni6902 Febbraio 2024, 12:51 #20
Originariamente inviato da: Darkon
Purtroppo le potenzialità di excel sono da sempre accompagnate da un difetto fatale: la facilità con cui si può, passatemi il termine, craccare le protezioni.

Ad esempio se io voglio creare una foglio excel che esegue una macro e interrogando una DLL fa vedere a chi lo apre i dati della sua unità operativa per quanto possa proteggere la macro non ci vuole niente con un minimo di pratica a distruggere le protezioni e accedere al codice. A quel punto basta conoscere 2 bischerate di basic e la modifichi come ti pare.

Se risolvessero queste vulnerabilità sarebbe veramente uno strumento devastante.


Per affrontare e risolvere il problema di protezione che citi, basterebbe utilizzare un compilatore che converte il foglio di excel in un eseguibile, tipo XCell Compiler, xlCompiler...?

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^