PAGE < < < T R A C E D U S E G M E N T ( M 1 , M 2 ) : < < < FONCTION : < CETTE ROUTINE TRACE LE SEGMENT < M1M2 , TEL QUE : < M1(X1,Y1) , < M2(X2,Y2). < < < RESULTAT : < X=X2 , < Y=Y2. < < TABLE FPOINT: EQU $ FX1: FLOAT 0 FY1: FLOAT 0 FX2: FLOAT 0 FY2: FLOAT 0 FX: FLOAT 0 FY: FLOAT 0 FDEUX: FLOAT 2 F05: FLOAT 0.5 PROG SEG: EQU $ < < INITIALISATIONS DU PROCESSUS RECURSIF : < LA 'FF80,C < A CAUSE DU BLOC FLOTTANT... PSR A,W LRM W WORD FPOINT < W BASE LES DONNEES FLOTTANTES. USE W,FPOINT LA X1 FLT FST FX1 LA Y1 FLT FST FY1 LA X2 FLT FST FX2 LA Y2 FLT FST FY2 LX X1 LY Y1 BSR APOINT < AFFICHAGE 1ER POINT. BSR ADICO < PARCOURS DICHOTOMIQUE DE (M1,M2). LX X2 LY Y2 BSR APOINT < AFFICHAGE 2EME POINT. PLR A,W STA 'FF80,C < RESTAURE UN BOUT D'IMAGE... RSR < < < P A R C O U R S D I C H O T O M I Q U E < D ' U N S E G M E N T : < < DICO: EQU $ FLD FX1 FAD FX2 FDV FDEUX FST FX < X=(X1+X2)/2. FLD FY1 FAD FY2 FDV FDEUX FST FY < Y=(Y1+Y2)/2. < < TEST DE M PAR RAPPORT A M1 : < FSB FY1 FIX JANE E31 < CAS : M#M1. FLD FX FSB FX1 FIX JAE E32 < CAS : M=M1. < < TEST DE M PAR RAPPORT A M2 : < E31: EQU $ FLD FY FSB FY2 FIX JANE E30 < CAS M#M2 ET M#M1. FLD FX FSB FX2 FIX JANE E30 < CAS : M#M2 ET M#M1. < < CAS OU M=M1 OU M=M2 : < E32: EQU $ FLD FX FAD F05 FIX LR A,X FLD FY FAD F05 FIX LR A,Y BSR APOINT < AFFICHAGE DU POINT M. RSR < CAS : M=M1 : ON ARRETE LA < DICHOTOMIE DESCENDANTE PROVISOI- < REMENT ... < < CAS OU M#M1 ET M#M2 : < E30: EQU $ FLD FX2 PSR A,B FLD FY2 PSR A,B FLD FX FST FX2 FLD FY FST FY2 < M2 <-- M. BSR ADICO < DICHOTOMIE DU NOUVEAU SEGMENT < (M1,M2). FLD FX2 FAD F05 FIX LR A,X FLD FY2 FAD F05 FIX LR A,Y BSR APOINT < AFFICHAGE DE M2 AU RETOUR. < D'UNE DICHOTOMIE. FLD FX2 FST FX1 < PUIS : FLD FY2 FST FY1 < M1 <-- M2. PLR A,B FST FY2 < RESTAURATION PLR A,B FST FX2 < DU POINT M2. JMP DICO < ET ON REPREND LA DICHOTOMIE...