• Non ci sono risultati.

APPLICAZIONI MULTIPIATTAFORMA

Nel documento Alessandro Grussu. Seconda edizione (pagine 128-132)

Questa selezione elenca alcune applicazioni multipiattaforma, cioè per lo sviluppo di software destinato a vari sistemi, usate comunemente in ambito Spectrum.

Z88DK

Z88DK è uno Small-C cross-compiler, ossia un compilatore in grado di scrivere program-mi in linguaggio macchina dello Z80 parten-do da una sorgente in Small-C, un derivato del C progettato da Ron Cain e James Hendrix proprio a beneficio delle architetture informatiche più semplici. Il nome deriva dalle prime versioni, rivolte al Cambridge Z88. Le librerie che accompagnano Z88DK sono progettate per essere più generiche possibile, al fine di permet-tere la scrittura di software per quante più macchine basate su CPU Z80. Lo Spectrum è infatti uno dei principali obiettivi del compilatore, ma non l’unico: le librerie di programmazione attualmente incluse ne prevedono il supporto per più di trenta sistemi diversi. Questi vanno da quelli più diffusi, come appun-to lo Spectrum, lo ZX81, gli Amstrad CPC, lo MSX ed il Sega Master System, a piattaforme più di nicchia, per esempio lo stesso Z88, il TRS-80, il Tatung Einstein e il SAM Coupé, fino ad altre note per lo più agli appassionati, come il computer didattico jugoslavo Galaksija, il Jupiter ACE e lo Sprinter.

Z88DK è stato inizialmente creato da Dominic Morris, cui si sono affiancati in seguito altri programmatori. È disponibile in formato binario eseguibile per Windows, macOS e Linux.

L’ultima versione è la 2.1 del 7 febbraio 2021.

Quest’opera è diffusa sotto licenza CC BY-NC 4.0 Internazionale.

ASSEMBLATORI Z80

Programmi a interfaccia a riga di comando che compilano un file di codice sorgente Assembly Z80 in formato binario. Se usati per compilare codice per Spectrum, possono anche creare file immagine nastro TAP o TZX, oppure istantanea SNA.

Pasmo. Opera di Julián Albo, è tuttora uno dei più popolari assemblatori della scena Spectrum. L’ultima versione è la 0.5.5 del 5 marzo 2022; esiste una versione preliminare, la 0.6.0, ma chi scrive ha riscontrato alcuni errori di compilazione, e per di più non viene aggiornata dal 13 gennaio 2007, per cui se ne sconsiglia l’uso.

SjASM. Di Sjoerd Mastijn, è caratterizzato dalla possibilità di inserire nel codice Assembly Z80 delle istruzioni “false” per renderlo più ordinato e intuitivo da comprendere, il che però impedisce di utilizzarlo con altri assemblatori. Lo sviluppo si è fermato alla versione 0.42c del 06 novembre 2011.

SjASMPlus. Realizzato da “Aprisobal” e Branislav Bekes (“z00m”), è basato sul codice di SjASM, di cui costituisce l’evo-luzione; ne riprende le caratteristiche, comprese le istruzioni

“false”, e ne aggiunge di nuove, per esempio la capacità di esportare il codice in formato immagine disco Beta Disk o NEX, o di integrarvi degli script Lua. Per Windows, macOS, Linux, BSD, Raspberry Pi.

RASM. Autori: Édouard Bergé, Stéphane Sikora. Molto usato in ambito Amstrad, comprende anche delle funzionalità di sviluppo specifiche per lo Spectrum. Per Windows, macOS, Linux.

COMPRESSORI DI DATI

Utilità a riga di comando per comprimere dati, in modo da occupare meno spazio nella RAM o nelle memorie di massa.

Necessitano di un codice Assembly Z80 per la decompressione.

ZX7/ZX0/ZX1/ZX2/ZX5/RCS. Famiglia di compressori per Windows, opera di Einar Saukas, che implementa gli algoritmi LZ77 e LZSS. Sono caratterizzati da un rapporto tra compres-sione e velocità di esecuzione ottimale e non hanno bisogno di memoria tampone per la decompressione.

ZX7 è stato il primo, lanciato nel 2012 e superato da ZX0 nel 2021. Da esso sono derivati ZX1 e ZX2, che sacrificano il rapporto di compressione per una maggiore velocità di decom-pressione, e ZX5, un programma sperimentale con una capa-cità di compressione leggermente migliore di ZX0, ma assai più lento nell’esecuzione. L’autore ne ha poi rilasciato una versione scritta in Kotlin, più rapida di quella standard, ma che necessita dell’installazione di Java versione 8 o superiore. I codici di decompressione sono disponibili in quattro versioni. In ordine crescente di rapidità e di dimensioni sono: “standard”, “veloce”,

“turbo” e “mega”. Per ciascuna vi è un codice alternativo per decomprimere i dati “all’indietro”, cioè da un indirizzo più alto a uno più basso nella RAM.

RCS è un algoritmo aggiuntivo ideato specificamente per la compressione di file memoria video SCR e consente di miglio-rare ulteriormente le prestazioni di ZX7 e ZX0 quando si com-primono tali tipi di dati. Richiede una riconversione nel forma-to SCR al termine della decompressione.

Apultra/APC12spke/oapack/aPLib pack2. Compressori ba-sati sulla libreria aPLib di Jørgen Ibsen, costruita a partire

Quest’opera è diffusa sotto licenza CC BY-NC 4.0 Internazionale.

dall’algoritmo LZ: Apultra, di Emmanuel Marty; oapack, di Eugene Larchenko; APC12spke, di Sven Dahl, Antonio Villena e Aleksej Pichugin; aPLib pack2 di “r57shell”. Tutti questi programmi girano sotto Windows, hanno prestazioni molto simili e possono utilizzare i medesimi codici Assembly Z80 per la decompressione.

LZSA. Altra implementazione dell’algoritmo LZ, realizzata da Emmanuel Marty e “spke”. Privilegia la velocità di decompres-sione rispetto all’efficienza nella compresdecompres-sione.

Exomizer. Compressore ideato da Magnus Lind per l’uso con sistemi basati su processore 6502 e compatibili. Jaime Tejedor Gomez (“Metalbrain”) ha scritto i codici per la decompressione su sistemi con processore Z80, i quali sono stati poi ottimizzati da Antonio Villena e “Urusergi”. Exomizer ha un ottimo rap-porto di compressione, ma è piuttosto lento in fase di decom-pressione e richiede un’area di lavoro temporanea di 256 byte.

Salvador. Opera di Emmanuel Marty, impiega l’algoritmo di ZX0 raggiungendo livelli di compressione quasi identici in tempi sensibilmente inferiori, dell’ordine del 5% rispetto al programma di Einar Saukas. I file così ottenuti si possono de-comprimere con gli stessi codici usati per ZX0.

APPLICAZIONI GRAFICHE

Nel documento Alessandro Grussu. Seconda edizione (pagine 128-132)