33
Numero 1, ottobre 2003

Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Embed Size (px)

Citation preview

Page 1: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Numero 1, ottobre 2003

Page 2: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Informazioni & Copyright La rivista QL Magazine, da ora in poi citata nel presente documento come QM, ed il materiale in essa contenuto, e' classificata come FREEWARE.E' quindi consentita, anzi auspicata, la libera copia e diffusione nella stessa nei formati via via supportati.Tutti i diritti sono riservati e proprieta' esclusiva di Giorgio Garabello e Daniela Vacca.Detta copia deve avvenire in maniera totalmente gratuita, fatto salvo una piccola somma, stabilita nella misura di 2 euro, per le copie su disco o su carta (quando supportate) ed equivalente cifra a copertura di eventuali spese postali, e' completamente gratuita la distribuzione elettronica del prodotto, via internet, BBS o quant'altro.E' severamente vietata la copia parziale della rivista senza il consenso scritto da parte dei detentori dei diritti, e' altresi' vietato l'utilizzo commerciale di quanto contenuto, sempre senza il suddetto permesso scritto.

Responsabilita’Gli autori ed i detentori dei diritti sulla rivista non sono responsabili per quanto contenuto in essa e per il suo utilizzo, lecito o meno che sia ne per i danni o malfunzionamenti che QM o il software in essa contenuto possano provocare.

CollaborazioniLa rivista e' estremamente bisognosa di collaboratori che forniscano, anche in maniera parziale e/o del tutto estemporanea aiuto, sono particolarmente apprezzati i seguenti contributi:

scrittura di articoli traduzioni di articoli, manuali e documentazione in italiano. Supporto alla rivista in altri formati.

in ogni caso e' possibile e gradito :

fornire informazioni relative all'oggetto della rivista (novita', eventi, ecc.). pubblicare software. inserire annunci nell'apposita rubrica.

Per quanto concerne la pubblicazione di software e' necessario fornire in allegato la relativa documentazione e/o i sorgenti del programma e/o un help in linea.

I detentori dei diritti su QM si riservano il diritto di pubblicare o meno quanto ricevuto a loro insindacabile giudizio.Quanto inviato non viene comunque restituito, anche in caso di mancata pubblicazione, si raccomanda quindi di inviare delle copie.

RicompenseA causa dello status di FREEWARE di QM, non e' possibile, ne' d'altronde corretto, fornire alcun tipo di compenso per quanto pubblicato tranne la ricezione gratuita del relativo numero di QM e........la gloria della pubblicazione.

Giorgio Garabello

2 QL Magazine paper issue 1

Page 3: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Informazioni & Copyright

Informazioni & copyright 2 Editoriale 4

Software Un nuovo desktop manager per QDOS/SMSQ

6 QEmulator, nuovo capitolo

8 SLSPV, visualizzatore di file _pic 9 Dirlist, generare dinamicamente liste di directory

10

Internet "The Download Page", riprendono i lavori

11 Internet sul QL, lo “stato dell’arte”

11

Eventi & Notizie Il QL al giorno d'oggi 12 Notizie dal mondo QL 12

Programmazione

MicroEMACS e multiedit 14 Linguaggio C - Capitolo 9 Puntatori a funzioni 16 Raytracing, come godo :-)

18

Tips & Tricks

Ottimizzazione della memoria 18

3 QL Magazine paper issue 1

Page 4: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Informazioni & Copyright

Reader Multilingua 19

Mercatino Il mercatino, regole per l'uso 20 Annunci 20

4 QL Magazine paper issue 1

Page 5: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Editoriale

5 QL Magazine paper issue 1

QL Magazine paper isssue 1

Cari amici, questo numero di QL Magazine e' forse uno tra i piu' importanti tra quelli usciti fino ad oggi.Importante perche' esce in concomitanza del meeting QL internazionale di Reggio Emilia, in assoluto il massimo evento quellistico italiano.Per tale occasione la rivista vuole dare il meglio di se' presentando accanto alla tradizionale versione elettronica una versione cartacea a colori.La nostra intenzione non e' ovviamente quella di passare dal formato elettronico a quello cartaceo, i costi di gestione sarebbero troppo alti e la fruibilita' della rivista stessa sarebbe minore, contiamo pero' di far uscire una "special issue" cartacea in concomitanza di ogni evento a cui QL Magazine partecipera' in futuro come forma di supporto alla nostra piccola ma agguerrita comunita’.Quello che vogliamo fare tramite questa nuova iniziativa e’ dare un segnale molto forte, vogliamo far sentire la nostra voce in modo che arrivi a tutti i quellisti ed ex quellisti sparsi per la penisola per dire loro: noi siamo qua.In questo nuovo formato abbiamo cercato si ricalcare il piu’ fedelmente possibile la versione elettronica del nostro magazine, ad esempio nella divisione degli articoli in settori differentemente colorati, colori che potete ritrovare nei bordi esterni delle pagine.Abbiamo dedicato molti sforzi per realizzare un progetto che fosse qualitativamente buono sia sul fronte del contenuto che quello dell’estetica, consci del fatto che oggi un buon prodotto senza un’adeguata “confezione” perde buona parte del suo valore e del suo interesse.Non per questo la versione elettronica e’ stata trascurata, articoli e fotografie sono le medesime e potrete vederle attraverso l’usuale programma di gestione sul QL o tramite browser su tutte le piattaforme.Al di la' degli aspetti prettamente estetici e di formato, questo numero si presenta particolarmente ricco di materiali e di novita' ma su questo preferisco non darvi anticipazioni ma lasciarvi la sorpresa pagina dopo pagina e nel frattempo vi lascio con il mio solito……… buona lettura!

Giorgio Garabello

Page 6: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Editoriale

6 QL Magazine paper issue 1

Page 7: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Editoriale

7 QL Magazine paper issue 1

Page 8: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

Un nuovo desktop manager per QDOS/SMSQdi Paolo Borzini e Giorgio Garabello

IntroduzioneLaunchpad e' un nuovo desktop manager dotato di GUI (Interfaccia Grafica Utente), scritto da Dilwyn Jones, per computer con sistemi operativi QDOS,SMSQ o SMSQ/E.

Le icone possono essere associate ai singoli programmi, mette a disposizione un file manager con doppia finestra ,Screen saver e tutte quelle cose che rendono facile ed intuitivo l'utilizzo di un QL.

Launchpad per poter funzionare richiede la presenza di Pointer Environment, Toolkit 2 ed espansione di memoria.

Caratteristiche Gestisce fino 4 desktop, ed

ognuno dispone fino a 40 icone.

Vengono gestiti fino a 16 utenti, ognuno con le proprie impostazioni del desktop e con la propria password.

Se c'e' un solo utente, la finestra di login e richiesta password non viene visualizzata.

Il sistema memorizza le preferenze, risoluzione video ecc.

Tutti i programmi hanno le loro opzioni (DEV, SUB, DATA_USE, PROG_USE ecc. )

Semplice e comodo da usare con il sistema punta e clicca.

Esecuzione dei programmi con un solo click del mouse ed il lavoro procede velocemente.

Tramite il menu' di MyQL si possono memorizzare tutte le configurazioni del sistema.

Funziona sui sistemi QDos con espansioni di memoria e sui piu' moderni sistemi SMSQ/E.

Funziona anche con i QL espansi, Aurora, Q40 / Q60, QXL, QPC2 e i piu' usati emulatori.

I requisiti minimi si sistema per poter funzionare sono un’espansione di memoria, il pointer environment e toolkit2.

Si possono eseguire i programmi semplicemente selezionandoli dal menu (come "Esegui…" di Windows).

Gli utenti QPC possono eseguire programmi DOS o Windows tramite QPC_EXEC.

Nessuna installazione complessa, semplicemente si copia in una directory, si configura con il nome della directory e questo e' tutto.

Launchpad non prende il completo controllo del sistema,

ma si puo' continuare a lavorare come prima utilizzando i comandi Basic o tramite CTRL-C per muoversi tra i programmi.

Il menu accessori contiene un insieme di utilita' come la calcolatrice, giochi, screen saver ecc.

Un semplice e potente file manager a doppia finestra (Q-Trans).

Opzioni avanzate per la gestione di programmi come Quill.

Le icone possono essere spostate, modificate, copiate,cancellate ecc.

File Info II compatibile, gli utenti di questo programma possono utilizzare i testi e i dati.

Al momento di scrivere questo articolo, Launchpad non e' ancora

pronto per il rilascio, ma la versione alfa per il test e' stata distribuita ad alcuni utilizzatori.

