tw1050.pp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. { %GRAPH }
  2. { Source provided for Free Pascal Bug Report 1050 }
  3. { Submitted by "Jonathan Ball" on 2000-07-17 }
  4. { e-mail: [email protected] }
  5. PROGRAM test;
  6. USES Crt, Graph;
  7. VAR
  8. bpoint : pointer;
  9. bsize, actual : longint;
  10. f : file;
  11. s : string;
  12. i : BYTE;
  13. {------------------PROCEDURES-------------------}
  14. PROCEDURE GraphInit;
  15. VAR gd,gm : INTEGER;
  16. BEGIN
  17. gd:=VGA; {gd:=DETECT;} gm:=VGAHi;
  18. InitGraph (gd,gm, '.\bgi');
  19. gd:=graphresult;
  20. IF gd<>grok THEN
  21. BEGIN
  22. WRITELN('Error initialising graphic card!');
  23. WRITELN(grapherrormsg(gd));HALT;
  24. END
  25. END;
  26. {---------------MAIN PROGRAM BODY----------------}
  27. BEGIN
  28. GraphInit;
  29. i := 0;
  30. s := 'test'; {set file name}
  31. REPEAT
  32. i := i + 1; {increment size}
  33. BSize := ImageSize(0,0,i,i); {buffer size}
  34. GETMEM(bpoint,bsize); {reserve buffer}
  35. GetImage(0,0,i,i,bpoint^); {store in buffer}
  36. writeln(i,' ',bsize);
  37. ASSIGN(f,s);
  38. REWRITE(f,1);
  39. BLOCKWRITE(f,bpoint^,bsize,actual);
  40. CLOSE(f);
  41. FREEMEM(bpoint,bsize); {release memory}
  42. UNTIL (i=255){FALSE}; {until error}
  43. CloseGraph;
  44. END.
  45. {OUTPUT: program runs OK until i=31 and }
  46. {bsize=2060 bytes. When i increments to 32}
  47. {(bsize=2190), runtime error is generated }