grow code region yet again
We need a cleaner way to do this.
This commit is contained in:
parent
ac1d702cdc
commit
f32caac6df
14
boot.subx
14
boot.subx
|
@ -150,6 +150,20 @@
|
|||
cd/syscall 0x13/imm8/bios-disk-services
|
||||
0f 82/jump-if-carry disk_error/disp16
|
||||
|
||||
# load two more tracks of disk into addresses [0x66400, 0x76000)
|
||||
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 0xc/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 0x6640/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
|
||||
|
||||
# reset es
|
||||
bb/copy-to-bx 0/imm16
|
||||
8e/->seg 3/mod/direct 3/rm32/bx 0/r32/es
|
||||
|
|
|
@ -35,7 +35,7 @@ cat a.survey |linux/hex > a.bin
|
|||
dd if=/dev/zero of=code.img count=20160 # 20*16*63 512-byte sectors = almost 10MB
|
||||
dd if=a.bin of=code.img conv=notrunc
|
||||
|
||||
if [ `stat --printf="%s" a.bin` -ge 387072 ] # 12 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
||||
if [ `stat --printf="%s" a.bin` -ge 451584 ] # 14 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
||||
then
|
||||
echo "a.bin won't all be loaded on boot"
|
||||
exit 1
|
||||
|
|
|
@ -39,7 +39,7 @@ cat a.survey |linux/bootstrap/bootstrap run linux/hex
|
|||
dd if=/dev/zero of=code.img count=20160 # 20*16*63 512-byte sectors = almost 10MB
|
||||
dd if=a.bin of=code.img conv=notrunc
|
||||
|
||||
if [ `stat --printf="%s" a.bin` -ge 387072 ] # 12 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
||||
if [ `stat --printf="%s" a.bin` -ge 451584 ] # 14 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
||||
then
|
||||
echo "a.bin won't all be loaded on boot"
|
||||
exit 1
|
||||
|
|
Loading…
Reference in New Issue