Il Basic 8 della Walrusoft

  • Full Screen
  • Wide Screen
  • NARROW SCREEN
  • Increase font size
  • Default font size
  • Decrease font size
Siete quì Articoli Il Basic 8 della Walrusoft
vesalia234x60

Il Basic 8 della Walrusoft

E-mail Stampa
Indice
Il Basic 8 della Walrusoft
Il progetto del basic 8
Tutte le pagine
Il progetto nasce con l'obiettivo di evolvere la versione originale del Basic (la 7) normalmente residente sul C128. Il Basic 8 della Walrusoft è proprio il prodotto giusto per far andare meglio la grafica del nostro amato sistema!

Il Basic 8 nasce nel 1986 ad opera della walrusoft, ( http://en.wikipedia.org/wiki/Walrusoft ) una società fondata da Louis R. Wallace e David P. Darus. Il Basic 8 copriva l'esigenza di estendere il set dei comandi con nuovi comandi grafici. Una interessante recensione del Basic 8 compare su Commodore Gazette e che mi sembra opportuno riportare quì di seguito:

Da Commodore Gazette (Giugno 1987, Anno II, numero 4)copertina commodore magazine 7
Uno degli aspetti più interessanti del nostro mestiere è costituito dalla possibilità di visionare buona parte dei nuovi prodotti prima ancora che vengano lanciati sul mercato. Nonostante ciò penso che tale privilegio non sia neppure comparabile con le emozioni e le soddisfazioni che l'essere coinvolti nella progettazione e realizzazione di un pacchetto software riesce a dare. Nel corso dell'anno passato ho infatti avuto l'opportunità di realizzare tali aspirazioni, prendendo parte allo sviluppo del BASIC 8.0 dedicato al C-128.

Insieme al mio amico e collega David P. Darus, sono stato coinvolto in una serie di progetti orientati alla produzione di software per diversi tipi di macchine. Il programma per C-128 che, fino ad oggi, ha ottenuto il miglior successo, è stato Ultra Hires, un linguaggio orientato all'estensione delle capacità grafiche che sfrutta in modo efficiente le potenzialità del modo monocromatico a 80 colonne del C-128. Tale programma è diventato subito molto popolare: da quando è stato pubblicato un anno e mezzo fa, lettere di complimenti sono piovute a centinaia da ogni parte del mondo.

In conseguenza del successo di pubblico e, in parte, anche a causa della nostra curiosità, abbiamo deciso di studiare la possibilità di ottenere ulteriori risultati dal modo grafico RGB ad 80 colonne. Dopo qualche mese di studio ci siamo resi conto del fatto che Ultra Hires non sfruttava, se non marginalmente, tutte le capacità grafiche del Video Display Chip 8563 che gestisce il modo ad 80 colonne del 128. Ci è parso logico, di conseguenza, continuare le ricerche in questa direzione e, dopo quasi due anni di lavoro (e più di 15000 linee di codice assembly), è nato il BASIC 8.0.

Dal momento che, fin dall'inizio, ho fatto parte dello staff impegnato nella creazione del programma, non sono certamente in grado di offrirne una visione imparziale ed obbiettiva. Questo articolo non va quindi inteso come una recensione nel senso stretto del termine. Mi limiterò, infatti, alla descrizione del linguaggio e dei programmi accessori, prendendo le distanze, per quanto mi è possibile, da giudizi e valutazioni. Ad ogni modo, chiunque possa essere interessato ai particolari riguardanti questa potente estensione grafica, dopo la lettura di questo brano, sarà in grado di trattare le proprie valutazioni.

BASIC 8.0 è stato progettato e realizzato da David P. Darus e chi scrive. Si tratta, probabilmente, del primo pacchetto software dedicato al C-128 che ne sfrutti completamente tutte le potenzialità. E' stato primariamente concepito per permettere a chi programma in Basic di accedere alla grafica a colori del modo 80 colonne del C-128 ed offre possibilità che vanno ben al di là della semplice gestione della grafica.

Il programma si serve dello schermo ad 80 colonne bitmap (capace di una risoluzione di 640 x 200 punti), ma non si limita ad un display monocromatico, permette invece l'utilizzo contemporaneo di sedici colori. Infatti sono disponibili cinque diversi tipi di schermo, ognuno dei quali può assumere qualsiasi dimensione si desideri. Uno degli schermi è monocromatico, mentre gli altri sono tutti a 16 colori. Gli schermi a colori differiscono fra loro nella dimensione delle celle di colore. La cella di colore è un'area rettangolare che può contenere due colori, uno per lo sfondo ed uno in primo piano. Sul C-64 e sul C-128 lo schermo ad alta risoluzione si serve di celle di colore di dimensioni di 8x8 pixel. Con BASIC 8.0 è possibile utilizzare celle colore di 8x16, 8x8, 8x4 e 8x2. In questo modo i programmatori possono scegliere il tipo di schermo che più corrisponde alle proprie esigenze specifiche. Naturalmente, più piccole sono le dimensioni della cella, migliore risulta essere la risoluzione del colore, ma nello stesso tempo maggiore risulta essere lo spazio di memoria da destinare alla grafica.
Dal momento che la prima versione del C-128 è dotata di soli 16K di RAM dedicata alle 80 colonne, si pongono dei limiti alla gestione di grafica a colori. Per utilizzare gli schermi a colori, infatti, è necessario ridurne le dimensioni per avere a disposizione una quantità di RAM sufficiente a gestire i colori. Le versioni più recenti del computer, invece, hanno a disposizione 64K di RAM VDC (oppure hanno rimpiazzato le due RAM VDC 4164 da 8K con due RAM 4464 da 32K); ciò permette di visualizzare schermi a colori a dimensioni piene o addirittura schermate superiori a 640 x 200.

Nella Tavola 1 sono elencati più di 50 comandi contenuti nel BASIC 8.0. Dal momento che molti di essi servono ad eseguire operazioni anche diverse fra loro il numero reale di nuovi comandi si estende anche al di là di quello indicato nell'elenco. Tenterò ora di descrivere il funzionamento di alcuni di essi, non essendo possibile esaminarli tutti (il manuale di BASIC 8.0 contiene quasi 200 pagine).
---------------------------------------------
TAVOLA 1 - Sommario dei comandi del BASIC 8.0

ANGLE
ARC
BOX
BRUSHPATRN
BUFFER
CBRUSH
CHAR
CIRCLE
CLEAR
COLOR
COPY
CYLNDR
DIR$
DISPLAY
DOT
DRWMODA
DRWMODB
FETCH
FLASH
FONT
GROW
HCOPY
LINE
LOGO
LSTRUCT
WINDOW OPEN
WINDOW CLOSE
---------------------------------------------


Il BASIC 8.0 è dotato di un comando chiamato SCRDEF (SCReen DEFinition) che permette la realizzazione di schermate grafiche larghe fino a 2040 pixel ed alte 819. E' possibile specificare il modo colore da usare, un numero di schermo a 0 a 7 (che viene utilizzato dagli altri comandi per sapere su quale schermo operare), il modo interlace e l'indirizzo della RAM VDC da utilizzare per lo schermo. Se, invece, non si vuole perdere tempo nel definire un proprio schermo, il comando MODE rende operativi 32 diversi schermi predefiniti. E' infatti sufficiente specificare di quale dei 4 modi ci si intende servire (ogni modo ha a disposizione otto definizione dello schermo). Il modo 0 è disegnato per essere utilizzato con la RAM VDC da 16K, mentre i modi da 1 a 3 sfruttano le superiori potenzialità dei nuovi C-128 con VDC da 64K.

Dal momento che si parla di un linguaggio grafico, i comandi dedicati al disegno sono ovviamente molti. Ci sono però molte possibilità non usuali che fanno del set di comandi del BASIC 8.0 uno dei più completi e potenti mai realizzati. Caratteristica di spicco è che tutti i comandi per il disegno (LINE, CIRCLE, ARC, BOX e DOT) funzionano in 3D. A differenza dei programmi di grafica standard, che si servono solo degli assi X e Y, BASIC 8.0 usa anche un terzo asse Z e non richiede noiose formule matematiche per visualizzare o ruotare immagini grafiche in tre dimensioni. Come corollario ai comandi di disegno si trova tutta una serie di istruzioni designate alla realizzazione delle rotazioni delle immagini, al cambiamento della loro origine e del punto di vista.

Un'altra potente capacità grafica è assicurata dalla possibilità di specificare un valore di altezza. Tale valore permette ai box di trasformarsi in barre tridimensionali, agli archi di trasformarsi in grafici a torta ed ai pennelli di assumere qualsiasi dimensione si desideri. Come nell'Amiga, tutti i comandi grafici possono assumere diverse matrici grafiche. E' sufficiente specificare una matrice, ed attivare il relativo modo operativo con DRWMODA. Se la matrice è a colori tutti i disegni vengono visualizzati nel modo a colori.

Il Basic 8.0 è dotato di una funzione BRUSH che consente di delimitare una parte dello schermo di qualsiasi dimensione e di trasformarla in un pennello. I pennelli così creati possono essere ritrasferiti sullo schermo, salvati su disco, invertiti o capovolti. E' anche possibile servirsi del comando BRUSHPATRN per trasformare un pennello in una matrice; in tal modo ogni immagine visualizzata sullo schermo può essere trasformata in una matrice.

Sono presenti anche comandi atti a gestire oggetti solidi in tre dimensioni come sfere, cilindri... Questi solidi possono essere vincolati in relazione al loro centro ed è possibile modificare gli effetti luminosi.

Le capacità di gestire e creare fonti-carattere sono anch'esse illimitate. Il comando CHAR è in grado di utilizzare qualsiasi fonte e di visualizzarla in 256 dimensioni diverse. I caratteri possono essere colorati, possono assumere diverse matrici grafiche e si può stabilire la direzione della stampa (verso l'alto, il basso, sinistra, destra, alto-sinistra...). E' possibile infine ruotare o invertire i caratteri servendosi di un modo simile al codice di controllo. Il comando in questione offre anche altre possibilità operative, inclusa quella di visualizzare 160 caratteri per riga.

