Si può davvero leggere il codice binario del computer?

Assolutamente.

Alcuni anni fa, mia moglie comprò alcuni cuscini e una coperta da ThinkGeek che assomigliavano a questo:

main-qimg-759376a3542d9bc5c696f7c4c09b3483.webp main-qimg-2bbe92306ff390bf118a16e2d46be469.webp

(Nota: Immagini grazie a Google Image Search.)

Un giorno, sono entrato nella camera da letto dove li stavamo usando e ho notato uno schema. Mi sono reso conto che il codice binario che c'era sopra era ASCII, e ho iniziato a leggere ad alta voce.... 'P'... 'I'... 'L'... 'L'... "Oh wow, quel cuscino dice davvero 'PILLOW'."

Mia moglie, che era anche nella stanza con me, sembrava un po' sorpresa: "L'hai appena letto?". "Sì!"

(E nel caso ve lo stiate chiedendo, la coperta si legge "coperta" in minuscolo.)

ASCII in particolare è abbastanza facile da leggere in forma binaria, almeno per le cifre e i caratteri alfabetici. (Punctuation, not so much.) Digits 0..9 all start with 0011 followed by 4 bits for the digit:

  • 00110000 is 0
  • 00110001 is 1
  • 00110010 is 2
  • 00111001 is 9.

Upper case alphabetic characters start with 0100 for A through O, and 0101 for P through Z. Or, another way of thinking about it, if you assign the numbers 1 through 26 to the letters A through Z, then the letters all reside at 0x40 plus the letter number.

  • 01000001 is A
  • 01000010 is B
  • 01001111 is O
  • 01010000 is P
  • 01011010 is Z

Lower case alphabetic characters work similarly, only starting with 0110 and 0111.

Once you remember those patterns, reading ASCII from a binary dump isn’t actually that hard at all. Try it on those photos above.

Of course, pure binary dumps aren’t really common. More commonly, we deal with hex dumps. I can still recognize machine languages for certain machines from their hex dumps. Per esempio, il Computer History Museum di Mountain View ha un grande poster con un mucchio di codice esadecimale. L'ho identificato come codice 8080 prima di notare la piccola targa accanto che indicava che era un hex dump di una parte del BASIC originale di Microsoft per 8080. 🙂 Posso anche leggere piccoli pezzi di 6502 in questo modo.

E, ogni tanto, alcune sequenze binarie/esadecimali diventano una sorta di "stretta di mano segreta". Ricordo che ho letteralmente riso di gusto quando ho visto questo:

main-qimg-64b6ff785fb35935cb8dea02f3371a46.webp

(Questa è una mia foto, scattata al Vintage Computing Festival.)

Se vi state chiedendo perché questo mi ha fatto ridere, forse questo codice sorgente potrebbe dare un indizio. (Scorrete in basso fino a LEGGERE.) Oppure, se volete solo la risposta, il tizio di BMOW che possiede il disco lo spiega sul suo blog. Non ho avuto bisogno della spiegazione... l'ho riconosciuto a vista 😀 Si potrebbe dire che Woz ha lasciato la sua firma e il suo autografo.