|
From: George H. <geo...@us...> - 2012-01-17 19:31:42
|
Update of /cvsroot/win32forth/win32forth/src/lib
In directory vz-cvs-4.sog:/tmp/cvs-serv24047
Added Files:
checksum.f
Log Message:
New file added
--- NEW FILE: checksum.f ---
\ checksum.f
map-handle exemap
: (mapfile) ( addr len -- a1 n1 ) \ map file name into memory
exemap open-map-file
abort" Failed to open and map the file!"
exemap >hfileAddress @
exemap >hfileLength @ ;
: mapfile ( "name" -- a1 n1 )
/parse-s$ count (mapfile) ;
: unmapfile ( -- ) \ unmap and close the file
exemap close-map-file drop ;
$d8 offset >checksum
winLibrary imagehlp
4 proc CheckSumMappedFile
variable oldSum
variable Checksum
: (Getsum) ( addr len -- checksum )
2>r checksum oldsum 2r> (mapfile) swap call CheckSumMappedFile drop
checksum @ ;
: (GetChecksum) ( addr len -- checksum )
(getsum) unmapfile ;
: (AddChecksum) ( addr len -- )
(Getsum) exemap >hfileAddress @ >checksum ! unmapfile ;
: GetChecksum ( "name" -- checksum )
/parse-s$ count (GetChecksum) ;
: AddChecksum ( "name" -- )
/parse-s$ count (AddChecksum) ;
|