wok-current diff BootProg/stuff/bootex.asm @ rev 25467

Up gnumeric (1.12.53)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Oct 03 08:28:51 2022 +0000 (21 months ago)
parents 81fc994927a6
children b0069c845544
line diff
     1.1 --- a/BootProg/stuff/bootex.asm	Thu Sep 29 20:05:23 2022 +0000
     1.2 +++ b/BootProg/stuff/bootex.asm	Mon Oct 03 08:28:51 2022 +0000
     1.3 @@ -81,6 +81,7 @@
     1.4  NullEntryCheck          equ     1               ; +3 bytes
     1.5  ReadRetry               equ     1               ; +8 bytes
     1.6  SectorOf512Bytes        equ     1               ; -13 bytes
     1.7 +CheckAttrib             equ     0               ; +6 bytes
     1.8  
     1.9  [BITS 16]
    1.10  [CPU 386]
    1.11 @@ -197,7 +198,8 @@
    1.12  ;;         dword [bx+FileSize] file size ;;
    1.13  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    1.14  
    1.15 -CurNameSize     equ  3                  ; 1 byte
    1.16 +CurNameSize     equ  03h                ; 1 byte
    1.17 +Attributes      equ  0Bh                ; 1 byte
    1.18  StartCluster    equ  14h                ; 4 bytes
    1.19  FileSize        equ  18h                ; 8 bytes
    1.20  
    1.21 @@ -208,11 +210,10 @@
    1.22          xor     ax, ax
    1.23          or      al, [es:di]
    1.24          je      FindNameFailed
    1.25 +        cmp     al, 0c0h                ; EXFAT_ENTRY_FILE_INFO ?
    1.26  %else
    1.27 -        movzx   ax, byte [es:di]
    1.28 +        cmp     byte [es:di], 0c0h      ; EXFAT_ENTRY_FILE_INFO ?
    1.29  %endif
    1.30 -
    1.31 -        cmp     al, 0c0h                ; EXFAT_ENTRY_FILE_INFO ?
    1.32          jne     NotFileInfo
    1.33  
    1.34          mov     bl, 31
    1.35 @@ -223,13 +224,24 @@
    1.36          jnz     CopyInfo                ; keep BIOS boot drive number
    1.37  
    1.38  NotFileInfo:
    1.39 +%if NullEntryCheck != 0
    1.40          mov     al, 0c1h                ; EXFAT_ENTRY_FILE_NAME ?
    1.41 +%else
    1.42 +        mov     ax, 0c1h                ; EXFAT_ENTRY_FILE_NAME ?
    1.43 +%endif
    1.44          mov     cx, NameLength+1
    1.45          mov     si, ProgramName         ; ds:si -> program name
    1.46  CheckName:
    1.47          scasw                           ; compare UTF-16
    1.48          lodsb                           ; with ASCII
    1.49          loope   CheckName
    1.50 +%if CheckAttrib != 0
    1.51 +VolumeLabel     equ  8
    1.52 +SubDirectory    equ  10h
    1.53 +        jnz     SkipFindName
    1.54 +        test    byte [bx+Attributes], VolumeLabel+SubDirectory
    1.55 +SkipFindName:
    1.56 +%endif
    1.57          je      FindNameFound           ; cx = 0
    1.58          popa                            ; restore ax, cx, si, di
    1.59