mirror of
https://github.com/italicsjenga/gba.git
synced 2024-12-23 10:51:30 +11:00
35e9857dcc
88: crt0.s removed redundant lines, added comments r=Lokathor a=felixjones The flags of `cpsr_cf` are left untouched, so `cpsr_c` is used instead. Line 102 was redundant: ```asm bic r2, r2, #0x1F orr r2, r2, #0x1F ``` Now it explicitly switches from incoming IRQ mode to system mode. The same type of explicit switch is done for system mode to IRQ mode (only clearing bits necessary), however the IRQ mode bits are or'd also just-in-case the user has modified `cpsr_c` in their IRQ handler. The IRQ disable bit is also set, again, just in-case the user changed it. Hopefully I've managed to communicate the behaviour in the ASM comments. Co-authored-by: Felix Jones <felix@felixjones.co.uk> |
||
---|---|---|
book | ||
examples | ||
examples-bak | ||
src | ||
.gitignore | ||
.travis.yml | ||
bors.toml | ||
Cargo.toml | ||
crt0.s | ||
init.sh | ||
LICENSE-APACHE2.txt | ||
linker.ld | ||
Makefile.toml | ||
README.md | ||
rustfmt.toml | ||
thumbv4-none-agb.json | ||
todo_check.bat |
gba
Eventually there will be a full Tutorial Book that goes along with this crate. However, currently the development focus is leaning towards having minimal coverage of all the parts of the GBA. Until that's done, unfortunately the book will be in a rather messy state.
What's Missing
The following major GBA features are still missing from the crate:
- Affine Graphics
- Interrupt Handling
- Serial Communication
First Time Setup
Writing a Rust program for the GBA requires a fair amount of special setup. All of the steps are detailed for you in the Development Setup part at the start of the book.
If you've done the described global setup once before and just want to get a new project started quickly we got you covered:
curl https://raw.githubusercontent.com/rust-console/gba/master/init.sh -sSf | bash -s APP_NAME
Contribution
This crate is Apache2 licensed and any contributions you submit must also be Apache2 licensed.