retreat to 640KB
This commit is contained in:
parent
0e2a9ad93d
commit
c5f8415e03
18
boot.subx
18
boot.subx
|
@ -164,13 +164,13 @@
|
||||||
cd/syscall 0x13/imm8/bios-disk-services
|
cd/syscall 0x13/imm8/bios-disk-services
|
||||||
0f 82/jump-if-carry disk_error/disp16
|
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
|
b4/copy-to-ah 2/imm8/read-drive
|
||||||
# dl comes conveniently initialized at boot time with the index of the device being booted
|
# dl comes conveniently initialized at boot time with the index of the device being booted
|
||||||
b5/copy-to-ch 0/imm8/cylinder
|
b5/copy-to-ch 0/imm8/cylinder
|
||||||
b6/copy-to-dh 0xe/imm8/head # <====
|
b6/copy-to-dh 0xe/imm8/head # <====
|
||||||
b1/copy-to-cl 1/imm8/sector # 1-based
|
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
|
# address to write sectors to = es:bx = 0x56800, contiguous with boot segment
|
||||||
bb/copy-to-bx 0x7600/imm16 # <====
|
bb/copy-to-bx 0x7600/imm16 # <====
|
||||||
8e/->seg 3/mod/direct 3/rm32/bx 0/r32/es
|
8e/->seg 3/mod/direct 3/rm32/bx 0/r32/es
|
||||||
|
@ -178,19 +178,7 @@
|
||||||
cd/syscall 0x13/imm8/bios-disk-services
|
cd/syscall 0x13/imm8/bios-disk-services
|
||||||
0f 82/jump-if-carry disk_error/disp16
|
0f 82/jump-if-carry disk_error/disp16
|
||||||
|
|
||||||
# load two more tracks of disk into addresses [0x85c00, 0x95800)
|
### Can't load more tracks without clobbering BIOS code. To load more code we'll need a new compilation strategy.
|
||||||
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
|
|
||||||
|
|
||||||
# reset es
|
# reset es
|
||||||
bb/copy-to-bx 0/imm16
|
bb/copy-to-bx 0/imm16
|
||||||
|
|
|
@ -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=/dev/zero of=code.img count=20160 # 20*16*63 512-byte sectors = almost 10MB
|
||||||
dd if=a.bin of=code.img conv=notrunc
|
dd if=a.bin of=code.img conv=notrunc
|
||||||
|
|
||||||
if [ `stat --printf="%s" a.bin` -ge 580608 ] # 18 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
if [ `stat --printf="%s" a.bin` -ge 492544 ] # 15 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
||||||
then
|
then
|
||||||
echo "a.bin won't all be loaded on boot"
|
echo "a.bin won't all be loaded on boot"
|
||||||
exit 1
|
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=/dev/zero of=code.img count=20160 # 20*16*63 512-byte sectors = almost 10MB
|
||||||
dd if=a.bin of=code.img conv=notrunc
|
dd if=a.bin of=code.img conv=notrunc
|
||||||
|
|
||||||
if [ `stat --printf="%s" a.bin` -ge 580608 ] # 18 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
if [ `stat --printf="%s" a.bin` -ge 492544 ] # 15 tracks * 63 sectors per track * 512 bytes per sector (keep this sync'd with boot.subx)
|
||||||
then
|
then
|
||||||
echo "a.bin won't all be loaded on boot"
|
echo "a.bin won't all be loaded on boot"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
Loading…
Reference in New Issue