Newsgroup: it.comp.retrocomputing
Titolo: Articolo su BASIC 8.0 per Commodore 128

Tempo fa si parlo' del BASIC 8.0 per Commodore 128 (prodotto da WarluSoft).
Ricordavo di avere un numero di Commodore Gazette che ne parlava; ho beccato
l'articolo e "digitalizzato": e' possibile scaricarlo (oltre che da questo
post) da:
http://www.retrocensimento.bbk.com/varie/basic8.zip
L'articolo e' scritto da uno dei due autori del programma, Louis R. Wallace.
-------------------------------------------------------
Titolo: BASIC 8.0
Sottotitolo: Sistema grafico per C-128 dalle interessanti caratteristiche
operative: risoluzioni di 640x200 in modo monocromatico e 640x192 in 16
colori e 50 nuovi comandi Basic.
Autore: Louis R. Wallace
Pubblicato su: Commodore Gazette, Giugno 1987, Anno II, numero 4
-------------------------------------------------------
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           MOUSE
ARC             ORIGIN
BOX             PAINT
BRUSHPATRN      PATTERN
BUFFER          PIXEL
CBRUSH          PTR
CHAR            SCALE
CIRCLE          SCLIP
CLEAR           SCRDEF
COLOR           SCREEN
COPY            SCROLL
CYLNDR          SDAT
DIR$            SEND
DISPLAY         SPHERE
DOT             SPOOL
DRWMODA         SSTRUCT
DRWMODB         STASH
FETCH           STORE
FLASH           STRUCT
FONT            STYLE
GROW            TEXT
HCOPY           TOROID
LINE            VIEW
LOGO            WARLUS
LSTRUCT         MODE
WINDOW OPEN     ZOOM
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.
Per ulteriori informazioni contattare direttamente:
PATECH SOFTWARE
(Basic 8, $39.95)
P.O. Box 5208
Somerset, NJ 08873
USA

 [...]           ^^^^^^    |
                   ||||||    |
                             |
NON e' "WARLUS", bensi' "WALRUS"
-- 
Agenda per eventi retrocomputeristici:
http://www.retroagenda.bbk.com
Retrocensimento:
http://www.retrocensimento.bbk.com

 
|'o\| |/o \/o \/o \ |   On The aaria: 
http://OnTheaaria.webhop.org
|._/|_|\__/\__/\__/ | * An out of control ego will sometimes get in the
       /_/ /_/      |   way of your success.                  (Todd H.)

 Notevole: e' un'istruzione che disegna un tricheco? .-D
:D I am the eggman... They are the eggmen... I am the walrus...
goooogoogoojooob!
Richiama il nome della ditta produttrice, WalruSoft


 Notevole: e' un'istruzione che disegna un tricheco? .-D
Toh... googlando per 40 secondi ho trovato pure il manuale in formato .TXT:
http://www.c64.priv.no/c64/files/manual_basic8.txt
Questa e' la spiegazione del comando "TRICHECO":
---------------------------------------------------------------------------
@WALRUS WALRUS logo, sets up the BASIC 8.O system for 16K or 64K video 
ram.
         @WALRUS must be executed at the beginning of a program.
         Logo screen can be used as a title screen for BASIC 8.0 programs.
SYNTAX:
@WALRUS,RAM TYPE
RAM TYPE 0-1
          0=16K 8563 video ram
          1=64K 8563 video ram
NOTE: WALRUS command automatically goes to graphic mode and should
       be used before any other BASIC 8 command.
       If used within a program more than once, the @MODE command will
       need to be issued again.
---------------------------------------------------------------------------


Francesco Sblendorio, on 01-Gen-04 23:17:00 you wrote:   
 FS> Tempo fa si parlo' del BASIC 8.0 per Commodore 128 (prodotto da
 FS> WarluSoft). Ricordavo di avere un numero di Commodore Gazette che ne
 FS> parlava; ho beccato l'articolo e "digitalizzato": e' possibile scaricarlo
 FS> (oltre che da questo post) da:
 FS> 
http://www.retrocensimento.bbk.com/varie/basic8.zip
Io ho cercato per mari e per monti (virtuali) una copia del Basic 8.0, ma poi mi
sono arreso. :-(
Qualcuno di voi ha avuto miglior fortuna?

Ciao amici...uniamo le forze e cerchiamo di mettere su il basic 8 su di una Eprom...
andromeda