[ Foro de Pascal ]

bsave bload en pascal

23-Apr-2020 20:18
mateo vireales
5 Respuestas

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.


24-Apr-2020 00:31
Nacho Cabanes (+83)

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.


24-Apr-2020 15:48
mateo vireales

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..


26-Apr-2020 14:09
Nacho Cabanes (+83)

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".


02-May-2020 12:54
mateo vireales

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.


02-May-2020 13:53
Nacho Cabanes (+83)

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.)