$:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__))) $:.unshift(File.dirname(__FILE__+"\\..")) unless $:.include?(File.dirname(__FILE__+"\\..")) || $:.include?(File.expand_path(File.dirname(__FILE__+"\\.."))) require 'FileSystem' # # class CbmDos file_system_image.end_track do directory_sector=file_system_image.get_sector(dir_track_no,dir_sector_no) dir_track_no=directory_sector[0] dir_sector_no=directory_sector[1] 0.upto(7) do |entry_number| directory_entry=directory_sector[DIRECTORY_ENTRY_SIZE*entry_number,DIRECTORY_ENTRY_SIZE] file_name=C64.s_to_ascii(directory_entry[0x05..0x14]).strip file_type=FILE_TYPES[directory_entry[0x02]%8] file_track_no=directory_entry[0x03] file_sector_no=directory_entry[0x04] file_contents="" until file_track_no==0 || file_track_no> file_system_image.end_track do file_sector=file_system_image.get_sector(file_track_no,file_sector_no) break if file_sector.nil? file_track_no=file_sector[0] file_sector_no=file_sector[1] file_contents+=file_sector[2..255] end files<