english
Hi everyone!
Recently, I implemented a mechanism for dynamic RESTORE. In short, instead of using a label or a line number, you can use a variable (provided it is defined and valued) to indicate (yes!) the line number from which to start reading the data.This is a very convenient mechanism for implementing even complex data structures, without occupying RAM memory with useless copies, because the data entered with DATA are "read only".
Reading on a BASIC group, I discovered that some dialects implement similar syntax for the GOTO and GOSUB commands. Basically, you can write a program like this and watch it work.
Code: Select all
100 x = 300
200 GOTO x
250 END
300 PRINT "x = 300"
Small spoiler: in RESTORE the pointer is placed at the end of the data, so you will get a nice TRUE on READ END().
italian
ciao a tutti!
Recentemente, ho implementato un meccanismo per il RESTORE dinamico. In estrema sintesi, invece di usare una etichetta o un numero di linea, potete usare una variabile (purché definita e valorizzata) per indicare (questo sì!) il numerodi linea da cui partire a leggere i dati. Si tratta di un meccanimo molto comodo per implementare strutture dati anche complesse, senza per questo occupare memoria RAM con copie inutili, perché i dati inseriti con DATA sono "a sola lettura".
Leggendo su un gruppo BASIC, ho scoperto che alcuni dialetti implementano una sintassi simile per i comandi GOTO e GOSUB. In pratica, potete scrivere un programma come questo e vederlo funzionare.
Code: Select all
100 x = 300
200 GOTO x
250 END
300 PRINT "x = 300"
Piccolo spoiler: in RESTORE il puntatore viene posto alla fine dei dati, quindi otterrete un bel TRUE su READ END().
french
Salut tout le monde!
Récemment, j'ai implémenté un mécanisme de RESTORE dynamique. Bref, au lieu d'utiliser un label ou un numéro de ligne, vous pouvez utiliser une variable (à condition qu'elle soit définie et valorisée) pour indiquer (oui !) le numéro de ligne à partir duquel commencer la lecture des données. Il s'agit d'un mécanisme très pratique pour implémenter des structures de données même complexes, sans occuper la mémoire RAM avec des copies inutiles, car les données saisies avec DATA sont "en lecture seule".
En lisant sur un groupe BASIC, j'ai découvert que certains dialectes implémentent une syntaxe similaire pour les commandes GOTO et GOSUB. Fondamentalement, vous pouvez écrire un programme comme celui-ci et le regarder fonctionner.
Code: Select all
100 x = 300
200 GOTO x
250 END
300 PRINT "x = 300"
Petit spoiler : dans RESTORE le pointeur est placé à la fin des données, vous obtiendrez donc un joli TRUE sur READ END().