opt a+,o+,p+,o1+,o2+ gauche: equr d3 droite: equr d4 sauve_right: equr d2 Section Text Move.L 4(Sp),A0 Add.L #1000,A0 ;(gauche) ; D3 |-\/ D4 (droite) ; ___+______ ; |0|1||0|1| 2 groupes de pixels ; |2|3||2|3| Nos de bits ; |4|5||4|5| Ici transfert bit D3 1 -> Bit D4 0 ; ~~~~~~~~~~ Moveq.w #25-1,D0 ; boucle Y 25 lignes LoopY: Moveq.W #39-1,D1 Move.B -1(A0),sauve_right ; sauver 3 points LoopX: Move.B -(A0),droite ; droite D4 Move.B -1(A0),gauche ; gauche D3 Bclr #0,droite ; transfert ligne_droite gauche -> ligne_gauche droite Btst #1,gauche Beq.s NoSet0 Bset #0,droite NoSet0: ; Bclr #2,droite Btst #3,gauche Beq.s NoSet2 Bset #2,droite NoSet2: ; Bclr #4,droite Btst #5,gauche Beq.s NoSet4 Bset #4,droite NoSet4: ; Bclr #1,gauche ; transfert ligne_gauche gauche -> ligne_droite gauche Btst #0,gauche Beq.s NoSet1 Bset #1,gauche NoSet1: ; Bclr #3,gauche Btst #2,gauche Beq.s NoSet3 Bset #3,gauche NoSet3: ; Bclr #5,gauche Btst #4,gauche Beq.s NoSet5 Bset #5,gauche NoSet5: ; Move.B droite,(A0) ; sauver droite D4 Move.B gauche,-1(A0) ; sauver gauche D3 ; ; Dbra D1,LoopX ; Move.B sauve_right,droite ; on traite les extrŠmes Move.B (A0),gauche ; Bclr #0,gauche ; ligne_droite droite -> ligne_gauche gauche Btst #1,droite Beq.s NoSetX0 Bset #0,gauche NoSetX0: ; Bclr #2,gauche Btst #3,droite Beq.s NoSetX3 Bset #3,gauche NoSetX3: ; Bclr #4,gauche Btst #5,droite Beq.s NoSetX5 Bset #5,gauche NoSetX5: ; Move.B gauche,(A0) ; sauver ; Dbra D0,LoopY ; RTS ;ex: ;section data ;rept 25 ;dc.b "retry 0123456789+-* STACK" ;endr ;dc.b "HY! that's all folks !!! " ;dc.b "HY! that's all folks !!! " ;dc.b "HY! that's all folks !!! "