From 5ce5bc44b8feaa666e9f73d5416a6a772cba8594 Mon Sep 17 00:00:00 2001 From: slederer Date: Sat, 9 Nov 2024 19:03:09 +0100 Subject: [PATCH] sasm: use filesize() for incbin directive --- pcomp/sasm.pas | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pcomp/sasm.pas b/pcomp/sasm.pas index 077eebc..13af658 100644 --- a/pcomp/sasm.pas +++ b/pcomp/sasm.pas @@ -2041,17 +2041,20 @@ begin errorExit2('Unrecognized directive', lastToken.tokenText); end; -procedure readImage(filename:string;size:integer); +procedure readImage(filename:string); var f:InputFileType; c:char; i:integer; + size:integer; begin + openFileWithDefault(f, filename); + size := filesize(f); + pc := pc + size; bytesCount := bytesCount + size; if pass = 2 then begin - openFileWithDefault(f, filename); for i := 1 to size do begin @@ -2059,14 +2062,14 @@ begin write(outfile,c); end; - close(f); end; + + close(f); end; procedure parseMetaDirective; var filename:string; sym:TreeDataRef; - size:integer; begin readNextToken; if lastToken.tokenText = '%INCLUDE' then @@ -2099,8 +2102,7 @@ begin begin filename := curToken.tokenText; readNextToken; - size := parseExpression; - readImage(filename, size); + readImage(filename); end else errorExit2('Invalid meta directive', lastToken.tokenText);