Le caratteristiche di AmigaOS di cui sentiamo tutt’ora la mancanza – Parte prima

L’Amiga, come dichiarato dagli stessi suoi sviluppatori, è stata una “killing game machine” ma il suo vero punto di forza era il sistema operativo: un concentrato di funzionalità e performance ad oggi ineguagliati. Sono anni che ci ragiono e anche per conoscenza personale ho sempre desiderato elencare  in modo analitico questi punti di forza che a oggi continuo a rimpiangere. Un articolo per RetroAcademy è semplicemente il modo migliore per finalmente riordinare un pò le idee sull’argomento. Alcuni sono veri e propri software, altre piccole soluzioni dell’interfaccia ma in tutti i casi ci fanno comprendere quanto potesse essere avanti questo sistema. Ecco quindi le  più importanti e potenti feature tuttora esclusive del Workbench Amiga:

AREXX

A partire dalla versione 2.0 del  Workbench viene fornito di base un ambiente di scripting chiamato ARexx, ovvero Amiga Rexx in quanto derivato da un tool per Unix. Ai giorni nostri ARexx verrebbe definito come “le API di un’applicazione” ovvero un sistema per poter accedere programmaticamente alle funzionalità di un software. Per fare un esempio pratico prendiamo le actions di Photoshop: un sistema di registrazione di macro riconfigurabili applicabili su documenti multipli. In ambiente AmigaOS la cosa è praticamente nativa per qualsiasi programma che disponga di una porta ARexx. E sono veramente tanti, praticamente ogni software anche solo blandamente serio dispone di una porta ARexx come anche la maggior parte delle utility shareware o freeware. Questo perchè, essendo fornito di base nel sistema operativo, una porta ARexx è decisamente semplice e conveniente da implementare.

Un’altra diretta conseguenza della presenza di ARexx nell’installazione di default del Workbench è che molti software lo sfruttano per estendere le proprie funzionalità, quindi fornendo di base tutta una serie di macro e script per rendersi più completi. Inoltre uno script può accedere e mettere in comunicazione tramite le porte ARexx più applicazioni, di fatto integrandole tra di loro.

Uno breve script di esempio fornito con l’installazione di OctaMED SS

/* convtomix */
/* converts old OctaMED/tracker modules to play right under */
/* the new mixing routine (transposes samples two octaves up */
address 'OCTAMED_REXX'
options results
do cnt = 1 to 63
	in_select ins cnt
	in_gettype
	instype = result
	if (instype = "SAMPLE" | instype = "HYBRID") then do
		in_gettranspose
		transp = result
		in_settranspose transp+24
	end
end
in_select ins 1

Un esempio di script ARexx recentemente scritto da me per calcolare la durata di un modulo OctaMED  SoundStudio:
arexx

Di seguito l’elenco PARZIALE dei comandi della porta ARexx di Personal Paint 7, prodotto dall’Italiana Cloanto:

-- PPaint Rexx Version 8 --
AddFrames FRAMES/N POSITION/N BEFORE/S AFTER/S
AdjustColors FROM/N TO/N COLOR/N BRIGHTNESS/N CONTRAST/N RED/N GREEN/N BLUE/N
Airbrush X/N/A Y/N/A TIME/N/A ERASE/S COMPLEMENT/S
AllocateBitmap WIDTH/N/A HEIGHT/N/A DEPTH/N/A
ApplicationIcon FILE DROP/S SHIFT/S PREVIEW/S
BrushColorStatistics FROM/N TO/N COLORS/S COMPACT/S
ChangeBrushBkgToFrg
ChangeImageBkgToFrg
ChopBrush X0/N Y0/N X1/N Y1/N INFO/S EDGES/S PLANES/S
ClearFrames FROM/N TO/N
ClearImage
ColorStatistics FROM/N TO/N COLORS/S COMPACT/S
ComplementBrush
CopyBitmap SOURCEBITMAP/N/A SOURCEX/N SOURCEY/N TARGETBITMAP/N/A TARGETX0/N TARGETY0/N WIDTH/N HEIGHT/N
CopyBrush BRUSH/N/A X0/N Y0/N X1/N Y1/N NOFRAMES/S
CopyEnvironment ANIMATION/S
CopyFramePalettes SOURCEFIRST/N/A SOURCELAST/N/A TARGETFIRST/N TARGETLAST/N
CopyFrames SOURCEFIRST/N/A SOURCELAST/N/A TARGETFIRST/N TARGETLAST/N
CopyIcon SOURCE/A DESTINATION/A
CopyPaletteToBrush
DefineBrush X0/N Y0/N X1/N Y1/N FRAMES/N POINTS ERASE/S BACK/S
DeleteBrushFrames
DeleteFrames FROM/N TO/N ALL/S
DisableTools
DrawCircle CENTERX/N/A CENTERY/N/A RADIUSX/N RADIUSY FILL/S ERASE/S COMPLEMENT/S
DrawCurve X0/N/A Y0/N/A X1/N/A Y1/N/A X2/N/A Y2/N/A X3/N/A Y3/N/A ERASE/S COMPLEMENT/S
DrawDots POINTS/A ERASE/S COMPLEMENT/S
DrawEllipse CENTERX/N/A CENTERY/N/A RADIUSX/N/A RADIUSY/N/A FILL/S ERASE/S COMPLEMENT/S
DrawFreeHand POINTS/A FILL/S ERASE/S COMPLEMENT/S
DrawLine X0/N/A Y0/N/A X1/N/A Y1/N/A ERASE/S COMPLEMENT/S NOFIRSTPIXEL/S
DrawPolygon POINTS/A FILL/S ERASE/S COMPLEMENT/S
DrawRectangle X0/N/A Y0/N/A X1/N/A Y1/N/A FILL/S ERASE/S COMPLEMENT/S
EmptyClipboard
[...]
SHEAR/N BOLDX/N BOLDY/N ANTIALIAS/N LEFT/S CENTER/S RIGHT/S KEEPRATIO/S KEEPBASELINE/S DYNAMIC/S
Version PROGRAM/S REXX/S
Wait TIME/N/A
WaitForClick DOWN/S POINT/S SHOWBRUSH/S SHOWCROSS/S
WaitForEvent
WaitForKey
WriteBitmap BITMAP/N/A X/N Y/N PIXELS/A
Zoom IN/S OUT/S

