Commit Graph

52 Commits

Author SHA1 Message Date
Lucia Ceionia
6142b085cd lots of in progress stuff 2024-01-07 22:33:27 -06:00
Lucia Ceionia
5fa8e0efa3 add emulator demo 2023-10-29 19:37:03 -05:00
Lucia Ceionia
e688617286 Support for multiple volumes, filesystem detection (currently FAT) 2023-02-17 06:21:43 -06:00
Lucia Ceionia
d0a5eb4c6f Usermode now loads at 0x800000, Virtual 8086 loads consistent DS&ES for data access 2023-02-17 01:41:30 -06:00
Lucia Ceionia
5fe565b6f7 Filesystem now uses an abstract representation 2023-02-14 23:48:11 -06:00
Lucia Ceionia
1b2184fe52 Kernel now is loaded from a partition, allowing a separate MBR bootloader if desired 2023-02-13 18:23:33 -06:00
Lucia Ceionia
e9c4e993f4 Lots of little things, Changed test output, Usermode test build 2023-02-12 00:42:14 -06:00
Lucia Ceionia
36e66600f5 Can view large count directories, Names trimmed in viewers 2023-02-10 22:17:03 -06:00
Lucia Ceionia
0953fe31ec Improved Linker script & Makefile 2023-02-10 19:20:17 -06:00
Lucia Ceionia
cec3b93c83 File Selector uses a very simple double buffer 2023-02-10 04:45:47 -06:00
Lucia Ceionia
168816cb1e More fun color :3 2023-02-10 04:24:29 -06:00
Lucia Ceionia
1ac79d005b Can return from fun recovery :3 2023-02-10 03:57:44 -06:00
Lucia Ceionia
8c5247c317 Hex editor has separate BSS, Converted some consts to defines 2023-02-10 03:42:53 -06:00
Lucia Ceionia
d1024d7793 Disk does very basic read caching 2023-02-10 01:06:42 -06:00
Lucia Ceionia
89c0f95219 Hex viewer is now a hex editor! 2023-02-09 23:32:51 -06:00
Lucia Ceionia
094e278212 Moved INT 13H disk operations outside DOSFS driver 2023-02-09 13:19:50 -06:00
Lucia Ceionia
c7b69675bb Can navigate directories 2023-02-08 12:48:01 -06:00
Lucia Ceionia
7799813a30 Check for CMOV support on boot 2023-02-08 11:38:35 -06:00
Lucia Ceionia
6a4c1908bb Preliminary support for CHS disks. 2023-02-08 10:33:49 -06:00
Lucia Ceionia
d1f1bfa974 Program loader sets text mode on exit. 2023-02-08 03:41:13 -06:00
Lucia Ceionia
de2edf1404 Improved fault handling 2023-02-07 23:53:13 -06:00
Lucia Ceionia
7f0a94352d Added example disk, Made some minor changes to error output 2023-02-07 18:52:17 -06:00
Lucia Ceionia
0e3ae9c4e3 Can create usermode children, Can load programs from disk 2023-02-06 05:49:03 -06:00
Lucia Ceionia
6e66cb9bbe Can pass args to child via varargs 2023-02-06 03:55:13 -06:00
Lucia Ceionia
5729c6c893 Can spawn a child task in C, Fault handler can return to previous 2023-02-06 03:07:15 -06:00
Lucia Ceionia
b41d65bfce Lots of general cleanup, Call to specified V86 int (from Kernel and Usermode) 2023-02-06 02:27:33 -06:00
Lucia Ceionia
d63430bb4d Bootloader can load more from disk, Text file viewer added 2023-02-06 00:01:48 -06:00
Lucia Ceionia
d0fbc7df56 Added enum for scancodes, More control in hex viewer, hex viewer can switch between 25/50 lines 2023-02-05 19:57:06 -06:00
Lucia Ceionia
7107c0ef8b Fixed the hex viewer formatting lol 2023-02-04 20:09:42 -06:00
Lucia Ceionia
ddadeed70c Added a hex viewer, Fixed a bug in dosfs 2023-02-04 18:51:09 -06:00
Lucia Ceionia
964cbcd68d Added a file selection screen (that does nothing), Moved tests to their own file, Fixed a race condition with the keyboard handler 2023-02-02 21:40:39 -06:00
Lucia Ceionia
2114741766 Might? have fixed one race condition bug. Still crashing for unknown reasons on my laptop rarely 2023-02-02 18:15:14 -06:00
Lucia Ceionia
750b1edc16 Register arguments can be passed to v86 code 2023-02-02 14:52:26 -06:00
Lucia Ceionia
7937de6ef0 Added fun fault recovery :3 (I think I spotted a race condition in exception handling during testing, but whatever, that can wait) 2023-02-02 01:44:35 -06:00
Lucia Ceionia
ce771b19bb Fixed small mistake in last commit 2023-02-02 01:34:49 -06:00
Lucia Ceionia
02f03d2224 Usermode can now call system functions (currently get key, gfx mode) with INT 21H, Test switch to graphics mode is done from Usermode 2023-02-02 00:50:16 -06:00
Lucia Ceionia
679eb8cf57 More advanced Fault handling (recovers to text mode), Keyboard handler converted to C and improved (shifting, simple get_key added) 2023-02-01 20:42:05 -06:00
Lucia Ceionia
0faa2eb553 Adds more fault 'hanlders', Sets A20 for some hardware, Fixes some other minor stuff 2023-02-01 14:18:27 -06:00
Lucia Ceionia
afaf5e1a03 Implemented Paging! Moved Kernel to 0x100000, Moved TSS above 1M, Moved V86 to 0x8000, Moved Usermode test to 0x400000, Moved lots of things! 2023-01-31 21:26:43 -06:00
Lucia Ceionia
43e902e83c Fixed disk handling 2023-01-04 19:36:29 -06:00
Lucia Ceionia
9aa56cdce2 Actually read the dir 2022-09-22 10:08:56 -05:00
Lucia Ceionia
9216b3359a Fixed some Task stuff, added DOSFS filesystem 2022-09-21 17:14:11 -05:00
Lucia Ceionia
6ebee28032 Fixed problem loading null segs on real hardware 2022-09-20 13:13:42 -05:00
Lucia Ceionia
8c309c6d9f Added kernel disk reading test 2022-09-19 19:46:26 -05:00
Lucia Ceionia
606fc37e37 'Better' task management, needs more testing 2022-09-19 16:06:01 -05:00
Lucia Ceionia
c80a420da0 Usermode can return to caller, ret value in EAX. 2022-09-18 00:30:24 -05:00
Lucia Ceionia
1545a9a790 V86 returns to caller 2022-09-17 16:31:41 -05:00
Lucia Ceionia
8bfcd4fd19 GPT handler detects V86 mode; Interrupt printing fixes 2022-09-16 17:07:27 -05:00
Lucia Ceionia
192d4f04ed Fixed & Improved Makefile, Made V86 GPF handler not directly dereference
a null pointer - due to optimization breaking.
2022-09-16 15:50:58 -05:00
Lucia Ceionia
880118e7b4 Refactored into multiple files 2022-09-14 21:54:59 -05:00