summaryrefslogtreecommitdiff
path: root/comboot.inc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-01-24 15:13:11 -0800
committerH. Peter Anvin <hpa@zytor.com>2007-01-24 15:13:11 -0800
commitc656897fd2f4ca76e5d6e2a871a858588de0d312 (patch)
treeabe137e0a15f38449b6e355563fd74233d210671 /comboot.inc
parentd0c3ada6595e3d86f41c27b5a9b5ea6e399edfe9 (diff)
downloadsyslinux-c656897fd2f4ca76e5d6e2a871a858588de0d312.tar.gz
New API call: read disk.
Diffstat (limited to 'comboot.inc')
-rw-r--r--comboot.inc25
1 files changed, 24 insertions, 1 deletions
diff --git a/comboot.inc b/comboot.inc
index 5fda9687..fcaa3a7a 100644
--- a/comboot.inc
+++ b/comboot.inc
@@ -466,6 +466,7 @@ comapi_derinfo:
mov P_DL,al
mov P_ES,cs
mov P_BX,PartInfo
+ mov P_CL,SECTOR_SHIFT
%elif IS_PXELINUX
mov ax,[APIVer]
mov P_DX,ax
@@ -482,6 +483,7 @@ comapi_derinfo:
mov P_DL,al
mov P_ES,cs
mov P_BX,spec_packet
+ mov P_CL,SECTOR_SHIFT
%endif
clc
ret
@@ -769,7 +771,27 @@ comapi_userfont:
mov P_AL,al
ret
-
+;
+; INT 22h AX=0019h Read disk
+;
+%if IS_SYSLINUX || IS_MDSLINUX || IS_ISOLINUX || IS_EXTLINUX
+comapi_readdisk:
+ mov esi,P_ESI ; Enforce ESI == EDI == 0, these
+ or esi,P_EDI ; are reserved for future expansion
+ jnz .err
+ mov eax,P_EDX
+ mov bp,P_CX
+ mov es,P_ES
+ mov bx,P_BX
+ call getlinsec
+ clc
+ ret
+.err:
+ stc
+ ret
+%else
+comapi_readdisk equ comapi_err
+%endif
section .data
@@ -818,6 +840,7 @@ int22_table:
dw comapi_runkernel ; 0016 run kernel image
dw comapi_usingvga ; 0017 report video mode change
dw comapi_userfont ; 0018 query custom font
+ dw comapi_readdisk ; 0019 read disk
int22_count equ ($-int22_table)/2
APIKeyWait db 0