Nessun sistema grafico moderno può dirsi completo se non prevede l'utilizzo del mouse e delle finestre e BASIC 8.0 non fa eccezione. Le finestre possono essere aperte in qualsiasi punto dello schermo e tutti i comandi e le modifiche vengono attribuiti alla finestra che si è appena aperta. Se, ad esempio, si imposta il comando che cancella lo schermo viene cancellato solo il contenuto della finestra.
Il comando MOUSE include un driver per il mouse 1351 ed uno per il joystick. Una volta attivato (servendosi di tecniche IRQ), segue i movimenti del mouse e del joystick, e, tramite la funzione MOUSE, individua le coordinate X e Y del cursore.

Dal momento che nel modo 80 colonne del C-128 non sono disponibili gli sprite, si è resa necessaria la realizzazione di qualcosa di analogo. Il comando PTR crea un puntatore capace di funzioni simili a quelle svolte da uno sprite, che può essere posizionato in qualsiasi locazione dello schermo. Vi sono sedici possibilità di configurazione del puntatore, delle quali 8 sono già predefinite. Il programmatore è così in grado di creare definizioni personalizzate del puntatore, così come si definiscono gli sprite nel modo composito.

Uno degli aspetti più importanti del BASIC 8.0 è costituito dalla possibilità di supportare le cartucce di espansione 1700 e 1750. Servendosi, infatti, del comando BUFFER è possibile creare delle aree di immagazzinamento dati in qualsiasi banco di RAM del 128, sia esso interno o esterno. Una volta creati, tali buffer possono essere utilizzati per memorizzare e richiamare una vasta gamma di strutture di dati. Tali strutture possono essere costituite da fonti-carattere, pennelli, matrici o marchi particolari. E' possibile immettere in memoria più di 192 strutture contemporaneamente.

