[syslinux] simple message under BIOS/CSM/LEGACY

Adam Goldman adamg at pobox.com
Mon Nov 21 02:23:41 PST 2022


Just a guess, the lodsb instruction could be copying from the wrong 
segment, try setting DS equal to CS first.

-- Adam

On Mon, Nov 21, 2022 at 10:00:31AM +0100, Pascal via Syslinux wrote:
> hi,
> 
> I'm coming back to you on this subject (eg. display a short message
> inviting the user to switch the PC to EFI/UEFI) after some field feedback.
> 
> here is the code now used :
> 
> ; nasm nobioscsm.asm -f bin -o nobioscsm
> bits 16
> org 0x7C00
> start:
>     sti
>     cld
>     mov si, msg
>     mov ah, 0x0E
>     .loop lodsb
>     or al, al
>     jz halt
>     int 0x10
>     jmp .loop
> halt:
>     hlt
>     jmp halt
> msg:
>     db 0x0D, 0x0A, 'Boot with BIOS/CSM/LEGACY no longer supported : reboot
> with EFI/UEFI', 0
> 
> and here is what appears on the screen (Lenovo Thinkcenter M720) instead of
> the expected message :
> 
> [image: clover.jpg]
> 
> the problem occurs mainly with the Lenovo brand (Thinkcentre M70
> <https://www.google.com/search?q=Lenovo+Thinkcenter+M70>, Thinkcentre M720
> <https://www.google.com/search?q=Lenovo+Thinkcenter+M720>), but not only
> according to my information.
> 
> changing the partitioning to BIOS/Intel/MBR (instead of GPT) does not
> change the problem : this last point makes me strongly believe that the
> problem comes from the code...
> 
> regards, lacsaP.
> 
> Le mer. 12 oct. 2022 à 11:22, Frederic Pasteleurs <lists at askarel.be> a
> écrit :
> 
> > Hello,
> >
> > Here is how i would customize your code:
> >
> > ; nasm nobioscsm.asm -f bin -o nobioscsm
> >
> > bits 16
> > org 0x7C00
> >
> > start:
> >      sti ; no need to clear interrupts here: since we're going to crash
> > anyway, leave them on
> >      cld ; Make sure we go forward
> >      mov si, msg
> >      mov ah, 0x0E
> >      .loop lodsb
> >      or al, al
> >      jz halt
> >      int 0x10
> >      jmp .loop
> >
> > halt:
> >      hlt
> >      jmp halt ; The  hlt instruction sometimes behaves like a NOP. Just
> > run in an infinite loop. CTRL-ALT-DEL should still continue to work to
> > restart the machine
> >
> > msg:
> >      db 0x0D, 0x0A, '** Boot with BIOS/CSM no longer supported : reboot
> > with
> > EFI/UEFI **', 0
> >
> > ;times 510 - ($-$$) db 0
> > ;dw 0xAA55
> >
> >
> > On 1/08/22 09:51, Pascal via Syslinux wrote:
> > > hi,
> > >
> > > I have a live system with only UEFI boot supported.
> > >
> > > to indicate this to users who have not yet switched to UEFI, I have below
> > > this simple little piece of code (partly found on the internet) that I
> > > compile with nasm and I push onto the MBR.
> > >
> > > it runs perfectly on some PCs and in virtual machine with Qemu, but
> > refuses
> > > to run on other PCs by displaying either a kind of smiley logo or a
> > simple
> > > blinking cursor.
> > >
> > > does anyone have any idea or clue about this?
> > >
> > > regards, lacsaP.
> > >
> > > 8<--------------------------------
> > > ; nasm nobioscsm.asm -f bin -o nobioscsm
> > >
> > > bits 16
> > > org 0x7C00
> > >
> > > start:
> > >      cli
> > >      mov si, msg
> > >      mov ah, 0x0E
> > >      .loop lodsb
> > >      or al, al
> > >      jz halt
> > >      int 0x10
> > >      jmp .loop
> > >
> > > halt:
> > >      hlt
> > >
> > > msg:
> > >      db 0x0D, 0x0A, '** Boot with BIOS/CSM no longer supported : reboot
> > with
> > > EFI/UEFI **', 0
> > >
> > > ;times 510 - ($-$$) db 0
> > > ;dw 0xAA55
> > > _______________________________________________
> > > Syslinux mailing list
> > > Submissions to Syslinux at syslinux.org
> > > Unsubscribe or set options at:
> > > https://lists.syslinux.org/syslinux
> >



> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at syslinux.org
> Unsubscribe or set options at:
> https://lists.syslinux.org/syslinux



More information about the Syslinux mailing list