[ Foro de Pascal ]
hola buenas tardes.
queria preguntar si hay alguna instruccion en pascal o algo similar que grabe todo lo que hay en pantalla y luego se cargue con algun comando,como lo hacia en gwbasic las instrucciones bsave y bload ...gracias.
Eso es una peculiaridad de una versión concreta de BASIC (GwBasic) para un sistema operativo concreto (MS-DOS). Por tanto, no lo podrá hacer "Pascal". En todo caso, quizá una versión concreta (como Turbo Pascal 7.0) para ese mismo sistema operativo (MS-DOS)... pero no podrás llevar ese mismo planteamiento a Windows, o a MacOS X, o a Linux.
Eso es exactamente lo que quiero es para msdos.
Si hay alguna rutina o procedimiento para hacer lo mismo,me gustaria poder implementarla en un programa que quiero hacer,gracias..
La forma de hacerlo en Turbo Pascal para MS-DOS es crear un Array en una cierta posición de memoria concreta, que coincida con la memoria de pantalla, usando la palabra "absolute".
He encontrado en internet este codigo pero no logro hacerlo funcionar,,que falla?
program ScrnSaveLoad;
uses graph;
TYPE STR255=STRING[255];
VAR CH:CHAR;
var i : integer;
procedure scrnsave (fname:str255;length:integer);
var
buffer:byte absolute $b800:$0000;
filevar:file;
begin
assign (filevar,fname);
rewrite (filevar,length);
blockwrite (filevar,buffer,1);
close(filevar);
end;
procedure scrnload (fname,str255;length:integer);
var buffer:byte absolute $b800:$0000;
filevar:file;
begin
assign (filevar,fname);
reset (filevar,length);
blockwrite (filevar,buffer,1);
close(filevar);
end;
begin
graphcolormode;
for i:=19 downto 1 do
circle(160,100,5*i,1+i mod 3);
scrnsave ('screen.dat',16000);
repeat until keypressed;read(kbd,ch);
graphcolormode;
scrnload('screen.dat',16000);
repeat until keypressed;read(kbd,ch);
textmode(c80);
END.
Estoy utilizando freepascal.
Eso es de los tiempos de Turbo Pascal para MS-DOS. En Free Pascal no podrás usar "absolute".
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)