wok diff syslinux/stuff/iso2exe/ifmem.S @ rev 25704
BootProg: contiguous file support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Jun 04 16:57:31 2024 +0000 (3 months ago) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/syslinux/stuff/iso2exe/ifmem.S Tue Jun 04 16:57:31 2024 +0000 1.3 @@ -0,0 +1,55 @@ 1.4 + .code16 1.5 + .org 0 1.6 +type_of_loader = 0x10 1.7 + 1.8 + orw $0x8020, type_of_loader(%si) # loader type = 0x20 = bootsect-loader 1.9 + pushal 1.10 + 1.11 + movw $10+16, %cx 1.12 +fillbuf: 1.13 + pushw $0 1.14 + loop fillbuf 1.15 + popal // clear regiters 1.16 +maploop: 1.17 + movw %sp, %di // %es = %ss 1.18 + movb $20, %cl 1.19 + movw $0xE820, %ax 1.20 + movl $0x534d4150, %edx 1.21 + int $0x15 1.22 + sbbl %eax, %edx 1.23 + jne mapdone 1.24 + decw 16(%di) 1.25 + jne notram 1.26 + addw 8+2(%di), %bp 1.27 +notram: 1.28 + orw %bx, %bx 1.29 + jnz maploop 1.30 +mapdone: 1.31 + addw $20, %sp 1.32 + shrw $20-16,%bp 1.33 + jnz mapdone2 1.34 + movb $0x88, %ah 1.35 + int $0x15 1.36 + xchgw %ax, %bp 1.37 + shrw $10, %bp 1.38 +mapdone2: 1.39 + incw %bp 1.40 +// %bp : nb Mb 1.41 + call here 1.42 +here: 1.43 + popw %di 1.44 + movw $0x1EE, %si 1.45 + lodsw 1.46 +sizeloop: 1.47 + scasw // %di += 2 1.48 + addw $4, %ax 1.49 + cmpb %al, (%si) 1.50 + jbe sizedone 1.51 + cmpw %bp, sizes-here(%di) 1.52 + jbe sizeloop 1.53 + movb %al, (%si) 1.54 +sizedone: 1.55 + popal 1.56 + lret // need %si 1.57 +sizes: 1.58 +