read disk works

This commit is contained in:
Baptiste 2023-03-22 15:33:33 +01:00
parent 2413d4dec6
commit 12c28f7681
3 changed files with 10 additions and 7 deletions

BIN
disk_file

Binary file not shown.

View File

@ -52,7 +52,7 @@ mod test {
} }
#[test] #[test]
fn test_read_write_disk() { fn test_read_write_drv_disk() {
let disk = Disk::init_disk(); let disk = Disk::init_disk();
let mut drv_disk = DrvDisk::init_drv_disk(disk); let mut drv_disk = DrvDisk::init_drv_disk(disk);

View File

@ -9,7 +9,7 @@ pub const SECTORS_PER_TRACK: i32 = 32;
pub const NUM_TRACKS: i32 = 64; pub const NUM_TRACKS: i32 = 64;
pub const NUM_SECTORS: i32 = SECTORS_PER_TRACK * NUM_TRACKS; pub const NUM_SECTORS: i32 = SECTORS_PER_TRACK * NUM_TRACKS;
pub const SECTOR_SIZE: i32 = 4;//4 octects ? pub const SECTOR_SIZE: i32 = 4;//4 octects ?
pub const DISK_PATH: &str = "disk_file";
pub const MAGIC_NUMBER : u32 = 0xABBACDDC; pub const MAGIC_NUMBER : u32 = 0xABBACDDC;
//taille en octets, a confirmer //taille en octets, a confirmer
@ -33,27 +33,30 @@ impl Disk {
let result_open = File::options(). let result_open = File::options().
read(true). read(true).
write(true). write(true).
open("disk_file"); open(DISK_PATH);
match result_open { match result_open {
Err(e) => { Err(e) => {
//On creer le fichier et on y écrit le magic number //On creer le fichier et on y écrit le magic number
let magic_to_write : [u8 ; 5] = [0xAB, 0xBA, 0xCD, 0xDC, 0]; let magic_to_write : [u8 ; 4] = [0xAB, 0xBA, 0xCD, 0xDC];
println!("Error opening file : {}", e); println!("Error opening file : {}", e);
disk_file = File::options(). disk_file = File::options().
read(true). read(true).
write(true). write(true).
create_new(true). create_new(true).
open("disk_file").unwrap(); open(DISK_PATH).unwrap();
disk_file.write_at(&magic_to_write[..], 0); disk_file.write_at(&magic_to_write[..], 0);
} }
Ok(f) => { Ok(f) => {
disk_file = f; disk_file = f;
let magic_to_write : [u8 ; 5] = [0xAB, 0xBA, 0xCD, 0xDC, 0];
disk_file.write_at(&magic_to_write[..], 0);
} }
} }
match disk_file.read_at(&mut magic_buff[..], 0) { match disk_file.read_at(&mut magic_buff[..], 0) {
@ -105,7 +108,7 @@ impl Disk {
} }
disk.active = true; disk.active = true;
let mut f = File::open("test/disk.txt")?; let mut f = File::open(DISK_PATH)?;
f.seek(SeekFrom::Start((sector_number * SECTOR_SIZE) as u64))?; f.seek(SeekFrom::Start((sector_number * SECTOR_SIZE) as u64))?;
let mut buffer = [0; SECTOR_SIZE as usize]; let mut buffer = [0; SECTOR_SIZE as usize];
f.read(&mut buffer)?; f.read(&mut buffer)?;
@ -138,7 +141,7 @@ impl Disk {
} }
disk.active = true; disk.active = true;
let mut f = File::create("test/disk.txt")?; let mut f = File::create(DISK_PATH)?;
f.seek(SeekFrom::Start((sector_number * SECTOR_SIZE) as u64))?; f.seek(SeekFrom::Start((sector_number * SECTOR_SIZE) as u64))?;
let mut i = 0; let mut i = 0;
let mut buff = Vec::new(); let mut buff = Vec::new();