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

qu'elle est l'adresse initial quand nous chargeons run"bin"
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=5423
Page 1 sur 1

Auteur :  javier07b9 [ 23 Déc 2014, 09:58 ]
Sujet du message :  qu'elle est l'adresse initial quand nous chargeons run"bin"

J'ai programmé un code.bin mais il commence a l'adresse &800
je ne peux pas faire ça dans BASIC
Code :
memory &7FF
load"game.bin",&800
call &800

aussi meme je ne sai pas ou est-ce que commençe le PC ( program counter )
quand s'execute cette instruction dans BASIC
Code :
run"game.bin"

alors comme je pourrai executer le programme binarie

Merci beaucoup.

Auteur :  Xavier [ 23 Déc 2014, 12:31 ]
Sujet du message :  Re: qu'elle est l'adresse initial quand nous chargeons run"b

J'ai trouvé une astuce : http://cpcrulez.fr/GamesTest/coding_amslive15-CPC_SOS_partie_3.htm

essaye ça:
10 MEMORY &8FFF ' Donne l'offset des vars Basic.
20 OPENOUT"d":MEMORY &7FF:CLOSEOUT
30 LOAD"game.bin",&800,&800 ' le deuxième argument est à confirmer! CALL&800???

Mais, un RET ASM plantera le basic, si la plage des &8FFF est effacée.

Auteur :  hERMOL [ 23 Déc 2014, 15:12 ]
Sujet du message :  Re: qu'elle est l'adresse initial quand nous chargeons run"b

un autre article : https://cpcrulez.fr/coding_basic-restaur ... IC__CC.htm
Xavier a écrit :
30 LOAD"game.bin",&800,&800 ' le deuxième argument est à confirmer! CALL&800???

Non le 2eme argument n'est pas dispo sur un load (contrairement au save)

Auteur :  Xavier [ 23 Déc 2014, 17:29 ]
Sujet du message :  Re: qu'elle est l'adresse initial quand nous chargeons run"b

Donc, pour répondre:
L'adresse de base lors d'un RUN"program.bin" (adresse d'exécution je suppose)
Est l'adresse que tu va paramétrer dans ton save.

Si tu fais :
Save"program.bin",b,&800,1500,&800
b: fichier binaire.
&800:Adresse de position d'adresse
D'une taille de 1500 à partir de &800
&800:Adresse d'exécution automatique. (optionnelle)
Si l'adresse d'exécution automatique est omise, le RUN retournera sous basic.
Un load"program.bin", chargera le binaire à l'adresse donnée dans le save.

On peut éditer ces informations via ManageDsk, avec l'option propriété.

[EDIT]
Ha!
Je voie ton problème...
Tu compiles un fichier "program.bin" via l'assembleur de WinApe, et la fonction WRITE "xx"
Donc, ton fichier est exempt d'arguments d'exécution!
Le fichier étant en binaire sans header AMS, la fonction START n'est pas sauvegardée!

Dans ce cas, lors de l'import avec ManageDSK, il faut que tu force en binaire, et que tu remplisses la troisième case (celle du bas).
Il est plus simple de retirer le WRITE (ou de le mettre en rem ;; ), puis de faire un save de la mémoire du CPC sous basic, avec les infos binaire.
ça t'évite de faire un import externe, et le fichier est directement enregistré sur la disquette!
[EDIT]

Auteur :  hERMOL [ 23 Déc 2014, 18:06 ]
Sujet du message :  Re: qu'elle est l'adresse initial quand nous chargeons run"b

hERMOL a écrit :
Je voie ton problème...
Tu compiles un fichier "program.bin" via l'assembleur de WinApe, et la fonction WRITE "xx"


Winape gére l'adresse d'exécution , un petit exemple:

Code :
run start
org &9D00
write direct "a: FILENAME.BIN"

nolist
start

... ton code


l'ORG défini ton début
RUN ton execution
WRITE DIRECT écrit ton binaire sur le .dsk chargé dans winape..

Auteur :  Xavier [ 23 Déc 2014, 20:06 ]
Sujet du message :  Re: qu'elle est l'adresse initial quand nous chargeons run"b

Citer :
write direct "a: FILENAME.BIN"

Trop cool !
Merci pour l'info...

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