lunedì 17 agosto 2020

Giochi della rivista SUPER COMMODORE n. 8 1985 per Commodore VIC-20


Istruzioni di Turbodisk

Un'altra super utility! Recentemente, sul numero di Marzo, abbiamo pubblicato il SUPERTURBO per VIC 20 e C64, che permette di caricare i programmi da cassetta alla stessa velocità del disk drive 1541. Al possessori di quest'ultimo forniamo ora un programma che velocizza del 300% e più il caricamento dei programmi da disco! Vi accorgerete presto che TURBODISK è altrettanto rivoluzionarlo di SUPERTURBO ed ugualmente facile da usare. Per C64 e per VIC 20 con espansione di memoria da almeno 3 Kbyte. Se vi è capitato di usate un drive realmente veloce, vi sarete accorti che il buon vecchio drive Commodore 1541, in quanto a velocità di caricamento, è uno degli ultimi in classifica. Certamente, è molto più veloce del Datassette senza SUPERTURBO, ma rispetto agli altri drive sembra una tartaruga... Ora esiste una soluzione per portarsi a livelli superiori: TURBODISK! La prima volta che userete TURBODISK rimarrete sicuramente stupiti dalle sue prestazioni: esso infatti velocizza il processo di caricamento di programmi di un fattore tre o più alto ancora. Infatti, più lungo è il programma da caricare, più velocemente avverrà il suo caricamento. TURBODISK non richiede alcuna modifica né al vostro computer né al drive: esso carica programmi salvati nella solita maniera; non è richiesto alcun particolare "Turbosave". TURBODISK è compatibile con la maggior parte dei programmi in BASIC ed in linguaggio macchina, compreso il DOS WEDGE; non compromette in alcun modo l'affidabilità delle operazioni con il drive, e si può attivare o disattivare a piacere, ed in qualunque momento, attraverso due semplici comandi.

Note alla versione per VIC 20
Il programma per VIC 20 ha un principio di funzionamento diverso da quello per C64. Innanzi tutto occorre sottolineare che è richiesta un'espansione di memoria di almeno 3 Kbyte. TURBODISK, una volta caricato da cassetta, legge le sue istruzioni DATA e ne inserisce i valori - tramite istruzioni POKE - nella parte alta della memoria. TURBODISK si regola automaticamente in funzione del tipo di espansione di memoria collegata, così che funziona perfettamente con qualsiasi ammontare di RAM aggiuntiva. TURBODISK ridurrà l'ammontare di memoria libera disponibile di 1280 byte. TURBODISK può essere salvato su disco come un qualunque programma BASIC (salvate sempre prima di dare il RUN, quindi non caricate il programma con SHIFT+RUN/STOP, ma con un semplice LOAD!). Una volta mandato in esecuzione il programma visualizzerà due SYS, usabili rispettivamente per attivare e disattivare il TURBODISK; il valore di queste SYS è variabile, a seconda del tipo di espansione di memoria collegata al VIC 20.

Turboloading...
Come già detto, al contrario del SUPERTURBO  non  occorre  ricrearsi il proprio "parco programmi" turbo salvando tutti i file uno per uno: TURBODISK carica velocemente qualsiasi file salvato in modo normale. Dopo aver caricato e mandato in esecuzione TURBODISK.OBJ per il C64, e "VIC.TURBODISK" per il VIC 20, digitate semplicemente:
LOAD"NOME DEL FILE" ,8
oppure
LOAD"NOME DEL F1LE",8.1
proprio come al solito.
Una cosa di cui vi accorgerete immediatamente è che la luce rossa del drive rimane spenta: ciò è assolutamente normale usando TURBODISK. È altrettanto normale, per il C64, lo scomparire dello schermo durante il caricamento. Con il VIC 20 apparirà la scritta "TURBOLOADING..." invece del normale "LOADING". Potreste, occasionalmente, avere la necessità di disattivare TURBODISK ed usare un normale LOAD: i drive 1541 sono pieni di problemi di allineamento delle testine e se avete un disco formattato da un drive diverso dal vostro può essere che si creino in questo caso problemi nel caricamento dei programmi da disco. Dal momento che la routine di TURBODISK è poco... insistente nel cercare di caricare programmi che presentano irregolarità di registrazione, sarà più conveniente in questo caso disattivare temporaneamente TURBODISK. TURBODISK si può disattivare, nel C64, con:
SYS49155
mentre si può riattivare con:
SYS49152
Per il VIC 20 si usino i valori visualizzati dal programma stesso. Se premete RUN/STOP+RESTORE, dovrete poi riattivare TURBODISK con la SYS di cui sopra.

