summaryrefslogtreecommitdiff
path: root/boot0/disk_load_16.asm
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-11-14 11:08:04 +0100
committerMichal Idziorek <m.i@gmx.at>2014-11-14 11:08:04 +0100
commite3cc5f6c89ba9f37bf2c1edf588d0f75c1d63c57 (patch)
tree1c43c3e9ce81f7564beb3a970b88beaa66169946 /boot0/disk_load_16.asm
parent2761b620043ad511d9baf66d5478a463aeece77b (diff)
rename dirs
Diffstat (limited to 'boot0/disk_load_16.asm')
-rw-r--r--boot0/disk_load_16.asm102
1 files changed, 0 insertions, 102 deletions
diff --git a/boot0/disk_load_16.asm b/boot0/disk_load_16.asm
deleted file mode 100644
index 76102ad..0000000
--- a/boot0/disk_load_16.asm
+++ /dev/null
@@ -1,102 +0,0 @@
-;
-;disk_load_16
-;
-
-[bits 16]
-
-STR_LBA:
- db "LBA Support Detected",0
-
-STR_CHS:
- db "CHS BROKEN SORRY(?)",0
-
-STR_ERROR:
- db "Disk Read Error",0
-
-STR_DONE:
- db "Stage 2 Loaded",0
-
-disk_load_16:
-
- pusha
-
- ; check if LBA is supported
- mov ah,0x41
- mov bx,0x55aa
- int 0x13
- jnc disk_load_lba
- jmp disk_load_chs
-
-disk_load_lba:
-
- mov bx, STR_LBA
- call print_string
- call print_nextline
-
- mov dl,[BOOT_DRIVE]
- xor ah,ah
- mov ah,0x42
-
- mov bx,0
- mov ds,bx
- lea si,[lba_adr]
-
- int 0x13
- jnc disk_load_finish
- jmp disk_load_error
-
-disk_load_chs:
-
- mov bx, STR_CHS
- call print_string
- call print_nextline
-
- mov bx,0 ;target es:bx
- mov es,bx
- mov bx,0x7e00
-
- mov al,50 ;number of sectors to read
- mov ah,0x02 ;BIOS read sector func
-
- mov cl,2 ; sector
- mov ch,0 ; cylinder
-
- mov dl,[BOOT_DRIVE]
- mov dh,0 ;head
-
- int 0x13 ;bios interrupt
-
- jnc disk_load_finish
-
-disk_load_error:
-
- call print_nextline
- mov bx, STR_ERROR
- call print_string
- call print_nextline
- jmp $
-
-disk_load_finish:
-
- call print_nextline
- mov bx, STR_DONE
- call print_string
- call print_nextline
-
-
- popa
- ret
-
-
-;; here we hold the lba addr
-lba_adr:
-
- dw 0x10 ; size of packet ( 16 byte)
- dw 16 ; number of sectors to read
-
- ; target is 0x7e00
- dw 0x7e00 ; target addr. offset
- dw 0x0000 ; target addr. sector
-
- dd 1 ; first sector to read
- dd 0