Dans un sens, c’est facile : locate 1,25:print. Mais comment puis-je défiler vers le haut, ou même latéralement (est-ce seulement possible ?), sans Poke et idéalement sans Call ?
Ma démo a déjà bien avancé avec actuellement 8 effets en « Basic Pur » ![]()
Dans un sens, c’est facile : locate 1,25:print. Mais comment puis-je défiler vers le haut, ou même latéralement (est-ce seulement possible ?), sans Poke et idéalement sans Call ?
Ma démo a déjà bien avancé avec actuellement 8 effets en « Basic Pur » ![]()
Tu peux utiliser le code de contrôle 11 pour déplacer le curseur vers le haut. Si cela se produit à la limite d’une fenêtre, le contenu de celle-ci défilera (défilement doux/soft-scroll). Si tu n’as spécifié aucune fenêtre, l’écran entier défilera si ton curseur se trouve sur la première ligne de l’écran.
Le défilement doux latéral (à ma connaissance) ne fonctionnera pas en BASIC, mais tu pourrais utiliser le défilement matériel via les registres du CRTC avec des commandes OUT.
Les commandes out envoyées aux registres du CRTC sont généralement la marche à suivre. Je ne vois pas pourquoi cela ne compterait pas comme du « pure basic ».
C’est juste un « caprice » de ma part ![]()
Ou alors, qu’en est-il de Peek et Poke ?
C’est encore du Basic au fond — et c’est aussi comme ça qu’on explique les sprites, etc., sur le C64.
Mais c’est exactement ce qui m’intéresse : montrer ce qu’il est possible de faire sans routines « purement internes », c’est-à-dire en utilisant les éléments que les développeurs ont rendus directement accessibles via des commandes.
Out est vraiment un cas limite, car c’est un moyen de communication.
Call, en revanche, est un appel direct à une routine interne. Malheureusement, pour l’instant, je ne peux pas vraiment m’en passer…
Sur le C64, tu peux faire un poke directement dans les registres. Sur le CPC, un poke ne modifiera que les données en RAM, mais ne changera aucun registre. Il faudra utiliser OUT pour cela.
Bien sûr, cela reste une commande BASIC, mais en utilisant OUT, vous touchez directement au matériel et vous devez comprendre ce qui se passe car le BASIC ne compensera pas vos actions. Par exemple, la position de l’écran va changer et un LOCATE 1,1 aura une position différente à l’écran après avoir fait un défilement via OUT. C’est ce que je voulais dire.
Ça marche du tonnerre avec chr 11 ! On peut vraiment faire des trucs sympas avec ça. ![]()
et un dernier petit conseil : tu peux appuyer sur CONTROL+K au clavier pour insérer le code de contrôle 11 dans une chaîne de caractères (String). Au lieu d’écrire print chr$(11), tu auras alors print “↑” dans ton code, ce qui est un peu plus rapide que chr$.
Cela fera probablement partie de la version finale. Je code sur PC dans un éditeur de texte, donc c’est un peu plus difficile.
Mais ce que j’ai déjà a l’air intéressant ![]()