# HG changeset patch # User Pascal Bellard # Date 1676806577 0 # Node ID 7a861ec55497a12518fc9cfdf44c9078a2efa408 # Parent 8acc87b18a9993d9284490bf68fc79beacf03480 memtest64: update bdeps diff -r 8acc87b18a99 -r 7a861ec55497 memtest64/receipt --- a/memtest64/receipt Sun Feb 19 09:52:04 2023 +0000 +++ b/memtest64/receipt Sun Feb 19 11:36:17 2023 +0000 @@ -10,6 +10,8 @@ WEB_SITE="https://www.memtest.org/" # https://github.com/memtest86plus/memtest86plus/ WGET_URL="https://memtest.org/download/v$VERSION/mt86plus_${VERSION}.binaries.zip" +BUILD_DEPENDS="xz lz4 lzsa" + # What is the latest version available today? current_version() { diff -r 8acc87b18a99 -r 7a861ec55497 memtest64/stuff/unpackx.S --- a/memtest64/stuff/unpackx.S Sun Feb 19 09:52:04 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,323 +0,0 @@ -#define SYSTEM 0x10000 -#define SETUP 14 -#define SYSSIZE 0x1F4 -#define SETUPSIZE 0x1F1 - -#define KEEP_BOOTSECTOR 0 -#define LINUX_HEADER 0 -#define UPDATE_SYSSIZE 1 -#define FLAT16 1 // lzma case -#define FLAT16OUT 0 -#define COPYTOHIGHMEM 0 -#define UPDATE_CODE32_START 0 -#define DOUBLE_PACKED 0 -#define SAVEREGS 0 -#define ELKS 0 - - .text - .code16 - .org 0 - -#if KEEP_BOOTSECTOR -#undef UPDATE_SYSSIZE -#define UPDATE_SYSSIZE 0 -#endif -#if ELKS - .arch i8086 -#define FLAT16 1 -#define KEEP_BOOTSECTOR 1 -#define LINUX_HEADER 0 -#define SAVEREGS 0 -#define TOPSEG 0x2000 -#else -#define TOPSEG 0x8000 -#endif - -.macro pusham -#if ELKS - pushw %ax -// movw %sp, %ax -// incw %ax // emulate popa behaviour -// incw %ax - pushw %cx - pushw %dx - pushw %bx -// pushw %ax // %sp - pushw %bp - pushw %si - pushw %di -#else - pushaw -#endif -.endm - -.macro popam -#if ELKS - popw %di - popw %si - popw %bp -// popw %ax - popw %bx - popw %dx - popw %cx - popw %ax -#else - popaw -#endif -.endm - -.macro pushm val -#if ELKS - movw \val, %ax - pushw %ax -#else - pushw \val -#endif -.endm - -.macro shrwm cnt, reg -#if ELKS - .rept \cnt - shrw $1, \reg - .endr -#else - shrw $\cnt, \reg -#endif -.endm - - .globl _start -_start: -#if LINUX_HEADER - jmp start2 - .ascii "HdrS" // 202 magic - .word 0x200 // 206 version 2.00 - .long 0 // 208 realmode_swtch - .word SYSTEM/16 // 20C start_sys_seg - .word 0 // 20E kernel_version - .byte 0 // 210 type_of_loader - .byte 0 // 211 loadflags - .word 0 // 212 setup_move_size - .long SYSTEM // 214 code32_start - .long 0 // 218 ramdisk_image - .long 0 // 21C ramdisk_size - .long 0 // 220 bootsect_kludge -start2: -#endif -#if SAVEREGS - pushfw - pushw %cs - pushw $0 - pusham - xorw %si, %si - pushw %ds - pushw %es - cld -#else - pushw %cs // return adress is %cs:0 - xorw %si, %si - pushw %si -#endif // SAVEREGS - pushw %ds // bootsector+setup segment -#if FLAT16 -# 1- move 9000..9020+stp -> TOPSEG - pushm $TOPSEG - popw %es -# if SAVEREGS -setup_word: - movw $SETUP*256+256, %cx - pushw %cx // bootsector+setup words -# endif - pushw %es // TOPSEG - pushw %es -# if SAVEREGS - xorw %di, %di // %ds:%si = 9000:0000 %es:%di = TOPSEG:0 - pushm $0x200+cont - rep - movsw - lret -cont: -# else - movw $-0x200, %di - call jumpinto -# endif -# 2- move 1000..1000+sys -> TOPSEG+stp - pushm $0x1000 - popw %ds - xorw %si, %si // %ds:%si = 1000:0 - subw %di, %cx // %cx = 64K - setupsz - rep - movsb -# 3- unlz(TOPSEG+stp:end, 1000-stp:0) -setup_seg: - pushm $0x1000-(SETUP*32)-32 - popw %es -#else // FLAT16 -# 1- move 9020..9020+unpack -> 0700 and jump into - movw $0x700, %cx // Up to 3.5KB for unpacker (unlzma is << 1KB) - movw %cx, %es // Use 7000 .. 7E00, keep up to 23 elks setup sectors - pushw %es - xorw %di, %di // %ds:%si = 9000:0000 %es:%di = 0700:0000 - pushm $0x200+cont -# if SAVEREGS - rep - movsw - lret -# else - jmp jumpinto -# endif -cont: -# 2- move 9020..9020+stp -> 9000-sys-stp - movw %ds, %dx -setup_byte: - movb $SETUP+1, %ch -setup_para: - subw $SETUP*32+32+0xF000, %dx -packed_syssize: - movw $0+0x1000, %ax - pushw %cx // bootsector+setup words - subw %ax, %dx - movw %dx, %es - pushw %es // 9000-sys-stp - xorw %si, %si - xorw %di, %di // %ds:%si = 9000:0 %es:%di = 9000-sys-stp:0 - rep - movsw -# 3- move 1000..1000+sys -> 9000-sys - movw %ds, %dx -mvsys: - decw %ax - decw %dx - movw %ax, %ds - movw %dx, %es - xorw %si, %si - xorw %di, %di - movw $8, %cx - rep - movsw - cmpw $0x1000, %ax - jne mvsys -# 4- unlz(9000-sys-stp:end, 1000-stp:0) -setup_seg: - pushm $0x1000-(SETUP*32)-32 - popw %es -#endif // FLAT16 - popw %ds // -#if FLAT16 && SAVEREGS == 0 - movw $end-_start, %si // %ds:%si = TOPSSEG:compressed -#else - movw $0x200+end-_start, %si // %ds:%si = 9000-sys-stp:compressed -#endif -#if KEEP_BOOTSECTOR -setup_keep: - xorw %di, %di -#else -# if UPDATE_SYSSIZE -setup_syssize: - movw $0x1F4, %di // %es:%di = 1000-setup-bootsector:SYSSIZE -# else - movw $0x200, %di -# endif -#endif - pushw %di - pushw %es -#if DOUBLE_PACKED -double_packed: - pushm $0x4000 - popw %es - pushw %di - pushw %es - call unpack - popw %ds - popw %si - popw %es - popw %di - pushw %di - pushw %es -#endif - call unpack -#if COPYTOHIGHMEM -# if FLAT16OUT - movw $0x9310+1, %ax // from 1000:FFFF -# else -# if 0 - movw %es, %ax - shrw $12, %ax - orw $0x9310, %ax -# else - movw $0x9310+7, %ax // from 7000:FFFF -# endif -# endif - pushw %ss - popw %es - movw $8, %cx -zero1: - pushw $0 // 2E..20 - loop zero1 -src: - pushw %cx // 1E, 16 - pushw %ax // 1A: dst %ax:%cx, 12: src %ax:%cx - pushw %cx - pushw $-1 // 18, 10: full 64K segment - subb $0x10, %al - jnc src - movb $8, %cl -zero2: - pushw $0 // 0E..00 - loop zero2 - movw %sp, %si -syslp: - movb $0x80, %ch - movb $0x87, %ah - int $0x15 -# if FLAT16OUT == 0 - decb %es:0x1C(%si) - decb %es:0x14(%si) - jne syslp // down to 1000:0000 -# endif - addw $0x30, %sp -#endif // COPYTOHIGHMEM - popw %ds - popw %si // %ds:%si = 1000-setup-bootsector:SYSSIZE / 0 -#if UPDATE_CODE32_START -update_code32_start: -// movb $1, 0x216 -#endif -#if FLAT16 == 0 || SAVEREGS - popw %cx // bootsector+setup words -#endif - popw %es // bootsector+setup segment - movw %si, %di -jumpinto: -#if FLAT16 && SAVEREGS == 0 -setup_word: - movw $SETUP*256+256, %cx -#endif -# 5- move 1000-stp..1000 -> 9000 - rep - movsw -#if SAVEREGS - popw %es - popw %ds - popam - iret -#else - lret -#endif - -unpack: -#define NO_LZMA_HEADER -#define NO_LZSA2_HEADER -#define NO_LZSA1_HEADER -#define NO_LZ4_HEADER -#if ELKS -#define ONLY8086 1 -#endif -#if defined(FLAT16OUT) && FLAT16OUT == 0 -#undef FLAT16OUT -#endif -#if defined(FLAT16) && FLAT16 == 0 -#undef FLAT16 -#endif -#include "uncompress.S" - -end: