Commit Graph

56 Commits

Author SHA1 Message Date
Ry
2ed47446a0 kernel/task: Add save_state_and_yield_task 2023-02-07 16:27:23 -08:00
Ry
b919faaeb4 kernel/window: Update outdated comment 2023-02-06 23:57:50 -08:00
Ry
2688e8082d kernel/task: Add comment saying registers are not saved across yields 2023-02-02 16:21:29 -08:00
jn
ffdda5eaca Make use of data.strz
The filesystem image is the same before and after this commit:

$ sha256sum fox32os-orig.img fox32os.img
abc77bd6310b8eb6bcde0a8a442ca8bab071307a6cf5155ea606578435f77d27  fox32os-orig.img
abc77bd6310b8eb6bcde0a8a442ca8bab071307a6cf5155ea606578435f77d27  fox32os.img


The conversion was performed with a few sed commands:

find -name '*.asm' | xargs sed -i -e 's/data.str \("[^"]*"\) data.8 0$/data.strz \1/g'
find -name '*.asm' | xargs sed -i -e 's/data.str \("[^"]*"\) data.8 0 /data.strz \1 /g'
find -name '*.asm' | xargs sed -i -e 's/data.str \("[^"]*"\) data.8 0x00 /data.strz \1 /g'
2023-02-02 03:03:07 +01:00
Ry
5708227a61 kernel/main: Detect if disk 1 is a valid FXF binary before running it 2023-02-01 15:43:21 -08:00
jn
8fe903a9ff kernel/vfs: Don't ignore buffer length in read(stream) 2023-02-02 00:00:37 +01:00
jn
73eee3e599 kernel/vfs: Don't ignore buffer length in write(stream) 2023-02-02 00:00:37 +01:00
jn
205e00dc08 Add file type check to parse_fxf_binary 2023-02-01 20:07:09 +01:00
Ry
75a10ffdc3 kernel: Show an error if running on top of an existing kernel 2023-01-25 18:13:45 -08:00
Ry
0c3a0afc5f kernel: Make get_active_window_struct return 0 if no active window 2023-01-24 17:18:12 -08:00
Ry
cba8b52677 kernel: Add get_active_window_struct 2023-01-24 17:10:48 -08:00
Ry
70cecc8667 kernel: Always show the menu bar, even if the active window has none 2023-01-24 17:09:34 -08:00
Ry
2a4b5bef9b kernel: Implement basic messageboxes 2023-01-22 13:47:55 -08:00
Ry
9e256a7e3c sh: Move to an application outside of the kernel
Fixes issue #3
2023-01-21 00:17:10 -08:00
Ry
c043316fa1 Implement RYFS write support in the VFS 2023-01-20 18:53:16 -08:00
Ry
e577446e55 Don't attempt to relocate if none are required
Fixes issue #4
2023-01-20 18:25:15 -08:00
Ry
d072478152 New bottom bar style 2022-12-29 12:02:03 -08:00
Ry
1e6e925d08 kernel: Don't crash when all windows are closed 2022-12-28 00:05:15 -08:00
Ry
8ac2d2c0d4 kernel: Add a very basic GUI widget system 2022-12-27 18:01:55 -08:00
Ry
3eff04b8a2 shell: Update disk command 2022-12-26 18:26:27 -08:00
Ry
455a909255 kernel: Fix clicking menu item when different window is directly under 2022-12-25 14:51:36 -08:00
Ry
fddfd78829 kernel: Make sure the event manager task starts when running disk 1 2022-12-25 13:54:45 -08:00
Ry
3b813afa72 kernel: Window manager now manages the menu bar per-window 2022-12-24 22:51:43 -08:00
Ry
b71d10ab63 kernel: Ensure new_window doesn't clobber r0 2022-12-24 01:29:00 -08:00
Ry
a68e584c82 kernel: A more complete window manager implementation
It's currently pretty buggy, but at least it's better than what we
had before :P
2022-12-23 22:26:16 -08:00
Ry
c6919d4168 shell: Add clear command 2022-11-25 17:21:28 -08:00
Ry
c321e54cfb shell: Redraw the line when needed 2022-11-25 17:20:57 -08:00
Ry
399ad8c7bb shell: Use hex const for the cursor 2022-11-21 21:32:06 -08:00
Ry
250da95d76 Initialize the memory allocator with a correct bottom of memory 2022-10-27 23:08:18 -07:00
Ry
a7064075e7 Build the kernel as an FXF binary and boot using the new boot mechanism 2022-10-27 22:49:55 -07:00
Ry
cc40cce81b shell: Prefix an FXF binary with * to not suspend the shell 2022-10-16 18:47:11 -07:00
Ry
06798d3be2 Increase shell input buffer size to 512 characters
Because reasons.
2022-10-14 17:15:24 -07:00
Ry
3cd4341986 Add shell task and terminal application 2022-10-14 16:53:41 -07:00
Ry
75eb29613b Implement a basic VFS layer with "streams" 2022-10-14 16:39:40 -07:00
Ry
453e7f0e65 Make window titles semi-transparent 2022-10-05 21:02:56 -07:00
Ry
9512c40747 Prevent windows from being moved off-screen 2022-10-05 17:18:14 -07:00
Ry
89ee1342fe Start working on a very basic window manager 2022-10-05 16:15:36 -07:00
Ry
ee2103eda5 Allow starting multiple FXF binaries at startup 2022-09-09 16:37:13 -07:00
Ry
cf627052ff Add is_task_id_used 2022-08-11 17:35:13 -07:00
Ry
9aac5dff10 Make the new_task info comments a bit more clear 2022-06-25 16:32:32 -07:00
Ry
887ebc4553 Add get_current_task_id 2022-06-24 17:40:52 -07:00
Ry
df95829e83 Add more spacing between the jump tables 2022-06-24 17:24:08 -07:00
Ry
04761c1a07 Add stack block pointer to each task
This allows the stack block to automatically be freed when the task
ends.
2022-06-24 16:37:43 -07:00
Ry
606ec0283e Set the heap allocator's MEMORY_TOP to 64KB below the stack 2022-06-24 16:14:46 -07:00
Ry
bf1e28e625 Initialize the stack pointer instead of relying on fox32rom to do it 2022-06-24 16:14:06 -07:00
Ry
0d57361f66 Allow tasks to not free their memory when they end 2022-06-23 16:38:05 -07:00
Ry
d1d2df0d74 Change scheduler starvation panic message 2022-06-23 15:43:36 -07:00
Ry
309ac8cd15 Use the memory allocator for tasks' code memory 2022-06-23 15:18:21 -07:00
Ry
9d510e51b7 Introduce new memory allocator, now with the ability to free memory!!
This is a super simple linked list memory allocator, written with
lots of help from my friend hyenasky.
2022-06-23 00:30:59 -07:00
Ry
70fd0823dd Ensure we reserve room on the stack before starting the first task
Not 100% sure if this is actually needed, but this is just to make
sure that the following call to new_task doesn't get its return
address overwritten
2022-06-23 00:21:00 -07:00