************************** *** ESTIENNE Sebastien *** *** 2004 *** ************************** ligne equ 20 colonne equ 80 ***************************** *** Function lDisplay *** ***************************** lDisplay move.l D0,-(A7) ; on empile move.b 8(A7),D0 ; met val case ds D0 cmpi.b #B,D0 ; a t on vide? beq sempty ; aff corresp btst.b #1,D0 ; a t on fantome? bne sghost ; aff corresp btst.b #2,D0 ; a t on fantome? bne sghost ; aff corresp cmpi.b #H,D0 ; a t on hero? beq shero ; aff corresp cmpi.b #M,D0 ; a t on mur? beq swall ; aff corresp cmpi.b #P,D0 ; a t on piege? beq strap ; aff corresp cmpi.b #V,D0 ; a t on vie? beq slife ; aff corresp cmpi.b #C,D0 ; a t on clef? beq skey ; aff corresp cmpi.b #S,D0 ; a t on sablier? beq sSand ; aff corresp sempty bsr drawEmpty ; appel drawEmpty bra suitDisp ; va a suitDisp sghost bsr drawGhost ; etc... bra suitDisp shero bsr drawHero bra suitDisp swall bsr drawWall bra suitDisp strap bsr drawTrap bra suitDisp slife bsr drawLife bra suitDisp skey bsr drawKey bra suitDisp sSand bsr drawSand bra suitDisp suitDisp move.l (A7)+,D0 ; on depile rts flDisplay ***************************** *** Function gDisplay *** ***************************** gDisplay movem.l D0-D1/A0,-(A7) ; on empile move.l 16(A7),A0 ; charge plateau clr.b D0 ; vide D0 clr.b D1 ; vide D1 bcleligne cmpi.b #ligne,D0 ; pr les 20lignes plateau beq fligne ; on va stopper bclecolon cmpi.b #colonne,D1 ; pr les 80colons plateau beq fcolonne ; on va ++ ligne move.b (A0)+,-(A7) ; elt suiv du plateau ds pile bsr lDisplay ; appel de local Display add.l #2,A7 ; on depile add.b #1,D1 ; ++ reg colon bra bclecolon ; boucle vers case suiv fcolonne clr.b D1 ; mise a zero de reg colon add.b #1,D0 ; on va passer a ligne suiv bsr LF ; line feed bsr CR ; carriage return bra bcleligne ; passe a cette ligne fligne movem.l (A7)+,D0-D1/A0 ; on depile rts fgDisplay