Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[apple 2 europlus] [basic applesoft] où sont stockés les programmes écrits en basic applesoft ?

8 réponses
Avatar
MOI
bonjour.

question un peu pointue, je ne trouve pas de réponse sur le web :

où sont stockés (a quelle adresse de la RAM) les programmes écrits en
basic applesoft ???

merci.

8 réponses

Avatar
Olivier Miakinen
Bonjour,
Le 14/05/2017 14:19, MOI a écrit :
question un peu pointue, je ne trouve pas de réponse sur le web :
où sont stockés (a quelle adresse de la RAM) les programmes écrits en
basic applesoft ???

Je ne saurai pas te répondre car ça doit faire une trentaine d'année
que je n'ai plus touché un Apple ][, mais je me souviens au moins d'une
chose : c'est que si tu fais une recherche de chaînes de caractères du
programme dans la mémoire, il ne faut pas le faire sur les mots-clés
du langage tels que PRINT, GOTO, GOSUB, RETURN, etc. En effet, ceux-ci
sont remplacés par des valeurs d'un seul octet non-ascii.
Mais tiens, finalement je crois que j'ai trouvé en cherchant sur le web.
<http://apple2.info/wiki/index.php?title=Applesoft_BASIC#Memory_Management.2FUse:>
To reserve off some space for your own purposes, you can use the
'HIMEM:' and 'LOMEM:' statements. The two define the top and bottom of
the memory pool Applesoft uses for variable storage. To read the current
value of lomem, use 'PEEK(106)*256+PEEK(105)', himem can be read by
'PEEK (116)*256+PEEK(115)'. Normally, lomem is the top of your basic
program, and himem is the highest available address under the OS and its
buffers;
</>
As-tu besoin d'une traduction ? Le programme BASIC est juste en dessous
de lomem, trouvable par PEEK(106)*256+PEEK(105).
--
Olivier Miakinen
Avatar
MOI
Dans son message précédent, Olivier Miakinen a écrit :
Bonjour,
Le 14/05/2017 14:19, MOI a écrit :
question un peu pointue, je ne trouve pas de réponse sur le web :
où sont stockés (a quelle adresse de la RAM) les programmes écrits en
basic applesoft ???

Je ne saurai pas te répondre car ça doit faire une trentaine d'année
que je n'ai plus touché un Apple ][, mais je me souviens au moins d'une
chose : c'est que si tu fais une recherche de chaînes de caractères du
programme dans la mémoire, il ne faut pas le faire sur les mots-clés
du langage tels que PRINT, GOTO, GOSUB, RETURN, etc. En effet, ceux-ci
sont remplacés par des valeurs d'un seul octet non-ascii.
Mais tiens, finalement je crois que j'ai trouvé en cherchant sur le web.
<http://apple2.info/wiki/index.php?title=Applesoft_BASIC#Memory_Management.2FUse:>
To reserve off some space for your own purposes, you can use the
'HIMEM:' and 'LOMEM:' statements. The two define the top and bottom of
the memory pool Applesoft uses for variable storage. To read the current
value of lomem, use 'PEEK(106)*256+PEEK(105)', himem can be read by
'PEEK (116)*256+PEEK(115)'. Normally, lomem is the top of your basic
program, and himem is the highest available address under the OS and its
buffers;
</>
As-tu besoin d'une traduction ? Le programme BASIC est juste en dessous
de lomem, trouvable par PEEK(106)*256+PEEK(105).

ça va je comprends. merci infiniment, je vais voir ça
Avatar
MOI
MOI a couché sur son écran :
Dans son message précédent, Olivier Miakinen a écrit :
Bonjour,
Le 14/05/2017 14:19, MOI a écrit :
question un peu pointue, je ne trouve pas de réponse sur le web :
où sont stockés (a quelle adresse de la RAM) les programmes écrits en
basic applesoft ???

Je ne saurai pas te répondre car ça doit faire une trentaine d'année
que je n'ai plus touché un Apple ][, mais je me souviens au moins d'une
chose : c'est que si tu fais une recherche de chaînes de caractères du
programme dans la mémoire, il ne faut pas le faire sur les mots-clés
du langage tels que PRINT, GOTO, GOSUB, RETURN, etc. En effet, ceux-ci
sont remplacés par des valeurs d'un seul octet non-ascii.
Mais tiens, finalement je crois que j'ai trouvé en cherchant sur le web.
<http://apple2.info/wiki/index.php?title=Applesoft_BASIC#Memory_Management.2FUse:>
To reserve off some space for your own purposes, you can use the
'HIMEM:' and 'LOMEM:' statements. The two define the top and bottom of
the memory pool Applesoft uses for variable storage. To read the current
value of lomem, use 'PEEK(106)*256+PEEK(105)', himem can be read by
'PEEK (116)*256+PEEK(115)'. Normally, lomem is the top of your basic
program, and himem is the highest available address under the OS and its
buffers;
</>
As-tu besoin d'une traduction ? Le programme BASIC est juste en dessous
de lomem, trouvable par PEEK(106)*256+PEEK(105).

ça va je comprends. merci infiniment, je vais voir ça

