wok-current rev 25516
memtest64: update bdeps
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Feb 19 11:36:17 2023 +0000 (22 months ago) |
parents | 8acc87b18a99 |
children | 5cb11e361a0a |
files | memtest64/receipt memtest64/stuff/unpackx.S |
line diff
1.1 --- a/memtest64/receipt Sun Feb 19 09:52:04 2023 +0000 1.2 +++ b/memtest64/receipt Sun Feb 19 11:36:17 2023 +0000 1.3 @@ -10,6 +10,8 @@ 1.4 WEB_SITE="https://www.memtest.org/" # https://github.com/memtest86plus/memtest86plus/ 1.5 WGET_URL="https://memtest.org/download/v$VERSION/mt86plus_${VERSION}.binaries.zip" 1.6 1.7 +BUILD_DEPENDS="xz lz4 lzsa" 1.8 + 1.9 # What is the latest version available today? 1.10 current_version() 1.11 {
2.1 --- a/memtest64/stuff/unpackx.S Sun Feb 19 09:52:04 2023 +0000 2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 2.3 @@ -1,323 +0,0 @@ 2.4 -#define SYSTEM 0x10000 2.5 -#define SETUP 14 2.6 -#define SYSSIZE 0x1F4 2.7 -#define SETUPSIZE 0x1F1 2.8 - 2.9 -#define KEEP_BOOTSECTOR 0 2.10 -#define LINUX_HEADER 0 2.11 -#define UPDATE_SYSSIZE 1 2.12 -#define FLAT16 1 // lzma case 2.13 -#define FLAT16OUT 0 2.14 -#define COPYTOHIGHMEM 0 2.15 -#define UPDATE_CODE32_START 0 2.16 -#define DOUBLE_PACKED 0 2.17 -#define SAVEREGS 0 2.18 -#define ELKS 0 2.19 - 2.20 - .text 2.21 - .code16 2.22 - .org 0 2.23 - 2.24 -#if KEEP_BOOTSECTOR 2.25 -#undef UPDATE_SYSSIZE 2.26 -#define UPDATE_SYSSIZE 0 2.27 -#endif 2.28 -#if ELKS 2.29 - .arch i8086 2.30 -#define FLAT16 1 2.31 -#define KEEP_BOOTSECTOR 1 2.32 -#define LINUX_HEADER 0 2.33 -#define SAVEREGS 0 2.34 -#define TOPSEG 0x2000 2.35 -#else 2.36 -#define TOPSEG 0x8000 2.37 -#endif 2.38 - 2.39 -.macro pusham 2.40 -#if ELKS 2.41 - pushw %ax 2.42 -// movw %sp, %ax 2.43 -// incw %ax // emulate popa behaviour 2.44 -// incw %ax 2.45 - pushw %cx 2.46 - pushw %dx 2.47 - pushw %bx 2.48 -// pushw %ax // %sp 2.49 - pushw %bp 2.50 - pushw %si 2.51 - pushw %di 2.52 -#else 2.53 - pushaw 2.54 -#endif 2.55 -.endm 2.56 - 2.57 -.macro popam 2.58 -#if ELKS 2.59 - popw %di 2.60 - popw %si 2.61 - popw %bp 2.62 -// popw %ax 2.63 - popw %bx 2.64 - popw %dx 2.65 - popw %cx 2.66 - popw %ax 2.67 -#else 2.68 - popaw 2.69 -#endif 2.70 -.endm 2.71 - 2.72 -.macro pushm val 2.73 -#if ELKS 2.74 - movw \val, %ax 2.75 - pushw %ax 2.76 -#else 2.77 - pushw \val 2.78 -#endif 2.79 -.endm 2.80 - 2.81 -.macro shrwm cnt, reg 2.82 -#if ELKS 2.83 - .rept \cnt 2.84 - shrw $1, \reg 2.85 - .endr 2.86 -#else 2.87 - shrw $\cnt, \reg 2.88 -#endif 2.89 -.endm 2.90 - 2.91 - .globl _start 2.92 -_start: 2.93 -#if LINUX_HEADER 2.94 - jmp start2 2.95 - .ascii "HdrS" // 202 magic 2.96 - .word 0x200 // 206 version 2.00 2.97 - .long 0 // 208 realmode_swtch 2.98 - .word SYSTEM/16 // 20C start_sys_seg 2.99 - .word 0 // 20E kernel_version 2.100 - .byte 0 // 210 type_of_loader 2.101 - .byte 0 // 211 loadflags 2.102 - .word 0 // 212 setup_move_size 2.103 - .long SYSTEM // 214 code32_start 2.104 - .long 0 // 218 ramdisk_image 2.105 - .long 0 // 21C ramdisk_size 2.106 - .long 0 // 220 bootsect_kludge 2.107 -start2: 2.108 -#endif 2.109 -#if SAVEREGS 2.110 - pushfw 2.111 - pushw %cs 2.112 - pushw $0 2.113 - pusham 2.114 - xorw %si, %si 2.115 - pushw %ds 2.116 - pushw %es 2.117 - cld 2.118 -#else 2.119 - pushw %cs // return adress is %cs:0 2.120 - xorw %si, %si 2.121 - pushw %si 2.122 -#endif // SAVEREGS 2.123 - pushw %ds // <A> bootsector+setup segment 2.124 -#if FLAT16 2.125 -# 1- move 9000..9020+stp -> TOPSEG 2.126 - pushm $TOPSEG 2.127 - popw %es 2.128 -# if SAVEREGS 2.129 -setup_word: 2.130 - movw $SETUP*256+256, %cx 2.131 - pushw %cx // <B> bootsector+setup words 2.132 -# endif 2.133 - pushw %es // <C> TOPSEG 2.134 - pushw %es 2.135 -# if SAVEREGS 2.136 - xorw %di, %di // %ds:%si = 9000:0000 %es:%di = TOPSEG:0 2.137 - pushm $0x200+cont 2.138 - rep 2.139 - movsw 2.140 - lret 2.141 -cont: 2.142 -# else 2.143 - movw $-0x200, %di 2.144 - call jumpinto 2.145 -# endif 2.146 -# 2- move 1000..1000+sys -> TOPSEG+stp 2.147 - pushm $0x1000 2.148 - popw %ds 2.149 - xorw %si, %si // %ds:%si = 1000:0 2.150 - subw %di, %cx // %cx = 64K - setupsz 2.151 - rep 2.152 - movsb 2.153 -# 3- unlz(TOPSEG+stp:end, 1000-stp:0) 2.154 -setup_seg: 2.155 - pushm $0x1000-(SETUP*32)-32 2.156 - popw %es 2.157 -#else // FLAT16 2.158 -# 1- move 9020..9020+unpack -> 0700 and jump into 2.159 - movw $0x700, %cx // Up to 3.5KB for unpacker (unlzma is << 1KB) 2.160 - movw %cx, %es // Use 7000 .. 7E00, keep up to 23 elks setup sectors 2.161 - pushw %es 2.162 - xorw %di, %di // %ds:%si = 9000:0000 %es:%di = 0700:0000 2.163 - pushm $0x200+cont 2.164 -# if SAVEREGS 2.165 - rep 2.166 - movsw 2.167 - lret 2.168 -# else 2.169 - jmp jumpinto 2.170 -# endif 2.171 -cont: 2.172 -# 2- move 9020..9020+stp -> 9000-sys-stp 2.173 - movw %ds, %dx 2.174 -setup_byte: 2.175 - movb $SETUP+1, %ch 2.176 -setup_para: 2.177 - subw $SETUP*32+32+0xF000, %dx 2.178 -packed_syssize: 2.179 - movw $0+0x1000, %ax 2.180 - pushw %cx // <B> bootsector+setup words 2.181 - subw %ax, %dx 2.182 - movw %dx, %es 2.183 - pushw %es // <C> 9000-sys-stp 2.184 - xorw %si, %si 2.185 - xorw %di, %di // %ds:%si = 9000:0 %es:%di = 9000-sys-stp:0 2.186 - rep 2.187 - movsw 2.188 -# 3- move 1000..1000+sys -> 9000-sys 2.189 - movw %ds, %dx 2.190 -mvsys: 2.191 - decw %ax 2.192 - decw %dx 2.193 - movw %ax, %ds 2.194 - movw %dx, %es 2.195 - xorw %si, %si 2.196 - xorw %di, %di 2.197 - movw $8, %cx 2.198 - rep 2.199 - movsw 2.200 - cmpw $0x1000, %ax 2.201 - jne mvsys 2.202 -# 4- unlz(9000-sys-stp:end, 1000-stp:0) 2.203 -setup_seg: 2.204 - pushm $0x1000-(SETUP*32)-32 2.205 - popw %es 2.206 -#endif // FLAT16 2.207 - popw %ds // <C> 2.208 -#if FLAT16 && SAVEREGS == 0 2.209 - movw $end-_start, %si // %ds:%si = TOPSSEG:compressed 2.210 -#else 2.211 - movw $0x200+end-_start, %si // %ds:%si = 9000-sys-stp:compressed 2.212 -#endif 2.213 -#if KEEP_BOOTSECTOR 2.214 -setup_keep: 2.215 - xorw %di, %di 2.216 -#else 2.217 -# if UPDATE_SYSSIZE 2.218 -setup_syssize: 2.219 - movw $0x1F4, %di // %es:%di = 1000-setup-bootsector:SYSSIZE 2.220 -# else 2.221 - movw $0x200, %di 2.222 -# endif 2.223 -#endif 2.224 - pushw %di 2.225 - pushw %es 2.226 -#if DOUBLE_PACKED 2.227 -double_packed: 2.228 - pushm $0x4000 2.229 - popw %es 2.230 - pushw %di 2.231 - pushw %es 2.232 - call unpack 2.233 - popw %ds 2.234 - popw %si 2.235 - popw %es 2.236 - popw %di 2.237 - pushw %di 2.238 - pushw %es 2.239 -#endif 2.240 - call unpack 2.241 -#if COPYTOHIGHMEM 2.242 -# if FLAT16OUT 2.243 - movw $0x9310+1, %ax // from 1000:FFFF 2.244 -# else 2.245 -# if 0 2.246 - movw %es, %ax 2.247 - shrw $12, %ax 2.248 - orw $0x9310, %ax 2.249 -# else 2.250 - movw $0x9310+7, %ax // from 7000:FFFF 2.251 -# endif 2.252 -# endif 2.253 - pushw %ss 2.254 - popw %es 2.255 - movw $8, %cx 2.256 -zero1: 2.257 - pushw $0 // 2E..20 2.258 - loop zero1 2.259 -src: 2.260 - pushw %cx // 1E, 16 2.261 - pushw %ax // 1A: dst %ax:%cx, 12: src %ax:%cx 2.262 - pushw %cx 2.263 - pushw $-1 // 18, 10: full 64K segment 2.264 - subb $0x10, %al 2.265 - jnc src 2.266 - movb $8, %cl 2.267 -zero2: 2.268 - pushw $0 // 0E..00 2.269 - loop zero2 2.270 - movw %sp, %si 2.271 -syslp: 2.272 - movb $0x80, %ch 2.273 - movb $0x87, %ah 2.274 - int $0x15 2.275 -# if FLAT16OUT == 0 2.276 - decb %es:0x1C(%si) 2.277 - decb %es:0x14(%si) 2.278 - jne syslp // down to 1000:0000 2.279 -# endif 2.280 - addw $0x30, %sp 2.281 -#endif // COPYTOHIGHMEM 2.282 - popw %ds 2.283 - popw %si // %ds:%si = 1000-setup-bootsector:SYSSIZE / 0 2.284 -#if UPDATE_CODE32_START 2.285 -update_code32_start: 2.286 -// movb $1, 0x216 2.287 -#endif 2.288 -#if FLAT16 == 0 || SAVEREGS 2.289 - popw %cx // <B> bootsector+setup words 2.290 -#endif 2.291 - popw %es // <A> bootsector+setup segment 2.292 - movw %si, %di 2.293 -jumpinto: 2.294 -#if FLAT16 && SAVEREGS == 0 2.295 -setup_word: 2.296 - movw $SETUP*256+256, %cx 2.297 -#endif 2.298 -# 5- move 1000-stp..1000 -> 9000 2.299 - rep 2.300 - movsw 2.301 -#if SAVEREGS 2.302 - popw %es 2.303 - popw %ds 2.304 - popam 2.305 - iret 2.306 -#else 2.307 - lret 2.308 -#endif 2.309 - 2.310 -unpack: 2.311 -#define NO_LZMA_HEADER 2.312 -#define NO_LZSA2_HEADER 2.313 -#define NO_LZSA1_HEADER 2.314 -#define NO_LZ4_HEADER 2.315 -#if ELKS 2.316 -#define ONLY8086 1 2.317 -#endif 2.318 -#if defined(FLAT16OUT) && FLAT16OUT == 0 2.319 -#undef FLAT16OUT 2.320 -#endif 2.321 -#if defined(FLAT16) && FLAT16 == 0 2.322 -#undef FLAT16 2.323 -#endif 2.324 -#include "uncompress.S" 2.325 - 2.326 -end: