# File lib/NADOLDisk.rb, line 199
        def read_catalog
    @files={}
    track=0
    sector=3
    while (sector<=9) do
      sector_data=get_sector(track,sector)
      (0..15).each do |slot_no|
        slot_offset=slot_no*0x10
        file_descriptive_entry=sector_data[slot_offset..slot_offset+0x10]
        if (file_descriptive_entry[0]!=0xFF && file_descriptive_entry[0]!=0x00) then # skip deleted /empty files
          filename=""
          file_descriptive_entry[0..11].to_s.each_byte{|b| filename+=(b.%128).chr} #strip off high bit
          filename.sub!(/ *$/,"") #strip off trailing spaces
          file_size=file_descriptive_entry[0x0D]*256+file_descriptive_entry[0x0C]
          if (file_size>0) then
            contents="" 
            get_track_sector_list(file_descriptive_entry[0x0E],file_descriptive_entry[0x0F]).each do |ts|
              contents<<get_sector(ts.track_no,ts.sector_no)
            end
            contents=contents[0..file_size-1]
            if (NADOLTokenisedFile.can_be_nadol_tokenised_file?(contents)) then
              @files[filename]= NADOLTokenisedFile.new(filename,contents)
            else
              @files[filename]= NADOLBinaryFile.new(filename,contents)
            end
          end
        end
      end
    sector+=1
    end
  end