summaryrefslogtreecommitdiff
path: root/memdisk/memdisk.asm
diff options
context:
space:
mode:
authorhpa <hpa>2001-12-10 06:46:18 +0000
committerhpa <hpa>2001-12-10 06:46:18 +0000
commita47c6d65c1fbab9d821b869fc0bd30ae441f24fc (patch)
tree5c60a193c3575213d90b1cf6494b9865ee802e01 /memdisk/memdisk.asm
parentb4809196e7d8ea83991b0cd51f989e7210b5b5b0 (diff)
downloadsyslinux-a47c6d65c1fbab9d821b869fc0bd30ae441f24fc.tar.gz
Yet another snapshot. Now we can actually compile the sucker...
Diffstat (limited to 'memdisk/memdisk.asm')
-rw-r--r--memdisk/memdisk.asm20
1 files changed, 15 insertions, 5 deletions
diff --git a/memdisk/memdisk.asm b/memdisk/memdisk.asm
index 46e19236..3c9513dd 100644
--- a/memdisk/memdisk.asm
+++ b/memdisk/memdisk.asm
@@ -127,8 +127,16 @@ GetDriveType:
pop ax ; Drop return address
mov ah,[DriveNo]
shr ah,7
+ pushf
or ah,02h ; CF = 0
mov P_AH,ah
+ popf
+ jz .floppy
+ mov ax,[DiskSize] ; For hard disk return the size
+ mov P_DX,ax
+ mov ax,[DiskSize+2]
+ mov P_CX,ax
+.floppy:
mov [LastStatus],byte 0 ; Success, but AH returns a value
jmp short DoneWeird
@@ -402,15 +410,12 @@ Mover_dst1: db 0, 0, 0 ; Low 24 bits of target addy
db 00h ; Extended access rights
Mover_dst2: db 0 ; High 8 bits of source addy
+LastStatus db 0 ; Last return status
+
section .bss
alignb 4
PatchArea equ $ ; This gets filled in by the installer
-DriveNo resb 1 ; Our drive number
-DriveType resb 1 ; Our drive type (floppies)
-LastStatus resb 1 ; Last return status
- resb 1 ; pad
-
Cylinders resw 1 ; Cylinder count
Heads resw 1 ; Head count
Sectors resd 1 ; Sector count (zero-extended)
@@ -425,6 +430,11 @@ MemInt1588 resd 1 ; 1MB-65MB memory amount (1K)
OldInt13 resd 1 ; INT 13h in chain
OldInt15 resd 1 ; INT 15h in chain
+OldDosMem resw 1 ; Old position of DOS mem end
+
+DriveNo resb 1 ; Our drive number
+DriveType resb 1 ; Our drive type (floppies)
+
; End patch area
Stack resd 2 ; Saved SS:ESP on invocation