CSave - CLoad (& GPLlnk) - (by Riccardo Rossi)
Questo software propone due strumenti tanto semplici quanto efficaci: CSAVE e CLOAD, due routine in linguaggio macchina che promettono di semplificare radicalmente il salvataggio e il caricamento di zone di memoria tramite il buon vecchio registratore a cassette.Sviluppato dallo sviluppatore Riccardo Rossi nel 1985, venne pubblicato poi sulla rivista italiana TI99Newsoft di Settembre.

L’intento delle routine CSAVE e CLOAD è offrire un metodo diretto e affidabile per salvare e ricaricare aree di memoria RAM tramite registratore a cassette, all’interno di programmi scritti in Extended Basic con espansione di memoria. In questo modo si andrà ad eliminare la necessità dell'uso di complesse CALL LOAD, rendendo il salvataggio di dati o codice assembler semplice, compatibile e immediatamente integrabile nel flusso di gioco o applicazione.
La prima routine, CSAVE, permette di salvare una zona di memoria specificata dall’utente. Il comando è semplice:
CALL LINK("CSAVE", INDIRIZZO, NUMBYTES)
- INDIRIZZO è l’indirizzo di partenza, espresso in decimale come nella CALL LOAD.
- Da >8000
a >FFFF
→ da -32768
a -1
- Da >0000
a >7FFF
→ da 0
a 32767
- NUMBYTES è il numero di byte da salvare, con un massimo di 8192.
Questa struttura consente di gestire agevolmente anche aree di memoria alte, rendendo la routine utile sia per salvataggi di dati che per snapshot di codice assembler.
La seconda routine, CLOAD, è ancora più essenziale:
CALL LINK("CLOAD")
Con questo comando si ricarica una zona di memoria precedentemente salvata con CSAVE. La struttura del record è compatibile con i comandi "L" e "S" dell’Easy Bug della Mini Memory, rendendo il tutto interoperabile tra ambienti. Non sarà necessario riscrivere nulla: basterà premere PLAY sul registratore e lasciare che la routine faccia il suo lavoro.
Per chi lavora in assembler e volesse attivare direttamente il registratore, viene inclusa anche l’utility GPLLNK, che si integra nel codice con poche istruzioni:
assembly:
GPLLNK EQU >2500
BLWP GPLLNK
DATA XXXX ; codice d’istruzione
Questa chiamata consentirà di gestire il registratore in modo diretto, senza passare per il Basic. È una chicca per chi desidera scrivere loader personalizzati o routine di salvataggio automatizzato.
Note tecniche e consigli d’uso
- L’area di memoria disponibile per l’assembler in low memory va da
>26A4
a >3FF0
. - L’uso delle routine distrugge il contenuto della VDP. Per evitare problemi, si consiglia di eseguire un
RUN
subito dopo le CALL LINK, così da ripristinare la VDP e azzerare le variabili.
Prima del caricamento delle routine, il programma esegue un CALL INIT
, che ha il compito di inizializzare l’ambiente Extended Basic e predisporre la VDP per l’inserimento delle stringhe di collegamento. È un passaggio cruciale per garantire che le routine funzionino correttamente e che la memoria video non interferisca con il codice macchina.
Maggiori dettagli potrete trovarli tra le pagine della rivista indicate di seguito.

Presente nella sezione download, trovate il file .ZIP del programma TI BASIC in versione per Floppy Disk e Cassetta.
Questo gioco è stato pubblicato nella rivista Italiana TI99Newsoft

TI99NewSoft numero 12 - Settembre 1985