voici ce que j'ai pondu, l'écran défile, le clavier marche, mais on peut taper dans le noir, ça fait rien pour le moment:
include "tios.h"
include "userlib.h"
include "graphlib.h"
xdef _main
xdef _ti89
;--------------------------------------------------------------------------------
_main:
move.w #77,D6 ;abcisse du vaisseau
move.w #59,D7 ;abcisse du haut du chemin
lea (ship),A6 ;adresse du vaisseau
clr.w D0
clr.w D1
move.w #159,D2
move.w #100,D3
move.w #2,D4
jsr graphlib::fill
move.w #59,D0
move.w #40,D2
move.w #1,D4
jsr graphlib::fill
;--------------------------------------------------------------------------------
loop:
move.w #7,D0 ;nombre aléatoire entre 0 et 6
jsr userlib::random
sub.w #3,D7 ;on enlève 3 à l'abcisse du haut
add.w D0,D7 ;et on rajoute le nombre aléatoire
bsr control ;on controle si on ne sort pas de l'écran
clr.w D0
clr.w D1
move.w #159,D2
move.w #2,D3 ;on trace 2 lignes horizontales noires
jsr graphlib::horiz ;sur le haut de l'écran
move.w #1,D1
jsr graphlib::horiz
move.w D7,D0
clr.w D1
move.w D0,D2
add.w #40,D2
move.w #1,D3 ;on trace les deux lignes horizontales blanches
jsr graphlib::horiz ;du chemin
move.w #1,D1
jsr graphlib::horiz
clr.w D0
clr.w D1
move.w #20,D2
move.w #98,D3
jsr graphlib::scrtomem ;on copie l'écran - les 2 lignes du bas
move.w #2,D1
jsr graphlib::memtoscr ;on le redessine deux crans + bas
move.w #%11111110,D4
bsr keytest
btst.b #3,D3
beq droite
btst.b #1,D3
beq gauche ;test des touches droite et gauche
move.w D6,D0
move.w #93,D1
move.l A6,A0
jsr graphlib:
![tongue](//yaronet.org/107/image/emoji/tongue.gif)
ut_sprite ;on dessine le vaisseau
move.w #%10111111,D4
bsr keytest
btst.b #0,D3
beq fin ;on teste la touche esc
bra loop
;--------------------------------------------------------------------------------
droite:
add.w #2,D6
bra loop ;touche de droite appuyée
;--------------------------------------------------------------------------------
gauche:
sub.w #2,D6
bra loop ;touche de gauche appuyée
;--------------------------------------------------------------------------------
control:
cmp #1,D7 ;on regarde si le chemin ne sort pas,
ble limit_g ;de l'écran
cmp #119,D7
bge limit_d
bra retour
limit_d:
sub.w #4,D7 ;on le ramène vers la gauche
bra retour
limit_g:
add.w #4,D7 ;on le ramène vers la droite
retour:
rts
;--------------------------------------------------------------------------------
keytest: ;on teste le clavier, la ligne
move.w #$700,-(A7) ;à tester doit être dans D4
jsr tios::OSSetSR
move.w D4,$600018
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
move.b $60001b,D3
clr.w (A7)
jsr tios::OSSetSR
lea 2(A7),A7
rts
;--------------------------------------------------------------------------------
fin:
rts
;--------------------------------------------------------------------------------
ship:
dc.w 7,1
dc.b %00111100
dc.b %01111110
dc.b %01111110
dc.b %00111100
dc.b %00111100
dc.b %01111110
dc.b %01111110
;--------------------------------------------------------------------------------
end
vous pouvez me dire si c'est mieux, et ce que je peux faire encore?