Degno di particolare attenzione è anche il comando HCOPY, utilizzato per ottenere un'immagine stampata su carta di una schermata grafica. Le stampanti supportate direttamente sono circa una dozzina: Commodore, Epson, Panasonic, Mannesman Tally, Seikosha, Olivetti, Gemini, Canon e altre. Nel manuale sono riportati per intero i codici sorgente assembly di tutti i printer driver; in tal modo i driver per le stampanti non supportate direttamente possono essere realizzati con facilità da programmatori in LM. Il comando in questione permette anche la rotazione della pagina, densità del carattere variabili e dimensioni multiple dell'immagine.

Oltre a quelli illustrati, sono stati implementati molti altri comandi che contribuiscono a creare l'eccezionale potenza del Basic 8.0. Comandi come SCROLL (che permette lo scroll in 8 direzioni diverse), ZOOM (visualizza un pennello in forma espansa), SCALE (converte il display standard dei pixel in un display logico più grande) e FLASH (fa lampeggiare un'area fino a 255 volte) possono essere utilizzati nei programmi per creare effetti incredibili. Desidero menzionare, però, qualche altro dettaglio riguardante il BASIC 8.0.

Dal momento che questo programma è destinato alla realizzazione di altri programmi dotati di caratteristiche mai viste su di un C-128 fino ad oggi, è ovvio che i programmatore che abbiano acquistato il sistema desiderino distribuire o magari vendere i propri prodotti. Per far fronte a questa esigenza abbiamo sviluppato e realizzato RunTime: uno speciale modulo (incluso nel package senza prezzo aggiuntivo) che permette agli utenti registrati la distribuzione dei propri programmi senza rischiare di infrangere il copyright. I programmi RunTime possono girare, ma non essere listati o editati. Non esistono comunque royalty da pagare per avvalersi di questo sistema.

