[Back to MEMORY SWAG index]  [Back to Main SWAG index]  [Original]

{$A+,B-,D+,E+,F-,I-,L+,N-,O-,R+,S+,V+}
{$M 2048,0,0}
PROGRAM PhotoRAM(INPUT,OUTPUT);

   {Rob Rosenberger             VOX: (618) 632-7345
    Barn Owl Software           BBS: (618) 398-5703
    P.O. Box #74                HST: (618) 398-2305
    O'Fallon, IL 62269          CIS: 74017,1344

   This program simply snapshots memory to disk.  It was developed so a user
from across the country could take a snapshot of his memory configuration and
present it for inspection.

   You'll need to change the "TotalRAM" constant if you have a system with
less than 640k of memory.

Version 1.00: released to the public domain on 27 August 1989.
   See above for the reason why this program was created.}


CONST
   TotalRAM = 640; {total memory, in kilobytes}

VAR
   Index     : WORD;
   PhotoFile : FILE;

BEGIN {PhotoRAM}
{Initialize.}
Index := 0;


{Check for question mark, it means they want the help screen.}
IF ((PARAMSTR(1) = '')
 OR (PARAMSTR(1) = '?'))
 THEN {display a help screen}
    BEGIN
    WRITELN(OUTPUT,^M^J'Syntax:   PHOTORAM filename'^M^J);
    WRITELN(OUTPUT,'A public domain program by Rob Rosenberger (who?)'^M^J);
    WRITELN(OUTPUT,'Takes a "snapshot" of RAM and sends it to the filename');
    WRITELN(OUTPUT,'you specify.  You must have at least 640k of free disk');
    WRITELN(OUTPUT,'space for the snapshot file.'^M^J);
    HALT(0)
    END;

{If we get this far, PARAMSTR(1) contains a filename.}
{Open the file.}
ASSIGN(PhotoFile,PARAMSTR(1));
REWRITE(PhotoFile,1);

FOR Index := 0 TO ((TotalRAM DIV $40) - $1)
 DO BEGIN
    BLOCKWRITE(PhotoFile,PTR(Index,$0000)^,$8000);
    BLOCKWRITE(PhotoFile,PTR(Index,$8000)^,$8000)
    END;

CLOSE(PhotoFile)
{And that's all he wrote!}
END. {PhotoRAM}

[Back to MEMORY SWAG index]  [Back to Main SWAG index]  [Original]