Re !
j'ai trouvé ailleurs que "ça" commence à stocker le programme applesoft
en $800
effectivement, quand j'écris un petit programme, Lomem (première
adresse pour le stockage des variables et dernière adresse de stockage
du programme) est juste un peu plus haut que $800 !
pour ce qui est de Himem (dernière adresse pour le stockage des
variables): ça me donne $9600 quand le DOS est chargé et $C000 quand il
n'est pas chargé. ça correspond à la doc que j'ai !!! :-)
je crois que mon erreur était de croire qu'un programme applesoft était
en même temps stocké en équivalent "langage monitor"
cordialement.
Avatar
Erwan David
MOI écrivait :
Re !
j'ai trouvé ailleurs que "ça" commence à stocker le programme
applesoft en $800
effectivement, quand j'écris un petit programme, Lomem (première
adresse pour le stockage des variables et dernière adresse de stockage
du programme) est juste un peu plus haut que $800 !
pour ce qui est de Himem (dernière adresse pour le stockage des
variables): ça me donne $9600 quand le DOS est chargé et $C000 quand
il n'est pas chargé. ça correspond à la doc que j'ai !!! :-)
je crois que mon erreur était de croire qu'un programme applesoft
était en même temps stocké en équivalent "langage monitor"

Sur les machines de cette époque il y avait souvent un basic ou autre
langage interprété, et pas compilé.
--
Les simplifications c'est trop compliqué
Avatar
Gzavsnap
j'ai trouvé ailleurs que "ça" commence à stocker le programme applesoft
en $800

Lien utiles sur l'organisation de la mémoire pour A2:
<http://apple2.org.za/gswv/USA2WUG/FOUNDING.MEMBERS/HOME.PAGES/EDHEL/texts/pokes.html>
ou
<http://www.skepticfiles.org/cowtext/apple/memorytx.htm>
Sinon, attention à la mémoire HR, qui va détruire le programme Basic :
HGR: 8192-16383 $2000-$3FFF HI-RES PAGE 1 OR FREE SPACE
HGR1:16384-24575 $4000-$5FFF HI-RES PAGE 2 OR FREE SPACE
Dans les deux car, le passage en HGR ou HGR2 ecrase purement et
simplement le programme Basic en Mémoire!
Il faut donc placer le LOMEM en 16385 ou 24577 suivant le mode graphique
utilisé...
Ce qui réduit d'autant la taille de la mémoire Basic, contrairement à
une utilisation en texte pure, qui peut utiliser toute la mémoire, sans
coupure!
Avatar
MOI
Gzavsnap a présenté l'énoncé suivant :
j'ai trouvé ailleurs que "ça" commence à stocker le programme applesoft en
$800

Lien utiles sur l'organisation de la mémoire pour A2:
<http://apple2.org.za/gswv/USA2WUG/FOUNDING.MEMBERS/HOME.PAGES/EDHEL/texts/pokes.html>
ou
<http://www.skepticfiles.org/cowtext/apple/memorytx.htm>
Sinon, attention à la mémoire HR, qui va détruire le programme Basic :
HGR: 8192-16383 $2000-$3FFF HI-RES PAGE 1 OR FREE SPACE
HGR1:16384-24575 $4000-$5FFF HI-RES PAGE 2 OR FREE SPACE
Dans les deux car, le passage en HGR ou HGR2 ecrase purement et simplement le
programme Basic en Mémoire!
Il faut donc placer le LOMEM en 16385 ou 24577 suivant le mode graphique
utilisé...

Lomem, c'est pas seulement pour le stockage des variables ???
Ce qui réduit d'autant la taille de la mémoire Basic, contrairement à une
utilisation en texte pure, qui peut utiliser toute la mémoire, sans coupure!
Avatar
MOI
Gzavsnap a pensé très fort :
j'ai trouvé ailleurs que "ça" commence à stocker le programme applesoft en
$800

Lien utiles sur l'organisation de la mémoire pour A2:
<http://apple2.org.za/gswv/USA2WUG/FOUNDING.MEMBERS/HOME.PAGES/EDHEL/texts/pokes.html>
ou
<http://www.skepticfiles.org/cowtext/apple/memorytx.htm>
Sinon, attention à la mémoire HR, qui va détruire le programme Basic :
HGR: 8192-16383 $2000-$3FFF HI-RES PAGE 1 OR FREE SPACE
HGR1:16384-24575 $4000-$5FFF HI-RES PAGE 2 OR FREE SPACE
Dans les deux car, le passage en HGR ou HGR2 ecrase purement et simplement le
programme Basic en Mémoire!

ça ressemble à "mon problème"........
Il faut donc placer le LOMEM en 16385 ou 24577 suivant le mode graphique
utilisé...
Ce qui réduit d'autant la taille de la mémoire Basic, contrairement à une
utilisation en texte pure, qui peut utiliser toute la mémoire, sans coupure!
Avatar
Gzavsnap
Il faut donc placer le LOMEM en 16385 ou 24577 suivant le mode
graphique utilisé...

Lomem, c'est pas seulement pour le stockage des variables ???

Non, car par défaut il me semble qu'il est en h801 (début du programme
basic)...
Je ne peut pas dire avec certitude si avec un LOMEM, le basic déplace le
code s'il est en début de programme, ou s'il faut faire un loader avec
un lomem et un "RUN monprg"
Un loader du type:
5 LOMEM : 16385
10 PRINT CHR$(4)"RUN PROG"
SAVE HELLO
qui est identique à un :
10 POKE 103,1:POKE 104,64:PRINT CHR$(4)"RUN PROG"