{ File format for one record of SAPPHIRE.USR }

CONST
  MaxUsers    = 1000;    { Username index RAM used = MaxUsers * 20 }

TYPE
  UserType =
  RECORD
    {--- General Info ---}
    RealName  : String20;    { Real Name }
    Phone     : STRING[25];  { Voice phone number }
    UserName  : String20;    { Sign-on name }
    Password  : STRING[10];  { Sign-on password }
    Level     : BYTE;        { Membership level, 1 to 8 }
    Dayt_Last : WORD;        { Day# of last call; if 0, flagged as deleted }
    Mint_Last : WORD;        { Minute-of-the-day of last call }
    SpareA    : ARRAY[1..4] OF BYTE;  { Never used; set to zeros }
    File_Last : WORD;        { Day# files listing was last viewed }
    ClrScreen : CHAR;        { Should screen be cleared?  Y or N }
    ScanMail  : CHAR;        { Scan for mail at logon time?  Y or N }
    SpareX    : ARRAY[1..8] OF BYTE;
    Width     : WORD;        { Screen width }
    Depth     : WORD;        { Screen depth }
    DefGear   : BYTE;        { Default gear }
    DefWrap   : BOOLEAN;     { Default word-wrap }
    Expert    : CHAR;        { Expert mode }
    Pausing   : CHAR;        { Pause-during-read control }
    Colour    : BOOLEAN;     { Use ANSI colour controls? }
    IBMChars  : BOOLEAN;     { Are IBM characters available? }
    Protocol  : CHAR;        { Upload/download protocol }
    Bonus     : BYTE;        { Bonus minutes for uploading }
    DownLoadK : LONGINT;     { K downloaded from files }
    UpLoadK   : LONGINT;     { K uploaded to files }
    NtPdExpl  : BYTE;        { Number of times notepad was explained }
    FullANSI  : BOOLEAN;     { Should full ANSI displays be shown? }
    Spare     : ARRAY[1..19] OF BYTE;
    {--- Bulletins-Read Info ---}
    { 0 is OBSERVE, 1-15 are messages }
    ReadTimes : ARRAY[0..MaxBases] OF
    RECORD
      D : WORD;
      M : WORD;
    END;
    {----- Additional user information -----}
    NumVisits   : WORD;      { Number of visits }
    NumPosts    : WORD;      { Number of messages sent }
    SpareW1     : WORD;      { Used to be DownloadK; init'd to 0 }
    DownloadNum : WORD;      { Number of files downloaded }
    SpareW2     : WORD;      { Used to be UploadK; init'd to 0 }
    UploadNum   : WORD;      { Number of files uploaded }
    Locked      : BOOLEAN;   { If TRUE, not eligible for deletion }
  END;

