* write extended to ppu file

* new version 0.99.7
This commit is contained in:
peter 1998-08-11 15:31:35 +00:00
parent ea8a7d2a4f
commit befed16714
7 changed files with 65 additions and 34 deletions

View File

@ -55,6 +55,7 @@ Fixed bugs:
bug0039.pp shows the else-else problem OK 0.9.9 (FK)
bug0040.pp shows the if b1 xor b2 problem where b1,b2 :boolean OK 0.9.9 (FK)
bug0041.pp shows the if then end. problem OK 0.9.9 (FK)
bug0043.pp shows assembler nasm output fpu opcodes problem OK 0.99.6 (PFV)
bug0044.pp shows $ifdef and comment nesting/directive problem OK 0.99.1 (PFV)
bug0045.pp shows problem with virtual private methods OK 0.9.9 (FK)
(might not be a true bug but more of an incompatiblity?)
@ -157,6 +158,7 @@ Fixed bugs:
bug0139.pp Cannot access protected method of ancestor class from other unit. OK 0.99.6
bug0140.pp Shows that interdependent units still are not OK. OK 0.99.6 (PFV)
bug0141.pp Wrong Class sizes when using forwardly defined classes. OK 0.99.6
bug0146.pp no sizeof() for var arrays and the size is pushed incorrect OK 0.99.7 (PFV)
bug0147.pp function b; is not allowed in implementation OK 0.99.7 (PFV)
Unproducable bugs:
@ -177,8 +179,7 @@ bug0133.pp object type declaration not 100% compatibile with TP7
Unfixed bugs:
-------------
bug0042.pp shows assembler double operator expression problem
bug0043.pp shows assembler nasm output with fpu opcodes problem
bug0049.pp shows an error while defining subrange types
bug0049.pp shows an error while defining subrange types
bug0050.pp can't set a function result in a nested procedure of a function
bug0051.pp shows a problem with putpixel
bug0052.pp collects missing graph unit routines
@ -195,7 +196,6 @@ bug0142.pp sizeof(object) is not tp7 compatible when no constructor is used
bug0143.pp cannot concat string and array of char in $X+ mode
bug0144.pp problem with 'with object do'
bug0145.pp typed files with huges records (needs filerec.size:longint)
bug0146.pp no sizeof() for var arrays and the size is pushed incorrect
bug0148.pp crash when setting function result of a declared but not yet
implemented function in another function
bug0149.pp (a, b) compile bug0149b twice and you'll get a crash

View File

