about summary refs log tree commit diff stats
path: root/boot.subx
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-08-29 08:40:52 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-08-29 11:21:09 -0700
commitc5f8415e0327124a7a9fed12b524390ddf417f83 (patch)
tree84636fc30a127340f30214ce8b39ec12fa53baba /boot.subx
parent0e2a9ad93d96be55a4df3f509a33df882dae81ef (diff)
downloadmu-c5f8415e0327124a7a9fed12b524390ddf417f83.tar.gz
retreat to 640KB
Diffstat (limited to 'boot.subx')
-rw-r--r--boot.subx18
1 files changed, 3 insertions, 15 deletions
diff --git a/boot.subx b/boot.subx
index 6bed6fe2..7d4e174b 100644
--- a/boot.subx
+++ b/boot.subx
@@ -164,13 +164,13 @@
   cd/syscall 0x13/imm8/bios-disk-services
   0f 82/jump-if-carry disk_error/disp16
 
-  # load two more tracks of disk into addresses [0x76000, 0x85c00)
+  # load one final track of disk into addresses [0x76000, 0x7de00)
   b4/copy-to-ah 2/imm8/read-drive
   # dl comes conveniently initialized at boot time with the index of the device being booted
   b5/copy-to-ch 0/imm8/cylinder
   b6/copy-to-dh 0xe/imm8/head                 # <====
   b1/copy-to-cl 1/imm8/sector  # 1-based
-  b0/copy-to-al 0x7e/imm8/num-sectors  # 2*63 = 126
+  b0/copy-to-al 0x3f/imm8/num-sectors=63
   # address to write sectors to = es:bx = 0x56800, contiguous with boot segment
   bb/copy-to-bx 0x7600/imm16                  # <====
   8e/->seg 3/mod/direct 3/rm32/bx 0/r32/es
@@ -178,19 +178,7 @@
   cd/syscall 0x13/imm8/bios-disk-services
   0f 82/jump-if-carry disk_error/disp16
 
-  # load two more tracks of disk into addresses [0x85c00, 0x95800)
-  b4/copy-to-ah 2/imm8/read-drive
-  # dl comes conveniently initialized at boot time with the index of the device being booted
-  b5/copy-to-ch 0/imm8/cylinder
-  b6/copy-to-dh 0x11/imm8/head                # <====
-  b1/copy-to-cl 1/imm8/sector  # 1-based
-  b0/copy-to-al 0x7e/imm8/num-sectors  # 2*63 = 126
-  # address to write sectors to = es:bx = 0x56800, contiguous with boot segment
-  bb/copy-to-bx 0x85c0/imm16                  # <====
-  8e/->seg 3/mod/direct 3/rm32/bx 0/r32/es
-  bb/copy-to-bx 0/imm16
-  cd/syscall 0x13/imm8/bios-disk-services
-  0f 82/jump-if-carry disk_error/disp16
+  ### Can't load more tracks without clobbering BIOS code. To load more code we'll need a new compilation strategy.
 
   # reset es
   bb/copy-to-bx 0/imm16