; 0x0000:0x6c00 -> 0x0000:0x7400 IDT, 256 descriptors\r
; 0x0000:0x7400 -> 0x0000:0x7c00 GDT, 256 descriptors\r
; 0x0000:0x7c00 -> 0x0000:0x7e00 bootsector\r
-; 0x0000:0x7e00 <- 0x0000:0xffff ~32,5kb stack for boot\r
-; 0x1000:0x0000 -> 0x9000:0xffff 576kb kernel/free space\r
-; 0xa000:0x0000 -> ............. VGA mem etc.\r
+; 0x0000:0x7e00 <- 0x0000:0x8000 512b stack for boot\r
+; 0x0000:0x8000 -> 0x9000:0xffff 608kb kernel/free space\r
+;;;; 0x0000:0x7e00 <- 0x0000:0xffff ~32,5kb stack for boot\r
+;;;; 0x1000:0x0000 -> 0x9000:0xffff 576kb kernel/free space\r
+; 0xA000:0x0000 -> ............. VGA mem etc.\r
\r
use16\r
org 0x7C00\r
\r
-boot: jmp near start\r
+boot:\r
+ jmp short start\r
nop\r
\r
;------------------------------------------;\r
; Standard BIOS Parameter Block, "BPB". ;\r
;------------------------------------------;\r
- bpbOEM db 'BOS 0.04'\r
+ bpbOEM db 'BOS 0.04'\r
bpbSectSize dw 512\r
bpbClustSize db 1\r
bpbReservedSec dw 1\r
- bpbFats db 2\r
+ bpbFats db 2\r
bpbRootSize dw 224\r
bpbTotalSect dw 2880\r
- bpbMedia db 240\r
+ bpbMedia db 240\r
bpbFatSize dw 9\r
bpbTrackSect dw 18\r
- bpbHeads dw 2\r
+ bpbHeads dw 2\r
bpbHiddenSect dd 0\r
bpbLargeSect dd 0\r
;---------------------------------;\r
bpbDriveNo db 0\r
bpbReserved db 0\r
bpbSignature db 41 ; 0 = nothing more. 41 = three more (below)..\r
- bpbID dd 1\r
+ bpbID dd 1\r
bpbVolumeLabel db 'BOOT FLOPPY'\r
bpbFileSystem db 'FAT12 '\r
\r
mov ds, ax ; registers.\r
mov es, ax\r
mov ss, ax\r
- mov sp, 0xFFFF ; Stack..\r
+ mov sp, 0x8000 ; Stack..\r
\r
mov [bpbDriveNo], dl\r
\r
;-----------------------------------;\r
found:\r
mov bp, [bx+26] ; bp=cluster number from directory entry\r
- mov di, 0x1000 ; 1000 (segment)\r
+ mov di, 0x800 ; 1000 (segment)\r
\r
.next_block:\r
xor cx, cx\r
; the file is loaded ;\r
;-----------------------;\r
quit:\r
- jmp 0x1000:0x0000 ; jump to loaded file (64kb in mem)\r
+ jmp 0x0000:0x8000 ; jump to loaded file (64kb in mem)\r
\r
\r
;-------------------------------------;\r