{ %GRAPH } { Source provided for Free Pascal Bug Report 1050 } { Submitted by "Jonathan Ball" on 2000-07-17 } { e-mail: j.ball@rgu.ac.uk } PROGRAM test; USES Crt, Graph; VAR bpoint : pointer; bsize, actual : longint; f : file; s : string; i : BYTE; {------------------PROCEDURES-------------------} PROCEDURE GraphInit; VAR gd,gm : INTEGER; BEGIN gd:=VGA; {gd:=DETECT;} gm:=VGAHi; InitGraph (gd,gm, '.\bgi'); gd:=graphresult; IF gd<>grok THEN BEGIN WRITELN('Error initialising graphic card!'); WRITELN(grapherrormsg(gd));HALT; END END; {---------------MAIN PROGRAM BODY----------------} BEGIN GraphInit; i := 0; s := 'test'; {set file name} REPEAT i := i + 1; {increment size} BSize := ImageSize(0,0,i,i); {buffer size} GETMEM(bpoint,bsize); {reserve buffer} GetImage(0,0,i,i,bpoint^); {store in buffer} writeln(i,' ',bsize); ASSIGN(f,s); REWRITE(f,1); BLOCKWRITE(f,bpoint^,bsize,actual); CLOSE(f); FREEMEM(bpoint,bsize); {release memory} UNTIL (i=255){FALSE}; {until error} CloseGraph; END. {OUTPUT: program runs OK until i=31 and } {bsize=2060 bytes. When i increments to 32} {(bsize=2190), runtime error is generated }