(* Title : POP.MOD LastEdit: 1/89 Author : Kim Moser System : JPI's TopSpeed Modula-2 with PMI's Repertoire 1.5 Descrip : Pop routine tests. *) FROM SmartScreen IMPORT WriteAt; FROM KbdInput IMPORT KeyHit, AnyKeyNum; (* T h i s i s a t e s t . T h i s i s a t e s t . T h i s i s a t e s t . T h i s i s a t e s t . This is a test. 012345678901234 T h i s i s a b l a s t . T h i s i s a b l a s t . T h i s i s a b l a s t . This is a blast. 0123456789012345 *) PROCEDURE PopAt( x, y, w: CARDINAL; s: ARRAY OF CHAR ); VAR t: ARRAY [0..128] OF CHAR; i, j, r, s: CARDINAL; Len: CARDINAL; Loop, Step: CARDINAL; BEGIN Len := Length(s); LOOP Step := w DIV 2; Fill( ADR(t), SIZE(t), BYTE(' ') ); SetLength( t, w ); i := Len DIV 2; IF ODD(Len) THEN j := i; ELSE DEC(i); j := i+1; END; LOOP IF (i-Step) >= 0 THEN DEC(i, Step); ELSE EXIT; END; IF (j+Step) < Len THEN INC( j, Step ); ELSE EXIT; END; t[ END; END; END; END PopAt; BEGIN PopAt( 40, 10, 80, "This is a test." ); PopAt( 40, 11, 80, "This isn't a test." ); END Pop;