Displaying 4 results from an estimated 4 matches for "oldint13".
2004 Aug 12
1
Problems booting with memdisk, with fix
...bootstrap routines (e.g. DOS gives "Non-System disk or
+ ; Disk Error") - NN 12-Aug-04.
.pass_on:
- pop ax ; Drop return address
- popad ; Restore all registers
- pop es
- pop ds
- lss esp,[cs:Stack] ; Restore the stack
- and dl,80h ; Clear all but the type bit
- jmp far [cs:OldInt13]
+ pushf
+ call far [cs:OldInt13] ; Call the BIOS
+ xor ax,ax ; Force success result
+ ret
Invalid:
8<=================================================================
Regards
Neil Newell
2009 Dec 07
3
[PATCH] memdisk: "safe hook" and mBFT
...patch_area *)(memdisk_hook + hptr->patch_offs);
dosmem_k = rdz_16(BIOS_BASEMEM);
@@ -1146,6 +1166,9 @@ void setup(const struct real_mode_args *rm_args_ptr)
}
}
+ /* Note the previous INT 13h hook in the "safe hook" structure */
+ safe_hook->old_hook = pptr->oldint13;
+
/* Add ourselves to the drive count */
pptr->drivecnt++;
@@ -1170,6 +1193,7 @@ void setup(const struct real_mode_args *rm_args_ptr)
/* Adjust these pointers to point to the installed image */
/* Careful about the order here... the image isn''t copied yet! */
+ safe_h...
2006 Mar 10
2
unload memdisk+FreeDOS => local boot
Sensei H. Peter Anvin,
I have successfully modified/enhanced memdisk so that one can chainload a
local operating system after running diskless FreeDOS.
I would like your advice regarding the appropriate interface for invoking
this functionality.
In addition, I would like to know what steps to take so that you feel
comfortable considering including this in the standard syslinux
distribution.
2009 Sep 12
1
[PATCH] Let MEMDISK honor the quiet append option
...{
/* nopass specified - we're the only drive by definition */
- printf("nopass specified - we're the only drive\n");
+ if (!quiet)
+ printf("nopass specified - we're the only drive\n");
bios_drives = 0;
pptr->drivecnt = 0;
pptr->oldint13 = driverptr + hptr->iret_offs;
@@ -1023,12 +1043,14 @@
/* Note: per suggestion from the Interrupt List, consider
INT 13 08 to have failed if the sector count in CL is zero. */
if ((regs.eflags.l & 1) || !(regs.ecx.b[0] & 0x3f)) {
- printf("INT 13 08: Failure...