Questa versione e' completa tranne per il sistema di Help e ovviamente i manuali.Alcuni dei programmi Accessori non sono ancora completi.Alcuni bug sono ancora presenti in questa versione alfa.

8 QL Magazine paper issue 1

Il menu’ Accessori di Launchpad contiene una completa serie di programmi, compresi alcuni piccoli giochi.

E’ possibile configurare da uno a quattro menu’,contenenti fino a 40 icone ciascuno.

Page 9: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

9 QL Magazine paper issue 1

Page 10: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

Il desktopIl desktop gestito da Launchpad, contiene icone programma, icone di sistema e menu operativi; i programmi possono essere aggiunti al desktop utilizzando l'opzione "Add New Program" contenuta nel menu file o premendo il tasto destro del mouse.Una finestra di configurazione apparira' sullo schermo, all' interno di questa finestra bisogna specificare l'icona da usare, il nome che apparira' sotto l'icona e tutti i DEV, SUB,i parametri di xxx_USE, DATA e PROG di default o le linee di comando richieste dal programma. A vederlo cosi' sembra tremendamente complesso ma i parametri richiesti dalla maggior parte dei programmi si riducono a 3 o 4, il nome dell'icona, il nome del file e la sua descrizione.Premendo il tasto destro quando con il puntatore e' sopra all'icona, appare un menu a scomparsa (ACTION) che permette di scegliere fra varie azioni come copiare, muovere, cancellare, ordinare e altre ancora.

Ci possono essere fino a 4 desktop, tutti con le loro belle icone, si puo' navigare tra essi semplicemente premendo i nome dei menu che appaiono in alto a destra (chiamati per default MENU 1, MENU 2 ecc. ) o usando il menu "Menus" dal quale e' possibile rinominare i desktop e utilizzarne uno per i giochi, uno per QPac2, uno per i programmi d'utilita' o qualsiasi cosa vi vada bene.Normalmente il desktop occupa tutto lo schermo ma e' possibile usare il cursore per ridurne la dimensione che preferite (la dimensione minima e’ 512x256 pixel).

I menu'Launchpad visualizza sul desktop,in alto a sinistra, i menu disponibili.Questi sono il menu' "File", "Launch","MyQL", "Menus" e l'Help (versione online del manuale). Il menu' "File" consente di

aggiungere nuovi programmi al desktop, salvare manualmente la configurazione del sistema (di solito e' automatica), fare una stampa della configurazione attuale, cambiare la configurazione utente, se qualcun altro in famiglia o in ufficio vuole usare il computer, creare un nuovo utente o modificare la password o uscire completamente da Launchpad.

Il menu' "Launch" permette di eseguire programmi, utility e gli utenti QPC possono eseguire programmi DOS o Windows tramite la funzione QPC_EXEC integrata in QPC2.

Il menu' "MyQL" (e' stato Darren Branagh a scegliere questo nome...) e' il menu di sistema e contiene tutte le opzioni per configurare e controllare il computer, il monitor, l'ora, il mouse, la tastiera, le opzioni di rete ecc.

Il menu' "Menus" permette di cambiare i nomi associati ai 4 desktop o di saltare da un desktop ad un'altro.

Gli utentiLaunchpad permette di utilizzare fino a 16 utenti diversi, comprese le impostazioni e il desktop; ogni utente puo' avere un suo login e di una sua password (memorizzate in forma criptata).

Tutti i programmi e i settaggi per ogni desktop sono salvati in maniera separata, in modo che l'utente puo' settare la propria sessione con la risoluzione video, il numero di colori, il mouse, la tastiera ecc. ovviamente tutto questo e'gestito dal sistema. Questa e' una cosa molto comoda e utile quando il computer e' condiviso da piu' persone della stessa famiglia o dell'ufficio che possono avere configurazioni diverse.Per cambiare utente, basta scollegarsi e rifare il login con il nuovo utente.Tra le altre cose e' possibile cambiare password ad ogni connessione. Ovviamente se il sistema e’ utilizzato da una persona sola non c'e' ne' la finestra di login ne' la richiesta di password.Appena un nuovo utente si aggiunge allora la finestra di login appare, in maniera automatica.

AccessoriAll'interno del menu accessori, si puo' accedere a piccoli programmi forniti da Launchpad. Al momento questi sono :

Calcolatrice : una semplice calcolatrice da scrivania.

Mappa caratteri : Visualizza la mappa dei caratteri dove e'possibile selezionare un carattere e copiarlo tramite il buffer.

Giochi : attualmente ci sono 2 giochi, Hexpawn e Digital Invaders.

PIC Viewer : visualizzatore d'immagini in formato QL, PIC e GD2.

Q-Trans : File manager

QL Magazine paper issue 1

10

Lauchpad dispone di un completo set di strumenti di L’utente puo’ personalizzare l’esecuzione di ogni programma.configurazione personalizzabili per ogni singolo utente.

Page 11: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

Screen Grabber : salva una copia dello schermo in memoria

Screen Saver : sistema salvaschermo che riconosce sia la pressione di un tasto sia il movimento del mouse, e' possibile anche creare un proprio modulo.

System Status : controlla i settaggi del sistema.

Text File Viewer : permette la visualizzazione di file in formato testo.

Launchpad sara' distribuito come pacchetto commerciale e sara'

affiancato da una versione demo limitata nelle funzioni, il prezzo e la data del rilascio saranno annunciate a breve.

Traduzione a cura di Paolo BorziniAdattamento a cura di G. Garabello

QL Magazine paper issue 1

11

Page 12: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

QEmulator, nuovo capitolodi Giorgio Garabello

Buone notizie sul fronte degli emulatori.

Daniele Terdina ha recentemente rilasciato una nuova versione di QEmulator l'emulatore QL per Windows e Mac, attualmente il principale concorrente del noto QPC2.

Il programma e’ scaricabile al seguente indirizzo:

http://users.infoconex.com/daniele/winql.html.

Questo aggiornamento e' gratuito per tutti gli utenti registrati e include una quantita' di nuove funzioni (molte delle quali disponibili solo a chi dispone di una registrazione "Expanded QL"): compatibile con le recenti versioni di SMSQ/E per la Goldcard, dispone di accesso in lettura/scrittura alle immagini QXL.WIN (finora in sola lettura).

Scaricando la libreria aggiuntiva debug_68k.dll, e’ possibile avere un debugger L/M per QL sempre disponibile,semplicemente premendo il tasto F11.

Sul fronte del TCP/IP i device driver QDOS sck_ e tcp_ sono stati parzialmente implementati, ci