Estratto documentazione porta ARexx Personal Paint 7:


Questi script forniti con l’’installazione di Personal Paint 7 sono esempi di come ARexx viene usato per estendere le funzionalità delle applicazioni Amiga:

  • GifToPng.pprx
  • EmbossAnim.pprx
  • FramesToAnim.pprx
  • LoadAnimGif.pprx
  • VectorFontPath.pprx

Uno script di Personal Paint nel dettaglio:

BBS

Un’altra diretta conseguenza della presenza di ARexx in AmigaOS è stata la diffusione di software per la gestione di board. La potenza e la versatilità del linguaggio di scripting si prestavano particolarmente bene alle necessità di una BBS, analogamente a come oggi Linux si presta alla gestione di un server web. La mia esperienza in materia è direttissima in quanto ho gestito un nodo FidoNET ed AmigaNET per alcuni anni, usando un Amiga 3000 come host. Il software usato era il TransAmiga (ma in circolazione se ne trovavano anche di migliori come DLG o AmiExpress) che in se non pesava più di qualche decida di Kbyte. Ovviamente, però, era corredato da tutta una serie di script ARexx che gestivano di fatto tutte le funzionalità della board. Questi script potevano essere modificati o sostituiti con la pletora di script scritti da altri SysOp in giro per il mondo. Un’altra caratteristica fondamentale delle BBS erano le aree messaggi condivise coi vari network (FidoNET, AmigaNET) tramite dei software esterni che preparavano i messaggi delle aree di discussione (TrapToss) e li trasmettevano agli altri nodi (TrapDoor). Questi software avevano le stessa caratteristica di pesare pochissimo e di interagire tra loro tramite script ARexx. La tipica configurazione di un nodo prevedeva che venissero lanciati nottetempo dei cron per la sincronizzazione delle aree messaggi, questi lavori notturni erano gestiti da script i quali processavano la posta facendo comunicare tra loro i programmi tramite le loro porte ARexx.

Shortcut dei tasti PG-UP, PG-DOWN, HOME, END sui campi di input testuale

Passando al PC per mesi mi sono chiesto perchemmai nelle caselle in input testuale non funzionassero gli ovvi shortcut SHIFT+FRECCIA che usavo su Amiga per gli spostamenti all’inizio o fine del testo stesso… finchè la macabra scoperta: su PC esistono perfino dei tasti dedicati…

Questa la mappatura su Amiga:

  • SHIFT+LEFT = HOME
  • SHIFT+RIGHT = END
  • SHIFT+UP = PAGE-UP
  • SHIFT+DOWN = PAGE-DOWN

L’articolo prosegue nella seconda parte: Gestione delle impostazioni, Assign, Shell, Gestione multischermo, Locale, Datatypes, Spostamenti degli slider

KONEY

Koney is an italian DJ and producer with his studio in Venice, Italy. He starts djing in 1994 and producing in 1996 using a Commodore Amiga computer.

Potrebbero interessarti anche...