[syslinux] [PATCH] [memdisk] Additional comments in memdisk.inc and postprocess.pl

Miller, Shao Shao.Miller at yrdsb.edu.on.ca
Sat Mar 21 21:32:40 PDT 2009


>From 8fb8c285e69c0f4cde28061019a8e399641d5ef1 Mon Sep 17 00:00:00 2001
From: Shao Miller <shao.miller at yrdsb.edu.on.ca>
Date: Sun, 22 Mar 2009 00:27:56 -0400
Subject: [PATCH] [memdisk] Additional comments in memdisk.inc and
postprocess.pl

Just a sprinkling of comments adding further description to the code.
---
 memdisk/memdisk.inc    |   34 +++++++++++++++++++++-------------
 memdisk/postprocess.pl |    6 ++++--
 2 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/memdisk/memdisk.inc b/memdisk/memdisk.inc
index 1e2076b..0df6c77 100644
--- a/memdisk/memdisk.inc
+++ b/memdisk/memdisk.inc
@@ -36,6 +36,7 @@
 
 %endif	; DEBUG_TRACERS
 
+; Flags we test our configuration against
 %define CONFIG_READONLY	0x01
 %define CONFIG_RAW	0x02
 %define CONFIG_SAFEINT	0x04
@@ -104,6 +105,8 @@ Int13Start:
 		xor dl,[cs:DriveNo]
 		pop dx
 		js .nomatch		; If SF=0, we have a class match
here
+					; 0x00 the sign bit for FD
+					; 0x80 the sign bit for HD
 		jz .our_drive		; If ZF=1, we have an exact
match
 		cmp dl,[cs:DriveNo]
 		jb .nomatch		; Drive < Our drive
@@ -115,13 +118,13 @@ Int13Start:
 		pushf
 		push bp
 		mov bp,sp
-		cmp byte [cs:SavedAX+1],08h
+		cmp byte [cs:SavedAX+1],08h	; Get drive params
function?
 		je .norestoredl
-		cmp byte [cs:SavedAX+1],15h
+		cmp byte [cs:SavedAX+1],15h	; Get disk type
function?
 		jne .restoredl
 		test byte [bp+4],80h	; Hard disk?
 		jnz .norestoredl
-.restoredl:
+.restoredl:				; DL should have number of
drives
 		mov dl,[bp+4]
 .norestoredl:
 		push ax
@@ -129,7 +132,7 @@ Int13Start:
 		push ds
 		mov ax,[bp+2]		; Flags
 		lds ebx,[cs:Stack]
-		mov [bx+4],al		; Arithmetric flags
+		mov [bx+4],al		; Arithmetic flags
 		pop ds
 		pop ebx
 		pop ax
@@ -166,7 +169,7 @@ DoneWeird:
 		and ah,ah
 
 		lds ebx,[Stack]
-		; This sets the low byte (the arithmetric flags) of the
+		; This sets the low byte (the arithmetic flags) of the
 		; FLAGS on stack to either 00h (no flags) or 01h (CF)
 		; depending on if AH was zero or not.
 		setnz [bx+4]		; Set CF iff error
@@ -181,7 +184,8 @@ Reset:
 		TRACER 'R'
 		xor ax,ax		; Bottom of memory
 		mov es,ax
-		test dl,dl		; Always pass it on if we are
resetting HD
+		test dl,dl		; Always pass it on if we are
+					; resetting HD
 		js .hard_disk		; Bit 7 set
 		; Some BIOSes get very unhappy if we pass a reset floppy
 		; command to them and don't actually have any floppies.
@@ -194,7 +198,8 @@ Reset:
 		jmp .pass_on		; ... otherwise pass it to the
BIOS
 .hard_disk:
 		; ... same thing for hard disks, sigh ...
-		cmp byte [es:0x475],1	; BIOS variable for number of
hard disks
+		cmp byte [es:0x475],1	; BIOS variable for number of
hard
+					; disks
 		jbe success
 
 .pass_on:
@@ -354,7 +359,7 @@ EDDWrite:
 		TRACER 'w'
 
 		call edd_setup_regs
-		xchg esi,edi
+		xchg esi,edi		; Opposite direction of a Read!
 		call bcopy
 		xor ax,ax
 		ret
@@ -397,7 +402,8 @@ EDDGetParms:
 		ret
 %endif ; EDD
 
-		; Set up registers as for a "Read", and compares against
disk size.
+		; Set up registers as for a "Read", and compares against
disk
+		; size.
 		; WARNING: This fails immediately, even if we can
transfer some
 		; sectors.  This isn't really the correct behaviour.
 setup_regs:
@@ -589,21 +595,22 @@ Int15Start:
 oldint15:	pop bp
 		jmp far [cs:OldInt15]
 
-int15_e801:
+int15_e801:				; Get mem size for > 64 MB
config
 		mov ax,[cs:Mem1MB]
 		mov cx,ax
 		mov bx,[cs:Mem16MB]
 		mov dx,bx
 		jmp short int15_success
 
-int15_e881:
+int15_e881:				; Get mem size for > 64 MB
config
+					; 32-bit code
 		mov eax,[cs:Mem1MB]
 		mov ecx,eax
 		mov ebx,[cs:Mem16MB]
 		mov edx,ebx
 		jmp short int15_success
 
-int15_88:
+int15_88:				; Get extended mem size
 		mov ax,[cs:MemInt1588]
 		jmp short int15_success
 
@@ -805,7 +812,8 @@ Int13Funcs	dw Reset		; 00h - RESET
 		dw Invalid		; 06h - FORMAT TRACK AND SET BAD
FLAGS
 		dw Invalid		; 07h - FORMAT DRIVE AT TRACK
 		dw GetParms		; 08h - GET PARAMETERS
-		dw InitWithParms	; 09h - INITIALIZE CONTROLLER
WITH DRIVE PARAMETERS
+		dw InitWithParms	; 09h - INITIALIZE CONTROLLER
WITH
+					;	DRIVE PARAMETERS
 		dw Invalid		; 0Ah
 		dw Invalid		; 0Bh
 		dw Seek			; 0Ch - SEEK TO CYLINDER
diff --git a/memdisk/postprocess.pl b/memdisk/postprocess.pl
index f8cba96..fcda478 100755
--- a/memdisk/postprocess.pl
+++ b/memdisk/postprocess.pl
@@ -12,8 +12,10 @@
 ##
-----------------------------------------------------------------------
 
 #
-# Postprocess the memdisk binary.
-#
+# Postprocess the memdisk binary.  Used during the 'make' process.
+# We write memdisk16.bin out to the final memdisk kernel, pad it to an
+# integral 512-byte sector length, write this number of sectors into
the
+# kernel header field "setup_sects", then append memdisk32.bin
 
 eval { use bytes; };
 
-- 
1.5.3.4




More information about the Syslinux mailing list