; Cache vid‚otex Sweetel2 - ½STS ; Recherche d'un caractŠre DRCS opt a+,o+,p+,o1+,o2+ Move.W 4(Sp),D0 ; 3 nombres a tester ; Move.W 6(Sp),D1 -> W:0 Move.W 8(Sp),D2 ;Andi.W #%10011111,D2 ; Ne pas tester starter/inhib (ici, 2 octets pour update) Move.L 10(Sp),A0 ; et leurs 3 adr de tableau: Vid-[s&,c&,a|] ;Move.L 14(Sp),A1 Move.L 18(Sp),A2 ; (Vida| sur 1 octet) Clr.L D7 Move.W 22(Sp),D7 ; max [0..max] Lsl.L #1,D7 ; *2 (Word) Clr.L D6 Move.W 24(Sp),D6 ; From.. (index) Lsl.L #1,D6 ; en octets Cmp.w d7,d6 ; pas trop grand..? Bhi.S end ; si! test: move.w (a0,d6.w),d1 cmp.b d1,d0 ; cmp caractŠre uniquement beq.s t3 cont: addi.w #2,d6 cmp.w d7,d6 bls.s test bra.s end ; ‚chec t3: move.w d6,d5 lsr.w #1,d5 ; + rapide! move.b (a2,d5.w),d3 btst.l #7,d3 ; DRCS? beq.s cont ; nan tst.w d2 bne.s d2_1 d2_0: btst.l #4,d3 ; GRAPH? bne.s cont bra.s okay d2_1; btst.l #4,d3 ; GRAPH? beq.s cont okay: move.w d5,d0 ; trouv‚! on renvoi l'index! (pour effacer) ext.l d0 RTS end: st.b d0 ext.w d0 ext.l d0 RTS