Commit Graph

103 Commits

Author SHA1 Message Date
nullndvoid 458661b02a misc: add 'profiling' profile. 2025-06-29 04:11:41 +01:00
nullndvoid c41e5328e6 docs: fix failing doctest 2025-06-29 02:21:31 +01:00
zxq5 67ebf48d6f removed old log file 2025-06-29 02:08:06 +01:00
zxq5 98668c681e more optimisations test program ~54MIPS -> ~110MIPS 2025-06-29 02:04:14 +01:00
zxq5 05a25447b2 minor optimisation to reduce unnecessary allocations 2025-06-28 03:43:20 +01:00
zxq5 56d2abe17f - optimised main emulator loop, allowing updates only once every roughly 32,000 instructions.
- optimised memory access patterns, removing unecessary mutability and accesses.
- replaced the standard HashMap with an implementation that uses a faster hashing algorithm.

results:

before:
    - our benchmark program with ~4m instructions would take around for their data to make it to the UI, and a bit over 200ms to actually run

after:
    - our benchmark program with ~4m instructions can run in around 75ms, and the UI receives the update almost instantly.

conclusion:
- emulator performance should be around 2-3x faster than before.
2025-06-28 03:21:46 +01:00
zxq5 eaaefd1b07 added rule to .gitignore 2025-06-27 18:31:52 +01:00
zxq5 5302ad3876 removed junk files 2025-06-27 18:30:53 +01:00
zxq5 2280f1e5d9 updated vscode settings 2025-06-27 18:30:26 +01:00
zxq5 ae92510fb8 dsa lib bugfixes 2025-06-26 20:53:51 +01:00
zxq5 7c63340888 minor changes to assembler 2025-06-26 20:53:22 +01:00
zxq5 e9f04824ea updates to dsa libs 2025-06-26 00:51:20 +01:00
zxq5 620584488b fixed unit tests & misc changes to workspace config 2025-06-26 00:50:58 +01:00
zxq5 1101331f70 fixed a couple of emulator bugs, including fixing shift instructions. finished implementing lib/io/print/print_hex_byte and print_hex_word 2025-06-25 16:31:42 +01:00
zxq5 c171b0db89 worked on print.dsa and maths/core.dsa 2025-06-25 00:40:31 +01:00
zxq5 82b99c127c finished initial interrupts implementation 2025-06-25 00:13:55 +01:00
nullndvoid 92c4660a4d misc: get rid of some errors from Cargo lol 2025-06-24 21:55:11 +01:00
zxq5 2a6991fe4a idk, i refactored some stuff ig 2025-06-24 19:34:45 +01:00
zxq5 0fdd28aad1 finished the interpreter 2025-06-24 19:31:55 +01:00
zxq5 f639240b6c progress on debugging bf.dsa 2025-06-24 18:07:33 +01:00
zxq5 d2c1492dca added step(n) feature to emulator, allowing for stepping n instructions at a time 2025-06-24 18:07:11 +01:00
zxq5 4ef8bbdf46 updated dependencies 2025-06-24 18:06:29 +01:00
zxq5 76197fac8f finished refactor of emulator - started on loader (needs significant changes before functional in the way that I would like) 2025-06-23 23:45:47 +01:00
zxq5 bc5ddef311 added error handling to emulator 2025-06-23 21:28:38 +01:00
nullndvoid ed479ac146 assembler: purge unwrap and use more AssembleErrors 2025-06-23 19:39:49 +01:00
nullndvoid f432fe7665 misc: clippy lint fixes 2025-06-23 18:23:01 +01:00
nullndvoid 083628ec7e emulator: builds still don't actually work, will look into ELF stuff 2025-06-23 18:13:08 +01:00
zxq5 ddd0c27893 found a cause of a memory bug in emulator - fix is TODO (#6) - continued working on brainf interpreter. we really need better debugging tools tbh. 2025-06-23 00:31:09 +01:00
zxq5 b8091222a4 working on bf.dsa (brainf##k interpreter) cos fun 2025-06-22 16:14:51 +01:00
zxq5 6ea3a76d74 fixed some bugs with file picker & loading different file types - will start working on brainf##k interpreter tomorrow because a compiler isn't enough. 2025-06-22 05:19:55 +01:00
zxq5 2b777f55c7 Merge remote-tracking branch 'refs/remotes/origin/main' 2025-06-22 03:54:44 +01:00
zxq5 808b51ff5f updated emulator to support importing .dsb binaries 2025-06-22 03:52:11 +01:00
zxq5 7892c44d89 updated print with new functions 2025-06-22 03:51:39 +01:00
zxq5 9c56258c48 assembler changes & brainf##k compiler lmao 2025-06-22 03:51:16 +01:00
nullndvoid c7322d8171 emulator on android: crashes but APKs are building 2025-06-22 03:46:42 +01:00
nullndvoid a878483923 emulator: fix build errors in main.rs 2025-06-22 02:21:08 +01:00
nullndvoid b97dcd5692 emulator: start supporting Android, this is WIP
Needs storage permissions, probably extra tweaks
2025-06-22 02:13:06 +01:00
nullndvoid 83259b9217 emulator: use egui file pickers rather than native ones
TODO: Add file types when picking? This is a regression
2025-06-22 02:12:26 +01:00
nullndvoid bbf893290f misc: more clippy fixes, **switched to stable**
The switch was due to rust-analyzer bug on latest nightly, please use stable until [this bug](https://github.com/rust-lang/rust-analyzer/issues/20051) is fixed
2025-06-22 00:42:44 +01:00
nullndvoid 1907bbb200 misc: clippy fixes 2025-06-22 00:30:27 +01:00
nullndvoid 22a8785083 emulator: cut down on cfg directives 2025-06-22 00:03:48 +01:00
zxq5 528ceddade refactor & fixed assembler path handling 2025-06-21 04:05:22 +01:00
zxq5 42c26d4184 added a create-project system to assembler, and fixed a couple of parsing bugs 2025-06-20 03:25:28 +01:00
zxq5 f791b05292 idk what changes i made 2025-06-19 23:30:32 +01:00
zxq5 52e2306fca refactoring assembler 2025-06-19 23:28:53 +01:00
zxq5 5c83b49328 fixed some clippy warns 2025-06-19 18:50:57 +01:00
nullndvoid a48dfee777 misc: revert "purged .unwrap()"
Harry is an idiot @zxq5 is also an idiot

This reverts commit d4e538a2b3.
2025-06-19 17:01:04 +01:00
zxq5 d4e538a2b3 purged .unwrap() 2025-06-19 16:57:43 +01:00
nullndvoid 78512d95e9 tests: update to reflect new argument ordering 2025-06-19 16:46:07 +01:00
nullndvoid 6f834025ed emulator: imports work relatively to file being assembled (set cwd) 2025-06-19 16:35:00 +01:00