Alcune precauzioni
Usando TURBODISK, può essere attiva una sola periferica sul bus seriale. Spegnete quindi tutte le periferiche (quasi sempre stampanti), tranne il drive numero 8. Se "turbocaricate" un programma ed il disco continua a girare indefinitamente, probabilmente avrete dimenticato accesa la stampante. Nel C64 TURBODISK risiede nel blocco di memoria che parte dalla locazione 49152, in modo da essere completamente sicuro da sovrascritture da parte del BASIC. Tuttavia, alcuni programmi in linguaggio macchina usano il medesimo spazio di memoria occupato da TURBODISK. Ovviamente, questi programmi non sono caricabili in "turbo": occorre disabilitare TURBODISK e procedere ad un caricamento normale; una volta caricato il programma in linguaggio macchina TURBODISK non sarà più presente nella memoria del computer. Ciò vale per tutti quei programmi in linguaggio macchina che occupano le locazioni da 49152 a 50431. Per quanto riguarda la versione per VIC 20 occorre prestare attenzione nel caricamento di programmi troppo lunghi, che potrebbero sovrascrivere TURBODISK. A questo proposito, dopo aver dato il RUN a TURBODISK stesso digitate in modo diretto:
PRINT INT(FRE(0)/256)
Il valore che si ottiene è - con una certa approssimazione - il massimo numero di blocchi su disco che può occupare un programma per essere caricato senza disturbare TURBODISK. TURBODISK velocizza il LOAD - anche il LOAD ottenuto da programma, molto comune nella programmazione del VIC 20 - ma lascia inalterati in velocità sia il SAVE che il VERIFY. Non modifica inoltre la velocità della scrittura o caricamento dati dei file sequenziali (istruzioni GET#, INPUT# e PRINT#). Non è inoltre compatibile con certe caratteristiche di alcuni programmi, come il caricamento dei testi in SPEEDSCRIPT (anche se è possibile "turbo-caricare" SPEEDSCRIPT stesso). Può inoltre non funzionare correttamente con certi programmi commerciali protetti.

Come funziona TURBODISK
Il linguaggio macchina che costituisce TURBODISK è alquanto insolito, dal momento che solo circa la sua metà lavora all'interno del computer, mentre il resto viene eseguito all'interno dello stesso drive 1541. Al contrario di altri drive per diversi computer, il drive Commodore 1541 è una periferica "intelligente", che contiene i propri microprocessori, memoria RAM e memoria ROM. Ciò significa che il drive può essere programmato per ottenere risultati particolari: TURBODISK è uno di questi risultati. Durante il breve intervallo di tempo che trascorre dal momento in cui si digita LOAD e quello in cui il disco inizia a girare, vengono trasferiti 420 byte di linguaggio macchina dal computer nella RAM del drive. È questa la seconda parte dei dati nel programma generatore, che nel C64 sono immagazzinati nelle locazioni da 49664 a 50083. Questo necessario trasferimento di dati prima di ogni "turboload" aggiunge un certo ammontare di tempo al tempo totale di caricamento, e spiega il perché TURBODISK sia meno veloce nel caricare programmi brevi e sembri acquistare molta velocità nel caricamento di programmi estremamente lunghi. TURBODISK modifica il vettore ILOAD nelle locazioni 816-817 ($330-$331) per fare in modo che punti a se stesso, by-passando le normali routine di LOAD nella ROM del computer. Per prima cosa TURBODISK controlla se è stato richiesto un caricamento della directory (LOAD"$",8) od un VERIFY, in entrambi i casi il controllo viene ripassato alle routine standard su ROM (noterete infatti che il caricamento della directory avviene a velocità normale). Se invece viene richiesto il caricamento di un programma. TURBODISK aggiunge il nome del file al linguaggio macchina che viene passato al drive. Questa porzione di TURBODISK. che si viene a trovare nella RAM del drive, usa le routine poste invece nella ROM del drive stesso per localizzare la posizione  del programma sul disco e quindi caricarlo settore per settore. Per aumentare la velocità di caricamento alcune delle routine ROM del drive - come quella che mantiene accesa la luce rossa - non vengono eseguite. I 256 byte costituenti ogni settore sono trasferiti, due bit alla volta, in un buffer di 256 byte all'interno del computer. Nel C64 questo buffer si trova nelle locazioni 50176-50431($C400-$C4FF). Il linguaggio macchina costituente TURBODISK all'interno del computer legge i dati in arrivo sulle linee DATA e CLK della porta seriale, invece della sola linea DATA usata nel normale LOAD. In un certo senso TURBODISK trasforma temporaneamente il vostro 1541 seriale in un drive parallelo a due bit. Quando tutti i 256 byte di un settore vengono trasferiti nel buffer del computer il contenuto del buffer viene aggiunto al programma in memoria, mentre il il drive sta leggendo dal disco il settore successivo.


Giochi:

1) Digger
2) Turbodisk

super_1985_8_vic20.rar

Nessun commento:

Posta un commento