  | Il numero casuale è generato con l'aiuto di un 
  algoritmo  basato su 
  somme, moltiplicazioni, 
  divisioni e spostamenti dei valori di volta in volta 
coinvolti nel calcolo, a partire dal numero a 32 bit ottenuto mettendo in 
sequenza i 4 bytes corrispondenti al tempo 
  corrente, nel momento della prima 
chiamata, letti dalla memoria CMOS di sistema. | 
    | L'analisi del codice mette in evidenza il suo sofisticato 
  modo di operare:
      | preleva il numero iniziale (seme) 
    della procedura leggendo l'orologio di sistema, con l'aiuto della 
    Funzione DOS 2CH dell'INT 
    21H; il valore del 
    tempo corrente è 
    lasciato dalla funzione nei registri CH (Ore, da 0 a 
    23), CL 
    (Minuti, da 0 a 59), DH (Secondi, da 0 a 
    59) e DL (Centesimi di secondi, da 0 a 
    99); in pratica questo pezzo di programma implementa la procedura
    RANDOMIZE di Turbo Pascal. |  
      | per la precisione il numero iniziale è la 
    sequenza dei 4 bytes di 
    Secondi, 
Centesimi di secondo, Ore e 
    Minuti, dal più significativo 
al meno significativo.  |  
      | con un artificio evita di assumere di nuovo il seme per 
    tutta la sessione di esecuzione del programma |  
      | va ricordato che non è detto che il secondo bytes esprima con certezza i 
Centesimi di Secondo; in taluni ambienti operativi probabilmente esprime 
semplicemente un numero da 0 a 17, frutto del conteggio dei  
  Ticks prodotti in un secondo (ogni 54,925493  
  ms) 
piuttosto che dei centesimi (10ms). 
     |  
      | per certi versi questo rende ancora più imprevedibile il numero casuale generato 
da questa procedura. |  
   
   |