def NADOLDos.files(file_system_image)
files=FileContainer.new
track=0
sector=3
while (sector<=9) do
sector_data=file_system_image.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=""
ts_list_track_no=file_descriptive_entry[0x0E]
ts_list_sector_no=file_descriptive_entry[0x0F]
ts_list_sector=file_system_image.get_sector(ts_list_track_no,ts_list_sector_no)
for entry_number in 0..0x7f
data_track_no=ts_list_sector[entry_number*2]
data_sector_no=ts_list_sector[entry_number*2+1]
if( (data_track_no!=0 || data_sector_no!=0) && data_sector_no<=0x0f) then
contents<<file_system_image.get_sector(data_track_no,data_sector_no)
end
end
contents=contents[0,file_size]
files<<NativeFileType.best_fit(file_system_image,filename,contents)
end
end
end
sector+=1
end
files
end