1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
| name 'test2'
org 100h
mov ax,0B800h
mov es,ax
mov bx,0 ; X=0
mov al,0 ; Y=0
mov cx,0 ; la couleur effacant le trace de la balle
obstacle PROC
mov bx, 40
mov al, 12
mov cx, 2
mov [00h], al
mov [02h], bx
mov [04h], al
mov [06h], bx
call position_centre
position_verti1:
mov bx, 40
mov al, [00h]
inc al
call position_verticale
mov [00h], al
position_hori1:
mov al, 12
mov bx, [02h]
dec bx
call position_horizontale
mov [02h], bx
position_verti2:
mov bx, 40
mov al, [04h]
dec al
call position_verticale
mov [04h], al
position_honri2:
mov al, 12
mov bx, [06h]
inc bx
call position_horizontale
mov [06h], bx
cmp bx, 50
je init
jmp position_verti1
position_centre PROC
push cx
push bx
push ax
mov ah, 160
mul ah
shl bx, 1
add bx, ax
mov ch, 02Bh
xchg ch, cl
mov es: [bx], cx
mov dx, cx
pop ax
pop bx
pop cx
ret
position_centre endp
position_horizontale PROC
push cx
push bx
push ax
mov ah, 160
mul ah
shl bx, 1
add bx, ax
mov ch, 02Dh
xchg ch, cl
mov es: [bx], cx
mov dx, cx
pop ax
pop bx
pop cx
ret
position_horizontale endp
position_verticale PROC
push cx
push bx
push ax
mov ah, 160
mul ah
shl bx, 1
add bx, ax
mov ch, 07Ch
xchg ch, cl
mov es: [bx], cx
mov dx, cx
pop ax
pop bx
pop cx
ret
position_verticale endp
init:
mov bx,0 ; X=0
mov al,0 ; Y=0
mov cx,0 ; la couleur effacant le trace de la balle
deplacement:
cmp al, 24 ; si Y=24 on change de boucle
je rebond1
cmp bx, 79 ; si X=79 on change de boucle
je rebond2
inc bx ; incrementation X
inc al ; incrementation Y
call position_active
call position
jmp deplacement
rebond1:
cmp al, 0
je deplacement
cmp bx, 79
je rebond3
inc bx
dec al
call position_active
call position
jmp rebond1
rebond2:
cmp al, 24
je rebond3
cmp bx, 0
je deplacement
dec bx
inc al
call position_active
call position
jmp rebond2
rebond3:
cmp al, 0
je rebond2
cmp bx, 0
je rebond1
dec bx
dec al
call position_active
call position
jmp rebond3
position PROC
push dx
push cx
push bx
push ax
mov ah, 160
mul ah
shl bx, 1
add bx, ax
mov ch, 0DBh
xchg ch, cl
mov es: [bx], cx
pop ax
pop bx
pop cx
pop dx
ret
position endp
position_active PROC
push cx
mov cx, 1 ; couleur bleu permettant d'afficher la balle
call position
pop cx
ret
position_active endp
fin:
mov ah, 04Ch
int 21h
ret |
Partager