about summary refs log tree commit diff stats
path: root/boot.subx
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-04-25 21:21:18 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-04-25 21:29:42 -0700
commit3b1f23f5d72eebd9e4b33d6475075555d12a00c3 (patch)
treef2b342f05078c37c2d1cad363ff3f47cbb852f55 /boot.subx
parent6bb70a236c759d3d85265de068cde6d26a747d3b (diff)
downloadmu-3b1f23f5d72eebd9e4b33d6475075555d12a00c3.tar.gz
expand stack to 16MB
It's also no longer contiguous with code.
Diffstat (limited to 'boot.subx')
-rw-r--r--boot.subx8
1 files changed, 4 insertions, 4 deletions
diff --git a/boot.subx b/boot.subx
index 7b355ff6..7ded7309 100644
--- a/boot.subx
+++ b/boot.subx
@@ -16,8 +16,8 @@
 
 # Memory map of a Mu computer:
 #   code: currently 4 tracks loaded from the primary disk to [0x00007c00, 0x00048600)
-#   stack: grows down from 0x00070000
-#   heap: [0x01000000, 0x08000000)
+#   stack: grows down from 0x02000000 to 0x01000000
+#   heap: [0x02000000, 0x08000000)
 #     see 120allocate.subx; Qemu initializes with 128MB RAM by default
 # Consult https://wiki.osdev.org/Memory_Map_(x86) before modifying any of
 # this. And don't forget to keep *stack-debug.subx in sync.
@@ -41,7 +41,7 @@
   8e/->seg 3/mod/direct 0/rm32/ax 4/r32/fs
   8e/->seg 3/mod/direct 0/rm32/ax 5/r32/gs
 
-  # initialize stack to 0x00070000
+  # Temporarily initialize stack to 0x00070000 in real mode.
   # We don't read or write the stack before we get to 32-bit mode, but BIOS
   # calls do. We need to move the stack in case BIOS initializes it to some
   # low address that we want to write code into.
@@ -209,7 +209,7 @@ initialize_32bit_mode:
   8e/->seg 3/mod/direct 0/rm32/ax 4/r32/fs
   8e/->seg 3/mod/direct 0/rm32/ax 5/r32/gs
 
-  bc/copy-to-esp 0x00070000/imm32
+  bc/copy-to-esp 0x02000000/imm32
 
   ## load interrupt handlers
   # We can't refer to the label directly because SubX doesn't do the right