Leonid Plyushch
5 years ago
4 changed files with 174 additions and 0 deletions
@ -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 |
@ -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 |
@ -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 |
||||
|
} |
@ -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…
Reference in new issue