239 Commits

Author SHA1 Message Date
00194d55d1 Worked on .PAK implementation.
Started work on `.TIM` implementation.
2021-01-20 05:05:39 +00:00
4c07bbe4c4 Moved .DRV filesystem to top-level in dcb-io.
Started work on parsing `.PAK` files.
2021-01-20 02:14:33 +00:00
6f436271e2 Started on documentation for dcb_iso9660::fs. 2021-01-19 19:18:49 +00:00
3335397328 Started updating docs for dcb-iso9660::cdrom.
Started implementation on error detection.
2021-01-19 16:06:01 +00:00
2408cece65 Revised dcb::card::Table. 2021-01-18 22:26:00 +00:00
0ebd141373 Implemented the custom filesystem. 2021-01-18 21:38:06 +00:00
e14897ea52 Fixed some documentation issues.
Started work on making `dcb-io` the custom filesystem.
2021-01-18 17:02:12 +00:00
2332a585af Mostly finished the reading part for dcb-iso9660. 2021-01-18 16:51:35 +00:00
733879ee82 Filesystem now stores the primary volume descriptor. 2021-01-18 15:39:40 +00:00
c15ab13007 Moved most of the ISO 9660 implementation from dcb-io to dcb-iso9660.
Cleaned up the implementation of `dcb-iso9660` a bit.
2021-01-18 15:15:32 +00:00
cd6a5a8491 Updated documentation on dcb-iso9660. 2021-01-18 14:50:55 +00:00
af3da1708f Fixed array_split(_mut)? requiring arrayref. 2021-01-18 14:44:36 +00:00
087b2ebe87 Started work on separating the iso 9660 filesystem from dcb-io, to leave it just for the custom filesystem. 2021-01-18 14:28:12 +00:00
f80606ec71 Changed Filesystem to just carry the root dir entry. 2021-01-18 14:06:44 +00:00
a462d4c87d Fixed string's formatting impls being recursive.
Added special cases for `FileAlphabet`.
2021-01-17 21:34:51 +00:00
b0921aa93c Removed ByteArray::SIZE.
Added several filesystem entities.
Revised alphabet strings.
2021-01-17 21:26:21 +00:00
8b650c5aad Removed old dcb-io implementation and started on new one based on the filesystem. 2021-01-17 18:14:32 +00:00
2a1ed4c1eb Started documentation on filesystem. 2021-01-16 21:54:36 +00:00
0924f1084b Function and data instrutions are now prefixed by tabs. 2021-01-16 17:33:16 +00:00
7e9dec9659 DataNode is now public.
Revised `node::InsertError`.
Logging to file is now from `Debug` on up.
2021-01-16 17:22:09 +00:00
62ab28982b Fixed some wrong data in known_data. 2021-01-16 16:51:47 +00:00
831dc61597 Data is now classified on whether it was found heuristically or known. 2021-01-16 16:31:01 +00:00
87bdcbaf19 Fixed some data being at wrong addresses. 2021-01-16 16:10:55 +00:00
9e95b1b87d Removed depency for anyhow in dcb-exe.
Added `dcb_util::fmt_err`.
2021-01-16 16:06:18 +00:00
e57d32e352 Added new cli option, print-data-table, and fixed long ones. 2021-01-16 15:47:47 +00:00
eff64e3f6e Revised documentation and implementation of DataTable.
Added `Display` for `DataTable`.
2021-01-16 15:38:19 +00:00
77a811cafd Moved DataTable::get_known to exe::get_known_data_table. 2021-01-16 15:00:23 +00:00
46d634fb25 DataTable::extend now ignores duplicates. 2021-01-15 20:19:27 +00:00
01a8d2a96a Added command line argument to decompiler to print instruction positions and the header. 2021-01-15 15:42:11 +00:00
72986f9ced Added all found A, B and C functions. 2021-01-15 00:00:46 +00:00
ab7a0903c3 Functions and data now have # prefixes and suffixes.
Function labels cannot be equal to it's starting position now.
2021-01-14 22:48:03 +00:00
cc91e5a88e Removed unneeded #[allow(...)]. 2021-01-14 21:06:54 +00:00
c82ce251a1 Removed manual serde impl of Pos. 2021-01-14 21:03:50 +00:00
92995bc62e Added new Marker type. 2021-01-14 16:46:05 +00:00
f56ef6b136 Made Data fully immutable and removed it's *Eq impl.
Moved `DataTable::search_instruction` to `Data`.
Completely revised `DataTable`'s implementation.
Fixed duplicate and mis-typed data in `known_data`.
2021-01-14 16:22:07 +00:00
34c1f7eff9 Removed Deref impl for DataTable. 2021-01-13 23:58:23 +00:00
bbfe541a6d Fixed {Data, Func}Table::get_*.
`Directive` now implements `InstTargetFmt`.
2021-01-13 23:09:25 +00:00
930696eaec Made same changes last commit did in DataTable to FunTable. 2021-01-13 22:38:27 +00:00
25c32f977c Function table heuristics now take the known data table for filtering.
`Directive::decode_with_data` now returns a `Result`.
Fixed `DataType` not rounding strings to the next word.
`Data` now sorts by smallest first in case positions are equal.
Fixed `get_containing` in `DataTable` and added `get_starting_at`.
2021-01-13 22:33:10 +00:00
cba889642a Inst::decode now returns a Result.
Added `Diretive::decode_with_data`.
2021-01-13 21:01:07 +00:00
ffd74f60ac Added some documentation to both instruction iterators. 2021-01-12 17:28:57 +00:00
29643a72db Removed custom implementation of DataType.
Removed `DataType::AsciiChar` and added `DataType::AsciiStr`.
`inst::Inst::decode` now takes a data and func table.
2021-01-12 15:19:07 +00:00
fcd376c9a5 Both tables now get the instruction range to limit their search. 2021-01-12 03:43:46 +00:00
5390df6d72 Exe can now be sliced by a position range. 2021-01-12 03:32:05 +00:00
d9bc90882b Executable size and start positions are now dynamic.
Function labels are no longer printed at the start.
2021-01-12 03:20:13 +00:00
c443402400 Now parsing known tables before building parser. 2021-01-12 03:06:49 +00:00
8f2898f9a7 Added obtaining labels from other functions for targets. 2021-01-12 03:05:42 +00:00
83db95939a pseudo::{load, store} now implement InstTarget and InstTagetFmt. 2021-01-12 02:40:15 +00:00
12f2abc638 Relaxed requirements of implementing InstTargetFmt to allow semi-targetable instructions.
`pseudo::load_imm` now implements `InstTargetFmt`.
2021-01-12 02:35:39 +00:00
dbfdc01a2e basic::jmp now implements InstTargetFmt. 2021-01-12 02:28:22 +00:00