this patch is a suggestion for the bootsector to boot on older (like my XT) 
machines
where the drive requires a few retries before loading a sector.  The resulting 
binary
might be too big actually.  In this case I would like a bit of help fitting it 
in there.

yours,
        - Mdasoh Kyaeppd

--- boot.ori/boot.asm   2017-01-30 02:08:55.835437500 -0700
+++ boot/boot.asm       2017-01-31 13:06:37.742679500 -0700
@@ -423,7 +423,7 @@
                                                 ; setup LBA disk block
                 mov     LBA_SECTOR_32,bx        ; bx is 0 if extended 13h mode 
supported
                 mov     LBA_SECTOR_48,bx
-
+               mov     si,1
                 mov     ah,042h
                 jmp short    do_int13_read

@@ -472,12 +472,20 @@
                 inc     cx                      ; make sector 1-based (1-63)

                 les     bx,[LBA_OFF]
+               mov     si,5
+do_chs_read:
                 mov     ax, 0x0201
 do_int13_read:
                 mov     dl, [drive]
-                int     0x13
-                jc      boot_error              ; exit on error
+                int     0x13                   ; read data from disk
+               jnc     did_int13_read

+               xor     ax,ax
+               int     0x13
+               dec     si
+                jz      boot_error              ; exit on error
+               jmp     do_chs_read             ; prod it a few times
+did_int13_read:
                 mov     ax, word [bsBytesPerSec]

                 push    di

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to