Commit Graph

122 Commits

Author SHA1 Message Date
Ry
23478340d2 Use absolute mouse position instead of grabbing the cursor 2022-10-26 18:03:00 -07:00
hyenasky
072cb452e1 make writes to readonly pages cause a page fault correctly 2022-10-26 18:03:00 -07:00
hyenasky
7d383cff3c add int instruction, make cross-page accesses work 2022-10-26 18:03:00 -07:00
Ry
b06f6de79c Implement a somewhat hacky MMU 2022-10-26 18:03:00 -07:00
Ry
8f0c4e6c51 Add docs, add exception handling, rearrange some instrs 2022-10-26 18:03:00 -07:00
Ry
847e476d76 Rename key_t to keycode_t 2022-10-26 18:03:00 -07:00
Ry
29f0fb96e6 Implement keyboard, bump rom version to 0.5.1
Co-authored-by: Lua MacDougall <lua@foxgirl.dev>
2022-10-26 18:02:50 -07:00
Ry
7004b61606 Implement disk controller 2022-10-26 18:02:50 -07:00
Ry
5bfe275b29 Only delete the fox32 executable on make clean 2022-10-23 20:57:30 -07:00
Ry
2e9d1be053 Implement mouse support 2022-10-23 17:18:05 -07:00
Ry
7aeb636392 Read the correct byte for the overlay alpha channel 2022-10-23 16:51:03 -07:00
Ry
53cbc0d96c Implement overlays
Co-authored-by: Lua MacDougall <lua@foxgirl.dev>
2022-10-23 13:16:40 -07:00
Ry
979a8b2cfc Use the correct pixel format 2022-10-22 22:33:03 -07:00
Ry
0f02835148 Properly handle the MainScreen struct everywhere; update rom 2022-10-22 18:50:51 -07:00
Ry
f094b712af Some cleanup 2022-10-22 18:04:49 -07:00
Ry
5804084401 Initial commit 2022-10-22 18:00:51 -07:00
Ry
a1c97f70b2 Initial commit 2022-10-22 17:56:00 -07:00
Ry
fb9f8ccf93 Remove Rust emulator 2022-10-26 18:02:30 -07:00
Ry
675a39e813 Allow typing the * key 2022-10-16 18:52:03 -07:00
Ry
338b6fe496 Only allow one of: exception, int, or soft int to occur during a cycle 2022-10-10 18:41:18 -07:00
Ry
b496d2eb90 If popping directly to memory fails, don't change the stack pointer 2022-10-10 18:39:14 -07:00
Ry
bfc0ae96d1 Check if all addresses are writable before doing the actual writes 2022-10-10 17:26:40 -07:00
Ry
6fb6d07431 Rework the interrupt system a little bit and allow toggling debug output 2022-09-20 00:24:38 -07:00
Ry
42f26a48e7 Same as previous commit but I forgot about the write functions oops 2022-09-18 22:15:45 -07:00
Ry
5c5a8722e4 Possibly fix an issue where a 32 bit page fault would cause 4 PFs
Same for 16 bit page faults causing 2 page faults, one for each byte.
2022-09-18 22:09:29 -07:00
Ry
56e41e3915 Ensure the MMU gets re-enabled if we fail to read an interrupt vector 2022-09-18 18:22:40 -07:00
Ry
eba264db70 Add rfp register, remove debug message about intruction pointer == None 2022-09-18 16:30:52 -07:00
Ry
f7b2320138 No longer use setjmp/longjmp to ensure things are atomic 2022-09-18 16:21:35 -07:00
Ry
3aaebeaf3e Always allow exceptions to occur, regardless of interrupt flag state 2022-09-17 14:51:18 -07:00
Ry
bf48300f2f Open disks as read-write 2022-09-17 00:15:39 -07:00
Ry
9059889d3d Ensure register pointers read the requested size, not always 32 bit 2022-09-16 23:29:16 -07:00
Ry
1211d4fdcc Use a more reliable method for detecting key presses 2022-09-16 18:34:16 -07:00
Ry
4a18af8f81 Allow switching the stack pointer automatically on interrupts/exceptions 2022-09-16 17:29:58 -07:00
Ry
3ce3af511e Hack memory writes to use longjmp if a page fault occurs 2022-09-16 00:27:23 -07:00
Ry
8259e5787e Fix an issue where write faults sometimes return the *physical* address 2022-09-15 23:59:46 -07:00
Ry
d30dad4797 Potentially fix a double page fault issue under certain conditions 2022-09-15 23:41:46 -07:00
Ry
02f3d04f4f Make page faults on page boundaries return the correct address 2022-09-15 18:35:17 -07:00
Ry
b55d7deb36 Page fault on writes to unmapped physical memory 2022-09-15 17:28:56 -07:00
Ry
8be5c65c73 Fix many issues relating to paging, split page fault into 2 vectors 2022-09-15 17:17:29 -07:00
Ry
3df3a98f3c Rework the paging system a little bit, add FLP instr., bump ver to 0.5.0 2022-09-13 17:34:37 -07:00
Ry
9970a04cc9 Implement an RTC, bump version to 0.4.0 2022-09-09 16:16:09 -07:00
Ry
cea9b12661 Update outdated build instructions and ignore src/fox32.rom 2022-08-30 16:20:44 -07:00
Ry
38f81ce4e3 Move fox32.rom into the src folder 2022-08-18 23:18:27 -07:00
Ry
e630e15661 Don't fail to build if building outside of a git repo 2022-08-18 23:16:26 -07:00
Ry
7fd8d36281 Actually implement paging properly, bump version to 0.3.1
I was mixing up the virtual and physical addresses, oops
2022-08-15 19:43:28 -07:00
Ry
82edb1d8da Implement paging, bump version to 0.3.0
This works in a similar way to x86's paging, by using page directories
which point to page tables, which point to physical addresses.
2022-08-15 17:40:04 -07:00
Ry
6edcda5b18 Update screenshot 2022-08-12 19:34:41 -07:00
Ry
17b14dd72f Remove the unused f32 file type, bump version to 0.2.1 2022-08-09 23:33:00 -07:00
Ry
4b506f3e65 Add int instruction, bump version to 0.2.0 2022-08-09 02:04:46 -07:00
Ry
ad6f402179 Add 3 additional audio channels for a total of 4 2022-08-09 01:37:21 -07:00