Altra caratteristica che desideravamo avesse il nostro package è la possibilità di iniziare ad usarlo ancora prima di avere imparato il linguaggio. Per questo abbiamo realizzato un programma applicativo per il disegno a colori, chiamato BASIC PAINT, scritto interamente in BASIC 8.0. Il programma si gestisce tramite mouse e icone e, sicuramente, regge il confronto con tutti i prodotti di questo tipo disponibili sul mercato. E' possibile servirsene come un normale package grafico o come strumento per creare pennelli, immagini e matrici da utilizzare nei propri programmi in BASIC 8.0. Anche BASIC PAINT è incluso nel package di BASIC 8.0, funziona su ogni 128 ed è in grado di supportare mouse, joystick, stampanti ed espansioni RAM.

Prima di concludere, permettetemi di aggiungere qualcosa: David ed io speriamo che questo programma riesca a dimostrare a tutti i creatori di software che il 128 è una macchina eccezionale con capacità e possibilità molto particolari. A suo modo BASIC 8.0 può quindi rappresentare una pietra miliare nella storia di questo computer, che, speriamo, stimolerà lo sviluppo di software dedicato, e creato specificatamente per questa macchina, e non più soltanto di trasposizioni di programmi già esistenti adattati.


Macchine

Chi e' online

 25 visitatori online

Accedi al sito

Inserire nome utente e password per porre domande sul forum

Contatore Visite

460192
              Oggi Oggi323
SettimanaSettimana655

Sito in linea dal 28/01/2010

temi

retrocommodore è un sito amaatoriale di appassionati di vecchie macchine ancora funzionanti. Il sito si occupa di: retrogaming, free games, commodore 64, commodore 65, commodore 128, la nostra passione sono i retrocomputer, amiga, msx, atari, texas instruments, giochi gratis, retrocomputing, retro computer, forum free, chat free, forum commodore, chat commodore, amiga 2000, mercatino vintage, vintage computer, arcade games, giochi gratuiti, retro computer.