wok rev 25616

Add emu2
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Aug 26 15:51:29 2023 +0000 (9 months ago)
parents f5d6abddcecb
children b6605c2b3156
files emu2/receipt memtest-efi32/description.txt memtest-efi64/description.txt memtest/description.txt memtest/stuff/unlz4.S memtest/stuff/unlzsa1.S memtest/stuff/unlzsa2.S memtest/stuff/unzx0.S memtest64/description.txt memtest64/stuff/unlz4.S memtest64/stuff/unlzsa1.S memtest64/stuff/unlzsa2.S memtest64/stuff/unzx0.S plop/stuff/unlz4.S plop/stuff/unlzsa1.S plop/stuff/unlzsa2.S plop/stuff/unzx0.S
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/emu2/receipt	Sat Aug 26 15:51:29 2023 +0000
     1.3 @@ -0,0 +1,36 @@
     1.4 +# SliTaz package receipt.
     1.5 +
     1.6 +PACKAGE="emu2"
     1.7 +VERSION="2021.01"
     1.8 +CATEGORY="system-tools"
     1.9 +TAGS="emulator dos vm86 8086"
    1.10 +SHORT_DESC="Simple x86 and DOS emulator for the Linux terminal."
    1.11 +MAINTAINER="pascal.bellard@slitaz.org"
    1.12 +LICENSE="GPL2"
    1.13 +TARBALL="$PACKAGE-$VERSION.tar.gz"
    1.14 +WEB_SITE="https://github.com/dmsc/emu2"
    1.15 +WGET_URL="$WEB_SITE/archive/v$VERSION.tar.gz"
    1.16 +
    1.17 +BUILD_DEPENDS="gcc83"
    1.18 +
    1.19 +# What is the latest version available today?
    1.20 +current_version()
    1.21 +{
    1.22 +	wget -O - ${WGET_URL%/arch*}/releases 2>/dev/null | \
    1.23 +	sed '/tag\//!d;s|.*tag/v*||;s|".*||;q'
    1.24 +}
    1.25 +
    1.26 +# Rules to configure and make the package.
    1.27 +compile_rules()
    1.28 +{
    1.29 +	mkdir obj
    1.30 +	make CC=gcc-83 DESTDIR=$DESTDIR install
    1.31 +}
    1.32 +
    1.33 +# Rules to gen a SliTaz package suitable for Tazpkg.
    1.34 +genpkg_rules()
    1.35 +{
    1.36 +	mkdir -p $install/usr/doc $fs/usr
    1.37 +	cp $src/README.md $install/usr/doc
    1.38 +	cp -a $install/usr/bin $fs/usr
    1.39 +}
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/memtest-efi32/description.txt	Sat Aug 26 15:51:29 2023 +0000
     2.3 @@ -0,0 +1,6 @@
     2.4 +Memtest86+ is a stand-alone memory tester for x86 architecture computers.
     2.5 +It provides a more thorough memory check than that provided by BIOS
     2.6 +memory tests. Memtest86+ can be loaded and run either directly by a UEFI
     2.7 +PC BIOS or via an intermediate bootloader that supports the Linux 16-bit,
     2.8 +32-bit or EFI handover boot protocol. It should work on any Pentium class
     2.9 +or later 32-bit or 64-bit x86 CPU.
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/memtest-efi64/description.txt	Sat Aug 26 15:51:29 2023 +0000
     3.3 @@ -0,0 +1,6 @@
     3.4 +Memtest86+ is a stand-alone memory tester for x86-64 architecture computers.
     3.5 +It provides a more thorough memory check than that provided by BIOS memory
     3.6 +tests. Memtest86+ can be loaded and run either directly by a UEFI PC BIOS
     3.7 +or via an intermediate bootloader that supports the Linux 16-bit, 32-bit,
     3.8 +64-bit, or EFI handover boot protocol. It should work on any x86-64 class or
     3.9 +later 64-bit x86 CPU.
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/memtest/description.txt	Sat Aug 26 15:51:29 2023 +0000
     4.3 @@ -0,0 +1,6 @@
     4.4 +Memtest86+ is a stand-alone memory tester for x86 architecture computers.
     4.5 +It provides a more thorough memory check than that provided by BIOS
     4.6 +memory tests. Memtest86+ can be loaded and run either directly by MS-DOS,
     4.7 +a legacy PC BIOS or via an intermediate bootloader that supports the Linux
     4.8 +16-bit boot protocol. It should work on any 386 class or later 32-bit or
     4.9 +64-bit x86 CPU. A minimum of 1MB RAM is required.
     5.1 --- a/memtest/stuff/unlz4.S	Thu Aug 03 12:03:26 2023 +0000
     5.2 +++ b/memtest/stuff/unlz4.S	Sat Aug 26 15:51:29 2023 +0000
     5.3 @@ -161,7 +161,13 @@
     5.4  	xchg	AX, SI
     5.5  	mov	DI, SI
     5.6  	sub	BX, SI
     5.7 +# ifdef ONLY8086
     5.8 +lz4movsb:
     5.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
    5.10 +	loop	lz4movsb
    5.11 +# else
    5.12  	rep movsb %es:(SI), %es:(DI)
    5.13 +# endif
    5.14  	xchg	AX, SI
    5.15  # ifdef FASTFILL
    5.16  lz4fast:
    5.17 @@ -187,8 +193,8 @@
    5.18  # if defined(PARANOIA)
    5.19  lz4movlp:
    5.20  	xchgw	%ax, %cx
    5.21 -	movw	$0x3C00, %cx
    5.22 -	rep movsl
    5.23 +	movw	$0x7800, %cx
    5.24 +	rep movsw
    5.25  	xchgw	%ax, %cx
    5.26  	sub	$0xF0, %ch
    5.27  # endif
     6.1 --- a/memtest/stuff/unlzsa1.S	Thu Aug 03 12:03:26 2023 +0000
     6.2 +++ b/memtest/stuff/unlzsa1.S	Sat Aug 26 15:51:29 2023 +0000
     6.3 @@ -151,7 +151,13 @@
     6.4  # endif
     6.5  	xchg	AX, SI		// save %si	
     6.6  	lea	(BX,DI), SI
     6.7 +# ifdef ONLY8086
     6.8 +lzsa2movsb:
     6.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
    6.10 +	loop	lzsa2movsb
    6.11 +# else
    6.12  	rep movsb	%es:(SI), %es:(DI)
    6.13 +# endif
    6.14  #define lzsa1chunkz lzsa1chunk
    6.15  #endif
    6.16  	xchg	AX, SI		// restore %si	
     7.1 --- a/memtest/stuff/unlzsa2.S	Thu Aug 03 12:03:26 2023 +0000
     7.2 +++ b/memtest/stuff/unlzsa2.S	Sat Aug 26 15:51:29 2023 +0000
     7.3 @@ -207,7 +207,13 @@
     7.4  # endif
     7.5  	xchg	AX, SI		// save %si	
     7.6  	lea	(BX,DI), SI
     7.7 +# ifdef ONLY8086
     7.8 +lzsa2movsb:
     7.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
    7.10 +	loop	lzsa2movsb
    7.11 +# else
    7.12  	rep movsb	%es:(SI), %es:(DI)
    7.13 +# endif
    7.14  #define lzsa2chunkz lzsa2chunk
    7.15  #endif
    7.16  	xchg	AX, SI		// restore %si	
     8.1 --- a/memtest/stuff/unzx0.S	Thu Aug 03 12:03:26 2023 +0000
     8.2 +++ b/memtest/stuff/unzx0.S	Sat Aug 26 15:51:29 2023 +0000
     8.3 @@ -43,14 +43,15 @@
     8.4          cld                     // make string operations go forward
     8.5          movb    $0x80, %al      // initialize empty bit queue
     8.6                                  // plus bit to roll into carry
     8.7 -	stc
     8.8 +        stc
     8.9          sbb     BX, BX          // initialize rep-offset to 1
    8.10  
    8.11  .literals:
    8.12  #if !defined(FLAT16) && !defined(FLAT32)
    8.13 -        cmpw    $32768, %si     // assume 32767 literals max
    8.14 +        movw    $32768, %dx
    8.15 +        cmpw    %dx, %si        // assume 32767 literals max
    8.16          jb      .si_ok
    8.17 -        subw    $32768, %si
    8.18 +        subw    %dx, %si
    8.19          movw    %ds, %dx
    8.20          addb    $8, %dh
    8.21          movw    %dx, %ds
    8.22 @@ -79,7 +80,13 @@
    8.23  #endif
    8.24          push    SI              // save si (current pointer to compressed data)
    8.25          lea     (BX,DI), SI     // point to destination in es:di + offset in bx
    8.26 -	rep movsb %es:(SI), %es:(DI)  // copy matched bytes
    8.27 +#ifdef ONLY8086
    8.28 +.copy_loop:
    8.29 +        movsb %es:(SI), %es:(DI) // copy matched bytes using NMOS 8088/8086 workaround.
    8.30 +        loop    .copy_loop
    8.31 +#else
    8.32 +        rep movsb %es:(SI), %es:(DI)  // copy matched bytes
    8.33 +#endif
    8.34          pop     SI              // restore si
    8.35  
    8.36          addb    %al, %al        // read 'literal or match' bit
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/memtest64/description.txt	Sat Aug 26 15:51:29 2023 +0000
     9.3 @@ -0,0 +1,5 @@
     9.4 +Memtest86+ is a stand-alone memory tester for x86-64 architecture computers.
     9.5 +It provides a more thorough memory check than that provided by BIOS memory
     9.6 +tests. Memtest86+ can be loaded and run either directly by MS-DOS, a legacy
     9.7 +PC BIOS or via an intermediate bootloader that supports the Linux 16-bit
     9.8 +boot protocol. It should work on any x86-64 class or later 64-bit x86 CPU.
    10.1 --- a/memtest64/stuff/unlz4.S	Thu Aug 03 12:03:26 2023 +0000
    10.2 +++ b/memtest64/stuff/unlz4.S	Sat Aug 26 15:51:29 2023 +0000
    10.3 @@ -161,7 +161,13 @@
    10.4  	xchg	AX, SI
    10.5  	mov	DI, SI
    10.6  	sub	BX, SI
    10.7 +# ifdef ONLY8086
    10.8 +lz4movsb:
    10.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
   10.10 +	loop	lz4movsb
   10.11 +# else
   10.12  	rep movsb %es:(SI), %es:(DI)
   10.13 +# endif
   10.14  	xchg	AX, SI
   10.15  # ifdef FASTFILL
   10.16  lz4fast:
   10.17 @@ -187,8 +193,8 @@
   10.18  # if defined(PARANOIA)
   10.19  lz4movlp:
   10.20  	xchgw	%ax, %cx
   10.21 -	movw	$0x3C00, %cx
   10.22 -	rep movsl
   10.23 +	movw	$0x7800, %cx
   10.24 +	rep movsw
   10.25  	xchgw	%ax, %cx
   10.26  	sub	$0xF0, %ch
   10.27  # endif
    11.1 --- a/memtest64/stuff/unlzsa1.S	Thu Aug 03 12:03:26 2023 +0000
    11.2 +++ b/memtest64/stuff/unlzsa1.S	Sat Aug 26 15:51:29 2023 +0000
    11.3 @@ -151,7 +151,13 @@
    11.4  # endif
    11.5  	xchg	AX, SI		// save %si	
    11.6  	lea	(BX,DI), SI
    11.7 +# ifdef ONLY8086
    11.8 +lzsa2movsb:
    11.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
   11.10 +	loop	lzsa2movsb
   11.11 +# else
   11.12  	rep movsb	%es:(SI), %es:(DI)
   11.13 +# endif
   11.14  #define lzsa1chunkz lzsa1chunk
   11.15  #endif
   11.16  	xchg	AX, SI		// restore %si	
    12.1 --- a/memtest64/stuff/unlzsa2.S	Thu Aug 03 12:03:26 2023 +0000
    12.2 +++ b/memtest64/stuff/unlzsa2.S	Sat Aug 26 15:51:29 2023 +0000
    12.3 @@ -207,7 +207,13 @@
    12.4  # endif
    12.5  	xchg	AX, SI		// save %si	
    12.6  	lea	(BX,DI), SI
    12.7 +# ifdef ONLY8086
    12.8 +lzsa2movsb:
    12.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
   12.10 +	loop	lzsa2movsb
   12.11 +# else
   12.12  	rep movsb	%es:(SI), %es:(DI)
   12.13 +# endif
   12.14  #define lzsa2chunkz lzsa2chunk
   12.15  #endif
   12.16  	xchg	AX, SI		// restore %si	
    13.1 --- a/memtest64/stuff/unzx0.S	Thu Aug 03 12:03:26 2023 +0000
    13.2 +++ b/memtest64/stuff/unzx0.S	Sat Aug 26 15:51:29 2023 +0000
    13.3 @@ -43,14 +43,15 @@
    13.4          cld                     // make string operations go forward
    13.5          movb    $0x80, %al      // initialize empty bit queue
    13.6                                  // plus bit to roll into carry
    13.7 -	stc
    13.8 +        stc
    13.9          sbb     BX, BX          // initialize rep-offset to 1
   13.10  
   13.11  .literals:
   13.12  #if !defined(FLAT16) && !defined(FLAT32)
   13.13 -        cmpw    $32768, %si     // assume 32767 literals max
   13.14 +        movw    $32768, %dx
   13.15 +        cmpw    %dx, %si        // assume 32767 literals max
   13.16          jb      .si_ok
   13.17 -        subw    $32768, %si
   13.18 +        subw    %dx, %si
   13.19          movw    %ds, %dx
   13.20          addb    $8, %dh
   13.21          movw    %dx, %ds
   13.22 @@ -79,7 +80,13 @@
   13.23  #endif
   13.24          push    SI              // save si (current pointer to compressed data)
   13.25          lea     (BX,DI), SI     // point to destination in es:di + offset in bx
   13.26 -	rep movsb %es:(SI), %es:(DI)  // copy matched bytes
   13.27 +#ifdef ONLY8086
   13.28 +.copy_loop:
   13.29 +        movsb %es:(SI), %es:(DI) // copy matched bytes using NMOS 8088/8086 workaround.
   13.30 +        loop    .copy_loop
   13.31 +#else
   13.32 +        rep movsb %es:(SI), %es:(DI)  // copy matched bytes
   13.33 +#endif
   13.34          pop     SI              // restore si
   13.35  
   13.36          addb    %al, %al        // read 'literal or match' bit
    14.1 --- a/plop/stuff/unlz4.S	Thu Aug 03 12:03:26 2023 +0000
    14.2 +++ b/plop/stuff/unlz4.S	Sat Aug 26 15:51:29 2023 +0000
    14.3 @@ -161,7 +161,13 @@
    14.4  	xchg	AX, SI
    14.5  	mov	DI, SI
    14.6  	sub	BX, SI
    14.7 +# ifdef ONLY8086
    14.8 +lz4movsb:
    14.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
   14.10 +	loop	lz4movsb
   14.11 +# else
   14.12  	rep movsb %es:(SI), %es:(DI)
   14.13 +# endif
   14.14  	xchg	AX, SI
   14.15  # ifdef FASTFILL
   14.16  lz4fast:
   14.17 @@ -187,8 +193,8 @@
   14.18  # if defined(PARANOIA)
   14.19  lz4movlp:
   14.20  	xchgw	%ax, %cx
   14.21 -	movw	$0x3C00, %cx
   14.22 -	rep movsl
   14.23 +	movw	$0x7800, %cx
   14.24 +	rep movsw
   14.25  	xchgw	%ax, %cx
   14.26  	sub	$0xF0, %ch
   14.27  # endif
    15.1 --- a/plop/stuff/unlzsa1.S	Thu Aug 03 12:03:26 2023 +0000
    15.2 +++ b/plop/stuff/unlzsa1.S	Sat Aug 26 15:51:29 2023 +0000
    15.3 @@ -151,7 +151,13 @@
    15.4  # endif
    15.5  	xchg	AX, SI		// save %si	
    15.6  	lea	(BX,DI), SI
    15.7 +# ifdef ONLY8086
    15.8 +lzsa2movsb:
    15.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
   15.10 +	loop	lzsa2movsb
   15.11 +# else
   15.12  	rep movsb	%es:(SI), %es:(DI)
   15.13 +# endif
   15.14  #define lzsa1chunkz lzsa1chunk
   15.15  #endif
   15.16  	xchg	AX, SI		// restore %si	
    16.1 --- a/plop/stuff/unlzsa2.S	Thu Aug 03 12:03:26 2023 +0000
    16.2 +++ b/plop/stuff/unlzsa2.S	Sat Aug 26 15:51:29 2023 +0000
    16.3 @@ -207,7 +207,13 @@
    16.4  # endif
    16.5  	xchg	AX, SI		// save %si	
    16.6  	lea	(BX,DI), SI
    16.7 +# ifdef ONLY8086
    16.8 +lzsa2movsb:
    16.9 +	movsb	%es:(SI), %es:(DI)	//  NMOS 8088/8086 workaround.
   16.10 +	loop	lzsa2movsb
   16.11 +# else
   16.12  	rep movsb	%es:(SI), %es:(DI)
   16.13 +# endif
   16.14  #define lzsa2chunkz lzsa2chunk
   16.15  #endif
   16.16  	xchg	AX, SI		// restore %si	
    17.1 --- a/plop/stuff/unzx0.S	Thu Aug 03 12:03:26 2023 +0000
    17.2 +++ b/plop/stuff/unzx0.S	Sat Aug 26 15:51:29 2023 +0000
    17.3 @@ -43,14 +43,15 @@
    17.4          cld                     // make string operations go forward
    17.5          movb    $0x80, %al      // initialize empty bit queue
    17.6                                  // plus bit to roll into carry
    17.7 -	stc
    17.8 +        stc
    17.9          sbb     BX, BX          // initialize rep-offset to 1
   17.10  
   17.11  .literals:
   17.12  #if !defined(FLAT16) && !defined(FLAT32)
   17.13 -        cmpw    $32768, %si     // assume 32767 literals max
   17.14 +        movw    $32768, %dx
   17.15 +        cmpw    %dx, %si        // assume 32767 literals max
   17.16          jb      .si_ok
   17.17 -        subw    $32768, %si
   17.18 +        subw    %dx, %si
   17.19          movw    %ds, %dx
   17.20          addb    $8, %dh
   17.21          movw    %dx, %ds
   17.22 @@ -79,7 +80,13 @@
   17.23  #endif
   17.24          push    SI              // save si (current pointer to compressed data)
   17.25          lea     (BX,DI), SI     // point to destination in es:di + offset in bx
   17.26 -	rep movsb %es:(SI), %es:(DI)  // copy matched bytes
   17.27 +#ifdef ONLY8086
   17.28 +.copy_loop:
   17.29 +        movsb %es:(SI), %es:(DI) // copy matched bytes using NMOS 8088/8086 workaround.
   17.30 +        loop    .copy_loop
   17.31 +#else
   17.32 +        rep movsb %es:(SI), %es:(DI)  // copy matched bytes
   17.33 +#endif
   17.34          pop     SI              // restore si
   17.35  
   17.36          addb    %al, %al        // read 'literal or match' bit