anchor.diff:    Result := nil;
   end;
   
  +function TMainForm.DisplayTopicByResourceID(ID: word): boolean;
  +var
  +  Topic: TTopic;
  +begin
  +  Topic := FindTopicByResourceID( ID );
  +  if Topic = nil then
  +  begin
  +    Result := false;
  +    exit;
  +  end;
  +  result := true;
  +  DisplayTopic(Topic);
  +end;
  +
  +function TMainForm.DisplayTopicByName(const TopicName: string): boolean;
  +var
  +  Topic: TTopic;
  +begin
  +  Topic := FindTopicByName(TopicName);
  +  if Topic = nil then
  +  begin
  +    Result := false;
  +    exit;
  +  end;
  +  result := true;
  +  DisplayTopic(Topic);
  +end;
  +
  +function TMainForm.DisplayTopicByGlobalName(const TopicName: string): boolean;
  +begin
  +  Result := False;
  +  // TODO: implement me
  +end;
  +
  +procedure TMainForm.ViewSourceMIOnClick(Sender: TObject);
  +begin
  +  ShowText('RichView Source Text', RichView.Text);
  +End;
  +
  +
   // Add the current list of open files as
   // a Most Recently Used entry
   procedure TMainForm.AddCurrentToMRUFiles;
  
positive.code:     function    FindTopicForLink( Link: THelpLink ): TTopic;
      function    FindTopicByResourceID( ID: word ): TTopic;
      function    FindTopicByName(const AName: string): TTopic;
      procedure   ViewSourceMIOnClick(Sender: TObject);
      procedure   AddCurrentToMRUFiles;
      procedure   CreateMRUMenuItems;
  
negative.code:   Debug := not Debug;
    miDebugHexInfo.Checked := Debug;
    DisplayTopic(nil);
  end;
  
  procedure TMainForm.miToolsFindByResourceID(Sender: TObject);
  var
    ResourceIDString: string;
    ResourceID: word;
  begin
    if not fpgInputQuery('Find Resource ID', 'Enter the resource ID to find', ResourceIDString) then
      exit;
    try
      ResourceID := StrToInt(ResourceIDString);
    except
      TfpgMessageDialog.Critical('Find Resource ID', 'Invalid resource ID entered');
      exit;
    end;
  
    if not DisplayTopicByResourceID( ResourceID ) then
      TfpgMessageDialog.Critical('Find Resource ID', 'Resource ID not found');
  end;
  
  procedure TMainForm.miToolsFindTopifByName(Sender: TObject);
  var
    TopicNameString: string;
  Begin
    if not fpgInputQuery( 'Find Topic By Name',
                         'Enter the topic name to search for',
                         TopicNameString ) then
      exit;
  
    if not DisplayTopicByName( TopicNameString ) then
      if not DisplayTopicByGlobalName( TopicNameString ) then
        TfpgMessageDialog.Critical( 'Find Topic By Name', 'Topic name not found' );
  end;
  
  procedure TMainForm.miFileSaveTopicAsIPF(Sender: TObject);
  