@ -38,7 +38,7 @@ unit aasm;
{$ifdef m68k}
bestreal = real;
{$endif}
pbestreal=^bestreal;
tait = (
ait_string,
@ -836,7 +836,11 @@ uses
end.
{
$Log$
Revision 1.14 1998-08-10 23:56:03 peter
Revision 1.15 1998-08-11 15:31:36 peter
* write extended to ppu file
* new version 0.99.7
Revision 1.14 1998/08/10 23:56:03 peter
* fixed extended writing
Revision 1.13 1998/08/10 14:49:33 peter

View File

@ -81,7 +81,7 @@ unit pdecl;
def : pdef;
sym : psym;
ps : pconstset;
pd : pdouble;
pd : pbestreal;
sp : pstring;
begin
@ -1881,7 +1881,11 @@ unit pdecl;
end.
{
$Log$
Revision 1.36 1998-08-10 14:50:09 peter
Revision 1.37 1998-08-11 15:31:38 peter
* write extended to ppu file
* new version 0.99.7
Revision 1.36 1998/08/10 14:50:09 peter
+ localswitches, moduleswitches, globalswitches splitting
Revision 1.35 1998/07/26 21:59:00 florian

View File

@ -1179,7 +1179,7 @@ unit pexpr;
constchar:
p1:=genordinalconstnode(pconstsym(srsym)^.value,cchardef);
constreal:
p1:=genrealconstnode(pdouble(pconstsym(srsym)^.value)^);
p1:=genrealconstnode(pbestreal(pconstsym(srsym)^.value)^);
constbool:
p1:=genordinalconstnode(pconstsym(srsym)^.value,booldef);
constseta:
@ -1786,7 +1786,11 @@ unit pexpr;
end.
{
$Log$
Revision 1.32 1998-08-11 14:05:32 peter
Revision 1.33 1998-08-11 15:31:39 peter
* write extended to ppu file
* new version 0.99.7
Revision 1.32 1998/08/11 14:05:32 peter
* fixed sizeof(array of char)
Revision 1.31 1998/08/10 14:50:11 peter

View File

@ -97,6 +97,12 @@ const
uf_smartlink = $40;
uf_finalize = $80;
type
{$ifdef m68k}
ppureal=single;
{$else}
ppureal=extended;
{$endif}
type
tppuerror=(ppuentrytoobig,ppuentryerror);
@ -161,7 +167,7 @@ type
function getbyte:byte;
function getword:word;
function getlongint:longint;
function getdouble:double;
function getreal:ppureal;
function getstring:string;
function skipuntilentry(untilb:byte):boolean;
{write}
@ -174,7 +180,7 @@ type
procedure putbyte(b:byte);
procedure putword(w:word);
procedure putlongint(l:longint);
procedure putdouble(d:double);
procedure putreal(d:ppureal);
procedure putstring(s:string);
end;
@ -488,6 +494,7 @@ begin
if entryidx+1>entry.size then
begin
error:=true;
getbyte:=0;
exit;
end;
readdata(b,1);
@ -505,6 +512,7 @@ begin
if entryidx+2>entry.size then
begin
error:=true;
getword:=0;
exit;
end;
readdata(w,2);
@ -522,6 +530,7 @@ begin
if entryidx+4>entry.size then
begin
error:=true;
getlongint:=0;
exit;
end;
readdata(l,4);
@ -530,20 +539,21 @@ begin
end;
function tppufile.getdouble:double;
function tppufile.getreal:ppureal;
type
pdouble = ^double;
pppureal = ^ppureal;
var
d : double;
d : ppureal;
begin
if entryidx+sizeof(double)>entry.size then
if entryidx+sizeof(ppureal)>entry.size then
begin
error:=true;
getreal:=0;
exit;
end;
readdata(d,sizeof(double));
getdouble:=d;
inc(entryidx,sizeof(double));
readdata(d,sizeof(ppureal));
getreal:=d;
inc(entryidx,sizeof(ppureal));
end;
@ -735,9 +745,9 @@ begin
end;
procedure tppufile.putdouble(d:double);
procedure tppufile.putreal(d:ppureal);
begin
putdata(d,sizeof(double));
putdata(d,sizeof(ppureal));
end;
@ -750,7 +760,11 @@ end;
end.
{
$Log$
Revision 1.7 1998-06-25 10:51:01 pierre
Revision 1.8 1998-08-11 15:31:40 peter
* write extended to ppu file
* new version 0.99.7
Revision 1.7 1998/06/25 10:51:01 pierre
* removed a remaining ifndef NEWPPU
replaced by ifdef OLDPPU
* added uf_finalize to ppu unit

View File

@ -56,9 +56,9 @@
end;
procedure writedouble(d:double);
procedure writereal(d:bestreal);
begin
current_ppu^.putdata(d,sizeof(double));
current_ppu^.putreal(d);
end;
@ -248,14 +248,11 @@
end;
function readdouble : double;
var
d : double;
function readreal : bestreal;
begin
current_ppu^.getdata(d,sizeof(double));
readreal:=current_ppu^.getreal;
if current_ppu^.error then
Message(unit_f_ppu_read_error);
readdouble:=d;
end;
@ -697,7 +694,11 @@
{
$Log$
Revision 1.8 1998-08-10 14:50:29 peter
Revision 1.9 1998-08-11 15:31:41 peter
* write extended to ppu file
* new version 0.99.7
Revision 1.8 1998/08/10 14:50:29 peter
+ localswitches, moduleswitches, globalswitches splitting
Revision 1.7 1998/07/14 14:47:07 peter

View File

@ -1337,7 +1337,7 @@
constructor tconstsym.load;
var
pd : pdouble;
pd : pbestreal;
ps : pointer; {***SETCONST}
begin
@ -1355,7 +1355,7 @@
conststring : value:=longint(stringdup(readstring));
constreal : begin
new(pd);
pd^:=readdouble;
pd^:=readreal;
value:=longint(pd);
end;
{***SETCONST}
@ -1405,7 +1405,7 @@
writelong(value);
end;
conststring : writestring(pstring(value)^);
constreal : writedouble(pdouble(value)^);
constreal : writereal(pbestreal(value)^);
{***SETCONST}
constseta: writeset(pointer(value)^);
{***}
@ -1430,7 +1430,7 @@
end;
constbool, constint, constord, constchar : st := 'i'+tostr(value);
constreal : begin
system.str(pdouble(value)^,st);
system.str(pbestreal(value)^,st);
st := 'r'+st;
end;
{ if we don't know just put zero !! }
@ -1671,7 +1671,11 @@
{
$Log$
Revision 1.28 1998-08-11 14:07:27 peter
Revision 1.29 1998-08-11 15:31:42 peter
* write extended to ppu file
* new version 0.99.7
Revision 1.28 1998/08/11 14:07:27 peter
* fixed pushing of high value for openarray
Revision 1.27 1998/08/10 14:50:31 peter