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
filename=""
file_descriptive_entry[0..11].to_s.each_byte{|b| filename+=(b.%128).chr}
filename.sub!(/ *$/,"")
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