CPC Rulez
https://cpcrulez.fr/forum/

BASIC sauver mémoire
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=6983
Page 1 sur 1

Auteur :  stephbb75 [ 20 Fév 2024, 15:19 ]
Sujet du message :  BASIC sauver mémoire

Salut,

Je me fait un tit programme en BASIC mais je tombe sur un problème que je ne résous pas (en basic).

Dans une boucle j'écris des infos dans une zone mémoire (disons en &6000) et je voudrais les sauver dans un fichier.
J'ouvre mon fichier (OPENOUT) avant ma boucle.
je voudrais écrire dans la boucle ce que je vient de mettre en mémoire.
et en fin de boucle je referme le fichier avec(CLOSEOUT)

Si je ne me trompe pas en ASM on peut utiliser BC98 pour faire cela, mais en basic ?
J'ai tenté un call &BC98 mais soit cela ne fonctionne pas ou soit j'ai mal fait ;-)
Je voudrais évité (si possible) de l'ASM ;-)

Auteur :  demoniakparadox [ 20 Fév 2024, 16:47 ]
Sujet du message :  Re: BASIC sauver mémoire

Hello,

Faut simplement sauvegarder un fichier en mode "binaire":

Code :
Save"Fichier.bin",b,&6000,longueur


longueur correspond au nombre d'octets que tu veux sauvegarder dans le fichier.

Auteur :  stephbb75 [ 20 Fév 2024, 21:04 ]
Sujet du message :  Re: BASIC sauver mémoire

oui mais non, cela me fait un fichier a chaque fois, moi je veux continuer a écrire dans le même fichier.

Open
for
faire un truc
ecrire
next
close.

Auteur :  z80_1327 [ 26 Fév 2024, 22:21 ]
Sujet du message :  Re: BASIC sauver mémoire

Hello,

Qu'est-ce que tu veux faire ?

Tu peux ecrire dans la memorie dans le bucle avec poke.
for m=&6000 to ...
truc = ...
poke m,truc
next

Le fichier et toute le temps dans le memorie et tu peut retourner le fois que tu veux.

Jusqua finaliser comme tellement a dit @demoniakparadox

Save"Fichier.bin",b,&6000,longueur

Auteur :  stephbb75 [ 28 Fév 2024, 22:18 ]
Sujet du message :  Re: BASIC sauver mémoire

Salut,
Merci a vous.

Oui je sais pour le save ,b mais la je ne peut pas l'utiliser.

Je fait bien cela dans une boucle mais je dépasse les 64Ko de data, donc il faut que le puisse les sauver par morceaux.
Je devrais même arriver a remplis une disquette.
Je n'ai pas envie de jouer avec les banck (et je ne sais même pas ci cela fonctionnerais).
ET je voudrais rester en Basic (mais bon, je sans bien qu'il va falloir un bout d'Asm la ;-) )

donc ce que je voudrais faire c'est bien :
Code :
Open fichier en écriture
for
   mettre des trucs en mémoire
   écrire dans le fichier
next
close fichier

Auteur :  demoniakparadox [ 29 Fév 2024, 06:26 ]
Sujet du message :  Re: BASIC sauver mémoire

J'ai fais un truc du genre en convertissant mes variables en chaine de caractères comme ça :

Code :
OPENOUT "Fichier.asc"
PRINT #9,str$(variable1)
PRINT #9,str$(variable2)
PRINT #9,str$(variable3)
CLOSEOUT

Auteur :  stephbb75 [ 29 Fév 2024, 18:54 ]
Sujet du message :  Re: BASIC sauver mémoire

Je testerais cela mais j'ai un doute, vue que je peut avoir des valeurs non ASCII dans mes données.

Auteur :  breiztiger [ 29 Fév 2024, 19:06 ]
Sujet du message :  Re: BASIC sauver mémoire

Tu peux très bien avoir des chaînes avec des caractères non ascii en ajoutant à ta chaîne des chr$

Après le plus facile est certainement comme dit de sauvegarder ta zone mémoire dans un fichier binaire

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/