Question BASIC 1.0
Modérateurs : Papy.G, fneck, Carl
-
- Messages : 62
- Inscription : 30 nov. 2011 10:19
Question BASIC 1.0
Bonjour tout le monde,
Je suis sûr que les habitués du BASIC 1.0 vont avoir la solution...
J'écris un petit jeu en BASIC pour me dérouiller un peu Et mon problème est le suivant : Lorsque j'affiche un caractère tout en bas à droite (Locate 39,24), puis que j'en affiche ensuite un en haut à gauche (Locate 0,0), l'écran se décale vers le haut comme si le PRINT qui suit mon premier Locate avait fait un retour charriot puis était ensuite allé afficher en 0,0.
Comment éviter ce retour charriot après mon affichage en 39,24 ?
Je pense que le problème est assez classique, mais ça fait tellement longtemps que je n'ai plus mis le nez dans le BASIC 1.0...
Merci de vos conseils
Je suis sûr que les habitués du BASIC 1.0 vont avoir la solution...
J'écris un petit jeu en BASIC pour me dérouiller un peu Et mon problème est le suivant : Lorsque j'affiche un caractère tout en bas à droite (Locate 39,24), puis que j'en affiche ensuite un en haut à gauche (Locate 0,0), l'écran se décale vers le haut comme si le PRINT qui suit mon premier Locate avait fait un retour charriot puis était ensuite allé afficher en 0,0.
Comment éviter ce retour charriot après mon affichage en 39,24 ?
Je pense que le problème est assez classique, mais ça fait tellement longtemps que je n'ai plus mis le nez dans le BASIC 1.0...
Merci de vos conseils
-
- Messages : 7989
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Question BASIC 1.0
Truc à vérifier: ne pas oublier le ";" à la fin du PRINT pour supprimer l'ajout du CR/LF par l'instruction.
Je ne pense pas que c'est le problème ici. Il me semble qu'il y a un bug du moniteur qui ajoute une ligne sitôt qu'non affiche un caractère en bas à droite (parce qu'il faut de la place pour le curseur, même si ce dernier est invisible).
Il y a une option à CONSOLE pour supprimer le scroll qui fixe ca, mais c'est peut-être en basic 128. Tu peux aussi essayer de masquer le curseur (suffit de faire un LOCATE 0,0,1 au début du programme), ca sauve peut-être la mise aussi (pas testé), ou encore afficher le caractère en bas à gauche avec un PSET plutôt qu'un LOCATE+PRINT.
Désolé de ne pas être plus précis, j'ai pas de quoi tester tout de suite.
Je ne pense pas que c'est le problème ici. Il me semble qu'il y a un bug du moniteur qui ajoute une ligne sitôt qu'non affiche un caractère en bas à droite (parce qu'il faut de la place pour le curseur, même si ce dernier est invisible).
Il y a une option à CONSOLE pour supprimer le scroll qui fixe ca, mais c'est peut-être en basic 128. Tu peux aussi essayer de masquer le curseur (suffit de faire un LOCATE 0,0,1 au début du programme), ca sauve peut-être la mise aussi (pas testé), ou encore afficher le caractère en bas à gauche avec un PSET plutôt qu'un LOCATE+PRINT.
Désolé de ne pas être plus précis, j'ai pas de quoi tester tout de suite.
Dernière modification par __sam__ le 11 juin 2023 21:28, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
-
- Messages : 62
- Inscription : 30 nov. 2011 10:19
Re: Question BASIC 1.0
Je teste tout ça après dîner
Merci !
Merci !
Re: Question BASIC 1.0
De mémoire le PRINT en bas à droite, même suivi d'un point-virgule, fait défiler l'écran.
Quand j'avais le problème j'utilisais un PSET en mode caractère, je crois que c'est le seul moyen d'éviter le scroll vertical.
Quand j'avais le problème j'utilisais un PSET en mode caractère, je crois que c'est le seul moyen d'éviter le scroll vertical.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 62
- Inscription : 30 nov. 2011 10:19
Re: Question BASIC 1.0
Merci Daniel, ta méthode fonctionne.
Mais je me rends compte que si je veux afficher une chaîne de deux caractères, seul le premier est affiché avec pset. C’est normal je suppose ?
Mais je me rends compte que si je veux afficher une chaîne de deux caractères, seul le premier est affiché avec pset. C’est normal je suppose ?
-
- Messages : 7989
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Question BASIC 1.0
Le "CONSOLE,,,2" qui supprime le scroll est pas mal non plus. A voir si ca marche aussi en basic 1 (pas de contre-indication dans la doc).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: Question BASIC 1.0
Oui c'est normal. PSET affiche un seul caractère.HuggyOne76 a écrit : ↑11 juin 2023 21:29 si je veux afficher une chaîne de deux caractères, seul le premier est affiché avec pset. C’est normal je suppose ?
Pour afficher plusieurs caractères il faut plusieurs PSET. Ou un PRINT"..."; suivi d'un PSET pour le dernier caractère.
La méthode de __sam__ avec CONSOLE est aussi une solution. Je ne l'ai pas essayée mais je suis sûr que ça fonctionne. Le curseur doit se retrouver en haut à gauche de l'écran, ensuite on peut faire un LOCATE si on veut le mettre ailleurs.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 62
- Inscription : 30 nov. 2011 10:19
Re: Question BASIC 1.0
Je teste demain Merci !!!!
-
- Messages : 62
- Inscription : 30 nov. 2011 10:19
Re: Question BASIC 1.0
Bonjour tout le monde,
J’ai testé la commande CONSOLE,,,2 et effectivement ça fonctionne tout aussi bien que de mettre du PSET. Ça simplifie certaines petites routines du programme même si je suis sur un truc très simple (ça me permet d’y remettre le nez et à ma copine de débuter )
Merci de votre aide en tout cas !
J’ai testé la commande CONSOLE,,,2 et effectivement ça fonctionne tout aussi bien que de mettre du PSET. Ça simplifie certaines petites routines du programme même si je suis sur un truc très simple (ça me permet d’y remettre le nez et à ma copine de débuter )
Merci de votre aide en tout cas !