new package: 8086tiny
Requested in https://github.com/termux/termux-packages/issues/4828.
This commit is contained in:
parent
8a85156fc1
commit
ffb396b647
83
packages/8086tiny/8086tiny.sh
Executable file
83
packages/8086tiny/8086tiny.sh
Executable file
@ -0,0 +1,83 @@
|
|||||||
|
#!@TERMUX_PREFIX@/bin/bash
|
||||||
|
|
||||||
|
VERSION="@PACKAGE_VERSION@"
|
||||||
|
|
||||||
|
PROGRAM="@TERMUX_PREFIX@/libexec/8086tiny"
|
||||||
|
BIOS_IMAGE=""
|
||||||
|
FD_IMAGE=""
|
||||||
|
HDD_IMAGE=""
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
stty cooked echo
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: 8086tiny [bios image] [floppy image] [harddisk image]"
|
||||||
|
echo
|
||||||
|
echo "8086tiny is a tiny, free, open source, portable Intel PC emulator/VM."
|
||||||
|
echo
|
||||||
|
echo "Options:"
|
||||||
|
echo
|
||||||
|
echo " -h, --help show this help and exit"
|
||||||
|
echo " -v, --version show version information"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
while (( $# > 0 )); do
|
||||||
|
case "$1" in
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-v|--version)
|
||||||
|
echo "8086tiny $VERSION"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
echo "Unknown option '$1'."
|
||||||
|
echo
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ -z "$BIOS_IMAGE" ]; then
|
||||||
|
BIOS_IMAGE="$1"
|
||||||
|
shift 1
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$FD_IMAGE" ]; then
|
||||||
|
FD_IMAGE="$1"
|
||||||
|
shift 1
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$HDD_IMAGE" ]; then
|
||||||
|
HDD_IMAGE="$1"
|
||||||
|
shift 1
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$BIOS_IMAGE" ]; then
|
||||||
|
BIOS_IMAGE="@TERMUX_PREFIX@/share/8086tiny/bios.bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$FD_IMAGE" ]; then
|
||||||
|
FD_IMAGE="@TERMUX_PREFIX@/share/8086tiny/dos.img"
|
||||||
|
fi
|
||||||
|
|
||||||
|
trap cleanup INT TERM
|
||||||
|
stty cbreak raw -echo min 0
|
||||||
|
|
||||||
|
if [ -n "$HDD_IMAGE" ]; then
|
||||||
|
"$PROGRAM" "$BIOS_IMAGE" "$FD_IMAGE" "$HDD_IMAGE"
|
||||||
|
else
|
||||||
|
"$PROGRAM" "$BIOS_IMAGE" "$FD_IMAGE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cleanup
|
27
packages/8086tiny/Makefile.patch
Normal file
27
packages/8086tiny/Makefile.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
diff -uNr 8086tiny/Makefile 8086tiny.mod/Makefile
|
||||||
|
--- 8086tiny/Makefile 2014-03-20 01:08:16.000000000 +0200
|
||||||
|
+++ 8086tiny.mod/Makefile 2020-01-24 20:38:58.709164842 +0200
|
||||||
|
@@ -7,22 +7,19 @@
|
||||||
|
# 8086tiny_slowcpu improves graphics performance on slow platforms (e.g. Raspberry Pi)
|
||||||
|
# no_graphics compiles without SDL graphics/sound
|
||||||
|
|
||||||
|
-OPTS_ALL=-O3 -fsigned-char -std=c99
|
||||||
|
+OPTS_ALL=$(CPPFLAGS) $(CFLAGS) -fsigned-char -std=c99
|
||||||
|
OPTS_SDL=`sdl-config --cflags --libs`
|
||||||
|
OPTS_NOGFX=-DNO_GRAPHICS
|
||||||
|
OPTS_SLOWCPU=-DGRAPHICS_UPDATE_DELAY=25000
|
||||||
|
|
||||||
|
8086tiny: 8086tiny.c
|
||||||
|
${CC} 8086tiny.c ${OPTS_SDL} ${OPTS_ALL} -o 8086tiny
|
||||||
|
- strip 8086tiny
|
||||||
|
|
||||||
|
8086tiny_slowcpu: 8086tiny.c
|
||||||
|
${CC} 8086tiny.c ${OPTS_SDL} ${OPTS_ALL} ${OPTS_SLOWCPU} -o 8086tiny
|
||||||
|
- strip 8086tiny
|
||||||
|
|
||||||
|
no_graphics: 8086tiny.c
|
||||||
|
${CC} 8086tiny.c ${OPTS_NOGFX} ${OPTS_ALL} -o 8086tiny
|
||||||
|
- strip 8086tiny
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm 8086tiny
|
23
packages/8086tiny/build.sh
Normal file
23
packages/8086tiny/build.sh
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
TERMUX_PKG_HOMEPAGE=https://github.com/adriancable/8086tiny
|
||||||
|
TERMUX_PKG_DESCRIPTION="A PC XT-compatible emulator/virtual machine"
|
||||||
|
TERMUX_PKG_LICENSE="MIT"
|
||||||
|
TERMUX_PKG_VERSION=1.25
|
||||||
|
# Version tag is unavailable.
|
||||||
|
TERMUX_PKG_SRCURL=https://github.com/adriancable/8086tiny/archive/c79ca2a34d96931d55ef724c815b289d0767ae3a.tar.gz
|
||||||
|
TERMUX_PKG_SHA256=ede246503a745274430fdee77ba639bc133a2beea9f161bff3f7132a03544bf6
|
||||||
|
TERMUX_PKG_BUILD_IN_SRC=true
|
||||||
|
|
||||||
|
termux_step_pre_configure() {
|
||||||
|
CPPFLAGS+=" -DNO_GRAPHICS"
|
||||||
|
}
|
||||||
|
|
||||||
|
termux_step_make_install() {
|
||||||
|
install -Dm700 8086tiny "$TERMUX_PREFIX"/libexec/8086tiny
|
||||||
|
install -Dm600 bios "$TERMUX_PREFIX"/share/8086tiny/bios.bin
|
||||||
|
install -Dm600 fd.img "$TERMUX_PREFIX"/share/8086tiny/dos.img
|
||||||
|
|
||||||
|
sed -e "s|@TERMUX_PREFIX@|$TERMUX_PREFIX|g" \
|
||||||
|
-e "s|@PACKAGE_VERSION@|$TERMUX_PKG_VERSION|g" \
|
||||||
|
"$TERMUX_PKG_BUILDER_DIR"/8086tiny.sh > "$TERMUX_PREFIX"/bin/8086tiny
|
||||||
|
chmod 700 "$TERMUX_PREFIX"/bin/8086tiny
|
||||||
|
}
|
41
packages/8086tiny/timeb-android.patch
Normal file
41
packages/8086tiny/timeb-android.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
diff -uNr 8086tiny/8086tiny.c 8086tiny.mod/8086tiny.c
|
||||||
|
--- 8086tiny/8086tiny.c 2014-03-20 01:08:16.000000000 +0200
|
||||||
|
+++ 8086tiny.mod/8086tiny.c 2020-01-24 20:36:56.725634080 +0200
|
||||||
|
@@ -6,7 +6,37 @@
|
||||||
|
// This work is licensed under the MIT License. See included LICENSE.TXT.
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
+#ifndef __ANDROID__
|
||||||
|
#include <sys/timeb.h>
|
||||||
|
+#else
|
||||||
|
+struct timeb {
|
||||||
|
+ time_t time; /* Seconds since epoch, as from `time'. */
|
||||||
|
+ unsigned short int millitm; /* Additional milliseconds. */
|
||||||
|
+ short int timezone; /* Minutes west of GMT. */
|
||||||
|
+ short int dstflag; /* Nonzero if Daylight Savings Time used. */
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+int ftime(struct timeb *tb)
|
||||||
|
+{
|
||||||
|
+ struct timeval tv;
|
||||||
|
+ struct timezone tz;
|
||||||
|
+
|
||||||
|
+ if (gettimeofday (&tv, &tz) < 0)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ tb->time = tv.tv_sec;
|
||||||
|
+ tb->millitm = (tv.tv_usec + 500) / 1000;
|
||||||
|
+
|
||||||
|
+ if (tb->millitm == 1000) {
|
||||||
|
+ ++tb->time;
|
||||||
|
+ tb->millitm = 0;
|
||||||
|
+ }
|
||||||
|
+ tb->timezone = tz.tz_minuteswest;
|
||||||
|
+ tb->dstflag = tz.tz_dsttime;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
#include <memory.h>
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
Loading…
x
Reference in New Issue
Block a user