sono funzionalita` sufficienti a far partire il port per QDOS del browser Lynx. E-mail e FTP sono attualmente in fase di beta-testing.

Emulazione della porta Joystick CTL1. Compatibilita' migliorata anche con il vecchio software QL contenente bug, che accede a indirizzi di memoria errati.

Non essendo riuscito ad aggiornare la versione MacOS di Q-emuLator per molto tempo, Daniele ha deciso di rendere

liberamente disponibile una delle ultime versioni all'URL:

http://users.infoconex.com/daniele/macql.html

Tra le varie migliorie apportate l'implementazione del protocollo TCPIP spicca sicuramente tra tutte, adesso e' possibile accedere ad Internet da QDOS non soltanto piu' attraverso UQLX (che utilizza la piattaforma Linux) ma anche dalla piu' usata WIN*.

Questo sicuramente rilancia sul mercato questo emulatore di origine italiana (non dimentichiamolo!) che nonostante la sua estrema validita' era stato un po' snobbato a favore del piu' noto QPC2, forse a causa di una maggiore campagna informativa.

Oggi QEmulator non soltanto passa al contrattacco ma si propone in maniera estremamente aggressiva andando a colmare proprio una delle lacune oggi piu' sentite nel mondo del QL, la mancanza di connettivita' alla rete.

QEmulator per accedere alla rete utilizza lo stack TCPIP nativo di windows analogamente al suo concorrente UQLX e allo stesso modo frutta i medesimi programmi client per la gestione delle e-mail, la connessione via FTP e il Browser testuale Lynx.

12 QL Magazine paper issue 1

Lynx, il web browser del QL in azione con Qemulator.

Tramite il client FTP e’ adesso possibile aggiornare siti direttamente attraverso l’emulatore, saltando cosi’ eventuali passaggi intermedi.

Page 13: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

Jonathan Hudson ha gia' definito anni fa tutte le chiamate QDOS per il TCP/IP in modo da mapparle facilmente alle corrispondenti chiamate Unix, e le API Windows sockets sono per lo piu' compatibili con le chiamate Unix.

Fabrizio Diversi, che ha effettuato diversi test con l'emulatore afferma:

"Come avevo gia' detto funziona sia il browser Lynx che l' FTP ma anche l'email sia in spedizione che in ricezione.Spero quanto prima di inviare una mail al newsgroup, a dire il vero ieri la avevo gia' inviata ma da un account che non puo' scrivere su sinclair-yahoogroups.I programmi che ho usato sono quelli di Jonathan Hudson, Lynx,FTP e QDOSemail, il programma Qpop3( riceve e-mail con un programma in stile PE) non riesco a farlo funzionare.La configurazione per i due programmi fetchpop (riceve e-mail dal pop) e qlmailer (spedisce le e-mail) e' un po' complessa specie se si hanno account di posta multipli e si e' collegati a Internet con ADSL ed un Router.

Il programma fetchpop ad esempio non funziona con il pop tiscali in quanto il suddetto pop non implementa il set esteso di comandi di fetchpop (per la prima volta un programma QL e' piu' sofisticato del necessario). Non dovrebbe essere difficile modificare il programma e renderlo compatibile. QLmailer mi da problemi con Qemulator e WinXP (si blocca Qemulator in fase di spedizione), mentre funziona bene con Win2000, sto cercando di capire se e' WinXP o un parametro differente fra le due macchine che uso.Le e-mail ricevute vengono scritte e accodate in un file di spool , sto cercando di vedere se esiste un viewer per e-mail che le possa far vedere in maniera formattata.Per il momento e' tutto (in attesa che Daniele implementi i driver video a risoluzione estesa con 16bit di colore in Qemulator)"

Caso strano, la notizia dell'implementazione della connessione ad internet e' passata quasi in sordina, segnalata "quasi per caso" su una e-mail alla mailing-lst ql-users e da li rigirata sulla lista italiana sinclair-italy.Chieste maggiori delucidazioni a Terdina in persona la stranezza e' stata subito spiegata: l'implementazione non era inizialmente prevista e ed stata aggiunta all'ultimo minuto.

Questo particolare ci fa riflettere e ne approfittiamo per una scherzosa tiratina d'orecchie a Terdina stesso :-) un prodotto per quanto buono finisce facilmente nel dimenticatoio se non adeguatamente supportato da una campagna informativa e/o promozionale e nel nostro piccolo mondo cosi' avaro e al tempo sesso avido di notizie e novita' cio' diventa oltremodo importante.Speriamo che i nostri suggerimenti vengano ascoltati.Detto questo, non resta che chiederci: cosa faranno ora 'accoppiata Merz/Kilgus?A quando un QPC2 (o 3) dotato di connettivita' ad internet?

SLSPV, visualizzatore di file _pic

di Giorgio Garabello

Oh no!, Un altro visualizzatore di file _pic!

Ebbene si, nulla di nuovo sotto il sole, si tratta di un programma che risale al 1997, ma vediamo insieme perche' vale la pena scrivere un piccolo articolo su questo programma.Questo software di Jonathan Hudson nasce come evoluzione di SPV.

Cosa sono questi strani nomi?

SPV non e' altro che l'acronimo di “Simply Pic Viewer”, un visualizzatore di file _pic che risale alla seconda meta’ degli anno ’90, siccome Hudson ha aggiunto qualche funzionalita' al programma ha pensato bene di chiamarlo SLSPV, ossia “Slightly Less Simply Pic Viewer”, ma che Jonathan Hudson fosse un po' contorto lo sapevamo gia', vero?

Questo software scritto in C funziona sotto Pointer Environment, e' dotato di una finestra dimensionabile ed e' in grado di visualizzare file piu' grandi della sua finestra e dello schermo stesso, ideale per chi vuole vedere immagini a forti risoluzioni pur avendo a disposizione un semplice monitor RGB.

I Classici tasti di ridimensionamento e spostamento finestra consentono di gestire al meglio la finestra di visualizzazione.

SLSPV utilizza le menu' extension di Jochen Merz per la ricerca dei file ed essendo scritto in C funziona perfettamente anche con la versione demo, il che consenteall'utente di sfruttare al massimo questo software in maniera totalmente gratuita.Il programma interagisce inoltre con un altro programma gratuito: QUNPIC, sempre scritto da Jonathan Hudson che consente di convertire i file _pic nei formati _png. _epsf, _gif, _tiff (LZW, packbit e no compress) e _pcx.

Per maggiori informazioni sui formati grafici in questione vi rimando agli articoli scritti da Roberto Porro presenti sui numeri precedenti di QL magazine.Il programma rileva la presenza QUNPIC (se opportunamente settato tramite variabile d'ambiente) e abilita le relative voci "save as..." per effettuare le conversioni di formato.

13 QL Magazine paper issue 1

QEmulator mentre esegue il programma Chess della Psion

SLSPV e’ in grado di convertire i file _pic inmolti formatiutilizzabili su altre piattaforme.

Page 14: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

Si tratta quindi non visualizzatore combinato ad un convertitore.

il programma e' scaricabile dal sito di Jonathan Hudson:www.daria.co.uk

14 QL Magazine paper issue 1

Page 15: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

Dirlist, generare dinamicamente liste di directory

di Giorgio Garabello

DirList e' un piccolo ma interessante programma in grado di generare dinamicamente liste di directory analizzando la struttura logica di una periferica e scaricare l’output generato in vari formati e su varie device.

E’ compagno di MakeDirs, entrambi facenti parte della serire Toolbox 98.Dirlist e Makedirs sono due utility utili per effettuare backup, restore e riorganizzazioni di Hard Disk e altre device che supportano la gestione di livello 2 delle directory.Come le altre utility della QL Toolbox '98 Collection questi programmi possono funzionare tramite menu' Pointer Environment o tramite linea di comando tramite gli abituali comandi S*BASIC.Entrambe le utility sono compilate con Qliberator e sono state testate sia sotto QDOS JM che Mineva.

Dirlist crea una lista delle directory presenti sulla device specificata e la memorizza su di un file di testo specificato dall'utente.Il file contiene nella prima riga il nome della device e nelle righe successive l'elenco delle sottodirectory.Questo elenco viene sempre ordinato in ordine crescente.

DirList funziona con qualsiasi tipo di memoria di massa, dal vecchio microdrive agli hard disk alle ram disk, siano essi montati localmente o raggiunti tramite rete locale.Unica eccezione e’ costituita per ora dalle unita’ CD ROM.

Descriveremo ora la funzione di ciascun tasto sulla finestra di Dirlist, la cui videata principale potete vedere qua sotto.Ovviamente bottoni "standard" come Move, Quit e Sleep non sono stati documentati in quanto identici in tutti i programmi Pointer Environment

Info

Info puo' essere attivato premendo il tasto [F1] e mostra semplici informazioni riguardanti il programma come il numero di versione e la data di rilascio.

Root

Specifica la directory da cui partire. Puo' essere un semplice nome di device o un nome di directory completo.Sono accettate solo directory di livello 2.

Target

Specifica il nome ed il percorso del file dove verranno salvate le informazioni.

To ScrapSelezionando "To Scrap" l'output verra' reindirizzato nello scrap, in modo da risultare disponibili ad altre applicazioni.

List

Questa opzione viene automaticamente abilitata nel momento in cui voi avete specificato una directory valida.

Premendo i tasti Do o Hit la lista verra' creata. Una lista progressiva di messaggi apparira' nella finestra di output mostrandovi in tempo reale lo stato di avanzamento della creazione della lista.

L'interfaccia utente e' quella standard dei programmi della serie Toolbox 98 per cui una volta imparato ad usarne uno, non

dovrebbe essere troppo complicato utilizzare anche gli altri.

Per le restanti nozioni vi rimandiamo al manuale, estremamente chiaro e completo presente in allegato al software stesso. Vi segnaliamo solamente la possibilita' di utilizzare il software attraverso la linea di comando, opzione che vi permette di controllare il programma tramite un altro modulo e non soltanto attraverso la tastiera.

Configurazione

Dirlist puo' essere configurato utilizzando Menuconfig, il classico programma di gestione dei blocchi di configurazione level 1 & 2 che ormai siamo abituati a conoscere e viene fornito abitualmente con quasi tutti i software commerciali.E’ possibile in questo modo assegnare sia una device di default da analizzare, sia predefinire il nome del file che conterra’ l’elenco delle directory.

Il programma e' stato scritto in SuperBASIC ed e’ stato compilato utilizzando QLiberator v3.33 con il runtime 3.36mod.DirList utilizza anche il comando TREE, proveniente dal file WD_bin fornito con l'interfaccia QBIDE.

15 QL Magazine paper issue 1

Dirlist in “azione” in una porzionedi schermo QL ad alta risoluzione

Page 16: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Software

Entrambe le estensioni sono linkate all'interno del programma

eseguibile per cui non e’ necessario renderle residenti in memoria per poter eseguire il programma.

16 QL Magazine paper issue 1

Page 17: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Internet

"The Download Page", riprendono i lavori di Giorgio Garabello

Vi ricordate del sito www.sinclair-ql.it?Questo sito era nato con l'ambizioso progetto di riunire tutto il software gratuito disponibile per il QL e renderlo disponibile all'utenza in modo facile ed immediato.L'intero sito era stato sviluppato da un gruppo di lavoro tutto italiano geograficamente distribuito per tutta la penisola, un ottimo esempio di cooperazione a distanza e il primo esperimento del genere (perlomeno in Italia) che raccogliesse un cosi' alto numero di collaboratori.Dopo un buon esordio, dove si rendeva disponibile circa meta' del software raccolto (oltre 600

programmi) con relativi commenti sia in inglese che in italiano, il progetto si arenava per il solito problema della mancanza di tempo da parte dei gestori del sito.Oggi, ad un paio di anni di distanza,finalmente riprendono le attivita' e sono stati resi disponibili alcuni nuovi settori.La nuova gestione del progetto prevede l'attivazione completa di tutti i settori entro la fine dell'anno.Questa e' considerata la fase 1.La seconda fase consiste nel redistribuire nei vari settori il software a cui non e' ancora stata assegnata una categoria, questa in particolare e' un operazione che comportera' una notevole perdita di tempo in quanto occorre analizzare ad uno ad uno software pressoche' sconosciuti e documentati quando va bene in inglese, ma spesse volte anche in tedesco.La terza ed ultima fase prevede (finalmente) la possibilita' di uploadare nuovo software, e qui occorrera' concordare col gestore del sito le modalita' con cui effettuare l'upload sul server.Come potete vedere non e’ certo il lavoro che manca, casomai il problema sono le risorse per cui si accettano volentieri dei volontari.

Per informazionei scrivere a: [email protected]

QL Magazine paper issue 1

17

La home page del sito.

Page 18: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Eventi & Notizie

Beginner's Club, un continuo rinnovamento03/10/2003

Continua a pieno regime l'attivita' su internet del Beginners Club di Vercelli.Attualmente e' in atto una completa ristrutturazione del sito sia nel settore QL sia negli altri trattati dal club, ricordiamo infatti che il Beginners club opera in svariati settori e quello del QL e' solamente uno dei tanti.Non resta che applaudire e incoraggiare i nostri amici vercellesi perche' continuino col loro impegno.

Quantum Technology e internet01/10/2003

Vista la crescente, seppur lenta, connettivita' del QL ad internet e considerata la forte limitazione all'accesso web, per ora esclusivamente testuale, Quantum Technology ha annunciato la sua intenzione di adeguare il suo sito per venire incontro alla limitata connettivita'.Verra' messa on-line una versione esclusivamente testuale dello stesso in modo da poter essere totalmente fruibile direttamente dai QL.

Per ora non si conoscono le date di questo progetto, anticipiamo soltanto il fatto che lo sviluppo verra' fatto tenendo anche conto delle limitazioni del browser "Reader" e che sara' possibile scaricare l'intero sito per poterlo visionare in locale tramite quest'ultimo.

18 QL Magazine paper issue 1

Internet sul QL, lo “stato dell’arte”di Giorgio Garabello

Internet si, internet no, internet forse...internet un po' ma non troppo.Mai come oggi la situazione sulla connettivita' ad internet del gioiellino dello zio Clive e' stata cosi' confusa, vediamo di fare un po' di chiarezza.Come prima cosa faremo un elenco delle piattaforme QL distinguendo quelle dotate o meno di connettivita' (parliamo ovviamente di QDOS e derivati) e in seconda battuta vedremo cosa e' possibile fare collegandosi ad internet.

Piattaforma Connessione

QL beta-versionQ40 beta-versionQ60 beta-versionQXL noQPC noQPC2 noQEmulator siUQLX siQL2K no (per ora)

Come vedete piano piano internet comincia a fare breccia nel nostro piccolo ambiente, cio' che ieri era un lusso o un vezzo e' oggi uno strumento di largo consumo, quindi diventa impensabile non disporne, seppur in forma limitata.

Cosa c'e' oggi sul QL disponibile per internet?Abbiamo un client di posta e un programma FTP e Lynx come browser di testo.Direi che dal punto di vista delle informazioni testuali e della scambio di file tutto sommato la situazione non e' poi cosi' disastrosa, differente e' invece il dicorso web e multimedialita'.

Dando quest'ultima per irraggiungibile, possiamo solo sperare che in un futuro non troppo lontano si riesca ad avere un browser degno di questo nome.

Il QL al giorno d'oggi di Elia Bellussi

Questo articolo vuole essere una piccola riflessione sul QL e al suo utilizzo nel terzo millennio.

Chi lo possiede conosce gia' i lati positivi di questa macchina: veloce e ottima per le piccole cose: dal foglio elettronico al word processor.

Per chi non e' troppo esigente, per un uso personale o per piccole gestioni e' una ottima alternativa ai comunissimi pc.

E' ovvio che se un utente volesse fare un documento contenente un collegamenti ipertestuali con filmati video o un foglio elettronico con celle contenenti immagini non puo' aspettarsi dal QL possibilita’ di questo genere.

Purtroppo al giorno d'oggi persone che utilizzano il Sinclair come personal computer sono poche anche perche' con i moderni pc oltre alle suddette cose e' possibile fare dell'altro come navigare in internet, giocare, scrivere e-mail.

Certo, anche col QL e' possibile fare tutto cio' ma non e' certo la stessa cosa.

Il Prowess ad esempio secondo me e' un "volere a tutti i costi" un browser con le ovvie limitazioni che le ridotte risorse hardware permettono.

Purtroppo anche lo sviluppo software in questi ultimi anni ha avuto una brusca flessione anche perche', essendo pochi gli utenti rispetto il pc, le grandi "software house" non hanno convenienza a investire il proprio denaro per una piccola fetta di mercato.

Ecco quindi che dalla seconda meta' degli anni 90 ad oggi principalmente il software prodotto e' stato fatto a livello quasi hobbistico.

Se per assurdo la "comunita' QL" si ampliasse sicuramente qualcosa si muoverebbe anche in tal senso ma purtroppo, con la mancata produzione di nuovi QL (a parte il Q40/60 che non dispone di una grossa catena di distribuzione e non viene pubblicizzato a dovere), la mancata produzione di pezzi di ricambio e di supporto, i prezzi ultraeconomici dei nuovi pc fa si

Sir Clive Sinclair, affettuosamente chiamato “zio Clive”

Page 19: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Eventi & Notizie QlwIP 25/09/2003

Peter Graf ha scritto alla mailing list ql-users per annunciare lo sviluppo di QLwIP, uno stack TCP/IP nativo per QDOS, che supporta Ethernet su Q40 e Q60. Il client email QPOP3 di Jonathan Hudson e' integrato nel pacchetto, cosi' come un server web dello stesso Peter, che permette anche l'upload di file tramite il metodo PUT, un'alternativa interessante a FTP.Dato che QPOP3 non supporta la spedizione di email, Peter sta lavorando a un client mail con GUI maggiormente funzionale per QLwIP.Per ulteriori dettagli contattare Peter Graf.

QL Rouges 15/09/2003

Avete mai desiderato associare i volti ai nomi nella scena QL?Provate ad andare alla QL Rogues Page che ho realizzato da poco! Ulteriori contributi alla galleria sono benvenuti(Mettiamo Giorgio e Romaldo! NdT).(Mi ci hanno gia' messo! :-) NdGG)

Sito offline 27/08/2003

Jean-Yves Rouffiac scrive: "Una rapida nota per farvi sapere che il mio tristementetrascurato sito per il QL: (http://www.westhaven.uklinux.net/qwertyb) e' fuori uso per un po' fintanto che lo porto su un altro server.Al suo ritorno avra' un nuovo look and feel, dato che il nuovo server non supporta lo scripting dal lato server - dovro' ricostruire comunque le pagine, per cui ho pensato di renderle piu' semplici e chiare”.

Drive ED di nuovo sul mercato 25/08/2003

La RWAP Services e Quantum Leap Software a breve inizieranno a vendere nuovi drive ED Mitsubishi/IBM (con una garanzia di sei mesi sulla sostituzione o restituzione della somma, doppia rispetto al solito) e dischetti ED con garanzia a vita a prezzi MOLTO MOLTO competitivi. I drive non richiedono FLP_JIGGLE per formattare a 720Kb, ma hanno un commutatore opzionale per questo scopo.

Inoltre Zeljko Nastasic ci informa che sara` possibile eliminare questa necessita` modificando leggermente la Super Gold Card, questa possibilita' e' in fase di studio restate sintonizzati!Altre notizie sui drive ED si trovano a:

http://hometown.aol.co.uk/RWAPSoftware/EDDisk.html

19 QL Magazine paper issue 1

Page 20: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Eventi & Notizie Just Words, aggiornamenti software 24/08/2003

Geoff Wicks ha postato nuove versioni di due programmi sulla web page Just Words!. Solvit-Plus: la versione 3 mostra i colori corretti per la casa in modalita' high colour. (Particolarmente sgradevole nella precedente versione.)La versione 2 (non pointer) ora gira su QPC2 in una macchina XP.Spelling-Crib: anch'esso ora mostra i colori corretti in modo high colour, ora contiene un dizionario migliorato e arricchito di 82000 termini inglesi.Un dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di preparazione. Solvit-Plus v3 e Spelling-Crib possono essere scaricati dall'URL http://members.lycos.co.uk/geoffwicks/justwords.htm

UQLx per windows16/08/2003

UQLx e' stato portato in Windows da Peter Graf e Phoebus Dokos e in Apple Macintosh OS X da James Weatherley. La pagina di Dilwyn Jones sugli emulatori per QL contiene dettagli e indirizzi delle pagine di supporto e download. Al tempo della scrittura la versione Mac OS X possiede il supporto TCP/IP, non cosi' per la versione Windows.

Quanta, 21 anni da festeggiare!14/08/2003

Quanta e QL Today accettano proposte per le date preferite di un grande evento nell'autunno del 2004 per celebrare i 21 anni di supporto del QL da parte del Quanta. Si cercano voti per una preferenza per l'Inghilterra (preferibilmente Portsmouth) o per l'Olanda (possibilmente Eindhoven). L'evento e' temporaneamente noto come QL 2004 e si spera che abbia piu' utenti possibile per quello che appare essere il maggior evento legato al QL per il prossimo anno.

Just words chiudera' i battenti11/08/2003

Tristemente Geoff Wicks ha annunciato la cessazione delle sue vendite di software QL nel 2004. Geoff e' entrato nella scena QL piuttosto tardi rispetto gli altri venditori e ha costruito la sua Just Words!

Con successo, con un pacchetto di software verticale per scrittori e amanti delle parole. Spero vivamente che qualcuno la' fuori lo persuada a continuare, dato che la sua presenza e la sua lungimiranza ci mancheranno per non menzionare i suoi programmi per QL di qualita'!

UQLx e midi player10/08/2003

Simon Goodwin ha adattato il MIDI player di Al Bohem su UQLx, usando un dispositivo midi supportato da Unix/Linux (virtualmente, ogni scheda sonora per PC e la maggior parte delle porte seriali flessibili). Richiede il Toolkit 2. I file sono disponibili a (con il permesso di Al Bohem)

http://simon.mooli.org.uk/QL/

insieme a collegamenti a molti altri programmi e articoli da Simon.

Nuove pubblicazioni 09/08/2003

Dal 25 agosto, Phoebus Dokos pianifica di rilasciare due nuove pubblicazioni. La prima sara' un Manuale di Riferimento Hardware e un Manuale di Riferimento Turbo. Saranno disponibili in forma stampata, rilegatura rigida o a spirale, oppure scaricabili come PDF.

SourceEdit 08/08/2003

Jimmy Montesinos e Phoebus Dokos hanno reso disponibile un file di descrizione del linguaggio per il programma SourceEdit.

QPC2, aggiornamenti 07/08/2003

La versione 3.11 di QPC2 e' uscita. Gli utenti registrati possono scaricare l' aggiornamento come file ZIP protetto da password da sito di Marcel Kilgus.QPC2 3.11 include la versione 3 di SMSQ/E e l'ultimo Window manager, un modo a 8 bit a 256 colori compatibile Aurora e alcune nuove estensioni per il controllo delle stampanti parallele.

QL Magazine paper issue 1

20Qpac2 in esecuzione su QPC2 v3.In alta risoluzione e high colour con uno splendido effetto tridimensionale

Alcune finestre di Qpac2 con il layout classico.

La stessa videata, ma in high colour e differenti colori.

Page 21: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Eventi & Notizie

QL Magazine paper issue 1

21

Page 22: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione MicroEMACS e multiedit

di Giorgio Garabello

MicroEMACS e' oggi sicuramente uno degli editor di testo piu' avanzati presenti sulla nostra piattaforma, la sua potenza e versatilita' sono sicuramente le sue caratteristiche principali.Quest'ultima in particolare rende difficile descrivere questo editor in poche righe perche' parlare di un suo aspetto significa trascurarne immeritatamente gli altri.

Per questo motivo ho provveduto a scrivere una serie di articoli, gia' usciti nei passati numeri di QL Magazine, in cui per ogni articolo ne descrivevo una potenzialita' o illustravo l'utilizzo di determinate opzioni.

Questa volta vorrei parlarvi dell’editazione contemporanea di piu' programmi e per farlo iniziero' descrivendo due "concetti" tipici di MicroEMACS, la finestra e lo schermo.

In questo articolo usero' il termine "videata" per indicare quella che viene normalmente chiamata "finestra" in altri ambienti, ad esempio Windows, per non generare confusione con il concetto di finestra di MicroEMACS, che e' una cosa leggermente diversa.

Lo schermo

In MicroEMACS si definisce

"schermo" l'intera area editabile presente nel programma, quindi in pratica tutta la videata principale ad esclusione della barra di stato, dei menu', della barra del titolo e poche altre cosette.

Come sappiamo la videata di MicroEMACS e' ridimensionabile e quindi puo' diventare molto grande, tanto per fare un esempio una videata a pieno schermo con una risoluzione 1024x768 (e' consigliabile almeno un monitor 17 pollici) mette a disposizione un area editabile di circa 60 righe per 160 colonne (vado a memoria).

Un grande spazio quindi, che vedremo piu' avanti come sfruttare al meglio.Per ora aggiungiamo solo che posso avere a disposizione piu' schermi, a ciascuno dei quali posso dare un nome mnemonico a mia scelta e che ho a disposizione un set di comandi per poter aprire/chiudere/scorrere questi schermi a mio piacimento usando appunto il nome mnemonico che ho impostato.

La finestra

Ogni schermo e' divisibile in piu' parti, chiamate finestre.E' possibile associare ogni finestra ad un file diverso oppure per visualizzare parti differenti dello stesso file, oppure ancora delle soluzioni miste, non vi sono limitazioni.

Anche qui, come per gli schermi, ho a disposizione un set di comandi per manipolare a piacimento le mie finestre.Chiariti questi due concetti, con i quali il principiante spesso si confonde, vediamo come utilizzarli.

22 QL Magazine paper issue 1

MicroEMACS mentre visualizzaUn file _bas in 512x256

MicroEMACS mentre lavora con due finestre.Notate l’Highlitingh differenziato in funzione del tipo di file trattato.

Page 23: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione Non mi interessa in questa sede elencare una sbrodolata di comandi, questo e' l'articolo di una rivista e non un tutorial, mi interessa piuttosto comunicare dei concetti di utilizzo.Ovviamente tutto cio' ha un qualche interesse nel momento in cui ho l'esigenza di editare piu' file a tempo o passare rapidamente in zone differenti di un file molto lungo, o ancora entrambe le cose a tempo.

Un semplice esempio.

Voglio riportare le modifiche fatte nel programma "PIPPO" anche nel programma "PLUTO" Apro quindi entrambi i programmi con MicroEMACS, a questo punto posso optare per diverse soluzioni:

1. Posso scegliere ad esempio di avere due schermi differenti caricare un programma per ogni schermo e passare da un programma all'altro a seconda delle mie esigenze, tipico se dispongo di una risoluzione video modesta o se voglio lasciare

parte dello schermo libero per altre attivita'.

2. Posso decidere di avere un unico schermo e di dividerlo in due finestre, ognuna delle quali contenente un programma, soluzione comoda se dispongo di un monitor con un alta risoluzione.

Come vedete MicroEMACS si puo' adattare facilmente non soltanto alle vostre esigenze ma anche ai vostri gusti e al vostro modus operandi senza dover quindi imparare filosofie di utilizzo differenti ma semplicemente mutuarle da strumenti a voi gia' noti.

Un esempio complesso.

Un esempio complesso tipico e' quando devo modificare i parametri di passaggio tra un programma principale ed una serie di programmi secondari.Immaginiamo di avere un programma "PAPERINO" che in due punti differenti dello stesso

chiamera' tre sottoprogrammi "QUI" "QUO" e "QUA" e di dover ad esempio aggiungere dei parametri di input.

Mi sara' molto comodo in questo caso avere tutti e quattro i programmi aperti, visualizzando le zone in cui dovro' intervenire.

Avere pero' cinque finestre sullo stesso schermo puo' creare aree di lavoro troppo piccole, limitare la visibilita' del programma e rallentare il mio lavoro.Definiro' quindi uno schermo chiamato "MAIN" nel quale avro' magari due finestre che visualizzano due parti differenti dello stesso file (i due punti che devo modificare).

In seconda battuta definiro' un

altro schermo, che chiamero' "CALL".All'interno di "CALL" definiro' tre finestre in cui inseriro' i tre programmi secondari.

In questo modo posso sia cambiare schermo che passare da una finestra all'altra in maniera

23 QL Magazine paper issue 1

MicroEMACS in fase di editing complesso in uno schermo ad alta risoluzione (1024 x 768).Notate sulla sinistra i menu’ “fissati” al desktop per un veloce richiamo dei comandi tramite mouse.

Page 24: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione estremamente agevole, mantenendo al tempo stesso una buona visibilita' su tutti i programmi e anche una certa struttura logica del mio lavoro, i programmi secondari sono infatti raggruppati nello stesso schermo e visto che probabilmente, fatta la modifica sul primo, posso riportare la stessa sugli altri due mi e' utile avere tutti e tre i punti sott'occhio.

Lo stesso discorso vale per l'altro schermo dove i due punti di modifica del programma principale sono disponibili nello stesso schermo.

24 QL Magazine paper issue 1

Page 25: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione Un occhio alle prestazioni.

Qualcuno potrebbe obiettare: "ma perche' devo complicarmi la vita in questo modo assurdo? Apro un editor differente per ogni file ed il gioco e’ fatto!". Sicuramente e' vero, ma questa e' una soluzione prettamente da utente piuttosto che da sviluppatore.In altre parole e' una soluzione efficace ma non efficiente.

Mi spiego meglio: ogni programma in esecuzione occupa notoriamente due aree di memoria, una per il codice, l'altra per i dati; se utilizziamo un editor multifile come MicorEMACS utilizziamo una sola area per il programma e un'area dati per ogni singolo file aperto, se invece lanciamo un editor differente per ogni file duplichiamo l'area dedicata al codice.

Il risultato visivo non cambia, la funzionalita’ e’ la medesima ma l’utilizzo delle risorse del nostro QL e’ ben differente.

Forse uno non si rende conto esattamente di quanto pesante sia quest'ultima soluzione finche' non fa due calcoli, proviamo a farli assieme.

Immaginiamo per comodita' di calcolo che l'ipotetico editor che sto utilizzando (non importa quale sia) occupi 50Kb e che i file da lui aperti siano tutti della stessa dimensione: 10 Kb.

Nel caso dell'esempio semplice a due file avremo:

50+10+10 = 70 kb utilizzati

mentre nel caso multi editor avremo:

50 + 10 + 50 + 10 = 120 Kb utilizzati

una bella differenza!

Allo stesso modo nel caso dei 5 file aperti l'utilizzo della ram aumenta in modo esponenziale, avremo:

50 + 10 + 10 + 10 + 10 + 10 = 100kb utilizzati

contro i:

50 + 10 + 50 + 10 + 50 + 10 + 50 + 10 + 50 + 10 = 300 kb!!!!

Tenuto conto dei limiti di memoria del QL mi pare una scelta poco consigliabile, anche se ho memoria a sufficienza, rischio di "dimenticarmi" di essere quasi al limite delle mie risorse e di aprire qualche altra applicazione con il rischio di mandare in blocco la macchina e perdere tutto il mio lavoro.

Lascio scegliere a voi.

Linguaggio C - Capitolo 9Puntatori a funzioni

di Roberto Porro

In questa parte del corso tratteremo l'argomento dei puntatori a funzione.Anche le funzioni, come tutti i tipi del C (con la sola esclusione del tipo register), vengono associate ad un indirizzo in memoria e, tramite tale indirizzo, possono venir utilizzate.Ricordiamo che le funzioni C sono contraddistinte dalla coppia di parentesi tonde () che segue il nome della funzione stessa.Una volta definita la funzione ogni successiva identificazione del suo nome senza parentesi fa riferimento al suo indirizzo. Vediamo un esempio:

main(){

int funz();printf( "La funzione funz e' all'indirizzo %d\n",funz );

funz();}

funz(){

/* codice */}

Questo programma stampa l'indirizzo in memoria della funzione funz.Ora che siamo a conoscenza dell'indirizzo di funz siamo anche in grado di chiamare funz tramite il suo indirizzo. Vediamo praticamente come si fa.

main(){ int funz(); int( *funzpt )();

printf( "La funzione funz e' all'indirizzo %d\n", funz ); funzpt = funz;

printf( "funzpt fa riferimento a %d\n", funzpt ); funz(); (*funzpt)();}

funz(){ /* codice */}

La novita' in questo programma e' che abbiamo scritto

int ( *funzpt )();

ovvero il nome di una variabile racchiuso tra parentesi.Se pensiamo ai puntatori usati fino ad ora possiamo chiarire il concetto:

int *puntatore;

segnala al compilatore di restituire un valore di tipo int, ovvero contiene l'indirizzo di una variabile intera, ovvero e' un puntatore ad intero.Analogamente

int ( *funzpt )();

25 QL Magazine paper issue 1

Page 26: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione segnala che la (*funzpt)() ritorna un valore di tipo intero; se poi funzpt contiene l'indirizzo della funzione funz, come e' stato dichiarato quando abbiamo scritto

funzpt = funz;

allora la *funzpt e' l'inizio della funzione stessa (quello che viene detto entry point della funzione) e percio' restituisce un tipo int dopo aver eseguito la funzione.

Il fatto di aver racchiuso il nome in parentesi sta nella necessita' di attribuirgli il significato di puntatore a funzione di tipo intero.Se avessimo utilizzato la notazione

int *funzpt();

le parentesi relative agli eventuali parametri della funzione avrebbero avuto la precedenza sull'operatore *, il che avrebbe causato la dichiarazione di una funzione che ritorna un puntatore ad una VARIABILE di tipo int e non ad una FUNZIONE.

Una funzione chiamata tramite puntatore non deve obbligatoriamente restituire un valore intero, ma qualunque tipo.

Esempio.

main(){ char *funz(); char *( *funzpt )();

funzpt = funz; printf( "%s", funz() ); printf( "%s", (*funzpt)());}

char *funz(){ return( "Ho eseguito funz()\n" );}

La domanda legittima che ci si pone a questo punto e': “ Ma perche' complicarsi la vita con questi puntatori?”.

Effettivamente se ne puo' fare a meno, ma il loro utilizzo puo' servire a semplificare la struttura dei programmi.

Vediamo un esempio.

Supponiamo di avere un programma che deve fare una serie di operazioni in base ad una valore che viene passato di volta in volta diverso e supponiamo ancora che questo valore venga fornito o da riga di comando o dalla selezione di bottoni presenti nell'interfaccia del nostro programma a finestre.Per esempio vogliamo raddoppiare il primo valore passato, dividere per tre il secondo ed elevare al quadrato il terzo.In una successiva elaborazione i parametri potrebbero essere in numero maggiore o minore o la sequenza delle operazioni potrebbe essere diversa.

Il modo per passare i dati potrebbe essere il seguente:

calcola doppio 2 terzo 12 cubo 6calcola cubo 3 doppio 4calcola terzo 9 terzo 24 doppio 78 cubo 16

Il programma calcola puo' essere scritto cosi':

...main( argc, **argv ){

int doppio(), terzo(), cubo(), nonso();int( *funz )();

int i = 1; /* serve a contare i parametri di main */

while( i < argc ) { if( !strcmp( "doppio", argv[i]) )

funz = doppio; else if( !strcmp( "terzo", argv[i] ) funz = terzo; else if( !strcmp( "cubo", argv[i] ) funz = cubo; else /* nessuno */ funz = nonso;

printf("%dn",*funz)(atoi(argv[i+1])));

i+=2; }}

doppio( int i ){ return( i*2 );}

terzo( int i ){ return( i/3 );}

cubo( int i ){ return( i*i );}

nonso( int i ){ return( 0 ); }

In questo modo abbiamo scritto un programma che in maniera flessibile processa i parametri passati ed esegue i calcoli nell'ordine richiesto. Se non viene riconosciuta un'operazione viene stampato uno zero.Il programma non esegue un controllo approfondito sui parametri passati e sarebbero necessari ulteriori test, ma serve allo scopo di dimostrare l'uso dei puntatori a funzione.

N.B. In questo programma non sono stati riportati i file di include che sono: stdio.h e string.h o stdlib.h

Questo tipo di programmazione e' molto utilizzato in quelle che vengono definite macchine a stati, ovvero quei processi informatici in cui si passa da un livello di ordine superiore ad uno piu' interno od inferiore, ad un altro ancora piu' interno ritornando poi al livello precedente quando si incontra un evento segnalatore.Un tipico esempio e' cio' che avviene durante il parsing dei programmi C: il programma parser del compilatore quando incontra il simbolo / passa ad un secondo stato in cui verifica se il simbolo seguente e' un *. In tal caso si entra in un livello diverso, ovvero si e' all'interno di un commento e se ne fuoriesce solo quando si incontra un * seguito da un /.Le alternative sono, ad esempio che il simbolo / sia la richiesta di una divisione, oppure una parte di una stringa di caratteri, cosi' come un * all'interno di un commento non faccia parte del terminatore */.

26 QL Magazine paper issue 1

Page 27: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione Identificando i vari stati come funzioni che eseguono svariati compiti e' evidente che una struttura di tipo if then else o una switch case richiederebbe una complicazione eccessiva dal momento che non si conosce a priori l'evento successivo a quello attuale, mentre l'uso di puntatori a funzione risulta piu' flessibile.

Con questo si conclude la parte sulle funzioni ed i puntatori, anche se l'argomento e' molto vasto e solo la pratica e la analisi di programmi reali puo' portare ad una migliore comprensione degli argomenti.Nei prossimi capitoli tratteremo dei file, i vari modi di gestire i flussi di dati con il C, nonche' l'uso di strutture, union e tipi enumerali.

27 QL Magazine paper issue 1

Page 28: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione Raytracing, come godo :-)Corso di Ray-Tracing per principiantiParte 4/7

di Alfonso Martone (alfmar)

Riparto all'assalto con altri files .POV, stavolta vediamo un po' di tutto.

La prima cosa da considerare e' il caos che si puo' fare con le coordinate tridimensionali (i vettori specificati tra parentesi angolari: <0,0,0>...).

Nella mia piccola esperienza ho notato che la cosa migliore e' definire una scena con unita' di misura "quasi reali".Per cui "assemblando" una stanza conviene usare per esempio i "centimetri" - consideriamo uno spazio largo, in centimetri, x=500, y=300, z=400, cioe' una stanza di 5 metri per 4 ed alta 3 : l'osservatore (camera) sara' alla porta (cioe' x=150, y=160, z=0),

il lampadario sara' a x=250, y=260, z=200 (centro soffitto meno 40 cm), e cosi' via.Ovviamente questo livello di difficolta' lo affronteremo in seguito, per immagini piu' semplici quasi sempre conviene usare come look_at della telecamera il punto <0,0,0>, cioe' l'origine degli assi, e piazzare la location in un altro punto un po' piu' lontano degli oggetti (che saranno evidentemente disposti intorno all'origine, altrimenti non vedremo un bel tubo).Nei prossimi esempi faro' proprio cosi'.

Gli oggetti che consideriamo oggi sono ancora oggetti del linguaggio di POV (sui quali ovviamente POV fa tutte le ottimizzazioni possibili).

Abbiamo a disposizione, oltre alla sphere, anche i parallelepipedi, per esempio:

box { <1,2,3>, <5,4,8> texture { Silver2 } }

equivale ad un parallelepipedo di grandezza x=4, y=2, z=5 (ricordate che z e' la "profondita'" cioe' dal vostro occhio verso l'interno dello schermo), con uno dei due spigoli a <1,2,3> e l'altro a <5,4,8> (per cui la grandezza sara' x=5-1=4, y=4-2=2, z=8-3=5).

Abbiamo a disposizione anche coni e tronchi di cono:

cone { <1,2,3>, 1.5, <5,6,8>, 5 texture { Silver2 } }

Il primo vettore <1,2,3> specifica il centro superiore; segue il raggio della circonferenza superiore, quindi il centro inferiore e il raggio inferiore.L'esempio citato e' un cono il cui asse centrale e' la linea da <1,2,3> a <5,6,8>.Per ottenere un cono perfetto anziche' un tronco di cono basta usare 0 al posto del raggio superiore (anziche' 1.5 come nell'esempio).

Infine abbiamo i cilindri; usano piu' o meno la stessa logica (e magari anche le stesse routines, visto che un cono con i raggi superiore e inferiore uguali non e' altro che un cilindro)... tanto per usarli, si usano cosi':

cylinder { <5,2,1>, <9,5,3>, 1.3333 texture { Silver2 } }

Nell'ordine: i due punti estremi dell'asse centrale, il raggio, e la deliziosa immancabile texture.

Tutti gli oggetti sono "texturizzabili"; negli esempi uso sempre quelle definite in "textures.inc" perche' il discorso in dettaglio (come crearne o modificarne una) lo analizzeremo piu' avanti; nel frattempo queste qui a base di granito, marmo, legno, metallo, sono una vera delizia... :-)

Vediamo dunque un esempio:

#include "colors.inc" #include "textures.inc"

camera {location <0,0,-20> look_at <0, -4.5, 0> }

sphere {<-5,0,0>,2 texture { Gold_Texture}} box {<-2,-2,-2>, <2, 2, 2> texture { Apocalypse }} cone {<5,2, 0>,0 <5,-2, 0>,2 pigment { DMFWood4 }} cylinder {<-5,-5, 0>, <5,-5, 0>,2 texture { Yellow_Pine }}

light_source{<-9,4,-2> color White } light_source{<0,5,-2> color Magenta }

28 QL Magazine paper issue 1

Tips and TricksOttimizzazione della memoria

Talvolta il QL e/o i suoi programmi hanno strani comportamenti, appunto perche' inconsueti e' difficile trovarli e spesso cio' accade per caso.

Io utilizzo normalmente il programma "Viewer" del Beginner's Club come sfondo per il mio desktop e al tempo stesso il programma "Status" per visualizzare in tempo reale alcune informazioni relative al QL, come la memoria libera, l'ora ecc.

Normalmente nel mio programma di Boot eseguivo prima il programma "Viewer" e dopo "Status".

Casualmente mi e' capitolo di invertire l'ordine di esecuzione dei due programmi e ho potuto notare un incremento della memoria libera di circa 200Kb.

Le ragioni di cio'? Un vero

Ray Tracing sul QLPer tutti gli amanti della grafica e del ray tracing, il programma POV RAY per piattaforme Sinclair QL e compatibili e’ liberamente scaricabile (assieme a molti altri) dal sito di Thierry Godefory

wwwusers.imaginet.fr/~godefroy/

Page 29: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione light_source{<9,4,-2> color Yellow }Inizialmente avevo posto la telecamera a <0,0,-20> guardando verso <0,0,0>, poi dopo aver "sistemato" anche il cilindro, ho pensato che non ce l'avrei fatta ad inquadrarlo tutto ed ho spostato piu' giu' il centro del mirino, precisamente <0,-4.5,0> ("-4.5" sull'asse y, cioe' proprio "piu' giu'").

Solita sfera, un po' a sinistra della visuale (che originariamente era a <0,0,0>), di raggio 2 - quindi "sfruttera'" nell'asse delle x lo spazio da -5-2=-7 a -5+2=-3.Per cui la "box" la piazzo a partire da x=-2.Nel nostro esempio e' un cubo perfetto, di lato 4 (2-(-2)=4), guardacaso con centro proprio nell'origine.Non ho letto il manuale, se non sbaglio c'e' anche un comando "cube" per risparmiarsi ancora un po' di fatica...

La box finisce a x=2, per cui piazziamo un cono con la base maggiore a x=5 e di raggio 2 (quindi sara' largo da x=5-2=3 ax=5+2=7), sempre "allineato" come altezza a sfera e cubo.Dunque abbiamo messo in linea sfera, cubo e cono, quest'ultimo non ha una texture completa ma solo il colore.

Infine ho messo "sotto" il cilindro, di raggio 2, -5 unita' piu' giu' dell'origine - i tre oggetti di sopra sono "estesi" sull'asse delle y da y=2 a y=-2, dunque il cilindro, essendo da -5-2=-7 a -5+2=-3, non andra' a collidere con loro.Anche questo vedremo in seguito - intersezioni e unioni potranno fare "forme" stranissime ed effetti notevoli.

Osservate infine come ho messo le tre (!) sorgenti di luce (per cui il rendering sara' piu' lentuccio dei primi velocissimi esempi dello scorso messaggio).Guardando le coordinate scoprirete che la prima e la terza sono piu' o meno "simmetriche", e la piu' vicina ha una luce meno intensa delle altre due.Per "meno intensa" intendo minor "carico R/G/B".Infatti i colori si definiscono proprio in termini di "carico" Red/Green/Blue, con valori che vanno da 0 a 1, che ricordano il modo di costruire le "palette VGA".

Per esempio il rosso completo si ottiene con:

color red 1 green 0 blue 0

In colors.inc e' definito gia' come Red, per cui scrivere"color

{Red}" anziche' "color red 1 green 0 blue 0" non cambia niente.NB dato che green e blue sono zero, possiamo anche eliminarli.

Dicevo prima, "carichi" diversi: infatti il giallo e' "color red 1 green 1" e il magenta e' "color red 1 blue 1", mentre il bianco e' "color red 1 green 1 blue 1".Oops, questo significa che giallo e magenta hanno lo stesso "carico", anch'io sono un essere umano e posso sbagliarmi :-).

Nell'esempio si vedono solo zeri e uni; sono valori in virgola mobile; volendo infatti ottenere un "due terzi magenta" basta fare "color red 0.66 blue 0.66".Il colore oro (occhio, il colore, non la texture) e' definito ("Gold") come "color red 0.8 green 0.498 blue 0.196".

Terminato il rendering dell'immagine di sopra, notiamo il piccolo grave errore di valutazione commesso poco fa: il "-4.5" era un po' troppo.Gli oggetti a video si vedono lo stesso; sono un po' lontanucci, quindi portare un po' piu' avanti la telecamera fara' bene; al momento sono ancora ben visibili, in particolare le ombre.

Non essendoci nessuna superficie riflettente dietro, l'immagine e' un po' scura (infatti lo spazio 3D inizialmente e' vuoto e tutto nero; mettere solo le luci non servirebbe a niente perche' se non riflettono su nessun oggetto dello spazio, si "disperdono" nel vuoto.

Una volta completato questo, voglio fare una piccola modifica e commetto un errore grossolano, aggiungendo infatti l'oggetto:

plane { -z, 7 texture { PinkAlabaster } }

Con questa linea ho definito un piano che ha come normale l'asse "-z", cioe' l'asse z pero' nella direzione del nostro occhio.In pratica avrei definito un "pavimento" di alabastro con normale "-z=7" (vi ricordo che nel linguaggio di POV "x", "y" e "z" sono le famose tre abbreviazioni dei vettori di base unitari: x = <1,0,0>, y = <0,1,0>, z=<0,0,1>, per cui -z = <0,0,-1>).

La normale "-z = 7" (cioe' il piano z=-7), che nelle mie intenzioni doveva essere "a quota 7", cioe' giusto dietro gli oggetti (nel senso di "molto piu' in profondita' di loro"), e' invece andata a coprirli - col rendering mi e' uscita una

tremendissima immagine completa di alabastro, ben illuminato, ma senza gli oggetti (che sono evidentemente andati a finire dietro) perche', dato che i piani si definiscono come in geometria (ax+by+cz=k), ho commesso l'errore di piazzarlo "prima" dell'origine e non "dopo" (infatti -z=7 diventa z=-7, cioe' "7 unita' dall'origine verso l'occhio", cioe' piu' delle 2 o 3 unita' di misura della profondita' massima degli oggetti verso il mio occhio).

Correggo dunque il piano e ne approfitto anche per correggere la visuale: dato che mi son finalmente sprecato a misurare e a notare che gli oggetti si estendono sull'asse y da -7 a 2 (cioe' 9 unita', cioe' il centro e' 4.5 sopra il punto piu' basso, cioe' -7+4.5=-2.5), cambio l'errato "look_at <0, -4.5,0>" in "look_at <0, -2.5, 0>" e ne approfitto per spostare avanti la telecamera alla "location <0, 0, -15>".Tutti i calcoli (piano e telecamera) sono esatti e dunque non dovrei avere problemi (vi faccio il report a fine render :-).Prima di chiudere la "puntata" di oggi, una piccola osservazione.

29 QL Magazine paper issue 1

Tips and TricksReader Multilingua

Se volete personalizzare il vostro browser offline "Reader" non occorre modificare e ricompilare il file sorgente.Infatti questo software e' ampiamente riconfigurabile comprese le scritte presenti nei menu'.Come fare?Occorre lanciare il programma Procom e selezionare il menu' Files e selezionare il programma "Reader", quindi selezionare il menu' "Config" e selezionare "Language option" dalla lista di sinistra.A questo unto appariranno una serie di parametri configurabili all'interno dei quali potrete facilmente riconoscere i nomi dei menu'.In particolare le voci che ci interessano sono:

- item name for going back to previous page:- item name for loading new file:- item name to reload the current file:- item name for printing the current file:- item name for changes the stylepage:- item name for submenu with bookmarks:- item name for displaying the history list:- item name for to add curr. page to bookmark:- item name for to load a bookmark file:- item name for to save a bookmark file:- label name for document title- label name for device in print menu:- label name for driver in print menu:- label name for bodyfont size in style:- label name for bodyfont name:- label name for italic font variant:- label name for bold font variant:- label name for bold italic font variant:- label name for typewriter font

Come potete vedere ogni singola voce e' modificabile e traducibile nel linguaggio da voi preferito.

Page 30: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Programmazione Gli oggetti che abbiamo visto (sphere, cone, etc) sono tutti "finiti", mentre il piano e' "infinito" - il che ovviamente richiede maggiore complessita' di calcolo.Per definire altri oggetti ci sara' bisogno di mettere mano a quadriche, quartiche ed altre cose dai nomi similmente preoccupanti.Per fortuna i pochi oggetti che abbiamo a disposizione gia' ci permettono di fare parecchio.

30 QL Magazine paper issue 1

Page 31: Paper issue 1.doc  · Web viewUn dizionario inglese-US e Britannico leggermente piu' piccolo e' in fase avanzata di ... oppure scaricabili come PDF. ... dal foglio elettronico al

Mercatino Il mercatino, regole per l'uso.Questa piccola sezione e' dedicata a chiunque desideri inserire un proprio annuncio.L'inserzione e' a titolo assolutamente gratuito a compare solo una volta, se volete ripeterla nei successivi dovrete ripetere la richiesta.Sono ammessi annunci di qualunque tipo, commerciali o meno, purche' riguardanti l'argomento ed i temi trattati della rivista stessa.L'annuncio deve essere scritto in lingua italiana e non deve contenere altro che linee di testo, non sono ammesse immagini, eseguibili o testo formattato.I curatori della rivista possono rifiutarsi in ogni istante di pubblicare l'annuncio, senza dover fornire alcuna giustificazione.Non sono ammessi annunci di carattere osceno o comunque lesivo nei confronti di persone sia fisiche che giuridiche.La richiesta puo' essere effettuata al seguente indirizzo di posta elettronica:

AnnunciVendo Sinclair QL con imballi, software accessori e manuale originali.Ho anche un libro sul superBASIC, la EPROM Supertoolkit,un gioco,un programma di grafica, gli scacchi, cartridges vuote piu' altro che ora non ricordo. Se vi interessa mandatemi una e-mail. Il tutto e' in ottime condizioni (tranne la scatola di cartone un po' consumata). Io sono di Pordenone.

Ciao a [email protected]

Causa errato acquisto vendo switch monitor, ideale per condividere il monitor tra QL e PC.Usato una sola volta, perfettamente funzionante, comprensivo di imballaggio.

scrivere a:[email protected]

Cerco PC portatile usato, non necessito di particolari prestazioni o configurazioni hardware, purche' dotato di scheda di rete e modem interno.

scrivere [email protected]

31 QL Magazine paper issue 1