diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2024-01-31 07:38:50 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2024-01-31 07:39:07 +1300 |
commit | 28101de56231252ca0cfa6a9f107b75112c9acad (patch) | |
tree | f5c82a6894562bfb8ed8ab94e9345cefaa6fb96b /src/devices.rs | |
parent | 30d2f099c9edf4f59fbbdd6686988ae7b0622ba2 (diff) | |
download | bedrock-pc-28101de56231252ca0cfa6a9f107b75112c9acad.zip |
Implement new file device interface
This is a complete redesign of the file device. The most notable
addition is the ability to ascend and descend the file tree.
Diffstat (limited to 'src/devices.rs')
-rw-r--r-- | src/devices.rs | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/src/devices.rs b/src/devices.rs index 5b274c9..e1a00f7 100644 --- a/src/devices.rs +++ b/src/devices.rs @@ -182,22 +182,22 @@ impl DeviceBus for StandardDevices { // Stream // File - 0xA0 => read_b!(self.file.file.is_some()), - 0xA1 => read_b!(self.file.operation_state), - 0xA2 => no_read!(), - 0xA3 => no_read!(), - 0xA4 => read_hh!(self.file.pointer), - 0xA5 => read_hl!(self.file.pointer), - 0xA6 => read_lh!(self.file.pointer), - 0xA7 => read_ll!(self.file.pointer), - 0xA8 => self.file.read(), - 0xA9 => self.file.read(), - 0xAA => no_read!(), - 0xAB => no_read!(), - 0xAC => read_hh!(self.file.file_size), - 0xAD => read_hl!(self.file.file_size), - 0xAE => read_lh!(self.file.file_size), - 0xAF => read_ll!(self.file.file_size), + 0xA0 => read_b!(self.file.entry.is_some()), + 0xA1 => read_b!(self.file.move_success), + 0xA2 => self.file.name_buffer.read_byte(), + 0xA3 => read_b!(self.file.entry_type()), + 0xA4 => self.file.read_byte(), + 0xA5 => self.file.read_byte(), + 0xA6 => self.file.read_child_name(), + 0xA7 => read_b!(self.file.child_type()), + 0xA8 => read_hh!(self.file.pointer()), + 0xA9 => read_hl!(self.file.pointer()), + 0xAA => read_lh!(self.file.pointer()), + 0xAB => read_ll!(self.file.pointer()), + 0xAC => read_hh!(self.file.length()), + 0xAD => read_hl!(self.file.length()), + 0xAE => read_lh!(self.file.length()), + 0xAF => read_ll!(self.file.length()), _ => unimplemented!("Reading from device port 0x{port:02x}"), } @@ -310,22 +310,22 @@ impl DeviceBus for StandardDevices { 0x8E => no_write!(), 0x8F => no_write!(), // File - 0xA0 => self.file.push_name_byte(val), - 0xA1 => no_write!(), - 0xA2 => no_write!(), - 0xA3 => no_write!(), - 0xA4 => write_hh!(self.file.pointer), - 0xA5 => write_hl!(self.file.pointer), - 0xA6 => write_lh!(self.file.pointer), - 0xA7 => write_ll!(self.file.pointer), - 0xA8 => no_write!(), - 0xA9 => no_write!(), - 0xAA => no_write!(), - 0xAB => no_write!(), - 0xAC => write_hh!(self.file.file_size), - 0xAD => write_hl!(self.file.file_size), - 0xAE => write_lh!(self.file.file_size), - 0xAF => { write_ll!(self.file.file_size); self.file.set_file_size() }, + 0xA0 => self.file.write_to_open_port(val), + 0xA1 => self.file.write_to_move_port(val), + 0xA2 => self.file.set_name_pointer(val), + 0xA3 => self.file.ascend_to_parent(), + 0xA4 => self.file.write_byte(val), + 0xA5 => self.file.write_byte(val), + 0xA6 => self.file.set_child_name_pointer(val), + 0xA7 => self.file.descend_to_child(), + 0xA8 => write_hh!(self.file.new_pointer), + 0xA9 => write_hl!(self.file.new_pointer), + 0xAA => write_lh!(self.file.new_pointer), + 0xAB => { write_ll!(self.file.new_pointer); self.file.commit_pointer() }, + 0xAC => write_hh!(self.file.new_length), + 0xAD => write_hl!(self.file.new_length), + 0xAE => write_lh!(self.file.new_length), + 0xAF => { write_ll!(self.file.new_length); self.file.commit_length() }, // Bytestreams 0x96 => self.stream.write_stdout(val), |