; http://CPCrulez.fr
;
        ORG 40000

        DI
        LD      HL,(&38)        ;mais, Qu'est-ce ti di dou dou
        LD      (RST38),HL      ;place au chaud,
        LD      HL,&C9fB        ;RET El
        LD      (&38),HL        ;et v'lan
        LD      (PILE),SP       ;OU est la pile?
        LD      SP,(ADRSPR)     ;merci je note
        LD      HL,(ADDECR)     ;voici l'ecran
        LD      BC,(CARACT)     ;voici la longueur et hauteur du

SPRITE:
        LD      A,8             ;comme un PUSH
        NEG                     ;Pour le 8C26 (0800H-longueur du sprite)
        LD      (MODIFI+01),A   ;recitifie le BC26
        SRL     8               ;div par deux
RAMBC1: LD      A,8             ;on stock dans A
RAMBC2: POP     DE              ;2 permier octet a l'ecran
        LD      (HL),E          ;et de d'un
        INC     L               ;C' est mieux Que INC HL
        LD      (HL),D          ;et de deux
        INC     L               ;et en plus ca marche
        DJNZ    RAM8C2          ;longueur/2?
        LD      B,A             ;comme un POP
MODIFI: LD      DE,&700         ;D=7, mais E n'est pas a 0
        ADD     HL,DE           ;BC26 de POUM
        JR      NC,RAMBC3
        LD      DE,&C050
        ADD     HL,DE
RAMBC3: DEC     C               ;hauteur OK ?
        JP      NZ,RAMBC1       ;ah bon, et ben au boulot
        LO      SP,(PILE)       ;je reprends ma pile
        LD      HL,(RST38)      ;et les inters
        LD      (&38),HL        ;je remets tout en place
        EI                      ;OK pour les inters
        RET                     ;salut
;
PILE    DW      0               ;je stocke la pile
RST33   DW      0               ;et l'adresse des inters
ADOECR  DW      &C000           ;je pointe a l'ecran
ADRSPR  DW      10000           ;et moi sur la table du sprite
CARACT  DB      16              ;moi je suis la hauteur
        DB      4               ;et moi la largeur