Post

Visualizzazione dei post da settembre, 2016

CP/M + Turbo Modula-2: un’accoppiata interessante

Immagine
di  Francesco Sblendorio Nei precedenti articoli su CP/M abbiamo parlato di vari aspetti di questo sistema operativo dal punto di vista di un programmatore:   un ambiente di sviluppo (Turbo Pascal)   e aspetti relativi alla   gestione dello schermo e dei tipi di terminale . Questa volta prendiamo in considerazione un insolito compilatore per un linguaggio di programmazione oggi altrettanto insolito:   Turbo  Modula-2  di  Borland . La storia di questo compilatore è particolare: non è mai stato ufficialmente rilasciato da Borland e non è mai uscito dalla fase alpha. L’autore del compilatore è nientemeno che  Martin Odersky , CEO di  Typesafe  e inventore del linguaggio  Scala . Ci troviamo quindi di fronte a un prodotto appartenente a un passato quasi remoto, scritto da un protagonista dell’informatica contemporanea e probabilmente anche futura. Ho trovato che studiare e scrivere qualcosa con questo compilatore potesse essere un ottimo esercizio di ricerca storica. Modula-2: il linguagg

Commodore: 8 bit a caso, ma non troppo

Immagine
di  Francesco Sblendorio Girovagando sui vari gruppi Facebook dedicati al Commodore 64 ho trovato un   link a questa pagina , che riporta uno stralcio di codice interessante, compatibile in realtà con tutti i computer Commodore a 8bit (PET, CBM-II, Vic20, C64, C16, plus/4, C128): 10 x=rnd(-1963):fori=1to81:y=rnd(1):next 20 forj=1to5:printchr$(rnd(1)*16+70);:next 30 printint(rnd(1)*328)-217 Leggendolo, a prima vista sembra estrarre numeri casuali ogni volta, e stamparli in modo diverso. A una prima lettura pare quindi che ogni esecuzione debba dare un risultato differente, ma non è così. Infatti eccone il risultato: Quasi incredibile, vero? Stampa sempre e solo la stringa “ FORUM 64 “. Per capire come sia possibile, bisogna sapere come lavora la funzione  RND(x) , l’unico comando che il Commodore BASIC mette a disposizione per la generazione di numeri casuali. Il parametro  x  della funzione è un numero reale che può assumere valore  negativo ,  positivo , oppure  zero . In ogni caso la