/* _bench.rexx Check speed of your system © 2002 Edgar Schwan $VER: _bench.rexx 1.0 (18.3.2002) */ PARSE ARG portname ' ' . IF LENGTH(portname) = 0 THEN ADDRESS FLASHMANDEL.1; ELSE ADDRESS VALUE portname; OPTIONS RESULTS; OPTIONS FAILAT 21; IF ~SHOW('L','rexxsupport.library') THEN /* load 'rexxsupport.library' */ CALL ADDLIB('rexxsupport.library',0,-30); Ver = "1.0" portname = ADDRESS(); OUTCON = "CON:10/10/550/300/Benchmark/SCREEN " || portname; IF OPEN('out', OUTCON, 'RW') THEN DO WRITELN('out', "FlashMandelWOS-Benchmark V" || Ver); WRITELN('out', ""); WRITELN('out', "Are you sure to start this benchmark-script?"); WRITELN('out', "It will need some time, even when you own a PPC."); WRITECH('out', "Please select: (Y/N) "); choice = READLN('out'); IF UPPER(choice) = 'Y' THEN DO elapsed = 0; /* load mandelbrot-default */ CLOSE('out'); 'LOAD_PICTURE' 'FLASHMANDEL:pictures/Mandelbrot_def.iff'/* 'FAST'*/ ADDRESS COMMAND; DO WHILE SHOW('P', portname) CALL DELAY(10); END ADDRESS COMMAND 'sys:Rexxc/WaitForPort' portname; ADDRESS VALUE portname; OPEN('out', OUTCON, 'RW'); 'GET_SCREENATTRS' 'ATTRS' WRITELN('out', "FlashMandelWOS-Benchmark V" || Ver); WRITELN('out', ""); WRITELN('out', "- Press Ctrl-C to abort! -"); WRITELN('out', ""); WRITELN('out', " Your actual screen-dimensions:" ); WRITELN('out', " - width: " ATTRS.WIDTH); WRITELN('out', " - height:" ATTRS.HEIGHT); WRITELN('out', " - depth: " ATTRS.DEPTH); WRITELN('out', ""); WRITELN('out', " loading mandelbrot-default... ready"); WRITELN('out', ""); WRITECH('out', " Rendering julia... "); /* render julia */ 'SET_FRACTAL_TYPE 1' COORDS.RMIN = -1.043750 COORDS.RMAX = 0.036250 COORDS.IMIN = -0.251250 COORDS.IMAX = 0.558750 COORDS.JKRE = -0.704631 COORDS.JKIM = 0.268573 'SET_COORDINATES' 'COORDS' 'START_TIMER' 'RENDER' 'FORCE' 'STOP_TIMER' elapsed = elapsed + RESULT; WRITELN('out', " elapsed (so far):" elapsed "seconds"); WRITELN('out', ""); WRITECH('out', " Rendering mandelbrot... "); /* render mandelbrot */ 'SET_FRACTAL_TYPE 2' COORDS.RMIN = -0.749892 COORDS.RMAX = -0.749181 COORDS.IMIN = -0.045473 COORDS.IMAX = -0.044939 COORDS.JKRE = -0.720000 COORDS.JKIM = -0.260000 'SET_COORDINATES' 'COORDS' 'START_TIMER' 'RENDER' 'FORCE' 'STOP_TIMER' elapsed = elapsed + RESULT; WRITELN('out', " elapsed (so far):" elapsed "seconds"); WRITELN('out', ""); IF ATTRS.DEPTH > 2 THEN DO WRITECH('out', " Cycle colors... "); /* cycle colors */ 'GET_PALETTE' 'COLORS' NumColors = (2 ** ATTRS.DEPTH); 'START_TIMER' DO i = 4 TO (NumColors - 2) temp = COLORS.4; DO s = 4 TO (NumColors - 2) next_col = s + 1; COLORS.s = COLORS.next_col; END; last = NumColors - 1; COLORS.last = temp 'SET_PALETTE' 'COLORS' 'FAST' END; 'STOP_TIMER' elapsed = elapsed + RESULT; WRITELN('out', " elapsed (so far):" elapsed "seconds"); WRITELN('out', ""); END WRITELN('out', ""); WRITELN('out', " "); READLN('out'); END CLOSE('out'); END EXIT 0;