Programmi dimostrativi
In questa pagina troverete i programmi che ho realizzato per introdurmi alla programmazione dei sistemi
basati su PalmOS.
Non hanno alcuna utilità pratica, ma forniscono un'idea delle potenzialità di questi deispositivi. Inoltre, essendo
quasi tutti provvisti del codice sorgente, li potete analizzare e magari potrebbero un giorno diventare il nucleo
di programmi più complessi.
I sorgenti ho tentato di commentarli il più possibile, inoltre tutti i commenti sono in inglese, per dare la possibilità
di comprenderli anche a persone che non conoscono l'italiano.
Una nota importante per questi programmi: tutto il software per PalmOS è identificato da 4 caratteri (maiuscole e minuscole
sono considerate lettere differenti; inoltre possono essere presenti anche cifre numeriche) fornito direttamente dalla Palm.
Teoricamente ogni programma deve avere un codice univoco, ma per programmi così semplici non mi è sembrato il caso di
richiedere tali codici.
Questo può comportare dei problemi, poiché se due programmi diversi utilizzano codici uguali, il sistema li considera come
un solo programma, quindi si possono verificare perdite di dati o la cancellazione involontaria di un programma già esistente.
In ogni pagina dei miei programmi è presente il codice da me utilizzato (sia per i demo che per i programmi free e shareware),
in modo che possiate effettuare un controllo.
Comunque è sempre un'ottima idea effettuare un backup del dispositivo prima di installare un qualunque programma, così
da poterlo ripristinare con gli ultimi dati in caso di malfunzionamenti.
Cube

Questo programma visualizza un cubo che ruota. L'immagine utilizzata per le facce del cubo è animata e creata
all'interno dello stesso programma. Per questa animazione ho utilizzato parte del programma Plasma disponibile qui tra i demo.
La mappatura delle facce non è "canonica" e utilizza un metodo più rapido di quello classico, anche se molto meno preciso
(a volte il colore delle facce "sborda" o ci sono dei "buchi"), ma essendo un piccolo programma dimostrativo non ho
voluto creare una cosa perfetta, ma solo vedere cosa riuscivo a realizzare.
Specifiche:
Versione: 1.0
Requisiti: PalmOS 5 - Processore ARM - Display a 16bit
Creator ID: Cube
>>Download<<
Life

Questa simulazione è una delle più note nel mondo dell'informatica. Creata dal matematico John H.Conway nel 1970, è una
simulazione di vita artificiale in un mondo bidimensionale, basata su poche e semplici regole.
Le regole sono le seguenti:
- Se una cella è circondata da meno di altre due celle, la cella "muore"
- Se una cella è circondata da altre due celle, sopravvive
- Se una posizione è circondata da tre celle, vi nasce una nuova cella
- Se una cella è circondata da più di tre celle, allora muore
Questa simulazione è stata ripresa molte volte e ne esistono molte varianti. Io ho utilizzato le regole originali
e le ho trasferite in questo programma per palmare.
Per questo programma non è disponibile il codice sorgente.
Specifiche:
Versione: 1.0
Requisiti: PalmOS 3.5 - Display a 8bit
Creator ID: MSCL
>>Download<<
Plasma

Il "plasma" è un particolare effetto grafico molto utilizzato nei programmi demo di alcuni anni fa, anche
se è ancora usato.
Ho creato una nuova versione utilizzando il compilatore PP e ho eseguito un'ottimizzazione per utilizzare
il processore ARM presente nei nuovi palmari. Nel caso il processore ARM non sia presente, il programma utilizza
il vecchio sistema.
Con il processore ARM si ottiene una velocità molto più elevata e l'effetto è come dovrebbe essere.
L'immagine qui visualizzata è una breve sequenza presa dal programma e rallentata per visualizzare meglio l'effetto.
Specifiche:
Versione: 1.0
Requisiti: PalmOS 5 - Display a 16bit
Creator ID: MSpl
>>Download<<
Rain

Con questo programma, tutte le volte che la stylus tocca lo schermo, si forma una serie di piccole onde concentriche
come quelle create da una goccia che cade su una superficie liquida.
Dall'immagine non si capisce molto, ma l'effetto è veramente realistico.
Assieme ai sorgenti, sono presenti alcuni file di risorse che contengono diverse immagini di sfondo. Per cambiare sfondo
è necessario ricompilare tutto il programma cambiando il file di risorse utilizzato.
Specifiche:
Versione: 1.0
Requisiti: PalmOS 5 - Processore ARM - Risoluzione 320x320 - Display a 16bit
Creator ID: Rain
>>Download<<
Voxel


Questo è un altro effetto molto utilizzato nei demo. Il punto di forza di questo tipo di programmazione
è la grande velocità di calcolo per la visualizzazione di un terreno 3D.
Ha comunque alcuni limiti (derivati dal metodo utilizzato per i calcoli) che consentono la rotazione
della visuale solo in orizzontale.
La versione è ottimizzata per i palmari con processore ARM. La velocità rispetto alle versioni precedente
è impressionante, nonostante l'utilizzo dello schermo pieno e il calcolo fino a una distanza oltre 4.5 volte
maggiore rispetto alla vecchia versione.
Altre modifiche implementate in questa versione sono:
- Mappa generata in modo casuale
- Texture della mappa generata in modo dinamico
- Possibilità di visualizzare e cambiare la mappa (solo dispositivi a doppia densità)
- Navigazione sulla mappa utilizzando i tasti del palmare
- Simulazione di foschia dovuta alla distanza dall'osservatore
Nell'archivio da scaricare ho incluso due versioni del programma. Voxel.prc è utilizzabile solo su dispositivi
che hanno un display a doppia densità a causa della visualizzazione della mappa. Voxel_sd.prc è invece utilizzabile
su qualunque dispositivo, ma non potete visualizzare o cambiare la mappa.
Le due versioni non devono essere installate contemporaneamente o potreste avere dei problemi.
Tutti gli altri file presenti nell'archivio servono per la compilazione del programma.
Specifiche:
Versione: 1.0
Requisiti: PalmOS 5 - Processore ARM - Display a 16bit
Creator ID: Voxl
>>Download<<
Worms

Questo programma è una simulazione di un automa virtuale che segue alcune semplici regole.
Ogni volta che si punta la stylus sullo schermo, viene generato un'automa con le seguenti "leggi":
- Se può si muove in linea retta lasciando una traccia
- Se non può andare in linea retta, tenta di girare a destra (senso orario)
- Se non può girare a destra, gira a sinistra (senso antiorario)
- Se non può nemmeno girare a sinistra, la traccia si accorcia
- Se la fine della traccia raggiunge la testa (indicata da un piccolo quadrato), l'automa viene eliminato
Il programma funziona egregiamente, anche se a volte compaiono degli automi che si comportano in modo strano.
Questi automi "strani" lasciano una traccia di lunghezza fissa e limitata e non vengono mai eliminati.
Purtroppo non sono più in possesso del codice sorgente, quindi non ho la possibilità di cercare il motivo di queste
stranezze e porvi rimedio.
Specifiche:
Versione: 1.0
Requisiti: PalmOS 3.5 - Display a 8bit
Creator ID: MSCW
>>Download<<