Pour l'adresse d'implantation, charge-le en #4000. Comme il prend 11k, le source (qui est stocké juste à la suite de DAMS) sera stocké à partir de #7000 environ et il y aura de la place jusqu'en #A600 environ (début de l'AMSDOS). Ensuite, tu peux implanter ton source en #1000 comme ça tu n'écrase pas tes éventuels programmes BASIC. Commande importante : "M". M#a600 permet de définir le "himem" de DAMS, c'est à dire le dernier octet qu'il peut occuper. Ensuite il te rendra l'erreur que tu as citée.
Exemple : Recharge ton source Assemble-le... erreur Tape "X" (donne les adresses limites de DAMS) Fixe le Himem avec "M" Retape "X" (une adresse a changé) Assemble maintenant : ça fonctionne
Ensuite évidemment, tu peux mettre DAMS en bank et sauvegarder les zones system en bank pour exploiter toute la mémoire linéaire.
Merci pour le lien et tes explications! Je ne connaissais pas ce site. J'ai la doc pdf de Dams, mais c'est encore mieux détaillé sur le site.
Je connaissais pas les commandes X et M, ça marche impec : plus d'erreurs à l'assemblage.
Par contre, mon émulateur Caprice32 refuse toujours d'enregistrer le code objet avec P2 name. Dams ne produit aucune erreur quand je tape P2 monprog.bin mais rien n'apparait sur la D7 avec CAT.
La disquette n'est bien sûr pas protégée en écriture. J'ai tapé exactement p2 prog.bin et même P2,prog.bin ça ne sauvegarde rien. Par contre, la commande P nom.s sauvegarde le code source sans problème.
J'ai mis Dams en &4000, mon programme en &1000, j'ai bien fait M#A600 et vérifié le himem avec X.
Sous Basic, je fais un SAVE "MONPROG.BIN",b,&1000,10,&1000
puis : MEMORY &1000 : LOAD "MONPROG.BIN",&1000: CALL &1000
Et j'ai droit à un beau MEMORY FULL. Impossible d'exécuter le programme, qui était pourtant bien assemblé sous Dams (j'ai vérifié avec D#1000)
Ma seule explication, c'est que mon émulateur Caprice32 ou mon ordi ne marche pas bien. Ou bien je ne sais pas faire un simple P2 monprog.bin (j'ai essayé avec, puis sans la virgule : aucun résultat)
Mon ordi est-il infecté par un virus ou l'émulateur est-il endommagé ? Je vais essayer avec Winape et sur un autre ordi. Il en faut plus pour arrêter un officier de Vega.
pour le sauvegarde du code binaire, je me souviens avoir lu dans la notice la commande p2 mais jamais elle n'avait marché. d'où la technique pas glorieuse que j'utilisais: assemblage, sortie de dams, sauvegarde sous basic puis retour à dams . moi je passais par dams parce que les listings a100% était sous dams (ent$ ...) et que la rédac faisait un sacré forcing sur le produit.
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Tiens , j'en profite pour placer ma question à propos de DAMS (oui j'utilise DAMS sur un vrai CPC , j'ai changé ) car j'ai un petit doute.Le pavé numérique n'est pas reconnu ou c'est moi qui ait une version bugguée ?
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
@Horos : je n'ai jamais réussi à utiliser la commande p2 non plus, malgré ce qu'indique la notice. Les plus vieux CPCistes en connaîtront peut être la raison... ? Pour ton memory full, c'est normal. J'aurais dû te dire de débuter ton code en #2000 ! Sinon tu dois manipuler les commandes BASIC openout/memory/closeout, et c'est pas l'idéal si tu débutes. Disons que tant que ton source n'est pas trop gros, tu peux l'implanter en #2000 et il n'y aura plus de problème lors du rechargement. Un petit doute : sais-tu que tu peux utiliser un "ENT $" en début de source, et qu'avec la commande "J" tu exécutes ton source au point où tu as mis le ENT $ ? Ensuite, un test de touche dans ton programme te permet de revenir sous DAMS. Et tu évites ainsi de passer par le BASIC et les load/save.
@Fano : fait gaffe, tu risques de te faire greeter dans les prochaines prods Vanity si tu suis ce filon là Plusieurs versions de DAMS circulent, dont une "débloque" (en gros) le pavé numérique, ce qui est vraiment plus pratique sur un AZERTY ! La version la plus pratique a utiliser est celle qui figure sur la ROM OVL (j'ai la 3.1, mais c'est une version "de développement"... je ne sais pas quelle version circule "officiellement"). Mais je peux aussi te donner une version disk avec le pavé numérique activé si tu veux.
@Toto : en effet, je n'avais pas compris qu'il s'agissait d'utiliser DAMS sur émulateur ! Mais le but est sans doute de passer sur un vrai CPC par la suite (oui, c'est de l'intimidation .
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Hicks a écrit :
@Fano : fait gaffe, tu risques de te faire greeter dans les prochaines prods Vanity si tu suis ce filon là Plusieurs versions de DAMS circulent, dont une "débloque" (en gros) le pavé numérique, ce qui est vraiment plus pratique sur un AZERTY ! La version la plus pratique a utiliser est celle qui figure sur la ROM OVL (j'ai la 3.1, mais c'est une version "de développement"... je ne sais pas quelle version circule "officiellement"). Mais je peux aussi te donner une version disk avec le pavé numérique activé si tu veux.
Oui , je suis preneur car je ne peux pas tester depuis la ROM
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Concernant la commande P2, en fait elle marche lorsque DAMS est en bas de mémoire, par contre si tu le met en #4000 ça ne marche effectivement pas pour une raison que je ne connais pas.
Lance ton DAMS en #3E8 et là ta commande P2 devrait fonctionner, par contre dès que tu es trop haut en mémoire, il faut effectivement sauvegarder à la main sous Basic ou via un Hacker.
Et ça le ferait encore plus, si c'était sur un vrai CPC... Nop?
C'est prévu. Mais là je refais déjà vraiment du DAMS, ça fait plaisir.
kawickboy a écrit :
pour le sauvegarde du code binaire, je me souviens avoir lu dans la notice la commande p2 mais jamais elle n'avait marché. d'où la technique pas glorieuse que j'utilisais: assemblage, sortie de dams, sauvegarde sous basic puis retour à dams
Ah toi aussi! Donc mon émulateur n'est pas en cause. Cool! Je ne me souviens plus du tout comment je sauvais mon code objet à l'époque ni de ce bug de P2. Pourtant, ça "Damsait" sévère chez moi à l'époque!
Hicks a écrit :
@Horos : je n'ai jamais réussi à utiliser la commande p2 non plus, malgré ce qu'indique la notice.
Ah, ça me rassure alors! Je me suis déchiré la tête pendant 3 heures cette nuit en pensant que j'étais un nullos ! Ouf! Je n'ai pas vu sur le site que tu m'as indiqué ce problème avec P2. Ne faudrait t-il pas l'indiquer ? Ou alors je ne l'ai pas vu.
Dernière édition par Horos le 10 Juin 2013, 17:11, édité 1 fois.
Pour ton memory full, c'est normal. J'aurais dû te dire de débuter ton code en #2000 ! Sinon tu dois manipuler les commandes BASIC openout/memory/closeout, et c'est pas l'idéal si tu débutes.
Ok. J'ai donc fait comme le chargeur Basic de Dams : nn=&2000 : OPENOUT "q":MEMORY nn-1:CLOSEOUT:LOAD "MONPROG.BIN",&2000:CALL &2000
Ca marche impeccable! Plus de MEMORY FULL et j'ai bien sauvegardé mon code objet avec un SAVE,B
Hicks a écrit :
sais-tu que tu peux utiliser un "ENT $" en début de source
J'avais oublié le ENT $ . Je relis la documentation exaustivement cette fois!
Au fait, j'ai vu dans une revue CPC un petit programme qui permet d'ajouter quelques fonctions à Dams, comme DIR ou CAT et quelques autres. Je vais tester et je mettrai ici les retours si ça intéresse quelqu'un. (L'idée que j'ai derrière la tête, c'est que si on peut ajouter une commande CAT, on peut ajouter une commande "savebin"...)
shap a écrit :
Concernant la commande P2, en fait elle marche lorsque DAMS est en bas de mémoire, par contre si tu le met en #4000 ça ne marche effectivement pas pour une raison que je ne connais pas.
Oui, tu as raison! Avec un DAMS en #3E8 et mon code en #5000, la commande P2 a très bien fonctionné! (M#4FFF) Je peux continuer d'avancer maintenant avec les 2 méthodes. J'espère que mes questions aideront quelqu'un d'autre qui se remets à DAMS.
SyDe! a écrit :
Le mieux c'est de mettre Dams en bank.
Je reviens vers toi : mettre DAMS en Banque mémoire étendue avec OUT &7F00,&Cx et la fameuse place &BE80-&BE7C. J'ai réussi à lancer Dams en #4000 en passant de OUT &7F00,&C0 à OUT &7F00,&C4, mais quand je re-boote avec un CALL 0... DAMS a disparu. Bref, pas bien pigé encore comment on fait.
Par contre j'ai bien fait des peek et poke en &4001 en passant de &C0 à &C4 pour tester. ça marche. J'ai même compris que si le code source n'est pas trop gros et peut être mis lui aussi avec DAMS en mémoire étendue, il est protégé en cas de plantage.
Tu peux me dire où est-ce que j'ai oublié un truc pour que tout fonctionne ? en &BE80, on mets OUT &7F00,&Cx: Call &4000 en langage machine pour relancer DAMS ?
Oui après un reboot, il te suffit d'ouvrir la bank et de faire un Call &4000
Pour plus de simplicité tu peux programmer une touche dans le lanceur Basic de Dams. (moi c'était la touche TAB) avec la commande OUT &7F00,&C5:CALL &4000
Désolé pour ces explications un peu à l'arrache mais ça fait un bail que je n'avais plus touché à Dams (Depuis 1994). Je m'y suis un peu remis depuis...
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum